Tutorials_PHP OOP_ Save Edit Delete & Menampilkan Data Dengan OOP

15
Tutorial PHP Pemula & Mahir PHP OOP: Save Edit Delete & Menampilkan Data dengan OOP Sep 22, 2012 By Ellyx Christian Level: Menengah Komentar Print Banyak kelebihan yang diberikan dari pemrograman berorientasi objek atau OOP. Salah satunya adalah reusable, 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 di bawah: $koneksi = mysql_connect("localhost","root",""); //host, user, password 1. 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, password 3. 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

description

Tutorial PHP dengan sistem Object Oriented Programming (OOP)

Transcript of Tutorials_PHP OOP_ Save Edit Delete & Menampilkan Data Dengan OOP

  • 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