OOP (Bagian 2)

Posted: December 11, 2009 in Uncategorized

OOP akan lebih mudah jika kita menggunakan class dan function. Class dan function biasanya terletak pada folder libraries dari sebuah project. Berikut adalah contoh penulisan serta penggunaan class dan function dengan menggunakan netbeans IDE 6.7.1.


<?php
// Class MySQL
// Digunakan untuk koneksi ke database dan mengeksekusi SQL

class MySQL {
 private $host = "localhost";
 private $user = "root";
 private $pass = "";
 private $dbName = "blog";
 private $id;
 private $result;

 public function connect() {
 $this->id = mysql_connect($this->host, $this->user, $this->pass) or die("Gagal Koneksi");
 mysql_select_db($this->dbName,$this->id) or die ("Salah Database");
 }

public function disconnect() {
mysql_close($this->id);
}

public function query($sql) {
$this->result = mysql_query($sql,$this->id);
}

public function fetchArray() {
$data = array();
while($baris = mysql_fetch_array($this->result)) {
$data[] = $baris;
}
return $data;
}
}
?>

Pemrograman di atas terlihat lebih rapi dan teratur, sehingga dapat lebih mudah untuk dipahami. Class diberi nama MySQL. function connect berfungsi untuk menggabungkan koneksi antara program dengan mysql serta memilih database yang digunakan. Function disconnect berfungsi untuk memutuskan koneksi. Function query digunakan untuk memberikan perintah sql untuk memanggil data-data dalam database mysql. Function fetchArray digunakan sehingga program mampu menampilkan data-data dalam database lebih dari 1. Berikut adalah class Artikel sebagai contoh penggunaan function-function dalam class MySQL. Class Artikel juga berisi function-function yang kemudian akan digunakan dalam file artikel.php.

<?php
// Class Artikel
// Digunakan untuk mengolah data di tabel Artikel

require_once 'mysql.php';

class Artikel {
 private $tableName = "artikel";
 private $mysql;

 function __construct() {
 $this->mysql = new MySQL();
 }

function read($id) {
$this->mysql->connect();
$this->mysql->query("select * from $this->tableName where id = '$id'");
return $this->mysql->fetchArray();
$this->mysql->disconnect();
}

function readByKat($kat, $from, $to) {
$this->mysql->connect();
$sql = "select * from $this->tableName
where idkat = $kat
order by tgl desc limit $from, $to";
$this->mysql->query($sql);
return $this->mysql->fetchArray();
$this->mysql->disconnect();
}
function readAll($from, $to) {
$this->mysql->connect();
$sql = "select * from $this->tableName
order by tgl desc limit $from, $to";
$this->mysql->query($sql);
return $this->mysql->fetchArray();
$this->mysql->disconnect();
}
}
?>

Dalam class Artikel terdapat perintah “require_once ‘mysql.php’;”. Perintah tersebut dibutuhkan untuk memanggil function-function yang terletak pada mysql.php, yaitu program diatas sebelumnya.

Di bawah adalah penulisan artikel.php untuk menampilkan data-data dalam table artikel. Perhatikan bahwa dibutuhkan perintah “require_once(‘libraries/artikel.class.php’);” untuk memanggil function-function dari artikel.class.php yang terletak dalam folder libraries.

<?php
require_once('libraries/artikel.class.php');

$artikel = new Artikel();
$hasil = $artikel->readAll(0,3);

foreach($hasil as $baris) {
echo "<h1 class='title'>".$baris["judul"] . "</h1>";
echo "<p class='byline'><small>".$baris["tgl"] . "</small></p>";
echo "<div class='entry'><p>".$baris["isi"] . "</p></div>";
echo '<div>
<p><a href="index.php?modul=artikelread&id='.$baris["id"]. '">Read full post &raquo;</a></p>
</div>';
}
?>
Comments
  1. roby kws says:

    tanks infonya mas

  2. Aduh naksir saya kalo liat cwe jago coding,….. boleh kenalan dong mbak Put🙂

    hhehee

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s