Difference between revisions of "Perancangan dan implementasi proyek mini basis data"

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

Latest revision as of 05:30, 7 May 2025

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