Implementasi Reservasi Tiket
Nama: Azka Rizqullah Ramadhani
NRP: 5025231148
Kelas: Pemrograman Berbasis Object (A)
Ini adalah implementasi sistem reservasi tiket pesawat yang mendukung tiga jenis kelas penerbangan:
- Ekonomi
- Bisnis
- 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:
Kelas Ticket adalah kelas dasar atau superclass yang berfungsi sebagai kelas umum untuk semua jenis reservasi tiket pesawat.
Kelas EconomyTicket, BusinessTicket, dan FirstClassTicket adalah subclass yang mewarisi dari Ticket. Setiap subclass mengoverride metode calculateFare() untuk menentukan tarif sesuai kelas penerbangan.
Ketentuan Diskon ticket
- EconomyTicket memberikan diskon 10%.
- BusinessTicket menambahkan biaya 25%.
- FirstClassTicket menambahkan biaya 50%.
Class Ticket
public abstract class Ticket {
protected String passengerName;
protected String flightNumber;
protected double baseFare;
public Ticket(String passengerName, String flightNumber, double baseFare) {
this.passengerName = passengerName;
this.flightNumber = flightNumber;
this.baseFare = baseFare;
}
public abstract double calculateFare();
public void showTicketDetails() {
System.out.println("Passenger: " + passengerName);
System.out.println("Flight: " + flightNumber);
System.out.println("Base Fare: $" + baseFare);
System.out.println("Total Fare: $" + calculateFare());
}
}
Class EconomyTicket
public class EconomyTicket extends Ticket {
public EconomyTicket(String passengerName, String flightNumber, double baseFare) {
super(passengerName, flightNumber, baseFare);
}
@Override
public double calculateFare() {
return baseFare * 0.9; // Diskon 10%
}
}
Class BusinessTicket
public class BusinessTicket extends Ticket {
public BusinessTicket(String passengerName, String flightNumber, double baseFare) {
super(passengerName, flightNumber, baseFare);
}
@Override
public double calculateFare() {
return baseFare * 1.25; // Tambahan biaya 25%
}
}
Class FirstClassTicket
public class FirstClassTicket extends Ticket {
public FirstClassTicket(String passengerName, String flightNumber, double baseFare) {
super(passengerName, flightNumber, baseFare);
}
@Override
public double calculateFare() {
return baseFare * 1.5; // Tambahan biaya 50%
}
}
Main
public class Main {
public static void main(String[] args) {
Ticket economyTicket = new EconomyTicket("John Doe", "FL123", 100.0);
Ticket businessTicket = new BusinessTicket("Jane Smith", "FL456", 100.0);
Ticket firstClassTicket = new FirstClassTicket("Alice Johnson", "FL789", 100.0);
System.out.println("=== Ticket Details ===");
economyTicket.showTicketDetails();
System.out.println();
businessTicket.showTicketDetails();
System.out.println();
firstClassTicket.showTicketDetails();
}
}
Hasil:
Komentar
Posting Komentar