Pada tutorial kali ini anda akan belajar apa itu ENKAPSULASI object Pada OOP(Object Oriented Programming) dan bagaimana cara mengatur hak akses method dan properti.
Enkapsulasi(encapsulation) adalah sebuah metode untuk mengatur struktur class dengan cara menyembunyikan alur kerja dari class tersebut. Struktur class yang dimaksud adalah property dan method. Dengan enkapsulasi, kita bisa membuat pembatasan akses kepada property dan method, sehingga hanya property dan method tertentu saja yang bisa diakses dari luar class. Enkapsulasi juga dikenal dengan istilah ‘information hiding’.
Ada 3 Kunci 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. Berikut adalah contoh penulisan public property dan public method dalam PHP.
<?php
// buat class laptop
class laptop {
// buat public property
public $pemilik;
// buat public method
public function hidupkan_laptop() {
return "Hidupkan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// set property
$laptop_anto->pemilik="Anto";
// tampilkan property
echo $laptop_anto->pemilik; // Anto
// tampilkan method
echo $laptop_anto->hidupkan_laptop(); // "Hidupkan Laptop"
?>
2. 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, seperti contoh berikut ini:
<?php
// buat class laptop
class laptop {
// buat protected property
protected $pemilik;
// buat protected method
protected function hidupkan_laptop() {
return "Hidupkan Laptop";
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// set protected property akan menghasilkan error
$laptop_anto->pemilik="Anto";
// Fatal error: Cannot access protected property laptop::$pemilik
// tampilkan protected property akan menghasilkan error
echo $laptop_anto->pemilik;
// Fatal error: Cannot access protected property laptop::$pemilik
// jalankan protected method akan menghasilkan error
echo $laptop_anto->hidupkan_laptop();
// Fatal error: Call to protected method laptop::hidupkan_laptop()
// from context
?>
3. 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.
Sebagai contoh, berikut adalah hasil yang di dapat jika kita mengakses property dan method dengan level private:
<?php
// buat class komputer
class komputer {
// property dengan hak akses protected
private $jenis_processor = "Intel Core i7-4790 3.6Ghz";
public function tampilkan_processor() {
return $this->jenis_processor;
}
}
// buat class laptop
class laptop extends komputer{
public function tampilkan_processor() {
return $this->jenis_processor;
}
}
// buat objek dari class laptop (instansiasi)
$komputer_baru = new komputer();
$laptop_baru = new laptop();
// jalankan method dari class komputer
echo $komputer_baru->tampilkan_processor(); // "Intel Core i7-4790 3.6Ghz"
// jalankan method dari class laptop (error)
echo $laptop_baru->tampilkan_processor();
// Notice: Undefined property: laptop::$jenis_processor
Oke itulah pengertian enkapsulasi serta 3 kunci untuk memberikan hak akses property dan method untuk Object Oriented Programming.