Membangun Aplikasi CRUD Sederhana dengan PHP dan MySQL

dani indra

Membangun Aplikasi CRUD Sederhana dengan PHP dan MySQL

Aplikasi CRUD (Create, Read, Update, Delete) adalah dasar dari banyak aplikasi web yang memungkinkan pengguna untuk melakukan operasi dasar terhadap data dalam database. Dalam artikel ini, kita akan membahas langkah-langkah untuk membangun aplikasi CRUD sederhana menggunakan PHP dan MySQL.

1. Persiapkan Database dan Tabel

Sebelum memulai, pastikan Anda telah membuat database dan tabel untuk aplikasi CRUD ini. Berikut contoh query untuk membuat tabel users:

CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

2. Buat Koneksi ke Database

Buat file db_connection.php untuk menyimpan informasi koneksi ke database.

<?php
$host = "localhost";
$username = "username";
$password = "password";
$database = "nama_database";

$conn = mysqli_connect($host, $username, $password, $database);

if (!$conn) {
    die("Koneksi Gagal: " . mysqli_connect_error());
}
?>

3. Buat Halaman Read (index.php)

Halaman ini akan menampilkan daftar pengguna dari database.

<?php
require_once 'db_connection.php';

$sql = "SELECT id, username, email FROM users";
$result = mysqli_query($conn, $sql);
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Daftar Pengguna</title>
</head>
<body>
    <h2>Daftar Pengguna</h2>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Email</th>
            <th>Aksi</th>
        </tr>

        <?php
        while ($row = mysqli_fetch_assoc($result)) {
            echo "<tr>";
            echo "<td>" . $row["id"] . "</td>";
            echo "<td>" . $row["username"] . "</td>";
            echo "<td>" . $row["email"] . "</td>";
            echo "<td><a href='edit.php?id=" . $row["id"] . "'>Edit</a> | <a href='delete.php?id=" . $row["id"] . "'>Hapus</a></td>";
            echo "</tr>";
        }
        ?>
    </table>
    <br>
    <a href="create.php">Tambah Pengguna</a>
</body>
</html>

<?php
mysqli_close($conn);
?>

4. Buat Halaman Create (create.php)

Halaman ini memungkinkan pengguna untuk menambahkan data baru ke dalam database.

<?php
require_once 'db_connection.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $username = $_POST['username'];
    $email = $_POST['email'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

    $sql = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$password')";

    if (mysqli_query($conn, $sql)) {
        header("Location: index.php");
        exit();
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Tambah Pengguna</title>
</head>
<body>
    <h2>Tambah Pengguna</h2>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
        <label for="username">Username:</label>
        <input type="text" name="username" required><br>

        <label for="email">Email:</label>
        <input type="email" name="email" required><br>

        <label for="password">Password:</label>
        <input type="password" name="password" required><br>

        <button type="submit">Tambah</button>
    </form>
    <br>
    <a href="index.php">Kembali ke Daftar Pengguna</a>
</body>
</html>

<?php
mysqli_close($conn);
?>

5. Buat Halaman Edit (edit.php)

Halaman ini memungkinkan pengguna untuk mengedit data pengguna yang sudah ada.

<?php
require_once 'db_connection.php';

if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET['id'])) {
    $user_id = $_GET['id'];

    $sql = "SELECT id, username, email FROM users WHERE id = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "i", $user_id);
    mysqli_stmt_execute($stmt);

    $result = mysqli_stmt_get_result($stmt);

    if ($row = mysqli_fetch_assoc($result)) {


        $username = $row['username'];
        $email = $row['email'];
    } else {
        echo "Pengguna tidak ditemukan.";
        exit();
    }
} elseif ($_SERVER["REQUEST_METHOD"] == "POST") {
    $user_id = $_POST['user_id'];
    $new_username = $_POST['username'];
    $new_email = $_POST['email'];

    $sql = "UPDATE users SET username = ?, email = ? WHERE id = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "ssi", $new_username, $new_email, $user_id);
    mysqli_stmt_execute($stmt);

    header("Location: index.php");
    exit();
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Edit Pengguna</title>
</head>
<body>
    <h2>Edit Pengguna</h2>
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">
        <input type="hidden" name="user_id" value="<?php echo $user_id; ?>">

        <label for="username">Username:</label>
        <input type="text" name="username" value="<?php echo $username; ?>" required><br>

        <label for="email">Email:</label>
        <input type="email" name="email" value="<?php echo $email; ?>" required><br>

        <button type="submit">Simpan Perubahan</button>
    </form>
    <br>
    <a href="index.php">Kembali ke Daftar Pengguna</a>
</body>
</html>

<?php
mysqli_stmt_close($stmt);
mysqli_close($conn);
?>

6. Buat Halaman Delete (delete.php)

Halaman ini memungkinkan pengguna untuk menghapus data pengguna.

<?php
require_once 'db_connection.php';

if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET['id'])) {
    $user_id = $_GET['id'];

    $sql = "DELETE FROM users WHERE id = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "i", $user_id);
    mysqli_stmt_execute($stmt);

    header("Location: index.php");
    exit();
} else {
    echo "Akses tidak sah.";
    exit();
}
?>

7. Penutup

Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membangun aplikasi CRUD sederhana menggunakan PHP dan MySQL. Aplikasi ini mencakup operasi dasar seperti menampilkan, menambah, mengedit, dan menghapus data pengguna. Jangan lupa untuk selalu memperhatikan keamanan, terutama saat bekerja dengan input pengguna dan operasi database. Teruslah belajar dan berkembang dalam pengembangan web!

Leave a Comment