Web programming Access Modifier – Modifier dan bisa disebut juga enkapsulasi atau pengkapsulan merupakan bentuk pengimplementasian konsep Enkapsulasi. Dengan adanya modifier maka class, Interface, Method, dan variabel akan terkena suatu dampak tertentu. Didalam bahasa pemograman PHP, jika kita ingin menggunakan konsep OOP kita akan mengenal sebuah Access Modifiers melalui tiga keyword yaitu :
- Public
- Private
- Protected
Ketiga keyword tersebut digunakan didalam sebuah Class yang bisa kita gunakan untuk mengubah sifat akses pada suatu variable dan method.
Baca juga : Membuat Class dengan OOP PHP
| Public | Private | Protected |
|---|---|---|
| Dalam PHP Method dan variable yang sudah diset menjadi public dapat diakses dimana saja. |
Dalam PHP Method dan variable yang sudah diset menjadi private hanya dapat diakses oleh Class itu sendiri. |
Dalam PHP Method dan variable yang sudah diset menjadi protected dapat diakses oleh Class itu sendiri dan Class turunanya |
Dalam Class khusus yang menggunakan access modifier maka kita tidak perlu menggunakan keyword Var.
Contoh : Access Modifier PUBLIC
class Buku
{
/* Variabel yang ada didalam kelas buku */
public $judul;
Public function getJudul()
{
echo $this->judul . " <br/>";
}
}
Pada code diatas bisa dilihat bahwa variable/property diberi access modifier public dan method/function getJudul diberi access modifier public.
Selanjutnya akan di buat sebuah object menggunakan class Buku
$ahmad = new buku();
Object bernama ahmad ini mencoba mengakses variable/property judul yang ada didalam dirinya sendiri dan mengisikan sebuah nilai (string) kedalamnya :
$ahmad->judul=”Buku pemrogramman Web”;
Untuk melihat isi nilai yang telah kita masukan sebelumnya, kita bisa mengakses variable/property judul yang ada didalam object ahmad secara langsung menggunakan code dibawah ini :
echo $ahmad->judul;
<?php
class Buku
{
/* Variabel yang ada didalam kelas buku */
public $judul;
public function getJudul()
{
echo $this->judul . " <br/>";
}
}
/* Buat sebuah object ahmad dari kelas buku */
$ahmad= new buku();
$ahmad->judul=“Pemrograman Web Lanjut";
echo $ahmad->judul;
?>
Karena method/function getJudul diberi access modifier public maka kita juga bisa mengakses method/functionnya secara langsung dengan code berikut :
echo $ahmad->getJudul();
Dengan variable/property dan method/function yang telah diberi access modifier public. Segalanya bisa diakses.
Contoh : Access Modifier PRIVATE
<?php
class Buku
{
/* Variabel yang ada didalam kelas buku */
private $judul;
public function setJudul($namajudul)
{
$this->judul = $namajudul;
}
public function getJudul()
{
echo $this->judul . " <br/>";
}
}
/* Buat sebuah object ahmad dari kelas buku */
$ahmad= new buku();
/* Mengakses Method/Function setJudul*/
$ahmad->setJudul("Access Modifier di PHP");
/* Mengakses Method/Function getJudul*/
$ahmad->getJudul();
?>
Pada code diatas di buat access modifier pada variable/property judul menjadi private dan membuat sebuah fungsi setJudul yang telah kita beri access modifier public untuk menyimpan nilai kedalam variable/property judul.
Meskipun variable/property judul memiliki atribut access modifier private kita tetap bisa mengaksesnya melalui method/function getJudul, karena method/function getjudul memiliki atribut access modifier public.
Pembahasan Access Modifier memang sulit untuk dijelaskan tetapi setelah kita memahaminya ini akan sangat berguna kedepanya. Sedikit bermain logika menggunakan code dibawah ini :
<?php
class Buku
{
/* Variabel yang ada didalam kelas buku */
private $judul;
public $test;
public function setJudul($namajudul)
{
$this->judul = $namajudul;
$this->test = $this->judul;
}
private function getJudul()
{
echo $this->test . " <br/>";
}
}
/* Buat sebuah object ahmad dari kelas buku */
$ahmad= new buku();
/* Mengakses Method/Function setJudul*/
$ahmad->setJudul("Access Modifier di PHP");
echo $ahmad->test;
?>
Pada code diatas kita membuat variable/property baru bernama test dengan access modifier public. Pada method/function setJudul, nilai yang akan masuk melalui parameter $namajudul akan tersimpan kedalam variable/property judul yang bersifat private kemudian pada statement selanjutnya saya mencoba mencuri nilai yang ada didalam variable/property judul yang bersifat private untuk dimasukan kedalam variable/property test yang bersifat public:
Contoh : Access Modifier PROTECTED
class Buku
{
/* Variabel yang ada didalam kelas buku */
public $judul;
protected $editor;
public function getJudul()
{
echo $this->judul . " <br/>";
}
public function getEditor()
{
echo $this->editor . " <br/>";
}
}
Kita akan membuat class Buku dengan variable/property baru yaitu $editor, selanjutnya variable/property $editor kita beri attribute access modifier protected. Ini artinya variable/property $editor hanya bisa diakses oleh class itu sendiri dan class turunanya.
Kemudian kita akan membuat sebuah child class yang menerima inheritance dari Class Buku. Menggunakan code dibawah ini :
class komik extends buku
{
public $harga;
function __construct($parameter1, $parameter2, $parameter3 )
{
$this->judul = $parameter1;
$this->harga = $parameter2;
$this->editor = $parameter3;
}
}
Disini secara jelas kita bisa memahami Access Modifier Protected, sebab variable/property editor bisa langsung diakses oleh class keturunanya yaitu class Komik. Jika variable/property editor memiliki access modifier private maka dia tidak akan bisa diakes oleh class keturunanya sebab dia hanya bisa diakses oleh class itu sendiri (parent class).
Penjelasan code tadi adalah saat kita membuat sebuah object menggunakan class komik ada 3 parameter yang bisa langsung kita masukan untuk mengisi tiga buah variable/property, salah satunya adalah variable/property editor yang telah kita beri access modifier protected.
Selanjutnya kita akan membuat sebuah object baru menggunakan code dibawah ini :
$ahmad= new komik(“Pemrograman Web Lanjut”,150000,”Ahmad Mubarok”);
jika kita mencoba mengakses variable/property editor secara langsung dengan kode :
/* Mengakses variable/property */
echo $ahmad->editor . ” <br/>”;
Maka hasilnya akan error.
Dan kita bisa mengakses isi nilai variable/property editor melalui method/function getEditor karena dia telah diberi access modifier public
/* Mengakses Method/Function */
echo $ahmad->getEditor();
Simak video dibawah ini untuk penjelasan lebih lanjut.
Referensi : https://www.phptutorial.net/