PWEB CRUD MYSQL PHP

Nama : Afel Allaric Absor
NRP   : 5025231140
Kelas : Pemrograman Web (E)


                                                           Pertemuan 11 CRUD PHP MYSQL

- calon-siswa.sql :

CREATE DATABASE IF NOT EXISTS pendaftaran_siswa;
USE pendaftaran_siswa;

CREATE TABLE IF NOT EXISTS calon_siswa (
    id INT AUTO_INCREMENT PRIMARY KEY,
    nama VARCHAR(100) NOT NULL,
    alamat TEXT NOT NULL,
    jenis_kelamin ENUM('Laki-laki', 'Perempuan') NOT NULL,
    agama VARCHAR(50) NOT NULL,
    sekolah_asal VARCHAR(100) NOT NULL
);

Kode diatas berfungsi untuk membuat db dan table untuk tugas ini.

- index.php :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home</title>
</head>
<body>
    <h1>Selamat Datang di sistem pendaftaran siswa baru</h1>
    <a href="form-daftar.php">Daftar Baru</a>
    <a href="list-siswa.php">List Siswa</a>
</body>
</html>

Kode diatas berfungsi sebagai halaman utama web.



- config.php :

<?php

$host = 'localhost';
$user = 'root';
$password = '';
$dbname = 'pendaftaran_siswa';

// Koneksi ke database
$conn = mysqli_connect($host, $user, $password, $dbname);

// Cek koneksi
if (!$conn) {
    die('Koneksi gagal: ' . mysqli_connect_error());
}

Kode diatas befungsi untuk menyambungkan mysql dengan page webnya.


- proses-pendaftaran.php :

<?php

require 'config.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nama = $_POST['nama'];
    $alamat = $_POST['alamat'];
    $jenis_kelamin = $_POST['jenis_kelamin'];
    $agama = $_POST['agama'];
    $sekolah_asal = $_POST['sekolah_asal'];

    $sql = "INSERT INTO calon_siswa (nama, alamat, jenis_kelamin, agama, sekolah_asal)
            VALUES ('$nama', '$alamat', '$jenis_kelamin', '$agama', '$sekolah_asal')";

    if (mysqli_query($conn, $sql)) {
        echo "Pendaftaran berhasil! <a href='index.php'>Kembali ke halaman utama</a>";
    } else {
        echo "Pendaftaran gagal: " . mysqli_error($conn);
    }

    mysqli_close($conn);
}

Kode diatas adalah logika dari suatu page yaitu form pendaftaran untuk mendaftarkan data siswa yang baru.


- form-daftar.php :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Daftar</title>
</head>
<body>
    <h1>Form Pendaftaran</h1>
    <form action="proses-pendaftaran.php" method="POST">
        <label for="nama">Nama:</label>
        <input type="text" name="nama" id="nama" required><br>

        <label for="alamat">Alamat:</label>
        <textarea name="alamat" id="alamat" required></textarea><br>

        <label for="jenis_kelamin">Jenis Kelamin:</label>
        <select name="jenis_kelamin" id="jenis_kelamin" required>
            <option value="Laki-laki">Laki-laki</option>
            <option value="Perempuan">Perempuan</option>
        </select><br>

        <label for="agama">Agama:</label>
        <input type="text" name="agama" id="agama" required><br>

        <label for="sekolah_asal">Sekolah Asal:</label>
        <input type="text" name="sekolah_asal" id="sekolah_asal" required><br>

        <button type="submit">Daftar</button>
    </form>
</body>
</html>

Kode diatas berfungsi untuk membuat form page untuk menambahkan data siswa.



- hapus.php :

<?php

require 'config.php';

if (isset($_GET['id'])) {
    $id = $_GET['id'];

    $sql = "DELETE FROM calon_siswa WHERE id = $id";

    if (mysqli_query($conn, $sql)) {
        header('Location: list-siswa.php');
    } else {
        echo'Gagal menghapus data: '. mysqli_error($conn);
    }
}

Kode diatas akan digunakan sebagai logika dari "Hapus" pada setiap row data siswa pada page list-siswa.



- list-siswa.php :

<?php
require 'config.php';

$sql = "SELECT * FROM calon_siswa";
$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>List siswa</title>
</head>

<body>
    <h1>Daftar Siswa</h1>
    <a href="form-daftar.php">[+] Tambah Siswa Baru</a>
    <a href="edit-siswa.php">[+] Edit Data Siswa</a>
    <table border="1">
        <thead>
            <tr>
                <th>ID</th>
                <th>Nama</th>
                <th>Alamat</th>
                <th>Jenis Kelamin</th>
                <th>Agama</th>
                <th>Sekolah Asal</th>
                <th>Hapus</th>
                <th>Edit</th>
            </tr>
        </thead>
        <tbody>
            <?php while($row = mysqli_fetch_assoc($result)):?>
            <tr>
                <td><?= $row['id'] ?></td>
                <td><?= htmlspecialchars($row['nama']) ?>
                </td>
                <td><?= htmlspecialchars($row['alamat']) ?>
                </td>
                <td><?= $row['jenis_kelamin'] ?>
                </td>
                <td><?= htmlspecialchars($row['agama']) ?>
                </td>
                <td><?= htmlspecialchars($row['sekolah_asal']) ?>
                </td>
                <td>
                    <a href="hapus.php?id=<?= $row['id'] ?>" onclick="return confirm('Apakah Anda yakin ingin menghapus data ini?');">
                        Hapus
                    </a>
                </td>
                <td>
                    <a href="edit-siswa.php?id=<?= $row['id'] ?>">Edit</a>
                </td>


            </tr>
            <?php endwhile;?>
        </tbody>
    </table>
