Add Your Link - Web Directory. Add your link today. Linkok - Free Link Exchange Submit Nazent Weblog: Aug 14, 2008
Custom Search

Thursday, August 14, 2008

BELAJAR PHP---ILMU WEBSITE---


Sudah lama tidak berjumpa. Rindu rasanya tidak bersua. :D~ Pada
tutorial sebelumnya staff ilmuwebsite yakni ivan telah menjabarkan apa
dan bagaimana penggunaan class pada PHP
begitu juga dengan yang akan penulis lakukan sekarang. 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
dengan baut, komputer :D~. Ada beberapa istilah inti dari keistimewaan
OOP ini, yang paling menarik adalah class, property, method, inheritance, polymorphisme, dan  encapsulation. Apa itu ?!! :D~  
Class
ini merupakan template untuk objek yang akan dibuat nantinya. Kalau
diambil contoh dalam kehidupan sehari-hari. Hmmmm … contoh kasusnya
memasak mie. :D~.
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. :D~ ( kebanyakan coding jadi
stress ) :D
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
:D~~
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 ??~ :D 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. :D~
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.

Shoutz : b_scorpio, abu_zahra, safril, ivan, fadli, dr.emi, ilmuwebsite community.
For jojo. Hi, jo. :D

Sumber dari situs Ilmu Website dalam kategori php kuliah dengan judul Lebih dalam dengan OOP