Enkapsulasi encapsulation data aksesor mutator program Java
Enkapsulasi Data Melalui Aksesor Dan Mutator Di Program Java
Enkapsulasi (encapsulation) adalah konsep menyembunyikan implementasi detail sebuah kelas dan hanya membolehkan akses ke kelas tersebut melalui data field dan metoda yang mempunyai modifier public. Namun demikian, data field kelas yang dideklarasikan dengan modifier public juga dapat menimbulkan masalah karena dapat dimodifikasi dengan cara diakses langsung melalui variabel acuan yang mengacu ke obyek kelas tersebut.

Untuk mencegah modifikasi langsung melalui variabel acuan, data field kelas perlu dideklarasikan dengan modifier private. Dengan modifier private ini, data field tidak dapat diakses dari luar kelas yang mendefinisikan data field tersebut.

Agar client program bisa mengakses atau memodifikasi nilai dari data field, perlu disediakan metoda dengan modifier public. Metode yang dimaksud adalah get untuk mengembalikan nilai data field dan set untuk memodifikasi nilai data field.

1. Aksesor dan mutator.

Metode get disebut dengan getter atau accessor dan metoda set disebut dengan setter atau mutator. Di bawah ini adalah sintaksis deklarasi metode getter yang digunakan untuk mengembalikan (return) nilai dari data field sebuah kelas.

public tipe-nilai-dikembalikan getDataField();

contoh,

public double getPanjang();
public double getLebar();

Bila tipe-nilai-dikembalikan dari metoda getter adalah tipe boolean, sintaksis penulisannya adalah sebaagai berikut:

public boolean isDataField();

Untuk deklarasi metoda setter yang digunakan untuk memodifikasi nilai data field kelas, Anda dapat menggunakan sintaksis sebagai berikut:

public void setDataField(tipe-data nilai-DataField);

contoh,

public void setPanjang(double nilaiPanjang);
public void setLebar(double nilaiLebar);

Karena data field dideklarasikan dengan modifier private, maka metode getter adalah satu-satunya cara untuk mengakses nilai data field dan metode setter adalah satu-satunya cara untuk memodifikasi nilai data field.

2. Penerapan metoda get dan set.

Data field kelas yang dideklarasikan dengan modifier private tidak dapat diakses menggunakan variabel acuan ke obyek dari kelas tersebut. Data field hanya dapat diakses dan dimodifikasi melalui metoda getter dan setter yang dedeklarasikan dengan modifier public.

Berikut ini adalah contoh program Java hasil modifikasi contoh program di artikel Mendefinisikan Kelas Generik Java dengan mengimplementasikan metode getter dan setter.

 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
30
31
32
33
34
35
36
37
38
39
40
public class SetGetWarna {
 
   // Deklarasi data field atau variabel kelas
   private T nilaiWarna;
 
   // Konstruktor tanpa argumen
   public SetGetWarna() {
      nilaiWarna = null;
   }
 
   // Konstruktor dengan argumen
   public SetGetWarna(T warnaBaru) {
      nilaiWarna = warnaBaru;
   }
 
   // Metode set (setter atau mutator)
   public void setNilaiWarna(T nilaiWarnaBaru) {
      nilaiWarna = nilaiWarnaBaru;
   }
 
   // Metode get (getter atau accessor)
   public T getNilaiWarna() {
      return nilaiWarna;
   }
 
   // Method overriding
   public String toString() {
      return ("Warna : " + nilaiWarna.toString());
   }
 
   // Metoda samaDengan
   public boolean samaDengan(Object setGetWarna2) {
      if (setGetWarna2 == null)
         return false;
      else {
         SetGetWarna warnaLain = (SetGetWarna) setGetWarna2;
         return nilaiWarna.equals(warnaLain.nilaiWarna);
      }
   }
}

Baris nomor 17 – 19 adalah deklarasi metoda setter setNilaiWarna yang digunakan untuk mengubah nilai warna yang tersimpan di data field nilaiWarna dengan nilai baru yang tersimpan di parameter nilaiWarnaBaru. Baris nomor 22 – 24 adalah deklarasi metoda getter getNilaiWarna yang digunakan untuk mendapatkan nilai yang tersimpan di data field nilaiWarna.