Nama : Erlangga Rizqi Dwi Raswanto
NRP : 5025241179
Kelas : PBO A
Pada pertemuan kali ini, diberikan tugas untuk membuat sebuah class sederhana yaitu Ticket Machine yang mensimulasikan mesin penjual tiket.
Desain Class
-
Field
-
price: harga tiket (dalam cents) -
balance: total uang yang sudah dimasukkan pelanggan -
total: total uang yang masuk ke mesin
-
-
Konstruktor
-
TicketMachine(int cost)untuk menginisialisasi harga, saldo, dan total.
-
-
Metode Utama
-
getPrice()untuk mengembalikan harga tiket. -
getBalance()untuk mengembalikan saldo saat ini. -
insertMoney(int amount)untuk menambah saldo. -
printTicket()untuk mencetak tiket jika saldo cukup (mengembalikantruejika sukses,falsejika saldo kurang).
-
Source Code :
public class TicketMachine{
// Harga tiket
private int price;
// Jumlah uang yang di masukkan customer
private int balance;
// Total uang yang masuk ke mesin ini
private int total;
public TicketMachine(int cost){
if (cost <= 0){
System.err.println("Harga ga boleh mines bro!");
}
price = cost;
balance = 0;
total = 0;
}
// return price of ticket
public int getPrice(){
return price;
}
// return uang yang sudah di insert untuk tiket selanjutnya
public int getBalance(){
return balance;
}
// receive sejumlah uang dari customer
public void insertMoney(int amount){
if (amount <= 0){
System.err.println("Uang harus positif");
}
balance = balance + amount;
}
public boolean printTicket(){
// check if balance kurang dari price, return false if kurang
if (balance < price){
System.err.println("Saldo kurang!");
return false;
}
// Simulate the printing of a ticket.
System.out.println("##################");
System.out.println("# The BlueJ Line");
System.out.println("# Ticket");
System.out.println("# " + price + " cents.");
System.out.println("##################");
System.out.println();
// Update the total collected with the balance.
total = total + balance;
// Clear the balance.
balance = balance - price;
return true;
}
}
Dokumentasi aplikasi
- Membuat instance baru, di sini saya contohkan dengan nama instance "Tiket1000" dengan cost 1000.
- Kasus pertama: saya memasukkan uang sebanyak 2000, sehingga secara logika tiket bisa terbayar.
-
Jalankan
printTicket(); tiket berhasil tercetak. -
Cek
getBalance(); hasil sesuai karena sudah membeli 1 tiket: 2000 − 1000 = 1000. - Kasus kedua: memasukkan uang 500 (tidak cukup untuk membeli tiket).
-
Saat menjalankan
printTicket()pada saldo 500, output menampilkan "Saldo kurang!".
Tidak ada komentar:
Posting Komentar