1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| CREATE DATABASE db_perpustakaan; USE db_perpustakaan;
CREATE TABLE anggota ( id_anggota INT AUTO_INCREMENT PRIMARY KEY, kode_ang VARCHAR(10) NOT NULL UNIQUE, nama VARCHAR(100) NOT NULL, alamat VARCHAR(200), email VARCHAR(100) UNIQUE, tgl_daftar DATE DEFAULT (CURDATE()) );
CREATE TABLE kategori ( id_kategori INT AUTO_INCREMENT PRIMARY KEY, nama_kat VARCHAR(50) NOT NULL UNIQUE );
CREATE TABLE buku ( id_buku INT AUTO_INCREMENT PRIMARY KEY, isbn VARCHAR(20) NOT NULL UNIQUE, judul VARCHAR(200) NOT NULL, penulis VARCHAR(100) NOT NULL, penerbit VARCHAR(100), tahun_terbit YEAR, stok INT DEFAULT 3 CHECK (stok >= 0), id_kategori INT, FOREIGN KEY (id_kategori) REFERENCES kategori(id_kategori) );
CREATE TABLE peminjaman ( id_pinjam INT AUTO_INCREMENT PRIMARY KEY, id_anggota INT NOT NULL, id_buku INT NOT NULL, tgl_pinjam DATE NOT NULL DEFAULT (CURDATE()), tgl_kembali DATE, tgl_kembali_aktual DATE, status ENUM('dipinjam','dikembalikan','terlambat') DEFAULT 'dipinjam', FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota), FOREIGN KEY (id_buku) REFERENCES buku(id_buku) );
INSERT INTO kategori (nama_kat) VALUES ('Novel'), ('Teknologi'), ('Sains'), ('Sejarah'), ('Bisnis');
INSERT INTO anggota (kode_ang, nama, alamat, email) VALUES ('ANG001', 'Andi Wijaya', 'Jl. Merdeka No. 10, Jakarta', '[email protected]'), ('ANG002', 'Budi Santoso', 'Jl. Sudirman No. 25, Bandung', '[email protected]'), ('ANG003', 'Citra Lestari', 'Jl. Gatot Subroto No. 5, Jakarta', '[email protected]'), ('ANG004', 'Dewi Rahayu', 'Jl. Diponegoro No. 15, Surabaya', '[email protected]'), ('ANG005', 'Eko Prasetyo', 'Jl. Imam Bonjol No. 7, Semarang', '[email protected]'), ('ANG006', 'Fani Kurnia', 'Jl. Ahmad Yani No. 3, Yogyakarta', '[email protected]');
INSERT INTO buku (isbn, judul, penulis, penerbit, tahun_terbit, stok, id_kategori) VALUES ('978-602-01-0001', 'Laskar Pelangi', 'Andrea Hirata', 'Bentang', 2005, 3, 1), ('978-602-01-0002', 'Bumi Manusia', 'Pramoedya Ananta Toer', 'Hasta Mitra', 1980, 2, 4), ('978-602-01-0003', 'Clean Code', 'Robert C. Martin', 'Prentice Hall', 2008, 4, 2), ('978-602-01-0004', 'Sapiens', 'Yuval Noah Harari', 'Harper', 2011, 3, 3), ('978-602-01-0005', 'Rich Dad Poor Dad', 'Robert Kiyosaki', 'Warner Books', 1997, 2, 5), ('978-602-01-0006', 'Negeri 5 Menara', 'Ahmad Fuadi', 'Gramedia', 2009, 5, 1), ('978-602-01-0007', 'The Pragmatic Programmer', 'David Thomas', 'Addison Wesley', 1999, 2, 2);
INSERT INTO peminjaman (id_anggota, id_buku, tgl_pinjam, tgl_kembali) VALUES (1, 1, '2026-06-01', '2026-06-08'), (1, 3, '2026-06-01', '2026-06-08'), (2, 2, '2026-06-03', '2026-06-10'), (3, 4, '2026-06-05', '2026-06-12'), (4, 5, '2026-06-07', '2026-06-14'), (2, 6, '2026-06-08', '2026-06-15'), (5, 3, '2026-06-09', '2026-06-16');
|