{"id":58024,"date":"2025-10-16T08:29:43","date_gmt":"2025-10-16T01:29:43","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=58024"},"modified":"2026-02-16T10:12:22","modified_gmt":"2026-02-16T03:12:22","slug":"belajar-php-dasar-bagian-17","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-php-dasar-bagian-17\/","title":{"rendered":"Belajar PHP Dasar Bagian 17 \u2013 Membuat Fungsi Delete Data"},"content":{"rendered":"\n<p>Pada seri Belajar PHP Dasar <strong><a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-php-dasar-bagian-16\/\" target=\"_blank\" rel=\"noopener\" title=\"\">bagian 16<\/a><\/strong>, 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.<\/p>\n\n\n\n<p>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. <\/p>\n\n\n\n<p>Di panduan ini, kita akan belajar langkah demi langkah cara membuat tombol hapus (<em>delete button<\/em>), menangani proses penghapusan melalui file aksi.php, hingga memastikan data benar-benar terhapus dari database.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Menambahkan Tombol Delete<\/h2>\n\n\n\n<p>Pada fungsi delete data ini, tombol <em>Delete<\/em> tidak perlu mengarah ke halaman baru. Proses penghapusan akan langsung dieksekusi di halaman <code>index.php<\/code>, 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.<\/p>\n\n\n\n<p>Karena proses penghapusan data dilakukan langsung dari <code>index.php<\/code> dan diteruskan ke <code>aksi.php<\/code> untuk mengeksekusi perintah <em>delete<\/em>, maka ketika tombol ditekan, data akan langsung terhapus. Untuk mencegah kesalahan seperti salah klik atau penghapusan data yang tidak diinginkan, kita perlu menambahkan peringatan (<em>confirmation alert<\/em>) yang menampilkan opsi <strong>\u201cYa\u201d<\/strong> atau <strong>\u201cTidak\u201d<\/strong> sebelum data benar-benar dihapus.<\/p>\n\n\n\n<p>Script tombol <em>delete<\/em> ini akan ditambahkan setelah tombol <em>edit<\/em> yang sudah kita buat pada pembahasan part sebelumnya. Berikut contoh script-nya:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;a href=\"aksi.php?aksi=hapus&amp;hapus=&lt;?php echo $a&#91;'nama']; ?&gt;\" onclick=\"return confirm('apakah yakin menghapus data untuk &lt;?php echo $a&#91;'nama']; ?&gt;')\" class=\"btn btn-danger\"&gt;Hapus&lt;\/a&gt;<\/code><\/pre>\n\n\n\n<p>Sehingga file index.php lengkap saat ini menjadi seperti berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;head&gt;\n\t&lt;title&gt;Data Diri&lt;\/title&gt;\n\t&lt;link rel=\"stylesheet\" href=\"css\/bootstrap.min.css\" type=\"text\/css\"&gt;\n\t&lt;script src=\"js\/bootstrap.min.js\"&gt;&lt;\/script&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;?php \ninclude 'database.php';\n$database = new database();\n?&gt;\n&lt;div class=\"p-md-4 container\"&gt;\n\t&lt;table class=\"table\"&gt;\n\t\t&lt;thead class=\"thead-dark\"&gt;\n\t\t\t&lt;tr&gt;\n\t\t\t&lt;th&gt;Nama&lt;\/th&gt;\n\t\t\t&lt;th&gt;Usia&lt;\/th&gt;\n\t\t\t&lt;th&gt;Domisili&lt;\/th&gt;\n\t\t\t&lt;th&gt;Email&lt;\/th&gt;\n\t\t\t&lt;th&gt;Action&lt;\/th&gt;\n\t\t\t&lt;\/tr&gt;\n\t\t&lt;\/thead&gt;\n\t\t&lt;?php \n\t\t$numb = 1;\n\t\tforeach($database-&gt;show() as $a){ ?&gt;\n\t\t&lt;tr&gt;\n\t\t\t&lt;td&gt;&lt;?php echo $a&#91;'nama']; ?&gt;&lt;\/td&gt;\n\t\t\t&lt;td&gt;&lt;?php echo $a&#91;'usia']; ?&gt;&lt;\/td&gt;\n\t\t\t&lt;td&gt;&lt;?php echo $a&#91;'domisili']; ?&gt;&lt;\/td&gt;\n\t\t\t&lt;td&gt;&lt;?php echo $a&#91;'email']; ?&gt;&lt;\/td&gt;\n\t\t\t&lt;td&gt;\n\t\t\t\t&lt;a href=\"edit.php?edit=&lt;?php echo $a&#91;'nama']?&gt;\" class=\"btn btn-warning\"&gt;edit&lt;\/a&gt;\n\t\t\t\t&lt;a href=\"aksi.php?aksi=hapus&amp;hapus=&lt;?php echo $a&#91;'nama']; ?&gt;\" onclick=\"return confirm('apakah yakin menghapus data untuk &lt;?php echo $a&#91;'nama']; ?&gt;')\" class=\"btn btn-danger\"&gt;Hapus&lt;\/a&gt;\n\t\t\t&lt;\/td&gt;\n\t\t&lt;\/tr&gt;\n\t\t&lt;?php } ?&gt;\n\t&lt;\/table&gt;\n&lt;\/div&gt;\n&lt;div class=\"p-md-4 container\"&gt;\n\t&lt;a href=\"create.php\" class=\"btn btn-primary\"&gt;Create Data&lt;\/a&gt;\n&lt;\/div&gt;\n&lt;\/body&gt;<\/code><\/pre>\n\n\n\n<p>Tampilan terbaru index website saat ini menjadi seperti berikut:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"488\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-1024x488.png\" alt=\"tampilan terbaru setelah tombol hapus ditambahkan - belajar php dasar\" class=\"wp-image-58025\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-1024x488.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-300x143.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-768x366.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-370x176.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-270x129.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-570x271.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52-740x352.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-52.png 1176w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Sekarang tombol hapus sudah muncul di setiap baris data yang ada di database sebagai opsi untuk menghapus data tertentu.<\/p>\n\n\n\n<p>Tombol hapus ini langsung mengarah ke file <code>aksi.php<\/code> dan akan menjalankan <em>function<\/em> <code>hapus()<\/code> yang ada di file <code>database.php<\/code>. Namun, sebelum perintah hapus dijalankan, terdapat sintaks <code>onclick<\/code> yang berfungsi menampilkan konfirmasi, apakah pengguna benar-benar yakin ingin menghapus data tersebut atau tidak. <\/p>\n\n\n\n<p>Dengan adanya fitur ini, jika terjadi salah klik, pengguna bisa memilih Cancel, sedangkan jika sudah yakin, cukup klik OK untuk melanjutkan proses penghapusan.<\/p>\n\n\n\n<p>Karena proses eksekusi diarahkan langsung ke file <code>aksi.php<\/code>, maka kita perlu menambahkan <em>script<\/em> berikut di dalam <code>aksi.php<\/code> untuk menangani aksi hapus data:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  if($aksi == \"hapus\"){\n \t$db-&gt;update($_GET&#91;'hapus']);\n \theader(\"location:index.php\");\n }<\/code><\/pre>\n\n\n\n<p><em>Script <\/em>file aksi.php saat ini lengkapnya menjadi seperti berikut:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \ninclude 'database.php';\n$db = new database();\n \n$aksi = $_GET&#91;'aksi'];\n if($aksi == \"tambah\"){\n \t$db-&gt;input($_POST&#91;'nama'],$_POST&#91;'usia'],$_POST&#91;'domisili'],$_POST&#91;'email']);\n \theader(\"location:index.php\");\n }\n \n  if($aksi == \"ubah\"){\n \t$db-&gt;update($_GET&#91;'ubah'],$_POST&#91;'nama'],$_POST&#91;'usia'],$_POST&#91;'domisili'],$_POST&#91;'email']);\n \theader(\"location:index.php\");\n }\n   if($aksi == \"hapus\"){\n \t$db-&gt;delete($_GET&#91;'hapus']);\n \theader(\"location:index.php\");\n }\n?&gt;<\/code><\/pre>\n\n\n\n<p><em>Script <\/em>yang kita tambahkan tadi memanggil <em>function <\/em>delete pada file database.php, sehingga perlu kita tambahkan juga script berikut pada file database.php :&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function delete($nama){\n\tmysqli_query($this-&gt;conn, \"delete from personal where nama='$oldnama'\");\n}<\/code><\/pre>\n\n\n\n<p><em>Script <\/em>pada file database.php saat ini menjadi seperti berikut :&nbsp;<br \/><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \nclass database{\n\tprotected $host = \"localhost\";\n\tprotected $username = \"root\";\n\tprotected $password = \"\";\n\tprotected $database = \"datadiri\";\n\tfunction __construct(){\n\t\t$conn = mysqli_connect($this-&gt;host, $this-&gt;username, $this-&gt;password, $this-&gt;database);\n\t\tif (!$conn) {\n\t\t\tdie(\"Koneksi gagal: \" . mysqli_connect_error());\n\t\t}\n\t\treturn $this-&gt;conn = $conn;\n\t}\n\tfunction show(){\n\t\t$tampil = mysqli_query($this-&gt;conn, \"select * from personal\");\n\t\twhile($data = mysqli_fetch_assoc($tampil)){\n\t\t\t$hasil&#91;] = $data;\n\t\t}\n\t\treturn $hasil;\n\t}\n\tfunction showEdit($nama){\n\t\t$tampil = mysqli_query($this-&gt;conn, \"select * from personal where nama='$nama'\");\n\t\twhile($data = mysqli_fetch_assoc($tampil)){\n\t\t\t$hasil&#91;] = $data;\n\t\t}\n\t\treturn $hasil;\n\t}\n\tfunction input($nama,$usia,$domisili,$email){\n\t\tmysqli_query($this-&gt;conn, \"insert into personal values('$nama','$usia','$domisili','$email')\");\n\t\t\n\t}\n\tfunction update($oldnama,$nama,$usia,$domisili,$email){\n\t\tmysqli_query($this-&gt;conn, \"update personal set nama='$nama',usia='$usia',domisili='$domisili',email='$email' where nama='$oldnama'\");\n\t}\n\tfunction delete($nama){\n\t\tmysqli_query($this-&gt;conn, \"delete from personal where nama='$nama'\");\n\t}\n}\n?&gt;<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Pengujian<\/h2>\n\n\n\n<p>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:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"473\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-1024x473.png\" alt=\"klik tombol hapus yang telah dibuat sebelumnya\" class=\"wp-image-58026\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-1024x473.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-300x139.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-768x355.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-370x171.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-270x125.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-570x263.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53-740x342.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-53.png 1111w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>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:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"591\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-1024x591.png\" alt=\"dialog konfirmasi muncul sebagai konfirmasi apakah yakin data dihapus atau tidak\" class=\"wp-image-58027\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-1024x591.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-300x173.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-768x443.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-370x213.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-270x156.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-570x329.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54-740x427.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-54.png 1217w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>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. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"422\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-1024x422.png\" alt=\"menampilkan data terbaru setelah data yang dipilih sebelumnya berhasil dihapus\" class=\"wp-image-58028\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-1024x422.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-300x124.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-768x316.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-370x152.png 370w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-270x111.png 270w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-570x235.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55-740x305.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/09\/image-55.png 1109w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p>Dengan berakhirnya pembahasan fungsi <em>Delete<\/em> 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.<\/p>\n\n\n\n<p>Semoga pembahasan ini membantu Anda memahami dasar pengelolaan data dengan PHP dan menjadi pondasi kuat sebelum melangkah ke pengembangan aplikasi yang lebih kompleks.<\/p>\n\n\n\n<p>Demikian tutorial belajar PHP bagian 17 tentang Delete Data, semoga bermanfaat.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":352,"featured_media":58330,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1749,2332,2247,45],"class_list":{"0":"post-58024","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-belajar-php","9":"tag-belajar-php-dasar","10":"tag-crud","11":"tag-php"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/10\/Banner-belajar-php-dasar-bagian-17.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-f5S","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/352"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=58024"}],"version-history":[{"count":8,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58024\/revisions"}],"predecessor-version":[{"id":61823,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/58024\/revisions\/61823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/58330"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=58024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=58024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=58024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}