Skip to content

Instantly share code, notes, and snippets.

@ragasubekti
Created June 19, 2019 19:29
Show Gist options
  • Save ragasubekti/dc82d5723294b88cb920aeff8981eeb4 to your computer and use it in GitHub Desktop.
Save ragasubekti/dc82d5723294b88cb920aeff8981eeb4 to your computer and use it in GitHub Desktop.
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