# Sistem Pemesanan Tiket Bioskop

**Cerita:**

Raka adalah seorang manajer di sebuah bioskop. Ia ingin membuat aplikasi pemesanan tiket bioskop secara online agar pengunjung tidak perlu antre di loket. Aplikasi ini juga memudahkan manajemen untuk mencatat penjualan tiket dan mengatur jadwal film yang tayang.

Raka meminta agar sistem ini memungkinkan pengguna untuk memilih film, jadwal tayang, kursi yang tersedia, dan memesan tiket langsung melalui sistem.

***

**User Story:**

1. **Sebagai Raka**, saya ingin dapat **login ke aplikasi** untuk mengelola data film, jadwal tayang, dan tiket yang terjual.
2. **Sebagai pengunjung**, saya ingin dapat **melihat daftar film yang sedang tayang**, sehingga saya tahu apa saja pilihan yang tersedia.
3. **Sebagai pengunjung**, saya ingin dapat **memesan tiket**, termasuk memilih jadwal tayang dan kursi yang tersedia.
4. **Sebagai Raka**, saya ingin dapat **melihat laporan penjualan tiket harian**, sehingga saya tahu total 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 `film`**
   * `id_film` (Primary Key, INT)
   * `judul` (VARCHAR)
   * `deskripsi` (TEXT)
   * `durasi` (INT, dalam menit)
   * `rating` (VARCHAR)
3. **Tabel `jadwal`**
   * `id_jadwal` (Primary Key, INT)
   * `id_film` (Foreign Key, INT, mengacu pada `film.id_film`)
   * `tanggal` (DATE)
   * `jam` (TIME)
   * `harga_tiket` (DECIMAL)
4. **Tabel `pemesanan`**
   * `id_pemesanan` (Primary Key, INT)
   * `id_jadwal` (Foreign Key, INT, mengacu pada `jadwal.id_jadwal`)
   * `nama_pemesan` (VARCHAR)
   * `kursi` (VARCHAR)
   * `total_harga` (DECIMAL)
   * `tanggal_pesan` (DATE)

***

#### **Tugas:**

1. Buatlah aplikasi berbasis web menggunakan **PHP**, **HTML**, **CSS**, dan **MySQL** yang dapat:
   * **Login**: Admin dapat login untuk mengelola data film, jadwal, dan melihat laporan penjualan.
   * Menampilkan daftar film yang sedang tayang.
   * Memungkinkan pengunjung memesan tiket, memilih jadwal tayang, dan kursi yang tersedia.
   * Menampilkan laporan penjualan tiket harian.
2. **Bonus**:
   * Tambahkan fitur untuk mencetak tiket.
   * Enkripsi password pada tabel `users`.
