Situs ini dikemudikan dua tombol, seperti mesin pemiliknya. Membaca: j dan k menggulir, d dan u setengah layar, gg ke atas, G ke bawah, H dan L pindah jendela, ? membuka panduan. Spasi adalah kunci leader Neovim dan mengurus isi: Spasi lalu h beranda, r riset, p proyek, g gear, a tentang, / tag, atau Spasi lalu angka untuk melompat ke jendela bernomor itu. Home adalah prefix tmux dan mengurus jendela: Home lalu c membuka terminal, Home lalu & menutup jendela, Home lalu spasi ke jendela berikutnya. Saat fokus ada di papan ketik, h j k l memindahkan pilihan antar tombol dan Enter membukanya.

RisetR TentangA Gear — G untuk gear — papan ketik, terminal, editor, homelab.G
    ProyekP Tag — / seperti di vim: cari./
    ×
    Menu

    Sistem Manajemen Mata Kuliah dengan PHP dan MySQL

    Aplikasi web sederhana untuk mengelola data mata kuliah menggunakan PHP dan MySQL. Mendukung fitur **CRUD (Create, Read, Update, Delete)** dengan tampilan se...

    Aplikasi web sederhana untuk mengelola data mata kuliah menggunakan PHP dan MySQL. Mendukung operasi CRUD (Create, Read, Update, Delete) dengan antarmuka responsif berbasis Tailwind CSS.

    Fitur

    • Menambah data mata kuliah
    • Melihat daftar mata kuliah
    • Mengubah data mata kuliah
    • Menghapus data mata kuliah
    • Tampilan sederhana dan responsif

    Teknologi

    LapisanTeknologi
    BackendPHP (Native)
    DatabaseMySQL
    FrontendHTML + Tailwind CSS

    Struktur Folder

    📁 config/
    └── db.php # Koneksi database
    📁 feature/
    ├── create_matakuliah.php
    ├── update_matakuliah.php
    └── delete_matakuliah.php
    📁 template/
    ├── header.php
    └── footer.php
    form.php
    index.php

    Logika CRUD dipisah ke folder feature/, sementara komponen tampilan yang dapat digunakan ulang — yakni header dan footer — berada di folder template/.

    Snippet Kode

    1. Create — Tambah Data

    <?php
    include '../config/db.php';
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $kd = $_POST['kd'];
        $nm = $_POST['nm'];
        $sks = $_POST['sks'];
        $stmt = $conn->prepare("INSERT INTO matakuliah (kd_mtk, nm_mtk, sks) VALUES (?, ?, ?)");
        $stmt->bind_param("ssi", $kd, $nm, $sks);
        $stmt->execute();
        header("Location: ../index.php?create=success");
    }
    ?>

    2. Read — Tampilkan Data

    <?php
    $stmt = $conn->prepare("SELECT * FROM matakuliah");
    $stmt->execute();
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        echo $row['kd_mtk'] . " - " . $row['nm_mtk'] . " (" . $row['sks'] . " SKS)";
    }
    ?>

    3. Update — Ubah Data

    <?php
    include '../config/db.php';
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $kd = $_POST['kd'];
        $nm = $_POST['nm'];
        $sks = $_POST['sks'];
        $stmt = $conn->prepare("UPDATE matakuliah SET nm_mtk = ?, sks = ? WHERE kd_mtk = ?");
        $stmt->bind_param("sis", $nm, $sks, $kd);
        $stmt->execute();
        header("Location: ../index.php?update=success");
    }
    ?>

    4. Delete — Hapus Data

    <?php
    include '../config/db.php';
    if (isset($_GET['kd'])) {
        $kd = $_GET['kd'];
        $stmt = $conn->prepare("DELETE FROM matakuliah WHERE kd_mtk = ?");
        $stmt->bind_param("s", $kd);
        $stmt->execute();
        header("Location: ../index.php?delete=success");
    }
    ?>

    Setiap query dijalankan dengan prepared statements dan bind_param, sehingga input pengguna tidak pernah digabungkan langsung ke string SQL.

    Screenshot

    • Struktur Database
    • Daftar Mata Kuliah
    • Form Tambah / Edit
    • Sukses Tambah
    • Sukses Update
    • Sukses Hapus

    Cara Menjalankan

    1. Clone repositori

    git clone https://github.com/arisos/pwtm.git
    cd pwtm

    2. Impor database

    Impor file db.sql melalui phpMyAdmin atau MySQL CLI:

    mysql -u root -p nama_database < db.sql

    3. Jalankan server lokal

    php -S localhost:8000

    4. Buka di browser

    http://localhost:8000

    Lisensi

    Proyek ini bebas digunakan untuk keperluan pembelajaran dan pengembangan pribadi.

    id en
    rss gh in