</body>

</html>

Kode diatas berfungsi untuk menampilkan list dari data siswa yang telah dimasukkan serta jika ingin menghapus atau mengedit data siswa yang telah dimasukkan tersebut, logikanya menggunakan proses-pendaftaran.php


- proses-edit.php :

<?php
require 'config.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $id = $_POST['id'];
    $nama = $_POST['nama'];
    $alamat = $_POST['alamat'];
    $jenis_kelamin = $_POST['jenis_kelamin'];
    $agama = $_POST['agama'];
    $sekolah_asal = $_POST['sekolah_asal'];

    $sql = "UPDATE calon_siswa SET
                nama = '$nama',
                alamat = '$alamat',
                jenis_kelamin = '$jenis_kelamin',
                agama = '$agama',
                sekolah_asal = '$sekolah_asal'
            WHERE id = $id";

    if (mysqli_query($conn, $sql)) {
        header('Location: list-siswa.php');
        exit(); // Selalu gunakan exit() setelah header untuk mencegah eksekusi lebih lanjut
    } else {
        echo "Gagal mengupdate data: " . mysqli_error($conn);
    }
}
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Edit Data Calon Siswa</title>
</head>
<body>
    <h2>Edit Data Calon Siswa</h2>
    <form action="proses-edit.php" method="POST">
        <input type="hidden" name="id" value="1"> <!-- Ganti '1' dengan ID siswa yang ingin diubah -->

        <label for="nama">Nama:</label><br>
        <input type="text" name="nama" id="nama" value="Nama Lama"><br><br>

        <label for="alamat">Alamat:</label><br>
        <input type="text" name="alamat" id="alamat" value="Alamat Lama"><br><br>

        <label for="jenis_kelamin">Jenis Kelamin:</label><br>
        <select name="jenis_kelamin" id="jenis_kelamin">
            <option value="Laki-laki">Laki-laki</option>
            <option value="Perempuan">Perempuan</option>
        </select><br><br>

        <label for="agama">Agama:</label><br>
        <input type="text" name="agama" id="agama" value="Agama Lama"><br><br>

        <label for="sekolah_asal">Sekolah Asal:</label><br>
        <input type="text" name="sekolah_asal" id="sekolah_asal" value="Sekolah Asal Lama"><br><br>

        <input type="submit" value="Simpan Perubahan">
    </form>
</body>
</html>

Kode diatas berfungsi sebagai logika page edit data siswa.



- edit-siswa.php :

<?php
require 'config.php';

// Pastikan ID tersedia di URL
if (isset($_GET['id'])) {
    $id = $_GET['id'];

    // Query untuk mengambil data siswa berdasarkan ID
    $sql = "SELECT * FROM calon_siswa WHERE id = ?";
    $stmt = mysqli_prepare($conn, $sql);
    mysqli_stmt_bind_param($stmt, "i", $id);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);

    // Cek jika data ditemukan
    if ($data = mysqli_fetch_assoc($result)) {
        // Lanjutkan menampilkan form dengan data lama
    } else {
        echo "Data tidak ditemukan!";
        exit;
    }
} else {
    echo "ID tidak diberikan!";
    exit;
}
?>

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Edit Data Siswa</title>
</head>
<body>
    <h2>Edit Data Siswa</h2>
    <form action="proses-edit.php" method="POST">
        <!-- Hidden input untuk ID -->
        <input type="hidden" name="id" value="<?= $data['id'] ?>">

        <label for="nama">Nama:</label><br>
        <input type="text" name="nama" id="nama" value="<?= htmlspecialchars($data['nama']) ?>"><br><br>

        <label for="alamat">Alamat:</label><br>
        <input type="text" name="alamat" id="alamat" value="<?= htmlspecialchars($data['alamat']) ?>"><br><br>

        <label for="jenis_kelamin">Jenis Kelamin:</label><br>
        <select name="jenis_kelamin" id="jenis_kelamin">
            <option value="Laki-laki" <?= $data['jenis_kelamin'] == 'Laki-laki' ? 'selected' : '' ?>>Laki-laki</option>
            <option value="Perempuan" <?= $data['jenis_kelamin'] == 'Perempuan' ? 'selected' : '' ?>>Perempuan</option>
        </select><br><br>

        <label for="agama">Agama:</label><br>
        <input type="text" name="agama" id="agama" value="<?= htmlspecialchars($data['agama']) ?>"><br><br>

        <label for="sekolah_asal">Sekolah Asal:</label><br>
        <input type="text" name="sekolah_asal" id="sekolah_asal" value="<?= htmlspecialchars($data['sekolah_asal']) ?>"><br><br>

        <input type="submit" value="Simpan Perubahan">
    </form>
</body>
</html>

Kode diatas berfungsi untuk membuat form page yang akan mengubah data siswa pada row yang telah dipilih, logikanya menggunakan proses-edit.php


- Hasil kode saat dijalankan :



- Link repo github berisi source code :https://github.com/afelallaric/Tugas_Pweb_BackEnd.git

Komentar

Postingan populer dari blog ini

Tugas 8 Pemrograman Web (E) Membuat Form Register & Login Menggunakan Bootstrap