Pertemuan 11 - Rental Mobil (inheritence)

 Aditya Rizki Muhammad   

5025221272


Aplikasi Rental Mobil



class diagram tersebut menunjukan bahwa class Motor, Sepeda dan Mobil merupakan inheritence dari Kendaraan. Detail kode dari setiap class tersebut adalah seperti berikut.


Main.java

import java.util.Scanner;


public class Main {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        Penyewaan penyewaan = new Penyewaan();


        // Membuat objek dari class turunan Kendaraan

        Sepeda sepeda = new Sepeda("Sepeda Gunung", 20000);

        Motor motor = new Motor("Honda Vario", 50000, 125);

        Mobil mobil = new Mobil("Toyota Avanza", 300000, 7);


        System.out.println("=== SISTEM PENYEWAAN KENDARAAN ===");

        System.out.println("1. Sepeda");

        System.out.println("2. Motor");

        System.out.println("3. Mobil");

        System.out.print("Pilih kendaraan: ");

        int pilihan = input.nextInt();


        System.out.print("Berapa hari ingin disewa? ");

        int hari = input.nextInt();


        switch (pilihan) {

            case 1:

                penyewaan.sewa(sepeda, hari);

                break;


            case 2:

                penyewaan.sewa(motor, hari);

                break;


            case 3:

                penyewaan.sewa(mobil, hari);

                break;


            default:

                System.out.println("Pilihan tidak valid!");

        }

    }

}


Penyewaan.java

public class Penyewaan {

    public void sewa(Kendaraan kendaraan, int hari) {

        System.out.println("\n=== DETAIL PENYEWAAN ===");

        kendaraan.info();

        System.out.println("Durasi sewa: " + hari + " hari");

        System.out.println("Total harga: Rp " + (kendaraan.getHargaSewa() * hari));

        System.out.println("=========================\n");

    }

}


Motor.java

public class Motor extends Kendaraan {

    private int cc;


    public Motor(String nama, int hargaSewa, int cc) {

        super(nama, hargaSewa);

        this.cc = cc;

    }


    public int getCc() {

        return cc;

    }


    @Override

    public void info() {

        System.out.println("=== MOTOR ===");

        super.info();

        System.out.println("CC: " + cc);

    }

}


Sepeda.java

public class Sepeda extends Kendaraan {


    public Sepeda(String nama, int hargaSewa) {

        super(nama, hargaSewa);

    }


    @Override

    public void info() {

        System.out.println("=== SEPeda ===");

        super.info();

    }

}


Mobil.java
public class Mobil extends Kendaraan {
    private int jumlahKursi;

    public Mobil(String nama, int hargaSewa, int jumlahKursi) {
        super(nama, hargaSewa);
        this.jumlahKursi = jumlahKursi;
    }

    public int getJumlahKursi() {
        return jumlahKursi;
    }

    @Override
    public void info() {
        System.out.println("=== MOBIL ===");
        super.info();
        System.out.println("Jumlah kursi: " + jumlahKursi);
    }
}

Kendaraan.java

public class Kendaraan {

    protected String nama;

    protected int hargaSewa;


    public Kendaraan(String nama, int hargaSewa) {

        this.nama = nama;

        this.hargaSewa = hargaSewa;

    }


    public String getNama() {

        return nama;

    }


    public int getHargaSewa() {

        return hargaSewa;

    }


    public void info() {

        System.out.println("Kendaraan: " + nama);

        System.out.println("Harga Sewa: Rp " + hargaSewa);

    }

}