Kali ini penulis akan mencoba melakukan sedikit implementasi dari tutorial-tutorial sebelumnya, sekaligus menjelaskan bagaimana source code ini berjalan.
Tapi sebelumnya penulis akan melakukan review terlebih dahulu mengenai pengetahuan sebelumnya.

Apa sih OOP itu ? Untuk apa ?
OOP
singkatan dari Object Oriented Programming, keistimewaan dalam pembungkusan memudahkan para programmer mengarungi lautan kehidupan dalam meng-coding ria bersama istri tercintanya, sebuah mesin penuh engan baut, komputer :D~. Ada beberapa istilah inti dari keistimewaan OOP ini, yang paling menarik adalah class, property, method, inheritance, polymorphisme, dan encapsulation. Apa itu ?!! Class ini merupakan template untuk objek yang akan dibuat nantinya. Kalau diambil contoh dalam kehidupan sehari-hari. Hmmmm … contoh kasusnya memasak mie. Templatenya adalah satu keutuhan cara memasak si mie tersebut. Sedangkan property-nya atau variable adalah berapa banyak bumbu pedas yang dibutuhkan, berapa banyak minyak yang dibutuhkan, berapa banyak air yang dibutuhkan, berapa banyak bawang gorengnya, etc.
Method
sendiri itu sama halnya dengan fungsi yakni bagaimana caranya mie dimasak. Seperti, apakah bumbunya akan dimasukkan kedalam mangkuk terlebih dahulu, atau apakah bumbunya akan di satukan dengan air yang berada di dalam panci. Atau mungkin bisa saja bumbunya langsung dimasukkan kedalam perut yang memasaknya.  ( kebanyakan coding jadi stress )
Inheritance,
dalam istilah bahasa indonesianya dikenal dengan turunan. Jelasnya turunan ini berasal dari suatu kelas induk. Kalo diambil contoh dalam memasak mie, masing-masing orang punya keunikan tersendiri dalam
memasak mie, seperti dalam memasak mie ada orang yang mengikuti aturan memasak mie, ada juga yang senang di tambah dengan telur, atau mungkin kalo ada yang suka bisa saja martabak keju dimasukkan kedalam mie tersebut. Tapi penulis nggak yakin rasanya, akan seperti apa nantinya.
Sedangkan polymorphisme
itu gaya dalam memasak mie itu sendiri, bisa saja ketika memasak mie telurnya itu ditambah dengan kecap manis, atau sambal pedas, atau mungkin terasi. Bisa saja. Iya kan ??Atau juga, ada yang suka mienya pedas, atau mungkin saja ada yang senang dengan mie rasa manis, mie ditambah gula-gula. Semua bisa saja terjadi.

Nah dari situ
timbul satu pertanyaan besar, sebenarnya OOP itu untuk apa sih ? Apakah OOP itu sebagai standarisasi cara memasak mie.  OOP sering digunakan dalam pembuatan aplikasi besar, dimana ketika penambahan fitur terbaru fungsi encapsulation atau pembungkusan dalam class ini sangat berperan penting. Keuntungan lain adalah maintenance ketika ada bug yang bercokol dalam coding ataupun maintenance jenis lain. Dengan

mudah terkontrol. Dan menghasilkan coding yang lebih efisien. Contoh nyata OOP yaitu button. Turunan button seperti bit button, push button dan lain-lain. Dimana button-button tersebut sebenarnya adalah bentuk lain dari button induk yang telah di berikan fitur-fitur tambahan. Implementasinya sudah jelas bukan ? Sekarang penulis akan memberikan sedikit contoh coding menggunakan OOP dalam pembuatan guest book. Dan juga akan dikenalkan sedikit mySQLi API yakni library atau pustaka yang digunakan oleh OOP dalam menghandle database nantinya.

Yups, langsung saja.
Pertama, buat databasenya terlebih dahulu.

File db.sql :
create database oop1 ;
use oop1 ;
create
table gb ( id int(5) auto_increment primary key , nama varchar(50),
email varchar(50), lokasi varchar(75), komentar text );

Kedua file class.konek.db.php :
<?php
/*
ILMUWEBSITE E-LEARNING COMMUNITY
Tutorial PHP – Object Oriented Programming
by : Al-k [ Loka Dwiartara ]
email : alkemail@gmail.com
homepage : http://www.ilmuwebsite.com
*/

