Membuat Aplikasi CRUD Dengan PHP OOP dan PDO MySQL
Assalamu alaikum Wr Wb.
Dalam pertemuan kali ini, saya akan membahas mengenai Membuat Aplikasi CRUD Dengan PHP OOP dan PDO MySQL.

PENGERTIAN
Dalam pemrograman komputer, membuat, membaca, memperbarui dan menghapus [1] (sebagai CRUD akronim) adalah empat fungsi dasar dari penyimpanan persisten. [2] kata alternatif kadang-kadang digunakan ketika mendefinisikan empat fungsi dasar CRUD, mengambil alih-alih membaca, memodifikasi bukan pembaruan, atau menghancurkan bukan delete. CRUD juga kadang-kadang digunakan untuk menggambarkan konvensi antarmuka pengguna yang memfasilitasi melihat, mencari, dan mengubah informasi; sering menggunakan bentuk berbasis komputer dan laporan.
PHP : Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML.
PDO (PHP Data Objects) adalah adapter database relasional untuk PHP untuk menyediakan sebuah antarmuka untuk database MySQL. Ia menggantikan adaptor MySQL usang yang tidak lagi didukung dari PHP6. Dari MySQL Server 4.1.3 dianjurkan untuk menggunakan PDO atau MySQLi daripada MySQL adapter usang.
LATAR BELAKANG
Membuat Aplikasi CRUD dengan PHP OOP dan PDO.
MAKSUD DAN TUJUAN
Maksud saya membahas hal ini adalah agar saat kita mau membut sebuah aplikasi bisa menggunakan cara ini.
ALAT DAN BAHAN
1. PC / Laptop / Notebook
2. Web Server (LAMP SERVER)
3. Web Browser (Mozilla Firefox)
4. Text Editor (Sublime Text)
5. PHP 7
6. Bootstrap
JANGKA WAKTU PELAKSANAAN
Untuk membuat CRUD dengan PHP OOP ini membutuhkan waktu kira-kira +-1 jam.
LANGKAH-LANGKAH
PHP PDO –> Database Driver –> Database Server
PDO bekerja dengan metode yang disebut “data-access abstraction layer”. Artinya, apapun jenis database server yang digunakan, kode PHP yang ditulis akan tetap sama. PDO menyediakan “abstraction layer” untuk berkomunikasi dengan database server.
Jenis Database Server yang didukung PDO
PDO mendukung setidaknya 12 jenis Interface/Database Server:
- CUBRID
- MS SQL Server
- Firebird
- IBM
- Informix
- MySQL
- MS SQL Server
- Oracle
- ODBC and DB2
- PostgreSQL
- SQLite
- 4D
1. Membuat Database
Langkah pertama yaitu membuat database dari aplikasi ini. Bisa diberi nama buku.
Lalu kita buat tabel dengan struktur sebagai berikut.

