Seperti layaknya Java, dalam PHP kita juga dapat membuat fungsi-fungsi
dalam suatu kelas yang dapat dipanggil ulang. Dengan cara penulisan seperti itu
program yang dibuat akan menjadi lebih ringkas dan melalui fungsi yang ada kita
dapat menjaga konstrain data agar tetap valid.
Kelas dan Objek
Untuk lebih memahami OOP sebelumnya kita perjelas apa itu Kelas dan Objek.
Kelas adalah
sekumpulan fungsi (metode) dan property (variabel) yang telah
terorganisasi secara baik dan dapat digunakan berulang-ulang. Sedangkan objek
adalah bentuk/hasil dari instansiasi kelas. Jadi untuk dapat menggunakan fungsi
dan property dari kelas kita perlu menjadikannya sebuah objek.Membuat Kelas
Dalam PHP untuk membuat sebuah kelas menggunakan kata kunci class yang
kemudian diikuti nama kelasnya. Kemudian dalam class body (dalam tanda kurung
kurawal) kita isi dengan property dan fungsi-fungsinya.
<?class Barang{<definisi kelas>}?>
Encapsulation
Enkapsulasi adalah sebuah tindakan yang dilakukan untuk menjaga nilai dari property kelas agar tidak dapat secara langsung diakses dari luar. Cara melakukan enkapsulasi itu adalah dengan memberi modifier access private ($nama, $harga) pada setiap property dalam kelas tersebut. Dengan begitu maka untuk dapat mengakses/mengubah nilai dari property sebuah kelas harus melalui metode yang ada (setNama($nama)).<?class Barang{private $nama;private $harga;function setNama($nama){$this->nama = $nama;}}?>
Membuat Objek
Seperti yang dijelaskan sebelumnya, objek merupakan hasil instansiasi dari
suatu kelas. Dalam PHP pembuatan objek tersebut dilakukan dengan cara menulis
tag :
<variable> = new
<kelas>. <?include "kelas.php";$b = new Barang();?>
Anggota Kelas dan Scope
Anggota Kelas adalah menunjuk pada property dan metode suatu kelas.
Sedangkan Scope adalah deklarasi atau batasan yang menentukan dari mana suatu
anggota dapat diakses.
Public
Merupakan scope default untuk semua property dan metode
dalam suatu kelas. Dengan public anggota kelas tersebut dapat diakses dari
script manapun.
Private
Scope private ini berarti anggota itu hanya bisa
diakses dalam kelas tersebut. Tanpa bisa dari luar ataupun turunannya.
Protected
Scope ini sama dengan private, bedanya anggota tersebut dapat juga
diakses oleh kelas turunannya.Metode Ajaib
Yang disebut metode ajaib adalah metode-metode khusus yang secara langsung
dapat berjalan secara otomatis. Metode tersebut adalah :
konstruktor
konstruktor adalah pembangun. Yaitu metode yang
akan berjalan ketika kelas tersebut d-instansiasi (new). Untuk menambahkan konstruktor tersebut dapat
ditulis dengan cara membuat fungsi : __construct().
Destruktor
Seperti layaknya konstruktor, destruktor ini
adalah kebalikan dari konstruktor. Destruktor berjalan ketika objek yang dibuat
tersebut dibebaskan (release) yaitu
ketika objek tersebut di unset (variable
diberi nilai null). Tag-nya
ditulis dengan cara : __destruct().
Metode
Getter
Metode ini adalah metode yang dijalankan secara
otomatis ketika adanya usaha pembacaan variabel yang tidak dikenal (tidak ada)
atau variabel private. Metode ini memiliki 1 parameter, yaitu nama variabel
yang dicari.
Metode
Setter
Metode ini adalah metode yang dijalankan secara otomatis ketika adanya
usaha pengisian nilai ke variabel yang tidak dikenal (tidak ada) atau variabel
private. Metode ini memiliki 2 parameter, yaitu nama dan nilai dari variabel
yang dicari.<? class Barang{private $nama;private $harga;function __construct(){$this->harga = 0;}function __destruct(){unset($this->nama);unset($this->harga);}function setNama($nama){$this->nama = $nama;}function getNama(){return "<B>$this->nama</B>";}function setHarga($harga){if ($harga > 0)$this->harga = $harga;}function getHarga(){return "<B>Rp. $this->harga</B>";}function __get($var){echo "Variabel $var Tidak Dikenal";}function __set($var,$nil){echo "Variabel $var Tidak Dikenal";echo "Nilai $nil Tidak Diproses";}}?>
Inheritance
Inheritance atau pewarisan adalah pembuatan kelas turunan dari sebuah kelas (superclass/parent dan subclass/child).caranya adalah dengan menggunakan tag extends.<?include "kelas.php";class Box extends Barang{<definisi kelas>}?>
Polymorphism
Polymorfisme adalah fitur yang paling penting dalam OOP. Dengan polymorfisme kita dapat mempersingkat kode program. Dengan metode inheritance kita dapat membuat kelas yang merupakan turunan dari kelas yang lain. Kita dapat menggunakan metode dari kelas induk ataupun dapat juga menggembangkannya dengan mudah.<? include "kelas.php";class Kulkas extends Box{private $ukuran;function setUkuran($ukuran){if ($ukuran > 0)$this-> ukuran = $ ukuran;}function getUkuranKulkas(){return "<B>$this->ukuran Inch</B>";}}?>
Variabel Anggota Static
Dalam pembuatan objek suatu kelas, kita dapat mempunyai variabel yang nilainya berbeda-beda untuk tiap objek yang dibuat dari kelas yang sama. Tetapi sebuah kelas dapat mempunyai variabel yang nilainya dapat dipakai bersama oleh semua objek hasil instansiasinya. Variabel itu disebut variabel statis atau sering juga disebut variabel kelas.<? class daftar{private static $banyak = 0;private $nama;function __construct($nama){self::$banyak++;$this->nama = $nama;}function tampil(){echo "Jumlah Pendaftar : ".self::$banyak;echo "<BR>Nama Anda : $this->nama";}}?>
Metode Anggota Static
<?class konversi{static function hari($ke){$days = array("Senin","Selasa","Rabu","Kamis","Jumat","Sabtu","Minggu");if ($ke<8 AND $ke>0)$hari = $days[$ke-1];else$hari = "Input Salah";return "$hari";}}?>
Menyalin Objek
Dalam peng-instansiasi-an sebuah kelas, dilakukan pembuatan objek dengan
suatu lokasi memori tertentu. Dalam beberapa hal perlu dilakukan penduplikatan
objek tertentu. Untuk melakukannya kita dapat menggunakan perintah <$obj2>
= clone <$obj1>. Maka akan
dibuatkan objek kedua yang isinya sama dengan objek pertama.
Kelas parent:: dan self::
Kelas parent:: dalam
PHP digunakan untuk menyebut super kelas dari sebuat kelas turunan. Fungsi ini
digunakan untuk memudahkan OOP. Fungsi ini biasa digunakan dalam pemanggilan
konstruktor atau metode milik super kelas.
Sedangkan self:: adalah
seperti yang dijelaskan diatas, fungsi ini digunakan untuk menyebut kelas dalam
penggunaan anggota kelas statis.
Operator Instanceof
Operator ini adalah sama dengan is_a() dalam OOP lain. Fungsinya adalah untuk mengetahui apakah suatu kelas adalah turunan dari kelas yang disebutkan.<?function tampil($objek){if($objek instanceof Kulkas){$u = getUkuranKulkas();}else{echo "Objek gak Dikenal";}return "$u";}?>
Metode dan Kelas Abstrak
Fungsi dari metode dan kelas abstrak adalah dalam pembuatan keseragaman
antara sub kelas dari kelas abstrak. Kelas abstrak tidak dapat di-instansiasi
melaikan untuk di-extends (penurunan). Dengan adanya metode abstrak ini maka
kita harus meng-override metode abstraknya itu untuk dapat menjadi turunan dari
kelas tersebut. Dengan begitu akan ada semacam standarisasi untuk turunan dari
kelas tersebut.
Interface
<?interface aku{function job();}class aktor implements aku(){function job(){echo "aku adalah aktor";}}?>
Metode Final
Metode final adalah metode yang tidak dapat di-override oleh kelas
turunannya.
Fungsi __autoload()
<?function __autuload($kelas){require_once $_SERVER["DOCUMENT_ROOT"]."/kelas/$kelas.php";}?>
A very tutorial explained by you. At the time of my study I have the classes of Java. Now object oriented progamming is too much famous. I want to know more about it. Please share some more blogs or tutorials regarding this which help me a lot.Thanks.
BalasHapusdigital signature software
wah jdi mengerti saya apa itu konstruktor pda php.
BalasHapusone stop closer - simple plan
Bakteri