Perancangan dan implementasi proyek mini basis data
Berikut adalah **Modul 14: Studi Kasus dan Proyek Mini** dengan fokus pada *perancangan dan implementasi proyek mini basis data* di **Ubuntu 24.04**, lengkap dengan contoh praktis.
---
- 🧩 **Modul 14: Studi Kasus dan Proyek Mini**
- **Topik**: Perancangan dan Implementasi Proyek Mini Basis Data
- 🧩 **Modul 14: Studi Kasus dan Proyek Mini**
- 🎯 **Tujuan Pembelajaran**
- Mahasiswa mampu merancang, mengimplementasikan, dan menguji sistem basis data skala kecil. - Mahasiswa dapat menerapkan konsep ERD, normalisasi, dan query SQL dalam proyek nyata.
---
- 📌 **Studi Kasus: Sistem Manajemen Perpustakaan Sederhana**
- 1. **Deskripsi Proyek**
Proyek ini bertujuan untuk membangun sistem basis data sederhana untuk mengelola data buku, anggota, dan transaksi peminjaman di sebuah perpustakaan kecil.
---
- 🛠️ **Langkah Implementasi di Ubuntu 24.04**
- 🔧 **1. Instalasi MySQL**
```bash sudo apt update sudo apt install mysql-server sudo mysql_secure_installation ```
- 🧱 **2. Desain Database (ERD)**
Tabel yang dibutuhkan: - `anggota` (id, nama, alamat, no_hp) - `buku` (id, judul, penulis, penerbit, tahun_terbit, stok) - `peminjaman` (id, id_anggota, id_buku, tanggal_pinjam, tanggal_kembali)
Contoh ERD (bisa digambar menggunakan [draw.io](https://draw.io) atau MySQL Workbench).
---
- 🗃️ **3. Pembuatan Database & Tabel**
```sql CREATE DATABASE perpustakaan; USE perpustakaan;
CREATE TABLE anggota (
id INT AUTO_INCREMENT PRIMARY KEY, nama VARCHAR(100), alamat TEXT, no_hp VARCHAR(15)
);
CREATE TABLE buku (
id INT AUTO_INCREMENT PRIMARY KEY, judul VARCHAR(200), penulis VARCHAR(100), penerbit VARCHAR(100), tahun_terbit YEAR, stok INT
);
CREATE TABLE peminjaman (
id INT AUTO_INCREMENT PRIMARY KEY, id_anggota INT, id_buku INT, tanggal_pinjam DATE, tanggal_kembali DATE, FOREIGN KEY (id_anggota) REFERENCES anggota(id), FOREIGN KEY (id_buku) REFERENCES buku(id)
); ```
---
- 📥 **4. Insert Data Awal**
```sql INSERT INTO anggota (nama, alamat, no_hp) VALUES ('Dzaq Rayhan', 'Jakarta', '08123456789');
INSERT INTO buku (judul, penulis, penerbit, tahun_terbit, stok) VALUES ('Dasar Basis Data', 'Onno W. Purbo', 'Informatika', 2021, 5); ```
---
- 🔍 **5. Query Dasar**
- Menampilkan semua buku: ```sql SELECT * FROM buku; ``` - Menampilkan peminjaman beserta nama anggota dan judul buku: ```sql SELECT p.id, a.nama, b.judul, p.tanggal_pinjam, p.tanggal_kembali FROM peminjaman p JOIN anggota a ON p.id_anggota = a.id JOIN buku b ON p.id_buku = b.id; ```
---
- 📘 **Bonus: Antarmuka Web Sederhana (Opsional)**
Bisa digunakan framework Python Flask: ```bash sudo apt install python3-flask ```
Contoh file `app.py`: ```python from flask import Flask, render_template import mysql.connector
app = Flask(__name__)
@app.route('/') def index():
db = mysql.connector.connect(user='root', password=, host='localhost', database='perpustakaan') cursor = db.cursor() cursor.execute("SELECT * FROM buku") data = cursor.fetchall() return render_template('index.html', buku=data)
```
---
- 🧪 **Evaluasi**
- Buatlah ERD dan implementasikan dalam MySQL. - Lakukan pengujian query CRUD. - Buat laporan singkat desain & hasil implementasi.
---
Kalau ingin dibuatkan **template project lengkap (SQL + Python Flask minimal)** tinggal bilang aja ya!