Lompat ke konten Lompat ke sidebar Lompat ke footer

PHP : Membuat CRUD Sederhana dengan Folder Terpisah

Pada kesempatan kali ini kita akan membuat CRUD (Create, Read, Update, Delete) sederhana menggunakan PHP dan MySQL dengan struktur folder terpisah. Tujuannya adalah agar mudah untuk dikelola.

Struktur Folder

C:/xampp/htdocs/sekolah/
├── config/
│   └── koneksi.php
└── siswa/
    ├── edit.php
    ├── index.php
    ├── tambah.php
    └── proses/
        ├── proses_edit.php
        ├── proses_hapus.php
        └── proses_tambah.php

Membuat File PHP

Berikut adalah isi dari file koneksi.php.


<?php
$host = "localhost";
$user = "root";
$pass = "";
$db   = "sekolah";

$koneksi = mysqli_connect($host, $user, $pass, $db);

// Memeriksa koneksi database jika gagal
if (!$koneksi) {
  die("Koneksi gagal: " . mysqli_connect_error());
}
?>

Berikut adalah isi dari file index.php.


<?php 
require_once __DIR__ . '/../config/koneksi.php'; 
?>

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Data Siswa</title>
  <style>
    table { border-collapse: collapse; width: 100%; }
    th, td { border: 1px solid #ddd; padding: 8px; }
    th { background-color: #f2f2f2; }
    a { text-decoration: none; }
  </style>
</head>
<body>

<h2>Data Siswa</h2>
<a href="tambah.php">+ Tambah Siswa</a>
<br><br>

<table>
  <tr>
    <th>No</th>
    <th>NIS</th>
    <th>Nama Siswa</th>
    <th>Jenis Kelamin</th>
    <th>Aksi</th>
  </tr>

  <?php
  $no = 1;
  $data = mysqli_query($koneksi, "SELECT * FROM siswa");
  while ($row = mysqli_fetch_assoc($data)) {
  ?>
  <tr>
    <td><?= $no++; ?></td>
    <td><?= $row['nis']; ?></td>
    <td><?= $row['nama_siswa']; ?></td>
    <td><?= $row['jenis_kelamin']; ?></td>
    <td>
      <a href="edit.php?id=<?= $row['id_siswa']; ?>">Edit</a> |
      <a href="hapus.php?id=<?= $row['id_siswa']; ?>" onclick="return confirm('Hapus data ini?');">Hapus</a>
    </td>
  </tr>
  <?php } ?>
</table>

</body>
</html>

Berikut adalah isi dari file tambah.php


<?php
require_once __DIR__ . '/../config/koneksi.php';
?>

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Tambah Siswa</title>
</head>
<body>

<h2>Tambah Siswa</h2>
<form action="proses/proses_tambah.php" method="post">
  <label>NIS:</label><br>
  <input type="text" name="nis" required><br><br>

  <label>Nama Siswa:</label><br>
  <input type="text" name="nama_siswa" required><br><br>

  <label>Jenis Kelamin:</label><br>
  <select name="jenis_kelamin" required>
    <option value="">--Pilih--</option>
    <option value="L">L</option>
    <option value="P">P</option>
  </select><br><br>

  <button type="submit" name="simpan">Simpan</button>
</form>

</body>
</html>

Berikut adalah isi dari file edit.php


<?php
require_once __DIR__ . '/../config/koneksi.php';

$id_siswa = $_GET['id_siswa'];
$data = mysqli_query($koneksi, "SELECT * FROM siswa WHERE id_siswa='$id_siswa'");
$row = mysqli_fetch_assoc($data);
?>

<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="UTF-8">
  <title>Edit Siswa</title>
</head>
<body>

<h2>Edit Siswa</h2>
<form action="proses/proses_edit.php?id_siswa=<?= $id_siswa; ?>" method="post">
  <label>NIS:</label><br>
  <input type="text" name="nis" value="<?= $row['nis']; ?>" required><br><br>

  <label>Nama Siswa:</label><br>
  <input type="text" name="nama_siswa" value="<?= $row['nama_siswa']; ?>" required><br><br>

  <label>Jenis Kelamin:</label><br>
  <select name="jenis_kelamin" required>
    <option value="L" <?= $row['jenis_kelamin']=='L'?'selected':''; ?>>L</option>
    <option value="P" <?= $row['jenis_kelamin']=='P'?'selected':''; ?>>P</option>
  </select><br><br>

  <button type="submit" name="update">Update</button>
</form>

</body>
</html>

Berikut adalah isi dari file proses_tambah.php.


<?php
require_once __DIR__ . '/../../config/koneksi.php';

if (isset($_POST['simpan'])) {
    $nis            = mysqli_real_escape_string($koneksi, $_POST['nis']);
    $nama_siswa     = mysqli_real_escape_string($koneksi, $_POST['nama_siswa']);
    $jenis_kelamin  = mysqli_real_escape_string($koneksi, $_POST['jenis_kelamin']);

    $query = mysqli_query($koneksi, "INSERT INTO siswa (nis, nama_siswa, jenis_kelamin) VALUES ('$nis', '$nama_siswa', '$jenis_kelamin')");

    if ($query) {
        echo "<script>alert('Data berhasil disimpan');window.location='../index.php';</script>";
    } else {
        echo "<script>alert('Gagal menyimpan data');window.location='../tambah.php';</script>";
    }
} else {
    header('Location: ../tambah.php');
    exit;
}
?>

Berikut adalah isi dari file proses_edit.php


<?php
require_once __DIR__ . '/../../config/koneksi.php';

if (isset($_POST['update'])) {
    if (!isset($_GET['id_siswa'])) {
        echo "<script>alert('ID tidak ditemukan');window.location='../index.php';</script>";
        exit;
    }

    $id_siswa       = intval($_GET['id_siswa']);
    $nis            = mysqli_real_escape_string($koneksi, $_POST['nis']);
    $nama_siswa     = mysqli_real_escape_string($koneksi, $_POST['nama_siswa']);
    $jenis_kelamin  = mysqli_real_escape_string($koneksi, $_POST['jenis_kelamin']);

    $query = mysqli_query($koneksi, "UPDATE siswa SET nis='$nis', nama_siswa='$nama_siswa', jenis_kelamin='$jenis_kelamin' WHERE id_siswa='$id_siswa'");

    if ($query) {
        echo "<script>alert('Data berhasil diperbarui');window.location='../index.php';</script>";
    } else {
        echo "<script>alert('Gagal memperbarui data');window.location='../edit.php?id_siswa=$id_siswa';</script>";
    }

} else {
    header('Location: ../index.php');
    exit;
}
?>

Berikut adalah isi dari file proses_hapus.php.


<?php
require_once __DIR__ . '/../../config/koneksi.php';

// Menghapus data siswa berdasarkan id_siswa yang dikirim lewat GET
if (isset($_GET['id_siswa'])) {
    $id_siswa = intval($_GET['id_siswa']);

    $query = mysqli_query($koneksi, "DELETE FROM siswa WHERE id_siswa='$id_siswa'");

    if ($query) {
        echo "<script>alert('Data berhasil dihapus');window.location='../index.php';</script>";
    } else {
        echo "<script>alert('Gagal menghapus data');window.location='../index.php';</script>";
    }
} else {
    echo "<script>alert('ID tidak ditemukan');window.location='../index.php';</script>";
}
?>

Posting Komentar untuk "PHP : Membuat CRUD Sederhana dengan Folder Terpisah"