A.PENDAHULUAN
Hallo Teman..!! Apa kabar?? Bertemulagi dengan blog saya kali ini saya akan berbagi tentang kegiatan prakerin di blc telkom klaten.
B.PENGERTIAN
Enkapsulasi (encapsulation) adalah sebuah metoda untuk mengatur struktur class dengan cara menyembunyikan alur kerja dari class tersebut.
C.LATAR BELAKANG
Dengan memahami PHP OOP kita dapat lebih mudah dalam pembuatan logika di php
D.MAKSUD DAN TUJUAN
Untuk lebih memahami konsep PHP OOP
E.ALAT DAN BAHAN
laptop/pc
laptop/pc
koneksi internet
F.WAKTU YANG DIPERLUKAN
F.WAKTU YANG DIPERLUKAN
-
G.PEMBAHASAN
Hak Akses: 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:<?phpPerhatikan penambahan kata public sebelum nama property dan nama method. Kode diatas pada dasarnya sama dengan contoh class laptop kita dalam tutorial sebelum ini.
// 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"
?>
Jika hak akses property dan method tidak ditulis, maka PHP menganggapnya sebagai public.
Hak Akses: 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:
<?phpDalam contoh diatas, pemanggilan property $pemilik dan method hidupkan_laptop() dari luar class akan menghasilkan error.
// 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
?>
Walaupun akses level protected tidak bisa diakses dari luar class, namun bisa diakses dari dalam class itu sendiri, berikut adalah contohnya:
<?phpHampir sama dengan contoh kita sebelumnya, property $pemilik di deklarasikan sebagai protected, sehingga pengaksesan dari luar class akan menghasilkan error. Oleh karena itu, saya membuat sebuah public method yang akan menampilkan hasil property $pemilik, yakni method akses_pemilik().
// buat class laptop
class laptop {
// buat protected property
protected $pemilik="Anto";
public function akses_pemilik() {
return $this->pemilik;
}
protected function hidupkan_laptop() {
return "Hidupkan Laptop";
}
public function paksa_hidup() {
return $this->hidupkan_laptop();
}
}
// buat objek dari class laptop (instansiasi)
$laptop_anto = new laptop();
// jalankan method akses_pemilik()
echo $laptop_anto->akses_pemilik(); // "Anto"
// jalankan method paksa_hidup()
echo $laptop_anto->paksa_hidup(); // "Hidupkan Laptop"
?>
Begitu juga dengan method hidupkan_laptop() yang tidak bisa diakses secara langsung. Saya menambahkan method paksa_hidup() yang secara internal akan mengakses method hidupkan_laptop().
Hak Akses: Private
Hak akses terakhir dalam konsep enkapsulasi adalah 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
?>
Dalam kode diatas, saya membuat 2 buah class, yakni class komputer, dan class laptop. Class laptop merupakan turunan dari class komputer. Di dalam class komputer terdapat property $jenis_processor dengan akses level private. Di dalam class komputer dan class laptop, saya membuat method tampilkan_processor() yang digunakan untuk mengakses property $jenis_processor.
Pengaksesan method tampilkan_processor() dari objek $komputer_baru sukse ditampilkan karena berada di dalam satu class dimana property $jenis_processor berada.
H.HASIL YANG DIDAPAT
Telah memahami PHP OOP
I.PENUTUP
sekian yang dapat saya sampaikan semoga bermanfaat..!!J.REFERENSI
https://www.duniailkom.com