Tugas Pertemuan 12 Pemrograman Berbasis Objek (PBO) A 2024
Nama : Amadeo Yesa
NRP : 5025231160
Kelas : A
Tahun : 2024
Pada pertemuan 12, diberikan studi kasus sebuah 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.
Class Ticket (Superclass)
import java.util.List;
public class Ticket {
protected double baseFare;
protected String passengerName;
protected int passengerAge;
protected double tax;
protected double additionalCharge;
public Ticket(double baseFare, String passengerName, int passengerAge){
this.baseFare = baseFare;
this.passengerName = passengerName;
this.passengerAge = passengerAge;
this.tax = 0.0;
this.additionalCharge = 0.0;
}
public void setTax(double tax) {
this.tax = tax;
}
public void setAdditionalCharge(double additionalCharge) {
this.additionalCharge = additionalCharge;
}
public double calculateFare(){
double fareAfterTax = baseFare + (baseFare * (tax / 100));
return fareAfterTax + additionalCharge;
}
public List getFacilities() {
return List.of("Basic seating");
}
public void displayTicketInfo() {
System.out.println("Passenger Name: " + passengerName);
System.out.println("Passenger Age: " + passengerAge);
System.out.println("Base Fare: " + baseFare);
System.out.println("Tax: " + tax + "%");
System.out.println("Additional Charges: " + additionalCharge);
System.out.println("Total Fare: " + calculateFare());
}
}Class EconomyTicket
import java.util.List;
public class EconomyTicket extends Ticket {
private double luggageAllowance;
public EconomyTicket(double baseFare, String passengerName, int passengerAge) {
super(baseFare, passengerName, passengerAge);
this.luggageAllowance = 15.0;
}
public double getLuggageAllowance() {
return luggageAllowance;
}
public void setLuggageAllowance(double luggageAllowance) {
this.luggageAllowance = luggageAllowance;
}
@Override
public double calculateFare(){
baseFare = baseFare * 0.9;
double fareAfterTax = baseFare + (baseFare * (tax / 100));
return fareAfterTax + additionalCharge;
}
@Override
public List getFacilities() {
return List.of("Basic seating");
}
@Override
public void displayTicketInfo() {
super.displayTicketInfo();
System.out.println("Luggage Allowance: " + luggageAllowance + " kg");
}
}Class BusinessTicket
import java.util.List;
public class BusinessTicket extends Ticket {
private double luggageAllowance;
public BusinessTicket(double baseFare, String passengerName, int passengerAge) {
super(baseFare, passengerName, passengerAge);
this.luggageAllowance = 30.0;
}
public double getLuggageAllowance() {
return luggageAllowance;
}
public void setLuggageAllowance(double luggageAllowance) {
this.luggageAllowance = luggageAllowance;
}
@Override
public double calculateFare(){
baseFare = baseFare * 1.25;
double fareAfterTax = baseFare + (baseFare * (tax / 100));
return fareAfterTax + additionalCharge;
}
@Override
public List getFacilities() {
return List.of("Business seating", "Free meal", "Priority boarding");
}
@Override
public void displayTicketInfo() {
super.displayTicketInfo();
System.out.println("Luggage Allowance: " + luggageAllowance + " kg");
}
}Class FirstClassTicket
import java.util.List;
public class FirstClassTicket extends Ticket {
private double luggageAllowance;
public FirstClassTicket(double baseFare, String passengerName, int passengerAge) {
super(baseFare, passengerName, passengerAge);
this.luggageAllowance = 50.0;
}
public double getLuggageAllowance() {
return luggageAllowance;
}
public void setLuggageAllowance(double luggageAllowance) {
this.luggageAllowance = luggageAllowance;
}
@Override
public double calculateFare(){
baseFare = baseFare * 1.50;
double fareAfterTax = baseFare + (baseFare * (tax / 100));
return fareAfterTax + additionalCharge;
}
@Override
public List getFacilities() {
return List.of("Business seating", "Free meal", "Priority boarding", "Luxury lounge");
}
@Override
public void displayTicketInfo() {
super.displayTicketInfo();
System.out.println("Luggage Allowance: " + luggageAllowance + " kg");
}
}Main
public class Main {
public static void main(String[] args) {
double baseFare = 1000.0;
Ticket economy = new EconomyTicket(baseFare, "Budi", 20);
Ticket business = new BusinessTicket(baseFare, "Andi", 24);
Ticket firstClass = new FirstClassTicket(baseFare, "Bambang", 22);
economy.setTax(10);
System.out.println("Economy Ticket:");
economy.displayTicketInfo();
System.out.println("Facilities: " + economy.getFacilities());
business.setTax(10);
System.out.println("\nBusiness Ticket:");
business.displayTicketInfo();
System.out.println("Facilities: " + business.getFacilities());
firstClass.setTax(10);
System.out.println("\nFirst Class Ticket:");
firstClass.displayTicketInfo();
System.out.println("Facilities: " + firstClass.getFacilities());
}
}Hasil
Source Code:

Comments
Post a Comment