Difference between revisions of "Praktik: Membuat aplikasi manajemen data pengguna"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "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 pemrogr...")
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
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.
  
**Tujuan Pembelajaran:**
+
==Prasyarat:==
- Memahami cara mengatur lingkungan pengembangan web menggunakan LAMP (Linux, Apache, MySQL, PHP) pada Ubuntu 24.04.
+
* Komputer dengan sistem operasi Ubuntu 24.04.
- Membuat aplikasi web sederhana yang dapat melakukan operasi CRUD (Create, Read, Update, Delete) pada basis data MySQL menggunakan PHP.
+
* Akses ke terminal dengan hak akses sudo.
 +
* Koneksi internet untuk mengunduh paket yang diperlukan.
  
**Prasyarat:**
+
==Bagian 1: Instalasi LAMP Stack==
- 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:
  
LAMP adalah singkatan dari Linux, Apache, MySQL, dan PHP. Berikut adalah langkah-langkah untuk menginstalnya:
+
1. '''Perbarui daftar paket:'''
 +
 
 +
sudo apt update
  
1. **Perbarui daftar paket:**
+
2. '''Instal Apache:'''
   ```bash
+
    
   sudo apt update
+
sudo apt install apache2
   ```
+
+
Setelah instalasi, verifikasi bahwa Apache berjalan:
 +
    
 +
sudo systemctl status apache2
 +
    
 +
Pastikan statusnya "active (running)".
  
2. **Instal Apache:**
+
3. '''Instal MySQL:'''
   ```bash
+
    
  sudo apt install apache2
+
sudo apt install mysql-server
   ```
+
    
+
Setelah instalasi, amankan MySQL dengan:
  Setelah instalasi, verifikasi bahwa Apache berjalan:
+
    
   ```bash
+
sudo mysql_secure_installation
  sudo systemctl status apache2
+
 
  ```
+
Ikuti petunjuk untuk mengatur kata sandi root dan opsi keamanan lainnya.
 
  Pastikan statusnya "active (running)".
 
  
3. **Instal MySQL:**
+
4. '''Instal PHP:'''
   ```bash
+
    
  sudo apt install mysql-server
+
sudo apt install php libapache2-mod-php php-mysql
   ```
+
    
+
Verifikasi instalasi PHP dengan membuat file `info.php` di direktori root web:
  Setelah instalasi, amankan MySQL dengan:
+
    
   ```bash
+
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
  sudo mysql_secure_installation
+
 
  ```
+
Kemudian, buka `http://localhost/info.php` di browser Anda untuk melihat informasi PHP.
 
  Ikuti petunjuk untuk mengatur kata sandi root dan opsi keamanan lainnya.
 
  
4. **Instal PHP:**
+
==Bagian 2: Membuat Basis Data dan Tabel Pengguna==
  ```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:'''
 
+
    
1. **Masuk ke MySQL:**
+
sudo mysql
   ```bash
+
    
  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==
  
2. **Buat basis data baru:**
+
1. '''Buat file `koneksi.php` di direktori root web:'''
  ```sql
 
  CREATE DATABASE manajemen_pengguna;
 
  ```
 
 
  
3. **Gunakan basis data tersebut:**
+
<pre> 
  ```sql
+
<?php
  USE manajemen_pengguna;
+
$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);
 +
}
 +
?>
 +
</pre> 
  
4. **Buat tabel `pengguna`:**
+
Simpan file ini sebagai `koneksi.php` di direktori `/var/www/html/`.
  ```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**
+
==Bagian 4: Membuat Operasi CRUD==
  
1. **Buat file `koneksi.php` di direktori root web:**
+
1. '''Membuat Data (Create):'''
  ```php
 
  <?php
 
  $servername = "localhost";
 
  $username = "root";
 
  $password = "";
 
  $dbname = "manajemen_pengguna";
 
  
  // Membuat koneksi
+
'''Buat file `tambah_pengguna.php`:'''
  $conn = new mysqli($servername, $username, $password, $dbname);
 
  
  // Periksa koneksi
+
<pre>    
  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
 
     <?php
 
     require 'koneksi.php';
 
     require 'koneksi.php';
Line 147: Line 132:
 
     </body>
 
     </body>
 
     </html>
 
     </html>
     ```
