Tugas PBO pertemuan 3
Nama: Mochamad Kolbi Nuron
Nrp: 5025231183
Ticket Machine
pada tugas ketiga kali ini kita ditugaskan untuk membuat implementasi program dari studi kasus tiket machine
1. Class TicketMachine
Kelas ini merupakan cetak biru untuk menciptakan objek mesin tiket. Kelas ini memiliki beberapa atribut dan metode yang memungkinkan simulasi pembelian tiket.
2. Method _init_(self, ticket_price)
Ini adalah constructor yang digunakan untuk menginisialisasi objek kelas.
Parameter ticket_price digunakan untuk menentukan harga tiket yang ditetapkan.
self.ticket_price menyimpan harga tiket, dan self.balance adalah saldo uang yang dimasukkan oleh pengguna, yang diinisialisasi menjadi 0.
3. Method insert_money(self, amount)
Metode ini digunakan untuk memasukkan uang ke dalam mesin tiket.
Jika jumlah uang yang dimasukkan (amount) lebih besar dari 0, uang tersebut ditambahkan ke saldo (self.balance). Saldo diperbarui dan dicetak sebagai umpan balik kepada pengguna.
Jika jumlah uang yang dimasukkan tidak valid (<= 0), program akan memberi tahu pengguna untuk memasukkan jumlah yang valid.
4. Method print_ticket(self)
Fungsi ini digunakan untuk mencetak tiket jika saldo pengguna cukup untuk membeli tiket.
Jika saldo (self.balance) cukup besar (lebih besar atau sama dengan harga tiket), tiket akan dicetak.
Mesin akan menghitung kembalian (change) dengan mengurangi harga tiket dari saldo.
Jika ada kembalian, mesin akan mengembalikan uang kepada pengguna dan mencetak keterangan kembalian.
Jika saldo tidak cukup, mesin akan memberi tahu berapa jumlah uang yang masih harus ditambahkan agar pengguna bisa membeli tiket.
6. C
ancel_transaction(self)
Fungsi ini bertujuan untuk membatalkan transaksi yang sedang berjalan dan mengembalikan jumlah saldo yang telah dimasukkan ke dalam mesin tiket.
Jika kondisi
self.balance > 0
terpenuhi, artinya pengguna sudah memasukkan sejumlah uang ke mesin tiket. Maka, program akan mencetak pesan bahwa transaksi dibatalkan dan mengembalikan saldo (self.balance
). Setelah itu, saldo di-reset menjadi 0 (self.balance = 0
).Jika tidak ada uang yang dimasukkan, artinya saldo sama dengan 0, maka program akan menampilkan pesan bahwa tidak ada uang yang dimasukkan untuk transaksi.
Alur Program:
Inisialisasi Mesin Tiket:
- Mesin tiket diinisialisasi dengan harga tiket tertentu (misalnya Rp 10.000).
- Saldo awal pengguna diatur menjadi 0.
Pengguna Memasukkan Uang:
- Pengguna memasukkan sejumlah uang melalui metode
insert_money(amount)
. - Jika uang yang dimasukkan valid (lebih dari 0), saldo pengguna bertambah.
- Program mencetak saldo yang telah diperbarui.
- Pengguna memasukkan sejumlah uang melalui metode
Pengecekan Saldo:
- Setelah memasukkan uang, program akan memeriksa apakah saldo yang dimasukkan cukup untuk membeli tiket melalui metode
print_ticket()
. - Jika saldo cukup (saldo >= harga tiket):
- Mesin mencetak tiket.
- Jika ada sisa uang (saldo lebih besar dari harga tiket), kembalian diberikan.
- Setelah tiket dicetak, saldo di-reset menjadi 0.
- Jika saldo tidak cukup:
- Mesin memberi tahu pengguna berapa uang tambahan yang perlu dimasukkan untuk membeli tiket.
- Setelah memasukkan uang, program akan memeriksa apakah saldo yang dimasukkan cukup untuk membeli tiket melalui metode
Pembatalan Transaksi (Opsional):
- Jika pengguna ingin membatalkan transaksi sebelum tiket dicetak, mereka dapat menggunakan metode
cancel_transaction()
. - Program memeriksa apakah saldo lebih dari 0:
- Jika saldo ada, mesin mengembalikan seluruh uang dan mengosongkan saldo (reset ke 0).
- Jika saldo 0, mesin menampilkan pesan bahwa tidak ada uang untuk dikembalikan.
- Jika pengguna ingin membatalkan transaksi sebelum tiket dicetak, mereka dapat menggunakan metode
Komentar
Posting Komentar