Operasi CRUD (Create, Read, Update, Delete) dengan PHP dan MySQL

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

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

Pranala Menarik