Belajar Java 6 Penggunaan Keyword this Yang Perlu Diketahui

this adalah keyword pada bahasa pemrograman java yang berfungsi untuk mereferensikan atau mengacu ke objek yang sedang aktif. Keyword ini biasanya berhubungan langsung dengan yang namanya overload method pada program Java tersebut.

6 Penggunaan Keyword this Yang Perlu Diketahui

Ada 6 penggunaan this, yaitu :
  • dapat digunakan sebagai acuan pada instance variabel dari class
  • dapat digunakan untuk memanggil konstruktor class
  • dapat digunakan untuk memanggil method class secara implisit
  • dapat di pass-kan sebagai sebuah argumen dalam pemanggilan method
  • dapat di pass-kan sebagai sebuah argumen dalam pemanggilan konstruktor
  • dapat digunakan untuk mengembalikan instance dari class
belajar_java_penggunaan_keyword_this

1. Penggunaan this sebagai acuan pada variabel instance dari class

Bila ada kerancuan antara variabel instance dan parameter, maka keyword this akan memecahkan masalah kerancuan tersebut. Lihat contoh di bawah ini :

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public class Karyawan {
 
    int nomorID;  
    String nama;  
      
    Karyawan (int nomorID,String nama){  
    nomorID = nomorID;  
    nama = nama;  
    }  
    
    void tampilkan(){System.out.println(nomorID +" "+ nama);}  
  
    public static void main(String args[]){  
    Karyawan karyawan1 = new Karyawan(476,"Nesta");  
    Karyawan karyawan2 = new Karyawan(197,"Rama");  
    
    karyawan1.tampilkan();  
    karyawan2.tampilkan();  
    }  

}

Output:
0 null
0 null

Kita lihat pada output, bahwa method tampilkan tidak memberikan nilai yang diharapkan, karena parameter dan variabel instance adalah sama, oleh sebab itulah mengapa kita menggunakan keywod this, yaitu untuk membedakan antara variabel lokal dan variabel instance.

Setelah penggunaan keyword this :
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public class Karyawan {
 
    int nomorID;  
    String nama;  
      
    Karyawan (int nomorID,String nama){  
    this.nomorID = nomorID;  
    this.nama = nama;  
    }  
    
    void tampilkan(){System.out.println(nomorID +" "+ nama);}  
  
    public static void main(String args[]){  
    Karyawan karyawan1 = new Karyawan(476,"Nesta");  
    Karyawan karyawan2 = new Karyawan(197,"Rama");  
    
    karyawan1.tampilkan();  
    karyawan2.tampilkan();  
    }  

}

Output:
476 Nesta
197 Rama

Jika variabel lokal dan variabel instance berbeda, maka tidak diperlukan penggunaan keyword this.

Seperti program di bawah ini :
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public class Karyawan {
 
    int nomorID;  
    String nama;  
      
    Karyawan (int nomorKaryawan, String namaKaryawan){  
     nomorID = nomorKaryawan;  
     nama = namaKaryawan;  
    }  
    
    void tampilkan(){System.out.println(nomorID +" "+ nama);}  
  
    public static void main(String args[]){  
    Karyawan karyawan1 = new Karyawan(476,"Nesta");  
    Karyawan karyawan2 = new Karyawan(197,"Rama");  
    
    karyawan1.tampilkan();  
    karyawan2.tampilkan();  
    }  

}


2. Penggunaan this() untuk memanggil konstruktor class

this() dapat digunakan untuk memanggil konstruktor class default. Pendekatan ini akan lebih baik bila kita memiliki banyak konstruktor dalam class dan ingin menggunakan ulang konstruktor tersebut. this() harus diletakkan pertama di dalam konstruktor, bila tidak, akan terjadi error.

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Karyawan {
 
    int nomorID;  
    String nama;  
    
    //default konstruktor
    Karyawan(){
     System.out.println("konstruktor default dipanggil");}  
      
    Karyawan(int nomorID,String nama){  
    this();//digunakan untuk memanggil default konstruktor 
    this.nomorID = nomorID;  
    this.nama = nama;  
    }  
    
    void tampilkan(){
     System.out.println(nomorID + " " + nama);}  
      
    public static void main(String args[]){  
    Karyawan karyawan1 = new Karyawan(476, "Nesta");  
    Karyawan karyawan2 = new Karyawan(197, "Rama");  
    
    karyawan1.tampilkan();  
    karyawan2.tampilkan();
   }  
}  

Output:
konstruktor default dipanggil
konstruktor default dipanggil
476 Nesta
197 Rama

