Tugas Pertemuan 3 - 5025231186
Agym Kamil Ramadhan - 5025231186
Tugas Pertemuan 3 PBO A
MEMBUAT STRUKTUR TIKET MACHINE
Mewakili entitas tiket dengan atribut category dan price.
Terdapat getter untuk mengakses atribut.
Class TicketMachine:
Berisi daftar tiket dalam bentuk array objek Ticket.
Metode displayTickets() untuk menampilkan daftar tiket.
Metode getTicket() untuk mendapatkan tiket berdasarkan pilihan pengguna.
Class ConcertTicketMachine:
Kelas utama untuk menjalankan program.
Menggunakan objek TicketMachine untuk memproses pembelian tiket.
import java.util.Scanner;
// Kelas untuk tiket
class Ticket {
private String category;
private int price;
public Ticket(String category, int price) {
this.category = category;
this.price = price;
}
public String getCategory() {
return category;
}
public int getPrice() {
return price;
}
}
// Kelas untuk mesin tiket
class TicketMachine {
private Ticket[] tickets;
public TicketMachine() {
// Inisialisasi kategori tiket dan harga
tickets = new Ticket[] {
new Ticket("Regular", 500000),
new Ticket("VIP", 1000000),
new Ticket("VVIP", 1500000)
};
}
public void displayTickets() {
System.out.println("Daftar Kategori Tiket:");
for (int i = 0; i < tickets.length; i++) {
System.out.printf("%d. %s - Rp %,d%n", i + 1, tickets[i].getCategory(), tickets[i].getPrice());
}
}
public Ticket getTicket(int choice) {
if (choice >= 1 && choice <= tickets.length) {
return tickets[choice - 1];
}
return null; // Jika pilihan tidak valid
}
}
// Kelas utama
public class ConcertTicketMachine {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
TicketMachine machine = new TicketMachine();
System.out.println("Selamat datang di Ticket Machine Konser!");
// Tampilkan tiket
machine.displayTickets();
// Pilih kategori tiket
System.out.print("Masukkan nomor kategori tiket pilihan Anda: ");
int choice = scanner.nextInt();
Ticket selectedTicket = machine.getTicket(choice);
if (selectedTicket == null) {
System.out.println("Pilihan tidak valid. Silakan coba lagi.");
return;
}
// Jumlah tiket
System.out.print("Masukkan jumlah tiket yang ingin dibeli: ");
int ticketCount = scanner.nextInt();
if (ticketCount <= 0) {
System.out.println("Jumlah tiket tidak valid.");
return;
}
// Hitung total
int totalPrice = selectedTicket.getPrice() * ticketCount;
System.out.printf("Total harga: Rp %,d%n", totalPrice);
// Pembayaran
System.out.print("Masukkan jumlah uang pembayaran: Rp ");
int payment = scanner.nextInt();
if (payment < totalPrice) {
System.out.println("Uang Anda tidak mencukupi. Transaksi dibatalkan.");
} else {
int change = payment - totalPrice;
System.out.printf("Pembayaran berhasil! Kembalian Anda: Rp %,d%n", change);
System.out.println("Terima kasih telah membeli tiket konser!");
}
scanner.close();
}
}
Komentar
Posting Komentar