tutorials_php oop_ save edit delete & menampilkan data dengan oop
DESCRIPTION
Tutorial PHP dengan sistem Object Oriented Programming (OOP)TRANSCRIPT
-
Tutorial PHP Pemula & Mahir
PHP OOP: Save Edit Delete & Menampilkan Datadengan OOP
Sep 22, 2012 By Ellyx Christian Level: Menengah Komentar Print
Banyak kelebihan yang diberikan dari pemrograman berorientasi objek atau OOP. Salah satunya adalahreusable, dimana kode php yang ditulis dapat digunakan kembali, tanpa harus menulis kembali kode php untuk
melakukan hal yang sama. Tutorial PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP ini
akan dibahas cara menyimpan, menampilkan, mengedit, dan menghapus data menggunakan konsep OOP.
Membuka Koneksi ke Database dengan OOP
Hal pertama yang harus dilakukan sebelum bisa menyimpan data adalah membuka koneksi ke database. Untuk
membuka koneksi ke database dengan php, cukuplah mudah. Misal, bisa menggunakan kode sederhana dibawah:
$koneksi = mysql_connect("localhost","root",""); //host, user, password1.mysql_select_db("db_test", $koneksi);2.
Jika kode ini langsung diubah kedalam konsep OOP, maka akan seperti:
class Connect {1.public static function getConnection(){2.
$koneksi = mysql_connect("localhost","root",""); //host, user, password3.mysql_select_db("db_test", $koneksi);4.return $koneksi;5.
}6.}7.
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
1 of 15 4/15/2014 8:28
-
Namun bukan cara ini yang akan digunakan, karena pada saat parameter koneksi seperti host, user database dan
password berubah maka class ini harus diubah atau diedit sesuai dengan parameter yang baru. Hal itu
bertentangan dengan Open/Closed Principle dimana class terbuka untuk ekstensi/inheritance tapi tertutup untukmodifikasi. Class yang sudah selesai ditulis hanya terbuka untuk modifikasi untuk perbaikan error.
File Konfigurasi
Jadi apa yang diperlukan agar bisa mengubah parameter koneksi? sebuah file konfigurasi. Dalam tutorial iniakan digunakan sebuah file config.ini untuk menyimpan semua konfigurasi. Pertama buatlah file dengan nama
config.ini dan tulis konfigurasi berikut:
;database configuration1.dbhost="localhost"2.dbuser="root"3.dbpassword="blah"4.dbname="test"5.
Pada saat parameter koneksi berubah file config.ini lah yang diubah tanpa perlu mengedit class Connect yang
dibuat.
Membaca File Konfigurasi dengan Class Config
Langkah selanjutnya, dibutuhkan sebuah class untuk membaca konfigurasi, maka buatlah sebuah file Config.php
dan class Config sebagai berikut.
-
class Connect di bawah:
-
Kolom Tipe Data
user_id varchar(50)
nama varchar(100)
password varchar(50)
tipe varchar(20)
maka perlu dilakukan hal yang sama seperti kotak penyimpanan di atas. user_id disimpan di kolom user_id,
nama di kolom nama, dan seterusnya. Bagaimana melakukan hal ini dengan kode php? menggunakan associated
array, seperti:
array(1.'user_id' => 'admin',2.'nama' => 'Administrator',3.'password' => '123123',4.'tipe' => 'USER'5.
)6.
bagian kiri tanda => adalah kolom tabel dan bagian kanan adalah nilai yang akan disimpan.Lalu apa hubungannya dengan kode menyimpan data yang akan dibuat? Mengetahui cara menggunakan kode
simpan tersebut dan mengetahui parameter inputan yang digunakan yaitu associated array. Berikut adalah cara
membuat kode menyimpan data menggunakan konsep OOP.
Buatlah file Table.php lalu include file Connect.php dan deklarasikan class Table
-
}15. 16.
public function close(){17.Connect::close();18.
}19. 20.
function save(array $data){ //inisialisai fungsi save21.
dengan fungsi save akan dibuat sebuah sql insert dengan format kurang lebih seperti
INSERT INTO `nama_tabel` SET `nama_kolom1`='nilai 1', `nama_kolom2`='nilai 2';.
Buat kode sql untuk bagian warna merah
// ... kode sebelumnya ........20.function save(array $data){21.
$sql = "UPDATE `".$this->_tableName."` SET"; // sql bagian warna merah22.
buat kode sql bagian bagian warna hijau dan sambungkan dengan dengan bagian warna merah
// ... kode sebelumnya ........22.foreach($data as $field => $value){ //sql bagian warna hijau23.
$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect24.}25.$sql = rtrim($sql, ','); // hilangkan kelebihan tanda koma ,26.
simpan data menggunakan fungsi mysql_query dan throw Exception jika gagal menyimpan data.
// ... kode sebelumnya ........26.$result = mysql_query($sql, Connect::getConnection());27.if(!$result){28.
throw new Exception('Gagal menyimpan data ke table '.$this->_tableName29.}30.
} // akhir fungsi save31.} // akhir class Tabel32.
Jika potongan kode di atas digabungkan maka akan menjadi:
-
16.public function close(){17.
Connect::close();18.}19.
20.function save(array $data){21.
$sql = "INSERT INTO `".$this->_tableName."` SET";22.foreach($data as $field => $value){23.
$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect24.}25.$sql = rtrim($sql, ',');26.$result = mysql_query($sql, Connect::getConnection());27.if(!$result){28.
throw new Exception('Gagal menyimpan data ke table '.$this->_tableName29.}30.
}31.}32.
Bagaimana cara menggunakan class Tabel di atas untuk menyimpan data, contoh:
include 'Tabel.php';1.$table = new Tabel('user'); // user adalah nama tabel2.$table->connect();3.$table->save(array(4.
'user_id' => 'admin',5.'nama' => 'Admin',6.'password' => '123456',7.'tipe' => 'USER'8.
));9.$table->close();10.
Edit Data Menggunakan Konsep OOP
Langkah langkah untuk membuat kode edit data dengan konsep OOP hampir sama dengan simpan data di atas.Fungsi update() yang akan dibuat digunakan untuk membentuk sql kurang lebih seperti:
UPDATE `nama_tabel` SET `nama_kolom1`='nilai 1', `nama_kolom2`='nilai 2' WHERE `nama_kolom1` ='test';.
Buka kembali file Tabel.php dan tambahkan fungsi update() dan buat sql bagian warna merah.
// ....... kode sebelumnya.......31.function update(array $data, $where = ''){32.
$sql = "UPDATE `".$this->_tableName."` SET"; // sql bagian warna merah33.
buat sql bagian warna hijau dan sambung dengan sql bagian warna merah
// ......... kode sebelumnya .........33.foreach($data as $field => $value){ // sql bagian hijau34.
$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect35.}36.$sql = rtrim($sql, ','); // hilangkan kelebihan tanda koma ,37.
buat sql warna biru jika parameter $where tidak kosong
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
6 of 15 4/15/2014 8:28
-
//.......... kode sebelumnya........37.if($where){38.
$sql .= " WHERE ".$where; // sql bagian warna biru39.}40.
edit data menggunakan fungsi mysql_query dan throw Exception jika proses edit data gagal
//........ kode sebelumny ..........40.$result = mysql_query($sql, Connect::getConnection());41.if(!$result){42.
throw new Exception('Gagal mengupdate data table '.$this->_tableName43.}44.
}45.
jika digabungkan akan menjadi seperti berikut:
//....... kode sebelumnya .........31.function update(array $data, $where = ''){32.
$sql = "UPDATE `".$this->_tableName."` SET";33.foreach($data as $field => $value){34.
$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect35.}36.$sql = rtrim($sql, ',');37.if($where){38.
$sql .= " WHERE ".$where;39.}40.$result = mysql_query($sql, Connect::getConnection());41.if(!$result){42.
throw new Exception('Gagal mengupdate data table '.$this->_tableName43.}44.
}45.
Cara menggunakan fungsi update di atas sangat mudah, contoh:
-
//....... kode sebelumnya .........45.function delete($where = ''){46.
$sql = "DELETE FROM `".$this->_tableName."`";47.if($where){48.
$sql .= " WHERE ".$where;49.}50.$result = mysql_query($sql, Connect::getConnection());51.if(!$result){52.
throw new Exception('Gagal menghapus data dari table '.$this->_tableName53.}54.
}55.
Tambahkan kode delete di atas ke class Tabel di file Tabel.php. Cara penggunaannya sebagai berikut:
-
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Connect.php';3. 4.class Select implements Iterator{5. 6.
protected $_query;7.protected $_sql;8.protected $_pointer = 0;9.protected $_numResult = 0;10.protected $_results = array();11.
12.function __construct($sql){13.
$this->_sql = $sql;14.}15.
16.function rewind(){17.
$this->_pointer = 0;18.}19.
20.function key(){21.
return $this->_pointer;22.}23.
24.protected function _getQuery(){25.
if(!$this->_query){26.$connection = Connect::getConnection();27.$this->_query = mysql_query($this->_sql, $connection);28.if(!$this->_query){29.
throw new Exception('Gagal membaca data dari database:'.mysql_error30.}31.
}32.return $this->_query;33.
}34. 35.
protected function _getNumResult(){36.if(!$this->_numResult){37.
$this->_numResult = mysql_num_rows($this->_getQuery());38.}39.return $this->_numResult;40.
}41. 42.
function valid(){43.if($this->_pointer >= 0 && $this->_pointer < $this->_getNumResult()){44.
return true;45.}46.return false;47.
}48. 49.
protected function _getRow($pointer){50.if(isset($this->_results[$pointer])){51.
return $this->_results[$pointer];52.}53.$row = mysql_fetch_object($this->_getQuery());54.if($row){55.
$this->_results[$pointer] = $row;56.}57.return $row;58.
}59. 60.
function next(){61.$row = $this->_getRow($this->_pointer);62.if($row){63.
$this->_pointer ++;64.}65.
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
9 of 15 4/15/2014 8:28
-
return $row;66.}67.
68.function current(){69.
return $this->_getRow($this->_pointer);70.}71.
72.function close(){73.
mysql_free_result($this->_getQuery());74.Connect::close();75.
}76. 77.}78.
konstruktor dari class Select menerima inputan sebuah string sql query. Sql query inilah yang akan diprosesuntuk mengambil data ke tabel database.
Selanjutnya kembali ke class Tabel di file Tabel.php. Tambahkan fungsi findAll() untuk menampilkan seluruhdata, dan fungsi findBy() untuk mencari/menampilkan data berdasarkan kolom tertentu.
// ... kode class Tabel sebelumnya.......55.function findAll(){56.
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';57.$sql = "SELECT * FROM `".$this->_tableName."`";58.return new Select($sql);59.
}60. 61.
function findBy($field, $value){62.include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';63.$sql = "SELECT * FROM `".$this->_tableName."`";64.$sql .=" WHERE `".$field."`='".mysql_real_escape_string($value)."'";65.return new Select($sql);66.
}67.
Jadi kode class Tabel selengkapnya adalah seperti di bawah.
-
foreach($data as $field => $value){23.$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect24.
}25.$sql = rtrim($sql, ',');26.$result = mysql_query($sql, Connect::getConnection());27.if(!$result){28.
throw new Exception('Gagal menyimpan data ke table '.$this->_tableName29.}30.
}31. 32.
function update(array $data, $where = ''){33.$sql = "UPDATE `".$this->_tableName."` SET";34.foreach($data as $field => $value){35.
$sql .= " `".$field."`='".mysql_real_escape_string($value, Connect36.}37.$sql = rtrim($sql, ',');38.if($where){39.
$sql .= " WHERE ".$where;40.}41.$result = mysql_query($sql, Connect::getConnection());42.if(!$result){43.
throw new Exception('Gagal mengupdate data table '.$this->_tableName44.}45.
}46. 47.
function delete($where = ''){48.$sql = "DELETE FROM `".$this->_tableName."`";49.if($where){50.
$sql .= " WHERE ".$where;51.}52.$result = mysql_query($sql, Connect::getConnection());53.if(!$result){54.
throw new Exception('Gagal menghapus data dari table '.$this->_tableName55.}56.
}57. 58.
function findAll(){59.include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';60.$sql = "SELECT * FROM `".$this->_tableName."`";61.return new Select($sql);62.
}63. 64.
function findBy($field, $value){65.include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';66.$sql = "SELECT * FROM `".$this->_tableName."`";67.$sql .=" WHERE `".$field."`='".mysql_real_escape_string($value)."'";68.return new Select($sql);69.
}70.}71.
Lalu bagaimana cara menampilkan data dengan konsep OOP, seperti contoh berikut.
6.7.
8.User Id9.
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
11 of 15 4/15/2014 8:28
-
Name10.Password11.Type12.Action13.
14.15.16.
17.18.19.20.
21.22.
23.
Sederhana sekali, hanya buat instant class Tabel dan panggil fungsi findAll() atau fungsi findBy().
Selamat Mencoba dan Berlatih CRUD OOP.
Download Tutorial
Tags: tutorial oop, php oop, crud oop
Tinggalkan KomentarSilahkan login sebelum meninggalkan komentar Anda!
Login dengan:
Ratex Shandy Nurlaksana
March 21, 2014 | 07:17 amlanjut 2 lagi bozz...kalo yg di filter ada lebih dari 1 field gmn cara penambahan codingnya...satu lagi untuk join
2 table dengan konsep OOP ini juga mohon pencerahannya bozz
kalo misal saya punya 2 table di gabungkan seperti ini :
Select a.kode,b.nama from tabel1 a join tabel2 b on a.kode = b.kode where a.kode = '11' and a.hrg < 1000
Ratex Shandy NurlaksanaMarch 21, 2014 | 06:59 am
:)salam sukses Bro elly
saya baru faham dengan OOP n masi bingung
klo misa saya bikin function seperti ini
1.function viewdata($field, $value){2.
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'Select.php';3.$sql = "SELECT * FROM '".$this->_tableName."'";4.$sql .= " WHERE '".$field."'='".mysql_real_escape_string($value)."'";5.return new Select($sql);6.
}7.
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
12 of 15 4/15/2014 8:28
-
nah cara pemanggilan di browsernya gmn hanya untuk nampilih data yng terpilih saja..apa seperti ini
$user = new Table('user');1.$user-> viewdata('nmfield1','nmfield2');2. 3.
apa seperti itu...terima kasi banyak sebelumnya
PIN Deviluke
December 30, 2013 | 09:24 am
data itu ada atau tidak
PIN Deviluke
December 30, 2013 | 09:11 am
permisi gan ma tanya, kalo buat mengecek data apa atau tidak itu gimana ya gan?mohon bantuannya
Ellyx Christian
September 03, 2013 | 10:06 pm@DaNz Setiawan: boleh dong
DaNz Setiawan
August 29, 2013 | 04:33 pm
bang blh tanya
Irfan Rosyadi
August 09, 2013 | 08:27 am
Wihhh Mantap Tutorialnya. Semoga myphptutorials.com terus berkembang.
Ellyx Christian
July 29, 2013 | 01:29 pm
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP http://www.myphptutorials.com/tutorials/849/php-oop-save-edit-delete-...
13 of 15 4/15/2014 8:28
-
Tweet 5 20
ditutorial sudah dikasi contohnya:
-
Tutorials>PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP
15 of 15 4/15/2014 8:28