Praktik: Membuat aplikasi manajemen data pengguna
Berikut adalah modul praktik untuk membuat aplikasi manajemen data pengguna menggunakan PHP dan MySQL pada Ubuntu 24.04. Modul ini dirancang sebagai bagian dari kuliah pemrograman web dan tidak menggunakan alat dari Microsoft.
- 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 (Create, Read, Update, Delete) 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:**
```bash sudo apt update ```
2. **Instal Apache:**
```bash sudo apt install apache2 ```
Setelah instalasi, verifikasi bahwa Apache berjalan: ```bash sudo systemctl status apache2 ```
Pastikan statusnya "active (running)".
3. **Instal MySQL:**
```bash sudo apt install mysql-server ```
Setelah instalasi, amankan MySQL dengan: ```bash sudo mysql_secure_installation ```
Ikuti petunjuk untuk mengatur kata sandi root dan opsi keamanan lainnya.
4. **Instal PHP:**
```bash sudo apt install php libapache2-mod-php php-mysql ```
Verifikasi instalasi PHP dengan membuat file `info.php` di direktori root web: ```bash 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 Pengguna**
1. **Masuk ke MySQL:**
```bash sudo mysql ```
2. **Buat basis data baru:**
```sql CREATE DATABASE manajemen_pengguna; ```
3. **Gunakan basis data tersebut:**
```sql USE manajemen_pengguna; ```
4. **Buat tabel `pengguna`:**
```sql 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 <?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**
1. **Membuat Data (Create):**
- **Buat file `tambah_pengguna.php`:** ```php <?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 . "
" . $conn->error; } } ?> <!DOCTYPE html> <html> <head> <title>Formulir Pendaftaran</title> </head> <body>
Formulir Pendaftaran Pengguna
<form method="post" action=""> Nama: <input type="text" name="nama" required>
Email: <input type="email" name="email" required>
Kata Sandi: <input type="password" name="kata_sandi" required>
<input type="submit" value="Daftar"> </form> </body> </html> ``` Simpan file ini sebagai `tambah_pengguna.php` di direktori `/var/www/html/`.
2. **Membaca Data (Read):**
- **Buat file `lihat_pengguna.php`:**
<?php require 'koneksi.php';
// Query untuk mengambil data pengguna $sql = "SELECT id, nama, email, tanggal_daftar FROM pengguna"; $result = $conn->query($sql);
// Periksa apakah query berhasil if ($result === false) {
echo "Error: " . $conn->error; exit();
} ?> <!DOCTYPE html> <html> <head>
<title>Daftar Pengguna</title>
</head> <body>
Daftar Pengguna
<?php // Periksa apakah ada data yang ditemukan if ($result->num_rows > 0) { // Tampilkan data pengguna dalam tabel while ($row = $result->fetch_assoc()) { echo ""; } } else { echo "";} ?>
ID | Nama | Tanggal Daftar | Aksi | |
---|---|---|---|---|
{$row['id']} | {$row['nama']} | {$row['email']} | {$row['tanggal_daftar']} |
<a href='ubah_pengguna.php?id={$row['id']}'>Ubah</a> | <a href='hapus_pengguna.php?id={$row['id']}'>Hapus</a> |
Tidak ada data pengguna |
</body> </html> <?php // Tutup koneksi database $conn->close(); ?>
- 3. Memperbarui Data (Update):**
Untuk memungkinkan pengguna memperbarui informasi yang sudah ada, kita perlu membuat file `ubah_pengguna.php` yang menampilkan formulir dengan data pengguna yang dapat diedit.
- **Buat file `ubah_pengguna.php` dengan kode berikut:**
```php
<?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 . "
" . $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>
Ubah Data Pengguna
<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>
Email: <input type="email" name="email" value="<?php echo $row['email']; ?>" required>
<input type="submit" value="Perbarui"> </form> </body> </html> ```
**Penjelasan:** - Skrip ini memeriksa apakah permintaan yang diterima adalah metode POST. Jika ya, maka skrip akan memperbarui data pengguna berdasarkan ID yang diberikan. - Jika permintaan bukan metode POST, skrip akan mengambil data pengguna berdasarkan ID yang diterima melalui metode GET dan menampilkan formulir dengan data yang dapat diedit.
- 4. Menghapus Data (Delete):**
Untuk memungkinkan penghapusan data pengguna, kita perlu membuat file `hapus_pengguna.php` yang akan menangani proses penghapusan data berdasarkan ID pengguna.
- **Buat file `hapus_pengguna.php` dengan kode berikut:**
```php
<?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 . "
" . $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.
Dengan menyelesaikan bagian ini, Anda telah berhasil mengimplementasikan operasi CRUD dasar dalam aplikasi manajemen data pengguna menggunakan PHP dan MySQL pada Ubuntu 24.04.