Difference between revisions of "Analisis kasus nyata implementasi basis data"

From OnnoWiki
Jump to navigation Jump to search
(Created page with "Berikut adalah **Modul 14: Studi Kasus dan Proyek Mini – Analisis Kasus Nyata Implementasi Basis Data** lengkap dengan contoh implementasi di **Ubuntu 24.04**. --- ## **Mo...")
 
 
Line 1: Line 1:
Berikut adalah **Modul 14: Studi Kasus dan Proyek Mini – Analisis Kasus Nyata Implementasi Basis Data** lengkap dengan contoh implementasi di **Ubuntu 24.04**.
+
Berikut adalah '''Modul 14: Studi Kasus dan Proyek Mini – Analisis Kasus Nyata Implementasi Basis Data''' lengkap dengan contoh implementasi di '''Ubuntu 24.04'''.
  
---
+
==Modul: Studi Kasus dan Proyek Mini==
  
## **Modul 14: Studi Kasus dan Proyek Mini** 
+
==Topik: Analisis Kasus Nyata Implementasi Basis Data==
### **Topik: Analisis Kasus Nyata Implementasi Basis Data**
 
  
---
+
==1. Tujuan Pembelajaran==
  
### **1. Tujuan Pembelajaran**
+
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
 +
* Menganalisis implementasi basis data dalam kasus nyata.
 +
* Mendesain proyek mini berbasis skenario dunia nyata.
 +
* Mengimplementasikan proyek berbasis database di Ubuntu 24.04 menggunakan MySQL dan Python.
  
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
 
- Menganalisis implementasi basis data dalam kasus nyata.
 
- Mendesain proyek mini berbasis skenario dunia nyata.
 
- Mengimplementasikan proyek berbasis database di Ubuntu 24.04 menggunakan MySQL dan Python.
 
  
---
+
==2. Studi Kasus: Sistem Informasi Perpustakaan Sederhana==
  
### **2. Studi Kasus: Sistem Informasi Perpustakaan Sederhana**
+
'''Deskripsi Kasus'''
  
#### **Deskripsi Kasus**
 
 
Sebuah perpustakaan sekolah ingin mengelola data buku, anggota, dan transaksi peminjaman. Saat ini masih menggunakan pencatatan manual. Tujuan sistem:
 
Sebuah perpustakaan sekolah ingin mengelola data buku, anggota, dan transaksi peminjaman. Saat ini masih menggunakan pencatatan manual. Tujuan sistem:
- Menyimpan data buku dan anggota.
+
* Menyimpan data buku dan anggota.
- Mencatat peminjaman dan pengembalian buku.
+
* Mencatat peminjaman dan pengembalian buku.
- Menampilkan laporan transaksi.
+
* Menampilkan laporan transaksi.
  
---
+
==3. Desain Basis Data==
  
### **3. Desain Basis Data**
+
'''Tabel:'''
 +
* `buku` (id_buku, judul, penulis, tahun)
 +
* `anggota` (id_anggota, nama, kelas)
 +
* `peminjaman` (id_peminjaman, id_buku, id_anggota, tanggal_pinjam, tanggal_kembali)
  
#### **Tabel:**
+
==4. Implementasi di Ubuntu 24.04==
- `buku` (id_buku, judul, penulis, tahun)
 
- `anggota` (id_anggota, nama, kelas)
 
- `peminjaman` (id_peminjaman, id_buku, id_anggota, tanggal_pinjam, tanggal_kembali)
 
  
---
+
'''Langkah 1: Instalasi MySQL'''
  
### **4. Implementasi di Ubuntu 24.04**
+
sudo apt update
 +
sudo apt install mysql-server
 +
sudo mysql_secure_installation
  
