Aplikasi sederhana ini merupakan sebuah contoh penerapan sistem basis data. Aplikasi ini mengolah data perpustakaan. Data akan disimpan di database perpus
yang berisi beberapa tabel sebagai berikut, buku
, pengarang
, penerbit
, mahasiswa
, dan peminjaman
.
Berikut ini adalah kode SQL untuk membuat tabel-tabel tersebut:
-- Tabel Buku
CREATE TABLE buku (
judul VARCHAR(255),
genre ENUM('Agama', 'Fantasi', 'Filsafat', 'Pendidikan', 'Psikologi', 'Sains', 'Sejarah', 'Self-Improvement', 'Teknologi'),
ISBN VARCHAR(20) PRIMARY KEY,
pengarang VARCHAR(255),
penerbit VARCHAR(255),
status_pinjam BOOLEAN
);
-- Tabel Pengarang
CREATE TABLE pengarang (
id_pengarang INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(255),
tanggal_lahir DATE,
kebangsaan VARCHAR(100)
);
-- Tabel Penerbit
CREATE TABLE penerbit (
id_penerbit INT PRIMARY KEY AUTO_INCREMENT,
nama VARCHAR(255),
kota VARCHAR(100),
website VARCHAR(255),
no_telp VARCHAR(20)
);
-- Tabel Anggota (Mahasiswa)
CREATE TABLE mahasiswa (
NIM VARCHAR(9) PRIMARY KEY,
nama VARCHAR(255),
fakultas ENUM('Ekonomi', 'FKIP', 'Hukum', 'Pertanian', 'Psikologi','Teknik'),
tanggal_lahir DATE,
no_telp VARCHAR(20)
);
-- Tabel Peminjaman
CREATE TABLE peminjaman (
id_pinjam INT PRIMARY KEY AUTO_INCREMENT,
ISBN VARCHAR(20),
NIM VARCHAR(9),
tanggal_pinjam DATE,
tanggal_kembali DATE,
status_kembali BOOLEAN,
FOREIGN KEY (ISBN) REFERENCES buku(ISBN),
FOREIGN KEY (NIM) REFERENCES mahasiswa(NIM)
);
- Setiap form memiliki 5
button
yang memiliki fungsi masing-masing, yaitu:Tambahkan
Tampilkan
Edit
Hapus
Cari
- Apabila akan memasukkan data buku baru akan dilakukan beberapa validasi, diantaranya:
- Setiap field tidak boleh kosong.
- Field
pengarang
hanya boleh diisi oleh pengarang yang sudah tersimpan di tabelpengarang
. Jika belum, maka munculMessageBox
perintah untuk menyimpan data pengarang baru. - Berlaku sama dengan field
penerbit
.
- Mengimplementasikan operasi matematika (
AVG
,COUNT
,MAX
,MIN
,SUM
) pada formanggota
- Menampilkan tabel
peminjaman
berdasarkan waktu (tahun, waktu, dan bulan) - Fungsi
Cari
akan melakukan query lalu mengisi setiap formTextBox
,DropDownList
, sertaRadioButtonList
dengan value - Fungsi
Edit
danHapus
dilakukan setelah melakukan fungsiCari
agar lebih efektif. - Fungsi
Tambahkan
pada formPeminjaman
nilaistatus_kembali = 0
adalah default. Lalu mengubahstatus_pinjam
pada tabelbuku
menjadistatus_pinjam = 1
. - Fungsi
Buku Dipinjam
pada formBuku
menampilkan kolomjudul
(unique),ISBN
,NIM
pada tabelpeminjaman
dannama
berdasarkanNIM
pada tabelmahasiswa
menggunakanJOIN
. Data yang diambil dari tabelpeminjaman
diurutkan padatanggal_pinjam
terbaru.
-- Join Tabel Buku, Peminjaman, dan Mahasiswa
SELECT buku.judul, buku.ISBN, mahasiswa.NIM, mahasiswa.nama, buku.status_pinjam
FROM buku
LEFT JOIN peminjaman ON buku.ISBN = peminjaman.ISBN
LEFT JOIN mahasiswa ON peminjaman.NIM = mahasiswa.NIM
WHERE Buku.status_pinjam = 1
AND (peminjaman.ISBN, peminjaman.tanggal_pinjam)
IN (SELECT ISBN, MAX(tanggal_pinjam) FROM peminjaman GROUP BY ISBN);
Apabila suka atau merasa terbantu dengan repositori ini, jangan lupa untuk memberikan bintang ★