// Class atau Template
class konek_ke_database
{

// property
private $host;
private $username;
private $password;
private $koneksinya;
private $database;

// method
function __construct($hostnya, $usernamenya, $passwordnya)
{
$this->host = $hostnya ;
$this->username = $usernamenya ;
$this->password = $passwordnya ;
$this->koneksinya = mysql_connect($this->host, $this->username, $this->password) or die(“mySQL Errorrojing !!!”);
}

function databasenya($pilihdatabase)
{
$this->database = $pilihdatabase;
}

public function seleksi_database()
{
mysql_select_db($this->database, $this->koneksinya ) or die (“Nggak bisa konek euy!!!”);
header(“location: index.php”);
}

}

?>

Kemudian file class.isi.db.php, script ini yang nantinya sebagai tulang punggung antara form isian, dan databasenya :

<?php

/*
ILMUWEBSITE E-LEARNING COMMUNITY
Tutorial PHP – Object Oriented Programming
by : Al-k [ Loka Dwiartara
email : alkemail@gmail.com
homepage : http://www.ilmuwebsite.com
*/

require_once “class.konek.db.php”;

// Class
class displayDatabase extends konek_ke_database
{

// property
private $perintah;
private $nama;
private $email ;
private $lokasi ;
private $isikomentar;

// method
public function filter_database($nm_user, $email_user, $lokasi_user, $komentar_user)
{
$this->nama = wordwrap(strip_tags($nm_user, ”), 80,”n”,1);
$this->email = wordwrap(strip_tags($email_user, ”), 80,”n”,1);
$this->lokasi = wordwrap(strip_tags($lokasi_user, ”), 80,”n”,1);
$this->isikomentar = wordwrap(strip_tags($komentar_user, ”), 80,”n”,1);
}

function insert_database($tabel)
{
$this->perintah
= “insert into $tabel values (”,’$this->nama’, ‘$this->email’,
‘$this->lokasi’, ‘$this->isikomentar’)”;

$run_perintah = mysql_query($this->perintah);
if ($run_perintah)
{
// print “Isi Database Berhasil”;
}
}

}

?>

Dan terakhir adalah file index.php :

<?php
/*
ILMUWEBSITE E-LEARNING COMMUNITY
Tutorial PHP – Object Oriented Programming
by : Al-k [ Loka Dwiartara ]
email : alkemail@gmail.com
homepage : http://www.ilmuwebsite.com
*/

require_once “class.isi.db.php”;

$nama = $_POST[‘nama’];
$email = $_POST[’email’] ;
$lokasi = $_POST[‘lokasi’];
$komentar = $_POST[‘komentar’];

if ($_REQUEST[‘comment’] == “yes”)
{

if (ISSET($_POST[‘nama’]))
{
$mahasiswa = new displayDatabase(“localhost”,”root”,””);
$mahasiswa->databasenya(“oop1”);
$mahasiswa->seleksi_database();
$mahasiswa->filter_database($nama,$email,$lokasi,$komentar);
$mahasiswa->insert_database(“gb”);
}

}

else
{
// Database dalam OOP
// mySQLi API

$mysqli = new mysqli(“localhost”, “root”, “”, “oop1”);
if (mysqli_connect_errno())
{
echo(“Nggak bisa konek !!!”.mysqli_connect_error());
exit();
}

$hasil = $mysqli->query(“select * from gb”);
while ($data = $hasil->fetch_object())
{

echo
“$data->nama<br>$data->email<br>$data->lokasi<hr
align=left size=1 width=80% color=#000000>”;

}

}

?>
<html>
<head>
<title>GuestBook</title>
</head>
<body>
<b>Isi Komentar :</b>
<table border=0><form method = ‘POST’ action = <?php echo “$_SERVER[PHP_SELF]?comment=yes” ?> >
<tr><td>Nama:</td><td><input type=text name=nama></td></tr>
<tr><td>Email:</td><td><input type=text name=email></td></tr>
<tr><td>Lokasi:</td><td><input type=text name=lokasi></td></tr>

<tr><td
valign=top>Isinya:</td><td><textarea rows=6 cols=40
name=komentar></textarea></td></tr>

<tr><td></td><td><input type=submit name=submit value=Kirim

style=’color: #000000; border: 1px solid #000000; background-color:
#DFDFDF’></td></tr></form></table>

</body>
</html>

Dari
situ, penulis akan mencoba menjelaskan script tersebut, namun hanya
mengambil garis besarnya saja. Dimulai dengan script
class.konek.db.php. Disarankan, untuk kedepannya dalam pembuatan kelas
diletakan dalam file yang berbeda, hal ini sangat memudahkan dalam
maintenance nantinya.
Yups, dalam file class.konek.db.php terdapat satu kelas konek_ke_database. Di dalamnya terdapat property :
$host, $username, $password, $koneksinya, dan $database. Lengkapnya seperti ini :

