Home > OO Programming > Encapsulation

Encapsulation

Jangan expose data saudara. Jika anda mengexposenya keluar. Maka seluruh dunia akan mengetahuinya bahkan mengubahnya. Coba kita lihat contoh yg dapat terjadi jika data diexpose.

theCat.height = 27;

kita mengubah secara langsung tinggi dari kucing. Okelah. Masih dapat diterima. Tapi bagaimana jika diubah menjadi seperti ini

theCat.height = 0; 

aih .. penyiksaan terhadap kucing.

Jadi kita memerlukan validasi. Nah kita harus membuat setter method untuk setiap instance variable. Dengan begitu kita dapat menjaga integritas datanya.

public void setHeight(int ht) {
	if (ht > 9) {
	    height = ht;
       }
}

Sembunyikan data. Data sebaiknya private dan memiliki setter dan getter. Meskipun tidak untuk semua kasus. Tapi untuk sementara seperti ini sajalah dulu. Jika semua data public sama saja kita membuat object tersebut telanjang. Tindakan asusila dapat dikenai tindak pidana hukum.

Encapsulasi menjaga instance variable diubah secara tidak pantas. Setiap instance variable diasumsikan memiliki batas2 yg dapat dterima dari nilai yg dikandungnya.

Contohnya tinggi manusia tidak mungkin minus. Atau jumlah kamar dalam suatu rumah tidak mungkin minus dll.

Dengan membuat setiap aksi untuk mengubah variable harus melalui setter maka kita dapat melakukan validasi terhadap paramater yg dilewatkan dan menentukan layak atau tidaknya parameter tersebut. Mungkin kita akan menolak atau tidak melakukan apa2, throw exception.

Dengan setter method ada banyak hal yg dapat kita lakukan. berbeda halnya dengan membuat variable public.

Meskipun mungkin kita sering melihat kebanyakan setter method hanya menset value saja tanpa mengecek. cth :

public void setName(String name) {
     this.name = name;
}

bukankah sama saja efeknya dengan employee.name = “somename”;
?? Ini kan suatu hal yg sia2 ??

Point yg penting adalah kita dapat berubah pikiran kemudian tanpa takut akan merusak code orang lain. Coba bayangkan jika setengah programmer di perusahaan anda bekerja menggunakan kelasmu dengan public variable. Dan suatu hari anda tersadar. Wah.. ini ga benar. Ini harus pake setter method. Dan kita mengubahnya begitu saja. Maka code programmer lain yg langsung mengakses instance variable tersebut akan break.

Ide dari encapsulasi adalah kita dapat berubah pikiran kemudian tnpa ada orang yg disakiti.. heehhe

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: