Proyek Akhir (1): Membangun Database Perpustakaan dari Nol

Merancang dan membangun database perpustakaan utuh: tiga tabel berelasi dengan PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT, lalu mengisinya dengan data awal.

Part 37 dari 38 ± 60 menit Gratis

Saatnya menyatukan semuanya!

Di proyek akhir ini kamu bertindak sebagai perancang database untuk Perpustakaan Kota. Tidak ada contoh yang bisa disalin; semua yang kamu pelajari dipakai: tipe data, constraint, relasi, dan INSERT. Dua bagian:

  1. Proyek 1 (bab ini): membangun struktur dan mengisi data awal.
  2. Proyek 2 (bab berikutnya): menjawab pertanyaan bisnis dengan query.

Langkah berpikir seorang perancang

  1. Daftar "benda" yang dicatat: anggota, buku, peminjaman.
  2. Tentukan kolom & tipe tiap benda (jangan simpan dua fakta dalam satu kolom).
  3. Tentukan primary key (id otomatis).
  4. Hubungan: satu anggota boleh meminjam banyak buku, satu buku boleh dipinjam banyak anggota di waktu berbeda → hubungan banyak-ke-banyak → tabel penghubung peminjaman yang memegang dua foreign key.
  5. Tambahkan aturan (constraint): data yang boleh/tidak boleh.
  6. Urutan pembuatan: tabel induk (anggota, buku) dulu, baru tabel penghubung.

Tips menyelesaikan proyek besar: kerjakan satu tabel, jalankan, lihat hasilnya dengan DESCRIBE; baru lanjut tabel berikutnya. Jika terjadi error, baca pesannya pelan-pelan. Error sintaks biasanya ada di koma, tanda kurung, atau tanda kutip.

Spesifikasi database

TabelKolom & aturan
anggotaid INT AUTO_INCREMENT PK • nama VARCHAR(80) NOT NULL • email VARCHAR(100) UNIQUE • tgl_gabung DATE NOT NULL
bukuid INT AUTO_INCREMENT PK • judul VARCHAR(150) NOT NULL • penulis VARCHAR(80) NOT NULL • tahun INT • stok INT NOT NULL DEFAULT 1 dan CHECK (stok >= 0)
peminjamanid INT AUTO_INCREMENT PK • anggota_id INT NOT NULL → FK ke anggota • buku_id INT NOT NULL → FK ke buku • tgl_pinjam DATE NOT NULL • tgl_kembali DATE (boleh NULL: NULL berarti buku belum dikembalikan)

Sepotong ide: kolom yang "boleh kosong" bermakna

Perhatikan tgl_kembali: NULL di sini bukan data hilang, melainkan informasi: "belum dikembalikan". Desain seperti ini membuat pertanyaan "buku apa yang sedang dipinjam?" cukup dijawab WHERE tgl_kembali IS NULL.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X