Praktik: Membuat aplikasi manajemen data pengguna

From OnnoWiki
Jump to navigation Jump to search

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:

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 Pengguna

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

1. Membuat Data (Create):

Buat file `tambah_pengguna.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 . "<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>

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>
     <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
         // Periksa apakah ada data yang ditemukan
         if ($result->num_rows > 0) {
             // Tampilkan data pengguna dalam tabel
             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>
 
 <?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
 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>


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
 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.

Dengan menyelesaikan bagian ini, Anda telah berhasil mengimplementasikan operasi CRUD dasar dalam aplikasi manajemen data pengguna menggunakan PHP dan MySQL pada Ubuntu 24.04.

Pranala Menarik