2. Membuat Class
Class ini berisi method-method yang akan kita gunakan nantinya untuk menjalankan aplikasi.
Berikut isi dari Library.php :
<?php3. Membuat Form Input Data
class Library{
public function __construct(){
$this->db = new PDO('mysql:host=localhost;dbname=buku','root','password');
}
public function addBook($id, $judul, $pengarang, $penerbit){
$sql = "INSERT INTO buku (id, judul, pengarang, penerbit) VALUES('$id','$judul','$pengarang','$penerbit')";
$query = $this->db->query($sql);
if(!$query){
return "Gagal";
}else{
return "Sukses";
}
}
public function editBook($id){
$sql = "SELECT * FROM buku WHERE id='$id'";
$query = $this->db->query($sql);
return $query;
}
public function updateBook($id, $judul, $pengarang, $penerbit){
$sql = "UPDATE buku SET judul='$judul', pengarang='$pengarang', penerbit='$penerbit' WHERE id='$id'";
$query = $this->db->query($sql);
if(!$query){
return "Gagal";
}else{
return "Sukses";
}
}
public function showBooks(){
$sql = "SELECT * FROM buku";
$query = $this->db->query($sql);
return $query;
}
public function deleteBook($id){
$sql = "DELETE FROM buku WHERE id='$id'";
$query = $this->db->query($sql);
}
}
?>
File ini berfungsi untuk menginputkan data ke database.
Berikut isi dari file index.php :
<!DOCTYPE html>
<html>
<head>
<title>CRUD 1 File</title>
<link rel="icon" href="#">
</head>
<body>
<?php
$koneksi = mysqli_connect("localhost","root","allif","buku");
function tambah($koneksi){
if(isset($_POST['btn_simpan'])){
$id = time();
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];
if(!empty($judul) && !empty($pengarang) && !empty($penerbit)){
$sql = "INSERT INTO buku (id, judul, pengarang, penerbit) VALUES ('$id','$judul','$pengarang','$penerbit')";
$simpan = mysqli_query($koneksi, $sql);
if($simpan && isset($_GET['aksi']) ){
if($_GET['aksi'] == 'create'){
header('Location: index.php');
}
}
}else{
$pesan = "<p style='color: red'>Tidak dapat menyimpan atau data belum lengkap!</p>";
}
}
?>
<form action="" method="post">
<fieldset>
<legend><h2>Tambah Data</h2></legend>
<input type="hidden" name="id">
<label> Judul <input type="text" name="judul"></label>
<label> Pengarang <input type="text" name="pengarang"></label>
<label> Penerbit <input type="text" name="penerbit"></label><br>
<label>
<input type="submit" name="btn_simpan" value="Simpan">
<input type="reset" value="Bersihkan">
</label><br>
<p><?php echo isset($pesan) ? $pesan : "" ?></p>
</fieldset>
</form>
<?php
}
//tutup fungsi tambah data
// fungsi baca data (read)
function tampil_data($koneksi){
$sql = "SELECT * FROM buku";
$query = mysqli_query($koneksi, $sql);
echo"<fieldset>";
echo"<legend><h2>Data Buku</h2></legend>";
echo"<table border='1' cellpadding='10'>";
echo"<tr>
<th>Judul</th>
<th>Pengarang</th>
<th>Penerbit</th>
<th>Pilihan</th>
</tr>";
while($data = mysqli_fetch_array($query)){
?>
<tr>
<td><?php echo $data['judul']; ?></td>
<td><?php echo $data['pengarang']; ?></td>
<td><?php echo $data['penerbit']; ?></td>
<td>
<a href="index.php?aksi=update&id=<?= $data['id']; ?>&judul=<?= $data['judul']; ?>&pengarang=<?= $data['pengarang']; ?>&penerbit=<?= $data['penerbit']; ?>" >Ubah</a>
<a href="index.php?aksi=delete&id=<?= $data['id']; ?>">Hapus</a>
</td>
</tr>
<?php
}
"</table>";
"</fieldset>";
}
function ubah($koneksi){
if(isset($_POST['btn_ubah'])){
$id = $_POST['id'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];
if(!empty($judul) && !empty($pengarang) && !empty($penerbit)){
$sql_update = "UPDATE buku SET judul='$judul', pengarang='$pengarang', penerbit='$penerbit' WHERE id=$id";
$update = mysqli_query($koneksi, $sql_update);
if($update && isset($_GET['aksi'])){
if($_GET['aksi'] == 'update'){
header('Location: index.php');
}
}
}else{
$pesan = "Data Tidak Lengkap!";
}
}
if(isset($_GET['id'])){
?>
<a href="index.php"> « Home</a> |
<a href="index.php?aksi=create"> (+) Tambah Data</a>
<hr>
<form action="" method="POST">
<fieldset>
<legend><h2>Ubah data</h2></legend>
<input type="hidden" name="id" value="<?php echo $_GET['id'] ?>"/><br>
<label>Judul <input type="text" name="judul" value="<?php echo $_GET['judul'] ?>"/></label> <br>
<label>Pengarang <input type="text" name="pengarang" value="<?php echo $_GET['pengarang'] ?>"/></label><br>
<label>Penerbit <input type="text" name="penerbit" value="<?php echo $_GET['penerbit'] ?>"/></label> <br>
<br>
<label>
<input type="submit" name="btn_ubah" value="Simpan Perubahan"/> atau <a href="index.php?aksi=delete&id=<?php echo $_GET['id'] ?>"> (x) Hapus data ini</a>!
</label>
<br>
<p><?php echo isset($pesan) ? $pesan : "" ?></p>
</fieldset>
</form>
<?php
}
}
// --- Tutup Fungsi Update
// --- Fungsi Delete
function hapus($koneksi){
if(isset($_GET['id']) && isset($_GET['aksi'])){
$id = $_GET['id'];
$sql_hapus = "DELETE FROM buku WHERE id=" . $id;
$hapus = mysqli_query($koneksi, $sql_hapus);
if($hapus){
if($_GET['aksi'] == 'delete'){
header('location: index.php');
}
}
}
}
// --- Tutup Fungsi Hapus
// ===================================================================
// --- Program Utama
if (isset($_GET['aksi'])){
switch($_GET['aksi']){
case "create":
echo '<a href="index.php"> « Home</a>';
tambah($koneksi);
break;
case "read":
tampil_data($koneksi);
break;
case "update":
ubah($koneksi);
tampil_data($koneksi);
break;
case "delete":
hapus($koneksi);
break;
default:
echo "<h3>Aksi <i>".$_GET['aksi']."</i> tidak ada!</h3>";
tambah($koneksi);
tampil_data($koneksi);
}
} else {
tambah($koneksi);
tampil_data($koneksi);
}
?>
</body>
</html>
4. Membuat File Penampil Data
File ini berfungsi untuk menampilkan data-data yang ada di database.
Berikut isi dari file List.php :
<!DOCTYPE html>5. Membuat Form Untuk Mengedit Data
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Daftar Buku</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>No</td>
<td>Judul Buku</td>
<td>Pengarang Buku</td>
<td>Penerbit Buku</td>
<td>Pilihan</td>
</tr>
<?php
require 'Library.php';
$no = 1;
$Lib = new Library();
$show = $Lib->showBooks();
while($data = $show->fetch(PDO::FETCH_OBJ)){
echo"
<tr>
<td>$no</td>
<td>$data->judul</td>
<td>$data->pengarang</td>
<td>$data->penerbit</td>
<td>
<a class='btn btn-danger' href='List.php?delete=$data->id'>Hapus</a>
<a class='btn btn-info' href='edit.php?id=$data->id'>Edit</a>
</td>
</tr>
";
$no++;
};
?>
</table>
<a href="index.php" class="btn btn-success">Tambah</a>
</div>
</body>
</html>
<?php
if(isset($_GET['delete'])){
$del = $Lib->deleteBook($_GET['delete']);
header("Location:List.php");
}
?>
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['id'])){
$Lib = new Library();
$book = $Lib->editBook($_GET['id']);
$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">
<input type="hidden" name="id" value="'.$edit->id.'"
class="form-control"><br>
Judul Buku: <input type="text" name="judul" value="'.$edit->judul.'"
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="btnbtn-info">
</form>
</div>
</body>
</html>
';
}
if(isset($_POST['updateBook'])){
$id = $_POST['id'];
$judul = $_POST['judul'];
$pengarang = $_POST['pengarang'];
$penerbit = $_POST['penerbit'];
$Lib = new Library();
$upd = $Lib->updateBook($id, $judul, $pengarang, $penerbit);
if($upd == "Sukses"){
header('Location: List.php');
}
}
?>
Berikut Tampilannya:

REFERENSI
https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
https://id.wikipedia.org/wiki/PHP
https://id.wikipedia.org/wiki/Pemrograman_berorientasi_objek
https://nl.wikipedia.org/wiki/PHP_Data_Objects
Jagocoding.com
http://www.duniailkom.com/tutorial-php-mysql-pengertian-pdo-dan-cara-mengaktifkan-pdo-php-data-objects/
Sekian yang dapat saya paparkan, apabila ada kesalahan dalam pengetikan, tata letak, dll saya minta maaf yang sebesar-besarnya.
Semoga Bermanfaat,
Wassalamu alaikum Wr Wb.
Wassalamu alaikum Wr Wb.




No comments:
Post a Comment