Senin, 18 April 2016

APLIKASI SISTEM INFORMASI KUNJUNGAN PASIEN



APLIKASI
DAFTAR KUNJUNGAN PASIEN “KLINIK DKA”

Kali ini kita akan membuat aplikasi daftar kunjungan pasien.

1.        Buka Netbeans 8.0.2 , buat project baru dengan cara klik file - new project atau langsung pilih icon new project.
2.       Isi project name ( sesuai keinginan ) dan atur lokasi penyimpanan pekerjaan pada project location. Jangan lupa untuk menghilangkan centang pada create main class, klik finish.
3.         Project telah dibuat, kemudian klik kanan pada source packages - new - JFrame Form, maka akan muncul lembar kerja frame. Kemudian desain sesuai dengan aplikasi yang akan dibuat.
 Berikut dibawah ini seperti ini tampilanya:




Untuk kolom nama pasien dan laporan pemeriksaan menggunkan textfield, dan untuk dokter menggunakan combobox.

Source code
a.       Public class
 private Vector<Vector<String>> DB = new Vector(), data = new Vector();
    private Vector head = new Vector();
    private int max = 0;
    private String fileName = "D:/datapasien.txt";
    private DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
    public datapasien() {
        initComponents();
        rightRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
        bacaData();
        updateTabel();
    }

b.      Untuk button add
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        txtnama.setEditable(true);
        txtnama.setText(""); cmbdokter.setSelectedItem(""); txtlaporan.setText(""); txtnama.requestFocus();
    }

c.       Bufferedreade, bufferedwriter, dan update table.
   
    private void bacaData(){
        try {
            BufferedReader br = new BufferedReader(new FileReader(fileName));
            String tmp;
            while((tmp=br.readLine())!=null){
                StringTokenizer st = new StringTokenizer(tmp, "#");
                Vector<String> tmp2 = new Vector();
                String No = st.nextToken();
                String NIM = st.nextToken();
                String Nama = st.nextToken();
                String Alamat = st.nextToken();
                tmp2.add(No); tmp2.add(NIM); tmp2.add(Nama); tmp2.add(Alamat);
                DB.add(tmp2);
                if(Integer.parseInt(No) > max) max = Integer.parseInt(No);
            }
            br.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
   
    private void updateTabel(){
        data = new Vector();
        head = new Vector();
        head.add("No"); head.add("Nama pasien"); head.add("Nama dokter");
        if(chxlaporan.isSelected()) head.add("Laporan Periksa");
       
        for (Vector<String> v1 : DB) {
            Vector<String> v2 = new Vector<>();
            v2.add(v1.get(0));
            v2.add(v1.get(1));
            v2.add(v1.get(2));
            if(chxlaporan.isSelected()) v2.add(v1.get(3));
            data.add(v2);
        }
       
        tabel.setModel(new DefaultTableModel(data, head));
        tabel.getColumnModel().getColumn(0).setPreferredWidth(50);
        tabel.getColumnModel().getColumn(1).setPreferredWidth(100);
        tabel.getColumnModel().getColumn(2).setPreferredWidth(200);
        if(chxlaporan.isSelected()) tabel.getColumnModel().getColumn(3).setPreferredWidth(300);
        tabel.getColumnModel().getColumn(0).setCellRenderer(rightRenderer);
        tabel.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);
    }
    
    private void simpanData(){
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
            for (Vector<String> v : DB) {
                bw.write(v.get(0)+"#"+v.get(1)+"#"+v.get(2)+"#"+v.get(3));
                bw.newLine();
            }
            bw.close();
        } catch (Exception e) {
        }
    }

