An open API service indexing awesome lists of open source software.

https://github.com/ifwhy/java-oop-library

Sistem Pengelolaan Buku adalah aplikasi Java berbasis OOP dengan MySQL untuk CRUD data buku. Kini dengan GUI dan validasi data. 🚀📚
https://github.com/ifwhy/java-oop-library

book java library-management mysql swing-gui

Last synced: about 1 month ago
JSON representation

Sistem Pengelolaan Buku adalah aplikasi Java berbasis OOP dengan MySQL untuk CRUD data buku. Kini dengan GUI dan validasi data. 🚀📚

Awesome Lists containing this project

README

          

📚 Manajemen Buku Perpustakaan

🚀 Sebuah aplikasi berbasis Java dengan paradigma OOP untuk mengelola data buku dengan database MySQL.

Java Badge
MySQL Badge
IntellijIDEA Badge

Aplikasi ini dikembangkan menggunakan Object-Oriented Programming (OOP) dengan struktur modular yang rapi. Fitur utama mencakup CRUD buku, pencarian, validasi data, serta Graphical User Interface (GUI) untuk kemudahan penggunaan.

---

## 📌 Table of Contents

1. ✨ [Fitur](#fitur)
2. 📈 [Pengembangan Dari Sebelumnya](#pengembangan-dari-sebelumnya)
3. 📂 [Struktur Proyek](#struktur-proyek)
4. 🛠 [Sebelum Menjalankan Program](#sebelum-menjalankan-program)
5. 🚀 [Cara Menjalankan Aplikasi](#cara-menjalankan-aplikasi)
6. 🔧 [Teknologi yang Digunakan](#teknologi-yang-digunakan)
7. 🤝 [Kontribusi](#kontribusi)
8. 📜 [Lisensi](#lisensi)

---

## ✨ Fitur

✅ **Tambah Buku**: Tambahkan buku baru dengan detail seperti **judul, penulis, penerbit, dan tahun terbit**.
✅ **Hapus Buku**: Hapus buku dari sistem berdasarkan **ID unik**.
✅ **Daftar Buku**: Tampilkan semua daftar buku yang tersimpan di database.
✅ **Validasi Data**: Pastikan data buku sesuai aturan sebelum disimpan.
✅ **Cari Buku**: Temukan buku berdasarkan **keyword pencarian** yang dimasukkan pengguna.
✅ **GUI Modern**: Tidak lagi berbasis **console**, sekarang dengan tampilan lebih user-friendly.
✅ **Terintegrasi dengan MySQL**: Data buku disimpan ke **database MySQL**, bukan file `.txt` lagi.

---

## 📈 Pengembangan Dari Sebelumnya

[Proyek 2](./Proyek%202/) merupakan pengembangan lanjutan dari [Proyek 1](./Proyek%201/).

| Proyek 1 | Proyek 2 |
| --------------------------------- | ------------------------------------- |
| ❌ Berbasis **console** | ✅ **Graphical User Interface (GUI)** |
| ❌ Data disimpan di **file .txt** | ✅ Data disimpan di **MySQL** |

---

## 📂 Struktur Proyek

Proyek ini menggunakan pendekatan **Separation of Concerns (SoC)** untuk memisahkan tanggung jawab tiap komponen:

📌 **`entity/`**: Menyimpan class model `Buku.java` yang merepresentasikan data buku.
📌 **`repository/`**: Berisi `BukuRepository` untuk interaksi dengan **database**.
📌 **`service/`**: Menghubungkan antara **controller** dan **repository**.
📌 **`controller/`**: Mengelola alur data dari dan ke **antarmuka pengguna**.
📌 **`validation/`**: Menangani **validasi input** sebelum disimpan.
📌 **`view/`**: Menyediakan **Graphical User Interface (GUI)** bagi pengguna.
📌 **`utils/`**: Berisi fungsi tambahan seperti **pengelolaan input/output**.

---

## 🛠 Sebelum Menjalankan Program

1. **Pastikan MySQL sudah terinstall**, bisa menggunakan **XAMPP** atau **Laragon**.
2. **Buat database** `Perpustakaan` di MySQL.
3. **Jalankan SQL berikut** untuk membuat tabel **buku**:

```sql
CREATE DATABASE Perpustakaan;

USE Perpustakaan;

CREATE TABLE buku (
id INT(3) AUTO_INCREMENT PRIMARY KEY,
judul VARCHAR(255) NOT NULL,
penulis VARCHAR(255) NOT NULL,
penerbit VARCHAR(255) NOT NULL,
tahun_terbit INT(4) NOT NULL
);

INSERT INTO buku (judul, penulis, penerbit, tahun_terbit) VALUES
('Bumi Manusia', 'Pramoedya Ananta Toer', 'Gramedia', 1980),
('Orang-Orang Biasa', 'Andrea Hirata', 'Bentang Pustaka', 2022),
('Laskar Pelangi', 'Andrea Hirata', 'Gramedia', 2005);
```

---

## 🚀 Cara Menjalankan Aplikasi

1. **Pastikan JDK 8+ terinstall**.
2. **Jalankan MySQL Server** melalui PHPMyAdmin atau CLI.
3. **Jalankan file utama** `Responsi2_PPBO_L0123068_SC.java`.
4. **Mulai mengelola buku** melalui GUI aplikasi!

---

## 🔧 Teknologi yang Digunakan

- ☕ **Java** → Bahasa pemrograman utama.
- 🗄 **MySQL** → Database untuk menyimpan data buku.
- 🎨 **Java Swing** → GUI yang modern dan interaktif.
- 🏗 **MVC Architecture** → Pemisahan logika aplikasi agar lebih terstruktur.

---

## 🤝 Kontribusi

Kontribusi sangat diterima! Ikuti langkah berikut untuk berkontribusi:

1. **Fork** repositori ini.
2. **Buat branch baru** (`git checkout -b feature-xyz`).
3. **Lakukan perubahan** dan **commit** (`git commit -m "Menambahkan fitur XYZ"`).
4. **Push branch ke GitHub** (`git push origin feature-xyz`).
5. **Buka pull request**, dan tunggu review! 🚀

---

## 📜 Lisensi

Proyek ini **gratis** untuk digunakan dan dimodifikasi untuk keperluan belajar dan pengembangan.

💡 **Keep Coding, Stay Awesome!** 💻✨