Untitled
unknown
plain_text
2 months ago
4.8 kB
4
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