Object Oriented Programming | Week 15: CRUD Perpustakaan
PBO-A 2025
Latihan Kelas: JDBC
hal pertama yang harus dilakukan adalah membuat folder project dan menginstall mysql connector pada https://downloads.mysql.com/archives/c-j/. Lalu extract filenya dengan
```
tar -xf .\mysql-connector-j-9.5.0.tar.gz
```
Buat class DbConnection.java, konfigurasikan url, user, dan pass sesuai dengan database MySQL yang ingin digunakan, lalu inisiasi koneksi dengan MySQL. Setelah berhasil terkoneksi, lalu kita bisa buat kode untuk CRUD perpustakaan sederhananya seperti kode di bawah.
DbConnection.java:
```
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;
public class DbConnection
{
static final String DB_URL = "jdbc:mysql://localhost/perpustakaan";
static final String USER = "root";
static final String PASS = "";
static Connection conn;
static Statement stmt;
static ResultSet result;
static InputStreamReader inputStreamReader = new InputStreamReader(System.in);
static BufferedReader input = new BufferedReader(inputStreamReader);
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
while (!conn.isClosed()) {
showMenu();
}
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
static void showMenu() {
System.out.println("\n========= MENU UTAMA =========");
System.out.println("1. Insert Data");
System.out.println("2. Show Data");
System.out.println("3. Edit Data");
System.out.println("4. Delete Data");
System.out.println("0. Keluar");
System.out.println("");
System.out.print("PILIHAN> ");
try {
int pilihan = Integer.parseInt(input.readLine());
switch (pilihan) {
case 0:
System.exit(0);
break;
case 1:
insertBuku();
break;
case 2:
showData();
break;
case 3:
updateBuku();
break;
case 4:
deleteBuku();
break;
default:
System.out.println("Pilihan salah!");
}
} catch (Exception e) {
e.printStackTrace();
}
}
static void showData() {
String sql = "SELECT * FROM buku";
try {
result = stmt.executeQuery(sql);
System.out.println("+--------------------------------+");
System.out.println("| DATA BUKU DI PERPUSTAKAAN |");
System.out.println("+--------------------------------+");
while (result.next()) {
int idBuku = result.getInt("id_buku");
String judul = result.getString("judul");
String pengarang = result.getString("pengarang");
System.out.println(String.format("%d. %s -- (%s)", idBuku, judul, pengarang));
}
} catch (Exception e) {
e.printStackTrace();
}
}
static void insertBuku() {
try {
System.out.print("Judul: ");
String judul = input.readLine().trim();
System.out.print("Pengarang: ");
String pengarang = input.readLine().trim();
String sql = "INSERT INTO buku (judul, pengarang) VALUE('%s', '%s')";
sql = String.format(sql, judul, pengarang);
stmt.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
static void updateBuku() {
try {
System.out.print("ID yang mau diedit: ");
int idBuku = Integer.parseInt(input.readLine());
System.out.print("Judul: ");
String judul = input.readLine().trim();
System.out.print("Pengarang: ");
String pengarang = input.readLine().trim();
String sql = "UPDATE buku SET judul='%s', pengarang='%s' WHERE id_buku=%d";
sql = String.format(sql, judul, pengarang, idBuku);
stmt.execute(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
static void deleteBuku() {
try {
System.out.print("ID yang mau dihapus: ");
int idBuku = Integer.parseInt(input.readLine());
String sql = String.format("DELETE FROM buku WHERE id_buku=%d", idBuku);
stmt.execute(sql);
System.out.println("Data telah terhapus...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
compile dengan:
```
java -cp '.\mysql-connector-j-9.5.0\mysql-connector-j-9.5.0.jar;.' DbConnection
```
output:
PBO A

Comments
Post a Comment