L
A
M
P
I
R
A
LAMPIRAN
Tampilan Interface Sistem Informasi Apotik Denai
Tampilan Login.java
Tampilan PenjualanObat.java
Tampilan DataDistributor.java
LAMPIRAN
Listing program Sistem Informasi Apotik
DataObat.java
package Apotik.GUI.Interface;
import Apotik.QueryKeMysql.KasirDAO;
import Apotik.DBKoneksi.DBConnection;
import Apotik.Data.Kasir;
import Apotik.gui.Interface.AboutIFrame;
import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
import java.awt.Dimension;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
public class FrameHome extends javax.swing.JFrame {
private static final long serialVersionUID =
private Kasir kasir;
/** Creates new form MainFrame */
public FrameHome() {
initComponents();
loginDialog.setPreferredSize(new Dimension(130,
130));
loginDialog.setMinimumSize(new Dimension(130, 130));
loginDialog.setMaximumSize(new Dimension(130, 130));
setMenuLogOut();
}
private boolean isValidUser(String username, String
password) {
try {
Kasir k = new
KasirDAO(DBConnection.getInstance().getConnection()).loadUse
rname(username);
if (k != null) {
if (k.getUsername().equals(username) &&
k.getPassword().equals(password)) {
return true;
} else {
return false;
}
} else {
return false;
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
return false;
}
// <editor-fold defaultstate="collapsed" desc="setter
getter kasir">
public Kasir getKasir() {
return kasir;
}
public void setKasir(Kasir kasir) {
this.kasir = kasir;
}
// </editor-fold>
/** Set menu dan menu item
* @param <code>status</code> untuk status login jika
true maka login jika false maka logout
*/
public void setMenuUserLogin(int akses) {
if (akses == Kasir.KASIR) {
loginMenuItem.setEnabled(false);
logoutMenuItem.setEnabled(true);
masterMenu.setEnabled(false);
transaksiMenu.setEnabled(true);
transaksiPembelianMenuItem.setEnabled(true);
transaksiPenjualanMenuItem.setEnabled(true);
transaksiResepMenuItem.setEnabled(false);
laporanMenu.setEnabled(false);
} else if (akses == Kasir.APOTEKER) {
loginMenuItem.setEnabled(false);
logoutMenuItem.setEnabled(true);
masterMenu.setEnabled(false);
transaksiMenu.setEnabled(true);
transaksiPembelianMenuItem.setEnabled(false);
transaksiResepMenuItem.setEnabled(true);
laporanMenu.setEnabled(false);
} else if (akses == Kasir.ADMIN) {
loginMenuItem.setEnabled(false);
logoutMenuItem.setEnabled(true);
masterMenu.setEnabled(true);
transaksiMenu.setEnabled(true);
laporanMenu.setEnabled(true);
}
}
public void setMenuLogOut() {
loginMenuItem.setEnabled(true);
logoutMenuItem.setEnabled(false);
masterMenu.setEnabled(false);
transaksiMenu.setEnabled(false);
laporanMenu.setEnabled(false);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
loginDialog = new javax.swing.JDialog();
loginButton = new javax.swing.JButton();
loginUsernameTextField = new
mainDesktopPane = new javax.swing.JDesktopPane();
mainMenuBar = new javax.swing.JMenuBar();
masterObatMenuItem = new javax.swing.JMenuItem();
masterDistributorMenuItem = new
javax.swing.JMenuItem();
masterKasirMenuItem = new javax.swing.JMenuItem();
transaksiMenu = new javax.swing.JMenu();
laporanResepMenuItem = new javax.swing.JMenuItem();
obatMenuItem = new javax.swing.JMenuItem();
kasirMenuItem = new javax.swing.JMenuItem();
helpMenu = new javax.swing.JMenu();
aboutMenuItem = new javax.swing.JMenuItem();
loginDialog.setTitle("Login");
loginDialog.setAlwaysOnTop(true);
loginDialog.setMinimumSize(new
java.awt.Dimension(277, 120));
loginDialog.setResizable(false);
loginDialog.getContentPane().setLayout(new
org.netbeans.lib.awtextra.AbsoluteLayout());
loginButton.setFont(new java.awt.Font("Tahoma", 0,
14));
loginButton.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/m
nudoor.png"))); // NOI18N
loginButton.setText("login");
loginButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
loginButtonActionPerformed(evt);
}
});
loginDialog.getContentPane().add(loginButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(260, 150, -1,
-1));
batalButton.setFont(new java.awt.Font("Tahoma", 0,
14));
batalButton.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/m
batalButton.setText("batal");
batalButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
batalButtonActionPerformed(evt);
}
});
loginDialog.getContentPane().add(batalButton, new
org.netbeans.lib.awtextra.AbsoluteConstraints(350, 150, -1,
-1));
loginUsernameTextField.setFont(new
java.awt.Font("Tahoma", 0, 14));
loginDialog.getContentPane().add(loginUsernameTextField, new
org.netbeans.lib.awtextra.AbsoluteConstraints(260, 80, 180,
-1));
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14));
jLabel1.setText("Username :");
loginDialog.getContentPane().add(jLabel1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 80, 1,
-1));
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 14));
jLabel2.setText("Password :");
loginDialog.getContentPane().add(jLabel2, new
org.netbeans.lib.awtextra.AbsoluteConstraints(190, 110, -1,
-1));
loginPasswordPasswordField.setFont(new
loginDialog.getContentPane().add(loginPasswordPasswordField,
new org.netbeans.lib.awtextra.AbsoluteConstraints(260, 110,
180, -1));
jLabel3.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/i
conLogin.png"))); // NOI18N
javax.swing.GroupLayout panel1U1Layout = new
javax.swing.GroupLayout(panel1U1);
panel1U1.setLayout(panel1U1Layout);
panel1U1Layout.setHorizontalGroup(
panel1U1Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.LEADING)
.addGroup(panel1U1Layout.createSequentialGroup()
.addGap(35, 35, 35)
.addComponent(jLabel3)
.addContainerGap(347, Short.MAX_VALUE))
);
panel1U1Layout.setVerticalGroup(
panel1U1Layout.createParallelGroup(javax.swing.GroupLayout.A
lignment.LEADING)
.addGroup(panel1U1Layout.createSequentialGroup()
.addGap(50, 50, 50)
.addComponent(jLabel3)
.addContainerGap(72, Short.MAX_VALUE))
);
loginDialog.getContentPane().add(panel1U1, new
org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 510,
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON
_CLOSE);
setTitle("Aplikasi Apotik");
mainDesktopPane.setBackground(new
java.awt.Color(102, 204, 0));
mainDesktopPane.setForeground(new java.awt.Color(51,
204, 0));
userMenu.setText("User");
userMenu.setFont(new java.awt.Font("Tahoma", 0,
14));
loginMenuItem.setText("Login");
loginMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
loginMenuItemActionPerformed(evt);
}
});
userMenu.add(loginMenuItem);
logoutMenuItem.setText("Logout");
logoutMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
logoutMenuItemActionPerformed(evt);
}
});
exitMenuItem.setText("Exit");
exitMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
exitMenuItemActionPerformed(evt);
}
});
userMenu.add(exitMenuItem);
mainMenuBar.add(userMenu);
masterMenu.setText("Master");
masterMenu.setFont(new java.awt.Font("Tahoma", 0,
14));
masterObatMenuItem.setText("Obat");
masterObatMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
masterObatMenuItemActionPerformed(evt);
}
});
masterMenu.add(masterObatMenuItem);
masterDistributorMenuItem.setText("Distributor");
masterDistributorMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
}
});
masterMenu.add(masterDistributorMenuItem);
masterKasirMenuItem.setText("Kasir");
masterKasirMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
masterKasirMenuItemActionPerformed(evt);
}
});
masterMenu.add(masterKasirMenuItem);
mainMenuBar.add(masterMenu);
transaksiMenu.setText("Transaksi");
transaksiMenu.setFont(new java.awt.Font("Tahoma", 0,
14));
transaksiPenjualanMenuItem.setText("Penjualan");
transaksiPenjualanMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
transaksiPenjualanMenuItemActionPerformed(evt);
}
});
transaksiMenu.add(transaksiPenjualanMenuItem);
transaksiPembelianMenuItem.setText("Pembelian");
transaksiPembelianMenuItem.addActionListener(new
public void
actionPerformed(java.awt.event.ActionEvent evt) {
transaksiPembelianMenuItemActionPerformed(evt);
}
});
transaksiMenu.add(transaksiPembelianMenuItem);
transaksiResepMenuItem.setText("Resep");
transaksiResepMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
transaksiResepMenuItemActionPerformed(evt);
}
});
transaksiMenu.add(transaksiResepMenuItem);
mainMenuBar.add(transaksiMenu);
laporanMenu.setText("Laporan");
laporanMenu.setFont(new java.awt.Font("Tahoma", 0,
14));
laporanPenjualanMenuItem.setText("Penjualan");
laporanPenjualanMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
laporanPenjualanMenuItemActionPerformed(evt);
}
});
laporanPembelianMenuItem.setText("Pembelian");
laporanPembelianMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
laporanPembelianMenuItemActionPerformed(evt);
}
});
laporanMenu.add(laporanPembelianMenuItem);
laporanResepMenuItem.setText("Resep");
laporanResepMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
laporanResepMenuItemActionPerformed(evt);
}
});
laporanMenu.add(laporanResepMenuItem);
obatMenuItem.setText("Obat");
obatMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
obatMenuItemActionPerformed(evt);
}
});
laporanMenu.add(obatMenuItem);
distibutorMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
distibutorMenuItemActionPerformed(evt);
}
});
laporanMenu.add(distibutorMenuItem);
kasirMenuItem.setText("Kasir");
kasirMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
kasirMenuItemActionPerformed(evt);
}
});
laporanMenu.add(kasirMenuItem);
mainMenuBar.add(laporanMenu);
helpMenu.setText("Help");
helpMenu.setFont(new java.awt.Font("Tahoma", 0,
14));
aboutMenuItem.setText("About");
aboutMenuItem.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
aboutMenuItemActionPerformed(evt);
}
});
mainMenuBar.add(helpMenu);
setJMenuBar(mainMenuBar);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addComponent(mainDesktopPane,
javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addComponent(mainDesktopPane,
javax.swing.GroupLayout.DEFAULT_SIZE, 279, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void
loginMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
loginDialog.setSize(510, 250);
loginDialog.setVisible(true);
private void
exitMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
System.exit(0);
}
private void
logoutMenuItemActionPerformed(java.awt.event.ActionEvent
evt) {
this.setMenuLogOut();
this.setTitle("Aplkasi Apotik Denai");
}
private void
aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
AboutIFrame aif = new AboutIFrame();
mainDesktopPane.add(aif);
aif.setVisible(true);
}
private void
batalButtonActionPerformed(java.awt.event.ActionEvent evt) {
loginDialog.setVisible(false);
}
private void
loginButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (isValidUser(loginUsernameTextField.getText(),
String.valueOf(loginPasswordPasswordField.getPassword()))) {
try {
this.kasir = new
getConnection()).loadUsername(loginUsernameTextField.getText
());
if (kasir != null) {
setMenuUserLogin(kasir.getAkses());
if (kasir.getAkses() == Kasir.ADMIN) {
this.setTitle("Aplikasi Apotik Denai --
Admin : " + kasir.getNama());
} else if (kasir.getAkses() ==
Kasir.APOTEKER) {
this.setTitle("Aplikasi apotik --
Apoteker : " + kasir.getNama());
} else {
this.setTitle("Aplikasi Apotik Denai --
Kasir : " + kasir.getNama());
}
loginUsernameTextField.setText("");
loginPasswordPasswordField.setText("");
loginDialog.setVisible(false);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
} else {
JOptionPane.showMessageDialog(this, "Kesalahan
login!");
loginUsernameTextField.requestFocusInWindow();
}
private void
masterObatMenuItemActionPerformed(java.awt.event.ActionEvent
evt) {
MasterObatIFrame moif = new MasterObatIFrame();
mainDesktopPane.add(moif);
moif.setVisible(true);
}
private void
masterDistributorMenuItemActionPerformed(java.awt.event.Acti
onEvent evt) {
MasterDistributorIFrame mdif = new
MasterDistributorIFrame();
mainDesktopPane.add(mdif);
mdif.setVisible(true);
}
private void
masterKasirMenuItemActionPerformed(java.awt.event.ActionEven
t evt) {
MasterKasirIFrame mkif = new MasterKasirIFrame();
mainDesktopPane.add(mkif);
mkif.setVisible(true);
}
private void
transaksiPembelianMenuItemActionPerformed(java.awt.event.Act
ionEvent evt) {
TransaksiPembelianIFrame tpif = new
TransaksiPembelianIFrame();
mainDesktopPane.add(tpif);
tpif.setVisible(true);
private void
transaksiResepMenuItemActionPerformed(java.awt.event.ActionE
vent evt) {
TransaksiResepIFrame trif = new
TransaksiResepIFrame(this.kasir);
mainDesktopPane.add(trif);
trif.setVisible(true);
}
private void
transaksiPenjualanMenuItemActionPerformed(java.awt.event.Act
ionEvent evt) {
TransaksiPenjualanInternalFrame tpif = new
TransaksiPenjualanInternalFrame(this.kasir);
mainDesktopPane.add(tpif);
tpif.setVisible(true);
}
private void
laporanPenjualanMenuItemActionPerformed(java.awt.event.Actio
nEvent evt) {
LaporanPenjualanIFrame lpif = new
LaporanPenjualanIFrame();
mainDesktopPane.add(lpif);
lpif.setVisible(true);
}
private void
laporanPembelianMenuItemActionPerformed(java.awt.event.Actio
nEvent evt) {
LaporanPembelianIFrame lpif = new
LaporanPembelianIFrame();
mainDesktopPane.add(lpif);
}
private void
laporanResepMenuItemActionPerformed(java.awt.event.ActionEve
nt evt) {
try {
InputStream is =
getClass().getResourceAsStream("/com/apotik/rep/resep/lapora
nResep.jasper");
JasperPrint jp = JasperFillManager.fillReport(is,
new HashMap(), DBConnection.getInstance().getConnection());
ReportPreview rp = new ReportPreview(jp);
rp.setVisible(true);
} catch (JRException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
private void
obatMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
try {
InputStream is =
getClass().getResourceAsStream("/com/apotik/rep/obat/laporan
Obat.jasper");
JasperPrint jp = JasperFillManager.fillReport(is,
new HashMap(), DBConnection.getInstance().getConnection());
ReportPreview rp = new ReportPreview(jp);
rp.setVisible(true);
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
private void
distibutorMenuItemActionPerformed(java.awt.event.ActionEvent
evt) {
try {
InputStream is =
getClass().getResourceAsStream("/com/apotik/rep/resep/lapora
nResep.jasper");
JasperPrint jp = JasperFillManager.fillReport(is,
new HashMap(), DBConnection.getInstance().getConnection());
ReportPreview rp = new ReportPreview(jp);
rp.setVisible(true);
} catch (JRException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
private void
kasirMenuItemActionPerformed(java.awt.event.ActionEvent evt)
{
InputStream is =
getClass().getResourceAsStream("/com/apotik/rep/kasir/lapora
nKasir.jasper");
JasperPrint jp = JasperFillManager.fillReport(is,
new HashMap(), DBConnection.getInstance().getConnection());
ReportPreview rp = new ReportPreview(jp);
rp.setVisible(true);
} catch (JRException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error " +
ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
try {
UIManager.setLookAndFeel(new
NimbusLookAndFeel());
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
FrameHome rm=new FrameHome();
//code dibawah ini yang harus ditambahkan
sebelum pemanggilan form.
rm.setExtendedState(JFrame.MAXIMIZED_BOTH);
rm.setVisible(true);
}
} catch (UnsupportedLookAndFeelException ex) {
ex.printStackTrace();
}
}
// Variables declaration - do not modify
private javax.swing.JMenuItem aboutMenuItem;
private javax.swing.JButton batalButton;
private javax.swing.JMenuItem distibutorMenuItem;
private javax.swing.JMenuItem exitMenuItem;
private javax.swing.JMenu helpMenu;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JMenuItem kasirMenuItem;
private javax.swing.JMenu laporanMenu;
private javax.swing.JMenuItem laporanPembelianMenuItem;
private javax.swing.JMenuItem laporanPenjualanMenuItem;
private javax.swing.JMenuItem laporanResepMenuItem;
private javax.swing.JButton loginButton;
private javax.swing.JDialog loginDialog;
private javax.swing.JMenuItem loginMenuItem;
private javax.swing.JPasswordField
loginPasswordPasswordField;
private javax.swing.JTextField loginUsernameTextField;
private javax.swing.JMenuItem logoutMenuItem;
private javax.swing.JDesktopPane mainDesktopPane;
private javax.swing.JMenuBar mainMenuBar;
private javax.swing.JMenuItem masterDistributorMenuItem;
private javax.swing.JMenuItem masterKasirMenuItem;
private javax.swing.JMenu masterMenu;
private javax.swing.JMenuItem masterObatMenuItem;
private javax.swing.JMenuItem obatMenuItem;
private javax.swing.JMenu transaksiMenu;
private javax.swing.JMenuItem
transaksiPembelianMenuItem;
private javax.swing.JMenuItem
transaksiPenjualanMenuItem;
private javax.swing.JMenuItem transaksiResepMenuItem;
private javax.swing.JMenu userMenu;
// End of variables declaration
MasterObatIFrame.java
package Apotik.GUI.Interface;
import Apotik.QueryKeMysql.ObatDAO;
import Apotik.DBKoneksi.DBConnection;
import Apotik.Data.Obat;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
public class MasterObatIFrame extends
javax.swing.JInternalFrame {
private List<Obat> records = new ArrayList<Obat>();
private int row = 0;
private int ITEM_KODE = 0;
private int ITEM_NAMA = 1;
private int ITEM_JENIS = 2;
private int ITEM_KEMASAN = 3;
private int ITEM_INDIKASI = 4;
/** Creates new form MasterObatIFrame */
public MasterObatIFrame() {
initComponents();
this.initStatus();
this.loadRecords();
}
private void loadRecords() {
DBConnection conn = DBConnection.getInstance();
ObatDAO dao = new ObatDAO(conn.getConnection());
records = dao.getAll();
this.setFillTable();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error :
"+ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
private void loadRecords(int item, String text) {
try {
DBConnection conn = DBConnection.getInstance();
ObatDAO dao = new ObatDAO(conn.getConnection());
if (item == ITEM_KODE) {
records = dao.getAllKode(text);
} else if (item == ITEM_NAMA) {
records = dao.getAllNama(text);
} else if (item == ITEM_JENIS) {
records = dao.getAllJenis(text);
} else if (item == ITEM_KEMASAN) {
records = dao.getAllKemasan(text);
} else if (item == ITEM_INDIKASI) {
records = dao.getAllIndikasi(text);
} else {
records = dao.getAll();
}
this.setFillTable();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this, "Error :
"+ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
private void initStatus() {
setClearTextField();
setTextFieldEnabled(false);
setPencarianItemEnabled(true);
resetButton.setEnabled(true);
tambahButton.setEnabled(true);
ubahButton.setEnabled(true);
cariButton.setEnabled(true);
this.setClearTable();
jTable1.setEnabled(true);
ubahButton.setText("Ubah");
tambahButton.setText("Tambah");
}
private boolean isTextFieldNotEmpty() {
if (!kodeTextField.getText().isEmpty() &&
!namaTextField.getText().isEmpty() &&
!jenisTextField.getText().isEmpty() &&
!kemasanTextField.getText().isEmpty() &&
!indikasiTextField.getText().isEmpty() &&
!stokTextField.getText().isEmpty() &&
!hargaPokokTextField.getText().isEmpty() &&
!hargaJualTextField.getText().isEmpty() &&
!ppnTextField.getText().isEmpty() &&
!diskonTextField.getText().isEmpty()) {
return true;
} else {
return false;
}
}
private void tambahStatus() {
setTextFieldEnabled(true);
tambahButton.setText("Simpan");
kodeTextField.requestFocusInWindow();
}
private void ubahStatus() {
setTextFieldEnabled(true);
setPencarianItemEnabled(false);
jTable1.setEnabled(false);
tambahButton.setEnabled(false);
cariButton.setEnabled(false);
ubahButton.setText("Simpan");
this.setFillTextField();
kodeTextField.requestFocusInWindow();
}
private void setClearTable() {
jTable1.setModel(new
javax.swing.table.DefaultTableModel(
new Object[][]{
{null, null, null, null, null, null,
null, null, null, null}
},
new String[]{
"Kode", "Nama", "Jenis", "Kemasan",
"Indikasi", "Stok",
"Harga Pokok", "Harga Jual", "PPN",
"Diskon"
}));
}
private void setFillTable() {
Object data[][] = new Object[records.size()][10];
int x = 0;
data[x][0] = obat.getKodeObat();
data[x][1] = obat.getNama();
data[x][2] = obat.getJenis();
data[x][3] = obat.getKemasan();
data[x][4] = obat.getIndikasi();
data[x][5] = obat.getJumlahStok();
data[x][6] = obat.getHargaPokok();
data[x][7] = obat.getHargaJual();
data[x][8] = obat.getPpn();
data[x][9] = obat.getDiskon();
++x;
}
String[] judul = {"Kode", "Nama", "Jenis",
"Kemasan", "Indikasi",
"Stok", "Harga Pokok", "Harga Jual", "PPN",
"Diskon"
};
jTable1.setModel(new DefaultTableModel(data,
judul));
jScrollPane1.setViewportView(jTable1);
}
private void setClearTextField() {
kodeTextField.setText("");
namaTextField.setText("");
jenisTextField.setText("");
kemasanTextField.setText("");
indikasiTextField.setText("");
stokTextField.setText("");
hargaPokokTextField.setText("");
hargaJualTextField.setText("");
ppnTextField.setText("");
diskonTextField.setText("");
private void setFillTextField() {
Obat obat = records.get(jTable1.getSelectedRow());
kodeTextField.setText(obat.getKodeObat());
namaTextField.setText(obat.getNama());
jenisTextField.setText(obat.getJenis());
kemasanTextField.setText(obat.getKemasan());
indikasiTextField.setText(obat.getIndikasi());
stokTextField.setText(String.valueOf(obat.getJumlahStok()));
hargaPokokTextField.setText(String.valueOf(obat.getHargaPoko
k()));
hargaJualTextField.setText(String.valueOf(obat.getHargaJual(
)));
ppnTextField.setText(String.valueOf(obat.getPpn()));
diskonTextField.setText(String.valueOf(obat.getDiskon()));
}
private void setTextFieldEnabled(boolean status) {
kodeTextField.setEnabled(status);
namaTextField.setEnabled(status);
jenisTextField.setEnabled(status);
kemasanTextField.setEnabled(status);
indikasiTextField.setEnabled(status);
stokTextField.setEnabled(status);
hargaPokokTextField.setEnabled(status);
hargaJualTextField.setEnabled(status);
ppnTextField.setEnabled(status);
diskonTextField.setEnabled(status);
private void setPencarianItemEnabled(boolean status) {
itemTextField.setEnabled(status);
kategoriComboBox.setEnabled(status);
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
backgroundForm1 = new View.backgroundForm();
tambahButton = new javax.swing.JButton();
ubahButton = new javax.swing.JButton();
resetButton = new javax.swing.JButton();
panelWarnaTransparan1 = new
View.PanelWarnaTransparan();
ppnTextField = new javax.swing.JTextField();
jLabel10 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
kemasanTextField = new javax.swing.JTextField();
kodeTextField = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
diskonTextField = new javax.swing.JTextField();
namaTextField = new javax.swing.JTextField();
hargaJualTextField = new javax.swing.JTextField();
jLabel5 = new javax.swing.JLabel();
jLabel12 = new javax.swing.JLabel();
jLabel11 = new javax.swing.JLabel();
hargaPokokTextField = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
stokTextField = new javax.swing.JTextField();
indikasiTextField = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jenisTextField = new javax.swing.JTextField();
jScrollPane1 = new View.ScrollPane();
jTable1 = new javax.swing.JTable();
panelWarnaTransparan2 = new
View.PanelWarnaTransparan();
cariButton = new javax.swing.JButton();
itemTextField = new javax.swing.JTextField();
kategoriComboBox = new javax.swing.JComboBox();
jLabel8 = new javax.swing.JLabel();
setTitle("Obat");
tambahButton.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/B
uttonTambah.png"))); // NOI18N
tambahButton.setText("tambah");
tambahButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
tambahButtonActionPerformed(evt);
}
});
ubahButton.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/B
ubahButton.setText("ubah");
ubahButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
ubahButtonActionPerformed(evt);
}
});
resetButton.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/Apotik/ICON/B
uttonRefresh.png"))); // NOI18N
resetButton.setText("reset");
resetButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
resetButtonActionPerformed(evt);
}
});
ppnTextField.setFont(new java.awt.Font("Tahoma", 0,
14));
jLabel10.setFont(new java.awt.Font("Arial", 0, 14));
jLabel10.setText("Harga Jual :");
jLabel6.setFont(new java.awt.Font("Arial", 0, 14));
jLabel6.setText("Stok :");
kemasanTextField.setFont(new java.awt.Font("Tahoma",
kodeTextField.setFont(new java.awt.Font("Tahoma", 0,
14));
jLabel1.setFont(new java.awt.Font("Arial", 0, 14));
jLabel1.setText("Kode :");
jLabel4.setFont(new java.awt.Font("Arial", 0, 14));
jLabel4.setText("Kemasan :");
diskonTextField.setFont(new java.awt.Font("Tahoma",
0, 14));
namaTextField.setFont(new java.awt.Font("Tahoma", 0,
14));
hargaJualTextField.setFont(new
java.awt.Font("Tahoma", 0, 14));
jLabel5.setFont(new java.awt.Font("Arial", 0, 14));
jLabel5.setText("Indikasi :");
jLabel9.setFont(new java.awt.Font("Arial", 0, 14));
jLabel9.setText("Harga Pokok :");
jLabel12.setFont(new java.awt.Font("Arial", 0, 14));
jLabel12.setText("Diskon");
jLabel11.setFont(new java.awt.Font("Arial", 0, 14));
jLabel11.setText("PPN :");
hargaPokokTextField.setFont(new
java.awt.Font("Tahoma", 0, 14));
jLabel2.setText("Nama :");
stokTextField.setFont(new java.awt.Font("Tahoma", 0,
14));
indikasiTextField.setFont(new
java.awt.Font("Tahoma", 0, 14));
jLabel3.setFont(new java.awt.Font("Arial", 0, 14));
jLabel3.setText("Jenis :");
jenisTextField.setFont(new java.awt.Font("Tahoma",
0, 14));
javax.swing.GroupLayout panelWarnaTransparan1Layout
= new javax.swing.GroupLayout(panelWarnaTransparan1);
panelWarnaTransparan1.setLayout(panelWarnaTransparan1Layout)
;
panelWarnaTransparan1Layout.setHorizontalGroup(
panelWarnaTransparan1Layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.LEADING)
.addGroup(panelWarnaTransparan1Layout.createSequentialGroup(
)
.addContainerGap()
.addGroup(panelWarnaTransparan1Layout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel5)
.addComponent(jLabel6)
.addComponent(jLabel9)
.addComponent(jLabel11)
panelWarnaTransparan1Layout.setVerticalGroup(
.addGroup(panelWarnaTransparan1Layout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(kodeTextField,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
UNRELATED)
.addGroup(panelWarnaTransparan1Layout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(namaTextField,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
UNRELATED)
.addGroup(panelWarnaTransparan1Layout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jenisTextField,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
jTable1.setModel(new
javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
jScrollPane1.setViewportView(jTable1);
cariButton.setText("cari");
cariButton.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
cariButtonActionPerformed(evt);
}
});
itemTextField.addActionListener(new
java.awt.event.ActionListener() {
public void
actionPerformed(java.awt.event.ActionEvent evt) {
itemTextFieldActionPerformed(evt);
});
kategoriComboBox.setModel(new
javax.swing.DefaultComboBoxModel(new String[] { "kode",
"nama", "jenis", "kemasan", "indikasi" }));
jLabel8.setText("Kategori :");
javax.swing.GroupLayout panelWarnaTransparan2Layout
= new javax.swing.GroupLayout(panelWarnaTransparan2);
panelWarnaTransparan2.setLayout(panelWarnaTransparan2Layout)
;
panelWarnaTransparan2Layout.setHorizontalGroup(
panelWarnaTransparan2Layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.LEADING)
.addGroup(panelWarnaTransparan2Layout.createSequentialGroup(
)
.addContainerGap()
.addComponent(jLabel8)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED)
.addComponent(kategoriComboBox,
javax.swing.GroupLayout.PREFERRED_SIZE, 114,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED, javax.swing.GroupLayout.DEFAULT_SIZE,
.addComponent(itemTextField,
javax.swing.GroupLayout.PREFERRED_SIZE, 177,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED)
.addComponent(cariButton)
.addContainerGap())
);
panelWarnaTransparan2Layout.setVerticalGroup(
panelWarnaTransparan2Layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.LEADING)
.addGroup(panelWarnaTransparan2Layout.createSequentialGroup(
)
.addContainerGap()
.addGroup(panelWarnaTransparan2Layout.createParallelGroup(ja
vax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cariButton)
.addComponent(itemTextField,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8)
.addComponent(kategoriComboBox,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
javax.swing.GroupLayout backgroundForm1Layout = new
javax.swing.GroupLayout(backgroundForm1);
backgroundForm1.setLayout(backgroundForm1Layout);
backgroundForm1Layout.setHorizontalGroup(
backgroundForm1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
backgroundForm1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(backgroundForm1Layout.createParallelGroup(javax.sw
ing.GroupLayout.Alignment.TRAILING)
.addGroup(backgroundForm1Layout.createSequentialGroup()
.addComponent(tambahButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED)
.addComponent(ubahButton)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.
RELATED)
.addComponent(resetButton))
.addComponent(panelWarnaTransparan1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(backgroundForm1Layout.createParallelGroup(javax.sw
.addComponent(jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE, 423, Short.MAX_VALUE)
.addComponent(panelWarnaTransparan2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
backgroundForm1Layout.setVerticalGroup(
backgroundForm1Layout.createParallelGroup(javax.swing.GroupL
ayout.Alignment.LEADING)
.addGroup(backgroundForm1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(backgroundForm1Layout.createParallelGroup(javax.sw
ing.GroupLayout.Alignment.LEADING)
.addGroup(backgroundForm1Layout.createSequentialGroup()
.addComponent(panelWarnaTransparan2,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(11, 11, 11)
.addComponent(jScrollPane1, 0, 0,
Short.MAX_VALUE))
.addComponent(panelWarnaTransparan1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(backgroundForm1Layout.createParallelGroup(javax.sw
ing.GroupLayout.Alignment.BASELINE)
.addComponent(tambahButton)
.addComponent(ubahButton)
.addComponent(resetButton))
.addContainerGap())
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addComponent(backgroundForm1,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment
.LEADING)
.addComponent(backgroundForm1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
);
pack();
private void
tambahButtonActionPerformed(java.awt.event.ActionEvent evt)
{
if (tambahButton.getText().equals("Tambah")) {
this.tambahStatus();
} else if (tambahButton.getText().equals("Simpan")) {
if (isTextFieldNotEmpty()) {
if (JOptionPane.showConfirmDialog(this, "Yakin
simpan data?", "Konfirmasi", JOptionPane.YES_NO_OPTION) ==
0) {
try {
Obat obat = new Obat();
obat.setKodeObat(kodeTextField.getText());
obat.setNama(namaTextField.getText());
obat.setJenis(jenisTextField.getText());
obat.setKemasan(kemasanTextField.getText());
obat.setIndikasi(indikasiTextField.getText());
obat.setJumlahStok(Integer.parseInt(stokTextField.getText())
);
obat.setHargaPokok(Double.valueOf(hargaPokokTextField.getTex
t()));
obat.setHargaJual(Double.valueOf(hargaJualTextField.getText(
)));
obat.setPpn(Integer.valueOf(ppnTextField.getText()));
DBConnection conn =
DBConnection.getInstance();
ObatDAO dao = new
ObatDAO(conn.getConnection());
dao.insert(obat);
JOptionPane.showMessageDialog(this,
"Data tersimpan!");
this.initStatus();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(this,
"Gagal simpan data!");
}
}
} else {
JOptionPane.showMessageDialog(this, "Semua data
harus diisi!");
kodeTextField.requestFocusInWindow();
}
}
}
private void
resetButtonActionPerformed(java.awt.event.ActionEvent evt) {
this.initStatus();
}
private void
ubahButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (ubahButton.getText().equals("Ubah")) {
this.ubahStatus();
} else if (ubahButton.getText().equals("Simpan")) {
if (isTextFieldNotEmpty()) {
this.setPencarianItemEnabled(true);
this.jTable1.setEnabled(true);
this.cariButton.setEnabled(true);
//ke posisi awal
this.tambahButton.setEnabled(true);
this.ubahButton.setText("Ubah");
this.loadRecords(kategoriComboBox.getSelectedIndex(),
itemTextField.getText());
}
}
private void
itemTextFieldActionPerformed(java.awt.event.ActionEvent evt)
{
}
private void
cariButtonActionPerformed(java.awt.event.ActionEvent evt) {
if (!itemTextField.getText().isEmpty()) {
loadRecords(kategoriComboBox.getSelectedIndex(),
itemTextField.getText());
} else {
this.loadRecords();
}
}
// Variables declaration - do not modify
private View.backgroundForm backgroundForm1;
private javax.swing.JButton cariButton;
private javax.swing.JTextField diskonTextField;
private javax.swing.JTextField hargaJualTextField;
private javax.swing.JTextField hargaPokokTextField;
private javax.swing.JTextField itemTextField;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private View.ScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTextField jenisTextField;
private javax.swing.JComboBox kategoriComboBox;
private javax.swing.JTextField kemasanTextField;
private javax.swing.JTextField kodeTextField;
private javax.swing.JTextField namaTextField;
private View.PanelWarnaTransparan panelWarnaTransparan1;
private View.PanelWarnaTransparan panelWarnaTransparan2;
private javax.swing.JTextField ppnTextField;
private javax.swing.JButton resetButton;
private javax.swing.JTextField stokTextField;
private javax.swing.JButton tambahButton;
private javax.swing.JButton ubahButton;
// End of variables declaration