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

Postingan populer dari blog ini

Implementasi Unit Test

Implementasi Support System

Tugas Ticket Machine