Orang bilang ga ada kata terlambat untuk belajar, dan pisau yang tumpul apabila diasah terus-menerus maka akan jadi tajam juga. Dengan bermodalkan dua hal itu saya membulatkan tekad untuk belajar OOP, belajar dari dasar... terseok-seok, karena otak sudah terlanjur akrab dengan pemrograman prosedural.
Berikut istilah-istilah yang biasa digunakan dalam OOP, sedikit saya rangkum sebagai langkah awal dalam memahami OOP.
Warning : pengertian berikut dirangkum dengan pemahaman saya yang masih sangat awam akan konsep OOP
| Object : | |
| Kumpulan Variabel dan Fungsi yang saling berkaitan | |
| Class : | |
| Adalah blueprint atau rancangan dari object. Jadi dari satu class bisa dibuat banyak object . Object adalah instance dari class. Contoh : class = sepeda Object = sepedaGunung, sepedaTandem |
|
| Polymorphism : | |
| Berarti suatu benda seakan-akan mempunyai banyak bentuk. Dua objek atau lebih dikatakan polymorphic bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku yang berbeda. Muncul karena interaksi konsep inheritance dan dynamic binding. Contoh : method sayHello() pada class dog, class cat atau class dog akan menghasilkan keluaran yang berbeda. dog = "guk..guk.." sedangkan cat = "miau..miau.."Jadi class yang berbeda dapat menjawab sebuah pesan yang sama, namun sesuai dengan kemampuan class tersebut. |
|
| Inheritance : | |
| adalah pewarisan sifat, sebuah subclass akan mewarisi sifat dari superclass-nya. Subclass dapat melakukan override terhadap sifat dan kemampuan warisan superclass-nya. | |
| enkapsulasi : | |
| Memastikan pengguna sebuah object tidak dapat mengganti keadaan dalam diri sebuah object dengan cara yang tidak layak, hanya method dalam object tersebut yang dapat diberi ijin untuk mengakses keadaannya. | |
Lanjut ya.... Materi berikut ini merupakan hasil terjemahan dari artikel "An Introduction to OOP in PHP" . Artikel asli dapat langsung dilihat disini
Yang Keren Dari OOP
Mari mulai dari awal dan pelajari konsep dasar. Awalnya, seorang developer PHP menuliskan coding mereka dalam bahasa prosedural. Pada koding semacam ini, Satu hal terjadi setelah hal lainnya dan hal paling menarik yang dapat terjadi adalah penyertaan file lain. Function tersebar disana-sini, dan kumpulan library dari function tersebut dapat membantu memindahkan sesuatu dengan lebih cepat. Ada keterbatasan pada jenis pemrograman seperti ini. Koding dengan cara prosedural cenderung 'merepotkan' bila bekerja dengan 'large site'. Memindahkan sesuatu dengan bantuan include files dapat membantu, tapi bukan penyelesaian dari masalah.
OOP dapat membantu mengatasi semua kerepotan tersebut. Mari kita bicarakan tentang pengertian dari 'object' yang dimaksud dalam OOP. Object adalah kumpulan tipe variabel dalam PHP yang dapat melakukan banyak hal-hal menyenangkan
Mereka (object) dapat dilewatkan from place to place sambil maintenace semua properti dan method yang mereka miliki di dalam diri mereka. Jika ini masih belum masuk akal buat anda, bertahan saja, saya akan membantu. Langkah pertama adalah mengetahui cara menciptakan sebuah objek milik anda sendiri!
Object Kesayangan Kita
Object hanyalah type variabel (seperti yang sudah dijelaskan diatas) dengan feature istimewa yang menyertainya. Untuk membuat sebuah object, anda membutuhkan sesuatu yang disebut class. Pikirkanlah class sebagai suatu framework dibelakang sebuah object yang mendefinisikan kegunaan serta variabel-variabel yang disimpan didalamnya. Berikut contohnya:
-
<?PHP<br />
-
class myClass {<br />
-
function myClass(){<br />
-
}<br />
-
}<br />
-
?>
Pada contoh diatas, "myClass"
merupakan nama dari class, dan kata 'class' adalah kata kunci yang akan dicari oleh PHP untuk mengetahui apa yang anda lakukan. Didalam pendefinisian class tersebut terdapat fungsi dengan nama "myClass". Saya tidak bermaksud membuat anda bingung, ada alasan mengapa fungsi tersebut diberi nama yang sama dengan class yang menampungnya. Fungsi tersebut merupakan fungsi khusus yang disebut constructor. Hal ini seperti membuat pondasi dan membangun dinding dari sebuah bangunan baru, fungsi 'myClass' dijalankan ketika objek pertama kali diciptakan.
Ah~! sekarang kita sampai pada bagian yang menyenangkan! Object Creation!
Jadi, sekarang kita telah mempunyai sebuah contoh class yang siap untuk digunakan. Tapi untuk dapat mengambil sesuatu didalamnya, kita perlu membuat sebuah object yang mewakilinya. Berikut contohnya :
-
<?php<br />
-
$mine=new myClass();<br />
-
?>
Variabel $mine adalah sebuah object yang baru diciptakan. Jika anda melakukan perintah print_r() pada object tersebut anda akan melihat keistimewaannya. Untuk memberitahu PHP bahwa kita ingin menjadikannya sebuah object, kita gunakan kata kunci 'new' diikuti nama class. Contoh diatas BELUM benar-benar melakukan sesuatu, tapi hal itu akan berubah setelah kita berkenalan dengan properties.
Meletakkan Properties
Seperti hal lainnya yang berkaitan dengan class, property sebenernya adalah sesuatu yang telah anda tahu sebelumnya. Property hanyalah sebuah variabel dalam penyamaran. Mengapa mereka berbeda? Didalam sebuah class anda dapat mempunyai variabel, tapi ada variabel yang berasal dari pemanggilan dari level yang lebih tinggi. Variabel ini dapat diakses dari dalam maupun dari luar kelas dan merupakan variabel global didalam sebuah object. Berikut contohnya:
-
<?php<br />
-
class myClass {</p>
-
<p> var $my_var = 'testing';</p>
-
<p> function myClass(){<br />
-
}<br />
-
}<br />
-
$mine=new myClass();<br />
-
?>
Pada contoh diatas, kita menggunakan struktur class seperti pada contoh sebelumnya, tapi kita tambahkan sesuatu yang sedikit berbeda. Variabel '$my_var' yang didefinisikan pada bagian atas menyimpan sebuah nilai yang dapat kita ambil kemudian. Setelah kita membuat sebuah object, ada sebuah operator baru yang diperkenalkan, yaitu '->'. Basically, ini memberitahukan PHP bahwa variabel yang anda referensikan adalah bagian dari object 'mine'. PHP secara otomatis akan menarik current value dari object tersebut dan menampilkannya. dan hal ini tidal hanya sebatas variabel saja, anda juga dapat menggunakan tanda panah ini (->) untuk memanggil method (fungsi didalam class), sebagai contoh :
-
<?php<br />
-
class myClass {<br />
-
function myClass(){<br />
-
}<br />
-
function echoMe(){<br />
-
echo 'me';<br />
-
}<br />
-
}<br />
-
$mine=new myClass();<br />
-
$mine->echoMe();<br />
-
?><br />
Apabila script tersebut dijalankan maka akan menghasilkan tulisan "me" pada halaman browser, sederhana bukan??
Langkah Selanjutnya
Sekarang kita akan mengaplikasikan pengetahuan yang sudah kita punya untuk membuat sesuatu yang berguna - misalnya saja sebuah contoh grafik sederhana. Pada contoh berikut kita akan membuat sebuah kotak pada halaman browser (dengan menggunakan tag DIV) dan dengan bantuan PHP serta CSS, akan dilakukan beberapa perubahan terhadapnya. Berikut contohnya:
-
<?php<br />
-
class myHappyBox {</p>
-
<p> var $box_height = 100;<br />
-
var $box_width = 100;<br />
-
var $box_color = '#EC0000';</p>
-
<p> function myHappyBox(){<br />
-
}</p>
-
<p> function setHeight($value){<br />
-
$this->box_height=$value;<br />
-
}<br />
-
function setWidth($value){<br />
-
$this->box_width=$value;<br />
-
}<br />
-
function setColor($value){<br />
-
$this->box_color=$value;<br />
-
}</p>
-
<p> function displayBox(){<br />
-
<div style="height:%spx;width:%spx;background-color:%s"> </div>
-
<p> ',$this->box_height,$this->box_width,$this->box_color);<br />
-
}<br />
-
}<br />
-
$box=new myHappyBox();<br />
-
$box->displayBox();<br />
-
?>
Ada beberapa hal baru yang harus diperhatikan disini. Kita sudah tahu bahwa kita akan membuat sebuah gambar kotak dengan menggunakan class ini, dan kita tahu bahwa kotak mempunyai poperty tertentu - yaitu panjang, lebar dan warna. Pada contoh class diatas dapat dilihat ketiga property tersebut mempunyai default value (nilai yang telah ditentukan). Dengan menyimpan default value, anda dapat langsung memanggil displayBox() dan akan menghasilkan kotak berukuran 100x100 pixel berwarna merah tanpa perlu lagi mengeset panjang, lebar dan warna kotak tersebut. Tapi bagaimana jika kita ingin mengubah salah satu nilai dari property tersebut? Untuk itulah dibuat fungsi-fungsi lainnya selain displayBox().
Ada tiga buah fungsi didalam class myHappyBox. Yaitu fungsi untuk menentukan panjang, mamentukan lebar dan menentukan warna, dan ketiga fungsi tersebut bekerja dengan dasar yang sama. Masing-masing dari mereka mengambil nilai dan mengeset property global pada nilai tersebut. jadi, apabila kita ingin mengubah ukuran dari kotak tersebut, hal yang harus dilakukan adalah sebagai berikut:
-
<?php<br />
-
$box=new myHappyBox();<br />
-
$box->setHeight(30);<br />
-
$box->setWidth(300);<br />
-
$box->displayBox();<br />
-
?>
Koding diatas akan merubah kotak default dan akan ditampilkan kotak baru dengan lebar yang jauh lebih besar dari pada panjangnya. Perubahan serupa dapat juga dilakukan dengan method setColor() yang akan merubah warna dari kotak, dengan isian nilai pada method setColor() adalah berupa HTML color (Hex).
BUNGKUS !!!!
Jadi, inilah dasar OOP - bukan sesuatu yang menakutkan ataupun perlu dihindari. Malahan OOP bisa jadi suatu hal TERBAIK yang dapat terjadi antara anda dan coding yang anda tulis. Tentu saja menulis ulang aplikasi yang sedang anda buat dengan gaya OOP bisa menjadi sesuatu yang merepotkan, tapi akan selalu ada proyek selanjutnya yang dapat dipertimbangkan. Dan ingat, Ada banyak hal lain yang harus dipelajari selain object, class, method, maupun property seperti yang telah dijelaskan diatas. Anda dapat langsung mengacu ke website PHP.net dan lihat langsung 'their great resources' pada topik OOP. Disitu akan terdapat jawaban atas pertanyaan-pertanyaan yang mungkin sekarang muncul dalam benak anda setelah anda menyelesaikan tutorial ini.
Duh, yang lagi semangat 45 buat belajar OOP. Good Job deh…nanti tak susul ikutan belajar juga.
Tanpa perlu menyusul, dirimu dah jauh ada didepanku kok
Trim’s atas atas artikelnya (semoga menjadi ilmu yang manfaat, Amiin), ini sangat membantu saya yang sedang belajar pemogramman OOP PHP. ada referensi lain/ sample soce code pemograman OOP PHP yang studi kasus/ lainnya….
Glad to help, berikut referensi bacaan tentang OOP :
..::Blog Java Tingkir::..
..::Website developer.com::..
..::Website PHPDeveloper::..
yang merupakan sumber terjemahan artikel ini
..::Manual PHP::..
moga bermanfaat
Penjelasan yang bagus dan mudah dicerna…!!! Good Luck 4 u..!!
Yach terkadang karena penjelasan yang kurang bisa dicerna akan membuat takut untuk mempelajari, beruntung bagi mereka yang melawan ketakutan itu. Terjerumuslah dalam kebodohan bagi yang tak berani melawan ketakutan itu.
Makasih mbak atas penjelasan yang walaupun dirasa kurang banyak, tapi saya jadi rda ngerti bagaimana konsep dasar OOP
buat mba intan…trrim’s y buat penjelasannya, tdinya sya juga berpikir seperti yg ada diartikel td buat program pke oop tuh sulitnya minta ampun…tpi setelah dijalani y sedikit2 bisa juga dan penjelasan dari mba intan juga sangat membantu….trim’s y…
Tul sekali penjelasannya baik sekali. Belajar sedikit2 tapi pasti akan membawa efek yg luar biasa bagus daripada sekali langsung banyak.
Ak termasuk orang yg lum pernah nyoba oop-php, kyknya menarik juga buat dipelajari. Belajar! Belajar!
wah penjelasanya ok buanget deh makasih ya mbak seboga kita anak bangsa jadi lebih pintar denga sumbangan ilmu dari mbak ini tank …?
Sebuah penyampaian yang cukup menarik dan mudah di cerna. Maju terus..
wah, kebetulan saya juga suka ma web developer…
kalo boleh (mungkin agak berat) sharing juga donks tutorial studi kasusnya… mantap nih…
saya nyusul belajar jugaaaa!
penasaran nih ..
tar klo ada kesulitan, boleh donk tanya2
makasih artikelnya
thanks banget deCh…..
akhirnya dengan artikel ini memberikan pencerahan bagi saya yang selama ini selalu dihadapkan dengan program php framework…
dan dengan artikel ini orang yang bener-bener awal bakal mudah mencermatinya termasuk saya sendiri…hiks..hiks
thanks
ridwans
thank’s
okeh punya nich…tutornya lengkapin lagi ya…biar bisa belajar oop jg gw nyah…..
makasih banyak mas…tutorialnya
akhirnya aku bisa dapat pencerahan tentang OPP
walau masih pussing…… (T_T)
thanks
eh…sory… baru liat fotonya ternyata cewe…
ah… bodo banget aku ini…
maklum lagi pusing…
jadi MA kasih ya Mba..eh..eh..
^_^
sedang menyusul ketertinggalan….. : )
thanks ya pren bwt postingannya..
aq sekarang jadi lebih mengerti konsep OOP.
Ternyata OOP di PHP gak susah ya ^ . ^
Waw. ini pencerahan buat saya mba,
kalau boleh minta tutorial oop yang digunakan untuk template sebuah wesite mbak, langkah2nya…..
Thanx B4…..
Thanks buat artikelnya . . .
Semoga membantu saya yg awam oop ini
Cayo semangat
bagus bangetz artikelx…..thanhs yaw,,,,
Pingback: Belajar OOP di PHP « deni10rudiansah
nih yang ngopy sapa nih kok sama si isi blogya?????
http://kubaat.wordpress.com/2010/09/30/belajar-dasar-oop-di-php/
hahaha sama percis lagi……
gak ada refrensinya lagi
Hehe ga perlu dijawabkan siapa mengcopy siapa, bisa dilihat dari tanggal postingnya.
hik hik sedih juga ya tulisan di copy tanpa mencantumkan referensi
ok ganget dech… aku sebenere guak ngerti bgtz masalah OOP tapi setelah bca artikel yang kren ini insyaAllah ada gambaran dech…