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.