CRUD adalah singkatan dari Create, Read, Update, dan Delete, yang merupakan empat operasi dasar dalam pengelolaan data. Dalam artikel ini, kita akan membahas bagaimana cara mengimplementasikan operasi CRUD menggunakan PHP dan MySQL melalui sebuah studi kasus sederhana: pengelolaan data mahasiswa.
1. Persiapan Lingkungan
Sebelum memulai, pastikan kamu telah menginstal:
- XAMPP (untuk server lokal)
- Editor teks seperti VS Code
- Browser (Chrome, Firefox, dll.)
Setelah itu, jalankan Apache dan MySQL dari panel kontrol XAMPP.
2. Membuat Database dan Tabel
Buka phpMyAdmin, lalu buat database dengan nama db_mahasiswa
. Setelah itu, jalankan SQL berikut untuk membuat tabel mahasiswa:
CREATE TABLE mahasiswa (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
nim VARCHAR(20) NOT NULL UNIQUE,
jurusan VARCHAR(50) NOT NULL
);
3. Koneksi ke Database
Buat file koneksi.php
untuk menghubungkan PHP dengan MySQL:
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "db_mahasiswa";
// Buat koneksi
$conn = new mysqli($host, $user, $pass, $db);
// Cek koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
// Set charset untuk mencegah masalah encoding (wajib kalau simpan data UTF-8)
$conn->set_charset("utf8mb4");
?>
4. Menampilkan Data Mahasiswa (Read)
Buat file index.php
untuk menampilkan seluruh data:
<?php include 'koneksi.php'; ?>
<h2>Data Mahasiswa</h2>
<a href="tambah.php">Tambah Mahasiswa</a>
<table border="1" cellpadding="10">
<tr>
<th>No</th>
<th>Nama</th>
<th>NIM</th>
<th>Jurusan</th>
<th>Aksi</th>
</tr>
<?php
$no = 1;
$query = "SELECT * FROM mahasiswa";
$result = $conn->query($query);
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$id = htmlspecialchars($row['id']);
$nama = htmlspecialchars($row['nama']);
$nim = htmlspecialchars($row['nim']);
$jurusan = htmlspecialchars($row['jurusan']);
echo "<tr>
<td>{$no}</td>
<td>{$nama}</td>
<td>{$nim}</td>
<td>{$jurusan}</td>
<td>
<a href='edit.php?id={$id}'>Edit</a> |
<a href='hapus.php?id={$id}' onclick=\"return confirm('Yakin ingin menghapus data ini?')\">Hapus</a>
</td>
</tr>";
$no++;
}
} else {
echo "<tr><td colspan='5'>Tidak ada data mahasiswa.</td></tr>";
}
$conn->close();
?>
</table>
5. Menambah Data Mahasiswa (Create)
Buat file tambah.php:
<?php
include 'koneksi.php';
if (isset($_POST['submit'])) {
// Ambil dan sanitasi input
$nama = trim($_POST['nama']);
$nim = trim($_POST['nim']);
$jurusan = trim($_POST['jurusan']);
// Validasi input (bisa ditambah sesuai kebutuhan)
if ($nama && $nim && $jurusan) {
// Gunakan prepared statement
$stmt = $conn->prepare("INSERT INTO mahasiswa (nama, nim, jurusan) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $nama, $nim, $jurusan);
if ($stmt->execute()) {
header("Location: index.php");
exit();
} else {
echo "Gagal menyimpan data.";
}
$stmt->close();
} else {
echo "Semua field wajib diisi.";
}
}
$conn->close();
?>
<h2>Tambah Mahasiswa</h2>
<form method="POST">
Nama: <input type="text" name="nama"><br>
NIM: <input type="text" name="nim"><br>
Jurusan: <input type="text" name="jurusan"><br>
<button type="submit" name="submit">Simpan</button>
</form>
6. Mengedit Data Mahasiswa (Update)
Buat file edit.php:
<?php
include 'koneksi.php';
// Validasi dan sanitasi ID
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
die("ID tidak valid.");
}
$id = (int)$_GET['id'];
// Ambil data mahasiswa
$stmt = $conn->prepare("SELECT * FROM mahasiswa WHERE id = ?");
$stmt->bind_param("i", $id);
$stmt->execute();
$result = $stmt->get_result();
$data = $result->fetch_assoc();
$stmt->close();
if (!$data) {
die("Data tidak ditemukan.");
}
// Proses update saat form disubmit
if (isset($_POST['submit'])) {
$nama = trim($_POST['nama']);
$nim = trim($_POST['nim']);
$jurusan = trim($_POST['jurusan']);
// Validasi sederhana
if ($nama && $nim && $jurusan) {
$stmt = $conn->prepare("UPDATE mahasiswa SET nama = ?, nim = ?, jurusan = ? WHERE id = ?");
$stmt->bind_param("sssi", $nama, $nim, $jurusan, $id);
if ($stmt->execute()) {
header("Location: index.php");
exit();
} else {
echo "Gagal mengupdate data.";
}
$stmt->close();
} else {
echo "Semua field wajib diisi.";
}
}
$conn->close();
?>
<h2>Edit Mahasiswa</h2>
<form method="POST">
Nama: <input type="text" name="nama" value="<?= $data['nama']; ?>"><br>
NIM: <input type="text" name="nim" value="<?= $data['nim']; ?>"><br>
Jurusan: <input type="text" name="jurusan" value="<?= $data['jurusan']; ?>"><br>
<button type="submit" name="submit">Update</button>
</form>
7. Menghapus Data Mahasiswa (Delete)
Buat file hapus.php:
<?php
include 'koneksi.php';
// Validasi dan sanitasi input
if (isset($_GET['id']) && is_numeric($_GET['id'])) {
$id = (int)$_GET['id'];
// Gunakan prepared statement untuk mencegah SQL injection
$stmt = $conn->prepare("DELETE FROM mahasiswa WHERE id = ?");
$stmt->bind_param("i", $id);
if ($stmt->execute()) {
header("Location: index.php");
exit();
} else {
echo "Gagal menghapus data.";
}
$stmt->close();
} else {
echo "ID tidak valid.";
}
$conn->close();
?>
8. Kesimpulan
Dengan menyelesaikan studi kasus ini, kamu telah mempelajari:
- Cara membuat database dan tabel
- Operasi CRUD dasar menggunakan PHP dan MySQL
- Struktur sederhana dari sistem manajemen data