Belajar Database MySQL #10: Proyek Akhir (Database Perpustakaan)
Heru Iryanto
Teacher, Content Creator and Full-Stack DeveloperSelamat! Anda telah bertahan mempelajari bahasa yang menjadi detak jantung dari triliunan data digital di seluruh dunia. Saatnya kita menanggalkan antarmuka visual (Klik-klik menu di phpMyAdmin) dan bertindak selayaknya seorang Insinyur Back-End tulen.
Di bab terakhir ini, kita akan merangkai Proyek Sistem Informasi Manajemen Perpustakaan HANYA menggunakan satu layar putih bersih: Terminal SQL.
(Buka tab SQL di phpMyAdmin Anda, pastikan Anda berada di halaman kosong tanpa memilih database apapun).
🏗️ 1. Tahap Konstruksi Gedung (DDL)
Kita mulai dari perintah membuat Database dan memasukinya. Salin (copy-paste) kodingan berikut dan rasakan sensasi ajaibnya!
-- 1. Membuat Database Baru
CREATE DATABASE proyek_perpustakaan;
-- 2. Memerintahkan sistem untuk memakai database tersebut
USE proyek_perpustakaan;
-- 3. Membuat Tabel Penulis
CREATE TABLE penulis (
id_penulis INT PRIMARY KEY AUTO_INCREMENT,
nama_penulis VARCHAR(100) NOT NULL
);
-- 4. Membuat Tabel Buku (Menitipkan Foreign Key si Penulis ke sini)
CREATE TABLE buku (
id_buku INT PRIMARY KEY AUTO_INCREMENT,
judul_buku VARCHAR(200) NOT NULL,
tahun_terbit INT,
id_penulis_karya INT
);
(Jalankan Go! Tengok panel sebelah kiri phpMyAdmin Anda, secara ajaib Laci-Laci tersebut tercipta sendiri tanpa Anda perlu susah payah mengeklik!)
📥 2. Tahap Pengisian Arsip (DML / Insert)
Mari kita isi rak-rak kosong tersebut dengan tumpukan data awal (Seeding/Dummy Data). Kosongkan kembali tab SQL, lalu jalankan perintah ini:
-- Memasukkan 2 Penulis
INSERT INTO penulis (nama_penulis) VALUES
('Raditya Dika'),
('Tere Liye');
-- Memasukkan 3 Buku (Harus memanggil ID Penulis yang sesuai)
-- Anggap Raditya Dika = ID 1, Tere Liye = ID 2
INSERT INTO buku (judul_buku, tahun_terbit, id_penulis_karya) VALUES
('Kambing Jantan', 2005, 1),
('Manusia Setengah Salmon', 2011, 1),
('Bumi', 2014, 2);
🔍 3. Tahap Pengujian Logika Laporan (Query/Select)
Sekarang aplikasi perpustakaan Anda sudah hidup. Tiba-tiba Pimpinan meminta laporan spesifik kepada Anda. Anda harus mengeksekusi 3 jenis laporan ini:
Misi Laporan 1: “Tampilkan semua judul buku beserta nama penulis aslinya secara rapi!” Solusi (Gunakan INNER JOIN yang dipersingkat!):
SELECT b.judul_buku, p.nama_penulis
FROM buku b
INNER JOIN penulis p ON b.id_penulis_karya = p.id_penulis;
Misi Laporan 2: “Ada berapa jumlah total buku yang ditulis khusus oleh Raditya Dika?” Solusi (Gabungkan Agregasi COUNT, JOIN, dan WHERE):
SELECT COUNT(*) AS Total_Karya_Dika
FROM buku b
INNER JOIN penulis p ON b.id_penulis_karya = p.id_penulis
WHERE p.nama_penulis = 'Raditya Dika';
Misi Laporan 3: “Ada kecelakaan! Ternyata buku ‘Bumi’ terbit tahun 2015, bukan 2014. Tolong diubah!” Solusi (Operasi UPDATE dengan WHERE agar dunia tidak kiamat):
UPDATE buku
SET tahun_terbit = 2015
WHERE judul_buku = 'Bumi';
🏆 Penutup dan Selamat Datang di PHP!
Coba jalankan Misi 1, Misi 2, dan Misi 3 di atas di terminal SQL Anda. Jika mesin mematuhi perintah Anda dan memunculkan data yang benar, MAKA ANDA TELAH LULUS.
Pertanyaannya: “Apakah kita selamanya akan mengakses data melalui layar phpMyAdmin seperti ini?”
Tentu TIDAK! Klien (Penjaga Perpustakaan) tidak mungkin disuruh menghafal kode SELECT * FROM. Klien butuh Tampilan Layar Cantik dengan tombol-tombol yang bisa diklik, di mana jika mereka mengeklik tombol “Cari Buku”, sistem di belakang layar akan secara gaib mengetikkan kode SELECT untuk mereka!
Siapa yang bertugas merajut Database Murni di dapur ke Tampilan HTML/Bootstrap yang ada di layar depan pengunjung? Dialah sang bahasa pemrosesan: PHP.
Tarik napas panjang, karena setelah menaklukkan MySQL ini, Anda sudah memiliki syarat mutlak untuk terjun bebas ke dalam kurikulum legendaris selanjutnya: Belajar Pemrograman PHP.
Sampai jumpa di server-side! 🐘🔥
