Apa Itu Enkapsulasi Pada PHP

Dalam materi kali ini kita akan membahas tentang apa itu enkapsulasi pada php.

Enkapsulasi / Pengkapsulan adalah konsep melindungi kode sumber yang ada pada Class dari pengaksesannya dari luar Class.

Merupakan konsep pembatasan akses, terhadap Property dan juga Method yang ada pada sebuah Class, untuk di akses dari luar Class.

Dengan proses Pengkapsulan ini, seorang Developer dapat menentukan apakah Property dan juga Method yang dibuat dapat digunakan di luar Class, atau hanya dapat digunakan oleh Class itu sendiri dan juga turunannya ?

Hal ini dilakukan untuk melindungi code yang ada di dalam Property dan juga Method tersebut. Agar nilai – nya tidak dirubah – ubah oleh Developer lain, karena sudah di definisikan sebagai nilai mutlak, dan biasanya kalau dirubah, maka program tidak akan berjalan sebagaimana yang diharapkan.

Proses Pengkapsulan terbagi ke dalam 3 cara, yakni Public, Protected, dan juga Private. 3 Keyword ini di definisikan sebelum pendefinisian Property dan Method. Sekarang mari kita bahas fungsi dari ketiga keyword ini :

Pengertian Hak Akses Public

Hak Akses Public, dengan keyword ini, berarti anda mendefinisikan supaya Property dan juga Method dapat di akses oleh Class turunan dan juga di luar Class. Contoh :

Maka ketika Property dan juga Method tersebut di akses, tidak akan muncul error apapun.

Berikut kode lengkapnya :

Dan di bawah ini adalah outputnya :

apa itu enkapsulasi pada php

Dengan keyword Public anda juga dapat membuat Property/Method dapat di akses oleh Class turunan.

Dari kode sumber di atas, pasti anda menemui keyword $this, keyword ini merujuk pada Property/Method yang saat ini digunakan, kita akan membahas keyword ini panjang lebar pada materi lainnya.

Dan hasil dari kode sumber di atas adalah seperti gambar berikut :

hak akses public pada oop

Pengertian Hak Akses Protected

Hak Akses Protected, jika sebuah Property / Method di definisikan sebagai Protected, maka Property dan Method tersebut hanya dapat di akses dari dalam Class itu sendiri dan juga Class turunan.

Berikut contohnya, dimana sebuah Property / Method di akses dari dalam Class itu sendiri :

Silahkan jalankan kode sumber di atas, maka anda tidak akan mendapatkan error apapun.

hak akses protected pada oop

Selain dapat di akses dari dalam Class, Property / Method yang di definisikan sebagai Protected juga dapat di akses oleh Class yang menjadi turunannya, atau biasa disebut Class Anak / Child Class. Untuk membuat Class Anak, anda harus menambahkan keyword extends setelah pendeklarasian Class Anak tersebut.

Dan apabila kode sumber di atas anda jalankan, anda tidak akan menemui error apapun.

apa itu hak akses protected pada oop

Namun apabila Property / Method dengan hak akses Protected anda akses dari luar Class, maka akan menampilkan pesan Error.

Output :

pengertian protected pada oop

Pengertian Hak Akses Private

Terakhir adalah tipe hak akses Private, dimana jika sebuah Property / Method di definisikan sebagai Private, maka Property / Method tersebut hanya dapat di akses dari dalam Class yang mendefinisikannya dan akan menghasilkan error apabila di akses dari luar Class / Class turunan – nya.

Contoh Pengaksesan dari dalam Class :

Pada source code di atas saya mendefinisikan Property $nomor_seri dan Method speed() sebagai Private. Namun saya mencoba untuk mengakses Property $nomor_seri, dari dalam Class melalui Method nomor_seri() yang saya definisikan secara public.

Maka tidak akan menghasilkan Error apa pun.

hak akses private pada oop

Namun jika anda mengaksesnya dari luar Class, maka akan menghasilkan error. Pada contoh ini, saya gunakan fungsi speed() yang sebelumnya saya definisikan sebagai private dan akan saya akses dari luar Class.

Maka akan menghasilkan error.

pengertian hak akses private pada oop

Dapat dapat anda lihat juga pada pesan Error yang saya garis bawahi. Dimana pada pesan error tersebut saya mencoba mengakses “Call to private method” sehingga di anggap error yang fatal.

Dan yang terakhir, anda juga tidak dapat mengakses Private Property/Method dari Class turunan. Karena pada intinya, Property/Method yang bersifat Private hanya dapat di akses oleh Class yang mendefinisikannya.

Dapat anda perhatikan pada method :

Saya coba mengambil Property $nomor_seri  yang dimiliki Class parent lewat script :

Namun tidak berhasil, dan malah mengeluarkan pesan error, yakni error pada baris 19 :

apa itu hak akses private pada php

Hal ini menandakan jika saya tidak dapat mengakses Private Property dari Parent Class ke Child Class. Namun anda dapat mengakalinya, yakni dengan membuat Method yang bersifat Public pada Class yang mendefinisikan Private Property tersebut, dimana Public Method ini mengambil Private Property – nya. Dalam hal ini, saya mendefinisikannya pada method nomor_seri().

Kemudian pada Method nomor_seri_motor(), silahkan anda rubah statement di dalamnya menjadi return $this->nomor_seri();.

Sebelum :

Sesudah :

Maka tidak akan mengeluarkan error apapun.

level hak akses pada oop


Demikian tutorial dari Apa Itu Enkapsulasi Pada PHP. Silahkan kunjungi tutorial lainnya seperti Class dan Object atau Method dan Property.

× Contact Us