Variabel

Pendahuluan

Pada tulisan ini kita akan mempelajari bagaimana caranya mendeklarasikan variabel, mengetahui jenis-jenis variabel, serta scope dari variabel yang kita deklarasikan dalam bahasa pemrograman Java.

Apa itu Variabel ?

Variabel adalah satuan dasar penyimpanan dalam program Java. Suatu variabel dapat bersifat lokal (sementara), misalkan variabel yang di dalam pengulangan for, atau dapat juga variabel instance yang dapat diakses oleh semua method dalam class. Benda atau sesuatu yang tersimpan di dalam variabel dinamakan nilai. Nilai dalam suatu variabel dapat berubah selama berjalannya program. Nilai yang tersimpan dalam suatu variabel tidak harus berupa bilangan. Kita dapat membuat variabel yang dapat menyimpan huruf. Jenis nilai yang tersimpan dalam variabel merupakan tipe variabel.

Menggunakan Variabel

Dalam Java, secara eksplisit kita harus mendeklarasikan variabel sebelum kita menggunakannya. Java secara eksplisit mengharuskan kita untuk mendeklarasikan variabel sehingga jika terdapat salah ejaan (misspell) dalam nama variabel, compiler akan menemukan kesalahan tersebut dan menampilkannya sebagai kesalahan compiler (compiler error).

Bagaimana Cara Mendeklarasikan Variabel?

Untuk mendefinisikan variabel tentukan tipenya terlebih dahulu lalu nama variabel tersebut lalu diakhiri dengan titik-koma karena pendeklarasian variabel merupakan sebuah bentuk pernyataan (statement). Bentuk dasar dalam mendeklarasikan variabel adalah seperti ini:


tipe nama;

Contohnya adalah seperti ini:


int panjang;


String namaLengkap;


double radius;

Di atas tadi merupakan bagaimana cara kita mendeklarasikan suatu variabel. Variabel dengan nama panjang akan menampung nilai integer, namaLengkap akan menampung nilai String, dan radius akan menampung nilai double (untuk tipe data akan dibahas pada bagian selanjutnya).

Mendeklarasikan Dua Variabel atau Lebih dalam Satu Statement

Kita dapat mendeklarasikan dua atau lebih (dengan tipe yang sama) dalam satu statement, dengan memisahkan nama variabel dengan koma. Contohnya adalah seperti ini:


int a, b, c;

Statement di atas tersebut akan mendeklarasikan tiga variable dengan tipe int, dengan nama a, b, dan c. Tetapi cara pendeklarasian variabel seperti di atas akan sedikit sulit dibaca oleh orang lain yang membaca program kita. Jadi lebih baik jika kita tidak mendeklarasikan dua atau lebih variabel dalam satu statement agar program kita lebih mudah dibaca dan di-maintain.

Mendeklarasikan Variabel Class

Variabel class adalah variabel yang dapat diakses oleh semua method di dalam class, termasuk static method seperti main. Ketika mendeklarasikan variabel class, ada dua aturan dasar yang harus diikuti, yaitu:

  • Menempatkan deklarasi variabel dalam blok class, tetapi tidak dalam method yang berada dalam class.

  • Kita harus memasukkan kata static dalam pendeklarasian variabel. Kata static ditempatkan sebelum tipe variabel.

Agar lebih jelas lihat contoh program di bawah ini:

SayHello.java

public class SayHello
{
// declare class variable
static String helloMessage = "Hello Programmer";
public static void main(String args[])
{
System.out.println(helloMessage);
System.out.println(myNickNameIs);
}
// declare class variable
static String myNickNameIs = "ghaNOZ2480";
}

Bila melihat contoh program diatas, kita dapat menempatkan pendeklarasian variabel pada awal class atau akhir class, tetapi lebih baik ditempatkan di awal class agar lebih mudah dibaca.

Mendeklarasikan Variabel Instance

Variabel instance sama halnya dengan variabel class, tetapi tidak menggunakan kata static dalam pendeklarasiannya. Variabel instance terhubung dengan instance dari class. Jadi kita hanya bisa menggunakannya ketika membuat instance dari class. Karena static method tidak terhubung dengan instance dari class, kita tidak bisa menggunakan variabel instance dalam static method dan memasukkannya dalam main method.

Berikut adalah contoh dari pendeklarasian variabel instance dan jika kita mencoba untuk mengakses variabel tersebut melalui main method (yang merupakan static method) maka saat di-compile akan mengalami error.

SayHelloA.java

public class SayHelloA
{
// declare instance variable
String helloMessage = "Hello Programmer";
public static void main(String args[])
{
System.out.println(helloMessage);
}
}

Dan di bawah ini adalah pesan error yang akan ditampilkan jika kita mencoba untuk mengcompile program di atas.

SayHelloA.java

SayHelloA.java:8: non-static variable helloMessage cannot be
referenced from a static context
System.out.println(helloMessage);
^
1 error

Mendeklarasikan Variabel Lokal

Variabel lokal adalah variabel yang dideklarasikan di dalam badan method. Jadi kita hanya dapat menggunakan variabel tersebut hanya di dalam method. Method lain dalam class tidak peduli akan keberadaan variabel tersebut. Dan variabel lokal hanya akan ada jika method (yang memiliki variabel lokal tersebut) dieksekusi. Dalam pendeklrasiannya kita tidak perlu menambahkan kata static (seperti yang harus dilakukan pada saat mendeklarasikan variabel class). Jika kata static digunakan dalam pendeklarasian variabel lokal, maka compiler akan menghasilkan pesan error dan menolak untuk melakukan compile terhadap program.

