CRUD (Create, Read, Update, Delete) OOP dengan PHP

Assalamualaikum.

Sudah setahun rasanya saya tidak Update ini Blog, dikarenakan tugas yang padat. Oke pada kesempatan kali inim saya akan membahas CRUD dengan OOP (Objek Oriented Programming), saya tidak akan membahas detail apa itu OOPnya seperti Class, Encapsulation, Inheritance dll, Alasannya simple, sudah banyak yang membahasnya. So langsung saja Check it Out. Pertama Anda buat database atau tabel bernama Buku dengan query sebagai berikut:

CREATE TABLE IF NOT EXISTS `buku` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`judul` varchar(200) NOT NULL,
`pengarang` varchar(200) NOT NULL,
`penerbit` varchar(200) NOT NULL,
`tahunTerbit` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

INSERT INTO `buku` (`id`, `judul`, `pengarang`, `penerbit`, `tahunTerbit`) VALUES
(1, ‘Buku OOP’, ‘Sujono’, ‘Erlangga’, ‘2007’),
(2, ‘BUku Javaxxx’, ‘Susiloxxx’, ‘okelahxxx’, ‘2009xxx’),
(3, ‘buku koplak’, ‘Wong Gendeng’, ‘PT GENDENG SEJAHTERA’, ‘2005’),
(7, ‘Buku masak’, ‘Pak Jono’, ‘Elangaga’, ‘2005’);

Setalah bahan ada, selanjutnya langsung kita buat 1 file php, beri saja nama index.php

index_oop

dan tuliskan script berikut ini

<?php
include “class-database.php”;
$db = new database();

//koneksi mysql via method
$db->koneksi();

?>
<html>
<head>
<script src=”json/js/jquery-1.9.1.js”></script>
<script src=”json/js/jquery-ui-1.10.3.js”></script>
<link type=”text/css” href=”json/css/jquery-ui.css” rel=”stylesheet” />
<script>
$(function()
{

$( “#tags” ).autocomplete({

source: ‘source.php’

});
});
</script>
</head>
<body>

<?php

if(isset($_POST[CARI]))
{

$kunci = $_POST[KUNCI];

$db2= new searching();
$db2->cari($kunci);

}

?>

<form method=”post” action=”index.php”>

<div>
<input type =’text’ name = ‘KUNCI’ placeholder=”Inputkan Nama Disini” id=”tags”>
</div><!–end of ui widget–>
<input type =’submit’ name = ‘CARI’ value=’CARI’>

</form>
</body>
</html>
<?php

$db->tampilBuku();

?>

Script diatas  hanyalah Form untuk memanggil Method tampil Buku. Nanti kita buat methodnya terakhir.

Next kita buat file untuk Update, anda creat file edit.php dan masukkan Script berikut:

edit_oopedit2_oop

<?php
include “class-database.php”;

$db = new database();

//koneksi mysql via method
$db->koneksi();

if(isset($_POST[EDIT]))
{
$id        = $_POST[ID];
$judul     = $_POST[JUDUL];
$pengarang = $_POST[PENGARANG];
$penerbit  = $_POST[PENERBIT];
$thn       = $_POST[TAHUN_TERBIT];

$db->updateDataBuku($id,$judul,$pengarang,$penerbit, $thn);

}

//$db->bacaDataBuku($type, $id);

$id = $_GET[ID];
//echo $id;

?>

<form method=”post” action=”edit.php”>
<input type=”text” name=”JUDUL” value=”<?php echo $db->bacaDataBuku(‘judul’,$id); ?>”><br>
<input type=”text” name=”PENGARANG” value=”<?php echo $db->bacaDataBuku(‘pengarang’,$id); ?>”><br>
<input type=”text” name=”PENERBIT” value=”<?php echo $db->bacaDataBuku(‘penerbit’,$id); ?>”><br>
<input type=”text” name=”TAHUN_TERBIT” value=”<?php echo $db->bacaDataBuku(‘tahunTerbit’,$id); ?>”><br>
<input type=”hidden” name=”ID” value=”<?php echo $db->bacaDataBuku(‘id’,$id);?>”>
<input type=”submit” name=”EDIT” Value=”EDIT”><br>
</form>

Script diatas juga sama, hanyalah sebuah Form untuk edit data. Selanjutnya kita buat Form Dulu untuk insert data/ add data baru. Silahkan membuat file bernama insert.php

insert_oopinsert_oop2

<?php
include “class-database.php”;

//instansiasi setting propertis database

$db = new database();

//koneksi mysql via method
$db->koneksi();

if(isset($_POST[SAVE]))
{
$judul     = $_POST[JUDUL];
$pengarang = $_POST[PENGARANG];
$penerbit  = $_POST[PENERBIT];
$thn       = $_POST[TAHUN_TERBIT];

//insert data buku via method
$db->addBuku($judul,$pengarang,$penerbit,$thn);
}

?>
<form method=”post” action=”insert.php”>
<input type=”text” name=”JUDUL” placeholder=”Judul”><br>
<input type=”text” name=”PENGARANG” placeholder=”Pengarang”><br>
<input type=”text” name=”PENERBIT” placeholder=”Penerbit”><br>
<input type=”text” name=”TAHUN_TERBIT” placeholder=”Tahun Terbit”><br>
<input type=”submit” name=”SAVE” Value=”SAVE”><br>
</form>

File form untuk Insert Sudah selesai. Terakhir adalah Form untuk Delete. anda bisa membuat File bernama delete.php lalu paste kan script berikut ini

delete_oop

<?php
include “class-database.php”;
//instansiasi setting propertis database

$db = new database();

//koneksi mysql via method
$db->koneksi();

//proses hapus data
if(isset($_GET[ID]))
{
$id = $_GET[ID];
echo “Apakah yakin buku dengan id = “.$id.”akan Dihapus?<br>”;
echo “<a href=’delete.php?ANS=Y&ID=$id’>Yes</a> | <a href=’delete.php?ANS=N’>No</a> “;

}

if(isset($_GET[ANS]))
{
$ans = $_GET[ANS];
if($ans == “Y”)
{
$db->hapusBuku($id);
echo “<script>window.location=’index.php’;</script>”;
}
else if($ans == “N”)
{
echo “Data tidak  jadi dihapus”;
echo “<script>window.location=’index.php’;</script>”;
}
}

?>

Sudah. Diatas adalah Script Untuk Form insert, update, delete, dan view lalu bagaimana dengan Action nya, action akan kita masukkan kedalam class. Anda bisa membuat file dengan nama sebagai berikut class-database.php

berikut Scriptnya

<?php

class database
{
// properties
private $dbHost = “localhost”;
private $dbUser = “root”;
private $dbPass = “”;
private $dbName = “oop”;

//constructor adalah method atau fungsi yang otomatis dilakukan saat instansiasi dilakukan
function __construct()
{
$this->dbHost;
$this->dbUser;
$this->dbPass;
$this->dbName;

}//end of function

//mthod koneksi mysql
function koneksi()
{
mysql_connect($this->dbHost, $this->dbUser, $this->dbPass);
mysql_select_db($this->dbName);
}//end of function

function addBuku($judul, $pengarang, $penerbit, $thnTerbit)
{
$query = “INSERT INTO buku SET judul = ‘$judul’,
pengarang = ‘$pengarang’,
penerbit = ‘$penerbit’,
tahunTerbit = ‘$thnTerbit'”;

$hasil = mysql_query($query);
if($hasil)echo “Data Buku sudah disimpan ke DB”;
else echo “Data Buku gagal disimpan ke DB”;
}//end of function

function tampilBuku()
{
echo “<table border=’1′ align=’center’ cellpadding=’0.5′ cellspacing=’0′>”;
echo “<tr><th align=’center’ colspan=’5′>CRUD dengan OOP</th></tr>”;
echo “<tr>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit</th>
<th>Tahun Terbit</th>
<th>Action</th>
</tr>”;

$sql = “SELECT * FROM buku”;
$hasil = mysql_query($sql);

while($data=mysql_fetch_array($hasil))
{
echo “<tr>”;
echo “<td>$data[judul]</td>”;
echo “<td>$data[pengarang]</td>”;
echo “<td>$data[penerbit]</td>”;
echo “<td>$data[tahunTerbit]</td>”;
echo “<td><a href=’edit.php?ID=$data[id]’>Edit</a> | <a href=’delete.php?ID=$data[id]’>Delete </a></td>”;
echo “</tr>”;

}// end of while
echo “</table>”;

}//end of function

function hapusBuku($id)
{
$sql = “DELETE FROM buku WHERE id = $id”;
$hasil = mysql_query($sql);
echo “Data buku ID = “.$id.”Sudah di hapus”;

}//end of function

function bacaDataBuku($type, $id)
{
$sql = “SELECT * FROM buku WHERE id = ‘$id'”;
$hasil = mysql_query($sql);
$data = mysql_fetch_array($hasil);

if($type == “pengarang”) return $data[pengarang];
else if($type == “id”) return $data[id];
else if($type == “judul”) return $data[judul];
else if($type == “penerbit”) return $data[penerbit];
else if($type == “tahunTerbit”) return $data[tahunTerbit];

}//end of function

function updateDataBuku($id, $judul, $pengarang, $penerbit, $thnTerbit)
{
$sql = “UPDATE buku SET    judul = ‘$judul’,
pengarang = ‘$pengarang’,
penerbit = ‘$penerbit’,
tahunTerbit = ‘$thnTerbit’
WHERE id = ‘$id'”;

$hasil = mysql_query($sql);

if($hasil)
{
echo “Data buku sudah di Update”;
echo “<script>window.location=’index.php’;</script>”;
}

}// end of function

}//end of class