#### **Langkah 1: Instalasi MySQL**
+
'''Langkah 2: Buat Database dan Tabel'''
```bash
 
sudo apt update
 
sudo apt install mysql-server
 
sudo mysql_secure_installation
 
```
 
  
#### **Langkah 2: Buat Database dan Tabel**
+
sudo mysql -u root -p
```bash
 
sudo mysql -u root -p
 
```
 
  
```sql
 
CREATE DATABASE db_perpustakaan;
 
USE db_perpustakaan;
 
  
CREATE TABLE buku (
+
CREATE DATABASE db_perpustakaan;
  id_buku INT AUTO_INCREMENT PRIMARY KEY,
+
USE db_perpustakaan;
  judul VARCHAR(100),
+
  penulis VARCHAR(100),
+
CREATE TABLE buku (
  tahun INT
+
  id_buku INT AUTO_INCREMENT PRIMARY KEY,
);
+
  judul VARCHAR(100),
 +
  penulis VARCHAR(100),
 +
  tahun INT
 +
);
 +
 +
CREATE TABLE anggota (
 +
  id_anggota INT AUTO_INCREMENT PRIMARY KEY,
 +
  nama VARCHAR(100),
 +
  kelas VARCHAR(20)
 +
);
 +
 +
CREATE TABLE peminjaman (
 +
  id_peminjaman INT AUTO_INCREMENT PRIMARY KEY,
 +
  id_buku INT,
 +
  id_anggota INT,
 +
  tanggal_pinjam DATE,
 +
  tanggal_kembali DATE,
 +
  FOREIGN KEY (id_buku) REFERENCES buku(id_buku),
 +
  FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota)
 +
);
  
CREATE TABLE anggota (
+
'''Langkah 3: Instalasi Library Python'''
  id_anggota INT AUTO_INCREMENT PRIMARY KEY,
 
  nama VARCHAR(100),
 
  kelas VARCHAR(20)
 
);
 
  
CREATE TABLE peminjaman (
+
sudo apt install python3-pip
  id_peminjaman INT AUTO_INCREMENT PRIMARY KEY,
+
pip install mysql-connector-python
  id_buku INT,
 
  id_anggota INT,
 
  tanggal_pinjam DATE,
 
  tanggal_kembali DATE,
 
  FOREIGN KEY (id_buku) REFERENCES buku(id_buku),
 
  FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota)
 
);
 
```
 
  
---
 
  
#### **Langkah 3: Instalasi Library Python**
+
'''Langkah 4: Script Python untuk Input dan Laporan'''
```bash
 
sudo apt install python3-pip
 
pip install mysql-connector-python
 
```
 
  
#### **Langkah 4: Script Python untuk Input dan Laporan**
+
'''File: perpustakaan.py'''
**File: perpustakaan.py**
 
```python
 
import mysql.connector
 
from datetime import date
 
  
# Koneksi ke database
+
import mysql.connector
conn = mysql.connector.connect(
+
from datetime import date
    host="localhost",
+
    user="root",
+
# Koneksi ke database
    password="password",  # ganti sesuai konfigurasi
+
conn = mysql.connector.connect(
    database="db_perpustakaan"
+
    host="localhost",
)
+
    user="root",
cursor = conn.cursor()
+
    password="password",  # ganti sesuai konfigurasi
 +
    database="db_perpustakaan"
 +
)
 +
cursor = conn.cursor()
 +
 +
# Fungsi menambahkan buku
 +
def tambah_buku(judul, penulis, tahun):
 +
    query = "INSERT INTO buku (judul, penulis, tahun) VALUES (%s, %s, %s)"
 +
    cursor.execute(query, (judul, penulis, tahun))
 +
    conn.commit()
 +
 +
# Fungsi menambahkan anggota
 +
def tambah_anggota(nama, kelas):
 +
    query = "INSERT INTO anggota (nama, kelas) VALUES (%s, %s)"
 +
    cursor.execute(query, (nama, kelas))
 +
    conn.commit()
 +
 +
# Fungsi mencatat peminjaman
 +
def pinjam_buku(id_buku, id_anggota):
 +
    query = "INSERT INTO peminjaman (id_buku, id_anggota, tanggal_pinjam, tanggal_kembali) VALUES (%s, %s, %s, NULL)"
 +
    cursor.execute(query, (id_buku, id_anggota, date.today()))
 +
    conn.commit()
 +
 +
# Fungsi menampilkan laporan peminjaman
 +
def laporan_peminjaman():
 +
    query = """
 +
    SELECT p.id_peminjaman, a.nama, b.judul, p.tanggal_pinjam, p.tanggal_kembali
 +
    FROM peminjaman p
 +
    JOIN buku b ON p.id_buku = b.id_buku
 +
    JOIN anggota a ON p.id_anggota = a.id_anggota
 +
    """
 +
    cursor.execute(query)
 +
    for row in cursor.fetchall():
 +
        print(row)
 +
 +
# Contoh penggunaan
 +
tambah_buku("Belajar Python", "Onno W. Purbo", 2024)
 +
tambah_anggota("Dzaq Rayhan", "12 IPA")
 +
pinjam_buku(1, 1)
 +
laporan_peminjaman()
  
# Fungsi menambahkan buku
 
def tambah_buku(judul, penulis, tahun):
 
    query = "INSERT INTO buku (judul, penulis, tahun) VALUES (%s, %s, %s)"
 
    cursor.execute(query, (judul, penulis, tahun))
 
    conn.commit()
 
  
# Fungsi menambahkan anggota
+
==5. Proyek Mini yang Direkomendasikan==
def tambah_anggota(nama, kelas):
 
    query = "INSERT INTO anggota (nama, kelas) VALUES (%s, %s)"
 
    cursor.execute(query, (nama, kelas))
 
    conn.commit()
 
  
# Fungsi mencatat peminjaman
+
{| class="wikitable"
def pinjam_buku(id_buku, id_anggota):
+
! Judul Proyek                  !! Deskripsi Singkat
    query = "INSERT INTO peminjaman (id_buku, id_anggota, tanggal_pinjam, tanggal_kembali) VALUES (%s, %s, %s, NULL)"
+
|-
    cursor.execute(query, (id_buku, id_anggota, date.today()))
+
| Sistem Booking Klinik        || Pasien dapat daftar dan cek jadwal dokter
    conn.commit()
+
|-
 +
| Aplikasi Pencatatan Keuangan  || Catat pemasukan dan pengeluaran pribadi atau organisasi
 +
|-
 +
| Database Alumni Sekolah      || Menyimpan dan menelusuri data alumni berbasis web
 +
|-
 +
| Manajemen Tugas Siswa        || Catat tugas, deadline, dan status pengerjaan
 +
|}
  
# Fungsi menampilkan laporan peminjaman
 
def laporan_peminjaman():
 
    query = """
 
    SELECT p.id_peminjaman, a.nama, b.judul, p.tanggal_pinjam, p.tanggal_kembali
 
    FROM peminjaman p
 
    JOIN buku b ON p.id_buku = b.id_buku
 
    JOIN anggota a ON p.id_anggota = a.id_anggota
 
    """
 
    cursor.execute(query)
 
    for row in cursor.fetchall():
 
        print(row)
 
  
# Contoh penggunaan
+
==6. Kesimpulan==
tambah_buku("Belajar Python", "Onno W. Purbo", 2024)
 
tambah_anggota("Dzaq Rayhan", "12 IPA")
 
pinjam_buku(1, 1)
 
laporan_peminjaman()
 
```
 
  
---
+
Dengan mengerjakan proyek mini berbasis studi kasus nyata, mahasiswa tidak hanya memahami teori basis data tetapi juga mampu mengimplementasikannya di lingkungan nyata. Ubuntu 24.04 mendukung penuh pengembangan ini melalui MySQL dan Python.
 
 
### **5. Proyek Mini yang Direkomendasikan**
 
 
 
