OOP PHP Part 4 - Mengenal Enkapsulasi (Public , Private , Protected ) Pada OOP
PHP OOP Part 4 - Setelah sebelumnya kita mempelajari tentang pengertian dan pengenalan method construct dan destruct, maka pada tutorial PHP OOP part 4 kali ini, kita akan mempelajari tentang pengertian public, private dan protected pada method dan property oop. di tutorial ini kita akan belajar tentang pengertian enkapsulasi atau dalam bahasa ingris nya encapsulation.
Enkapsulasi adalah salah satu yang paling terpenting di dalam pemrograman berorientasi objek(OOP). karena tahap enkapsulasi lah yang menentukan pemberian hak akses pada setiap property atau method. enkapsulasi atau encapsulation pada OOP terdiri dari 3. yaitu : Public, Private dan Protected.
PENGERTIAN ENKAPSULASI
Enkapsulasi(encapsulation) adalah metode untuk mengatur struktur pada class. dengan tujuan untuk menentukan hak akses pada property atau method. baca tutorial sebelumnya tentang pengertian class, object, property dan method. ini bertujuan untuk menyembunyikan informasi dari method dan property dengan alasan keamanan.
Untuk dapat memberikan hak akses pada method dan property pada sebuah class, di OOP terdapat 3 teknik yaitu, public, private dan protected. dan akan kita jelaskan satu persatu. di mulai dengan hak akses public.
HAK AKSES PUBLIC
Jika sebuah method dan property menggunakan public, maka method dan property tersebut dapat di akses dari luar atau dari dalam class tersebut. perlu di ketahui, pada method dan property yang tidak di tetapkan hak aksesnya menggunakan public, private dan protected, maka hak akses pada method atau property tersebut adalah secara default menjadi public. seperti penulisan oop yang kita pelajari sebelumnya.
Contoh penggunaan hak akses public :
<?php
class Mahasiswa {
// property public nama mahasiswa
public $nama;
//method public mendapatkan nama mahasiswa
public function getNama() {
return "Saya adalah seorang mahasiswa";
}
}
//membuat instan objek
$mahasiswa = new Mahasiswa();
//memanggil method public
echo $mahasiswa->getNama();
Perhatikan pada syntax di atas, terdapat Terdapat property dan method yang ditetapkan public. Property dan method tersebut dapat diakses di dalam atau diluar class sekaligus dapat diakses pada turunanya. Seperti pada contoh di atas kita memanggil method diluar class.
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. Contoh :
<?php
//class manusia
class mahasiswa{
//menentukan property dengan private
private $nama = "Yogi prasetyawan";
//method public
public function tampilkan_nama(){
return "Nama saya " .$this->nama;
}
}
//instansiasi class mahasiswa
$mahasiswa = new mahasiswa();
//memanggil method public tampilkan_nama dari class mahasiswa
echo $mahasiswa->tampilkan_nama();
?>
Jika $mahasiswa->tampi_nama() sobat ganti dengan $mahasiswa_nama maka yang akan muncul adalah Fatal error: Uncaught Error: Cannot access private property mahasiswa::$nama in ~ . Error itu terjadi karena sobat mengakses method yang berproperty private di luar class.
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. Contoh :
<?php
//class mahasiswa
class mahasiswa{
//menentukan property dengan protected
protected $nama = "Yogi prasetyawan";
//method protected
protected function nama(){
return "Saya adalah mahasiswa bernama " .$this->nama;
}
public function tampilkan_nama(){
return $this->nama();
}
}
//instansiasi class mahasiswa
$mahasiswa = new mahasiswa();
//memanggil method public tampilkan_nama dari class mahasiswa
echo $mahasiswa->tampilkan_nama();
?>
KESIMPULAN
Enkapsulasi ini wajib dikuasai sebagai sebuah metode untuk mengakses property atau method, dan setiap jenis dari enkapsulasi ini memiliki karakteristiknya sendiri. Antara public dan private memiliki fungsinya sendiri yaitu Public dapat diakses dimana saja sementara private hanya dapat diakses di dalam class. Jika ada yang ditanyakan silahkan, Sekian terima kasih.
Tidak ada komentar :
Posting Komentar