Pertemuan-6 (OOP Dalam PHP)

Report
UPI CONVENTION CENTER [UPI-CC]
UNIVERSITAS PUTRA INDONESIA “ YPTK “
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 :
1
2
3
4
class nama_class {
var $nama_variable;
fungsi - fungsi;
}
Contoh sebuah Class :
1
2
3
4
5
6
7
8
class mahasiswa {
var $nim;
var $nama;
function cetakData() {
echo "NIM : $this->nim";
echo "Nama : $this->nama";
}
}
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
2
3
4
5
6
$ketua = new mahasiswa();
$wakil = new mahasiswa();
$ketua->nim = “20123421001";
$ketua->nama = “Debie Ayu Mustika Sari";
$wakil->nim = " 201234210012";
$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)
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
2
3
4
class nama_kelas_baru extends nama_kelas_yang_diturunkan {
$var nama_variable; // tambahan variable
function nama_fungsi(); // fungsi yang ditambahkan
}
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 :
01
02
03
04
05
06
07
08
09
10 class mahasiswa extends orang {
11 var $nim;
class orang{
12 var $email;
var $nama;
13 function cetakData(){
var $alamat;
14
echo "Nim : $this->nim\n";
function cetakData() {
15
echo "nama : $this->nama\n";
echo "nama : $this->nama";
echo "alamat : $this->alamat\n";
echo "alamat : $this->alamat"; 16
17
echo "email : $this->email\n";
}
18 }
}
19 }
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
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
2
3
4
5
6
7
8
class A {
function A() { } ; // fungsi constructor
function B() { } ; // fungsi biasa
}
class B extends A {
function C() ; // fungsi biasa
}
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().
Parent
PBO DALAM PHP
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) {
$prog = new Pemrograman("PHP Classic");
$this->nama = $nama;
print $prog->getname();
}
print " Diganti menjadi ";
function Pemrograman($nama) {
changeName($prog, "OOP PHP");
$this->setName($nama);
print $prog->getName();
}
}
function changeName($pemrograman, $nama) {
$pemrograman->setName($nama);
}
?>
PBO DALAM PHP
File Name : Class-1.php
<?php
class person {
var $name;
function set_name($new_name)
{
$this->name = $new_name;
}
function get_name()
{
return $this->name;
}
}
?>
File Name : Class-2.php
<?php
include("Class-1.php");
?>
<body>
<?php
$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
<?php
File Name : Class-6.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;
} }
?>
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
<?
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");
$a->tampilWarna();
echo "<br><b>Mobil kedua</b><br>";
$b->gantiWarna("Hijau");
$b->tampilWarna();
?>
PBO DALAM PHP
<?
class Form
File Name : Class-11.php
{
var $fields = array();
echo "<td><input type='text' name='".$this->
var $action;
fields[$j]['name']."'></td></tr>";
var $submit = "Submit Form";
}
var $jumField = 0;
echo "<tr><td colspan='2'>";
function __construct($action, $submit)
echo "<input type='submit' value='".$this{
>submit."'></td></tr>";
$this->action = $action;
echo "</table>";
$this->submit = $submit;
}
}
function addField($name, $label)
function displayForm()
{
{
$this->fields [$this->jumField]['name'] = $name;
echo "<form action='".$this->action."'
$this->fields [$this->jumField]['label'] = $label;
method='POST'>";
$this->jumField ++;
echo "<table width='100%'>";
}
for ($j=0; $j<count($this->fields); $j++) { }
echo "<tr><td align='right'>".$this-> ?>
fields[$j]['label']."</td>";
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
include "Class-1.php";
{
$product = new Product('Buku Belajar PHP Object', 99.5,10);
public $name='';
echo 'Product Name : '.$product->name.'<br> Price : '; //output 'Buku Belajar
public $price=0;
PHP Object' bukan 'default product name'
public $qty=0;
echo $product->getPrice().'<br>'; //output '99.5' bukan '0'
echo 'Quntity : '.$product->qty;
protected $discount=0;
$nilai=$product->qty*$product->price;
function __construct($productName, $price, $qty){
echo '<br>Nilai Jual : '.$nilai;
$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
}
}
?>
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
<?
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;
}
}
?>
Nama File : Class-6.php
<?
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");
$a->tampilWarna();
echo "<br><b>Mobil kedua</b><br>";
$b->gantiWarna("Hijau");
$b->tampilWarna();
?>
STUDI KASUS OOP PADA PHP
Nama File : Class-7.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; }
}
?>
Nama File : Class-8.php
<?
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;
Script Tabel Matakuliah
Nama Database : dbsisfo
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);
Nama File : index.php
<!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();
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>
Nama File : koneksi.php
<?php
mysql_connect("localhost","root",""); // sesuaikan dengan web server anda
mysql_select_db("dbsisfo");
?>
<?php
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>
<tr>
<td>Kode Mata Kuliah</td>
<td><input type="text" name="kode"</td>
</tr>
<tr>
<td>Nama Mata Kuliah</td>
<td><input type="text" name="nama"</td>
</tr>
Lanjutan
<tr>
<td>Jumlah SKS</td>
<td><input type="text" name="sks"</td>
</tr>
<tr>
<td>Semester</td>
<td><input type="text"
name="semester"</td>
</tr>
<tfoot>
<tr>
<td></td>
<td><input type="submit"
value="Simpan"</td>
</tr>
</tfoot>
</tbody>
</table>
</form>
<?php
}
form_data.php
Lanjutan form_data.php
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>
<?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>
<?php
}
}
?>
Nama File : simpan_database.php
<?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."`";
if($where){
$sql .= " WHERE ".$where;
}
$result = mysql_query($sql, Connect::getConnection());
if(!$result){
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){
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';
$sql = "SELECT * FROM `".$this->_tableName."`";
$sql .=" WHERE
`".$field."`='".mysql_real_escape_string($value,Connect::getConnection())."'";
return new Select($sql);
}
}
?>
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);
if(!$this->_query){
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
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();
}
}
?>
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();
?>
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();
?>
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){?>
<tr>
<td><?php echo $user->user_id;?>
<td><?php echo $user->nama;?></td>
<td><?php echo $user->password?></td>
<td><?php echo $user->tipe?></td>
</tr>
<?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>
<?php
if($_POST){
Nama File : Add.php
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 : 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>
<?php
Nama File : Delete.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();
}
}
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

similar documents