Sistem Reservasi Tiket Pesawat - Tugas Pertemuan 12

Nama     : Triana Velia Hutabalian 

NRP       : 5025231190

Kelas     : PBO G


Tugas ini membuat sistem reservasi tiket pesawat menggunakan bahasa java pada aplikasi BlueJ.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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%.
Kode : Github

Penjelasan kode:

1. Superclass Ticket adalah kelas abstrak yang mendefinisikan struktur dasar tiket penerbangan.
Atribut:
- passengerName: Nama penumpang.
- baseFare: Tarif dasar tiket.
Metode:
- calculateFare(): Metode abstrak untuk menghitung tarif akhir tiket, yang akan di-override oleh subclass.
- getFacilities(): Metode abstrak untuk mendapatkan fasilitas yang tersedia di kelas tertentu (akan di-override).
- getBaggageLimit(): Metode abstrak untuk mendapatkan batas bagasi yang tersedia (akan di-override).
- getTicketInfo(): Menampilkan informasi tiket, termasuk tarif, fasilitas, dan batas bagasi, serta memanggil metode calculateFare(), getFacilities(), dan getBaggageLimit().

2. Subclass EconomyTicket mewarisi dari Ticket dan mengimplementasikan tiga metode yang diwarisi:
- calculateFare(): Menghitung tarif akhir dengan memberikan diskon 10% pada tarif dasar.
- getFacilities(): Mengembalikan string yang menyebutkan fasilitas yang disediakan untuk kelas Ekonomi (misalnya, tempat duduk standar dan tidak ada Wi-Fi).
- getBaggageLimit(): Mengembalikan batas bagasi untuk kelas Ekonomi, yaitu 20 kg.

3. Subclass BusinessTicket mengimplementasikan calculateFare(), getFacilities(), dan getBaggageLimit():
- calculateFare(): Menambahkan biaya 25% pada tarif dasar.
- getFacilities(): Menyediakan fasilitas untuk kelas Bisnis (tempat duduk yang dapat direbahkan, Wi-Fi, dan check-in prioritas).
- getBaggageLimit(): Batas bagasi untuk kelas Bisnis adalah 30 kg.

4. Subclass FirstClassTicket mewarisi dari Ticket dan mengimplementasikan metode yang sama:
- calculateFare(): Menambahkan biaya 50% pada tarif dasar.
- getFacilities(): Menyediakan fasilitas premium (tempat duduk mewah, Wi-Fi, makanan gourmet, dan akses lounge).
- getBaggageLimit(): Batas bagasi untuk kelas First Class adalah 40 kg.

5. Kelas TicketReservationSystem bertanggung jawab untuk mengelola tiket yang telah dipesan.
Atribut:
- tickets: ArrayList yang menyimpan tiket yang dipesan.
Metode:
- addTicket(): Menambahkan tiket baru ke dalam daftar tiket.
- showAllTickets(): Menampilkan semua tiket yang telah dipesan, atau pesan jika belum ada tiket yang dipesan.    
Metode main():
- Menyediakan menu interaktif untuk pengguna.
- Pengguna dapat memilih untuk memesan tiket baru atau melihat tiket yang sudah dipesan.
- Inputan pengguna digunakan untuk menentukan nama penumpang, tarif dasar, dan kelas penerbangan yang dipilih (Ekonomi, Bisnis, atau First Class).


Diagram Class :


Hasil :
































Have a nice day☻

Komentar

Postingan populer dari blog ini

Pertemuan 4&5 PPB (B) - 25/03/2026

Pertemuan 2 PPB (B) - 04/03/2026

Pertemuan 7 - 08/04/2026