Konstruktor this() dapat digunakan untuk menggunakan kembali konstruktor di dalam konstruktor,  sehingga membuat rantai antara konstruktor-konstruktor, yang juga disebut dengan konstruktor berantai. Seperti contoh di bawah ini :

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Karyawan {
 
    int nomorID;  
    String nama;
    String tempatLahir;
      
    Karyawan(int nomorID,String nama){  
    
    this.nomorID = nomorID;  
    this.nama = nama;  
    }  
    
    Karyawan(int nomorID,String nama, String tempatLahir){  
        
        this(nomorID, nama);//sekarang tidak perlu menginisialisasi nomorID dan nama
        this.tempatLahir = tempatLahir;  
        }
    
    void tampilkan(){
     System.out.println(nomorID + " "+ nama + " " + tempatLahir);}  
      
    public static void main(String args[]){  
    Karyawan karyawan1 = new Karyawan(476, "Nesta");  
    Karyawan karyawan2 = new Karyawan(197, "Rama", "Bogor");  
    
    karyawan1.tampilkan();  
    karyawan2.tampilkan();
   }  
}  

Output:

476 Nesta null
197 Rama Bogor

3. Penggunaan this() untuk memanggil method class secara implisit

Kita bisa memanggil method dari class menggunakan keyword this. Bila kita tidak menggunakan keyword this, maka compiler secara otomatis menambahkan keyword this saat memanggil method.  Contohnya seperti di bawah ini :


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
public class Karyawan {
 
    void methodA(){  
        System.out.println("Method dipanggil !");  
        }  
    
        void methodB(){  
        this.methodA();//bisa juga tidak menggunakan this, karena
                       //sudah otomatis ditambahkan oleh compiler
        } 
        
        void methodC(){  
        methodB();//compiler akan menambahkan this
                  //untuk memanggil methodB() sebagai this.methodB()  
        } 
        
        public static void main(String args[]){  
        Karyawan karyawan1 = new Karyawan();  
        karyawan1.methodC();  
   }  
}  

Output:

Method dipanggil !

4. Keyword this dapat di pass-kan sebagai sebuah argumen dalam pemanggilan method

Keyword this dapat di pass-kan sebagai sebuah argumen dalam pemanggilan method. Terutama digunakan dalam menangani event atau dalam situasi dimana kita harus menyediakan referensi suatu class kepada class lainnya, lihat contoh di bawah ini :


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
public class Karyawan {
 
    void methodA(Karyawan objek){  
        System.out.println("Method dipanggil!");  
        }  
    
        void methodB(){  
        methodA(this);  
        }  
          
        public static void main(String args[]){  
        Karyawan karyawan1 = new Karyawan();  
        karyawan1.methodB();  
    }  
}  

Output:

Method dipanggil!

5. Keyword this dapat di pass-kan sebagai sebuah argumen dalam pemanggilan konstruktor

Kita juga dapat melakukan passing keyword this dalam konstruktor. Hal ini berguna bila kita harus menggunakan satu objek dalam banyak class. Lihat contoh berikut ini :

class Karyawan
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
public class Karyawan{ 
 
    Staff objek;  
    
    Karyawan(Staff objek){  
      this.objek = objek;  
    }  
    
    void tampilkan(){  
      System.out.println(objek.data);//menggunakan anggota data dari class Staff 
   }  
}  

class Staff
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public class Staff{  
 
    int data = 15;  
    
    Staff(){  
     Karyawan karyawan1 = new Karyawan(this);  
     karyawan1.tampilkan();  
    }  
    
    public static void main(String args[]){  
     Staff a = new Staff();  
   }  
}  

Output:
15

 

6. Keyword this dapat digunakan untuk mengembalikan instance dari class

Kita dapat mengembalikan keyword this sebagai suatu pernyataan dari method. Dalam kasus seperti ini, tipe pengembalian / return dari method harus merupakan tipe class (non-primitif).

Syntax :
tipe_pengembalian nama_method(){
return this;
}


Lihat contoh di bawah ini :
class X
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class X {
 
 X getX(){
  return this;
 }  
    
 void pesan(){
  System.out.println("Selamat datang!");
 }  
    
}  

class TestX
1
2
3
4
5
6
7
8
public class TestX{
 
 public static void main(String args[]){
  
  new X().getX().pesan();
  
 }
}

Output:
Selamat datang!

Demikianlah pembahasan mengenai 6 Penggunaan Keyword this yang harus diketahui, semoga dapat menambah pengetahuan anda untuk cepat dan mudah dalam belajar Java programming.
Belajar Java 6 Penggunaan Keyword this Yang Perlu Diketahui Belajar Java 6 Penggunaan Keyword this Yang Perlu Diketahui Reviewed by JavaMan on 07.34.00 Rating: 5

Tidak ada komentar:

Diberdayakan oleh Blogger.