Perancangan dan implementasi proyek mini basis data

From OnnoWiki
Jump to navigation Jump to search

Berikut adalah Modul: Studi Kasus dan Proyek Mini dengan fokus pada *perancangan dan implementasi proyek mini basis data* di Ubuntu 24.04, lengkap dengan contoh praktis.

Studi Kasus dan Proyek Mini

Topik: Perancangan dan Implementasi Proyek Mini Basis Data

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

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

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

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

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:

SELECT * FROM buku;

Menampilkan peminjaman beserta nama anggota dan judul buku:

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:

sudo apt install python3-flask

Contoh file `app.py`:

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.


Pranala Menarik