# 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`.
