Created
June 19, 2019 19:29
-
-
Save ragasubekti/dc82d5723294b88cb920aeff8981eeb4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package rental; | |
import java.util.Scanner; | |
import java.util.*; | |
public class Rental { | |
static String peminjam[][] = { { "L1", // id | |
"12345", // ktp | |
"Raga", // nama | |
"q", // alamat | |
"q", // notelp | |
"123", // kode pengembalian | |
"2", // jumlah hari peminjaman | |
"1", // tgl awal pinjam | |
"3" } };// tgl akhir pinjam | |
static String kendaraan[][] = { { "L1", "LEXI", "1", "150000" }, { "JP1", "Jeep", "0", "500000" } }; | |
static int selectedPeminjam; | |
static int totalDenda = 0; | |
public static void main(String[] args) { | |
main_menu(); | |
} | |
public static void main_menu() { | |
Scanner a = new Scanner(System.in); | |
int menu; | |
System.out.print("========= Silahkan Pilih Menu ======="); | |
System.out.print("\n 1. Peminjaman Kendaraan"); | |
System.out.print("\n 2. Masukkan Pengembalian"); | |
System.out.print("\n 3. Tampilkan Info Member"); | |
System.out.print("\n 4. Tampilkan Info Kendaraan"); | |
System.out.print("\n 5. EXIT "); | |
System.out.println(" Masukkan Pilihan = "); | |
menu = a.nextInt(); | |
switch (menu) { | |
case 1: | |
menu1(); | |
break; | |
case 2: | |
menu2(); | |
break; | |
// case 3 : menu3();break; | |
// case 4 : menu4();break; | |
// case 5 : menu5();break; | |
} | |
} | |
public static void menu1() { | |
form_pinjam(); | |
} | |
public static void menu2() { | |
form_pengembalian(); | |
} | |
public static void form_pengembalian() { | |
show_data_peminjam(); | |
} | |
public static void show_data_peminjam() { | |
System.out.println("=== DAFTAR PEMINJAM ==="); | |
for (int i = 0; i < peminjam.length; i++) { | |
System.out.println("No: " + peminjam[i][0]); | |
System.out.println("Kode Pengembalian: " + peminjam[i][5]); | |
System.out.println("No. KTP: " + peminjam[i][1]); | |
System.out.println("Nama: " + peminjam[i][2]); | |
System.out.println("Lama Meminjam: " + peminjam[i][6] + " Hari"); | |
System.out.println("Mulai Tgl / Sampai Tgl: " + peminjam[i][7] + "/" + peminjam[i][8]); | |
System.out.println("--- --- ---"); | |
} | |
System.out.println(""); | |
input_kode_peminjam(); | |
} | |
public static void input_kode_peminjam() { | |
Scanner _input = new Scanner(System.in); | |
String _kodePengembalian; | |
System.out.print("Masukkan Kode Pengembalian: "); | |
_kodePengembalian = _input.next(); | |
if (validate_kode_pengembalian(_kodePengembalian)) { | |
input_tanggal_kembali(); | |
} else { | |
System.out.println("Kode Pengembalian Salah!\n"); | |
input_kode_peminjam(); | |
} | |
} | |
public static void input_tanggal_kembali() { | |
Scanner _input = new Scanner(System.in); | |
String _tanggalKembali; | |
System.out.print("Masukkan Tanggal Kembali: "); | |
_tanggalKembali = _input.next(); | |
int _intTanggalKembali = Integer.parseInt(_tanggalKembali); | |
int _intPeminjam = Integer.parseInt(peminjam[selectedPeminjam][8]); | |
if (_intTanggalKembali > _intPeminjam) { | |
int _selisih = _intTanggalKembali - _intPeminjam; | |
if (_selisih > 2) { | |
totalDenda = _selisih * 100000; | |
} | |
} | |
hitung_total(peminjam[selectedPeminjam][0]); | |
} | |
public static boolean validate_kode_pengembalian(String kode) { | |
for (int i = 0; i < peminjam.length; i++) { | |
if (kode.equals(peminjam[i][5])) { | |
selectedPeminjam = i; | |
return true; | |
} | |
} | |
return false; | |
} | |
public static void hitung_total(String kode) { | |
int selectedVehicle = 0; | |
for (int i = 0; i < kendaraan.length; i++) { | |
if (kode.equals(kendaraan[i][0])) { | |
selectedVehicle = i; | |
} | |
} | |
String _vehiclePrice = kendaraan[selectedVehicle][3]; | |
int _total = Integer.parseInt(_vehiclePrice) + totalDenda; | |
System.out.println("\n\n--- Nota ---"); | |
if (totalDenda > 0) { | |
System.out.println("DENDA: " + totalDenda + " (" + (totalDenda / 100000) + " Hari)"); | |
} | |
System.out.println("TOTAL PEMBAYARAN: " + _total); | |
System.out.println("------------\n\n\n"); | |
main_menu(); | |
} | |
public static void form_pinjam() { | |
Scanner a = new Scanner(System.in); | |
String nama, alamat, notelp, ktp, kodekendaraan, hari, tglawal, tglakhir; | |
boolean vktp = false, vkendaraan = false; | |
do { | |
System.out.print("\n Masukkan No KTP anda = "); | |
ktp = a.next(); | |
System.out.print("Masukkan Nama Anda = "); | |
nama = a.next(); | |
System.out.print("Masukkan Alamat Anda = "); | |
alamat = a.next(); | |
System.out.print("Masukkan No Telp Anda = "); | |
notelp = a.next(); | |
if (vktp(ktp) == true) { | |
// proses menyimpan | |
int id = peminjam.length; | |
int no; | |
if (peminjam[0][0].equals("")) { | |
no = 0; | |
} else { | |
no = id; | |
} | |
peminjam[no][0] = String.valueOf(id + 1); | |
peminjam[no][1] = ktp; | |
peminjam[no][2] = nama; | |
peminjam[no][3] = alamat; | |
peminjam[no][4] = notelp; | |
peminjam[no][5] = randomStr(); | |
vktp = true; | |
// pilih kendaraan | |
System.out.println("\n Pilih Kendaraan yang akan disewa = "); | |
for (int i = 0; i < kendaraan.length; i++) { | |
System.out.println(kendaraan[i][0] + " " + kendaraan[i][1]); | |
} | |
do { | |
System.out.print("\n Pilih Kendaraan yang akan disewa = "); | |
kodekendaraan = a.next(); | |
if (vkendaraan(kodekendaraan) == 0) { | |
System.out.print("Kode Tidak Terdaftar"); | |
} else if (vkendaraan(kodekendaraan) == 1) { | |
System.out.print("Stock Habis LuR"); | |
} else { | |
System.out.print("Kendaraan bisa dipinjam"); | |
System.out.print("\n Masukkan Berapa Hari Peminjaman = "); | |
hari = a.next(); | |
System.out.print("\n Masukkan Tgl Awal = "); | |
tglawal = a.next(); | |
System.out.print("\n Masukkan Tgl Akhir = "); | |
tglakhir = a.next(); | |
peminjam[no][6] = hari; | |
peminjam[no][7] = tglawal; | |
peminjam[no][8] = tglakhir; | |
vkendaraan = true; | |
} | |
} while (vkendaraan == false); | |
nota(); | |
} else { | |
System.out.println("NO KTP SALAH !!!! "); | |
} | |
} while (vktp == false); | |
} | |
public static boolean vktp(String ktp) { | |
// review singkat | |
if (ktp.length() == 5) { | |
return true; | |
} else { | |
return false; | |
} | |
} | |
public static int vkendaraan(String kode) { | |
int index = 0; | |
for (int i = 0; i < kendaraan.length; i++) { | |
// cari indeks array kendaraan | |
if (kendaraan[i][0].equals(kode)) { | |
index = i; | |
break; | |
} | |
} // mohon dijelaskan lagi | |
if (kendaraan[index][0].equals(kode)) { | |
if (kendaraan[index][2].equals("0")) { | |
return 1; // return 1 stock habis | |
} else { | |
return 2; // berhasil | |
} | |
} else { | |
return 0; // tidak terdaftar | |
} | |
} | |
public static String randomStr() { | |
String SALTCHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; | |
StringBuilder salt = new StringBuilder(); | |
Random rnd = new Random(); | |
while (salt.length() < 5) { // length of the random string. | |
int index = (int) (rnd.nextFloat() * SALTCHARS.length()); | |
salt.append(SALTCHARS.charAt(index)); | |
} | |
String saltStr = salt.toString(); | |
return saltStr; | |
} | |
public static void nota() { | |
int rec = peminjam.length - 1; // digunakan untuk mengambil index terakhir array | |
main_menu(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment