Main-main OOP dengan PHP
Tulisan ini menjelaskan dasar OOP di PHP.
Supaya semangat, mari kita lihat apa tujuan beberapa orang menggunakan OOP:
1. Memudahkan pengembangan software (Dimudahkan dengan UML)
2. Memudahkan orang lain mempelajari (Baik untuk open source style)
3. Mudah untuk dihubungkan dengan program OOP yang dibuat orang lain (code saya kaya fitur)
Kalo.. software Anda udah OOP tentunya bukan perkara sulit untuk menggabungkan ke OOP juga”
Target tulisan saya ini sebenarnya manusia yang baru belajar PHP, terutama para mahasiswa.
Ok.. saya tidak pintar basa basi, kita mulai saja.
class,var,function dan __construct
Kata kunci class menandakan objek. Di dalam class bisa terdiri dari satu atau beberapa variabel dan fungsi.
Analoginya, secangkir kopi adalah objek yang terdiri dari beberapa variabel yakni air ,kopi bubuk, gelas dan sendok, lalu Anda melakukan fungsi pemanas untuk memanaskan air, dilanjutkan melakukan fungsi memasukan kopi dan air panas ke dalam gelas dan menggunakan fungsi aduk dengan sendok.
Ada yang indah dengan OOP ini. Andaikan rekan Anda telah membuatkan sebuah objek secangkir kopi panas tetapi Anda lebih suka dengan kopi susu, bukankah tinggal menambahkan variabel susu saja?? yang hebatnya lagi dengan OOP Anda bisa membuat secangkir teh hanya mengambil objek secangkir kopi panas “tanpa mengambil kopinya” lalu mencampurkan dengan teh.
Hehe… tentu analogi saya ini kurang pas untuk keadaan aslinya, Anda tidak bisa dong mengambil air kopi dari gelas teman Anda untuk membuat teh, tapi di OOP ini bisa dilakukan dengan tanpa mengurangi objek sumbernya!!.
Kekeliruan yang sering terjadi adalah dengan mebuat kelas DEWA, ini biasanya dilakukan manusia yang ngerti teknis apa itu class, function, var, extends dan lain sebagainya tapi tidak paham sama sekali tujuan OOP.
Bagaimana class DEWA ini?? ya… satu kelas campur aduk, ibaratnya orang nyampurin kopi, teh, garam, susu gula, air, sendok ke dalam satu gelas. Hehe… jadi sih objek tapi namanya “kopi manis rasa asin” hihihi… lidahnya bingung.
Nah… oleh karena itu buatlah content objek sesuai dengan tujuan objeknya.
Ayo kita pelajari class sederha berikut:
< ?php
class KopiPanas{
var $gelas ;
var $sendok ;
var $kopi ;
var $air ;
function __construct($gelas,$sendok,$kopi,$air){
$this->gelas = $gelas;
$this->sendok = $sendok;
$this->kopi = $kopi;
$this->air = $air;
}
function pemanas($sesuatu){
return $sesuatu . ” menjadi panas”;
}
function diaduk($a,$b,$c){
return ” $a $b dilarutkan menggunakan $c “;
}
function diletakan($objek,$tempat){
return $objek . ” ditempatkan di “. $tempat;
}}
//objek mulai dibuat
$objek = new KopiPanas(”Gelas gede”,”Sendok kecil”,”Kopi arabika”,”Air mineral”);//Membuat kopi panas
$airpanas = $objek->pemanas($objek->air);
$larutan = $objek->diaduk($airpanas,$objek->kopi,$objek->sendok);
echo $objek->diletakan($larutan,$objek->gelas);?>
Ceritanya:
Mudahnya membuat Teh dengan extends
Saya akan buktikan mudahnya membuat Teh dengen memanfaatkan beberapa objek di kelas KopiPanas. Biar kerasa lebih mudah, Bayangkan bahwa kelas KopiPanas dibuat oleh orang lain, kemudian Anda manfaatkannya untuk membuat Teh panas. Caranya cukup membuat kelas turunan, lihat kode berikut:
class TehPanas extends KopiPanas {
var $teh;
function __construct($jenisteh,$gelas,$sendok,$air){
$this->teh = $jenisteh;
parent::__construct($gelas,$sendok,”",$air);
}
}$objek = new TehPanas(”teh melati”,”gelas kecil”,”sendok biasa”,”Air normal”);
$airpanas = $objek->pemanas($objek->air);
$larutan = $objek->diaduk($airpanas,$objek->teh,$objek->sendok);
echo $objek->diletakan($larutan,$objek->gelas);
Singkatkan??? Bahkan Anda tidak mengubah 1 kodepun di kelas utamanya.
Baiklah, saya ceritakan tentang TehPanas ini:
~ extends menandakan kelas ini keturunan dari kelas KopiPanas, arti keturunan di sini adalah memiliki apa yang Ada di kelas induk.
~ Kita ketemu parent:: di sini, maksdunya adalah memanggil atau menggunakan fungsi induk, jadi parent::__construct adalah memanggil __construct pada kelas induk (KopiPanas).
~ Selesai, siap diminum TehPanas-nya… hehehe
Apakah cerita sangat singkat ini cukup membuktikan indahnya pake OOP???
Bersambung ke sini
By: mauladi at inbox dot com
- C O D E | Time: 8:50 pm (UTC+8)



wah luar biasa . . .
saya lbh mengerti n paham , ,, jadi guru les keren ntu,ap dosen . .
makasi . . .
Comment by - — 17/June/2008 @ 12:52 am
frankly speaking, I’m lack of computer knowledge. Now on I just can say it must be wonderful
Comment by duti_volya — 16/July/2008 @ 4:56 pm