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
- import java.awt.*;
- import java.util.*;
- import java.text.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class AntrianBank
- {
- private JFrame mainFrame;
- private JLabel headerLabel;
- private JLabel statusLabel;
- private JPanel controlPanel;
- private tambah a;
- public AntrianBank(){
- GUI();
- this.a = new tambah();
- }
- public static void main(String[] args){
- AntrianBank test = new AntrianBank();
- test.tombol();
- }
- private void GUI(){
- mainFrame = new JFrame("BANK NAFI");
- mainFrame.setSize(300,150);
- mainFrame.setLayout(new GridLayout(3, 1));
- mainFrame.addWindowListener(new WindowAdapter() {
- public void windowClosing(WindowEvent windowEvent){
- System.exit(0);
- }
- });
- headerLabel = new JLabel("", JLabel.CENTER);
- statusLabel = new JLabel("", JLabel.CENTER);
- statusLabel.setSize(350,100);
- controlPanel = new JPanel();
- controlPanel.setLayout(new FlowLayout());
- mainFrame.add(headerLabel);
- mainFrame.add(controlPanel);
- mainFrame.add(statusLabel);
- mainFrame.setVisible(true);
- }
- private void tombol(){
- headerLabel.setText("SELAMAT DATANG DI BANK NAFI");
- JButton okButton = new JButton("Nasabah");
- JButton oceButton = new JButton("Pegawai");
- okButton.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- a.show();
- }
- });
- oceButton.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e){
- String pil= JOptionPane.showInputDialog("Melayani sebagai: \n1. Teller\n2.Customer Service\n");
- a.kurang(pil);
- }
- });
- controlPanel.add(okButton);
- controlPanel.add(oceButton);
- mainFrame.setVisible(true);
- }
- }
- class tambah
- {
- public int noTell=0;
- public int noCS=0;
- public int jmlhT=0;
- public int jmlhCS=0;
- public void show(){
- Date dNow = new Date();
- SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy hh:mm:ss a");
- String pilihan = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Teller\n 2. Customer Service");
- char c = pilihan.charAt(0);
- if(c=='1'){
- 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);
- JOptionPane.showMessageDialog(null, message0);
- noTell++;
- }
- else if(c=='2'){
- 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);
- JOptionPane.showMessageDialog(null, message1);
- noCS++;
- }
- else{
- String message2 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi!");
- JOptionPane.showMessageDialog(null, message2);
- }
- }
- public void kurang(String x){
- switch (x){
- case "1":
- if(noTell-jmlhT<=0){
- String message3 = String.format("Tidak ada antrian untuk Teller");
- JOptionPane.showMessageDialog(null, message3);
- }
- else{
- jmlhT++;
- String message4 = String.format("Berhasil mengurangi nasabah pada antrian %s.\nSisa nasabah yang belum mendapatkan pelayanan %d", x, noTell-jmlhT);
- JOptionPane.showMessageDialog(null, message4);
- }
- break;
- case "2":
- if(noCS-jmlhCS<=0){
- String message5 = String.format("Tidak ada antrian untuk Customer Service");
- JOptionPane.showMessageDialog(null, message5);
- }
- else{
- jmlhCS++;
- String message6 = String.format("Berhasil mengurangi nasabah pada antrian %s.\nSisa nasabah yang belum mendapatkan pelayanan %d", x, noCS-jmlhCS);
- JOptionPane.showMessageDialog(null, message6);
- }
- break;
- default:
- String message7 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi!");
- JOptionPane.showMessageDialog(null, message7);
- break;
- }
- }
- }
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