Untitled
unknown
plain_text
8 months ago
4.8 kB
5
Indexable
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; // <- Tambahkan ini
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
public class Pertemuan14 {
private static final String URL = "jdbc:sqlite:ausaf.db";
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try (Connection conn = DriverManager.getConnection(URL)) {
Class.forName("org.sqlite.JDBC");
// Nomor Sewa (Auto Increment)
System.out.println("~ Transaksi ~");
// Input ID Pelanggan
System.out.print("Input ID Pelanggan: ");
String idPelanggan = scanner.nextLine();
String[] pelanggan = getPelanggan(conn, idPelanggan);
if (pelanggan == null) {
System.out.println("Pelanggan tidak ditemukan!");
return;
}
System.out.println(">> " + pelanggan[0]); // Nama
System.out.println(">> " + pelanggan[1]); // No Telp
// Input Kode Mobil
System.out.print("\nInput Kode Mobil: ");
String kodeMobil = scanner.nextLine();
String[] mobil = getMobil(conn, kodeMobil);
if (mobil == null) {
System.out.println("Mobil tidak ditemukan!");
return;
}
System.out.println(">> " + mobil[0] + " warna " + mobil[1]);
System.out.println(">> Kapasitas " + mobil[2] + " orang");
System.out.println(">> Rp " + mobil[3] + " / hari");
System.out.println(">> Status: " + mobil[4]);
// Jika status mobil "Disewa", batalkan transaksi
if (mobil[4].equalsIgnoreCase("Disewa")) {
System.out.println("Mobil sudah disewa! Pilih mobil lain.");
return;
}
// Input Lama Sewa
System.out.print("\nInput lama sewa (hari): ");
int lamaSewa = scanner.nextInt();
int totalBiaya = Integer.parseInt(mobil[3]) * lamaSewa;
System.out.println("Biaya Sewa: Rp " + totalBiaya + ",-");
// Simpan transaksi
saveSewa(conn, idPelanggan, kodeMobil, lamaSewa, totalBiaya);
// Update status mobil jadi "Disewa"
updateMobilStatus(conn, kodeMobil);
System.out.println("\nTransaksi berhasil disimpan!");
} catch (Exception e) {
e.printStackTrace();
}
scanner.close();
}
private static String[] getPelanggan(Connection conn, String id) throws SQLException {
String query = "SELECT Nama, No_Telp FROM pelanggan WHERE ID = ?";
try (PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, id);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
return new String[]{rs.getString("Nama"), rs.getString("No_Telp")};
}
}
return null;
}
private static String[] getMobil(Connection conn, String kode) throws SQLException {
String query = "SELECT merek, warna, kapasitas, harga_sewa, satuan FROM mobil WHERE kode = ?";
try (PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, kode);
ResultSet rs = stmt.executeQuery();
if (rs.next()) {
return new String[]{
rs.getString("merek"),
rs.getString("warna"),
rs.getString("kapasitas"),
rs.getString("harga_sewa"),
rs.getString("satuan")
};
}
}
return null;
}
private static void saveSewa(Connection conn, String idPelanggan, String kodeMobil, int lamaSewa, int totalBiaya) throws SQLException {
String query = "INSERT INTO sewa (id_pelanggan, kode_mobil, lama_sewa, total_biaya) VALUES (?, ?, ?, ?)";
try (PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, idPelanggan);
stmt.setString(2, kodeMobil);
stmt.setInt(3, lamaSewa);
stmt.setInt(4, totalBiaya);
stmt.executeUpdate();
}
}
private static void updateMobilStatus(Connection conn, String kodeMobil) throws SQLException {
String query = "UPDATE mobil SET satuan = 'Disewa' WHERE kode = ?";
try (PreparedStatement stmt = conn.prepareStatement(query)) {
stmt.setString(1, kodeMobil);
stmt.executeUpdate();
}
}
}
Editor is loading...
Leave a Comment