Variabel
Variabel merupakan lokasi penyimpanan yang ada di memori. Setiap variabel memiliki kemampuan menyimpan suatu informasi sesuai dengan tipe data yang dideklarasikan untuk variabel tersebut saja. Sintaks pendeklarasian variabel secara umum adalah sebagai berikut:
tipe-data nama-variabel;
Tipe-data meliputi semua tipe data yang dikenal oleh Java, sedangkan nama-variabel adalah identifier yang akan digunakan untuk merujuk ke variabel tersebut di dalam program.
Contoh code:
int counter;
Code di atas mendeklarasikan suatu variabel yang bernama counter dengan tipe data int.
Scope dari Variabel
Dalam Java, secara garis besar scope dari variabel dapat dibedakan menjadi dua bagian, yaitu variabel yang dideklarasikan di dalam blok class (dikenal juga sebagai property) dan variabel yang dideklarasikan di dalam blok code.
Variabel yang dideklarasikan dalam blok class akan dikenal di bagian manapun dalam blok class tersebut. Variabel ini juga bahkan dapat diakses dari luar class menggunakan referensi objek atau instance dari class tersebut. Namun hal ini akan dipengaruhi oleh penggunaan access specifier. Access specifier akan kita bahas pada saat kita memasuki pembahasan tentang class. Untuk sementara ini demi kemudahan, di dalam contoh program di buku ini, setiap variabel yang dideklarasikan di dalam class tidak akan menggunakan access specifier apa pun.
Pada dasarnya variabel dapat dideklarasikan di dalam blok code manapun. Yang dimaksud dengan blok code di sini adalah bagian dari code yang dimulai dengan karakter { dan ditutup dengan karakter }. Blok ini menentukan scope dari suatu variabel, yaitu apakah suatu variabel akan dikenal di bagian lain dari program atau tidak. Perhatikan juga bahwa Anda dapat membuat nested blok, di mana di dalam suatu blok code terdapat blok code lainnya. Aturan sederhana yang perlu diingat hanyalah, pendeklarasian suatu variabel dalam suatu blok code akan dikenal oleh nested blok yang ada di dalam blok code tersebut, namun tidak berlaku sebaliknya. Untuk lebih jelasnya, perhatikan contoh code berikut ini:
class Scope {
static int a = 2; //deklarasi variabel dalam blok class
public static void main(String[] args) {
int x; //variabel x ini dikenal di seluruh method main()
x = 10;
//variabel a juga dikenal di sini
System.out.println("Nilai a : " + a);
{ //awal dari blok baru
int y; //variabel ini hanya dikenal di dalam
//blok code ini saja
y = 5;
//variabel x dikenal di sini
System.out.println("Nilai x : " + x);
//variabel a juga dikenal di sini
System.out.println("Nilai a : " + a);
{ //nested blok
int z;//variabel ini hanya dikenal di
//dalam nested blok ini saja
z = 20;
/* variabel x,y dan a dikenal di dalam
nested blok ini */
System.out.println("Nilai x+y+z+a : "
+ (x + y + z + a));
} //akhir dari nested blok
//z = 11; // -> Error variabel z tidak lagi
//dikenal di sini
/* variabel y masih dikenal di sini karena
masih dalam blok code tempat ia
dideklarasikan */
System.out.println("Nilai y : " + y);
} //akhir dari blok baru
//y = 12; // -> Error: variabel y tidak dikenal di sini
/* variabel x masih dikenal di sini karena masih
dalam blok code tempat ia dideklarasikan */
System.out.println("Nilai x : " + x);
} //akhir dari method main
} //akhir dari deklarasi class
Deklarasi variabel dapat diletakkan di baris manapun dari program, tetapi perhatikan juga bahwa Anda tidak dapat menggunakan variabel yang belum dideklarasikan, sebagai contoh:
index = 0; // -> Erorr, variabel index belum
// dideklarasikan
int index; // -> di sini index baru
// dideklarasikan sebagai tipe int
Anda juga dapat langsung memberikan nilai pada suatu variabel pada saat mendeklarasikannya, sebagai contoh:
int index = 10;
Harus diingat bahwa variabel yang telah dideklarasikan dalam blok class, dapat dideklarasikan ulang (dengan nama yang sama) dalam blok code, namun variabel yang telah dideklarasikan dalam suatu blok code, tidak boleh dideklarasikan lagi dalam scope blok code yang sama (di dalam scope di mana variabel tersebut masih dikenal). Perhatikan contoh berikut ini:
class Scope {
int x; // deklarasi variabel int dengan nama
// x dalam blok class
public static void main(String[] args) {
int x; // deklarasi variabel int
// dengan nama x dalam blok code
// baris code lainnya...
{
// awal dari blok(scope) baru
int x;// Error, variabel x telah
// dideklarasikan sebelumnya
// baris code lainnya...
}
int x; // Error, variabel x telah
// dideklarasikan sebelumnya pada
// blok code yang sama
} //akhir dari method main
}
0 komentar:
Posting Komentar