public class Driver {
Becak becak1 = new Becak();
Becak becak2 = new Becak();
Becak becak3 = new Becak();
Helicopter heli1 = new Helicopter();
Kapal kapal1 = new Kapal();
Kapal kapal2 = new Kapal();
Kendaraan[] kendaraan = new Kendaraan[8];
String[] komponen = {"Roda", "Baling-Baling", "Mesin", "Pintu", "Kursi"};
public void cekKomponen(int nomorKendaraan, int nomorKomponen){
if(kendaraan[nomorKendaraan] instanceof Becak){
if(nomorKomponen != 1 && nomorKomponen != 2){
kendaraan[nomorKendaraan].addKomponen(komponen[nomorKomponen]);
System.out.println("Komponen "+ komponen[nomorKomponen]+ " sudah ditambahkan");
}else{
System.out.println("Komponen "+ komponen[nomorKomponen]+ " tidak bisa ditambahkan ke becak");
}
}else if(kendaraan[nomorKendaraan] instanceof Helicopter){
kendaraan[nomorKendaraan].addKomponen(komponen[nomorKomponen]);
System.out.println("Komponen "+ komponen[nomorKomponen]+ " sudah ditambahkan");
}else if(kendaraan[nomorKendaraan] instanceof Kapal){
if(nomorKomponen != 0 && nomorKomponen != 1){
kendaraan[nomorKendaraan].addKomponen(komponen[nomorKomponen]);
System.out.println("Komponen "+ komponen[nomorKomponen]+ " sudah ditambahkan");
}else{
System.out.println("Komponen "+ komponen[nomorKomponen]+ " tidak bisa ditambahkan ke becak");
}
}
}
public Driver(){
becak1.setHarga(10000);
becak2.setHarga(15000);
becak3.setHarga(20000);
heli1.setHarga(40000);
kapal1.setHarga(60000);
kapal2.setHarga(68000);
becak1.setKecepatan(50);
becak2.setKecepatan(55);
becak3.setKecepatan(60);
heli1.setKecepatan(350);
kapal1.setKecepatan(250);
kapal2.setKecepatan(200);
becak1.setWarna("Merah");
becak2.setWarna("Jingga");
becak3.setWarna("Kuning");
heli1.setWarna("Hijau");
kapal1.setWarna("Biru");
kapal2.setWarna("Nila");
becak1.setJumlahKursi(2);
becak2.setJumlahKursi(3);
becak3.setJumlahKursi(4);
heli1.setJumlahKursi(4);
kapal1.setJumlahKursi(200);
kapal2.setJumlahKursi(2000);
kendaraan[0]=becak1;
kendaraan[1]=becak2;
kendaraan[2]=becak3;
kendaraan[3]=kapal1;
kendaraan[4]=kapal2;
kendaraan[5]=heli1;
cekKomponen(0, 0);
cekKomponen(0, 1);
cekKomponen(0, 4);
cekKomponen(1, 0);
cekKomponen(1, 2);
cekKomponen(1, 4);
cekKomponen(2, 0);
cekKomponen(2, 4);
cekKomponen(3, 0);
cekKomponen(3, 1);
cekKomponen(3, 2);
cekKomponen(3, 3);
cekKomponen(3, 4);
cekKomponen(4, 2);
cekKomponen(4, 3);
cekKomponen(4, 4);
cekKomponen(5, 0);
cekKomponen(5, 1);
cekKomponen(5, 2);
cekKomponen(5, 3);
cekKomponen(5, 4);
heli1.removeKomponen("Pintu");
heli1.removeKomponen("Pintu");
becak1.tampilKomponen();
becak2.tampilKomponen();
becak3.tampilKomponen();
heli1.tampilKomponen();
kapal1.tampilKomponen();
kapal2.tampilKomponen();
}
public static void main(String[] args) {
Driver d = new Driver();
}
}
public class Becak extends Kendaraan implements InterfaceKendaraan{
private String nama;
public Becak(){}
public String getNama(){
return this.nama;
}
@Override
public void setWarna(String w){
this.warna=w;
}
@Override
public void setJumlahKursi(int j){
this.jmlKursi=j;
}
@Override
public void tampilKomponen(){
System.out.println("=======BECAK=======");
System.out.println("Warna :"+this.warna);
System.out.println("Jumlah Kursi :"+this.jmlKursi);
System.out.println("Kecepatan :"+this.kecepatan);
System.out.println("Komponen :");
for(int i=0; i<getPointer(); i++){
System.out.println(i+". "+getKomponen(i));
}
}
}
public class Helicopter extends Kendaraan implements InterfaceKendaraan{
private String nama;
public Helicopter(){}
public String getNama(){
return this.nama;
}
@Override
public void setWarna(String w){
this.warna=w;
}
@Override
public void setJumlahKursi(int j){
this.jmlKursi=j;
}
@Override
public void tampilKomponen(){
System.out.println("=======HELIKOPTER=======");
System.out.println("Warna :"+this.warna);
System.out.println("Jumlah Kursi :"+this.jmlKursi);
System.out.println("Kecepatan :"+this.kecepatan);
System.out.println("Komponen :");
for(int i=0; i<getPointer(); i++){
System.out.println(i+". "+getKomponen(i));
}
}
}
public interface InterfaceKendaraan{
public void setWarna(String w);
public void setJumlahKursi(int j);
}
public class Kapal extends Kendaraan implements InterfaceKendaraan{
private String nama;
public Kapal(){}
public String getNama(){
return this.nama;
}
@Override
public void setWarna(String w){
this.warna=w;
}
@Override
public void setJumlahKursi(int j){
this.jmlKursi=j;
}
@Override
public void tampilKomponen(){
System.out.println("=======KAPAL=======");
System.out.println("Warna :"+this.warna);
System.out.println("Jumlah Kursi :"+this.jmlKursi);
System.out.println("Kecepatan :"+this.kecepatan);
System.out.println("Komponen :");
for(int i=0; i<getPointer(); i++){
System.out.println(i+". "+getKomponen(i));
}
}
}
public class Kendaraan{
private int Pointer=0;
private String[] Komponen = new String[4];
protected int kecepatan;
protected int harga;
protected int jmlKursi;
protected String warna;
public Kendaraan(){}
public void setHarga(int harga){
this.harga=harga;
}
public void setKecepatan(int k){
this.kecepatan = k;
}
public void addKomponen(String k){
if(Pointer!=4){
this.Komponen[Pointer] = k;
Pointer++;
}
}
public void removeKomponen(String k){
int j=-1;
for(int i=0; i<Pointer; i++){
if(Komponen[i].equals(k)){
j=i;
}
}
if(j!=-1){
Pointer--;
for(int i=j; i<Pointer; i++){
Komponen[i]=Komponen[i+1];
}
}
}
public int getPointer(){
return Pointer;
}
public String getKomponen(int i){
return this.Komponen[i];
}
public void tampilKomponen(){
for(int i=0; i<Pointer; i++){
System.out.println("Komponen ke-"+i+": "+this.Komponen[i]);
}
}
}
0 komentar:
Post a Comment