Nama : Safa Mashita
NRP : 5025241022
Membuat Aplikasi CRUD Java - Manajemen Buku Perpustakaan
Pada pertemuan ini, saya mempelajari bagaimana membangun aplikasi sederhana berbasis Object-Oriented Programming (OOP) di Java untuk mengelola data buku perpustakaan. Aplikasi ini dibuat menggunakan BlueJ, dan memiliki fitur CRUD (Create, Read, Update, Delete) dengan database untuk mengelola data buku yang tersimpan dalam sistem.
Program ini terdiri dari beberapa kelas utama:
-
Book : Kelas representasi buku
-
Main : Kelas utama untuk menjalankan program dan melakukan operasi CRUD
-
ArrayList digunakan sebagai penyimpanan data buku
A. Database Menggunakan MySQL Workbench 8.0
Pada pertemuan ini selain membuat aplikasi CRUD berbasis Java, juga dibuat sebuah struktur database sederhana menggunakan MySQL untuk menggambarkan bagaimana data buku dapat disimpan secara permanen pada DBMS.
CREATE DATABASE perpustakaan;
USE perpustakaan;
CREATE TABLE buku (
id_buku INT NOT NULL AUTO_INCREMENT,
judul VARCHAR(100) NOT NULL,
penulis VARCHAR(100) NOT NULL,
tahun INT NOT NULL,
PRIMARY KEY (id_buku)
);
INSERT INTO buku (id_buku, judul, penulis, tahun)
VALUES
(001, 'Laut Bercerita', 'Leila S. Chudori', 2017),
(002, 'Kata', 'Nadhifa Allya Tsana', 2018);
Penjelasan :
CREATE DATABASE perpustakaan;
Membuat database kosong untuk menyimpan tabel-tabel.
-
USE perpustakaan;
Memilih database yang akan digunakan.
-
CREATE TABLE buku (...);
Membuat tabel utama untuk menyimpan data buku yang memiliki kolom:
-
id_buku → primary key, auto increment.
-
judul → judul buku.
-
penulis → nama pengarang.
-
tahun → tahun terbit buku.
-
INSERT INTO buku ... VALUES (...);
Mengisi tabel dengan data contoh.
B. Visualisasi Desain Program dan Hubungan Antar Kelas
Program ini memiliki struktur sederhana dengan dua kelas utama:
1. Kelas Book
Digunakan sebagai blueprint objek buku yang berisi properti seperti:
-
ID buku
-
Judul
-
Penulis
-
Tahun terbit
Kelas ini juga memiliki method untuk menampilkan informasi buku.
2. Kelas Main
Berfungsi sebagai pusat program dan mengatur menu CRUD:
-
Menambah buku
-
Melihat seluruh buku
-
Mengedit buku
-
Menghapus buku
Relasi antar kelas:
Struktur sederhana ini menekankan pemahaman dasar class dan object.
C. Alur Program
Program menampilkan menu utama kepada pengguna.
-
Pengguna memilih operasi CRUD.
-
Program menjalankan operasi sesuai pilihan:
-
Tambah Buku: membuat objek Book baru
-
Lihat Buku: menampilkan seluruh data buku
-
Edit Buku: mencari buku berdasarkan ID dan memperbarui datanya
-
Hapus Buku: menghapus buku dari daftar
-
Program terus berjalan sampai pengguna memilih keluar.
D. Kode Program dan Penjelasan
1. Class Book
Kegunaan:
Mewakili satu objek buku dalam sistem.
Atribut:
Method:
2. Class DatabaseManager
Menambahkan mysql-connector-j-8.xx.jar ke BlueJ → Preferences → Libraries → Add
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
public class DatabaseManager {
private static final String URL = "jdbc:mysql://localhost:3306/perpustakaann";
private static final String USER = "root";
private static final String PASS = "";
private Connection conn;
public DatabaseManager() {
try {
conn = DriverManager.getConnection(URL, USER, PASS);
System.out.println("Koneksi ke database berhasil!\n");
} catch (Exception e) {
System.out.println("Gagal konek: " + e.getMessage());
}
}
public void insertBook(Book b) {
String sql = "INSERT INTO buku (id_buku, judul, penulis, tahun) VALUES (?, ?, ?, ?)";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, b.getId());
pst.setString(2, b.getTitle());
pst.setString(3, b.getAuthor());
pst.setInt(4, b.getYear());
pst.executeUpdate();
System.out.println("Buku berhasil disimpan ke database!\n");
} catch (Exception e) {
System.out.println("Gagal tambah buku: " + e.getMessage());
}
}
public void showBooks() {
String sql = "SELECT * FROM buku";
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql);
System.out.println("\n=== DAFTAR BUKU DI DATABASE ===");
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id_buku"));
System.out.println("Judul: " + rs.getString("judul"));
System.out.println("Penulis: " + rs.getString("penulis"));
System.out.println("Tahun: " + rs.getInt("tahun"));
System.out.println("------------------------------");
}
} catch (Exception e) {
System.out.println("Gagal menampilkan: " + e.getMessage());
}
}
public void updateBook(Book b) {
String sql = "UPDATE buku SET judul=?, penulis=?, tahun=? WHERE id_buku=?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setString(1, b.getTitle());
pst.setString(2, b.getAuthor());
pst.setInt(3, b.getYear());
pst.setInt(4, b.getId());
int updated = pst.executeUpdate();
if (updated > 0)
System.out.println("Buku berhasil diperbarui!\n");
else
System.out.println("Buku tidak ditemukan.\n");
} catch (Exception e) {
System.out.println("Gagal update: " + e.getMessage());
}
}
public void deleteBook(int id) {
String sql = "DELETE FROM buku WHERE id_buku=?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, id);
int deleted = pst.executeUpdate();
if (deleted > 0)
System.out.println("Buku berhasil dihapus!\n");
else
System.out.println("Buku tidak ditemukan.\n");
} catch (Exception e) {
System.out.println("Gagal hapus: " + e.getMessage());
}
}
}
Kegunaan:
Mengatur koneksi ke MySQL dan menjalankan CRUD langsung ke database.
Atribut:
insertBook() : tambah buku
-
showBooks() : tampilkan semua buku
-
updateBook() : edit buku berdasarkan ID
-
deleteBook() : hapus buku berdasarkan ID
Method:
conn : objek koneksi MySQL
-
URL, USER, PASS : konfigurasi database
3. Class Main
Kegunaan:
Menjalankan program utama dan menyediakan menu CRUD.
Fitur Utama:
-
tambahBuku() : membuat objek Book baru
-
lihatBuku() : menampilkan seluruh buku
-
editBuku() : memperbarui data buku berdasarkan ID
-
hapusBuku() : menghapus buku dari ArrayList
Atribut:
E. Output Program
1. Create (Tambah Buku)
3. Update (Edit Buku)
4. Delete (Hapus Buku)
F. Kesimpulan
Pada kelas ini, saya belajar bagaimana membuat aplikasi sederhana untuk manajemen buku menggunakan konsep dasar OOP di Java.
-
Cara membuat class dan objek dalam Java.
-
Cara menyimpan data menggunakan ArrayList.
-
Implementasi fitur CRUD dalam satu program.
-
Pentingnya pemisahan kelas agar program lebih terstruktur dan mudah dirawat.
Tidak ada komentar:
Posting Komentar