public class TicketMachine
{
//Harga tiket dari mesin ini
private int price;
//Banyaknya uang yang dimasukkan oleh pembeli
private int balance;
private int newbalance;
//Total uang yang dikumpulkan mesin ini
private int total;
//Jumlah tiket
private int tickets;
// Total kembalian
private int refund;
/*
* Buat mesin yang mengeluarkan tiket dari harga yang diberikan.
* Perhatikan bahwa harganya harus lebih besar dari nol, dan di sana
* tidak ada pemeriksaan untuk memastikan ini
*/
public TicketMachine(int ticketCost)
{
price = ticketCost;
balance = 0;
total = 0;
refund = 0;
}
//mengembalikan nilai dari harga tiket
public int getPrice(){
return price;
}
/*mengembalikan nilai dari banyaknya uang yang telah dimasukkan
untuk tiket selanjutnya*/
public int getBalance(){
return balance;
}
//Mengembalikan jumlah uang yang diinginkan
public void getTickets(int tiket)
{
if(tiket >= 1)
{
tickets = tiket;
}
else
{
System.out.println("masukkan jumlah tiket yang benar.");
System.out.println();
}
}
//pembeli memasukkan sejumlah uang
public void insertMoney(int jumlah)
{
if (jumlah > 0){
balance = balance + jumlah;
newbalance = balance;
}
else{
System.out.println("Please insert the right amount of money");
System.out.println();
}
}
//cetak tiket, update uang total dan jadikan balance ke nol
public void printTickets(){
// Simulasi penyetakan tiket
for(int i = 1; i <= tickets; i++){
System.out.println("###################################");
System.out.println("# ARJUNA TRAIN TICKET #");
System.out.println("# Tiket per Orang #");
System.out.println("# Harga Tiket: "+ price +" cents. #");
System.out.println("###################################");
System.out.println();
}
// Simulasi penyetakan struk
System.out.println("########################################");
System.out.println("# STRUK TIKET #");
System.out.println("# ARJUNA TRAIN #");
System.out.println("# Harga Tiket : "+ price +". #");
System.out.println("# Jumlah Tiket : "+tickets+" #");
System.out.println("# Total Harga : "+price*tickets+". #");
System.out.println("########################################");
System.out.println();
// update uang yang tersimpan
total = total + balance;
// mereset nilai balance.
balance = 0;
}
//kembalian dari pembeli
public int refundBalance()
{
int refundable;
refundable = newbalance - price*tickets;
newbalance = 0;
return refundable;
}
}