Monday, 23 September 2019

Encapsulation


Encapsulation atau sering disebut information hiding pada dasarnya adalah kombinasi antara data dan method pada sebuah class yang ditunjukan untuk menyembunyikan detail dari user (pengakses class) terhadap suatu object. Jika kita ambil contoh tentang bagaimana orang lain “mengakses data” milik kita. Anggaplah orang ingin tahu apakah kita mempunyai tanda lahir di punggung yang merupakan suatu “data” pada diri kita. Secara umum, kita tidak akan mengijinkan orang lain melihat langsung karena itu adalah bagian “pribadi”. Akan tetapi orang lain dapat mengetahuinya menggunakan “metode” penyampaian yang kita berikan: “Saya tidak memiliki tanda lahir di punggung”. Jadi ada bagian “publik” dan juga ada bagian “pribadi”.

Berikut contoh program menggunakan encapsulation :


Class Kalender




















Pada gambar di atas terdapat deklarasi private attribute, attribute private tersebut juga dapat di ubah menjadi public atua yang lainnya. Selain itu terdapat pula constructor dengan dua input parameter, dan constructor dengan tiga input parameter.




























Pada gambar di atas terbadapat fungsi get seperti getTanggal() yang berfungsi untuk mengakses attribute tanggal, begitu pula dengan getBulan() yang berfungsi untuk mengakses attribute bulan, dan getTahun yang berfung untuk mengakses attribute tahun.

Selain get terdapat pula fungsi set seperti setTanggal yang berfungsi untuk mengisi attribute tanggal, setBulan yang berfungsi untuk mengisi attribute bulan, dan setTahun untuk mengisi attribute tahun.


Class TestKalender 






















Dan jika di runing akan menghasilkan seperti ini :












Selain itu ada pula contoh program menggunakan encapsulation seperti dibawah ini :

Class Siswa



































Bukankah lebih sederhana jika pada class Siswa kita deklarasikan data nama, nis, dan alamat dengan acces modifier public dari pada harus membuat method-method khusus untuk mengaksesnya. Demikian pula cara penggunaannya class SiswaTest, mengambil dan mengubah isi data akan lebih sederhana.



Saat membuat object objSis yang bisa dianggap sebagai proses “membuat seorang Siswa”, maka data nama dan nis tidak boleh diubah selama Siswa tersebut ada sehingga kita harus membuat data nama dan nis sebagai data read only. Jika data-data ini dibuat tidak readonly yang dapat memberikan peluang akses penuh, maka kemungkinan akan terdapat masalah tersendiri. Dengan demikian kita perlu melindungi data nama dan nis dari perubahan-perubahan dari luar class, sehingga perlu diberikan modifier private.












Mungkin cukup sekian semoga dapat bermanfaat
Terima Kasih







No comments:

Post a Comment