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





