| Judul Proyek                  | Deskripsi Singkat                                      |
 
|------------------------------|--------------------------------------------------------|
 
| Sistem Booking Klinik        | Pasien dapat daftar dan cek jadwal dokter            |
 
| Aplikasi Pencatatan Keuangan  | Catat pemasukan dan pengeluaran pribadi atau organisasi |
 
| Database Alumni Sekolah      | Menyimpan dan menelusuri data alumni berbasis web    |
 
| Manajemen Tugas Siswa        | Catat tugas, deadline, dan status pengerjaan          |
 
 
 
---
 
 
 
### **6. Kesimpulan**
 
  
Dengan mengerjakan proyek mini berbasis studi kasus nyata, mahasiswa tidak hanya memahami teori basis data tetapi juga mampu mengimplementasikannya di lingkungan nyata. Ubuntu 24.04 mendukung penuh pengembangan ini melalui MySQL dan Python.
 
  
---
+
==Pranala Menarik==
  
Jika kamu mau, modul ini juga bisa dikembangkan jadi web sederhana pakai Flask. Mau sekalian dibuatkan, Dzaq?
+
* [[Database]]
 +
* [[Database: Kuliah]]

Latest revision as of 17:18, 6 May 2025

Berikut adalah Modul 14: Studi Kasus dan Proyek Mini – Analisis Kasus Nyata Implementasi Basis Data lengkap dengan contoh implementasi di Ubuntu 24.04.

Modul: Studi Kasus dan Proyek Mini

Topik: Analisis Kasus Nyata Implementasi Basis Data

1. Tujuan Pembelajaran

Setelah mempelajari modul ini, mahasiswa diharapkan mampu:

  • Menganalisis implementasi basis data dalam kasus nyata.
  • Mendesain proyek mini berbasis skenario dunia nyata.
  • Mengimplementasikan proyek berbasis database di Ubuntu 24.04 menggunakan MySQL dan Python.


2. Studi Kasus: Sistem Informasi Perpustakaan Sederhana

