Implementasi Polymorphism Pada Sistem Reservasi Tiket Pesawat

Nama : Rafaela Shyra Ashma' Ramadhani

NRP : 5025231217

Kelas : Pemrograman Berorientasi Objek - G

Tugas 12 - Pertemuan 12


Buatlah sistem reservasi tiket pesawat yang mendukung tiga jenis kelas penerbangan:

  1. Ekonomi
  2. Bisnis
  3. First Class

Setiap kelas penerbangan memiliki perhitungan tarif yang berbeda-beda. Selain itu, setiap kelas juga memiliki kebijakan khusus, seperti fasilitas tambahan, batas bagasi, atau layanan yang disediakan.

Struktur Kelas:

  1. Kelas Ticket adalah kelas dasar atau superclass yang berfungsi sebagai kelas umum untuk semua jenis reservasi tiket pesawat.
  2. Kelas EconomyTicket, BusinessTicket, dan FirstClassTicket adalah subclass yang mewarisi dari Ticket. Setiap subclass mengoverride metode calculateFare() untuk menentukan tarif sesuai kelas penerbangan.
  3. Ketentuan Diskon ticket

·  EconomyTicket memberikan diskon 10%.

·  BusinessTicket menambahkan biaya 25%.

·  FirstClassTicket menambahkan biaya 50%. 



Jawaban : 

Source Code : GitHub

Penjalasan Kode : 

Class Ticket

Ticket adalah kelas abstrak (abstract class) yang berfungsi sebagai superclass untuk semua jenis tiket. Kelas ini memiliki atribut baseFare, yang menyimpan tarif dasar tiket, dan dua metode abstrak, calculateFare() dan getDetails(). Metode-metode ini wajib diimplementasikan oleh subclass untuk menghitung tarif total tiket sesuai dengan kelas penerbangan dan memberikan detail tiket. Kelas ini menjadi fondasi umum untuk mengelola berbagai tipe tiket.

Class EconomyTicket

EconomyTicket adalah subclass dari Ticket yang mewakili tiket kelas ekonomi. Kelas ini mengimplementasikan metode calculateFare() dengan memberikan diskon sebesar 10% pada tarif dasar, yaitu baseFare * 0.9. Metode getDetails() memberikan deskripsi fasilitas tiket kelas ekonomi, seperti bagasi 20 kg dan makanan ringan. Kelas ini menunjukkan spesifikasi tiket untuk kategori paling terjangkau.

Class BusinessTicket

BusinessTicket adalah subclass dari Ticket yang mewakili tiket kelas bisnis. Kelas ini mengimplementasikan metode calculateFare() dengan menambahkan biaya sebesar 25% pada tarif dasar, yaitu baseFare * 1.25. Metode getDetails() menjelaskan fasilitas yang diberikan, seperti bagasi 30 kg, makanan premium, dan akses ke lounge. Kelas ini merepresentasikan tiket dengan tingkat kenyamanan menengah.

Class FirstClassTicket

FirstClassTicket adalah subclass dari Ticket yang mewakili tiket kelas First Class. Kelas ini mengimplementasikan metode calculateFare() dengan menambahkan biaya sebesar 50% pada tarif dasar, yaitu baseFare * 1.5. Metode getDetails() memberikan informasi tentang layanan mewah, termasuk bagasi 40 kg, makanan eksklusif, kursi tidur, dan akses lounge VIP. Kelas ini mencerminkan tiket dengan fasilitas premium tertinggi.

Class Paseenger

Passenger adalah kelas tambahan untuk mengelola biodata pemesan tiket, mencakup atribut name, phone, dan email. Kelas ini memiliki konstruktor untuk inisialisasi data dan metode toString() untuk menyusun informasi pemesan dalam format teks yang rapi. Kelas ini digunakan untuk menyimpan informasi pribadi pemesan yang ditampilkan dalam ringkasan pesanan. 

Class TicketReservation

TicketReservation adalah kelas utama yang menjalankan keseluruhan sistem reservasi tiket. Kelas ini meminta biodata pemesan menggunakan input dari pengguna, memungkinkan pemesanan beberapa tiket dengan memilih jenis kelas penerbangan (ekonomi, bisnis, atau First Class), dan menambahkan tiket ke dalam daftar pesanan. Setelah selesai, program menampilkan ringkasan pesanan, termasuk biodata pemesan, detail setiap tiket, dan total biaya. Kelas ini bertindak sebagai penghubung antara pengguna dan sistem tiket, memberikan pengalaman reservasi yang interaktif.

Diagram Class : 


Output : 





Komentar

Postingan populer dari blog ini

Web Pendaftaran Siswa Baru - CRUD dengan PHP dan MySQL

Final Project PBO - G

Tech Support System Menggunakan Java