public class TicketMachine
{
private int price;
private int balance;
private int total;
private int refund;
private int tickets;
public TicketMachine(int ticketcost)
{
price=ticketcost;
balance=0;
total=0;
refund=0;
tickets=0;
}
public int getprice()
{
return price;
}
public void insertmoney(int amount)
{
if (amount>0)
{
balance=balance+amount;
}
else
{
System.
out.
println("Silahkan masukan uang anda ke mesin"); }
}
public void printticket()
{
System.
out.
println("Uang anda = Rp."+balance
+",-"); if (balance>0)
{
if(balance>price)
{
tickets=purchasetickets();
int i;
for(i=1;i<=tickets;i++)
{
System.
out.
println("-----------------"); System.
out.
println("--TIKET KERETA API--"); System.
out.
println("--Tiket "+i
+" --"); System.
out.
println("-- Rp."+price
+",- --"); System.
out.
println("-----------------"); }
total=total+balance;
refund=refundbalance();
if(refund==0)
{
System.
out.
println("Tidak Ada Kembalian"); }
else
{
System.
out.
println("Kembalian Rp."+refund
+",-"); }
balance=0;
}
else
{
System.
out.
println("Silahkan Masukan Rp."+(price
-balance
)+",-"); }
}
else
{
System.
out.
println("Silahkan Masukan Uang Anda"); }
}
public int refundbalance()
{
int amounttorefund;
amounttorefund=balance-price*tickets;
balance=0;
return amounttorefund;
}
public int purchasetickets()
{
int numberofticket;
numberofticket=balance/price;
return numberofticket;
}
}
cHVibGljIGNsYXNzIFRpY2tldE1hY2hpbmUKewogICAgcHJpdmF0ZSBpbnQgcHJpY2U7CiAgICBwcml2YXRlIGludCBiYWxhbmNlOwogICAgcHJpdmF0ZSBpbnQgdG90YWw7CiAgICBwcml2YXRlIGludCByZWZ1bmQ7CiAgICBwcml2YXRlIGludCB0aWNrZXRzOwogICAgcHVibGljIFRpY2tldE1hY2hpbmUoaW50IHRpY2tldGNvc3QpCiAgICB7CiAgICAgICAgcHJpY2U9dGlja2V0Y29zdDsKICAgICAgICBiYWxhbmNlPTA7CiAgICAgICAgdG90YWw9MDsKICAgICAgICByZWZ1bmQ9MDsKICAgICAgICB0aWNrZXRzPTA7CiAgICB9CiAgICBwdWJsaWMgaW50IGdldHByaWNlKCkKICAgIHsKICAgICAgICByZXR1cm4gcHJpY2U7CiAgICB9CiAgICBwdWJsaWMgdm9pZCBpbnNlcnRtb25leShpbnQgYW1vdW50KQogICAgewogICAgICAgIGlmIChhbW91bnQ+MCkKICAgICAgICB7CiAgICAgICAgICAgIGJhbGFuY2U9YmFsYW5jZSthbW91bnQ7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2lsYWhrYW4gbWFzdWthbiB1YW5nIGFuZGEga2UgbWVzaW4iKTsKICAgICAgICB9CiAgICB9CiAgICBwdWJsaWMgdm9pZCBwcmludHRpY2tldCgpCiAgICB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJVYW5nIGFuZGEgPSBScC4iK2JhbGFuY2UrIiwtIik7CiAgICAgICAgaWYgKGJhbGFuY2U+MCkKICAgICAgICB7CiAgICAgICAgICAgIGlmKGJhbGFuY2U+cHJpY2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRpY2tldHM9cHVyY2hhc2V0aWNrZXRzKCk7CiAgICAgICAgICAgICAgICBpbnQgaTsKICAgICAgICAgICAgICAgIGZvcihpPTE7aTw9dGlja2V0cztpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tLS0tLS0tLS0tLS0tLSIpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLS1USUtFVCBLRVJFVEEgQVBJLS0iKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0tVGlrZXQgIitpKyIgLS0iKTsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi0tIFJwLiIrcHJpY2UrIiwtIC0tIik7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCItLS0tLS0tLS0tLS0tLS0tLSIpOwogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiICIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdG90YWw9dG90YWwrYmFsYW5jZTsKICAgICAgICAgICAgICAgIHJlZnVuZD1yZWZ1bmRiYWxhbmNlKCk7CiAgICAgICAgICAgICAgICBpZihyZWZ1bmQ9PTApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaWRhayBBZGEgS2VtYmFsaWFuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJLZW1iYWxpYW4gUnAuIityZWZ1bmQrIiwtIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBiYWxhbmNlPTA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlNpbGFoa2FuIE1hc3VrYW4gUnAuIisocHJpY2UtYmFsYW5jZSkrIiwtIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTaWxhaGthbiBNYXN1a2FuIFVhbmcgQW5kYSIpOwogICAgICAgIH0KICAgIH0KICAgIHB1YmxpYyBpbnQgcmVmdW5kYmFsYW5jZSgpCiAgICB7CiAgICAgICAgaW50IGFtb3VudHRvcmVmdW5kOwogICAgICAgIGFtb3VudHRvcmVmdW5kPWJhbGFuY2UtcHJpY2UqdGlja2V0czsKICAgICAgICBiYWxhbmNlPTA7CiAgICAgICAgcmV0dXJuIGFtb3VudHRvcmVmdW5kOwogICAgfQogICAgcHVibGljIGludCBwdXJjaGFzZXRpY2tldHMoKQogICAgewogICAgICAgIGludCBudW1iZXJvZnRpY2tldDsKICAgICAgICBudW1iZXJvZnRpY2tldD1iYWxhbmNlL3ByaWNlOwogICAgICAgIHJldHVybiBudW1iZXJvZnRpY2tldDsKICAgIH0KfQ==