di OBJECT ORIENTED PROGRAMMING [OOP] Oleh UPI CONVENTION CENTER [UPI-CC] UNIVERSITAS PUTRA INDONESIA “ YPTK “ Dr. (Can) H. SUMIJAN, Ir, M.Sc PADANG, 08 Agustus 2012
PBO DALAM PHP Mengenal Obyek dan Class Pada pemrograman berorientasi object, yang disebut object adalah instan dari sebuah class. Class terdiri dari variabel dan fungsi yang dibungkus dengan mekanisme pembungkusan kelas. Secara gampangnya class merupakan spesifikasi umum dan struktur dari suatu object sedangkan object merupakan individu-individu yang memiliki spesifikasi sesuai dengan classnya. Dua object yang berasal dari class yang sama dapat memiliki isi variable yang berbeda namun strukturnya pasti sama.
PBO DALAM PHP Sintak dari sebuah Class : Contoh sebuah Class : 1 class nama_class { 2 var $nama_variable; 3 fungsi - fungsi; 4 } 1 class mahasiswa { 2 var $nim; 3 var $nama; 4 function cetakData() { 5 echo "NIM : $this->nim"; 6 echo "Nama : $this->nama"; 7 } 8 } Penjelasan Class ini kita beri nama mahasiswa. Class mahasiswa memiliki 2 variabel yaitu $nim dan $nama. Selain itu class mahasiswa juga memiliki sebuah fungsi yaitu cetakData(). Variable $this pada fungsi cetakData() mengacu pada object tersebut. Untuk menggunakan class ini, kita gunakan keyword new didepan nama class sehingga akan terbentuk sebuah object berdasarkan
PBO DALAM PHP Class ini. Contohnya : 1 $ketua = new mahasiswa(); 2 $wakil = new mahasiswa(); 3 $ketua->nim = “20123421001"; 4 $ketua->nama = “Debie Ayu Mustika Sari"; 5 $wakil->nim = " 201234210012"; 6 $wakil->nama = “Danny Andika Putra"; Object $ketua dan $wakil merupakan object dari class mahasiswa. Yang menarik di sini bahwa object $ketua dan $wakil memiliki $nim dan $nama yang berbeda namun tetap memiliki struktur yang sama. Untuk mengakses isi dari suatu object adalah dengan menggunakan tanda ->
PBO DALAM PHP Penurunan Class (Inharitence) Sintak : Sekali lagi dalam PBO ada yang disebut dengan penurunan class. Maksudnya kita bisa membuat suatu class baru dari class yang sudah ada, mekanisme ini disebut penurunan kelas. Pada php , untuk menurunkan kelas maka digunakan kata kunci extends. Sintak : 1 class nama_kelas_baru extends nama_kelas_yang_diturunkan { 2 $var nama_variable; // tambahan variable 3 function nama_fungsi(); // fungsi yang ditambahkan 4 } Penjelasan Class baru yang dihasilkan selain memiliki variable maupun fungsi seperti pada class utamanya, juga bisa memiliki variable dan fungsi baru. Jika seandainya pada class baru dideklarasikan fungsi baru yang namanya sama dengan nama fungsi pada class utamanya maka fungsi yang digunakan adalah fungsi yang terletak pada class baru.
PBO DALAM PHP Contoh : 10 class mahasiswa extends orang { 11 var $nim; 12 var $email; 13 function cetakData(){ 14 echo "Nim : $this->nim\n"; 15 echo "nama : $this->nama\n"; 16 echo "alamat : $this->alamat\n"; 17 echo "email : $this->email\n"; 18 } 19 } 01 class orang{ 02 var $nama; 03 var $alamat; 04 function cetakData() { 05 echo "nama : $this->nama"; 06 echo "alamat : $this->alamat"; 07 } 08 } 09 Penjelasan Class mahasiswa merupakan kelas turunan dari class orang. Dari class orang, class mahasiswa memiliki variable $nama dan $alamat , dan juga fungsi cetakData(). Selain itu class mahasiswa juga memiliki variable tambahan yaitu $nim dan $email. Sedangkan deklarasi fungsi cetakData() menyebabkan fungsi cetakData() pada class utama tidak digunakan jika fungsi dipanggil dari class mahasiswa.
PBO DALAM PHP Constructor Untuk lebih jelasnya lihat contoh berikut : Constructor merupakan sebuah fungsi yang digunakan untuk menginisialisasikan suatu object baru. Ada aturan yang berbeda dalam PHP 3 dan PHP 4, dimana pada PHP 3, sebuah fungsi constructor merupakan fungsi yang memiliki nama yang sama dengan nama class tersebut dan bisa berasal dari class induknya. Sedangkan pada PHP 4 definisi sama namun ada tambahan jika fungsi constructor yang berasal dari class induknya maka namanya harus sama dengan nama class induknya. Untuk lebih jelasnya lihat contoh berikut : 1 class A { 2 function A() { } ; // fungsi constructor 3 function B() { } ; // fungsi biasa 4 } 5 6 class B extends A { 7 function C() ; // fungsi biasa 8 }
PBO DALAM PHP Penjelasan Pada PHP 3 class B akan menggunakan fungsi B() sebagai constructornya padahal fungsi B() hanya merupakan fungsi biasa. Ini dikarenakan PHP 3 menganggap fungsi constructor merupakan fungsi bernama sama dengan classnya. Lain halnya PHP 4, class B akan menggunakan fungsi constructor A() karena fungsi ini mengacu pada fungsi utamanya, yaitu class A bukan class B. Catatan Pada PHP 3 maupun PHP 4 tidak ada fungsi destructor. Fungsi destructor merupakan fungsi yang dipanggil secara otomatis ketika object itu dihapus dari memori. Untuk mendapatkan efek dari fungsi destructor maka php menyediakan fungsi register_shutdown() dan unset().
PBO DALAM PHP Parent Keyword parent digunakan untuk mengacu pada class utama. Kata kunci ini biasanya digunakan agar dapat mengakses fungsi maupun variable class utama dari kelas turunan. 01 class A { 02 fungsi C() {} ; 03 } 04 05 class B extends A { 06 fungsi B() { 07 echo "Test" ; 08 parent::C(); 09 } 10 } Penjelasan Untuk menjalankan fungsi B() dari class B maka kata kunci parent digunakan untuk mengacu pada class utama dari class B. Sehingga class utama akan menjalankan fungsi B() nya.
PBO DALAM PHP <?php class Pemrograman { var $nama; function getName() { return $this->nama; } function setName($nama) { $this->nama = $nama; function Pemrograman($nama) { $this->setName($nama); function changeName($pemrograman, $nama) { $pemrograman->setName($nama); ?> $prog = new Pemrograman("PHP Classic"); print $prog->getname(); print " Diganti menjadi "; changeName($prog, "OOP PHP"); print $prog->getName();
PBO DALAM PHP File Name : Class-1.php File Name : Class-2.php <?php class person { var $name; function set_name($new_name) { $this->name = $new_name; } function get_name() return $this->name; ?> <?php include("Class-1.php"); ?> <body> $stefan = new person(); $jimmy = new person; $stefan->set_name ("Stefan Mischook"); $jimmy->set_name("Nick Waddles"); </body> </html>
PBO DALAM PHP File Name : Class-3.php <?php include("Class-1.php"); ?> <body> <?php $stefan = new person(); $jimmy = new person; $stefan->set_name("Stefan Mischook"); $jimmy->set_name("Nick Waddles"); echo "<br>Stefan's full name: " . $stefan->get_name(); echo "<br>Nick's full name: " . $jimmy->get_name(); ?> </body> </html>
PBO DALAM PHP File Name : Class-4.php <?php include("Class-1.php"); ?> <body> <?php $stefan = new person(); $jimmy = new person; $stefan->set_name("Stefan Mischook"); $jimmy->set_name("Nick Waddles"); // directly accessing properties in a class is a no-no. echo "Stefan's full name: " . $stefan->name; ?> </body> </html>
PBO DALAM PHP File Name : Class-5.php <?php include("Class-1.php"); ?> <body> <?php $stefan = new person("Stefan Mischook"); echo "Stefan's full name: " . $stefan->get_name(); ?> </body> </html>
PBO DALAM PHP File Name : Class-6.php <?php class person { var $name; public $height; protected $social_insurance; private $pinn_number; function __construct($persons_name) { $this->name = $persons_name; } function set_name($new_name) $this->name = $new_name; function get_name() return $this->name; } } ?> File Name : Class-6.php
PBO DALAM PHP File Name : Class-7.php <?php include("Class-6.php"); ?> <body> <?php $stefan = new person("Stefan Mischook"); echo "Stefan's full name: " . $stefan->get_name(); echo "Tell me private stuff: " . $stefan->$pinn_number; ?> </body> </html>
PBO DALAM PHP File Name : Class-8.php <?php class person { // explicitly adding class properties are optional - but is good practice var $name; function __construct($persons_name) { $this->name = $persons_name; } public function get_name() return $this->name; } //protected methods and properties restrict access to those elements. protected function set_name($new_name) { if ($name != "Jimmy Two Guns") $this->name = strtoupper($new_name); } // 'extends' is the keyword that enables inheritance class employee extends person { protected function set_name($new_name) if ($new_name == "Stefan Sucks") $this->name = $new_name; } function __construct($employee_name) $this->set_name($employee_name); ?>
PBO DALAM PHP File Name : Class-9.php File Name : Class-10.php <? class Mobil { var $warna; var $merk; var $harga; function __construct() $this->warna = "Biru"; $this->merk = "BMW"; $this->harga = "10000000"; } function gantiWarna ($warnaBaru) { $this->warna = $warnaBaru; } function tampilWarna () { echo "Warna mobilnya : " . $this->warna; } ?> File Name : Class-10.php <? include("Class-9.php"); $a = new Mobil(); $b = new Mobil(); echo "<b>Mobil pertama</b><br>"; $a->tampilWarna(); echo "<br>Mobil pertama ganti warna<br>"; $a->gantiWarna("Merah"); echo "<br><b>Mobil kedua</b><br>"; $b->gantiWarna("Hijau"); $b->tampilWarna(); ?>
PBO DALAM PHP File Name : Class-11.php <? class Form { var $fields = array(); var $action; var $submit = "Submit Form"; var $jumField = 0; function __construct($action, $submit) $this->action = $action; $this->submit = $submit; } function displayForm() echo "<form action='".$this->action."' method='POST'>"; echo "<table width='100%'>"; for ($j=0; $j<count($this->fields); $j++) { echo "<tr><td align='right'>".$this-> fields[$j]['label']."</td>"; File Name : Class-11.php echo "<td><input type='text' name='".$this-> fields[$j]['name']."'></td></tr>"; } echo "<tr><td colspan='2'>"; echo "<input type='submit' value='".$this->submit."'></td></tr>"; echo "</table>"; function addField($name, $label) { $this->fields [$this->jumField]['name'] = $name; $this->fields [$this->jumField]['label'] = $label; $this->jumField ++; ?>
PBO DALAM PHP File Name : Class-12.php <?php include “Class-11.php"; echo "<html><head><title>Mahasiswa</title></head><body>"; $form = new Form ("","Input Form"); $form->addField ("txtnim", "Nim"); $form->addField ("txtnama", "Nama"); $form->addField ("txtalamat", "Alamat"); $form->addField ("txttelp", "Telp."); echo "<h3>Silahkan isi form berikut ini :</h3>"; $form->displayForm(); echo "</body></html>"; ?>
STUDI KASUS OOP CREATE TABLE user( user_id varchar(50), nama varchar(100), password varchar(50), tipe varchar(20), PRIMARY KEY (`user_id`) ); CREATE TABLE wisata ( id_wisata tinyint(10) NOT NULL auto_increment, nama_wisata char(150) , alamat char(150) , lat char(65) , lng char(50) , gambar char(45) , PRIMARY KEY ( id_wisata ) ); INSERT INTO user VALUES ('admin', 'Administrator', 'soe165upi', 'USER'); INSERT INTO wisata VALUES (1, 'Pantai Padang', 'Padang', 'Test-1', 'Ind', 'padang1.jpg'), (2, 'Pantai Kata', 'Pariaman', 'Test-2', 'Ind', 'padang2.jpg'), (3, 'Pantai Air Manih', 'Padang', 'Padang Timur', 'English', 'pgtmr.gif');
STUDI KASUS OOP PADA PHP Nama File : Class-1.php Nama File : Class-2.php <? class Product { public $name=''; public $price=0; public $qty=0; protected $discount=0; function __construct($productName, $price, $qty){ $this->name = $productName; $this->price = $price; $this->qty = $qty; } function getDiscount(){ return $this->discount; //cara mengakses properti dari sebuah method function getPrice(){ $price = $this->price - ($this->price * $this->getDiscount()); return $price; function setDiscount($discount){ $this->discount = $discount; // cara men-setting nilai properti dari method ?> <? include "Class-1.php"; $product = new Product('Buku Belajar PHP Object', 99.5,10); echo 'Product Name : '.$product->name.'<br> Price : '; //output 'Buku Belajar PHP Object' bukan 'default product name' echo $product->getPrice().'<br>'; //output '99.5' bukan '0' echo 'Quntity : '.$product->qty; $nilai=$product->qty*$product->price; echo '<br>Nilai Jual : '.$nilai; ?>
STUDI KASUS OOP PADA PHP Nama File : Class-3.php echo "<td><input type='text' name='".$this-> fields[$j]['name']."'></td></tr>"; } echo "<tr><td colspan='2'>"; echo "<input type='submit' value='".$this->submit."'></td></tr>"; echo "</table>"; function addField($name, $label) { $this->fields [$this->jumField]['name'] = $name; $this->fields [$this->jumField]['label'] = $label; $this->jumField ++; ?> <? class Form { var $fields = array(); var $action; var $submit = "Submit Form"; var $jumField = 0; function __construct($action, $submit) $this->action = $action; $this->submit = $submit; } function displayForm() echo "<form action='".$this->action."' method='POST'>"; echo "<table width='100%'>"; for ($j=0; $j<count($this->fields); $j++) { echo "<tr><td align='right'>".$this-> fields[$j]['label']."</td>";
STUDI KASUS OOP PADA PHP Nama File : Class-4.php <?php include “Class-3.php"; echo "<html><head><title>Mahasiswa</title></head><body>"; $form = new Form ("","Input Form"); $form->addField ("txtnim", "Nim"); $form->addField ("txtnama", "Nama"); $form->addField ("txtalamat", "Alamat"); $form->addField ("txttelp", "Telp."); echo "<h3>Silahkan isi form berikut ini :</h3>"; $form->displayForm(); echo "</body></html>"; ?>
STUDI KASUS OOP PADA PHP Nama File : Class-5.php Nama File : Class-6.php <? class Mobil { public $warna=''; public $merk=''; protected $harga=0; function __construct() { $this->warna = "Biru"; $this->merk = "BMW"; $this->harga = "10000000"; } function gantiWarna ($warnaBaru) { $this->warna = $warnaBaru; } function tampilWarna () { echo "Warna mobilnya : " . $this->warna; ?> <? Include “Class-5.php”; $a = new Mobil(); $b = new Mobil(); echo "<b>Mobil pertama</b><br>"; $a->tampilWarna(); echo "<br>Mobil pertama ganti warna<br>"; $a->gantiWarna("Merah"); echo "<br><b>Mobil kedua</b><br>"; $b->gantiWarna("Hijau"); $b->tampilWarna(); ?>
STUDI KASUS OOP PADA PHP Nama File : Class-7.php Nama File : Class-8.php <?php class Orang { var $nama=''; var $umur=''; var $kota=''; function set_nama($new_nama){ return $this->nama=$new_nama; } function set_umur($new_umur){ return $this->umur=$new_umur; } function set_kota($new_kota) { return $this->kota=$new_kota; } function show_identitas(){ echo 'Nama : '.$this->nama.'<br />'; echo 'Umur : '.$this->umur.'<br />'; echo 'Kota : '.$this->kota; } } ?> <? Include “Class-7.php”: $soe = new Orang; $ soe ->set_nama(‘Sumijan'); $ soe ->set_umur(‘48 tahun'); $ soe ->set_kota(‘Nganjuk'); $ soe ->show_identitas(); ?>
STUDI KASUS OOP PADA PHP CREATE TABLE matakuliah ( kode_mk char(10), nama_mk char(65), sks int(11), semester int(11), PRIMARY KEY (kode_mk) ) ENGINE=MyISAM; INSERT INTO matakuliah (kode_mk, nama_mk, sks, semester) VALUES ('KKI721001', 'Pendidikan Karakter', 2, 7), ('KKI721002', 'Pendidikan Agama', 2, 7), ('KKI721003', 'Pendidikan Kwarganegaraan', 2, 7), ('KKI721004', 'Kewirausahaan', 2, 7), ('KKI721005', 'Bahasa Indonesia', 2, 7), ('KKI731006', 'Aplikasi Basis Data Server', 2, 7), ('KKI731007', 'Pemrograman Orientasi Obyek', 2, 7), ('KKI721008', 'Bahasa Inggris', 2, 7), ('KKI731009', 'Sistem Database', 2, 7), ('KKI731010', 'Dasar Pemrograman', 2, 7), ('KKI721011', 'Workshop Application Internet', 2, 5); Script Tabel Matakuliah Nama Database : dbsisfo
Nama File : index.php Nama File : koneksi.php include "koneksi.php"; $menu=$_REQUEST['menu']; switch ($menu) { case "simpan_data": $simpan->simpan_data($kode,$nama,$sks,$semester); break; default: $form_data->tambah_daftar(); echo "<hr>"; $form_data->tampil_data(); } ?> </body> </html> <!DOCTYPE HTML> <html> <head> <title>Tabel Data Akademik</title> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="style2.css"> </head> <body> <?php ini_set('display_errors',0); include "form_data.php"; $form_data=new form_data(); //kelas yang ada pada file form_data.php include "simpan_database.php"; $simpan=new Simpan(); Nama File : koneksi.php <?php mysql_connect("localhost","root",""); // sesuaikan dengan web server anda mysql_select_db("dbsisfo"); ?>
Nama File form_data.php class form_data{ function tambah_daftar() { ?> <form action="index.php?menu=simpan_data" method="post"> <table> <thead> <tr> <td colspan="2 align="center"> <b><font size=4><center>Input Data Mata Kuliah</td> </tr> </thead> <tbody> <td>Kode Mata Kuliah</td> <td><input type="text" name="kode"</td> <td>Nama Mata Kuliah</td> <td><input type="text" name="nama"</td> Nama File form_data.php
Lanjutan form_data.php <tr> <td>Jumlah SKS</td> <td><input type="text" name="sks"</td> </tr> <td>Semester</td> <td><input type="text" name="semester"</td> <tfoot> <td></td> <td><input type="submit" value="Simpan"</td> </tfoot> </tbody> </table> </form> <?php }
Lanjutan form_data.php $s=mysql_query("select * from matakuliah order by kode_mk asc"); while($r=mysql_fetch_array($s)) { echo "<tr>"; echo "<td>".$r['kode_mk']."</td>"; echo "<td>".$r['nama_mk']."</td>"; echo "<td>".$r['sks']."</td>"; echo "<td>".$r['semester']."</td>"; echo "</tr>"; } ?> </tbody> </table> function tampil_data() { ?> <table width="40%"> <thead> <tr align="center"> <td>Kode MK </td> <td>Nama MK</td> <td>SKS</td> <td>Semester</td> </tr> </thead> <tbody>
Nama File : simpan_database.php $kode=$_REQUEST['kode']; $nama=$_REQUEST['nama']; $sks=$_REQUEST['sks']; $semester=$_REQUEST['semester']; class simpan{ function simpan_data($kode,$nama,$sks,$semester){ //memvalidasi apakah data tersebut sudah ada atau belum $validasi=mysql_query("select kode_mk from matakuliah where kode_mk='$kode'"); if(mysql_num_rows($validasi)>0){ echo "<script>alert('Kode Mata kuliah sudah ada'); location.href='index.php';</script>\n"; exit(0); }
Lanjuatan .. simpan_database.php //validasi inputan supaya data yang dimasukkan tidak kosong if(((!$kode)||(!$nama)||(!$sks)||(!$semester))){ echo "<script>alert('Data Tidak Boleh Kosong'); location.href='index.php';</script>\n"; } else{ echo "<script>alert('kode Mk = $kode | Nama Makul = $nama Sudah Tersimpan');</script>\n"; $hasil=mysql_query("insert into matakuliah (kode_mk,nama_mk,sks,semester) values('$kode','$nama','$sks','$semester')"); echo "<script>location.href='index.php';</script>\n"; ?>
HASIL PROGRAM SETELAH DI BROSHING
Nama File : Config.ini ;database configuration dbhost="localhost" dbuser="root" dbpassword="" dbname="test"
Nama File : Config.php <?php class Config { protected static $_config = array(); public static function getConfig($key){ if(!self::$_config){ $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'config.ini'; $config = parse_ini_file($filename); if(false === $config){ throw new Exception('Gagal membaca file konfigurasi'); } self::$_config = $config; if(isset(self::$_config[$key])){ return self::$_config[$key]; ?>
Nama File : Connect1.php <?php include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Config.php'; class Connect { protected static $_connection; public static function getConnection(){ if(!self::$_connection){ $dbhost = Config::getConfig('dbhost'); $dbuser = Config::getConfig('dbuser'); $dbpassword = Config::getConfig('dbpassword'); $dbname = Config::getConfig('dbname'); self::$_connection = @mysql_connect($dbhost, $dbuser, $dbpassword); if(!self::$_connection){ throw new Exception('Gagal melalukan koneksi ke database. '.mysql_error()); } $result = @mysql_select_db($dbname, self::$_connection); if(!$result){ throw new Exception('Koneksi gagal: '.mysql_error()); return self::$_connection; public static function close(){ if(self::$_connection){ mysql_close(self::$_connection); ?>
Nama File : Table.php <?php include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Connect1.php'; class Table { protected $_tableName; function __construct($tableName){ $this->_tableName = $tableName; } public function connect(){ return Connect::getConnection(); public function close(){ Connect::close(); function save(array $data){ $sql = "INSERT INTO `".$this->_tableName."` SET"; foreach($data as $field => $value){ $sql .= " `".$field."`='".mysql_real_escape_string($value, Connect::getConnection())."',"; $sql = rtrim($sql, ','); $result = mysql_query($sql, Connect::getConnection()); if(!$result){ throw new Exception('Gagal menyimpan data ke table '.$this->_tableName.': '.mysql_error());
Lanjutan Nama File : Table.php function update(array $data, $where = ''){ $sql = "UPDATE `".$this->_tableName."` SET"; foreach($data as $field => $value){ $sql .= " `".$field."`='".mysql_real_escape_string($value, Connect::getConnection())."',"; } $sql = rtrim($sql, ','); if($where){ $sql .= " WHERE ".$where; $result = mysql_query($sql, Connect::getConnection()); if(!$result){ throw new Exception('Gagal mengupdate data table '.$this->_tableName.': '.mysql_error()); function delete($where = ''){ $sql = "DELETE FROM `".$this->_tableName."`"; throw new Exception('Gagal menghapus data dari table '.$this->_tableName.': '.mysql_error());
Lanjutan Nama File : Table.php function findAll(){ include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php'; $sql = "SELECT * FROM `".$this->_tableName."`"; return new Select($sql); } function findBy($field, $value){ $sql .=" WHERE `".$field."`='".mysql_real_escape_string($value,Connect::getConnection())."'"; ?>
Nama File : Select.php <?php include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Connect1.php'; class Select implements Iterator{ protected $_query; protected $_sql; protected $_pointer = 0; protected $_numResult = 0; protected $_results = array(); function __construct($sql){ $this->_sql = $sql; } function rewind(){ $this->_pointer = 0; function key(){ return $this->_pointer; protected function _getQuery(){ if(!$this->_query){ $connection = Connect::getConnection(); $this->_query = mysql_query($this->_sql, $connection); throw new Exception('Gagal membaca data dari database:'.mysql_error()); return $this->_query;
Lanjutan Nama File : Select.php protected function _getNumResult(){ if(!$this->_numResult){ $this->_numResult = mysql_num_rows($this->_getQuery()); } return $this->_numResult; function valid(){ if($this->_pointer >= 0 && $this->_pointer < $this->_getNumResult()){ return true; return false; protected function _getRow($pointer){ if(isset($this->_results[$pointer])){ return $this->_results[$pointer]; $row = mysql_fetch_object($this->_getQuery()); if($row){ $this->_results[$pointer] = $row; return $row; Lanjutan Nama File : Select.php
Lanjutan Nama File : Select.php function next(){ $row = $this->_getRow($this->_pointer); if($row){ $this->_pointer ++; } return $row; function current(){ return $this->_getRow($this->_pointer); function close(){ mysql_free_result($this->_getQuery()); Connect::close(); ?>
$table = new Table('user'); // user adalah nama tabel Nama File : Contoh-1.php <? include 'Table.php'; $table = new Table('user'); // user adalah nama tabel $table->connect(); $table->save(array( 'user_id' => 'admin', 'nama' => 'Admin', 'password' => '123456', 'tipe' => 'USER' )); $table->close(); ?>
$tabel = new Table('user'); $tabel->connect(); $data = array( Nama File : Contoh-2.php <?php include 'Table.php'; $tabel = new Table('user'); $tabel->connect(); $data = array( 'nama' => 'Administrator', 'password' => 'soe165upi' ); $tabel->update($data, "user_id='admin'"); $tabel->close(); ?>
$tabel = new Table('user'); $tabel->connect(); Nama File : Contoh-3.php <? include 'Table.php'; $tabel = new Table('user'); $tabel->connect(); $table->delete("user_id='admin'"); $table->close(); ?>
Nama File : Contoh-4.php <? $conn = mysql_connect("localhost", "root", ""); mysql_select_db("test", $conn); $sql = "select * from `user`"; $rs = mysql_query($sql); while($user = mysql_fetch_object($rs)){ echo $user->nama.'-'.$user->user_id.'-'.$user->password.'-'.$user->tipe; } ?>
Nama File : Contoh-5.php <?php include_once 'Table.php'; $table = new Table('user'); $users = $table->findAll(); ?> <table border="1"> <tr> <th>User Id</th> <th>Name</th> <th>Password</th> <th>Type</th> <th>Action</th> </tr> <?php foreach($users as $user){?> <td><?php echo $user->user_id;?> <td><?php echo $user->nama;?></td> <td><?php echo $user->password?></td> <td><?php echo $user->tipe?></td> <?php }?> </table>
Nama File : Index.php <?php include_once 'Table.php'; $table = new Table('wisata'); $wisatas = $table->findAll(); ?> <br><br> <table width="100%" border="1" style="border-collapse:collapse"> <tr><th colspan=7>DAFTAR WISATA KOTA PADANG</th></tr> <tr><th colspan=7><a href=“Add.php">Add</a></th></tr> <tr> <th>id wisata</th> <th>nama wisata</th> <th>alamat</th> <th>lat</th> <th>lng</th> <th>gambar</th> <th>Action</th> </tr>
Lanjutan Nama File : Index.php <?php foreach($wisatas as $wisata){?> <tr> <td><?php echo $wisata->id_wisata;?> <td><?php echo $wisata->nama_wisata;?></td> <td><?php echo $wisata->alamat?></td> <td><?php echo $wisata->lat?></td> <td><?php echo $wisata->lng?></td> <td><?php echo $wisata->gambar?></td> <td> <a href=“Edit.php?id_wisata=<?php echo $wisata->id_wisata?>">Edit</a> <a href=“Delete.php?id_wisata=<?php echo $wisata->id_wisata?>">Delete</a> </td> </tr> <?php }?> </table>
Nama File : Add.php <?php if($_POST){ include_once 'Table.php'; $wisata = new Table('wisata'); try{ $wisata->save(array( 'nama_wisata' => $_POST['nama_wisata'], 'alamat' => $_POST['alamat'], 'lat' => $_POST['lat'], 'lng' => $_POST['lng'], 'gambar' => $_POST['gambar'] )); header("Location: Index.php"); exit; }catch(Exception $e){ echo 'Gagal Menyimpan Wisata'; echo '<br/>Error: '.$e->getMessage(); } ?> <form action="" method="post"> Nama Wisata: <input type="text" name="nama_wisata"/><br/> alamat: <input type="text" name="alamat"/><br/> lat: <input type="text" name="lat"/><br/> lng: <input type="text" name="lng"/><br/> Gambar: <input type="text" name="gambar"/><br/> <input type="submit" value="Save"/> </form> Nama File : Add.php
Nama File : Edit.php <?php include_once 'Table.php'; $wisata = new Table('wisata'); if($_POST){ try{ $data = array( 'nama_wisata' => $_POST['nama_wisata'], 'alamat' => $_POST['alamat'], 'lat' => $_POST['lat'], 'lng' => $_POST['lng'], 'gambar' => $_POST['gambar'] ); $wisata->update($data,"id_wisata='$_POST[id_wisata]'"); header("Location: Index.php"); exit; }catch(Exception $e){ echo 'Gagal Mengedit data Wisata'; echo '<br/>Error: '.$e->getMessage(); } $currentWisata = $wisata->findBy('id_wisata', $_GET['id_wisata']); $currentWisata = $currentWisata->current(); ?>
Lanjutan Nama File : Edit.php <form action="" method="post"> Id Wisata: <input type="text" name="id_wisata" value="<?php echo $currentWisata->id_wisata?>" readonly="readonly"/><br/> Nama Wisata: <input type="text" name="nama_wisata" value="<?php echo $currentWisata->nama_wisata?>"/><br/> alamat: <input type="text" name="alamat" value="<?php echo $currentWisata->alamat?>"/><br/> lat: <input type="text" name="lat" value="<?php echo $currentWisata->lat?>"/><br/> lng: <input type="text" name="lng" value="<?php echo $currentWisata->lng?>"/><br/> Gambar: <input type="text" name="gambar" value="<?php echo $currentWisata->gambar?>"/><br/> <input type="submit" value="Update"/> </form>
Nama File : Delete.php <?php include_once 'Table.php'; $wisata = new Table('wisata'); if($_POST){ try{ $data = array( 'id_wisata' => $_POST['id_wisata'], 'nama_wisata' => $_POST['nama_wisata'], 'alamat' => $_POST['alamat'], 'lat' => $_POST['lat'], 'lng' => $_POST['lng'], 'gambar' => $_POST['gambar'] ); //$tabel->update($data, "user_id='admin'"); $wisata->delete("id_wisata='$id_wisata'"); header("Location: Index.php"); exit; }catch(Exception $e){ echo 'Gagal Menghapus data Wisata'; echo '<br/>Error: '.$e->getMessage(); } Nama File : Delete.php
Lanjutan Nama File : Delete.php $currentWisata = $wisata->findBy('id_wisata', $_GET['id_wisata']); $currentWisata = $currentWisata->current(); ?> <form action="" method="post"> Id Wisata: <input type="text" name="id_wisata" value="<?php echo $currentWisata->id_wisata?>" readonly="readonly"/><br/> Nama Wisata: <input type="text" name="nama_wisata" value="<?php echo $currentWisata->nama_wisata?>"/><br/> alamat: <input type="text" name="alamat" value="<?php echo $currentWisata->alamat?>"/><br/> lat: <input type="text" name="lat" value="<?php echo $currentWisata->lat?>"/><br/> lng: <input type="text" name="lng" value="<?php echo $currentWisata->lng?>"/><br/> Gambar: <input type="text" name="gambar" value="<?php echo $currentWisata->gambar?>"/><br/> <input type="submit" value="Delete"/> </form>
HASIL EKSEKUSI PROGRAM