Images Aplikasi CRUD |
Pada postingan ini saya akan memberikan tutorial Cara Membuat Aplikasi CRUD(Create Read Update Delete) dengan PDO. Sebelum membahas tutorial ini, kita akan sedikit berkenalan dengan PDO ini. Dari hasil telusuran saya di internet, PDO ini memiliki singkatan yaitu PHP Data Objects. PDO adalah cara yang ramping atau konsisten dalam mengakses database. Yang berarti para developers dapat menulis kode yang sederhana atau portable yang jauh lebih mudah. PDO lebih dikenal seperti lapisan akses data yang menggunakan API terpadu (Application Programming Interface). Oke, itulah sedikit dari kenalan dari PDO ini, dan untuk tutorialnya berikut langkah Cara Membuat Aplikasi CRUD(Create Read Update Delete) dengan PDO :
Buatlah sebuah folder latihan di htdocs anda, lalu buat 5 file baru yaitu
koneksi.php, create.php, tampil.php,
delete.php, edit.php. Setelah anda membuat file tersebut, anda dapat menerapkan
skrip dibawah sesuai dengan file tersebut.
koneksi.php
<?php
$host = "localhost";
$namaDb = "latihan";
$user = "root";
$pass = "";
try {
$koneksi = new PDO("mysql:host={$host}; dbname={$namaDb}", $user, $pass);
}
//Untuk menangani koneksi error
catch(PDOException $exception) {
echo "Connection error :" .$exception->getMessage();
}
?>
create.php
<!DOCTYPE html>
<html>
<head>
<title>Aplikasi CRUD dengan PDO</title>
</head>
<body>
<?php
$aksi = isset($_POST['aksi']) ? $_POST['aksi'] : "";
if($aksi == 'create') {
//Include database
include 'koneksi.php';
try {
//Menulis query
$query = "INSERT INTO biodata SET nama = :nama, kelas = :kelas, alamat = :alamat, agama = :agama, hobi = :hobi";
//mempersiapkan query untuk dieksekusi
$stmt = $koneksi->prepare($query);
//bindParam digunakan untuk mengikat parameter untuk variabel tertentu
$stmt -> bindParam(':nama', $_POST['nama']);
$stmt -> bindParam(':kelas', $_POST['kelas']);
$stmt -> bindParam(':alamat', $_POST['alamat']);
$stmt -> bindParam(':agama', $_POST['agama']);
$stmt -> bindParam(':hobi', $_POST['hobi']);
//Mengeksekusi pernyataan query
if ($stmt->execute()) {
echo "<script language = 'javascript'>
alert('Berhasil Memasukkan data');
window.location = 'create.php';
</script>
";
} else {
echo "<script language = 'javascript'>
alert('Gagal Memasukkan data nama = :nama');
window.location = 'create.php';
</script>
";
}
}
catch(PDOException $exception) {
echo "Error : " .$exception->getMessage();
}
}
?>
<!--- Form Input -->
<form action="#" method="post" />
<table>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" /></td>
</tr>
<tr>
<td>Kelas</td>
<td><input type="text" name="kelas" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" /></td>
</tr>
<tr>
<td>Agama</td>
<td><input type="text" name="agama" /></td>
</tr>
<tr>
<td>Hobi</td>
<td><input type="text" name="hobi" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="aksi" value="create" />
<input type="submit" value="Insert" />
<input type="reset" value="Reset" />
</td>
</tr>
</table>
</form>
</body>
</html>
tampil.php
<!DOCTYPE html>
<html>
<head>
<title>Aplikasi CRUD dengan PDO</title>
</head>
<body>
<?php
$action = isset($_GET['action']) ? $_GET['action'] : "";
//jika dialihkan dari delete.php
if($action == 'hapus') {
echo "<script language = 'javascript'>
alert('Berhasil Hapus Data');
window.location = 'tampil.php';
</script>
";
}
//menginclude database
include 'koneksi.php';
//memilih semua field
$query = "SELECT * FROM biodata";
//mempersiapkan query untuk di eksekusi
$stmt = $koneksi->prepare($query);
//mengeksekusi pernyataan query
$stmt -> execute();
//untuk mendapatkan jumlah baris
$num = $stmt->rowCount();
if ($num > 0) {
echo "<table border = '1'>
<tr>
<th>No.</th>
<th>Nama</th>
<th>Kelas</th>
<th>Alamat</th>
<th>Agama</th>
<th>Hobi</th>
<th colspan = '2'>Aksi</th>
</tr>
";
$no = 0;
//mengambil isi tabel
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
//ekstrak baris
extract($row);
$no++;
echo "<tr>
<td>$no</td>
<td>{$nama}</td>
<td>{$kelas}</td>
<td>{$alamat}</td>
<td>{$agama}</td>
<td>{$hobi}</td>
<td>
<a href='edit.php?id={$id}'>Edit</a>
<a href='#' onclick='hapus_data({$id})'>Hapus</a>
</td>
</tr>
";
}
echo "</table>";
} else {
echo "Tidak ada Data ditemukan";
}
?>
<script type="text/javascript">
function hapus_data(id) {
var answer = confirm('Apakah Anda Yakin.?')
if(answer) {
window.location = 'delete.php?id=' +id;
}
}
</script>
</body>
</html>
delete.php
<?php
//menginclude database
include 'koneksi.php';
try {
//delete query
$query = "DELETE FROM biodata WHERE id = :id";
//mempersiapkan query yang akan dieksekusi
$stmt = $koneksi->prepare($query);
//mengikat parameter
$stmt -> bindParam(':id', $_GET['id']);
//Mengeksekusi pernyataan query
if($result = $stmt->execute()) {
header('location: tampil.php?action=hapus');
} else {
echo "<script language = 'javascript'>
alert('Gagal Hapus Data');
window.location = 'tampil.php';
</script>
";
}
}
catch(PDOException $exception) {
echo "Error :" .$exceptio->getMessage();
}
?>
edit.php
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<?php
//menginclude database
include 'koneksi.php';
$action = isset($_POST['action']) ? $_POST['action'] : "";
if($action == "edit") {
try {
//membuat query
$query = "UPDATE biodata SET nama = :nama, kelas = :kelas, alamat = :alamat, agama = :agama, hobi = :hobi WHERE id = :id";
//mempersiapkan query untuk dieksekusi
$stmt = $koneksi->prepare($query);
//mengikat parameter
$stmt -> bindParam(':nama', $_POST['nama']);
$stmt -> bindParam(':kelas', $_POST['kelas']);
$stmt -> bindParam(':alamat', $_POST['alamat']);
$stmt -> bindParam(':agama', $_POST['agama']);
$stmt -> bindParam(':hobi', $_POST['hobi']);
$stmt -> bindParam(':id', $_POST['id']);
//mengeksekusi query
if($stmt -> execute()) {
echo "<script language = 'javascript'>
alert('Berhasil Update Data');
window.location = 'tampil.php';
</script>
";
} else {
echo "<script language = 'javascript'>
alert('Gagal Update Data');
window.location = 'tampil.php';
</script>
";
}
}
catch(PDOException $exception) {
echo "Error :" .$exception -> getMessage();
}
}
try {
//Membuat query untuk menampilkan data
$query = "SELECT * FROM biodata WHERE id = :id LIMIT 0,1";
//mempersiapkan query untuk dieksekusi
$stmt = $koneksi -> prepare($query);
//mengikat parameter
$stmt -> bindParam(':id', $_REQUEST['id']);
//mengeksekusi query
$stmt -> execute();
//mengambil baris
$row = $stmt->fetch(PDO::FETCH_ASSOC);
//nilai untuk mengisi form
$id = $row['id'];
$nama = $row['nama'];
$kelas = $row['kelas'];
$alamat = $row['alamat'];
$agama = $row['agama'];
$hobi = $row['hobi'];
}
catch(PDOException $exception) {
echo "Error :" .$exception -> getMessage();
}
?>
<!--- Form Input -->
<form action="#" method="post" />
<table>
<tr>
<td>Nama</td>
<td><input type="text" name="nama" value="<?php echo $nama; ?>" /></td>
</tr>
<tr>
<td>Kelas</td>
<td><input type="text" name="kelas" value="<?php echo $kelas; ?>" /></td>
</tr>
<tr>
<td>Alamat</td>
<td><input type="text" name="alamat" value="<?php echo $alamat; ?>" /></td>
</tr>
<tr>
<td>Agama</td>
<td><input type="text" name="agama" value="<?php echo $agama; ?>" /></td>
</tr>
<tr>
<td>Hobi</td>
<td><input type="text" name="hobi" value="<?php echo $hobi; ?>" /></td>
</tr>
<tr>
<td>
<input type="hidden" name="id" value="<?php echo $id ?> /">
<input type="hidden" name="action" value="edit" />
<input type="submit" value="Update" />
<input type="reset" value="Reset" />
</td>
</tr>
</table>
</form>
</body>
</html>
Berikut sedikit pengertian fungsi-fungsi statement
di PDO ini.
prepare
digunakan untuk mengeksekusi dan mengambil sebuah objek pernyataan.
bindParam
digunakan
mengikat parameter untuk nama variabel tertentu.
Execute
digunakan
untuk mengeksekusi pernyataan query.
PDOException
merupakan class PDOException.
Sampai disini tutorial yang sederhana, semoga
tutorial Cara Membuat Aplikasi CRUD(Create Read Update Delete) dengan PDO dapat
bermanfaat bagi anda. Luangkan waktu anda untuk mengshare artikel ini. Terima
kasih.
2 komentar
Click here for komentarTerima kasih mas caranya, mau saya praktekan :)
ReplySama-sama mas, trima kasih juga buat kunjungannya
Reply1. Tinggalkan Komentar Yang Positif, Kritik, dan Tidak Menjatuhkan!
2. Gunakan Emoticon yang sesuai dan tulis kode nya di kolom komentar!
3. Berkomentarlah sesuai dengan topik yang dibicarakan!
4. No SARA, kata - kata tidak sopan, berbau pornografi, LINK AKTIF tidak akan di approve !
5. Komentar anda akan di tampilkan setelah disetujui . ConversionConversion EmoticonEmoticon