Minggu, 14 Oktober 2018

UTS PBO B
Automated Parking System

Pada kali ini, dibuat program sistem parkir otomatis dengan metode java. Sistem parkir otomatis mengandalkan beberapa objek, yakni tiket dispenser, operator (komputer scan dan manual check), tiket, gerbang, kamera. Di program sistem parkir otomatis ini, saya membuat 5 class, yakni,
1. Tiket
2. Dispenser
3. Gerbang
4. Operator (Komputer + kamera)
5. Simulasi


Fungsi dari class simulasi adalah menggambarkan bebearapa task otomatis dan manual yang harus dijalankan baik pengguna parkir, penjaga parkir, maupun mesin.

Berikut Contoh Simulasi:

Dari simulasi berikut, pengguna motor menekan tombol 1 untuk mencetak tiket dan mengenerate tiket dan mengambil gambar, lalu mesin secara otomatis membuka dan menutup gerbang, lalu ketika hendak keluar, penjaga parkir, mencek apakah karcis sesuai dengan data, gambar dari awal diambil tadi. Ketika benar maka penjaga mecetak bukti karcis, dan mesin otomatis membuka dan menutup gerbang.

Berikut Source Code nya:

1. Tiket

public class tiket
{
    private String kode;
    private int jam,menit;
    private int gambar;
    
    public tiket(String code,int j,int m,int g){
        kode = code;
        jam = j;
        menit = m;
        gambar = g;
    }
    
    public tiket(){
    }
    
    public String getkode(){
        return kode;
    }
    
    public int getwaktu(){
        return ((jam*60)+menit);
    }
    
    public int getgam(){
        return gambar;
    }
}


2.Dispenser

public class dispenser
{
    private tiket Tiket;
    public tiket buattiket(String kode,int j,int w,int g){
        Tiket = new tiket(kode,j,w,g);
        return Tiket;
    }
    
    public void cetak(tiket Tiket){
        System.out.println("===========================");
        System.out.println("Kode Anda: "+Tiket.getkode());
        System.out.println("Jam ambil: "+(Tiket.getwaktu()/60)+":"+(Tiket.getwaktu()%60));
        System.out.println("========Terimakasih========");
        System.out.println("===========================");
    }
}


3. Gerbang

public class gerbang
{
    private boolean state;
    public gerbang(){state=false;}
    
    public boolean open(){
        state = true;
        System.out.println("Gerbang telah dibuka");
        return state;
    }
    
    public boolean close(){
        state= false;
        System.out.println("Gerbang telah ditutup");
        return state;
    }
}


4. Operator

public class operator
{
    private int gambar;
    private tiket Tiket;
    private int waktu;
    private int harga;
    private String jam;
    
    public void parse(tiket T){
        Tiket = T;
        waktu = 720;
        harga = 2000;
    }
    
    public int ambil(int g){
        gambar = g;
        return gambar;
    }
    
    public boolean cek(int gambar){
        if(Tiket.getgam()!=gambar){
            System.out.println("Orang yang beda");
            return false;
        }
        else{
            System.out.println("Orang yang sama");
            System.out.println("Kode: "+Tiket.getkode());
            System.out.println("Jam Ambil: "+(Tiket.getwaktu()/60)+":"+(Tiket.getwaktu()%60));
            return true;
        }
    }
    
    public int hitung(){
        harga = harga + (harga * ((waktu - Tiket.getwaktu())/60));
        return harga;
    }
    
    public String waktu(){
        jam = (Tiket.getwaktu()/60)+":"+(Tiket.getwaktu()%60)+" - 12:00";
        return jam;
    }
    
    public void cetak(String plat){
        System.out.println("===========================");
        System.out.println("Kode Anda: "+Tiket.getkode());
        System.out.println("Plat Nomor: "+plat);
        System.out.println("Pukul: "+this.waktu());
        System.out.println("Harga: Rp"+this.hitung());
        System.out.println("========Terimakasih========");
        System.out.println("===========================");
    }
}


5. Simulasi

import java.util.Scanner;

public class simulasi
{
    public static void sim(){
        Scanner in = new Scanner(System.in);
        
        tiket tik = new tiket();
        gerbang gate = new gerbang();
        operator op = new operator();
        dispenser dp = new dispenser();
        String kode = "PK87A22I";
        String plat;
       
        int pilih;
        System.out.println("1. Ambil Tiket");
        System.out.println("2. Buka gerbang");
        System.out.println("3. Tutup gerbang");
        System.out.println("4. Cek karcis");
        System.out.println("5. Cetak Bukti\n");
        pilih = in.nextInt();
        while(true){
            switch(pilih){
                case 1:
                tik = dp.buattiket(kode,8,12,2);
                dp.cetak(tik);
                break;
                case 2:
                gate.open();
                break;
                case 3:
                gate.close();
                break;
                case 4:
                op.parse(tik);
                op.ambil(2);
                op.cek(2);
                break;
                case 5:
                in.nextLine();
                op.hitung();
                System.out.println("Masukkan Plat nomer");
                plat = in.nextLine();
                op.cetak(plat);
                break;
            }
            pilih = in.nextInt();
        }
    }
}


Tidak ada komentar:

Posting Komentar