OOP pada PHP mengenal istilah Scope Resolution Operator atau biasa disebut “Paamayim
Nekudotayim” kadang juga disebut “double colon”. Scope Resolution Operator dalam OOP pada PHP
biasa digunakan untuk mengakses property dan method pada suatu class tanpa harus instansiasi
class yang ingin digunakan. Pada bahasan Scope Resolution Operator kita akan mengenal keyword
{parent, self, dan static}.
Untuk lebih jelas lagi, saya coba buatkan test kelas untuk menggambarkan apa itu Scope
Resolution Operator.
job;
}
}
echo test::sebut_nama(); // output : “adiputra”
?>
Pada contoh diatas, Saya dapat mengakses method dari suatu class secara langsung tanpa
harus instansiasi class terlebih dahulu. Aturan nya mudah, kita hanya menyebutkan nama class
diikuti dengan nama method atau property. Lalu apabila saya menambahkan code seperti dibawah
ini.
job;
}
}
echo test::sebut_nama(); // output : “adiputra”
echo test::sebut_kerjaan(); // error
?>
Apabila saya memanggil method sebut_kerjaan() maka akan memunculkan error seperti
gambar dibawah ini :
Error tersebut muncul karna saat memanggil method sebut_kerjaan() terdapat keyword $this
dimana keyword tersebut merupakan keyword pendefinisian suatu object. Karna kita menggunakan
scope resolution operator (tidak membuat object) maka muncul lah error tersebut.
Telah dijelaskan diatas sebelumnya bahwa scope resolution operator tidak lepas dari keyword
parent, self dan static. Berikut ini saya coba jelaskan lagi cara penggunaan pada kasus pembuatan
class e-commerce. Saya buatkan class Produk seperti code dibawah ini :
Terdapat suatu constanta Diskon, untuk kasus sederhana, setiap produk memiliki diskon tetap
yaitu 20 {dalam bentuk persen}. Terdapat pula method get_diskon yang isi nya adalah pemanggilan
value dari constanta DISKON. Terlihat terdapat keyword self yaitu pemanggilan property constanta
Diskon. Keyword self biasa digunakan untuk pemanggilan property atau method pada class itu
Artikel ditulis Adiputra – http://terusbelajar.wordpress.com
sendiri.
Lalu saya coba buatkan class baju.php
_ukuran = $ukuran;
}
public function get_ukuran() {
return $this->_ukuran;
}
public function set_warna($warna) {
$this->_warna = $warna;
}
public function get_warna() {
return $this->_warna;
}
public function get_diskon() {
return parent::get_diskon();
}
public function get_dijual() {
return self::$_dijual;
}
}
?>
Yang mesti ditekankan pada code diatas adalah penggunaan self dan penggunaan parent.
Artikel ditulis Adiputra – http://terusbelajar.wordpress.com
Pada method get_diskon, terdapat keyword parent dimana berfungsi untuk memanggil method
get_diskon yang ada pada class parent yaitu class Produk. Jadi kita dapat memanggil method parent
dari class tertentu dengan scope resolution operator.
Sedangkan pada method get_dijual terdapat keyword self memanggil property $_dijual
dimana property tersebut bertipe static. {keyword static akan saya jelaskan pada artikel selanjutnya,
insyAllah}
Lalu saya coba jalankan dengan code dibawah ini :
set_warna("biru");
$oBaju->set_ukuran("M");
echo $oBaju->get_warna() . "";
echo $oBaju->get_ukuran() . "";
echo baju::get_dijual() . "";
echo baju::get_diskon() . "%";
?>
Tampilan keluaran nya dapat dilihat pada gambar dibawah ini.
Begitulah konsep sederhana Scope Resolution Operator di OOP PHP. Contoh code diatas
hanya untuk menjelaskan alur sederhana agar teman-teman dapat memahami lebih mudah Scope
Resolution Operator.
Semoga bermanfaat..:)
Artikel ditulis Adiputra – http://terusbelajar.wordpress.com