Sistem Booking Lapangan Futsal

Cerita:

Pak Joni adalah pemilik lapangan futsal yang sering disewa oleh pelanggan. Saat ini, proses booking masih dilakukan secara manual melalui telepon atau chat, sehingga sering terjadi double booking atau kesalahan jadwal.

Pak Joni membutuhkan sebuah aplikasi untuk memudahkan pelanggan memesan lapangan secara online. Dengan aplikasi ini, pelanggan bisa melihat jadwal yang tersedia dan langsung melakukan pemesanan.


User Story:

  1. Sebagai Pak Joni, saya ingin dapat login ke aplikasi untuk mengelola data lapangan dan melihat daftar pemesanan.

  2. Sebagai pelanggan, saya ingin dapat melihat jadwal lapangan yang tersedia, sehingga saya tahu kapan bisa memesan.

  3. Sebagai pelanggan, saya ingin dapat melakukan booking lapangan, termasuk memilih tanggal dan jam yang diinginkan.

  4. Sebagai Pak Joni, saya ingin dapat melihat laporan pemesanan harian, sehingga saya tahu pendapatan setiap hari.


Skema Database (Maksimal 4 Tabel):

  1. Tabel users

    • id_user (Primary Key, INT)

    • username (VARCHAR, UNIQUE)

    • password (VARCHAR)

    • role (ENUM: "Admin")

  2. Tabel lapangan

    • id_lapangan (Primary Key, INT)

    • nama_lapangan (VARCHAR)

    • harga_per_jam (DECIMAL)

  3. Tabel jadwal

    • id_jadwal (Primary Key, INT)

    • id_lapangan (Foreign Key, INT, mengacu pada lapangan.id_lapangan)

    • tanggal (DATE)

    • jam_mulai (TIME)

    • jam_selesai (TIME)

    • status (ENUM: "Tersedia", "Dipesan")

  4. Tabel pemesanan

    • id_pemesanan (Primary Key, INT)

    • id_jadwal (Foreign Key, INT, mengacu pada jadwal.id_jadwal)

    • nama_pemesan (VARCHAR)

    • kontak (VARCHAR)

    • total_harga (DECIMAL)

    • tanggal_pemesanan (DATE)


Tugas:

  1. Buatlah aplikasi berbasis web menggunakan PHP, HTML, CSS, dan MySQL yang dapat:

    • Login: Admin dapat login untuk mengelola data lapangan dan jadwal.

    • Menampilkan jadwal lapangan yang tersedia kepada pelanggan.

    • Memungkinkan pelanggan melakukan booking lapangan.

    • Menampilkan laporan pemesanan harian.

  2. Bonus:

    • Tambahkan fitur untuk pelanggan mencetak bukti booking.

    • Enkripsi password pada tabel users.

Last updated