Penerapan Enkapsulasi OOP Yang Baik Pada PHP
1. Pendahuluan
Enkapsulasi adalah cara menlindungi properti atau method sebuah kelas dari pengaksesan yang tidak diperbolehkan. Dari kalimat tersebut kita belajar bahwasanya ada properti atau method yang tidak sembarang boleh dipakai. Kenapa harus dilakukan demikian? karena enkapsulasi dapat dikatakan privasi, dimana privasi merupakan dasar keamanan. Enkapsulasi mengamankan kode dari pengaksesan yg tidak diijinkan.
Terdapat 3 jenis enkapsulasi untuk properti maupun method, yaitu: Public, Protected, dan Privat. Ketiga pengkapsulan ini dituliskan sebelum nama properti atau method.
2. Enkapsulasi Public
Enkapsulasi yang pertama adalah public atau umum. Hal ini menandakan properti atau method boleh diakses oleh kelas tersebut, kelas turunan, maupun kelas lain. Jadi semua kelas atau diluar kelas pun boleh mengaksesnya.
3. Enkapsulasi Protected
Properti atau method menggunakan enkapsulasi protected hanya boleh diakses oleh kelas yang bersangkutan dan kelas turunannya.
4. Enkapsulasi Private
Properti atau method yang menggunakan enkapsulasi private hanya boleh diakses oleh kelas yang bersangkutan.
5. Contoh Kasus
Berikut ini adalah contoh kasus penggunaan enkapsulasi yang tepat dalam sebuah program. Berdasarkan perbedaan tiga jenis enkapsulasi diatas dapat disimpulkan manfaat dari cara tersebut yaitu menjaga kode program agar aman.
Pada kode program di atas dapat dilihat sebuah kelas induk yaitu Kriptografi. Kelas tersebut memiliki ketiga jenis enkapsulasi pada method nya. Yaitu public, protected, dan private. Kode program diatas menjelaskan kapan seharusnya kita menggunakan keyword public, protected dan private.
Pada contoh diatas kelas kriptografi ingin mengizinkan method enkripsi dan dekripsi diakses dimanapun, sehingga kita membuat enkapsulasinya public. Sedangkan method pengaturan adalah method spesial yang diperuntukkan untuk kelas turunan, sehingga enkapsulasinya adalah protected.
Kita ketahui proses kriptografi umumnya sangat panjang. sehingga kita memecah proses-proses kedalam method-method lain. Proses ini harus runut dan tidak sembarangan. Maka kita tidak mengizinkan yang lain mengakses method tersebut dengan membuat enkapsulasinya private. Dapat dilihat method-method tersebut digunakan sendiri oleh kelas tersebut. Cara ini berguna untuk mempertahankan konsep modular yang sangat berguna.
6. Pengaruh Enkapsulasi Terhadap Kelas Turunan
Pada kelas turunan, method dengan jenis privat saja yang tidak boleh diakses. Menurut anda mengapa diperlukan jenis privat ini?. Method private ini akan error bila diakses oleh kelas turunannya. Dengan kata lain kelas induk tidak mengijinkan kelas turunan untuk menggunakan atau menurunkan sifat dari method tersebut.
Bila kamu perhatikan method private diakses oleh kelas induk sendiri bukan. Nah dari situ kita paham bahwa method tersebut adalah kepentingan dari kelas induk saja. Masih ingat tentang konsep pemrograman modular ?. Kalau sudah lupa mari saya ingatkan. Konsep pemrograman modular ini mengusung konsep pemrograman dengan cara membagi program yang banyak menjadi bagian-bagian yang kecil. Dengan demikian pecahan-pecahan program tersebut sudah barang tentu tidak boleh diakses sembarangan meskipun ia adalah turunan dari kelas tersebut.
Pada gambar di atas, method dengan jenis private tidak boleh diakses oleh kelas turunan. Sedangkan jenis protected boleh. Menurut anda apa fungsi jenis protected ini ?. Mengapa jenis protected ini di izinkan untuk diakses oleh turunan ?.
Dari method jenis protected ini lah kelas induk akan memaksa penggunanya menurunkan kelas tersebut. Bila ingin menggunakan method nya yang berjenis protected.
Dari turunan-turunan ini menandakan hubungan antara satu file atau kelas dengan file atau kelas lain. Kesimpulannya jika sebuah kelas bukan merupakan turunan dari kelas lain, maka silsilah dari kelas akan terputus.
7. Pengaruh Enkapsulasi Terhadap Kelas Lain
Sebuah kelas yang tidak memiliki hubungan dengan kelas yang mau digunakan dapat dikatakan sebagai kelas lain. Ada beberapa pengaruh enkapsulasi terhadap kelas lain ini. Kelas atau pun bukan kelas (prosedural) hanya boleh mengakses method dengan jenis public saja pada kasus ini.
Pada gambar di atas, kelas lain hanya boleh mengakses method dengan jenis public saja. Menurup anda kapan ini terjadi?. Pada penjelasan-pejelasan awal mengenai oop, kita sudah memahami bahwa konsep ini memudahkan pengembang dalam menggunakan kode program pihak ketiga, yang open soure ataupun memiliki izin. Nah pada kasus demikian kita sering mengimplementasikan cara ini, yaitu tidak menurunkan kelas tersebut.
8. Kesimpulan
Dari penjelasan enkapsulasi di atas dapat ditarik beberapa kesimpulan yaitu:
- Enkapsulasi public untuk izin akses bebas.
- Enkapsulasi protected diperuntukkan untuk turunan.
- Enkapsulasi privat diperuntukkan untuk kelas bersangkutan berkaitan dengan konsep modular.
Terima kasih telah membaca tulisan ini hingga akhir.