PHP merupakan server-side scripting untuk membangun halaman web dinamis yang sangat populer saat ini dan powerful. Keunggulan PHP adalah pada kemudahan dalam penulisan program dan dukungan extension library yang sangat banyak terutama dalam hal koneksi database. Salah satu keunggulan PHP yang lain adalah penulisan kode dalam style Object Oriented Programming atau biasa juga disingkat OOP. Style OOP sudah didukung sejak PHP 3, tetapi mulai versi 5 style OOP PHP ditulis ulang kembali agar lebih mendekati kepada prinsip-prinsip OOP yang sebenarnya seperti munculnya modifier public, protected, private, abstract dsb. OOP pada PHP 5 mirip dengan OOP pada Java.



Apa sih Object Oriented Programming itu? OOP mudahnya adalah membangun sebuah aplikasi dengan menggunakan object (objek). Mari kita analogikan sebuah aplikasi sebagai sebuah Mobil. Mobil dibangun oleh komponen-komponen pendukungnya (objek) seperti ban, mesin, rangka mobil, setir dan komponen-komponen lainnya. Setiap komponen mempunyai fungsinya masing-masing dan saling mendukung satu sama lain, agar sebuah mobil dapat berjalan dengan baik. Hal seperti ini kemudian kita implementasikan dalam pembangunan aplikasi dimana kita membangun aplikasi dengan menggunakan objek-objek yang telah kita buat sebelumnya. Pengenalan lebih lanjut mengenai konsep OOP dapat dilihat di sini.



Untuk membuat sebuah objek maka kita harus mendeklarasikan terlebih dahulu Blue-Print atau prototype dari object tersebut. Prototype dari sebuah objek dalam terminologi pemrograman disebut class (kelas). Di bawah ini adalah contoh sebuah deklarasi kelas dengan sebuah variabel dan sebuah metode.






<?php
 
class kelasKucing
{
var nama_kucing = '';
 
// metode untuk memberikan nama pada kucing

function setNamaKucing($isi_nama_kucing)
{
$this->nama_kucing = $isi_nama_kucing;
}

 
// metode untuk mengetahui nama kucing
function getNamaKucing()
{
return $this->nama_kucing;
}

}
 
?>







Source code di atas mendeklarasikan sebuah kelas (Blue-Print) dengan nama kelasKucing. Kelas ini nantinya akan menghasilkan sebuah objek "kucing". Salah satu metode kelas ini adalah metodeSetNamaKucing yang fungsinya adalah memberikan nama untuk objek kucing nantinya. WARNING!! Jangan samakan kelas dengan objek, objek merupakan hasil cetakan dari sebuah kelas.



Untuk membuat sebuah objek dari dari kelasKucing, maka kita harus meng-instantiate kelasKucing atau mudahnya mencetak sebuah objek dari kelasKucing. Contohnya bisa dilihat pada contoh di bawah ini :






<?php
 
require 'kelasKucing.inc.php';
 
// buat objek kucing pertama
$blacky = new kelasKucing();
// kasih nama buat kucing baru kita

$blacky->setNamaKucing('blacky');
// siapakah nama kucing yang baru kita buat
echo "Nama kucing pertama kita adalah : ".$blacky->getNamaKucing;

 
// buat objek kucing kedua
$kitty = new kelasKucing();
// kasih nama buat kucing baru kedua kita
$kitty->setNamaKucing('kitty');
// siapakah nama kucing yang baru kita buat

echo "Nama kucing kedua kita adalah : ".$kitty->getNamaKucing;
 
?>







Perbedaan paling mendasar pada OOP di PHP 5 dengan versi PHP sebelumnya adalah pada akses kepada properti dan metode dari kelas. Pada PHP 4, semua properti kelas bisa diakses secara public (dari manapun) dan semua metode kelas bisa diakses secara static tanpa harus membuat objek dari kelas terlebih dahulu. Pada PHP 5 sudah diperkenalkan modifier-modifier properti dan metode seperti halnya Java dan C++. Beberapa diantaranya yang penting adalah :

  • PUBLIC

    Ini artinya setiap properti atau metode bisa diakses secara langsung oleh program
    lain diluar kelas.

  • PROTECTED

    Ini artinya setiap properti atau metode hanya bisa diakses oleh kelas itu sendiri
    dan bisa diakses oleh kelas lain yang meng-inherit kelas tersebut.

  • PRIVATE

    Ini artinya setiap properti atau metode hanya bisa diakses oleh kelas itu
    sendiri.


Contoh implementasi modifier ini bisa dilihat pada source code di bawah ini :






<?php
 
class kelasKucing
{
private nama_kucing = '';
private tahun_lahir_kucing;
protected usia_kucing;
public gender_kucing = '';

 
public function setNamaKucing($isi_nama_kucing)
{
$this->nama_kucing = $isi_nama_kucing;
}

 
public function setTahunLahirKucing($isi_tahun_lahir_kucing)
{
$this->tahun_lahir_kucing = $isi_tahun_lahir_kucing;
}

 
protected function hitungUsiaKucing()
{
if ($this->tahun_lahir_kucing AND ) {

$this->usia_kucing = (integer)date("Y") - $this->tahun_lahir_kucing
}

}
 
 
}
 
// buat objek kucing
$arie = new kelasKucing();
// metode setNamaKucing dan setTahunLahir bisa dipanggil

// langsung oleh objek karena sifatnya public
// kasih nama untuk si kucing
$arie->setNamaKucing("arie");
// tahun lahir si kucing
$arie->setTahunLahir(1982);

 
// syntax di bawah ini benar
// karena properti gender_kucing bersifat public
$arie->gender_kucing = "laki-laki"
 
// syntax di bawah ini salah dan akan memunculkan error
// properti usia_kucing bersifat private

$arie->usia_kucing = 20;
// properti nama_kucing bersifat private
echo "Nama kucing kita adalah : ".$arie->nama_kucing;

 
?>







Bisa dilihat bahwa implementasi OOP pada PHP 5 sudah sangat advanced dan pada kenyataan sudah banyak extension library ataupun fungsi-fungsi di PHP 5 yang menggunakan model OOP untuk penggunaannya. Salah satunya adalah fungsi mysql improved (mysqli) yang menyediakan style komunikasi database mysql dalam bentuk OOP. Sampai sini dulu pengenalan pada OOP PHP 5, see you on next articles with same topics.