Profile Picture

Home

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)
);