Kamis, 01 Juni 2017

Hospital Queue Machine

Rumah sakit adalah institusi pelayanan kesehatan yang menyelenggarakan pelayanan kesehatan perorangan secara paripurna yang menyediakan pelayanan rawat inap, rawat jalan, dan gawat darurat.

Mesin antrian rumah sakit adalah mesin yang digunakan untuk mengelola nomor urut antrian pelanggan ataupun pasien. Mesin ini mempunyai fungsi untuk mempermudah dokter poli dan dokter umum, atau layanan lain pada rumah sakit tersebut, memanggil pelanggan, dan melayani sesuai dengan keperluan pelanggan pada masing-masing layanan.


Source code date:
/**
 * Write a description of class date here.
 * 
 * @author Davin Masasih - 5115100113
 * @version 0.1
 */
import java.util.*;
import java.text.*;
public class date
{
   public String getTanggal(){
       Date dNow = new Date();
       SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
       return ft.format(dNow);
   }
}

Source code Poli:
/**
 * Write a description of class Poli here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
import java.util.*;
import java.text.*;
import javax.swing.*;
public class Poli
{
   private int nomorTA=0;
   private int nomorTM=0;
   private int nomorTD=0;
   private int nomorTG=0;
   private int nomorTK=0;
   private int antriTA=0;
   private int antriTM=0;
   private int antriTD=0;
   private int antriTG=0;
   private int antriTK=0;
   private date q;
   
   public void ticketT(char x){
       this.q = new date();
       if(x=='a'){
           String message1 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI ANAK\nA%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTA+1, nomorTA-antriTA);
           JOptionPane.showMessageDialog(null, message1);
           nomorTA++;
       }
       else if(x=='b'){
           String message2 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI MATA\nB%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTM+1, nomorTM-antriTM);
           JOptionPane.showMessageDialog(null, message2);
           nomorTM++;
       }
       else if(x=='c'){
           String message3 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI PENYAKIT DALAM\nC%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTD+1, nomorTD-antriTD);
           JOptionPane.showMessageDialog(null, message3);
           nomorTD++;
       }
       else if(x=='d'){
           String message4 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI GIGI\nD%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTG+1, nomorTG-antriTG);
           JOptionPane.showMessageDialog(null, message4);
           nomorTG++;
       }
       else if(x=='e'){
           String message5 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nPOLI KULIT\nE%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorTK+1, nomorTK-antriTK);
           JOptionPane.showMessageDialog(null, message5);
           nomorTK++;
       }
   }
   public void screenT(char y){
       if(y=='a'){
           antriTA++;
           String message6 = String.format("Pelayanan:\nPOLI ANAK\nA%d\n\nBelum mendapatkan pelayanan %d", nomorTA-(nomorTA-antriTA),nomorTA-antriTA);
           JOptionPane.showMessageDialog(null, message6);
       }
       else if(y=='b'){
           antriTM++;
           String message7 = String.format("Pelayanan:\nPOLI MATA\nB%d\n\nBelum mendapatkan pelayanan %d", nomorTM-(nomorTM-antriTM),nomorTM-antriTM);
           JOptionPane.showMessageDialog(null, message7);
       }
       else if(y=='c'){
           antriTD++;
           String message8 = String.format("Pelayanan:\nPOLI PENYAKIT DALAM\nC%d\n\nBelum mendapatkan pelayanan %d", nomorTD-(nomorTD-antriTD),nomorTD-antriTD);
           JOptionPane.showMessageDialog(null, message8);
       }
       else if(y=='d'){
           antriTG++;
           String message9 = String.format("Pelayanan:\nPOLI GIGI\nD%d\n\nBelum mendapatkan pelayanan %d", nomorTG-(nomorTG-antriTG),nomorTG-antriTG);
           JOptionPane.showMessageDialog(null, message9);
       }
       else if(y=='e'){
           antriTK++;
           String message0 = String.format("Pelayanan:\nPOLI KULIT\nE%d\n\nBelum mendapatkan pelayanan %d", nomorTK-(nomorTK-antriTK),nomorTK-antriTK);
           JOptionPane.showMessageDialog(null, message0);
       }
   }
}

Source code Umum:
/**
 * Write a description of class Umum here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
import java.util.*;
import java.text.*;
import javax.swing.*;
public class Umum
{
   private int nomorU=0;
   private int antriU=0;
   private date q;

   Date dNow = new Date();
   SimpleDateFormat ft = new SimpleDateFormat("E, dd.MM.yyyy   hh:mm:ss a");
   
   public void ticketU(){
       this.q = new date();
       String message1 = String.format("#######################################\nd Hospital\n\n"+q.getTanggal()+"\n\nNomor Antrian Anda :\nUMUM\nU%d\n\nTerima kasih telah tertib\nJumlah antrian: %d\n#######################################", nomorU+1, nomorU-antriU);
       JOptionPane.showMessageDialog(null, message1);
       nomorU++;
   }
   public void screenU(char x){
       antriU++;
       if(x=='a'){
           String message2 = String.format("Pelayanan:\nUMUM1\nU%d\n\nBelum mendapatkan pelayanan %d", nomorU-(nomorU-antriU),nomorU-antriU);
           JOptionPane.showMessageDialog(null, message2);
       }
       else if(x=='b'){
           String message2 = String.format("Pelayanan:\nUMUM2\nU%d\n\nBelum mendapatkan pelayanan %d", nomorU-(nomorU-antriU),nomorU-antriU);
           JOptionPane.showMessageDialog(null, message2);
       }
   }
}

Source code hospital:
/**
 * Write a description of class hospital here.
 * 
 * @author Davin Masasih - 5115100113 
 * @version 0.1
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class hospital
{
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;
   private Poli a;
   private Umum b;
   public hospital(){
       prepareGUI();
       this.a = new Poli();
       this.b = new Umum();
   }
   public static void main(String[] args){
       hospital test = new hospital();
       test.showButton();
   }
   private void prepareGUI(){
       mainFrame = new JFrame("d Hospital");
       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 showButton(){
       headerLabel.setText("Selamat datang..");
       
       JButton nButton = new JButton("Pasien"); 
       JButton pButton = new JButton("Pegawai"); 
       nButton.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){       
               String pilihan = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli\n 2. Umum");
               char c = pilihan.charAt(0);
               if(c=='1'){
                   String pilih = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli Anak\n 2. Poli Mata\n 3. Poli Penyakit Dalam\n 4. Poli Gigi\n 5. Poli Kulit");
                   char x = pilih.charAt(0);
                   if(x=='1')
                       a.ticketT('a');
                   else if(x=='2')
                       a.ticketT('b');
                   else if(x=='3')
                       a.ticketT('c');
                   else if(x=='4')
                       a.ticketT('d');
                   else if(x=='5')
                       a.ticketT('e');
                   else{
                       String message1 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message1);
                   }
               }
               else if(c=='2'){
                   b.ticketU();
               }
               else{
                   String message2 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                   JOptionPane.showMessageDialog(null, message2);
               }
           }          
       });
       pButton.addActionListener(new ActionListener(){
           public void actionPerformed(ActionEvent e){
               String pil = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli\n 2. Umum");
               char c = pil.charAt(0);
               if(c=='1'){
                   String p = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Poli Anak\n 2. Poli Mata\n 3. Poli Penyakit Dalam\n 4. Poli Gigi\n 5. Poli Kulit");
                   char y = p.charAt(0);
                   if(y=='1')
                       a.screenT('a');
                   else if(y=='2')
                       a.screenT('b');
                   else if(y=='3')
                       a.screenT('c');
                   else if(y=='4')
                       a.screenT('d');
                   else if(y=='5')
                       a.screenT('e');
                   else{
                       String message3 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message3);
                   }
               }
               else if(c=='2'){
                   String z = JOptionPane.showInputDialog("Silahkan pilih:\n 1. Umum1\n 2. Umum2");
                   char w = z.charAt(0);
                   if(w=='1')
                       b.screenU('a');
                   if(w=='2')
                       b.screenU('b');
                   else{
                       String message4 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                       JOptionPane.showMessageDialog(null, message4);
                   }
               }
               else{
                   String message4 = String.format("Pilihan yang Anda masukkan salah. Silahkan coba lagi...");
                   JOptionPane.showMessageDialog(null, message4);
               }
           }          
       });
       controlPanel.add(nButton);
       controlPanel.add(pButton);
       mainFrame.setVisible(true);  
   }
}



Hasilnya:

Pilihan Pasien, untuk mencetak kartu antrian
Pilihan Pegawai, untuk tiap kali selesai melayani pelanggan.


Apabila dipilih pada Pasien, maka..


Untuk pilihan 1, yakni Poli


Untuk pilihan 1, yakni Poli Anak
pilihan 2, yakni Poli Mata
pilihan 3, yakni Poli Penyakit Dalam
dll.


dan seterusnya.

Sistem dari mesin antrian rumah sakit ini hampir sama dengan mesin antrian pada bank yang telah saya post sebelumnya. Bedanya dalam mesin antrian rumah sakit ini, saya tambahkan banyak pilihan lagi setelah masuk pada kotak dialog Poli pada pilihan Pasien, selain itu juga ada 2 dokter umum yang pemilihan pelayanannya diatur oleh pihak pegawai.

Implementasi Aplikasi Manajemen Surat