+
</pre>
    Simpan file ini sebagai `tambah_pengguna.php` di direktori `/var/www/html/`.
+
      
 +
Simpan file ini sebagai `tambah_pengguna.php` di direktori `/var/www/html/`.
  
2. **Membaca Data (Read):**
+
2. '''Membaca Data (Read):'''
  - **Buat file `lihat_pengguna.php`:**
 
  
<?php
+
'''Buat file `lihat_pengguna.php`:'''
require 'koneksi.php';
 
  
// Query untuk mengambil data pengguna
+
<pre>
$sql = "SELECT id, nama, email, tanggal_daftar FROM pengguna";
+
<?php
$result = $conn->query($sql);
+
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();
 +
?>
 +
</pre>
  
// 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:'''
  
 +
<pre> 
 +
<?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>
 +
</pre>   
  
  
 +
'''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.
  
**3. Memperbarui Data (Update):**
+
'''4. Menghapus Data (Delete):'''
  
Untuk memungkinkan pengguna memperbarui informasi yang sudah ada, kita perlu membuat file `ubah_pengguna.php` yang menampilkan formulir dengan data pengguna yang dapat diedit.
+
Untuk memungkinkan penghapusan data pengguna, kita perlu membuat file `hapus_pengguna.php` yang akan menangani proses penghapusan data berdasarkan ID pengguna.
  
- **Buat file `ubah_pengguna.php` dengan kode berikut:**
+
'''Buat file `hapus_pengguna.php` dengan kode berikut:'''
  
 
+
<pre> 
```php
+
<?php
  <?php
+
require 'koneksi.php';
  require 'koneksi.php';
+
 
+
if (isset($_GET['id'])) {
  if ($_SERVER["REQUEST_METHOD"] == "POST") {
+
    $id = $_GET['id'];
      $id = $_POST['id'];
+
    $sql = "DELETE FROM pengguna WHERE id=$id";
      $nama = $conn->real_escape_string($_POST['nama']);
+
      $email = $conn->real_escape_string($_POST['email']);
+
    if ($conn->query($sql) === TRUE) {
 
+
        echo "Data berhasil dihapus.";
      $sql = "UPDATE pengguna SET nama='$nama', email='$email' WHERE id=$id";
+
    } else {
 
+
        echo "Error: " . $sql . "<br>" . $conn->error;
      if ($conn->query($sql) === TRUE) {
+
    }
          echo "Data berhasil diperbarui.";
+
}
      } else {
+
?>
          echo "Error: " . $sql . "<br>" . $conn->error;
+
</pre>  
      }
 
  } 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
 
  <?php
 
  require 'koneksi.php';
 
  
  if (isset($_GET['id'])) {
+
'''Penjelasan:'''
      $id = $_GET['id'];
+
* 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`.
      $sql = "DELETE FROM pengguna WHERE id=$id";
 
  
      if ($conn->query($sql) === TRUE) {
+
'''Catatan Penting:'''
          echo "Data berhasil dihapus.";
+
* Selalu lakukan validasi dan sanitasi data yang diterima dari pengguna untuk mencegah serangan injeksi SQL.
      } else {
+
* Gunakan Prepared Statements atau PDO untuk interaksi yang lebih aman dengan basis data.
          echo "Error: " . $sql . "<br>" . $conn->error;
+
* Pastikan untuk memberikan umpan balik yang jelas kepada pengguna setelah operasi berhasil atau jika terjadi kesalahan.
      }
 
  }
 
  ?>
 
  ```
 
 
  
  **Penjelasan:**
+
Dengan menyelesaikan bagian ini, Anda telah berhasil mengimplementasikan operasi CRUD dasar dalam aplikasi manajemen data pengguna menggunakan PHP dan MySQL pada Ubuntu 24.04.
  - 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:**
+
==Pranala Menarik==
- 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.
+
* [[Web Programming]]

Latest revision as of 07:55, 7 April 2025

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