Artikel ini membahas bagaimana membuat
class dalam PHP. Dijelaskan sedikit mengenai objek atau kelas. Kemudian
diberikan contoh dalam pemakaian sehari-hari. Penerapan sederhana bagaimana
mendeklarasikan kelas dan memakainya diulas sedikit. Contoh yang lebih
serius untuk aplikasi konektivitas ke database juga diberikan disini.
1. Pengantar
Class adalah sekumpulan variabel/property dan fungsi/method yang mengolah
variabel-variabel ini. Class sering disebut juga sebagai objek. Dengan
menggunakan objek proses pembuatan program menjadi lebih cepat, karena
objek-objek yang sudah ada dapat dipakai untuk membuat objek yang lain.
2. Cara membuat objek
Objek dapat didefinisikan dengan sintaksis berikut,
class namaobjek {
var $property;
function method($arg) {
//definisi method;
}
}
sintaksis di atas mendefinisikan sebuah objek yang bernama namaobjek
dengan satu property $property dan satu method yaitu method().
3. Contoh sederhana
Sebagai contoh nyata., kita akan bicarakan sebuah kendaraan favorit saya
" sepeda" . Sebagai sebuah objek tentu saja sepeda mempunyai sifat yang
dimilikinya. Bisa jadi sifat ini dimiliki juga oleh benda/objek lain, tapi
disini saya membicarakan sepeda.
Sepeda milik saya ini warnanya hitam, tentu saja hanya mempunyai 2
roda. Ketika saya beli harganya hanya 100 ribu rupiah. Karena nilai tukar
mata uang rupiah semakin menurun saja, tentu saja kalau saya jual harganya
sudah tidak sebesar itu lagi. Saya tidak tahu harga jualnya lebih rendah
atau lebih tinggi.
Dalam PHP saya dapat mendefinisikan objek sepeda ini seperti berikut,
filenya saya beri nama kendaraan.class.php.
<?php
class sepeda {
var $Roda="2";
var $Warna="hitam";
var $Harga;
function UbahWarna($WarnaBaru) {
$this->Warna=$WarnaBaru;
}
function UbahHarga($HargaBaru) {
$this->Harga=$HargaBaru;
}
}
?>
Studi banding dengan sintaksis dasar sebelumnya dapat kita tarik kesimpulan,
•nama kelas : sepeda
•jumlah property ada 3 yaitu, Roda, Warna, dan Harga
•terdapat 2 method yaitu, UbahWarna dan UbahHarga
Ada dua property yang diberikan nilai awal langsung dalam kelas, sebagai
harga default, dan satu property yang tidak. Jadi anda dapat mendeklarasikan
property seperti ini.
Kelas adalah sebuah type data seperti layaknya jenis data yang lain
misalnya integer atau karakter, jadi deklarasi ini hanya memberitahu PHP
bahwa ada satu jenis data lagi yang bernama sepeda. Jadi agar kita dapat
memakai kelas ini kita harus membuat variabel dengan jenis data sepeda.
Perhatikan contoh pemakaian objek sepeda pada file coba.class.php berikut,
<?php
include("kendaraan.class.php");
echo "<p>Sepeda";
$kendaraan = new sepeda;
echo "<p>Jumlah Roda: ".$kendaraan->Roda."<br>";
echo "Warna: ".$kendaraan->Warna."<br>";
echo "<p>Setelah perintah \"\$kendaraan->UbahWarna(\"merah\")\"<br>";
$kendaraan->UbahWarna("merah");
echo "Warna: ".$kendaraan->Warna."<br>";
?>
include("kendaraan.class.php") digunakan untuk memuat file yang berisi
deklarasi kelas sepeda. Kemudian baris ke 3 adalah cara pembuatan objek
dengan jenis kelas sepeda dengan perintah new. Jika anda load file ini
dalam browser anda, tampilannya tampak seperti gambar ini
Sepeda
Jumlah Roda: 2
Warna: hitam
Setelah perintah "$kendaraan->UbahWarna("merah")"
Warna: merah
Untuk memanggil property dalam objek dengan menyebutkan terlebih dahulu
objek-nya kemudian baru property-nya. Keduanya dipisahkan tanda panah ke
kanan (->), perhatikan cara mengakses property pada baris,
echo "Warna: ".$kendaraan->Warna."<br>";
Demikian juga untuk memanggil method dalam objek tidak banyak berbeda
dengan property,
$kendaraan->UbahWarna("merah");
Yang membedakannya adalah tanda kurung di akhir di akhir.
4. Contoh yang lebih serius
Contoh dalam pemrograman PHP adalah kelas untuk akses ke database MySQL.
Perhatikan definisi kelas berikut ini,
<?php
/* db.class.php
A simple database manipulation class by Salman AS, salmanas@programmer.net.
ChangeLog: 02/14/2001 Started.
02/26/2001
Query Method added.
*/
class DB {
var $Connection;
var $DBHost="localhost";
var $DBUser="root";
var $DBPass="";
var $DBName;
var $DBRecSet;
// Constructor for this class
function DB ($db_host, $db_user, $db_pass, $db_name) {
$this->DBHost = $db_host;
$this->DBUser = $db_user;
$this->DBPass = $db_pass;
$this->DBName = $db_name;
if (!$this->Open()) echo "Error occure on openning
connection or database. Period.";
}
// Open database server connection
function Open () {
if (!($ServerConn = @mysql_pconnect($this->DBHost,
$this->DBUser, $this->DBPass))) {
return 0;
} else {
if (!($this->Connection = @mysql_select_db($this->DBName,
$ServerConn)))
return 0;
else
return 1;
}
}
function Query ($sql) {
if (empty($sql)) echo "No SQL command given. Period.";
if ($this->DBRecSet=@mysql_query(addslashes($sql)))
return $this->DBRecSet;
else
return 0;
}
}
?>
Dari contoh tersebut tampak bahwa kelas adalah sekumpulan variabel
dan fungsi biasa yang mewakili suatu objek tertentu, dalam hal ini konektivitas
ke database MySQL.
Yang harus diperhatikan dari contoh ini adalah adanya fungsi yang mempunyai
nama yang sama dengan nama kelasnya. Fungsi ini akan selalu dipanggil ketika
pertama kali kita menciptakan sebuah variabel berjenis data kelas dengan
perintah new. Fungsi seperti ini sering disebut dengan constructor.
Kata kunci yang lain yang perlu diperhatikan disini adalah $this. Kata
kunci ini dipakai untuk merujuk property/method yang berada dalam kelas
itu sendiri. Perhatikan baris,
$this->DBHost = $db_host;
pada method DB(). Method ini memakai property $DBost dalam kelas dimana
method DB() itu sendiri berada.
Salman AS <salmanas@programmer.net>