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';
$koneksi = mysqli_connect($host, $username, $password, $db_name);
if (!$koneksi) {
    die("koneksi gagal : " . mysqli_connect_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>";

📁 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">
<input type="text" name="nama">
<textarea name="alamat"></textarea>
<input type="radio" name="jenis_kelamin" value="1"> Laki-laki
<input type="radio" name="jenis_kelamin" value="0"> Perempuan
<select name="agama">
  <option>Islam</option>
  ...
</select>
<button type="submit">Daftar</button>

📁 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";
$nama = $_POST['nama'];
...
$sql = "INSERT INTO siswa (...) VALUES (...)";
if (mysqli_query($koneksi, $sql)) {
    header("location:list-siswa.php");
}

📁 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);
while($row = mysqli_fetch_array($query)){
echo "<td>".($row['jenis_kelamin'] == 1 ? 'Laki-laki' : 'Perempuan')."</td>";
<a href='form-edit.php?id=".$row['id']."'>Edit</a>
<a href='form-delete.php?id=".$row['id']."'>Delete</a>

📁 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";
<input type="hidden" name="id" value="<?php echo $row['id']; ?>" />
<input type="radio" name="jenis_kelamin" value="1" <?php echo $row['jenis_kelamin']==1?'checked':'' ?>>

📁 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'])){
$sql = "UPDATE siswa SET ... WHERE id=$id";
header('Location: list-siswa.php');

📁 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";
<form action="delete.php" method="POST">
  <input type="hidden" name="id" value="<?php echo $row['id'] ?>">
if ($row['jenis_kelamin'] == 1) echo "Laki-laki"; else echo "Perempuan";

📁 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";
header("location:list-siswa.php");

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