Deskripsi Kasus

Sebuah perpustakaan sekolah ingin mengelola data buku, anggota, dan transaksi peminjaman. Saat ini masih menggunakan pencatatan manual. Tujuan sistem:

  • Menyimpan data buku dan anggota.
  • Mencatat peminjaman dan pengembalian buku.
  • Menampilkan laporan transaksi.

3. Desain Basis Data

Tabel:

  • `buku` (id_buku, judul, penulis, tahun)
  • `anggota` (id_anggota, nama, kelas)
  • `peminjaman` (id_peminjaman, id_buku, id_anggota, tanggal_pinjam, tanggal_kembali)

4. Implementasi di Ubuntu 24.04

Langkah 1: Instalasi MySQL

sudo apt update
sudo apt install mysql-server
sudo mysql_secure_installation

Langkah 2: Buat Database dan Tabel

sudo mysql -u root -p


CREATE DATABASE db_perpustakaan;
USE db_perpustakaan;

CREATE TABLE buku (
  id_buku INT AUTO_INCREMENT PRIMARY KEY,
  judul VARCHAR(100),
  penulis VARCHAR(100),
  tahun INT
);

CREATE TABLE anggota (
  id_anggota INT AUTO_INCREMENT PRIMARY KEY,
  nama VARCHAR(100),
  kelas VARCHAR(20)
);

CREATE TABLE peminjaman (
  id_peminjaman INT AUTO_INCREMENT PRIMARY KEY,
  id_buku INT,
  id_anggota INT,
  tanggal_pinjam DATE,
  tanggal_kembali DATE,
  FOREIGN KEY (id_buku) REFERENCES buku(id_buku),
  FOREIGN KEY (id_anggota) REFERENCES anggota(id_anggota)
);

Langkah 3: Instalasi Library Python

sudo apt install python3-pip
pip install mysql-connector-python


Langkah 4: Script Python untuk Input dan Laporan

File: perpustakaan.py

import mysql.connector
from datetime import date

# Koneksi ke database
conn = mysql.connector.connect(
    host="localhost",
    user="root",
    password="password",  # ganti sesuai konfigurasi
    database="db_perpustakaan"
)
cursor = conn.cursor()

# Fungsi menambahkan buku
def tambah_buku(judul, penulis, tahun):
    query = "INSERT INTO buku (judul, penulis, tahun) VALUES (%s, %s, %s)"
    cursor.execute(query, (judul, penulis, tahun))
    conn.commit()

# Fungsi menambahkan anggota
def tambah_anggota(nama, kelas):
    query = "INSERT INTO anggota (nama, kelas) VALUES (%s, %s)"
    cursor.execute(query, (nama, kelas))
    conn.commit()

# Fungsi mencatat peminjaman
def pinjam_buku(id_buku, id_anggota):
    query = "INSERT INTO peminjaman (id_buku, id_anggota, tanggal_pinjam, tanggal_kembali) VALUES (%s, %s, %s, NULL)"
    cursor.execute(query, (id_buku, id_anggota, date.today()))
    conn.commit()

# Fungsi menampilkan laporan peminjaman
def laporan_peminjaman():
    query = """
    SELECT p.id_peminjaman, a.nama, b.judul, p.tanggal_pinjam, p.tanggal_kembali
    FROM peminjaman p
    JOIN buku b ON p.id_buku = b.id_buku
    JOIN anggota a ON p.id_anggota = a.id_anggota
    """
    cursor.execute(query)
    for row in cursor.fetchall():
        print(row)

# Contoh penggunaan
tambah_buku("Belajar Python", "Onno W. Purbo", 2024)
tambah_anggota("Dzaq Rayhan", "12 IPA")
pinjam_buku(1, 1)
laporan_peminjaman()


5. Proyek Mini yang Direkomendasikan

Judul Proyek Deskripsi Singkat
Sistem Booking Klinik Pasien dapat daftar dan cek jadwal dokter
Aplikasi Pencatatan Keuangan Catat pemasukan dan pengeluaran pribadi atau organisasi
Database Alumni Sekolah Menyimpan dan menelusuri data alumni berbasis web
Manajemen Tugas Siswa Catat tugas, deadline, dan status pengerjaan


6. Kesimpulan

Dengan mengerjakan proyek mini berbasis studi kasus nyata, mahasiswa tidak hanya memahami teori basis data tetapi juga mampu mengimplementasikannya di lingkungan nyata. Ubuntu 24.04 mendukung penuh pengembangan ini melalui MySQL dan Python.


Pranala Menarik