Object Oriented Programming (OOP) merupakan konsep yang sudah sangat umum digunakan di dunia pemrograman. Di seri tutorial ini saya akan mereview konsepnya dari awal, supaya saya tidak lupa dan bisa refresh terus tentang Object Oriented Programming. Sumber utama tutorial ini dari buku Konsep dan Teknik Menguasai Modern OOP di PHP by Awan Pribadi Basuki, diterbitkan oleh buku lokomedia. Buku yang sangat bagus. Bisa pesan langsung di situsnya, bukulokomedia.com.
Di OOP, kita akan berjumpa dengan banyak istilah seperti class, object, abstraction, polymorphism, inheritance, encapsulation, method, property. Kita akan membahas istilah-istilah tersebut secara perlahan. Di bagian 1 ini kita akan membahas Class dan Object.
Class dan Object
Class adalah blueprint atau cetak biru yang menjadi struktur dasar object, dan Object adalah hasil inisiasi dari class. Class terdiri atas property dan method. Kalau diibaratkan, class itu adalah blueprint dari sebuah bangunan rumah, dan object adalah bangunan rumah itu sendiri. Dari sebuah Class bisa dibuat banyak object.
Membuat Class
Nama class diawali dengan huruf kapital, dan diikuti kurung kurawal. Misalnya Rumah{}, Mobil{}, Orang{}, PesawatTerbang{} dll. Format Class di php seperti ini :
1 2 3 4 5 |
<?php class Handphone{ //Kode program untuk kelas Handphone } ?> |
Menambah Property
Seperti yang sudah dibicarakan tadi, Class terdiri atas property dan method. Property adalah variabel yang berada di dalam class, method adalah function yang berada di dalam class. Misalnya, kita akan membuat sebuah Class Handphone{} yang memilik property $merk, $tipe, $tahun, dan $warna.
1 2 3 4 5 6 7 8 9 |
<?php class Handphone{ public $merk; public $tipe; public $tahun; public $warna = 'silver'; } ?> |
Keyword public di atas berarti property tersebut bisa diakses dari luar Class. Keyword lainnya untuk property adalah private, protected. Kita akan membahasnya juga nanti. Penamaan property apabila lebih dari dua kata, disarankan menggunakan camel case, yaitu huruf kecil untuk kata pertama, dan huruf besar untuk kata kedua dan berikutnya. Misalnya $tanggalLahir, $warnaProduk, $tahunPembuatan, dan yang lainnya. Kita juga bisa memberi nilai default pada property, contohnya seperti $warna di atas yang defaultnya adalah silver.
Membuat Object dari Sebuah Class
Proses pembuatan object dari sebuah class adalah instantiation. Sehingga, sebuah object adalah suatu instance dari Class. Contohnya seperti ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php class Handphone{ public $merk; public $tipe; public $tahun; public $warna = 'silver'; } $hp = new Handphone(); echo "<pre>"; print_r(var_dump($hp)); echo "</pre>"; die(); ?> |
Untuk membuat object, gunakan keyword new yang diikuti nama Class nya. Di atas kita membuat suatu object $hp dari class Handphone{}.
var_dump kita gunakan untuk melihat isi dari object $hp. Hasilnya seperti ini :
Mengakses Property
Sebelumnya, kita akan ubah Class Handphone{} menjadi seperti ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php class Handphone{ public $merk = 'Apple'; public $tipe = 'iPhone X'; public $tahun = '2017'; public $warna = 'silver'; } $hp = new Handphone(); echo "Handphone $hp->merk <br>"; echo "Model $hp->tipe <br>"; echo "Tahun $hp->tahun <br>"; ?> |
Kita lihat dari kode di atas, pertama-tama object $hp dibuat dari Class Handphone{} menggunakan keyword new, kemudian tampilkan dilayar dengan perintah echo property dari object $hp, yaitu merk, tipe, dan tahunnya. Untuk mengakses property suatu Class gunakan tanda -> .
Mengatur Nilai Property
Untuk mengatur Nilai property, menggunakan tanda seperti mengakses property.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php class Handphone{ public $merk = 'Apple'; public $tipe = 'iPhone X'; public $tahun = '2017'; public $warna = 'silver'; } $hp = new Handphone(); $hp->merk = 'Samsung'; $hp->tipe = 'Galaxy S8'; $hp->tahun = '2017'; $hp->warna = 'Hitam'; echo "Handphone $hp->merk <br>"; echo "Model $hp->tipe <br>"; echo "Tahun $hp->tahun <br>"; echo "Warna $hp->warna <br>"; ?> |
Sesudah menginisiasi suatu object, berikan nilai untuk masing-masing propertynya, maka object saat ini sudah berbeda dengan property defaultnya.
Menambahkan Method dan Pemanggilannya
Method adalah fungsi yang berada di dalam sebuah Class. Kita akan membuat method nyala() untuk menyalakan class Handphone{}.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?php class Handphone{ public $merk = 'Apple'; public $tipe = 'iPhone X'; public $tahun = '2017'; public $warna = 'silver'; public function nyala(){ echo "Turning on HP..."; } } $hp = new Handphone(); $hp->merk = 'Samsung'; $hp->tipe = 'Galaxy S8'; $hp->tahun = '2017'; $hp->warna = 'Hitam'; echo "Handphone $hp->merk <br>"; echo "Model $hp->tipe <br>"; echo "Tahun $hp->tahun <br>"; echo "Warna $hp->warna <br>"; echo "<br>"; //Memanggil Method nyala; $hp->nyala(); ?> |
Untuk membuat method, gunakan keyword function diikuti nama methodnya. Untuk pemanggilannya nama object diikuti tanda panah dan nama method, jangan lupa tanda kurung buka kurung tutup.
Membuat Banyak Object dari Satu Class
Dengan OOP, kita dapat membuat lebih dari satu object dari sebuah class, sehingga sebuah class bersifat reuse, yaitu dapat digunakan kembali.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<?php class Handphone{ public $merk; public $tipe; public function nyala(){ return "Turned on...<br>"; } } $hp1 = new Handphone(); $hp1->merk = 'Apple'; $hp1->tipe = 'iPhone X'; echo $hp1->merk ." ".$hp1->tipe." ".$hp1->nyala(); $hp2 = new Handphone(); $hp2->merk = 'Samsung'; $hp2->tipe = 'Galaxy S8'; echo $hp2->merk ." ".$hp2->tipe." ".$hp2->nyala(); ?> |