Analisis kasus nyata implementasi basis data

From OnnoWiki
Jump to navigation Jump to search

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

---

    1. **Modul 14: Studi Kasus dan Proyek Mini**
      1. **Topik: Analisis Kasus Nyata Implementasi Basis Data**

---

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

---

      1. **2. Studi Kasus: Sistem Informasi Perpustakaan Sederhana**
        1. **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.

---

      1. **3. Desain Basis Data**
        1. **Tabel:**

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

---

      1. **4. Implementasi di Ubuntu 24.04**
        1. **Langkah 1: Instalasi MySQL**

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

        1. **Langkah 2: Buat Database dan Tabel**

```bash sudo mysql -u root -p ```

```sql 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)

); ```

---

        1. **Langkah 3: Instalasi Library Python**

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

        1. **Langkah 4: Script Python untuk Input dan Laporan**
    • File: perpustakaan.py**

```python import mysql.connector from datetime import date

  1. Koneksi ke database

conn = mysql.connector.connect(

   host="localhost",
   user="root",
   password="password",  # ganti sesuai konfigurasi
   database="db_perpustakaan"

) cursor = conn.cursor()

  1. 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()
  1. Fungsi menambahkan anggota

def tambah_anggota(nama, kelas):

   query = "INSERT INTO anggota (nama, kelas) VALUES (%s, %s)"
   cursor.execute(query, (nama, kelas))
   conn.commit()
  1. 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()
  1. 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)
  1. Contoh penggunaan

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

---

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

---

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

---

Jika kamu mau, modul ini juga bisa dikembangkan jadi web sederhana pakai Flask. Mau sekalian dibuatkan, Dzaq?