d.      Button save
private void btnsaveActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        String no = String.valueOf(max+1);
        String pasien = txtnama.getText().trim();
        String dokter = cmbdokter.getSelectedItem().toString();
        String laporan = txtlaporan.getText().trim();
        if(pasien.equals("") || dokter.equals("") || laporan.equals(""))
            JOptionPane.showMessageDialog(this, "Semua isian harus diisi.");
        else {
            boolean b = false;
            int i;
            Vector<String> v = new Vector<>();
           
            for (i = 0; i < DB.size(); i++) {
                if(DB.get(i).get(1).equals(pasien)) { b = true; break; }
            }
            if(b){
                v.add(DB.get(i).get(0)); v.add(pasien); v.add(dokter); v.add(laporan);
                DB.setElementAt(v, i);
                updateTabel();
                JOptionPane.showMessageDialog(this, "Proses update berhasil.");
            } else {
                v.add(no); v.add(pasien); v.add(dokter); v.add(laporan);
                DB.add(v);
                updateTabel(); max++;
                JOptionPane.showMessageDialog(this, "Proses simpan berhasil.");
            }
            txtnama.setText(""); cmbdokter.setSelectedItem(""); txtlaporan.setText(""); txtnama.setEditable(false);
        }
    }
e.       Button delete
private void btndelActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        hapusData();
    }
f.       Button print
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
        DefaultTableModel mod = (DefaultTableModel) tabel.getModel();
        String[] jud = {"No", "Nama Pasien", "Dokter", "Laporan periksa"};
        String[][] isi = new String[tabel.getRowCount()][tabel.getColumnCount()];
        for (int i = 0; i < tabel.getRowCount(); i++) {
            for (int j = 0; j < tabel.getColumnCount(); j++) {
                isi[i][j] = mod.getValueAt(i, j).toString();
            }
             try {
             cetakdatapasien cetak
                         = new cetakdatapasien(jud, isi, tabel.getRowCount(), tabel.getColumnCount());
             } catch (FileNotFoundException ex) {
                 Logger.getLogger(datapasien.class.getName()).log(Level.SEVERE, null, ex);
             } catch (DocumentException ex) {
                 Logger.getLogger(datapasien.class.getName()).log(Level.SEVERE, null, ex);
             }
        
    }
        JOptionPane.showMessageDialog(null, "data tersimpan.");
    }

g.      Source kode pada mouseclicked
int row = tabel.getSelectedRow();
        if(row < 0) {
            JOptionPane.showMessageDialog(this, "Pilih data (klik kiri) terlebih dahulu.");
            return;
        }
        txtnama.setText(DB.get(row).get(1));
        cmbdokter.setSelectedItem(DB.get(row).get(2));
        txtlaporan.setText(DB.get(row).get(3));
        txtnama.setEditable(false);
        if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3) {
            hapus.setText("Hapus "+txtnama.getText()+", "+cmbdokter.getSelectedItem()+", "+txtlaporan.getText());
            popup.show(tabel, evt.getX(), evt.getY());
        }
    }                  
G.        Kode pada checkbox
  updateTabel();
    }                                         
              

Berikut hasil running dari aplikasi:
Isikan semua data, semua kolom harus di isi.                       
Setelah data di inputkan, klik pada button save. Kemudian akan muncul joption seperti berikut, bahwa data sudah berhasil disimpan.

Apabila cheklist pada laporan di hilangkan, maka kolom laporan pada tabel akan hilang.

Berikutnya klik button print untuk mencetak hasil penyimpanan. Setelah di klik di button save akan muncul joption kalau data sudah disimpan dan dicetak di file yang berekstensi pdf.

Buka file pdf di dalam folder aplikasi.

Selain disimpan dalam ekstensi pdf, data juga disimpan di notepad, karena kita juga menggunkan bufferedreader dan bufferedwriter.


Untuk cetak di pdf, terlebih dahulu install itextpdf pada project aplikasi.

source code lengkap aplikasi: aplikasi kunjungan pasien
 source code lengkap cetak data: class cetak data

Minggu, 17 April 2016

7 Aplikasi Java berbasis GUI



APLIKASI JAVA BERBASIS GUI

Pertemuan kali ini saya akan bahas mengenai 7 aplikasi java, yang sebelumnya sudah pernah dibahas di postingan sebelumnya dengan metode penggabungan. Berikut 7 aplikasi tersebut, mari simak gan;

