--> Skip to main content

Memahami Keyword this dalam Pemrograman Java

Tutorial pemrograman java kali ini akan mengdiskusikan tentang penggunaan dan fungsi dari keyword this.

Keyword this merupakan keyword dalam java yang dapat digunakan dalam method atau constructor. Keyword this bekerja sebagai referensi untuk objek saat ini yang dimiliki oleh method ataupun constructor yang sedang dipanggil.

Tentunya sedikit membingungkan kalau melihat maksud dari kalimat diatas. Untuk memberi pemahaman yang lebih baik, silahkan perhatikan Program.1 dibawah ini :

Program.1
public class this_pertama {
 int a = 10;
 
 void tampil() {
  int a = 20;
    
  System.out.println("Nilai dari (Local Variabel)  'a' adalah : " + a);
  System.out.println("Nilai dari (Global Variabel) 'a' adalah : " + this.a);
 }
}
class MainClass {
 public static void main(String args[])
 {
  this_pertama objek = new this_pertama();
  objek.tampil();
 }
}

Outputnya ditunjukkan oleh Gambar.1 dibawah ini :

(Gambar.1 )


Dari Program.1 diatas kita telah melihat outputnya seperti yang ditunjukkan oleh Gambar.1, maka akan nampak perbedaan atau fungsi penggunaan keyword this. Keyword this akan mereferensikan bahwa variabel tersebut adalah variabel global yang memiliki nilai 10, sedangkan tanpa keyword this maka variabel tersebut bersifat

Silahkan perhatikan lagi Program.2 dan Program.3 berikut ini untuk menunjukkan lagi kegunaan dari keyword this.

Program.2 :
Pada program.2 kita menunjukan program java tanpa menggunakan keyword this.
class Pelajar_pertama
{  
    int id;  
    String nama;  
      
    Pelajar_pertama(int id,String nama)
    {  
     id = id;  
     name = nama;  
    }  
    void tampil()
    {
     System.out.println(id+" "+nama);
    }  
  
    public static void main(String args[])
    {  
      Pelajar_pertama pelajar1 = new Pelajar_pertama(200,"Andi");  
      Pelajar_pertama pelajar2 = new Pelajar_pertama(400,"Mardi");  
      pelajar1.tampil();  
      pelajar2.tampil();  
    }  
}  

Outputnya ditunjukkan oleh Gambar.2 dibawah ini :

(Gambar.2 )
Dari program.2 diatas akan menghasilkan output yang membuat alur kode program bingung membacanya. Hal ini disebabkan ketikan method constructor mengirimkan parameternya seperti untuk objek instant pelajar1 berupa nilai 200 dan Andi, maka nilai tersebut : 200 ditampung oleh id dan Andi ditampung oleh nama. Karena dalam constructor Pelajar_pertama tidak terdapat keyword this, nilai-nilai tersebut akan dianggap sebagai nilai lokal variabel.

Nah, ketika terjadi pemanggilan method tampil() oleh objek instant pelajar_1, maka method tersebut akan mencetak nilai lokal variabel. Sedangkan nilai lokal variabelnya tidak didefinisikan untuk variabel id maupun untuk variabel nama, padahal kedua variabel tersebut sudah dideklarasikan dibagian paling atas. Otomatis program akan menganggap variabel yang tipe data integer akan dicetak 0, sedangkan untuk variabel yang tipe data string akan dicetak null.

Lalu bagaimana cara mengatasinya ?. Untuk itu, supaya tidak ambigu gunakanlah keyword this seperti dalam Program.3 berikut :

Program.3:
class Pelajar_kedua
{  
    int id;  
    String nama;  
      
    Pelajar_kedua(int id,String nama)
    {  
     this.id = id;  
     this.nama = nama;  
    }  
    void tampil()
    {
     System.out.println(id+" "+nama);
    }  
  
    public static void main(String args[])
    {  
     Pelajar_kedua pelajar1 = new Pelajar_kedua(200,"Andi");  
     Pelajar_kedua pelajar2 = new Pelajar_kedua(400,"Mardi");  
     pelajar1.tampil();  
     pelajar2.tampil();  
    }  
} 

Outputnya ditunjukkan oleh Gambar.3 dibawah ini :

(Gambar.3 )
Dengan menggunakan keyword this dalam constructor Pelajar_kedua, maka variabel yang terdapat dalam constructor akan diperlakukan sebagai variabel global, sehingga method tampil() dapat mengaksesnya.
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar