Memang jika dilihat dari judulnya ini seperti tutorial untuk pemula. Tutorial ini sangat cocok untuk orang yang baru belajar pemrograman PHP berbasis objek atau lebih dikenal dengan Object Oriented Programming.

Membuat Aplikasi CRUD dengan OOP dan PDO MySQL

Salam Coding....

Memang jika dilihat dari judulnya ini seperti tutorial untuk pemula. Tutorial ini sangat cocok untuk orang yang baru belajar pemrograman PHP berbasis objek atau lebih dikenal dengan OBject Oriented Programing. Kali ini saya membuat aplikasi manajemen buku perpustakaan sederhana yang mengimplemntasikan aplikasi CRUD (CREATE, READ, UPDATE, DELETE)

Bahan-bahan untuk membuat artikel ini adalah :

PHP 5.4
MySQL
Notepad++
Bootstrap

Langkah Pertama: Membuat Database

Langkah pertama yaitu Membuat database dari aplikasi ini. Mari kita beri nama library.

Lalu kita buat tabel dengan struktur sebagai berikut:

CREATE TABLE `books` (
`kodeBuku` int(5),
`judulBuku` varchar(32),
`pengarang` varchar(32),
`penerbit` varchar(32),
PRIMARY KEY(`kodeBuku`)
);

Langkah Kedua: Membuat Class

Class ini berisi method-method yang akan kita gunakan nantinya untuk menjalankan aplikasi.

Berikut isi dari Library.php :

<?php
class Library{
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=library','root','mysql');
}
public function addBook($kode, $judul, $pengarang, $penerbit){
$sql = "INSERT INTO books (kodeBuku, judulBuku, pengarang, penerbit) VALUES('$kode', '$judul', '$pengarang', '$penerbit')";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}
public function editBook($kode){
$sql = "SELECT * FROM books WHERE kodeBuku='$kode'";
$query = $this->db->query($sql);
return $query;
}
public function updateBook($kode, $judul, $pengarang, $penerbit){
$sql = "UPDATE books SET judulBuku='$judul', pengarang='$pengarang', penerbit='$penerbit' WHERE kodeBuku='$kode'";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}

public function showBooks(){
$sql = "SELECT * FROM books";
$query = $this->db->query($sql);
return $query;
}
public function deleteBook($kode){
$sql = "DELETE FROM books WHERE kodeBuku='$kode'";
$query = $this->db->query($sql);
}
}
?>

Penjelasan Kode:

public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=library','root','mysql');
}

Kode diatas berfungsi untuk membuat konstruktor aplikasi dan menginisialisasi variabel yang equal dengan objek untuk membuat koneksi database dengan teknik PDO.

public function addBook($kode, $judul, $pengarang, $penerbit){
$sql = "INSERT INTO books (kodeBuku, judulBuku, pengarang, penerbit) VALUES('$kode', '$judul', '$pengarang', '$penerbit')";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}

Kode diatas adalah method yang berfungsi untuk menambah data baru ke database.

public function editBook($kode){
$sql = "SELECT * FROM books WHERE kodeBuku='$kode'";
$query = $this->db->query($sql);
return $query;
}

kode diatas adalah method yang berfungsi untuk mengedit data.

public function updateBook($kode, $judul, $pengarang, $penerbit){
$sql = "UPDATE books SET judulBuku='$judul', pengarang='$pengarang', penerbit='$penerbit' WHERE kodeBuku='$kode'";
$query = $this->db->query($sql);
if(!$query){
return "Failed";
}
else{
return "Success";
}
}

Kode diatas adalah method untuk mengupdate data yang ada di database

public function showBooks(){
$sql = "SELECT * FROM books";
$query = $this->db->query($sql);
return $query;
}

Kode diatas adalah method untuk menampilkan data yang ada di database

public function deleteBook($kode){ $sql = "DELETE FROM books WHERE kodeBuku='$kode'"; $query = $this->db->query($sql); }

Kode diatas adalah method untuk menghapus data.

Langkah Ketiga: Membuat Form Input Data

File ini berfungsi untuk menginputkan data ke database.

Berikut isi dari file index.php :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Book</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Tambah Buku Baru</h2>
<form action="index.php" method="POST" class="form-group row">
Kode Buku: <input type="text" name="kode" class="form-control"><br>
Judul Buku: <input type="text" name="judul" class="form-control"><br>
Pengarang Buku: <input type="text" name="pengarang" class="form-control"><br>
Penerbit Buku: <input type="text" name="penerbit" class="form-control"><br>
<input type="submit" name="addBook" value="Add Book" class="btn btn-success"><input type="reset" value="Reset" class="btn btn-warning">
</form>
</div>
</body>
</html>
<?php
require('Library.php');
if(isset($_POST['addBook'])){
$kode = $_POST['kode'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];

$Lib = new Library();
$add = $Lib->addBook($kode, $judul, $pengarang, $penerbit);
if($add == "Success"){
header('Location: List.php');
}
}