Berikut adalah contoh program yang menunjukkan pendeklarasian variabel lokal di dalam method main:

SayHelloB.java

public class SayHelloB
{
public static void main(String args[])
{
// declare local variable within main method
String helloMessage = "Hello Programmer";
System.out.println(helloMessage);
} // end of main method
}

Berbeda dengan variabel class dan instance, variabel lokal dideklarasikan terlebih dahulu sebelum statement yang menggunakan variabel tersebut. Agar lebih jelas lihat program di bawah ini:

SayHelloC.java

public class SayHelloC
{
public static void main(String args[])
{
// declare local variable within main method
helloMessage = "Hello World";
System.out.println(helloMessage);
String helloMessage;
} // end of main method
}

Bila Anda coba compile program tersebut maka muncul pesan error sebagai berikut:

SayHelloC.java

SayHelloC.java:5: cannot find symbol
symbol : variable helloMessage
location: class SayHello
helloMessage = "Hello, World!";
^
SayHello.java:6: cannot find symbol
symbol : variable helloMessage
location: class SayHello
System.out.println(helloMessage);
^
2 errors

Dapat kita lihat dari pesan error tersebut compiler tidak bisa menemukan variabel helloMessage, karena variabel tersebut baru dideklarasikan pada line ke-7, sedangkan statement yang berada pada baris ke-5 (dan juga baris ke-6) sudah menggunakan variabel tersebut.

Inisialisasi Variabel

Setelah variabel dideklarasikan, kita perlu memberinya sebuah nilai. Proses inisialisasi variabel ini secara eksplisit dilakukan dengan menggunakan assignment statement. Dalam assignment statement, variable yang akan di-assign selalu berada disebelah kiri dari tanda sama dengan (=). Bentuk umum dari assignment statement adalah sebagai berikut:


variabel = nilai;

variabel = ekspresi;

Contoh:

Inisialisasi Variabel

...
int i;
i = 2480;
int luas;
luas = 20 * 5;
...

Pada statement terakhir diatas a diinisialisasi dengan nilai 5 dan b diinisialisasi dengan nilai 10, kedua variabel tersebut bertipe integer.

Kita juga bisa melakukan deklarasi sekaligus inisialisasi dalam satu statement, bentuk umumnya seperti ini:


tipe nama = nilai;

tipe nama = ekspresi;

Contoh:

Inisialisasi Variabel

...
int i = 2480;
int luas = 20 * 5;
...
// or like this
int a = 5, b = 10;

Pada statement terakhir diatas a diinisialisasi dengan nilai 5 dan b diinisialisasi dengan nilai 10, kedua variabel tersebut bertipe integer.

Konstanta

Konstanta yang juga disebut variabel final, merupakan variabel yang nilainya tidak dapat kita rubah setelah diinisialisasi. Untuk mendeklarasikan konstanta, kita menambahkan kata kunci final pada pendeklarasian variabel:


final int JUMLAH_HARI = 7;

Meskipun kita dapat membuat variabel konstanta lokal, kebanyakan variabel konstanta merupakan variabel kelas atau instance. Untuk mendeklarasikan konstanta kelas, tambahkan static final pada pendeklarasian variabel:


static final JUMLAH_HARI = 7;

Cakupan Variabel (Variabel Scope)

Cakupan dari suatu variabel merupakan area dimana variabel termasuk (semestinya berada), hal tersebut ditentukan oleh area dimana variabel tersebut dideklarasikan. Dalam istilah sederhananya, setiap variabel ada (exists) di dalam blok dimana variabel dideklarasikan termasuk blok-blok yang dideklarasikan di dalam blok tersebut.


...
{ // awal blok ke1
// mendeklarasikan variabel di blok ke1
int variabelDiBlokKe1 = 2480;
{// awal blok ke2
// variabel di blok ke1 dapat diakses diblok ke2
System.out.print(variabelDiBlokKe1);
{ // awal blok ke3
// variabel di blok ke1 dapat diakses diblok ke3
System.out.print(variabelDiBlokKe1);
// mendeklarasikan variabel di blok 3
int variabelDiBlokKe3 = 2483;
} // akhir blok ke3
} // akhir blok ke2
} // akhir blok ke1
...

Dapat kita lihat pada potongan program di atas, variabel yang dideklarasikan diblok ke1 dapat diakses oleh blok ke2 dan ke3, itu karena blok ke2 dan ke3 berada dalam di dalam blok ke1. Tetapi sebaliknya dengan variabel yang dideklarasikan di dalam blok ke3 tidak akan bisa diakses dari luar blok3.

Referensi

  1. Doug Lowe and Barry Burd, “Java All-In-One Desk Reference for Dummies, 2nd Edition”, Wiley, 2007.
  2. Patrick Naughton, “The Java Handbook”, McGraw-Hill, 1996.
  3. Barry Burd, “Beginning Programming with Java For Dummies, 2nd Edition”, Wiley, 2005.
  4. Cay S. Horstmann and Gary Cornell, “Core Java 2: Volume I–Fundamentals”,
    Prentice Hall, 2000.

Download

Tulisan:

  1. ghaNOZ 2480 – “Variabel“, http://ghanoz2480.files.wordpress.com/2008/12/ghanoz-2480-variabel.pdf

Source code + Tulisan:

  1. ghaNOZ 2480 – “Variabel“, http://www.ziddu.com/download/2960030/ghaNOZ2480-Variabel.zip.html