1.        Monggo Buka Netbeans 8.0.2 , buat project baru dengan cara klik file - new project atau     langsung pilih icon new project.
2.         Isi nama project dan atur lokasi penyimpanan pekerjaan pada project location. Jangan lupa untuk menghilangkan centang pada create main class, klik finish.
3.         Project telah terbuat, lalu klik kanan pada source packages - new - JFrame Form, maka akan muncul lembar kerja frame. Kemudian kita desain sesuai dengan aplikasi yang akan kita buat.
Mari kita buat satu demi satu aplikasinya, yuk langsung otw tkp:

       1.      Reservasi tiket pesawat

Berikut desain dari aplikasi reservasi tiket:

Selain menggunakan textfield, juga menggunakan combo box Untuk pihan Dari dan Ke. Dan untuk menu bagasi menggunakan checkbox, guna memilih kapasitas meuatan yang dibawa penumpang. Didalam aplikasi ini juga disertakan menu exit, meskipun sudah ada menu close di bar. Dalam button exit ini juga disertakan JOptionPane.showConfirmDialog, jadi setelah di klik menu exit tersebut muncul tampilan seperti berikut:

Berikut hasil runing dari aplikasi yang sudah dibuat:


Berikut source code dari aplikasi diatas:
Source code aplikasi reservasi tiket pesawat:
      
      2.      Grade Nilai

Berikut desin aplikasi dari grade nilai:

Untuk kolom isian dari aplikasi ini menggunakan textfield. Dan untuk menu proses menggunakan button.

Berikut hasil runing dari aplikasi:
Berikut source code dari aplikasi diatas:
Source code aplikasi grade nilai:

      3.      Kalkulator

Berikut desain dari aplikasi reservasi tiket:

Dalam kalkulator ini hampir keseluruhan menggunakan button. Selain membuat desain aplikasi ini, juga membuat java main class untuk kalkulator.
Source code dari java class kalkulator:

Berikut hasil runing dari aplikasi kalkulator:

Berikut source code dari aplikasi kalkulator:
Source code dari aplikasi kalkulator

      4.      Konversi suhu

Berikut desain dari aplikasi konversi suhu:

Untuk aplikasi konversi suhu ini hanya mengkonversi dari fahrenheit ke celcius. Dalam aplikasi ini juga ada menu exit.

Berikut hasil runing dari aplikasi konversi suhu:

Berikut source code dari  aplikasi yang sudah dibuat:
Source code dari aplikasi konversi suhu



      5.      Menghitung luas dan keliling persegi panjang

Berikut desain dari aplikasi menghitung luas dan keliling persegi panjang:

Dalam aplikasi ini untuk menampilan hasil dari perhitungan saya pakai jScrollPane.
Aplikasi ini berguna menghitung luas dan keliling dari sebuah persegi panjang.

Berikut hasil runing dari aplikasi:

Berikut source code dari aplikasi diatas:
Source code aplikasi menghitung luas dan keliling persegi panjang:



      6.      Menebak nama segitiga

Berikut desain dari aplikasi menebak nama segitiga:

Aplikasi ini untuk menentukan nama segitiga. Setelah sisi1,2,3 di isi, kemudian di klik Test akan muncul nama segitiga yang sudah ditentukan sisi nya tadi. Disini juga ada menu hapus untuk menghapus isian dari kolom isi dan nama segitiga, menu ini digunakan jika ingin mencari nama segitiga lagi.

Berikut hasil runing dari aplikasi:

Berikut source code dari aplikasi diatas:
Source code aplikasi menebak nama segitiga:
      
      7.      Seleksi berkas

Berikut desain dari aplikasi seleksi berkas:

Di aplikasi ini saya kasih JOptionPane.showMessageDialog sebelum memulai aplikasi. Berikut tampilannya:

Dalam aplikasi ini terdapat menu proses yang berfungsi untuk menampilkan data yang sudah di inputkan. Kemudian menu  bersih digunkan untuk menghapus data yang sidah di inputkan guna untuk di isi dengan data baru.

Berikut hasil runing dari aplikasi:
Berikut source code dari aplikasi diatas:
Source code aplikasi grade nilai: