Encapsulation


Encapsulation merupakan cara membungkus data dan method yang menyusun kelas dan menyembunyikannya dari dunia luar. Jika telah dilakukan information hiding terhadap suatu attribut pada suatu class, lalu bagaimana cara melakukan perubahan terhadap attribut yang telah disembunyikan tersebut ? caranya adalah dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu attribut tersebut.

Berikut ini keuntungan dari prinsip encapsulation :

  • Bersifat independen. Suatu modul yang terenkapsulasi dengan baik akan bersifat independen dari yang lain. Sehingga dapat digunakan pada bagian manapun dari program.
  • Bersifat transparan. Jika Anda melakukan modifikasi pada suatu modul, maka perubahan tersebut akan dirasakan oleh semua bagian yang menggunakan modul tersebut.
  • Menghindari dari efek yang diluar perencanaan. Modul yang terenkapsulasi dengan baik hanya akan berinteraksi dengan bagian program melalui variable input dan output yang telah didefinisikan sebelumnya. Sehingga dapat mengurangi kemungkinan bug.

Dua hal yang mendasar dalam enkapsulasi, yakni :

a.  Information Hiding

Adalah proses yang menyembunyikan informasi dari  suatu class sehingga class tersebut tidak dapat diakses dari luar. Yaitu dengan memberikan akses kontrol “private” ketika mendeklarasikan atribut atau method.

b.  Interface to Acces data

adalah cara melalukan perubahan terhadap atribut yang di information hiding yaitu dengan membuat suatu interface berupa method untuk menginisialisasi atau merubah nilai dari suatu atribut tersebut.

Mutator dan Accesor Method

Untuk mengimplementasikan enkapsulasi, kita tidak menginginkan sembarang object dapat mengakses data kapan saja. Untuk itu, kita deklarasikan atribut dari class sebagai private. Namun, ada kalanya dimana kita menginginkan object lain untuk dapat mengakses data private. Dalam hal ini kita gunakan accessor methods.

a. Accessor Methods

Accessor Methods digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static. Sebuah accessor method umumnya dimulai dengan penulisan get<namaInstanceVariable>. Method ini juga mempunyai sebuah return value.Sebagai contoh, kita ingin menggunakan accessor method untuk dapat membaca nama,alamat, nilai bahasa Inggris, Matematika, dan ilmu pasti dari siswa.

Mari perhatikan salah satu contoh implementasi accessor method.

public class StudentRecord {
private String name;
:
:
public String getName(){
return name;
}
}

dimana, public – Menjelaskan bahwa method tersebut dapat diakses dari object luar class

String – Tipe data return value dari method tersebut bertipe String

getName – Nama dari method

() – Menjelaskan bahwa method tidak memiliki parameter apapun

Pernyataan berikut, return name;

dalam program kita menandakan akan ada pengembalian nilai dari nama instance variable ke pemanggilan method. Perhatikan bahwa return type dari method harus sama dengan tipe data seperti data pada pernyataan return. Anda akan mendapatkan pesan kesalahan sebagai berikut bila tipe data yang digunakan tidak sama :

StudentRecord.java:14: incompatible types
found : int
required: java.lang.String
return age;
^
1 error

Contoh lain dari penggunaan accessor method adalah getAverage,

public class StudentRecord{
private String name;
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;   
}
}

Method getAverage() menghitung rata – rata dari 3 nilai siswa dan menghasilkan nilai return value dengan nama result.

b. Mutator Methods

Bagaimana jika kita menghendaki object lain untuk mengubah data? Yang dapat kita lakukan adalah membuat method yang dapat memberi atau mengubah nilai variable dalam class, baik itu berupa instance maupun static. Method semacam ini disebut dengan mutator methods. Sebuah mutator method umumnya tertulis :

set<namaInstanceVariabel>

Mari kita perhatikan salah satu dari implementasi mutator method :

public class StudentRecord{
private String name;
public void setName( String temp ){
name = temp;
}
} 

dimana, public – Menjelaskan bahwa method ini dapat dipanggil object luar

classvoid – Method ini tidak menghasilkan return value

setName – Nama dari method

(String temp) – Parameter yang akan digunakan pada method

Pernyataan berikut :

name = temp;

mengidentifikasi nilai dari temp sama dengan name dan mengubah data pada instance variable name. Perlu diingat bahwa mutator methods tidak menghasilkan return value. Namun berisi beberapa argumen dari program yang akan digunakan oleh method.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s