Operasi CRUD (Create, Read, Update, Delete) dengan PHP dan MySQL
Tujuan Pembelajaran:
- Memahami cara mengatur lingkungan pengembangan web menggunakan LAMP (Linux, Apache, MySQL, PHP) pada Ubuntu 24.04.
- Membuat aplikasi web sederhana yang dapat melakukan operasi CRUD pada basis data MySQL menggunakan PHP.
Prasyarat:
- Komputer dengan sistem operasi Ubuntu 24.04.
- Akses ke terminal dengan hak akses sudo.
- Koneksi internet untuk mengunduh paket yang diperlukan.
Bagian 1: Instalasi LAMP Stack
LAMP adalah singkatan dari Linux, Apache, MySQL, dan PHP. Berikut adalah langkah-langkah untuk menginstalnya:
1. Perbarui daftar paket:
sudo apt update
2. Instal Apache:
sudo apt install apache2
Setelah instalasi, verifikasi bahwa Apache berjalan:
sudo systemctl status apache2
Pastikan statusnya "active (running)".
3. Instal MySQL:
sudo apt install mysql-server
Setelah instalasi, amankan MySQL dengan:
sudo mysql_secure_installation
Ikuti petunjuk untuk mengatur kata sandi root dan opsi keamanan lainnya.
4. Instal PHP:
sudo apt install php libapache2-mod-php php-mysql
Verifikasi instalasi PHP dengan membuat file `info.php` di direktori root web:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
Kemudian, buka `http://localhost/info.php` di browser Anda untuk melihat informasi PHP.
Bagian 2: Membuat Basis Data dan Tabel
1. Masuk ke MySQL:
sudo mysql
2. Buat basis data baru:
CREATE DATABASE manajemen_pengguna;
3. Gunakan basis data tersebut:
USE manajemen_pengguna;
4. Buat tabel `pengguna`:
CREATE TABLE pengguna (
id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
kata_sandi VARCHAR(255) NOT NULL,
tanggal_daftar TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Bagian 3: Membuat Koneksi PHP ke MySQL
1. Buat file `koneksi.php` di direktori root web:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "manajemen_pengguna";
// Membuat koneksi
$conn = new mysqli($servername, $username, $password, $dbname);
// Periksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
?>
Simpan file ini sebagai `koneksi.php` di direktori `/var/www/html/`.
Bagian 4: Membuat Operasi CRUD (Create, Read, Update, Delete)
1. Membuat Data (Create):
Untuk menambahkan data baru ke dalam tabel `pengguna`, buat file `tambah_pengguna.php` dengan kode berikut:
<?php
require 'koneksi.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = $conn->real_escape_string($_POST['nama']);
$email = $conn->real_escape_string($_POST['email']);
$kata_sandi = password_hash($_POST['kata_sandi'], PASSWORD_DEFAULT);
$sql = "INSERT INTO pengguna (nama, email, kata_sandi) VALUES ('$nama', '$email', '$kata_sandi')";
if ($conn->query($sql) === TRUE) {
echo "Pendaftaran berhasil";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Formulir Pendaftaran</title>
</head>
<body>
<h2>Formulir Pendaftaran Pengguna</h2>
<form method="post" action="">
Nama: <input type="text" name="nama" required><br>
Email: <input type="email" name="email" required><br>
Kata Sandi: <input type="password" name="kata_sandi" required><br>
<input type="submit" value="Daftar">
</form>
</body>
</html>
Skrip di atas menampilkan formulir pendaftaran dan memproses data yang dikirimkan untuk disimpan ke dalam tabel `pengguna`.
2. Membaca Data (Read):
Untuk menampilkan data dari tabel `pengguna`, buat file `lihat_pengguna.php` dengan kode berikut:
<?php require 'koneksi.php'; $sql = "SELECT id, nama, email, tanggal_daftar FROM pengguna"; $result = $conn->query($sql); ?>
<!DOCTYPE html>
<html>
<head>
<title>Daftar Pengguna</title>
</head>
<body>
<h2>Daftar Pengguna</h2>
<table border="1">
<tr>
<th>ID</th>
<th>Nama</th>
<th>Email</th>
<th>Tanggal Daftar</th>
<th>Aksi</th>
</tr>
<?php
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<tr>
<td>".$row['id']."</td>
<td>".$row['nama']."</td>
<td>".$row['email']."</td>
<td>".$row['tanggal_daftar']."</td>
<td>
<a href='ubah_pengguna.php?id=".$row['id']."'>Ubah</a> |
<a href='hapus_pengguna.php?id=".$row['id']."'>Hapus</a>
</td>
</tr>";
}
} else {
echo "<tr><td colspan='5'>Tidak ada data pengguna</td></tr>";
}
?>
</table>
</body>
</html>
Skrip di atas mengambil data dari tabel `pengguna` dan menampilkannya dalam bentuk tabel HTML dengan opsi untuk mengubah atau menghapus setiap entri.
3. Memperbarui Data (Update):
Untuk memperbarui data pengguna, buat file `ubah_pengguna.php` dengan kode berikut:
<?php
require 'koneksi.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST['id'];
$nama = $conn->real_escape_string($_POST['nama']);
$email = $conn->real_escape_string($_POST['email']);
$sql = "UPDATE pengguna SET nama='$nama', email='$email' WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil diperbarui";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
} else {
$id = $_GET['id'];
$sql = "SELECT * FROM pengguna WHERE id=$id";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Ubah Data Pengguna</title>
</head>
<body>
<h2>Ubah Data Pengguna</h2>
<form method="post" action="">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
Nama: <input type="text" name="nama" value="<?php echo $row['nama']; ?>" required><br>
Email: <input type="email" name="email" value="<?php echo $row['email']; ?>" required><br>
<input type="submit" value="Perbarui">
</form>
</body>
</html>
Skrip di atas menampilkan formulir dengan data pengguna yang dapat diperbarui. Setelah formulir disubmit, data akan diperbarui di tabel `pengguna`.
4. Menghapus Data (Delete):
Untuk menghapus data pengguna dari basis data, kita perlu membuat file `hapus_pengguna.php` yang akan menangani proses penghapusan.
Buat file `hapus_pengguna.php` dengan kode berikut:
<?php
require 'koneksi.php';
if (isset($_GET['id'])) {
$id = $_GET['id'];
$sql = "DELETE FROM pengguna WHERE id=$id";
if ($conn->query($sql) === TRUE) {
echo "Data berhasil dihapus";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
Penjelasan:
- Skrip ini memeriksa apakah parameter ID telah diterima melalui metode GET. Jika ya, maka skrip akan menghapus data pengguna yang sesuai dengan ID tersebut dari tabel `pengguna`.
Catatan Penting:
- Selalu lakukan validasi dan sanitasi data yang diterima dari pengguna untuk mencegah serangan injeksi SQL.
- Gunakan Prepared Statements atau PDO untuk interaksi yang lebih aman dengan basis data.
- Pastikan untuk memberikan umpan balik yang jelas kepada pengguna setelah operasi berhasil atau jika terjadi kesalahan.
Referensi Tambahan:
- Untuk pemahaman lebih lanjut tentang operasi CRUD dengan PHP dan MySQL, Anda dapat merujuk ke [PHP MySQL CRUD Application - Tutorial Republic](https://www.tutorialrepublic.com/php-tutorial/php-mysql-crud-application.php).
- Tutorial video yang membahas operasi CRUD dengan PHP dan MySQL dapat ditemukan di [PHP CRUD Tutorial with MySQL & Bootstrap - YouTube](https://www.youtube.com/watch?v=ah5M4Umuf9w).
Dengan menyelesaikan bagian ini, Anda telah berhasil mengimplementasikan operasi CRUD dasar dalam aplikasi manajemen pengguna menggunakan PHP dan MySQL pada Ubuntu 24.04.