Parkir Elektronik
Kali ini, saya membuat sebuah program yang bekerja layaknya parkir elektronik, bahasa pemrograman yang saya gunakan adalah Java. Environtment yang saya gunakan adalah BlueJ. Berikut adalah tampilan dari BlueJ tersebut.
Berikut adalah cara kerja alat parkir tersebut.
Sebelumnya, masukkan plot nomor kendaraan pengguna parkir terlebih dahulu.
Setelah itu masukkan waktu datang dan pergi. Caranya, dengan memasukkan 2 bilangan secara terpisah, contoh datang 11.30 dan pergi 12.30, maka dimasukkan 1130 1230.
Lalu akan ditampilkan biaya parkirnya, jika anda memiliki uang untuk membayar maka pilih y, maka karcis parkir akan dicetak.Jika tidak, maka pilih n, maka karcis tidak jadi dicetak.
Berikut pula adalah source code dari program saya.
Kelas ParkingMachine
Nama : Ahmad Yahya Abdul Aziz
Kelas : PBO - A
NRP : 05111740000128
Tampilan BlueJ |
Masukkan Plat Nomor |
Masukkan waktu datang dan pergi |
Pilih y jika uang mencukupi |
Pilih n jika uang tidak mencukupi |
Kelas ParkingMachine
import java.util.*;
/**
* Write a description of class ParkingMachine here.
*
* @author Ahmad Yahya Abdul Aziz
* @version 1.0 15102018
* 05111740000128
*/
public class ParkingMachine
{
public int h1,h2,m1,m2;
/**
* Constructor for objects of class ParkingMachine
*/
public void ParkingMachine()
{
Scanner sc = new Scanner(System.in);
char cek;
ParkingTicket tiketparkir = new ParkingTicket();
System.out.println("Selamat Datang, Silahkan gunakan mesin parkir");
System.out.println("Masukkan Plat Nomor anda");
String s;
s = sc.nextLine();
tiketparkir.inputNopol(s);
System.out.println("Masukkan waktu datang, dan pergi");
int wDatang;
wDatang = sc.nextInt();
int wPergi;
wPergi = sc.nextInt();
durasiParkir(wDatang,wPergi);
tiketparkir.durasiP(h1,m1,h2,m2);
tiketparkir.hitungTarif();
System.out.println("Biaya parkir anda adalah : "+tiketparkir.getTarif());
System.out.println("Bayar ? (y/n)");
cek = sc.next().charAt(0);
if(cek=='y') {printKarcis(tiketparkir.getDurasi(),
tiketparkir.getTarif(),
tiketparkir.getNopol());}
else {
System.out.println("Anda belum membayar, sehingga anda tidak bisa parkir");
}
System.out.println("\nTerimakasih telah menggunakan layanan kami");
}
/**
* Method untuk print karcis
*/
public void printKarcis(int durasi,int tarif,String nopol)
{
System.out.println(".-------------------------------");
System.out.println("|Karcis Parkir");
System.out.println("|Plat Nomor : "+nopol);
System.out.print("|Waktu Datang : "+h1+":"+m1);
if(m1==0) {System.out.println("0");}
else {System.out.println();}
System.out.print("|Waktu Pergi : "+h2+":"+m2);
if(m2==0) {System.out.println("0");}
else {System.out.println();}
System.out.println("|Durasi : "+durasi/60+" jam "+durasi%60+" menit");
System.out.println("|Tarif : "+tarif);
System.out.println("`-------------------------------");
}
/**
* Method untuk proses durasi
*/
public void durasiParkir(int wDatang,int wPergi)
{
h1=wDatang/100;
m1=wDatang%100;
h2=wPergi/100;
m2=wPergi%100;
}
}
Kelas ParkingTicket /**
* ParkingTicket
* Kelas untuk memproses tiket parkir
*
* @author AHmad Yahya Abdul Aziz
* @version 1.0 / 15102018
* 05111740000128
*/
public class ParkingTicket
{
private int tarifParkir;
private String platNomor;
private int Durasi;
/**
* Constructor for objects of class ParkingTicket
*/
public ParkingTicket()
{
tarifParkir = 0;
platNomor ="";
Durasi = 0;
}
/**
* Method input platnomor kendaraan
*
*/
public void inputNopol(String s)
{
platNomor = s;
}
/**
* Method untuk menghitung durasi / lama parkir
*/
public void durasiP(int h1, int m1, int h2, int m2)
{
Durasi=(h2-h1)*60;
Durasi=Durasi+m2-m1;
}
/**
* Method untuk menghitung tarif parkir
*/
public void hitungTarif()
{
int t=Durasi;
t -=60;
tarifParkir +=2000;
while(t>0){
tarifParkir+=1000;
t-=60;
}
}
/**
* Method untuk menampilkan platnomor kendaraan
*/
public String getNopol()
{
return platNomor;
}
/**
* Method untuk menampilkan durasi parkir
*/
public int getDurasi()
{
return Durasi;
}
/**
* Method untuk menampilkan tarif parkir
*/
public int getTarif()
{
return tarifParkir;
}
}
Nama : Ahmad Yahya Abdul Aziz
Kelas : PBO - A
NRP : 05111740000128
Comments
Post a Comment