PHP CRUD
23 Jun 2025 -
Berikut adalah materi lengkap tentang PHP CRUD :
📋 Tahapan Pembuatan Formulir CRUD
1. Persiapan Koneksi Database
📄 File: koneksi.php
Fungsi :
> File ini menghubungkan PHP dengan database MySQL. File ini perlu di-*include* di semua file yang berinteraksi dengan database.
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'pendaftaran';
$koneksi = mysqli_connect($host, $username, $password, $db_name);
if (!$koneksi) {
die("Koneksi gagal: " . mysqli_connect_error());
} else {
echo "Koneksi database berhasil";
}
?>
2. Formulir Pendaftaran Siswa
📄 File: form-daftar.php
*Fungsi:* Menyediakan form untuk input data siswa baru (Create).
Form input untuk data siswa seperti nama, alamat, jenis kelamin, agama, dan sekolah asal.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Form Pendaftaran | Digital Talent</title>
</head>
<body>
<h2>Formulir Pendaftaran Siswa Baru</h2>
<form action="create.php" method="post">
<table>
<tr><td>Nama</td><td><input type="text" name="nama"></td></tr>
<tr><td>Alamat</td><td><textarea name="alamat"></textarea></td></tr>
<tr>
<td>Jenis Kelamin</td>
<td>
<input type="radio" name="jenis_kelamin" value="1"> Laki-laki
<input type="radio" name="jenis_kelamin" value="0"> Perempuan
</td>
</tr>
<tr>
<td>Agama</td>
<td>
<select name="agama">
<option>Islam</option>
<option>Kristen</option>
<option>Hindu</option>
<option>Budha</option>
<option>Konghucu</option>
</select>
</td>
</tr>
<tr><td>Sekolah Asal</td><td><input type="text" name="sekolah_asal"></td></tr>
<tr><td colspan="2"><input type="submit" name="submit" value="Daftar"></td></tr>
</table>
</form>
</body>
</html>
3. Menyimpan Data ke Database
📄 File: create.php
*Fungsi:* Menerima data dari form dan menyimpannya ke dalam database.
<?php
include "koneksi.php";
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah_asal = $_POST['sekolah_asal'];
$sql = "INSERT INTO siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal)
VALUES ('$nama', '$alamat', '$jenis_kelamin', '$agama', '$sekolah_asal')";
if (mysqli_query($koneksi, $sql)) {
header("Location: list-siswa.php");
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($koneksi);
}
?>
4. Menampilkan Daftar Siswa
📄 File: list-siswa.php
*Fungsi:* Menampilkan seluruh data siswa dalam bentuk tabel HTML (Read).
<!DOCTYPE html>
<html>
<head>
<title>Daftar Siswa</title>
</head>
<body>
<h2>Siswa yang Sudah Mendaftar</h2>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="form-daftar.php">[+] Tambah Baru</a></li>
</ul>
<?php
include "koneksi.php";
$sql = "SELECT * FROM siswa";
$result = mysqli_query($koneksi, $sql);
?>
<table border="1">
<thead>
<tr>
<th>No</th><th>Nama</th><th>Alamat</th><th>Jenis Kelamin</th>
<th>Agama</th><th>Sekolah Asal</th><th>Tindakan</th>
</tr>
</thead>
<tbody>
<?php
$no = 1;
while ($row = mysqli_fetch_assoc($result)) {
?>
<tr>
<td><?= $no++; ?></td>
<td><?= $row['nama']; ?></td>
<td><?= $row['alamat']; ?></td>
<td><?= $row['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan'; ?></td>
<td><?= $row['agama']; ?></td>
<td><?= $row['sekolah_asal']; ?></td>
<td>
<a href="form-edit.php?id=<?= $row['id']; ?>">Edit</a>
<a href="form-delete.php?id=<?= $row['id']; ?>">Delete</a>
</td>
</tr>
<?php } ?>
</tbody>
</table>
</body>
</html>
5. Formulir Edit Siswa
📄 File: form-edit.php
*Fungsi:* Menampilkan form untuk mengedit data siswa yang dipilih (Update - tampilan).
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form Edit Siswa</title>
</head>
<body>
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
$result = mysqli_query($koneksi, $sql);
$row = mysqli_fetch_assoc($result);
?>
<h2>Formulir Edit Siswa</h2>
<form action="update.php" method="POST">
<input type="hidden" name="id" value="<?= $row['id'] ?>">
Nama: <input type="text" name="nama" value="<?= $row['nama'] ?>"><br/>
Alamat: <textarea name="alamat"><?= $row['alamat'] ?></textarea><br/>
Jenis Kelamin:
<input type="radio" name="jenis_kelamin" value="1" <?= $row['jenis_kelamin'] == 1 ? 'checked' : '' ?>> Laki-laki
<input type="radio" name="jenis_kelamin" value="0" <?= $row['jenis_kelamin'] == 0 ? 'checked' : '' ?>> Perempuan<br/>
Agama:
<select name="agama">
<option <?= $row['agama'] == 'Islam' ? 'selected' : '' ?>>Islam</option>
<option <?= $row['agama'] == 'Kristen' ? 'selected' : '' ?>>Kristen</option>
<option <?= $row['agama'] == 'Hindu' ? 'selected' : '' ?>>Hindu</option>
<option <?= $row['agama'] == 'Budha' ? 'selected' : '' ?>>Budha</option>
</select><br/>
Sekolah Asal: <input type="text" name="sekolah_asal" value="<?= $row['sekolah_asal'] ?>"><br/>
<button type="submit">Update</button>
<a href="list-siswa.php">Batal</a>
</form>
</body>
</html>
6. Menyimpan Perubahan
📄 File: update.php
*Fungsi:* Menerima data hasil edit dan memperbarui data siswa di database (Update - aksi).
<?php
include "koneksi.php";
$id = $_POST['id'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
$jenis_kelamin = $_POST['jenis_kelamin'];
$agama = $_POST['agama'];
$sekolah_asal = $_POST['sekolah_asal'];
$sql = "UPDATE siswa SET
nama='$nama',
alamat='$alamat',
jenis_kelamin='$jenis_kelamin',
agama='$agama',
sekolah_asal='$sekolah_asal'
WHERE id=$id";
if (mysqli_query($koneksi, $sql)) {
header("Location: list-siswa.php");
} else {
echo "Error updating record: " . mysqli_error($koneksi);
}
?>
7. Form Konfirmasi Hapus
📄 File: form-delete.php
*Fungsi:* Menampilkan detail data siswa sebelum dihapus, sebagai konfirmasi.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form Hapus Siswa</title>
</head>
<body>
<?php
include "koneksi.php";
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
$result = mysqli_query($koneksi, $sql);
$row = mysqli_fetch_assoc($result);
?>
<h2>Yakin ingin menghapus data berikut?</h2>
<form action="delete.php" method="POST">
<input type="hidden" name="id" value="<?= $row['id'] ?>">
Nama: <?= $row['nama'] ?><br/>
Alamat: <?= $row['alamat'] ?><br/>
Jenis Kelamin: <?= $row['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan' ?><br/>
Agama: <?= $row['agama'] ?><br/>
Sekolah Asal: <?= $row['sekolah_asal'] ?><br/>
<button type="submit">Ya</button>
<a href="list-siswa.php">Tidak</a>
</form>
</body>
</html>
8. Menghapus Data
📄 File: delete.php
*Fungsi:* Menghapus data siswa dari database (Delete).
<?php
include "koneksi.php";
$id = $_POST['id'];
$sql = "DELETE FROM siswa WHERE id=$id";
if (mysqli_query($koneksi, $sql)) {
header("Location: list-siswa.php");
} else {
echo "Error deleting record: " . mysqli_error($koneksi);
}
?>
9. Halaman Utama
📄 File: index.php
*Fungsi:* Halaman utama navigasi menuju form pendaftaran atau daftar siswa.
<?php
echo "<h2>Pendaftaran Siswa Baru</h2>
<h1>Digital Talent</h1>
<h3>Menu</h3>
<ul>
<li><a href='form-daftar.php'>Daftar Baru</a></li>
<li><a href='list-siswa.php'>Pendaftaran</a></li>
</ul>";
?>
🗃️ Struktur Tabel MySQL
CREATE TABLE siswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100),
alamat TEXT,
jenis_kelamin TINYINT(1),
agama VARCHAR(50),
sekolah_asal VARCHAR(100)
);