Sistem Reservasi Perpustakaan
Cerita:
Dina adalah seorang kepala perpustakaan di sebuah sekolah. Ia sering mengalami kesulitan dalam mencatat peminjaman buku karena saat ini semua dilakukan secara manual. Akibatnya, beberapa buku hilang atau tidak dikembalikan tepat waktu. Dina membutuhkan sebuah aplikasi sederhana untuk membantu mencatat data buku, siswa yang meminjam, dan tanggal peminjaman/pengembalian.
Namun, karena Dina ingin agar aplikasi lebih aman, ia meminta agar setiap pengguna yang ingin mengakses sistem harus login terlebih dahulu dengan nama pengguna dan kata sandi. Hanya Dina dan petugas perpustakaan yang diizinkan menggunakan aplikasi tersebut.
User Story:
Sebagai Dina, saya ingin dapat login ke aplikasi dengan nama pengguna dan kata sandi, sehingga hanya petugas yang memiliki akses ke sistem.
Sebagai Dina, saya ingin dapat menambahkan data buku ke dalam sistem, sehingga saya tahu buku apa saja yang tersedia di perpustakaan.
Sebagai Dina, saya ingin dapat mencatat data siswa yang meminjam buku, sehingga saya dapat melacak siapa yang meminjam buku tertentu.
Sebagai Dina, saya ingin dapat melihat daftar peminjaman buku, termasuk nama siswa, judul buku, tanggal pinjam, dan tanggal pengembalian (jika sudah dikembalikan).
Sebagai Dina, saya ingin dapat mengubah status peminjaman menjadi "dikembalikan" ketika siswa mengembalikan buku.
Skema Database (Maksimal 4 Tabel, dengan Fitur Login):
Tabel
users(untuk fitur login)id_user(Primary Key, INT)username(VARCHAR, UNIQUE)password(VARCHAR)role(ENUM: "Admin", "Petugas")
Tabel
bukuid_buku(Primary Key, INT)judul(VARCHAR)pengarang(VARCHAR)tahun_terbit(YEAR)status(ENUM: "Tersedia", "Dipinjam")
Tabel
siswaid_siswa(Primary Key, INT)nama_siswa(VARCHAR)kelas(VARCHAR)nomor_induk(VARCHAR)
Tabel
peminjamanid_peminjaman(Primary Key, INT)id_buku(Foreign Key, INT, mengacu padabuku.id_buku)id_siswa(Foreign Key, INT, mengacu padasiswa.id_siswa)tanggal_pinjam(DATE)tanggal_kembali(DATE, NULLABLE)status(ENUM: "Dipinjam", "Dikembalikan")
Tugas:
Database:
Buatlah struktur database sesuai skema di atas menggunakan SQL.
Isi tabel
usersdengan data minimal satu admin (misalnya, username:admin, password:1234).
Aplikasi: Buatlah aplikasi berbasis web menggunakan PHP, HTML, CSS, dan MySQL yang dapat:
Login: Memastikan pengguna hanya dapat mengakses aplikasi setelah login dengan username dan password yang sesuai.
CRUD Siswa: Menambahkan, melihat, memperbarui, dan menghapus data siswa.
CRUD Buku: Menambahkan, melihat, memperbarui, dan menghapus data buku.
CRUD Peminjaman: Mencatat peminjaman buku, melihat daftar peminjaman, dan mengubah status peminjaman menjadi "Dikembalikan".
Bonus:
Tambahkan fitur logout.
Enkripsi password pada tabel
users.
Last updated