Perancangan dan implementasi proyek mini basis data

From OnnoWiki
Jump to navigation Jump to search

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.

---

    1. 🧩 **Modul 14: Studi Kasus dan Proyek Mini**
      1. **Topik**: Perancangan dan Implementasi Proyek Mini Basis Data
      1. 🎯 **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.

---

    1. 📌 **Studi Kasus: Sistem Manajemen Perpustakaan Sederhana**
      1. 1. **Deskripsi Proyek**

Proyek ini bertujuan untuk membangun sistem basis data sederhana untuk mengelola data buku, anggota, dan transaksi peminjaman di sebuah perpustakaan kecil.

---

    1. 🛠️ **Langkah Implementasi di Ubuntu 24.04**
      1. 🔧 **1. Instalasi MySQL**

```bash sudo apt update sudo apt install mysql-server sudo mysql_secure_installation ```

      1. 🧱 **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).

---

      1. 🗃️ **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)

); ```

---

      1. 📥 **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); ```

---

      1. 🔍 **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; ```

---

    1. 📘 **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)

```

---

    1. 🧪 **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!