PBO - Project TicketMachine

Sunday, March 5, 2017

PBO - Project TicketMachine




Untuk minggu ini saya membuat program yang sama persis seperti yang ada dalam buku Objects
First with Java - A Practical Introduction Using BlueJ” yang ditulis oleh David Barnes dan Michael Kolling. Program yang saya buat adalah program Naive Ticket Machine seperti yang ada dalam bab kedua di buku tersebut.

Program Naive Ticket Machine adalah program yang didesain untuk melayani calon penumpang
kereta api dalam transaksi pembelian tiket mereka. Aplikasi ini didesain untuk dapat membaca uang yang ‘dimasukkan’ kedalam mesin ini, kemudian mencetak tiket sebanyak yang calon penumpang
inginkan, selama uang mereka masih mencukupi. Kemudian setelah transaksi selesai, uang calon
penumpang, jika masih tersisa, akan dikembalikan. Mesin ini pun tetap menyimpan jumlah uang
yang sudah ia dapatkan.

Program ini saya buat sesuai dengan apa yang tertulis dalam buku tersebut, namun saya juga
menambahkan beberapa hal yang saya yakin dapat menunjukkan semua yang program itu bisa
lakukan. Pada awalnya, dalam buku tersebut, hanya ditunjukkan satu class yang berisi tentang fungsi-fungsi utama program. Saya menambahkan satu class yang berfungsi untuk input dan output dari
program ini.



Berikut adalah kedua class yang saya buat, class TicketMachine dan UITicketMachine.

Class TicketMachine: 




Class UITicketMachine:







Untuk class TicketMachine saya menambahkan satu method tambahan. Diakhir program ada method totalIncome, yang berfungsi untuk mengeluarkan nilai total uang yang telah diperoleh mesin dari
pembeli tiket selama sesi itu. Kemudian pada method printTicket, saya menambahkan counter untuk nomor tiket yang dibeli pelanggan, untuk membedakan tiket yang dibeli masing-masing pembeli pada sesi itu. Saya masih belum mendapatkan cara bagaimana untuk menyimpan
integer kedalam memori secara permanen, jadi saat program dihentikan, nilai counter pasti akan
kembali ke 1.

Untuk class UITicketMachine penjelasan mengenai masing-masing method ada di komentar-komentar dalam kode. Input dibuat menggunakan switch while, dengan masing-masing pilihan diberi angka sesuai dengan case nya. Disini saya menambahkan beberapa case,
diantaranya ‘Get Price’, ‘Get Balance’, ‘Insert Money’, ‘Print Ticket’, ‘End Transaction’, dan ‘Turn off machine’. Pada case ‘Get Price’, ‘Get Balance’, dan ‘Insert Money’, program akan menampilkan harga tiket, menampilkan uang pengguna yang ada didalam mesin, dan memasukkan uang kedalam mesin.

Pada Print Ticket, saya membuat agar pengguna dapat mencetak beberapa tiket sekaligus, maka dari
itu saya menggunakan for. Pada Print Ticket tiket akan diprint dan setiap satu tiket yang dicetak maka jumlah uang pengguna pada mesin akan dikurangi seharga satu tiket itu. Pada ‘End Transaction’,
jika masih ada uang sisa yang masih ada didalam program, uang itu akan dikeluarkan. Pada ‘Turn off machine’, program akan keluar dan total uang yang diterima program akan ditampilkan.

Berikut output dari program:
Menampilkan harga tiket, dan memasukkan uang























Mencetak dua tiket sekaligus.



























Mencetak tiket, kemudian memeriksa sisa saldo










































Mengakhiri transaksi. Uang sisa dikeluarkan.



























Total uang dihitung di akhir sesi.

0 comments :

Post a Comment