Banner Java

Menggunakan Kata Kunci (Keyword) this Di Java

Di artikel Memahami Konsep Variabel Kelas Tersembunyi Di Java, Anda dapat mengetahui perbedaan antara variabel kelas dan variabel lokal beserta cakupannya. Variabel kelas (class variable) adalah variabel yang dideklarasikan di dalam sebuah kelas dan bertidak sebagai data field dari kelas tersebut, sedangan variabel local (local variable) adalah variabel yang dideklarasikan di dalam sebuah metoda. Cakupan variabel lokal dimulai dari posisi variabel tersebut dideklarasikan sampai dengan akhir dari blok metoda yang ditandai dengan closing brace. Cakupan dari variabel kelas meliputi keseluruhan kelas. Pemberian nama yang sama antara variabel kelas dan variabel lokal di sebuah metoda mungkin saja bisa terjadi. Misalnya, metoda set yang digunakan untuk merubah nilai variabel kelas, bisa saja mendeklarasikan parameter dengan nama sama sebagaimana nama variabel kelas yang nilainya akan dirubah.

Di dalam metoda set, untuk dapat mengacu ke variabel kelas yang nilainya akan dirubah, Anda perlu menggunakan kata kunci this. Apabila variabel kelas tersebut dideklarasikan menggunakan modifier static, maka variabel kelas dapat diakses menggunakan nama-kelas.variabel-static. Di contoh program kelas Warna, terdapat dua variabel kelas yaitu variabel merah dan biru. Kelas Warna juga mendeklarasikan dua buah metoda yaitu metoda setMerah yang memiliki parameter merah dan setBiru yang memiliki parameter biru. Parameter dari kedua metoda tersebut memiliki kesamaan nama dengan dua variabel kelas (data field) dari kelas Warna. Berikut ini adalah kode program kelas Warna yang dapat memberikan pemahaman lebih jelas tentang penggunaan kata kunci (keyword) this untuk mengacu ke variabel kelas:

// Deklarasi kelas
class Warna {

   // Deklarasi variabel kelas (data field)
   int merah = 7;
   static double biru = 2;

   // Deklarasi metoda 
   void setMerah(int merah) {
      this.merah = merah;
   }

   // Deklarasi metoda static
   static void setBiru( double biru) {
      Warna.biru = biru;
   }
}

Misalnya c1 adalah variabel acuan yang mengacu ke obyek kelas Warna. Memanggil metoda dengan pernyataan c1.setMerah(5) sama dengan mengeksekusi c1.merah = 5, dimana kata kunci this diganti dengan c1. Baris nomor 10 adalah pernyataan pemberian yaitu memberikan nilai parameter merah ke data field merah dari obyek pemanggil (misalnya c1). Sedangkan di baris nomor 15, pernyataan tersebut mempunyai arti bahwa nilai di parameter biru diberikan ke data field statik biru dari kelas Warna. Selain penggunaan kata kunci this untuk maksud tersebut di atas, kata kunci this juga dapat digunakan di dalam konstruktor untuk memanggil konstruktor yang lain dari kelas yang sama sebagaimana contoh kode program kelas Lingkaran di bawah ini.

// Nama file : Lingkaran.java
// Mendefinisikan kelas Lingkaran

// Mendeklarasikan kelas Lingkaran
public class Lingkaran {

   // Deklarasi variabel kelas (data field)
   private double jari2 = 1.0;
   private static int jumlahObyek = 0;

   // Konstruktor pertama
   public Lingkaran() {
      this(1.0);
      Lingkaran.jumlahObyek++;
   }

   // Konstruktor kedua
   public Lingkaran(double jari2) {
      this.jari2 = (jari2 > 0) ? jari2 : 1.0;
      Lingkaran.jumlahObyek++;
   }

   // Mengembalikan nilai data field jari2 melalui metoda get
   public double getJari2() {
      return this.jari2;
   }

   // Merubah nilai data field melalui metoda set
   public void setJari2(double jari2) {
      this.jari2 = (jari2 > 0) ? jari2 : 1.0;
   }

   // Mengembalikan jumlah obyek lingkaran yang dibuat
   public static int getJumlahObyek() {
      return Lingkaran.jumlahObyek;
   }

   // Metoda menghitung keliling lingkaran
   public double hitungKeliling() {
      return 2 * this.jari2 * Math.PI;
   }

   // Metoda menghitung luas lingkaran
   public double hitungLuas() {
      return Math.PI * this.jari2 * this.jari2;
   }
}

this di baris nomor 13 digunakan untuk memanggil kontruktor lain yang mempunyai argumen (kontruktor kedua baris nomor 18 - 21). this di baris nomor 19 dan 30 digunakan untuk mengacu ke data field jari2 (dideklarasikan di baris nomor 8) dari obyek Lingkaran yang dikonstruksi. This di baris nomor 25, 40 dan 45 mewakili obyek kelas Lingkaran. Setiap instance variable (variabel kelas dari kelas yang telah dikonstruksi) adalah milik obyek dari kelas yang diwakili oleh kata kunci this, yang mana this disini sering tidak ditulis (diabaikan).

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.