📚 1.
Tabel buku
Menyimpan data koleksi buku.
CREATE TABLE buku (
id_buku INT AUTO_INCREMENT PRIMARY KEY,
kode_buku VARCHAR(20) UNIQUE NOT NULL,
judul VARCHAR(150) NOT NULL,
pengarang VARCHAR(100),
penerbit VARCHAR(100),
tahun_terbit YEAR,
jumlah INT DEFAULT 1,
rak VARCHAR(10),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
👤 2. Tabel anggota
Menyimpan data anggota perpustakaan.
CREATE TABLE anggota (
id_anggota INT AUTO_INCREMENT PRIMARY KEY,
nim VARCHAR(20) UNIQUE NOT NULL,
nama VARCHAR(100) NOT NULL,
jenis_kelamin ENUM('L', 'P'),
jurusan VARCHAR(100),
alamat TEXT,
no_hp VARCHAR(20),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
🧾 3. Tabel peminjaman
Menyimpan transaksi peminjaman buku.
CREATE TABLE peminjaman (
id_peminjaman INT AUTO_INCREMENT PRIMARY KEY,
id_anggota INT NOT NULL,
id_petugas INT NOT NULL,
tanggal_pinjam DATE NOT NULL,
tanggal_kembali DATE NOT NULL,
status ENUM('dipinjam', 'dikembalikan') DEFAULT 'dipinjam',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota),
FOREIGN KEY (id_petugas) REFERENCES petugas(id_petugas)
);
📦 4. Tabel detail_peminjaman
Menyimpan daftar buku yang dipinjam pada setiap transaksi.
CREATE TABLE detail_peminjaman (
id_detail INT AUTO_INCREMENT PRIMARY KEY,
id_peminjaman INT NOT NULL,
id_buku INT NOT NULL,
jumlah INT NOT NULL,
FOREIGN KEY (id_peminjaman) REFERENCES peminjaman(id_peminjaman),
FOREIGN KEY (id_buku) REFERENCES buku(id_buku)
);
👨💼 5. Tabel petugas
Menyimpan data petugas perpustakaan (untuk login/admin sistem).
CREATE TABLE petugas (
id_petugas INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
nama_petugas VARCHAR(100),
level ENUM('admin', 'petugas') DEFAULT 'petugas',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
⚠️Optional: Tabel pengembalian
Jika ingin mencatat pengembalian terpisah dari peminjaman.
CREATE TABLE pengembalian (
id_pengembalian INT AUTO_INCREMENT PRIMARY KEY,
id_peminjaman INT NOT NULL,
tanggal_pengembalian DATE NOT NULL,
denda DECIMAL(10,2) DEFAULT 0,
FOREIGN KEY (id_peminjaman) REFERENCES peminjaman(id_peminjaman)
);