Database Perpustakaan Lengkap & Penjelasan Struktur Tabel
Database perpustakaan berguna untuk mengelola buku, anggota, peminjaman, dan pengembalian secara efisien. Artikel ini menjelaskan struktur tabel, relasi, dan alasannya.
1. Tabel books
– Data Buku
Tabel books
menyimpan informasi buku di perpustakaan:
- book_id: Primary Key untuk setiap buku.
- title: Judul buku.
- author: Penulis buku.
- publisher: Penerbit buku.
- year: Tahun terbit.
- stock: Jumlah buku tersedia.
CREATE TABLE books ( book_id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, author VARCHAR(100), publisher VARCHAR(100), year YEAR, stock INT DEFAULT 0 );
ID | Judul | Penulis | Penerbit | Tahun | Stok |
---|---|---|---|---|---|
1 | Belajar PHP | Budi Santoso | Gramedia | 2020 | 5 |
2 | SQL Dasar | Siti Aminah | Erlangga | 2019 | 3 |
Alasan desain:
Kolom lengkap untuk identifikasi buku dan memudahkan pencarian serta manajemen stok.
2. Tabel members
– Data Anggota
Menyimpan informasi anggota perpustakaan:
- member_id: Primary Key.
- name: Nama anggota.
- email: Email anggota.
- phone: Nomor telepon.
- join_date: Tanggal bergabung.
CREATE TABLE members ( member_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE, phone VARCHAR(20), join_date DATE DEFAULT CURRENT_DATE );
ID | Nama | Telepon | Tanggal Bergabung | |
---|---|---|---|---|
1 | Budi Santoso | budi@example.com | 08123456789 | 2025-09-15 |
2 | Siti Aminah | siti@example.com | 08198765432 | 2025-09-16 |
Alasan desain:
Email unik untuk login dan tracking anggota, join_date untuk laporan aktivitas anggota.
3. Tabel loans
– Peminjaman Buku
Tabel ini menyimpan data peminjaman:
- loan_id: Primary Key.
- member_id: Menghubungkan peminjaman ke anggota.
- loan_date: Tanggal peminjaman.
- due_date: Tanggal jatuh tempo pengembalian.
- status: Status peminjaman (dipinjam/kembali/terlambat).
CREATE TABLE loans ( loan_id INT PRIMARY KEY AUTO_INCREMENT, member_id INT, loan_date DATE DEFAULT CURRENT_DATE, due_date DATE, status VARCHAR(20) DEFAULT 'dipinjam', FOREIGN KEY (member_id) REFERENCES members(member_id) );
ID | ID Anggota | Tanggal Pinjam | Tanggal Jatuh Tempo | Status |
---|---|---|---|---|
1 | 1 | 2025-09-15 | 2025-09-22 | dipinjam |
2 | 2 | 2025-09-16 | 2025-09-23 | dipinjam |
Alasan desain:
Relasi ke anggota memudahkan tracking siapa meminjam buku, status dan due_date untuk manajemen pengembalian.
4. Tabel loan_items
– Detail Buku Per Peminjaman
Tabel ini memungkinkan satu peminjaman memiliki banyak buku:
CREATE TABLE loan_items ( loan_item_id INT PRIMARY KEY AUTO_INCREMENT, loan_id INT, book_id INT, quantity INT DEFAULT 1, FOREIGN KEY (loan_id) REFERENCES loans(loan_id), FOREIGN KEY (book_id) REFERENCES books(book_id) );
ID | ID Peminjaman | ID Buku | Jumlah |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 1 | 2 | 1 |
3 | 2 | 2 | 1 |
Alasan desain:
Membuat relasi many-to-many antara peminjaman dan buku. Satu peminjaman bisa memiliki banyak buku, satu buku bisa dipinjam beberapa kali.
Baca juga: Database Penjualan & Penjelasan Struktur Tabel
Kesimpulan
Database perpustakaan ini memiliki struktur terorganisir:
- Buku (
books
) – Data buku lengkap dan stok tersedia. - Anggota (
members
) – Data anggota unik dan mudah dilacak. - Peminjaman (
loans
) – Menghubungkan anggota dan buku. - Detail Peminjaman (
loan_items
) – Relasi many-to-many antara peminjaman dan buku.
Desain ini memungkinkan sistem perpustakaan berjalan efisien, mudah dilacak, dan siap untuk laporan serta analisis peminjaman.