Tugas PBO Pertemuan 12
Nathanael Valen Susilo
5025231099
Source code : https://github.com/Kirytsu/PBO-G/tree/main/PlaneTicketing
Penjelasan Program Reservasi Tiket Pesawat
Secara struktur, program terdiri dari kelas abstrak/dasar Ticket yang kemudian diextend oleh sub kelasnya yaitu EconomyTicket, BusinessTicket, dan FirstClassTicket. Selain itu, ada juga kelas Main yang berfungsi untuk menjalankan dan melakukan testing pada program.
Kelas Ticket
Kelas Ticket merupakan kelas dasar yang mendefinisikan atribut dan method yang akan digunakan oleh masing-masing jenis tiket. Contohnya pada abstract method yang hanya didefinisikan di kelas Ticket, tetapi kemudian akan dilakukan override pada sub kelas sehingga method tersebut dapat disesuaikan dengan kebutuhan sub kelas masing-masing.
Kelas EconomyTicket
Setiap inisialisasi subkelas akan membutuhkan parameter yaitu : nama penumpang, nomor penerbangan, dan harga dasar penerbangan tersebut. superclass disini juga digunakan untuk memanggil konstruktor dari kelas Ticket.
Override digunakan untuk menimpa method yang didefinisikan sebelumnya, agar method dapat disesuaikan dengan kebutuhan sub kelas yang berbeda-beda (polymorphism). Kita bisa lihat penggunaan sub kelas di sini dibutuhkan untuk membedakan 3 nilai yang ada, yaitu : harga akhir, kelas tiket, dan juga fasilitas. Contohnya perhitungan harga tiket ekonomi dikurangi diskon 10%.
Kelas BusinessTicket
Kelas FirstClassTicket
Kelas Main
Untuk pengetesan pada kelas main, di sini saya coba untuk menggunakan arraylist untuk menyimpan data tiap tiket yang ada, kemudian mengeset harga dasar untuk tiap tiket ke 500.000. Setelah itu, dicoba untuk menambahkan tiket untuk masing-masing kelas tiket yang ada dengan harga dasar yang sama, dan dilakukan print untuk menampilkan informasi dari tiap tiket yang ada.
Tampilan Output Testing
Pada output tersebut, kita dapat melihat dengan menggunakan konsep polymorphism, kita dapat mengubah atribut dan variabel yang ada pada suatu kelas. Di output tersebut, terlihat walaupun setiap tiket memiliki harga dasar yang sama, tetapi harga akhirnya berbeda karena method untuk melakukan perhitungan dari setiap sub kelas dapat dilakukan pembedaan.
Komentar
Posting Komentar