Latihan Polimorphism
Nama: Valensio Arvin Putra Setiawan
Kelas: PBO G
NRP: 5025231273
Link Github: https://github.com/killervaps/pbo-polimorphism
1. Ticket.java
Cara Kerja:
- Superclass: Kelas dasar yang mendefinisikan struktur dan metode umum untuk semua jenis tiket.
- Atribut:
passengerName: Nama penumpang.flightNumber: Nomor penerbangan.baseFare: Tarif dasar tiket.
- Konstruktor:
- Menginisialisasi atribut umum (
passengerName,flightNumber,baseFare) saat objek dari subclass dibuat.
- Menginisialisasi atribut umum (
- Metode
calculateFare():- Bersifat abstrak, sehingga setiap subclass wajib mengoverride metode ini sesuai dengan kebijakan tarif masing-masing kelas.
- Metode
getTicketDetails():- Menggabungkan informasi penumpang, nomor penerbangan, dan tarif tiket (dihitung dengan
calculateFare()), lalu mengembalikan detail tiket sebagai string.
- Menggabungkan informasi penumpang, nomor penerbangan, dan tarif tiket (dihitung dengan
2. EconomyTicket.java
Cara Kerja:
- Subclass: Mewakili tiket kelas ekonomi, yang menerapkan kebijakan tarif dengan diskon 10%.
- Konstruktor:
- Memanggil konstruktor superclass (
Ticket) menggunakansuperuntuk mengisi atribut umum (passengerName,flightNumber,baseFare).
- Memanggil konstruktor superclass (
- Metode
calculateFare():- Mengoverride metode abstrak di superclass.
- Mengurangi tarif dasar sebesar 10% menggunakan rumus:
3. BusinessTicket.java
Cara Kerja:
- Subclass: Mewakili tiket kelas bisnis, yang menerapkan kebijakan tarif dengan tambahan biaya 25%.
- Konstruktor:
- Memanggil konstruktor superclass (
Ticket) menggunakansuperuntuk mengisi atribut umum.
- Memanggil konstruktor superclass (
- Metode
calculateFare():- Mengoverride metode abstrak di superclass.
- Menambahkan tarif dasar sebesar 25% menggunakan rumus:
4. FirstClassTicket.java
Cara Kerja:
- Subclass: Mewakili tiket kelas First Class, yang menerapkan kebijakan tarif dengan tambahan biaya 50%.
- Konstruktor:
- Memanggil konstruktor superclass (
Ticket) menggunakansuperuntuk mengisi atribut umum.
- Memanggil konstruktor superclass (
- Metode
calculateFare():- Mengoverride metode abstrak di superclass.
- Menambahkan tarif dasar sebesar 50% menggunakan rumus:
5. Main.java
Cara Kerja:
Membuat Objek Tiket:
- Membuat tiga objek:
economyTicketdari kelasEconomyTicket.businessTicketdari kelasBusinessTicket.firstClassTicketdari kelasFirstClassTicket.
- Setiap objek diinisialisasi dengan nama penumpang, nomor penerbangan, dan tarif dasar.
- Membuat tiga objek:
Menggunakan Polimorfisme:
- Semua objek (
economyTicket,businessTicket,firstClassTicket) disimpan dalam referensi bertipeTicket(superclass). - Ketika metode
getTicketDetails()dipanggil pada referensiTicket, implementasicalculateFare()yang sesuai dengan subclass (Ekonomi, Bisnis, atau First Class) dijalankan.
- Semua objek (
Menampilkan Output:
- Output mencetak detail tiket, termasuk tarif yang dihitung berdasarkan kebijakan masing-masing kelas.
Contoh Alur Kerja
Input:
- Nama penumpang: Alice, Bob, Charlie.
- Nomor penerbangan: FL123, FL124, FL125.
- Tarif dasar: 500, 800, 1200.
Eksekusi:
- Objek
economyTicketdibuat:baseFare = 500.- Diskon 10% diterapkan:
500 * 0.9 = 450.
- Objek
businessTicketdibuat:baseFare = 800.- Tambahan biaya 25% diterapkan:
800 * 1.25 = 1000.
- Objek
firstClassTicketdibuat:baseFare = 1200.- Tambahan biaya 50% diterapkan:
1200 * 1.5 = 1800.

Comments
Post a Comment