ENCAPSULATION
Ada dua jenis method yang digunakan dalam enkapsulasi, yaitu mutator method dan accessor method. Mutator method digunakan untuk mengubah atau memberi nilai variabel pada class, baik berupa instance maupun static, sedangkan accessor method digunakan untuk membaca nilai variabel pada class, baik berupa instance maupun static.
Manfaat dari encapsulation diantaranya
- Source code dari sebuah class dapat dikelola secara independen dari source code class yang lain. Perubahan internal pada sebuah class tidak akan berpengaruh bagi class yang menggunakannya.
- Penyembunyian informasi yang tidak perlu diketahui objek lain. Modul yang terenkapulasi dengan baik hanya akan berinteraksi dengan bagian program lainya melalui variabel input/output yang telah didefinisikan sebelumnya
Dua hal yang mendasar dalam enkapsulasi adalah adanya data yang disembunyikan dan bagaimana cara untuk mengakses data tersebut. Information hiding adalah proses menyembunyikan informasi dari suatu class sehingga informasi tersebut tidak dapat diakses dari luar dengan cara memberikan akses control private ketika mendeklarasikan suatu atribut atau method. Contoh: private int nrp;
Interface to access data adalah cara melakukan perubahan terhadap attribute yang telah disembunyikan. Caranya yaitu dengan membuat interface berupa method untuk menginisialisasi atau merubah nilai dari attribute tersebut.
Jenis Enkapsulasi
Ada 3 jenis dalam oop untuk mengatur hak akses dari suatu property dan method, yaitu :
- Public, ketika sebuah property atau method dinyatakan sebagai public, maka seluruh kode program di luar class bisa mengaksesnya, termasuk class turunan.
- Protected, jika sebuah property atau method dinyatakan sebagai protected, berarti property atau method tersebut tidak bisa diakses dari luar class, namun bisa diakses oleh class itu sendiri atau turunan class tersebut. Apabila kita mencoba mengakses protected property atau protected method dari luar class, akan menghasilkan error
- Private, jika sebuah property atau method di-set sebagai private, maka satu-satunya yang bisa mengakses adalah class itu sendiri. Class lain tidak bisa mengaksesnya, termasuk class turunan.
Komentar
Posting Komentar