PHP CRUD
23 Jun 2025
Penjelasan tentang PHP CRUD
Panduan Lengkap tentang PHP CRUD
📁 1. koneksi.php
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'latihan';
$koneksi = mysqli_connect($host, $username, $password, $db_name);
if (!$koneksi) {
die("koneksi gagal : " . mysqli_connect_error());
}
?>
Fungsi File:
Untuk menghubungkan aplikasi ke database MySQL.
Penjelasan Sintaks:
$host = 'localhost';
$username = 'root';
$password = '';
$db_name = 'latihan';
- Mendefinisikan parameter koneksi ke database.
$koneksi = mysqli_connect($host, $username, $password, $db_name);
- Membuat koneksi ke MySQL dan menyimpan hasilnya ke variabel
$koneksi
.
if (!$koneksi) {
die("koneksi gagal : " . mysqli_connect_error());
}
- Mengecek apakah koneksi berhasil. Jika gagal, hentikan eksekusi dan tampilkan pesan error.
📁 2. index.php
<?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>
";
?>
Fungsi File:
Menampilkan halaman utama dan menu navigasi aplikasi.
Penjelasan Sintaks:
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>";
- Menampilkan konten HTML berupa judul dan dua tautan menu untuk menuju form pendaftaran (
form-daftar.php
) dan daftar siswa (list-siswa.php
).
📁 3. form-daftar.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Form Pendaftaran Siswa Baru | 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>--Pilih Agama--</option>
<option>Islam</option>
<option>Kristen</option>
<option>Hindu</option>
<option>Budha</option>
</select>
</td>
</tr>
<tr>
<td>Sekolah Asal</td>
<td><input type="text" name="sekolah_asal"></td>
</tr>
<tr>
<td colspan="2">
<button type="submit">Daftar</button>
<a href="index.php">Batal</a>
</td>
</tr>
</table>
</form>
</body>
</html>
Fungsi File:
Menampilkan form input data siswa baru.
Penjelasan Sintaks Penting:
<form action="create.php" method="POST">
- Data dari form akan dikirim ke file
create.php
menggunakan metode POST.
<input type="text" name="nama">
<textarea name="alamat"></textarea>
- Inputan untuk nama dan alamat siswa.
<input type="radio" name="jenis_kelamin" value="1"> Laki-laki
<input type="radio" name="jenis_kelamin" value="0"> Perempuan
- Memilih jenis kelamin siswa.
1
untuk laki-laki,0
untuk perempuan.
<select name="agama">
<option>Islam</option>
...
</select>
- Pilihan dropdown untuk agama.
<button type="submit">Daftar</button>
- Tombol untuk mengirimkan form.
📁 4. create.php
<?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);
}
?>
Fungsi File:
Menerima data dari form dan menyimpan ke database.
Penjelasan Sintaks:
include "koneksi.php";
- Menghubungkan ke database.
$nama = $_POST['nama'];
...
- Mengambil data dari form yang dikirim melalui metode POST.
$sql = "INSERT INTO siswa (...) VALUES (...)";
- SQL untuk menyimpan data baru ke tabel
siswa
.
if (mysqli_query($koneksi, $sql)) {
header("location:list-siswa.php");
}
- Jika berhasil, diarahkan ke daftar siswa.
📁 5. list-siswa.php
<?php include("koneksi.php"); ?>
<h1>List Siswa</h1>
<a href="form-daftar.php">[+] Tambah Baru</a>
<table border="1">
<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>
<?php
$sql = "SELECT * FROM siswa";
$query = mysqli_query($koneksi, $sql);
$no = 1;
while($row = mysqli_fetch_array($query)){
echo "<tr>";
echo "<td>".$no++."</td>";
echo "<td>".$row['nama']."</td>";
echo "<td>".$row['alamat']."</td>";
echo "<td>".($row['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan')."</td>";
echo "<td>".$row['agama']."</td>";
echo "<td>".$row['sekolah_asal']."</td>";
echo "<td>
<a href='form-edit.php?id=".$row['id']."'>Edit</a> |
<a href='form-delete.php?id=".$row['id']."' onclick='return confirm(\"Yakin hapus?\")'>Delete</a>
</td>";
echo "</tr>";
}
?>
</table>
<a href="index.php">Kembali</a>
Fungsi File:
Menampilkan seluruh data siswa dari database dalam bentuk tabel.
Penjelasan Sintaks:
$sql = "SELECT * FROM siswa";
$query = mysqli_query($koneksi, $sql);
- Mengambil semua data siswa.
while($row = mysqli_fetch_array($query)){
- Perulangan untuk menampilkan setiap baris data siswa.
echo "<td>".($row['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan')."</td>";
- Menampilkan label jenis kelamin sesuai nilai dalam database.
<a href='form-edit.php?id=".$row['id']."'>Edit</a>
<a href='form-delete.php?id=".$row['id']."'>Delete</a>
- Link untuk mengedit atau menghapus data siswa tertentu berdasarkan
id
.
📁 6. form-edit.php
<?php
include("koneksi.php");
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
$query = mysqli_query($koneksi, $sql);
$row = mysqli_fetch_assoc($query);
?>
<h2>Form Edit</h2>
<form action="update.php" method="POST">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
Nama: <input type="text" name="nama" value="<?php echo $row['nama']; ?>" /><br />
Alamat: <textarea name="alamat"><?php echo $row['alamat']; ?></textarea><br />
Jenis Kelamin:
<input type="radio" name="jenis_kelamin" value="1" <?php echo $row['jenis_kelamin']== 1 ? 'checked' : ''; ?>>Laki-laki
<input type="radio" name="jenis_kelamin" value="0" <?php echo $row['jenis_kelamin']== 0 ? 'checked' : ''; ?>>Perempuan<br />
Agama:
<select name="agama">
<option value="Islam" <?php if($row['agama'] == 'Islam') echo 'selected'; ?>>Islam</option>
<option value="Kristen" <?php if($row['agama'] == 'Kristen') echo 'selected'; ?>>Kristen</option>
<option value="Hindu" <?php if($row['agama'] == 'Hindu') echo 'selected'; ?>>Hindu</option>
<option value="Budha" <?php if($row['agama'] == 'Budha') echo 'selected'; ?>>Budha</option>
<option value="Konghucu" <?php if($row['agama'] == 'Konghucu') echo 'selected'; ?>>Konghucu</option>
</select><br />
Sekolah Asal: <input type="text" name="sekolah_asal" value="<?php echo $row['sekolah_asal']; ?>" /><br />
<input type="submit" value="Simpan" name="simpan" />
</form>
Fungsi File:
Menampilkan form edit data siswa berdasarkan ID.
Penjelasan Sintaks:
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
- Mengambil data siswa berdasarkan ID yang dikirim dari URL.
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
- Menyimpan ID agar dapat dikirim kembali saat submit form edit.
<input type="radio" name="jenis_kelamin" value="1" <?php echo $row['jenis_kelamin']==1?'checked':'' ?>>
- Menampilkan radio button yang sesuai dengan data dari database.
📁 7. update.php
<?php
include("koneksi.php");
if(isset($_POST['simpan'])){
$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";
$query = mysqli_query($koneksi, $sql);
if($query){
header('Location: list-siswa.php');
} else {
die("Gagal menyimpan perubahan...");
}
}
?>
Fungsi File:
Memproses dan menyimpan perubahan data siswa yang diedit.
Penjelasan Sintaks:
if(isset($_POST['simpan'])){
- Mengecek apakah tombol simpan diklik.
$sql = "UPDATE siswa SET ... WHERE id=$id";
- SQL untuk memperbarui data berdasarkan ID.
header('Location: list-siswa.php');
- Redirect setelah berhasil update.
📁 8. form-delete.php
<!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>Apakah Anda yakin akan menghapus data berikut?</h2>
<form action="delete.php" method="POST">
<input type="hidden" name="id" value="<?php echo $row['id'] ?>">
Nama : <?php echo $row['nama'] ?> <br/>
Alamat : <?php echo $row['alamat'] ?> <br/>
Jenis Kelamin :
<?php echo ($row['jenis_kelamin'] == 1 ? "Laki-laki" : "Perempuan"); ?> <br/>
Agama : <?php echo $row['agama'] ?> <br/>
Sekolah Asal : <?php echo $row['sekolah_asal'] ?> <br/>
<button type="submit">Ya</button>
<a href="list-siswa.php">Tidak</a>
</form>
</body>
</html>
Fungsi File:
Menampilkan detail siswa untuk konfirmasi sebelum menghapus.
Penjelasan Sintaks:
$id = $_GET['id'];
$sql = "SELECT * FROM siswa WHERE id=$id";
- Mengambil data siswa yang akan dihapus.
<form action="delete.php" method="POST">
<input type="hidden" name="id" value="<?php echo $row['id'] ?>">
- Mengirimkan ID ke
delete.php
untuk penghapusan.
if ($row['jenis_kelamin'] == 1) echo "Laki-laki"; else echo "Perempuan";
- Menampilkan label jenis kelamin berdasarkan nilai.
📁 9. delete.php
<?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);
}
?>
Fungsi File:
Menghapus data siswa berdasarkan ID dari database.
Penjelasan Sintaks:
$id = $_POST['id'];
$sql = "DELETE FROM siswa WHERE id=$id";
- Menghapus data siswa dengan ID tertentu.
header("location:list-siswa.php");
- Redirect ke daftar siswa setelah penghapusan berhasil.
📌 Catatan Tambahan
Struktur Tabel siswa
(diasumsikan):
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)
);