Rumahweb Journal
Banner - belajar php dasar bagian 17

Belajar PHP Dasar Bagian 17 – Membuat Fungsi Delete Data

Pada seri Belajar PHP Dasar bagian 16, kita telah mempelajari bagaimana cara membuat fungsi Edit Data untuk memperbarui informasi yang sudah tersimpan di database. Dalam tutorial belajar PHP dasar bagian 17 ini, kita akan melanjutkan ke tahap berikutnya dalam proses CRUD, yaitu membuat fungsi Delete Data.

Fungsi Delete Data ini digunakan untuk menghapus data yang sudah tidak diperlukan dari database. Dengan menambahkan fitur ini, aplikasi yang kita buat akan menjadi lebih lengkap dan siap digunakan untuk pengelolaan data secara penuh.

Di panduan ini, kita akan belajar langkah demi langkah cara membuat tombol hapus (delete button), menangani proses penghapusan melalui file aksi.php, hingga memastikan data benar-benar terhapus dari database.

Menambahkan Tombol Delete

Pada fungsi delete data ini, tombol Delete tidak perlu mengarah ke halaman baru. Proses penghapusan akan langsung dieksekusi di halaman index.php, sehingga kita belum memerlukan file form khusus untuk delete. Tombol ini berfungsi untuk menghapus data yang sudah tersimpan di database apabila data tersebut sudah tidak diperlukan lagi, agar tidak mengganggu proses pengolahan data berikutnya.

Karena proses penghapusan data dilakukan langsung dari index.php dan diteruskan ke aksi.php untuk mengeksekusi perintah delete, maka ketika tombol ditekan, data akan langsung terhapus. Untuk mencegah kesalahan seperti salah klik atau penghapusan data yang tidak diinginkan, kita perlu menambahkan peringatan (confirmation alert) yang menampilkan opsi “Ya” atau “Tidak” sebelum data benar-benar dihapus.

Script tombol delete ini akan ditambahkan setelah tombol edit yang sudah kita buat pada pembahasan part sebelumnya. Berikut contoh script-nya:

Pindah Hosting ke Rumahweb Gratis

<a href="aksi.php?aksi=hapus&hapus=<?php echo $a['nama']; ?>" onclick="return confirm('apakah yakin menghapus data untuk <?php echo $a['nama']; ?>')" class="btn btn-danger">Hapus</a>

Sehingga file index.php lengkap saat ini menjadi seperti berikut:

<head>
	<title>Data Diri</title>
	<link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">
	<script src="js/bootstrap.min.js"></script>
</head>
<body>
<?php 
include 'database.php';
$database = new database();
?>
<div class="p-md-4 container">
	<table class="table">
		<thead class="thead-dark">
			<tr>
			<th>Nama</th>
			<th>Usia</th>
			<th>Domisili</th>
			<th>Email</th>
			<th>Action</th>
			</tr>
		</thead>
		<?php 
		$numb = 1;
		foreach($database->show() as $a){ ?>
		<tr>
			<td><?php echo $a['nama']; ?></td>
			<td><?php echo $a['usia']; ?></td>
			<td><?php echo $a['domisili']; ?></td>
			<td><?php echo $a['email']; ?></td>
			<td>
				<a href="edit.php?edit=<?php echo $a['nama']?>" class="btn btn-warning">edit</a>
				<a href="aksi.php?aksi=hapus&hapus=<?php echo $a['nama']; ?>" onclick="return confirm('apakah yakin menghapus data untuk <?php echo $a['nama']; ?>')" class="btn btn-danger">Hapus</a>
			</td>
		</tr>
		<?php } ?>
	</table>
</div>
<div class="p-md-4 container">
	<a href="create.php" class="btn btn-primary">Create Data</a>
</div>
</body>

Tampilan terbaru index website saat ini menjadi seperti berikut:

tampilan terbaru setelah tombol hapus ditambahkan - belajar php dasar

Sekarang tombol hapus sudah muncul di setiap baris data yang ada di database sebagai opsi untuk menghapus data tertentu.

Tombol hapus ini langsung mengarah ke file aksi.php dan akan menjalankan function hapus() yang ada di file database.php. Namun, sebelum perintah hapus dijalankan, terdapat sintaks onclick yang berfungsi menampilkan konfirmasi, apakah pengguna benar-benar yakin ingin menghapus data tersebut atau tidak.

Dengan adanya fitur ini, jika terjadi salah klik, pengguna bisa memilih Cancel, sedangkan jika sudah yakin, cukup klik OK untuk melanjutkan proses penghapusan.

Karena proses eksekusi diarahkan langsung ke file aksi.php, maka kita perlu menambahkan script berikut di dalam aksi.php untuk menangani aksi hapus data:

  if($aksi == "hapus"){
 	$db->update($_GET['hapus']);
 	header("location:index.php");
 }

Script file aksi.php saat ini lengkapnya menjadi seperti berikut:

<?php 
include 'database.php';
$db = new database();
 
$aksi = $_GET['aksi'];
 if($aksi == "tambah"){
 	$db->input($_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
 	header("location:index.php");
 }
 
  if($aksi == "ubah"){
 	$db->update($_GET['ubah'],$_POST['nama'],$_POST['usia'],$_POST['domisili'],$_POST['email']);
 	header("location:index.php");
 }
   if($aksi == "hapus"){
 	$db->delete($_GET['hapus']);
 	header("location:index.php");
 }
?>

Script yang kita tambahkan tadi memanggil function delete pada file database.php, sehingga perlu kita tambahkan juga script berikut pada file database.php : 

function delete($nama){
	mysqli_query($this->conn, "delete from personal where nama='$oldnama'");
}

Script pada file database.php saat ini menjadi seperti berikut : 

<?php 
class database{
	protected $host = "localhost";
	protected $username = "root";
	protected $password = "";
	protected $database = "datadiri";
	function __construct(){
		$conn = mysqli_connect($this->host, $this->username, $this->password, $this->database);
		if (!$conn) {
			die("Koneksi gagal: " . mysqli_connect_error());
		}
		return $this->conn = $conn;
	}
	function show(){
		$tampil = mysqli_query($this->conn, "select * from personal");
		while($data = mysqli_fetch_assoc($tampil)){
			$hasil[] = $data;
		}
		return $hasil;
	}
	function showEdit($nama){
		$tampil = mysqli_query($this->conn, "select * from personal where nama='$nama'");
		while($data = mysqli_fetch_assoc($tampil)){
			$hasil[] = $data;
		}
		return $hasil;
	}
	function input($nama,$usia,$domisili,$email){
		mysqli_query($this->conn, "insert into personal values('$nama','$usia','$domisili','$email')");
		
	}
	function update($oldnama,$nama,$usia,$domisili,$email){
		mysqli_query($this->conn, "update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'");
	}
	function delete($nama){
		mysqli_query($this->conn, "delete from personal where nama='$nama'");
	}
}
?>

Pengujian

Pada percobaan hapus data kali ini, kita akan mencoba menghapus data terbaru yang pada seri belajar php sebelumnya telah kita tambahkan. Tombol yang akan kita tekan adalah tombol seperti gambar berikut:

klik tombol hapus yang telah dibuat sebelumnya

Jika tombol ini ditekan, maka dialog konfirmasi penghapusan data akan muncul. Jika tombol OK yang dipilih, maka sistem akan melakukan proses penghapusan data. Namun, jika tombol cancel yang dipilih, maka penghapusan data tidak jadi dilakukan. Tampilan dialog tersebut seperti berikut:

dialog konfirmasi muncul sebagai konfirmasi apakah yakin data dihapus atau tidak

Untuk pengujian, kita akan menekan tombol OK untuk menghapus data. Setelah tombol di klik, selanjutnya akan diproses oleh aksi.php. Jika penghapusan selesai, maka akan langsung diarahkan ke halaman index kembali dengan menampilkan data yang telah di update.

menampilkan data terbaru setelah data yang dipilih sebelumnya berhasil dihapus

Penutup

Dengan berakhirnya pembahasan fungsi Delete ini, kita telah menyelesaikan seluruh rangkaian proses CRUD (Create, Read, Update, Delete) di PHP. Melalui tahapan ini, Anda telah mempelajari bagaimana sebuah aplikasi dapat mengelola data secara lengkap, mulai dari menampilkan, menambah, mengubah, hingga menghapus data dari database.

Semoga pembahasan ini membantu Anda memahami dasar pengelolaan data dengan PHP dan menjadi pondasi kuat sebelum melangkah ke pengembangan aplikasi yang lebih kompleks.

Demikian tutorial belajar PHP bagian 17 tentang Delete Data, semoga bermanfaat.

Bermanfaatkah Artikel Ini?

Klik bintang 5 untuk rating!

Rating rata-rata 0 / 5. Vote count: 0

Belum ada vote hingga saat ini!

Kami mohon maaf artikel ini kurang berguna untuk Anda!

Mari kita perbaiki artikel ini!

Beri tahu kami bagaimana kami dapat meningkatkan artikel ini?

Edi Purnomo

Edi Purnomo, atau yang akrab disapa Edi, adalah bagian dari team technical support Rumahweb yang memiliki minat pada dunia pemrograman, khususnya PHP. Edi suka mengikuti tren seputar web programming hingga database. Melalui Journal Rumahweb, Edi ingin berbagi pengetahuan tentang Bahasa pemrograman, khususnya Bahasa PHP yang ia kuasai.

banner pop up - Pindah Hosting ke Rumahweb