class searching
{

public $cari;

function cari($x)
{

$sql = “SELECT * FROM buku WHERE judul = ‘$x'”;
$hasil = mysql_query($sql);
$data = mysql_fetch_array($hasil);

echo “<table border=’1′ align=’center’ cellpadding=’0.5′ cellspacing=’0′>”;
echo “<tr><th align=’center’ colspan=’5′>CRUD dengan OOP</th></tr>”;
echo “<tr>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit</th>
<th>Tahun Terbit</th>
<th>Action</th>
</tr>”;

echo “<tr>”;
echo “<td>$data[judul]</td>”;
echo “<td>$data[pengarang]</td>”;
echo “<td>$data[penerbit]</td>”;
echo “<td>$data[tahunTerbit]</td>”;
echo “<td><a href=’edit.php?ID=$data[id]’>Edit</a> | <a href=’delete.php?ID=$data[id]’>Delete </a></td>”;
echo “</tr>”;

echo “</table>”;

}

}//end of class
?>

 

Sampai disini Crud PHP OOP sudah selesai dengan tuntas. Inti dari CRUD PHP OOP adalah file untuk action atau query untuk mengolah database kita jadikan satu semua dalam class-database.php.

Dengan dijadikan satu maka mendeteksi kesalahan akan lebih gampang dan mudah dari pada yang sendiri-sendiri. Disamping itu, dengan adanya Class kita juga bisa menggunakan prinsip inheritance atau bisa menggunakan kembali script yang sudah ada.

JIka anda bingung dengan Tutorial yang ada anda dapat langsung mendownload saja FIle yang sudah saya siapkan lengkap dengan Databasenya 😀 (Kurang baik gimana Coba)

Mirror 1 atau Mirror 2

tenang aja Mirror ada di 4shared. gak pake Ngelink ke Ad Fly. saya bener2 tulus n gak niat cari uang dari tutorial saya. hehe 😀

kalau ada tanya- tanya, link nya rusak, atau codingan tidak berjalan, anda bisa email saya di septiyo@septiyo.com. saya akan dengan senang hati membantu anda.

Oke Sekian Dulu
Wassalamualaikum

13 thoughts on “CRUD (Create, Read, Update, Delete) OOP dengan PHP

    1. septiyo Post author

      Wah, iya juga gan. Namanya manusia ilmu juga terbatas. Karena saya biasanya bergelut dengan PHP dan Mysql maka pembahasannya mengenai itu dulu Gan. Saya tidak akan share ilmu yg mana itu hasil Copas. tapi yg benar-benar sudah saya coba sebelumnya.

      Makasih Feedbacknya

      Reply
  1. andre

    Itu kalo proses CRUD nya dijadiin satu ke koneksi semua, misal kita bikin banyak form ga cuma form pengolahan buku misalnya ada form pengolahan anggota, fungsi inpt, delete,updatenya juga dijadiin satu ke file koneksi itu??

    Kalo misalnya ane pengen nih, file koneksi sendiri, kemudian file fungsi pengolahan data buku sendiri, pengolahan data anggota sendiri, caranya gimana??

    Reply
    1. septiyo Post author

      Itu kalo proses CRUD nya dijadiin satu ke koneksi semua, misal kita bikin banyak form ga cuma form pengolahan buku misalnya ada form pengolahan anggota, fungsi inpt, delete,updatenya juga dijadiin satu ke file koneksi itu??

      Ya bisa aja itu semua tergantung dari Gaya COding masing2 programmer.

      Kalo misalnya ane pengen nih, file koneksi sendiri, kemudian file fungsi pengolahan data buku sendiri, pengolahan data anggota sendiri, caranya gimana??

      Fungsi disendirikan file2 nya buat apa?
      ya tinggal buat Class Baru Gan.

      seperti yg diatas gaya itu terngantung dari kitanya masing2.
      Yg jelas user pemakaai tidak peduli karena itu encapsulation

      haya saja teknik OOP ini memudahkan karena bisa dipakai berulan kali tinggal main ambil2 fungsinya aja. 😀

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *