# Sistem Pendaftaran Kursus Online

#### **Cerita:**

Bu Anita adalah seorang pengelola lembaga kursus yang menawarkan berbagai kelas online, seperti kursus bahasa Inggris, pemrograman, dan desain grafis. Saat ini, pendaftaran kursus dilakukan secara manual melalui formulir kertas, sehingga sulit bagi Bu Anita untuk mengelola data siswa dan kursus yang diambil.

Bu Anita ingin sebuah aplikasi yang memungkinkan siswa untuk mendaftar kursus secara online, dan dirinya bisa melihat data siswa serta kursus yang mereka ambil dengan mudah.

***

**User Story:**

1. **Sebagai Bu Anita**, saya ingin dapat **login ke aplikasi** sehingga hanya saya sebagai admin yang bisa mengelola data siswa dan kursus.
2. **Sebagai siswa**, saya ingin dapat **mendaftar ke kursus secara online** dengan memasukkan data diri dan memilih kursus yang tersedia.
3. **Sebagai Bu Anita**, saya ingin dapat **melihat daftar siswa yang mendaftar ke setiap kursus** sehingga saya tahu siapa saja yang mengikuti kursus tertentu.

***

**Skema Database (Maksimal 4 Tabel):**

1. **Tabel `users`**
   * `id_user` (Primary Key, INT)
   * `username` (VARCHAR, UNIQUE)
   * `password` (VARCHAR)
   * `role` (ENUM: "Admin")
2. **Tabel `kursus`**
   * `id_kursus` (Primary Key, INT)
   * `nama_kursus` (VARCHAR)
   * `deskripsi` (TEXT)
   * `biaya` (DECIMAL)
3. **Tabel `siswa`**
   * `id_siswa` (Primary Key, INT)
   * `nama` (VARCHAR)
   * `email` (VARCHAR)
   * `no_hp` (VARCHAR)
4. **Tabel `pendaftaran`**
   * `id_pendaftaran` (Primary Key, INT)
   * `id_siswa` (Foreign Key, INT, mengacu pada `siswa.id_siswa`)
   * `id_kursus` (Foreign Key, INT, mengacu pada `kursus.id_kursus`)
   * `tanggal_daftar` (DATE)

***

#### **Tugas:**

1. Buatlah aplikasi berbasis web menggunakan **PHP**, **HTML**, **CSS**, dan **MySQL** yang dapat:
   * **Login**: Admin dapat login untuk mengelola data kursus dan pendaftaran.
   * Menambahkan, mengedit, dan menghapus data kursus.
   * Memungkinkan siswa untuk mendaftar kursus secara online.
   * Menampilkan daftar siswa yang mendaftar di setiap kursus.
2. **Bonus**:
   * Tambahkan fitur untuk siswa mencetak bukti pendaftaran.
   * Enkripsi password pada tabel `users`.
