Senin, 03 April 2017

Evaluasi Tengah Semester 2017 - Rancangan Mesin Antrian Bank


Bank merupakan  tempat berkumpulnya masyarakat untuk menyimpan atau pun mengambil uang. Sebelum melakukan transaksi biasanya nasabah diminta mengambil nomor antrian di mesin pencetak antrian.

Mesin pencetak antrian bank adalah system yang berfungsi untuk mengelola nomor urut antrian nasabah bank. Mesin ini mempunyai fungsi, mempermudah teller dan customer service, atau layanan lain pada bank tersebut, memanggil nasabah dan melayani sesuai dengan keperluan nasabah, pada masing-masing layanan.


Rancangan Mesin Antrian Bank:




Setelah membuat rancangan Visualisasi Class-nya, kini saatnya saya mengimplementasikannya ke dalam Source Code. Berikut ini merupakan hasil implementasi SOURCE CODE dalam bahasa Java (Saya menggunakan tools BlueJ) beserta OUTPUT nya:

SOURCE CODE

  1. import java.awt.*;
  2. import java.util.*;
  3. import java.text.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6. public class AntrianBank
  7. {
  8.    private JFrame mainFrame;
  9.    private JLabel headerLabel;
  10.    private JLabel statusLabel;
  11.    private JPanel controlPanel;
  12.    private tambah a;
  13.    public AntrianBank(){
  14.        GUI();
  15.        this.a = new tambah();
  16.    }
  17.    public static void main(String[] args){
  18.        AntrianBank test = new AntrianBank();
  19.        test.tombol();
  20.    }
  21.    private void GUI(){
  22.        mainFrame = new JFrame("BANK NAFI");
  23.        mainFrame.setSize(300,150);
  24.        mainFrame.setLayout(new GridLayout(3, 1));
  25.      
  26.        mainFrame.addWindowListener(new WindowAdapter() {
  27.            public void windowClosing(WindowEvent windowEvent){
  28.                System.exit(0);
  29.            }        
  30.        });
  31.        
  32.        headerLabel = new JLabel("", JLabel.CENTER);        
  33.        statusLabel = new JLabel("", JLabel.CENTER);    
  34.        statusLabel.setSize(350,100);
  35.        controlPanel = new JPanel();
  36.        controlPanel.setLayout(new FlowLayout());
  37.        mainFrame.add(headerLabel);
  38.        mainFrame.add(controlPanel);
  39.        mainFrame.add(statusLabel);
  40.        mainFrame.setVisible(true);  
  41.    }
  42.    private void tombol(){
  43.        headerLabel.setText("SELAMAT DATANG DI BANK NAFI");
  44.        
  45.        JButton okButton = new JButton("Nasabah");
  46.        JButton oceButton = new JButton("Pegawai");
  47.        okButton.addActionListener(new ActionListener(){
  48.            public void actionPerformed(ActionEvent e){
  49.                a.show();
  50.            }          
  51.        });
  52.        oceButton.addActionListener(new ActionListener(){
  53.            public void actionPerformed(ActionEvent e){
  54.                String pil= JOptionPane.showInputDialog("Melayani sebagai: \n1. Teller\n2.Customer Service\n");
  55.                a.kurang(pil);
  56.            }          
  57.        });
  58.        controlPanel.add(okButton);
  59.        controlPanel.add(oceButton);
  60.        mainFrame.setVisible(true);  
  61.    }
  62. }
  63. class tambah
  64. {
  65.    public int noTell=0;
  66.    public int noCS=0;
  67.    public int jmlhT=0;
  68.    public int jmlhCS=0;
  69.    public void show(){
  70.        Date dNow = new Date();
  71.        SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
  72.        
  73.        String pilihan = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Teller\n 2. Customer Service");
  74.        char c = pilihan.charAt(0);
  75.        
  76.        if(c=='1'){
  77.            String message0 = String.format("#BANK NAFI#\n\n"+ft.format(dNow)+"\n\nNomor Antrian Anda:\n\nTELLER\nA%d\n\nMohon menunggu hingga nomor dipanggil.\nJumlah antrian: %d nasabah.", noTell+1, noTell-jmlhT);
  78.            JOptionPane.showMessageDialog(null, message0);
  79.            noTell++;
  80.        }
  81.        else if(c=='2'){
  82.            String message1 = String.format("#BANK NAFI#\n\n"+ft.format(dNow)+"\n\nNomor Antrian Anda:\n\nCUSTOMER SERVICE\nB0%d\n\nMohon menunggu hingga nomor dipanggil.\nJumlah antrian: %d nasabah.", noCS+1, noCS-jmlhCS);
  83.            JOptionPane.showMessageDialog(null, message1);
  84.            noCS++;
  85.        }
  86.        else{
  87.            String message2 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi!");
  88.            JOptionPane.showMessageDialog(null, message2);
  89.        }
  90.     }
  91.    public void kurang(String x){
  92.        switch (x){
  93.            case "1":
  94.               if(noTell-jmlhT<=0){
  95.                   String message3 = String.format("Tidak ada antrian untuk Teller");
  96.                   JOptionPane.showMessageDialog(null, message3);
  97.               }
  98.               else{
  99.                   jmlhT++;
  100.                   String message4 = String.format("Berhasil mengurangi nasabah pada antrian %s.\nSisa nasabah yang belum mendapatkan pelayanan %d", x, noTell-jmlhT);
  101.                   JOptionPane.showMessageDialog(null, message4);
  102.               }
  103.               break;
  104.            case "2":
  105.                if(noCS-jmlhCS<=0){
  106.                   String message5 = String.format("Tidak ada antrian untuk Customer Service");
  107.                   JOptionPane.showMessageDialog(null, message5);
  108.               }
  109.               else{
  110.                   jmlhCS++;
  111.                   String message6 = String.format("Berhasil mengurangi nasabah pada antrian %s.\nSisa nasabah yang belum mendapatkan pelayanan %d", x, noCS-jmlhCS);
  112.                   JOptionPane.showMessageDialog(null, message6);
  113.               }
  114.               break;
  115.            default:
  116.               String message7 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi!");
  117.               JOptionPane.showMessageDialog(null, message7);
  118.               break;
  119.        }
  120.    }
  121. }

OUTPUT

Pilih sebagai nasabah atau Pegawai



Jika memilih sebagai nasabah:
Jika ingin mengantri di Teller, maka pilih opsi 1
Jika ingin mengantri di Customer Service, maka pilih opsi 2



Nomor antrian akan keluar seperti ini




Jika memilih sebagai pegawai:
Jika melayani sebagai Teller, maka pilih opsi 1
Jika melayani sebagai Customer Service, maka pilih opsi 2



Akan keluar seperti ini



1 komentar:

  1. Solusi antrian dengan sistem antrian komputer dan android menggunakan tombol dan touchscreen seperti di BANK, PUSKESMAS, RUMAH SAKIT, PELAYANAN PAJAK,TOKO,dan lain"
    sistemantrian.com
    klik> sistem antrian
    Klik> mesin antrian
    Klik> mesin antrian android
    Klik> sistem antrian android
    Klik> mesin antrian jakarta
    Klik> mesin antrian touchscreen

    BalasHapus

Rangkuman Buku System Analysis and Design

BAB 3: Requirements Determination -           Fase Analisis Fase analisis menentukan garis besar tujuan bisnis untuk sistem, menentukan...