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

);

IDJudulPenulisPenerbitTahunStok
1Belajar PHPBudi SantosoGramedia20205
2SQL DasarSiti AminahErlangga20193

Alasan desain:

Kolom lengkap untuk identifikasi buku dan memudahkan pencarian serta manajemen stok.



Database Perpustakaan Lengkap dan struktur tabel

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

);

IDNamaEmailTeleponTanggal Bergabung
1Budi Santosobudi@example.com081234567892025-09-15
2Siti Aminahsiti@example.com081987654322025-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)

);

IDID AnggotaTanggal PinjamTanggal Jatuh TempoStatus
112025-09-152025-09-22dipinjam
222025-09-162025-09-23dipinjam

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)

);

IDID PeminjamanID BukuJumlah
1111
2121
3221

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.


Lebih baru Lebih lama