?>

Memang terlihat panjang akan tetapi eksekusinya dimulai dari kode berikut:

<?php
require('Library.php');
if(isset($_POST['addBook'])){
$kode = $_POST['kode'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];

$Lib = new Library();
$add = $Lib->addBook($kode, $judul, $pengarang, $penerbit);
if($add == "Success"){
header('Location: List.php');
}
}

?>

Dari sini sudah terlihat penggunaan konsep OOP.

Langkah Keempat: Membuat File Penampil data

File ini berfungsi untuk menampilkan data-data yang ada di database.

berikut isi dari file List.php :

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>List Book</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Daftar Buku yang Tersedia</h2>
<table class="table">
<tr>
<td>Kode Buku</td>
<td>Judul Buku</td>
<td>Pengarang Buku</td>
<td>Penerbit Buku</td>
<td>Edit</td>
<td>Delete</td>
</tr>
<?php
require("Library.php");
$Lib = new Library();
$show = $Lib->showBooks();
while($data = $show->fetch(PDO::FETCH_OBJ)){
echo "
<tr>
<td>$data->kodeBuku</td>
<td>$data->judulBuku</td>
<td>$data->pengarang</td>
<td>$data->penerbit</td>
<td><a class='btn btn-danger' href='list.php?delete=$data->kodeBuku'>Delete</a></td>
<td><a class='btn btn-info' href='edit.php?kode=$data->kodeBuku'>Edit</td>
</tr>";
};
?>
</table>
<a href="index.php" class="btn btn-success">Tambah Buku Baru</a>
</div>
</body>
</html>

<?php
if(isset($_GET['delete'])){
$del = $Lib->deleteBook($_GET['delete']);

}
?>

 

Dari kode diatas ada dua poin penting

  • <td><a class='btn btn-danger' href='list.php?delete=$data->kodeBuku'>Delete</a></td>

Kode diatas berfungsi untuk mengeset metode GET yang berhubungan dengan kode berikut yang berfungsi untuk menghapus data.

<?php
if(isset($_GET['delete'])){
$del = $Lib->deleteBook($_GET['delete']);

}
?>
  • <td><a class='btn btn-info' href='edit.php?kode=$data->kodeBuku'>Edit</td>

Kode diatas untuk menuju file edit.php dengan membawa parameter kode yang digunakan untuk mengedit data nantinya.

Langkah Terakhir: Membuat Form Untuk Mengedit Data

File ini berfungsi untuk mengedit data berdasarkan parameter yang dibawa dari file list.php.

berikut isi dari file edit.php :

<?php
require('Library.php');

if(isset($_GET['kode'])){
$Lib = new Library();
$book = $Lib->editBook($_GET['kode']);
$edit = $book->fetch(PDO::FETCH_OBJ);
echo '
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add Book</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2>Ubah Data Buku</h2>
<form action="edit.php" method="POST" class="form-group">
Kode Buku: <input type="text" name="kode" value="'.$edit->kodeBuku.'" class="form-control"><br>
Judul Buku: <input type="text" name="judul" value="'.$edit->judulBuku.'" class="form-control"><br>
Pengarang Buku: <input type="text" name="pengarang" value="'.$edit->pengarang.'" class="form-control"><br>
Penerbit Buku: <input type="text" name="penerbit" value="'.$edit->penerbit.'" class="form-control"><br>
<input type="submit" name="updateBook" value="Update" class="btn btn-info">
</form>
</div>
</body>
</html>
';
}

if(isset($_POST['updateBook'])){
$kode = $_POST['kode'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];

$Lib = new Library();
$upd = $Lib->updateBook($kode, $judul, $pengarang, $penerbit);
if($upd == "Success"){
header('Location: list.php');
}
}

?>


Nah dengan begitu Aplikasi CRUD dengan teknik OOP dan PDO telah selesai. Aplikasi ini sangat sederhana, akan tetapi dapat dikembangkan dengan banyak hal-hal menarik.


About Author

Ananda Mukhammad Ikhsan

Hanya Pelajar yang terobsesi dengan bahasa pemrograman


Comment & Discussions

  • Xabi Corazon
    Mas, lebih bagus pakek yg mana?
    $this->db->query()
    ATAU
    $this->db->prepare()

    suwun

  • Sandy Kurnia
    ijin belajar mas, hehehehehe

  • Arif Ninegrafh
    kalau tutorial utk search box menampilkan database oracle ada tidak

  • Please LOGIN before if you want to give the comment.