OOP Pada PHP (Part 1)
Pada artikel ini akan saya jelaskan implementasi OOP pada PHP. Saya tidak akan menjelaskan secara detail tentang konsep dasar OOP, mungkin bisa anda lihat di artikel lainnya. PHP sudah mendukung OOP mulai versi 5, yang mempunyai bentuk pemodelan object yang baru untuk mengatasi kompleksitas masalah yang tidak bisa dilakukan pada versi sebelumnya. PHP 5 memberikan performa yang lebih baik dan fitur baru dibandingkan versi sebelumnya.Kelas / Class
Setiap pendefinisain/deklarasi sebuah kelas pada PHP menggunakan class yang diikuti nama kelas, kemudian diikuti tanda '{' dan diakhiri dengan tanda '}' kita bisa memberikan sembarang nama sebuah kelas, selama tidak sama dengan fungsi yang dimiliki PHP. contoh, class print. nama kelas print tidak bisa kita gunakan, karena print adalah fungsi dimiliki oleh PHP. Kita bisa memuat/mendefinisikan properti kelas dan methode kelas di antara tanda "kurung kurawal". variable $this adalah sebuah variable samaran yang digunakan untuk memanggil sebuah propertis atau methode sebuah kelas. Contoh berikut akan lebih memperjelas tentang kelas pada phpclass orang{#kelas orang #Properties Class var $nama; var $umur; var $tinggi; var $berat; function orang (){#Constructor echo "Initialisation Object"; } function get_nama(){ return $this->nama; } }#end class
pada contoh di atas saya membuat sebuah kelas dengan nama orang. Kelas tersebut memiliki propertis nama, umur, tinggi dan berat. Fungsi orang adalah sebuah constructor dari kelas orang, contstructor tersebut akan dijalankan ketika kita membuat sebuah object orang.
Properti kelas
Properti kelas kelas merupakan sebuah identitas/karakter khusus sebuah kelas, contoh Orang pasti memilki tinggi dan berat. Tinggi dan berat tersebut adalah sebuat properti. pada contoh kelas orang di atas mempunyai properti nama, umur, tinggi dan berat. Untuk memberikan nilai dari properti sebuah kelas kita tidak bisa menggunakan cara langsung, seperti memberikan nilai pada sebuah varible. Contoh, misalkan kita akan memberikan nilai pada variable properti nama dengan value "Rakhmad maulidi", untuk memberikan value pada properti kelas kita menggunakan variable $this, Untuk mengakses/menggambil value properti sebuah kelas juga menggunakan variable $this Contoh berikut akan lebih memperjelas tentang cara memberikan value properti kelas pada PHP$nama="Rakhmad Maulidi";// $this->nama="Rakhmad Idiluam";// echo "$nama";//result : Rakhmad Maulidi echo $this->nama;//result : Rakhmad Idiluamcara di atas bisa kita jadikan dalam bentuk function berikut :
function set_nama($nama){ $this->nama=$nama; } function get_nama(){ return $this->nama; }
Methode/Behavior Kelas
Methode/Behavior Kelas adalah fungsi-fungsi apa yang bisa dilakukan oleh object. Misalkan pada kelas orang bisa melakukan makan, tidur, berjalan. Contoh berikut akan lebih memperjelas tentang cara memberikan methode/behavior kelas pada PHPfunction makan($is_makan) { if ($is_makan){ $mkn = "sedang makan";} else{ $mkn ="sudah makan"; } return $mkn; } function tidur($is_tidur) { if ($is_tidur){ $tdr= "sedang tidur";} else{ $tdr="sudah bangun"; } return $tdr; }
Nah, setelah intermezzo yang saya sampaikan di atas, sekarang waktunya coding yang lebih kongkrit tentang OOP pada PHP. Untuk membuat object dari sebuah kelas kita menggunakan notasi new, contoh
$rahmat = new orang; $andi = new orang; $ali = new orang;
Pada contoh tersebut saya membuat tiga object orang yaitu $rahmad, $andi dan $ali. Masing object akan memiliki properti sendiri-sendiri, misalkan saya akan membeikan value "Rakhmad Idiluam" dari properti nama dari object $rahmad, dan pada object lainnya:
$rahmad->set_nama("Rakhmad Maulidi"); $andi->set_nama("Andi Malarangeng"); $ali ->set_nama("Ali bin Abu Tholib");
Untuk mendapatkan value dari masing properti name dari object kita bisa melakukan cara berikut:
$rahmad->get_nama(); $andi->get_nama(); $ali->get_nama();
untuk penggunaan methode atau behavior pada object kita bisa melakukan cara berikut:
$rahmad->tidur(true); $andi->makan(true); $ali->get_nama(false);
file by; bengkel program, visit at bengkelprogram.com