Senin, 08 September 2025

PBO A - Pertemuan 3 - Membuat Ticket Machine Sederhana

 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 (mengembalikan true jika sukses, false jika 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

  1. Membuat instance baru, di sini saya contohkan dengan nama instance "Tiket1000" dengan cost 1000.
  2. Kasus pertama: saya memasukkan uang sebanyak 2000, sehingga secara logika tiket bisa terbayar.
  3. Jalankan printTicket(); tiket berhasil tercetak.
  4. Cek getBalance(); hasil sesuai karena sudah membeli 1 tiket: 2000 − 1000 = 1000.
  5. Kasus kedua: memasukkan uang 500 (tidak cukup untuk membeli tiket).
  6. Saat menjalankan printTicket() pada saldo 500, output menampilkan "Saldo kurang!".

Tidak ada komentar:

Posting Komentar

PBO A - Pertemuan 15 - Pong!

Nama : Erlangga Rizqi Dwi Raswanto NRP : 5025241179 Kelas : PBO A 1. Pendahuluan Pada pertemuan 15, kita mempraktikkan pembuatan game...