….
class konek_ke_database
{
private $host;
private $username;
private $password;
private $koneksinya;
private $database;
….
Ada
keyword private disana, modifier private ini hanya dapat di akses oleh
method yang berada dalam kelas ini, maupun turunannya. Private
konsepnya hampir sama dengan hak akses suatu file, metodenya saja yang
berbeda. Kita telusuri lagi lebih jauh, penggunaan seperti pengambilan
isi atau pun assignment ( pengisian ) property dalam suatu
method/fungsi, cukup dengan menggunakan keyword $this->property-nya.

Script contohnya :

function __construct($hostnya, $usernamenya, $passwordnya)
{
$this->host = $hostnya ;
$this->username = $usernamenya ;
$this->password = $passwordnya ;

Ini berarti isi property $host dengan isi variable $hostnya.

Sebagai Contoh :

function __construct(“localhost”, “root”, “”)
{
$this->host = $hostnya ;
$this->username = $usernamenya ;
$this->password = $passwordnya ;

echo $this->host ;
hasilnya menjadi

localhost

Gimana ? Gampang kan ! Ada satu lagi istilah aneh di sana. __construct.


function __construct($hostnya, $usernamenya, $passwordnya)
{

Ini merupakan method yang otomatis di eksekusi ketika pembuatan objek berlangsung. Penggunaanya seperti ini :

….

class displayDatabase
{

….

function __construct($hostnya, $usernamenya, $passwordnya)
{
$this->host = $hostnya ;
$this->username = $usernamenya ;
$this->password = $passwordnya ;
$this->koneksinya = mysql_connect($this->host, $this->username, $this->password) or die(“mySQL Errorrojing !!!”);
}

}

$mahasiswa = new displayDatabase(“localhost”,”root”,””);

Yups, untuk selanjutnya cukup mudah dipelajari karena konsepnya sama saja dengan pemrogaman procedural yang biasanya.

Nah Selanjutnya kita pindah ke script class.isi.db.php :

require_once “class.konek.db.php”;

class displayDatabase extends konek_ke_database
{
private $perintah;
private $nama;
private $email ;
private $lokasi ;
private $isikomentar;

public function filter_database($nm_user, $email_user, $lokasi_user, $komentar_user)
{
$this->nama = wordwrap(strip_tags($nm_user, ”), 80,”n”,1);
$this->email = wordwrap(strip_tags($email_user, ”), 80,”n”,1);
$this->lokasi = wordwrap(strip_tags($lokasi_user, ”), 80,”n”,1);
$this->isikomentar = wordwrap(strip_tags($komentar_user, ”), 80,”n”,1);
}

Di
sini jelas terlihat jika class displayDatabase extends
konek_ke_database, atau dengan kata lain kelas displayDatabase adalah
subclass atau anak turunan dari kelas konek_ke_database. Dalam
penggunaannya cukup dengan menggunakan modifier extends di tambah
dengan class induk dibelakang kelas turunannya.

Nah penulis
akan loncat lagi ke script index.php. Di sini beberapa kalimat yang
diambil dari mySQLi api. Sebuah pustaka OOP pada PHP 5 dalam menghandle
database. Caranya lebih cepat, mudah, dan tentunya efisien.

$mysqli = new mysqli(“localhost”, “root”, “”, “oop1”);
if (mysqli_connect_errno())
{
echo(“Nggak bisa konek !!!”.mysqli_connect_error());
exit();
}

$hasil = $mysqli->query(“select * from gb”);
while ($data = $hasil->fetch_object())
{
echo “$data->nama<br>$data->email<br>$data->lokasi<hr align=left size=1 width=80% color=#000000>”;
}

Untuk membuat suatu koneksi cukup dengan membuat instance/objek baru.
$mysqli = new mysqli(“localhost”, “root”, “”, “oop1”);

Kemudian berikan perintah dalam bentuk query.
$hasil = $mysqli->query(“select * from gb”);

Dan tampilkan isi databasenya
while ($data = $hasil->fetch_object())
{
echo “$data->nama<br>$data->email<br>$data->lokasi<hr align=left size=1 width=80% color=#000000>”;
}

Lebih
mudah tentunya !! Yups, cukup sekian mengenai tutorial “Lebih dalam
dengan OOP episode 1”. Anda bisa mengembangkan kelas-kelas tersebut
dengan mudah tentunya.

Selanjutnya akan dijelaskan lebih jauh penggunaan OOP untuk menghandle database. Sekian. Terima Kasih.

File-file tersebut dapat di download disini.

Sumber dari situs Ilmu Website