r,
kon.setkoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
System.out.println(ex);
}
3. Klik kanan pada JButton bt_keluar, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
110
2.3.2. Form_Laporan_PengeluaranPeriode
a. Desain Laporan Pengeluaran Periode
Gambar 2.63. desain laporan pengeluaran periode
No Komponen Propertis
1 JDateChooser Change Variable Name : dctglawal
2 JDateChooser Change Variable Name : dctglakhir
3 JButton Edit Text : Cetak
Change Variable Name : btcetakperiode
4 JComboBox Change Variable Name : cmbbulan
5 JYearChooser Change Variable Name : yctahun
1 2
3
4 5 6
7
111
6 JButton Edit Text : Cetak
Change Variable Name : btcetakbulan
7 JButton Edit Text : Keluar
Change Variable Name : bt_keluar
b. Running Laporan Pengeluaran Periode
Gambar 2.64. laporan pengeluaran periode
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
112
*/
package gudang;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
/**
*
* @author Pannugroho
*/
public class Form_Laporan_PengeluaranPeriode extends javax.swing.JFrame {
koneksi kon=new koneksi();
JasperReport jasperReport;
JasperDesign jasperDesign;
JasperPrint jasperPrint;
113
/**
* Creates new form Form_Laporan_PengeluaranPeriode
*/
public Form_Laporan_PengeluaranPeriode() {
initComponents();
kon.setkoneksi();
}
/**
* 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")
1. Klik kanan pada JButton btcetakperiode, pilih Event-Action-Action
Performed, ketik Script berikut :
private void btcetakperiodeActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
114
String tgl1 = new SimpleDateFormat("yyyy-MM-
dd").format(dctglawal.getDate());
String tgl2 = new SimpleDateFormat("yyyy-MM-
dd").format(dctglakhir.getDate());
try {
String NamaFile = "src/gudang/Laporan_Pengeluaran_pertanggal.jasper";
HashMap parameter = new HashMap();
parameter.put("tgl_awal", tgl1);
parameter.put("tgl_akhir", tgl2);
JasperPrint print = JasperFillManager.fillReport(NamaFile, parameter,
kon.setkoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
System.out.println(ex);
}
2. Klik kanan pada JButton btcetakbulan, pilih Event-Action-Action Performed,
ketik Script berikut :
private void btcetakbulanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
115
try {
String NamaFile = "src/gudang/Laporan_Pengeluaran_Perbulan.jasper";
HashMap parameter = new HashMap();
parameter.put("bulan", cmbbulan.getSelectedItem());
parameter.put("tahun", yctahun.getYear());
JasperPrint print = JasperFillManager.fillReport(NamaFile, parameter,
kon.setkoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
System.out.println(ex);
}
3. Klik kanan pada JButton bt_keluar, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
116
2.3.3.Membuat Form Laporan Transaksi Periode
a. Desain Form Laporan Transaksi Periode
Gambar 2.65 komponen laporan transakso periode
No Komponen Propertis
1 JDateChooser Change Variable Name : dctglawal
2 JDateChooser Change Variable Name : dctglakhir
3 JButton Edit Text : Cetak
Change Variable Name :
btcetakperiode
4 JComboBox Change Variable Name : cmbbulan
5 JYearChooser Change Variable Name : yctahun
1 2
3
4 5
6
7
117
6 JButton Edit Text : Cetak
Change Variable Name : btcetakbulan
7 JButton Edit Text : Keluar
Change Variable Name : bt_keluar
b. Running Laporan Transaksi Periode
Gambar 2.66. running laporan transaksi periode
Ketik Scrip method-method dibawah ini :
118
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;
import java.text.SimpleDateFormat;
import java.io.File;
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
/**
119
*
* @author Pannugroho
*/
public class Form_Laporan_TransaksiPeriode extends javax.swing.JFrame {
koneksi kon=new koneksi();
JasperReport jasperReport;
JasperDesign jasperDesign;
JasperPrint jasperPrint;
/**
* Creates new form Form_Laporan_TransaksirPeriode
*/
public Form_Laporan_TransaksiPeriode() {
initComponents();
kon.setkoneksi();
}
/**
* This method is called from within the constructor to initialize the form.
120
* WARNING: Do NOT modify this code. The content of this method is
always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
1. Klik kanan pada JButton btcetakperiode, pilih Event-Action-Action
Performed, ketik Script berikut :
private void btcetakperiodeActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
String tgl1 = new SimpleDateFormat("yyyy-MM-
dd").format(dctglawal.getDate());
String tgl2 = new SimpleDateFormat("yyyy-MM-
dd").format(dctglakhir.getDate());
try {
String NamaFile = "src/gudang/Laporan_Transaksi_Pertanggal.jasper";
HashMap parameter = new HashMap();
parameter.put("tgl_awal", tgl1);
parameter.put("tgl_akhir", tgl2);
121
JasperPrint print = JasperFillManager.fillReport(NamaFile, parameter,
kon.setkoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
System.out.println(ex);
}
}
2. Klik kanan pada JButton btcetakbulan, pilih Event-Action-Action
Performed, ketik Script berikut :
private void btcetakbulanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try {
String NamaFile = "src/gudang/Laporan_Transaksi_Perbulan.jasper";
HashMap parameter = new HashMap();
parameter.put("bulan", cmbbulan.getSelectedItem());
parameter.put("tahun", yctahun.getYear());
JasperPrint print = JasperFillManager.fillReport(NamaFile, parameter,
kon.setkoneksi());
JasperViewer.viewReport(print, false);
} catch (Exception ex) {
122
System.out.println(ex);
}
}
3. Klik kanan pada JButton bt_keluar, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
2.3.4. Membuat Form Ganti Password
Form aplikasi Ganti Password digunakan untuk merubah password user
yang sedang login. Langkah – langkah dalam membuat form aplikasi Ganti
Password adalah sebagai berikut :
1. Masih dalam package aplikasi_perpustakaan, buat form baru dengan
jDialog Form. Beri nama form dengan nama : Aplikasi_RePassword
2. Desain tampilan form seperti dibawah ini :
Gambar 2.67 komponen form ganti password
1
2
2
3
4
5
6
123
3. Running Form Password
Gambar 2.68 running ganti password
Spesifikasi properties komponen form aplikasi_RePassword :
No Komponen Properties
1 JTextField Change Variable Name : tkode_user
2 JPasswordField Change Variable Name : tpassLama
3 JPasswordField Change Variable Name : tpassBaru
4 JPasswordField Change Variable Name : tkonfirmPass
5 JButton Edit Text : Ok
Change Variable Name : btok
6 JButton Edit Text : Keluar
Change Variable Name : btkeluar
124
Logika jalannya program :
1. Pertama run yang aktif hanya password lama. Kode user akan otomatis
terisi sesuai dengan login.
2. Jika JPasswordField tpassLama diisi dengan password yang benar maka
jPasswordField tpassbaru akan aktif dan setelah diisi, JPasswordField
tkonfirmPass aktif lalu isi dengan password baru yang baru dibuat, setelah
itu klik JButton tb_RESET maka password kita yang lama telah diganti
dengan yang baru.
3. Klik JButton tb_KELUAR maka Form aplikasi_RePassword akan
tertutup.
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.io.File;
import javax.swing.JOptionPane;
import java.sql.*;
import javax.swing.*;
125
import java.awt.event.KeyEvent;
/**
*
* @author Pannugroho
*/
public class Form_Ganti_Password extends javax.swing.JFrame {
koneksi kon = new koneksi();
/**
* Creates new form Form_Ganti_Password
*/
public Form_Ganti_Password() {
initComponents();
kon.setkoneksi();
}
public String Kode_User;
public String getKodeUser()
{
return Kode_User;
126
}
void nonaktif()
{
tkode_user.setEnabled(false);
tpassLama.setEnabled(false);
tpassBaru.setEnabled(false);
tkonfirmPass.setEnabled(false);
}
void bersih()
{
tpassLama.setText("");
tpassBaru.setText("");
tkonfirmPass.setText("");
}
private void passlama()
{
127
try{
String sql = "select *from tb_user where id_user
='"+tkode_user.getText()+"' AND password=MD5('"+ tpassLama.getText()+"')";
kon.rs = kon.st.executeQuery(sql);
if (kon.rs.next()) {
//JoptionPane.showMessageDialog(null."Kode Barang
ditemukan, silakan
tpassBaru.setEnabled(true);
tpassBaru.requestFocus();
} else {
JOptionPane.showMessageDialog(null, "Kode User tidak ada,
Silakan"
+"Isi Data");
tpassLama.requestFocus();
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
128
private void konfirmpassword()
{
try{
if(tkonfirmPass.getText().equals(tpassBaru.getText()))
{
String sql = "update tb_user set password =
MD5('"+tkonfirmPass.getText()+"') where id_user='"+ tkode_user.getText()+"'";
kon.st.executeUpdate(sql);
JOptionPane.showMessageDialog(null, "Password
telah terupdate");
nonaktif();
bersih();
}
else {
JOptionPane.showMessageDialog(null, "Password baru
dan konfirmasi"
+"password harus sama");
nonaktif();
129
bersih();
}
} catch(SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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.
*/
1. Klik kanan pada JFrame, pilih Event-Window-WindowActivated, ketik
Script berikut :
private void formWindowActivated(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
tkode_user.setText(Kode_User);
nonaktif();
tpassLama.setEnabled(true);
}
2. Klik kanan pada JPasswordField tpassLama, pilih Event-Action-Action
Performed, ketik Script berikut :
130
private void tpassLamaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
passlama();
}
3. Klik kanan pada JPasswordField tpassBaru, pilih Event-Action-Action
Performed, ketik Script berikut :
private void tpassBaruActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
tkonfirmPass.setEnabled(true);
tkonfirmPass.requestFocus();
}
4. Klik kanan pada JPasswordField tkonfirmPass, pilih Event-Key-
KeyPressed, ketik Script berikut :
private void tkonfirmPassKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_ENTER)
{
konfirmpassword();
}
}
5. Klik kanan pada JButton btok, pilih Event-Action-Action Performed, ketik
Script berikut :
private void btokActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
konfirmpassword();
131
}
6. Klik kanan pada JButton btkeluar, pilih Event-Action-Action Performed,
ketik Script berikut :
private void btkeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
2.3.5. Membuat Stok Barang MinimalPM
a. Desain Form Stok Barang MinimalPM
Gambar 2.69 desain stok barang minimal
b. Running Form Stok Barang Minimal PM
Gambar 2.70 running stock barang minimal
132
Spesifikasi properties komponen form aplikasi_RePassword :
No Komponen Properties
1 JTabel Change Variable Name : tbl_barang
Ketik sript koneksi dan pembuatan Variable seperti dibawah ini :
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Pannugroho
*/
public class Form_Stok_Barang_MinimalPM extends javax.swing.JDialog {
koneksi kon=new koneksi();
public Form_Penerimaan_Barang barang1 = null;
private Object [][] databarang=null;
private String[]label={"KODE BARANG","NAMA KATEGORI","NAMA
BARANG","STOK","MIN.STOK"};
/**
* Creates new form Form_Stok_Barang_MinimalPM
*/
133
public Form_Stok_Barang_MinimalPM(java.awt.Frame parent, boolean
modal) {
super(parent, modal);
initComponents();
kon.setkoneksi();
BacaTabelBarang();
}
private void BacaTabelBarang()
{
try
{
String sql="Select *From tb_barang where stok < min_stok";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while (kon.rs.next())
{
baris=kon.rs.getRow();
}
databarang=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
databarang[x][0] = kon.rs.getString("kd_brg");
databarang[x][1] = kon.rs.getString("nm_kategori");
databarang[x][2] = kon.rs.getString("nm_brg");
databarang[x][3] = kon.rs.getString("stok");
databarang[x][4] = kon.rs.getString("min_stok");
134
x++;
}
tbl_barang.setModel(new DefaultTableModel(databarang,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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")
1. Klik kanan pada JTabel, pilih Event-Mouse-MouseCliked, ketik Script
berikut :
private void tbl_barangMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int tabelbarang = tbl_barang.getSelectedRow();
barang1.KdBrg = tbl_barang.getValueAt(tabelbarang, 0).toString();
barang1.NmKategori = tbl_barang.getValueAt(tabelbarang,
1).toString();
barang1.NmBrg = tbl_barang.getValueAt(tabelbarang, 2).toString();
this.dispose();
}
135
2.3.6. Membuat Form Stok Barang Minimal
1. Klik kanan pada package gudang-New-JFrame Form
2. Isi Class Name : Form_Stok_Barang_Minimal –Finish
Gambar 2.71 membuat JFrame baru
136
a. Desain
Desain Form Stok Barang Minimal Running Form Stok Barang Minimal
Gambar 2.72 Desain form stock barang minimal
b. Source Code
Gambar 2.72 komponen stock barang minimal
No Komponen Propertis
1 JTable Change Variable Name : tbl_barang
137
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Pannugroho
*/
public class Form_Stok_Barang_MinimalPM extends javax.swing.JDialog {
koneksi kon=new koneksi();
public Form_Penerimaan_Barang barang1 = null;
private Object [][] databarang=null;
private String[]label={"KODE BARANG","NAMA
KATEGORI","NAMA BARANG","STOK","MIN.STOK"};
/**
* Creates new form Form_Stok_Barang_MinimalPM
*/
public Form_Stok_Barang_MinimalPM(java.awt.Frame parent, boolean
modal) {
super(parent, modal);
initComponents();
138
kon.setkoneksi();
BacaTabelBarang();
}
private void BacaTabelBarang()
{
try
{
String sql="Select *From tb_barang where stok < min_stok";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while (kon.rs.next())
{
baris=kon.rs.getRow();
}
databarang=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
databarang[x][0] = kon.rs.getString("kd_brg");
databarang[x][1] = kon.rs.getString("nm_kategori");
databarang[x][2] = kon.rs.getString("nm_brg");
databarang[x][3] = kon.rs.getString("stok");
databarang[x][4] = kon.rs.getString("min_stok");
x++;
}
tbl_barang.setModel(new DefaultTableModel(databarang,label));
}
139
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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")
3. Klik kanan padaTabel, pilih Event-Mouse-MouseClicked, ketik Script
berikut :
private void tbl_barang8MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int tabelbarang = tbl_barang.getSelectedRow();
barang1.KdBrg = tbl_barang.getValueAt(tabelbarang, 0).toString();
barang1.NmKategori = tbl_barang.getValueAt(tabelbarang, 1).toString();
barang1.NmBrg = tbl_barang.getValueAt(tabelbarang, 2).toString();
this.dispose();
}
2.3.7. Membuat Form Transaksi Inventory
1. Klik kanan pada package gudang-New-JFrame Form
2. Isi Class Name : Form_Transaksi_Inventory-Finish
140
Gambar 2.73. membuat JFrame baru
a. Desain
Gambar 2.74 Desain form transaksi inventory
Desain Form Transaksi
Inventory
Running Form Transaksi
Inventory
141
b. Source Code
Gambar 2.74 komponen transaksi inventory
No Komponen Propertis
1 JTextField Change Variable Name : tid_order
2 JTextField Change Variable Name : ttgl_order
3 JTextField Change Variable Name : tid_user
4 JTextField Change Variable Name : tkd_brg
5 JButton Edit Text : ...
Change Variable Name : bt_browse
6 JTextField Change Variable Name : tnm_kategori
7 JTextField Change Variable Name : tnm_brg
8 JTextField Change Variable Name : tjml_order
9 JTable Change Variable Name : tbl_order
10 JButton Edit Text : Tambah
Change Variable Name : bt_tambah
142
11 JButton Edit Text : Insert
Change Variable Name : bt_insert
12 JButton Edit Text : Print
Change Variable Name : bt_print
13 JButton Edit Text : Update
Change Variable Name : bt_update
14 JButton Edit Text : Hapus
Change Variable Name : bt_hapus
15 JButton Edit Text : Batal
Change Variable Name : bt_batal
16 JButton Edit Text : Tutup
Change Variable Name : bt_keluar
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import javax.swing.*;
143
import javax.swing.table.DefaultTableModel;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author Pannugroho
*/
public class Form_Transaksi_Inventory extends javax.swing.JFrame {
koneksi kon=new koneksi();
private Object [][] datasementara=null;
private String[]label={"KODE BARANG","NAMA
KATEGORI","NAMA BARANG","JML ORDER"};
/**
* Creates new form Form_Transaksi_Inventory
*/
public Form_Transaksi_Inventory() {
initComponents();
kon.setkoneksi();
nonaktif();
}
public String kode;
public String getNik()
{
return kode;
}
public String KdBrg;
public String NmKategori;
144
public String NmBrg;
private void Bersih(){
ttgl_order.setText("");
tid_user.setText("");
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml_order.setText("");
}
private void aktif(){
tid_order.setEnabled(true);
ttgl_order.setEnabled(true);
tid_user.setEnabled(true);
tkd_brg.setEnabled(true);
tnm_kategori.setEnabled(true);
tnm_brg.setEnabled(true);
tjml_order.setEnabled(true);
bt_insert.setEnabled(true);
bt_update.setEnabled(true);
bt_hapus.setEnabled(true);
bt_print.setEnabled(true);
bt_batal.setEnabled(true);
bt_browse.setEnabled(true);
}
private void nonaktif(){
tid_order.setEnabled(false);
ttgl_order.setEnabled(false);
145
tid_user.setEnabled(false);
tkd_brg.setEnabled(false);
tnm_kategori.setEnabled(false);
tnm_brg.setEnabled(false);
tjml_order.setEnabled(false);
bt_insert.setEnabled(false);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_print.setEnabled(false);
bt_batal.setEnabled(false);
bt_browse.setEnabled(false);
}
private void NoOrder()
{
try
{
String sql_no = "select *from tb_order_inventory order by
id_order desc";
kon.setkoneksi();
ResultSet rs = kon.st.executeQuery(sql_no);
if (rs.next())
{
String NoPas = rs.getString("id_order").substring(18);
String AN = "" + (Integer.parseInt(NoPas)+1);
String No1 = "";
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat2=new SimpleDateFormat
("dd.MM.yyyy");
146
String tanggal2=dateformat2.format(date);
if(AN.length()==1)
{No1 = "00";}
else if(AN.length()==2)
{No1 = "0";}
else if(AN.length()==3)
{No1 = "";}
tid_order.setText("ID/OR/"+tanggal2+"/"+No1 + AN);
}
else
{
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat2=new SimpleDateFormat
("dd.MM.yyyy");
String tanggal2=dateformat2.format(date);
tid_order.setText("ID/OR/"+tanggal2+"/"+"001");
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void setTable(){
int row=tbl_order.getSelectedRow();
tkd_brg.setText((String)tbl_order.getValueAt(row,0));
tnm_kategori.setText((String)tbl_order.getValueAt(row,1));
tnm_brg.setText((String)tbl_order.getValueAt(row,2));
147
tjml_order.setText((String)tbl_order.getValueAt(row,3));
}
private void EditData(){
try{
String sql="Update tb_sementara_orderinventory set
kd_brg='"+tkd_brg.getText()+"',"
+ "nm_kategori='"+tnm_kategori.getText()+"',"
+ "nm_brg='"+tnm_brg.getText()+"',"
+ "jml_order='"+tjml_order.getText()+"'"
+ "where kd_brg='"+tkd_brg.getText()+"'";
kon.st.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Data berhasil
diupdate");
TampilanTabelSementara();
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml_order.setText("");
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,e);
}
}
private void TampilanTabelSementara()
{
try
{
148
String sql="Select *From tb_sementara_orderinventory order by
kd_brg";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while(kon.rs.next())
{
baris=kon.rs.getRow();
}
datasementara=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
datasementara[x][0]=kon.rs.getString("kd_brg");
datasementara[x][1]=kon.rs.getString("nm_kategori");
datasementara[x][2]=kon.rs.getString("nm_brg");
datasementara[x][3]=kon.rs.getString("jml_order");
x++;
}
tbl_order.setModel(new
DefaultTableModel(datasementara,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
149
private void TampilDataBarang()
{
try{
String sql="select *from tb_barang where kd_brg='"
+tkd_brg.getText()+"'";
kon.rs=kon.st.executeQuery(sql);
if(kon.rs.next())
{
tnm_kategori.setText(kon.rs.getString("nm_kategori"));
tnm_brg.setText(kon.rs.getString("nm_brg"));
}
else
{
JOptionPane.showMessageDialog(null, "Kode
Barang"+tkd_brg.getText()+"tidak ditemukan");
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void SimpanSementara()
{
try
{
String sql="insert into tb_sementara_orderinventory
values('"+tkd_brg.getText()+"',"
150
+ "'"+tnm_kategori.getText()+"',"
+ "'"+tnm_brg.getText()+"',"
+ "'"+tjml_order.getText()+"')";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void HapusIsiSementara()
{
int row=tbl_order.getSelectedRow();
try
{
String sql="Delete from tb_sementara_orderinventory where
kd_brg='"+(String)tbl_order.getValueAt(row,0)+"'";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e);
}
}
private void setTanggalskr()
{
java.util.Date skrg = new java.util.Date();
151
java.text.SimpleDateFormat tgl = new
java.text.SimpleDateFormat("yyyy-MM-dd");
ttgl_order.setText(tgl.format(skrg));
}
private void SimpanOrder()
{
try
{
String sql="insert into tb_order_inventory
values('"+tid_order.getText()+"',"
+ "'"+ttgl_order.getText()+"',"
+ "'"+tid_user.getText()+"')";
kon.st.executeUpdate(sql);
String detail="insert tb_detail_orderinventory select
'"+tid_order.getText()+"',"
+"kd_brg,jml_order from tb_sementara_orderinventory";
kon.st.executeUpdate(detail);
Bersih();
}
catch(SQLException e)
{
System.out.println("koneksi gagal"+e.toString());
}
}
private void HapusTabelSementara()
{
try
152
{
String sql="Delete from tb_sementara_orderinventory";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void cetakstruk()
{
try
{
String file = "src/gudang/PO.jasper";
HashMap param = new HashMap();
param.put("idorder",tid_order.getText());
JasperPrint print =
JasperFillManager.fillReport(file,param,kon.setkoneksi())
;
JasperViewer.viewReport(print,false);
}
catch (Exception e) {
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
/**
153
* 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")
1. Klik kanan pada Kode Barang, pilih Event-Action-Action Performed,
ketik Script berikut :
private void tkd_brgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TampilDataBarang();
}
2. Klik kanan pada Button Browser, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_browseActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
boolean closable = true;
Form_Stok_Barang_Minimal databarang=new
Form_Stok_Barang_Minimal(null, closable);
databarang.barang = this;
databarang.setVisible(true);
databarang.setResizable(true);
tkd_brg.setText(KdBrg);
tnm_kategori.setText(NmKategori);
tnm_brg.setText(NmBrg);
tjml_order.setEnabled(true);
bt_insert.setEnabled(true);
154
}
3. Klik kanan pada Tabel, pilih Event-Mouse-MouseClicked, ketik Script
berikut :
private void tbl_orderMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
aktif();
tkd_brg.setEnabled(true);
bt_update.setEnabled(true);
bt_hapus.setEnabled(true);
bt_tambah.setEnabled(false);
bt_insert.setEnabled(false);
setTable();
}
4. Klik kanan pada Button Tambah, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt)
{
NoOrder();
setTanggalskr();
bt_batal.setEnabled(true);
bt_tambah.setEnabled(false);
bt_print.setEnabled(true);
bt_browse.setEnabled(true);
tid_order.setEnabled(true);
ttgl_order.setEnabled(true);
tid_user.setEnabled(true);
tkd_brg.setEnabled(true);
tnm_kategori.setEnabled(true);
tnm_brg.setEnabled(true);
155
}
5. Klik kanan pada Button Print, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_printActionPerformed(java.awt.event.ActionEvent evt) {
SimpanOrder();
bt_tambah.setEnabled(true);
JOptionPane.showMessageDialog(this,"Berhasil disimpan",
"Informasi",JOptionPane.INFORMATION_MESSAGE);
TampilanTabelSementara();
cetakstruk();
HapusTabelSementara();
nonaktif();
Bersih();
TampilanTabelSementara();
tid_order.setText("");
}
6. Klik kanan pada Button Hapus, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt)
{
HapusIsiSementara();
}
7. Klik kanan pada Button Insert, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_insertActionPerformed(java.awt.event.ActionEvent evt) {
try
{
String sql="select *from tb_sementara_orderinventory where
kd_brg='" +tkd_brg.getText()+ "'";
kon.rs=kon.st.executeQuery(sql);
156
if(kon.rs.next())
{
JOptionPane.showMessageDialog(this,"Kode Sudah
Dipilih...","Informasi", JOptionPane.INFORMATION_MESSAGE);
bt_browse.requestFocus();
tkd_brg.setText("");
}
else
{
SimpanSementara();
tkd_brg.requestFocus();
tkd_brg.setText("");
tjml_order.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml_order.setText("");
if (JOptionPane.showConfirmDialog(this, "Mau Tambah
Barang?", "konfirmasi", JOptionPane.YES_NO_OPTION) ==
JOptionPane.YES_OPTION) {
}
else
{
bt_print.requestFocus();
}
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
157
}
8. Klik kanan pada Button Update, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_updateActionPerformed(java.awt.event.ActionEvent evt)
{
EditData();
tkd_brg.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_tambah.setEnabled(false);
bt_insert.setEnabled(true);
bt_keluar.setEnabled(true);
}
9. Klik kanan pada Button Batal, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_batalActionPerformed(java.awt.event.ActionEvent evt) {
nonaktif();
HapusTabelSementara();
Bersih();
bt_tambah.setEnabled(true);
}
10. Klik kanan pada Button Tutup, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt)
{
HapusTabelSementara();
dispose();
}
158
2.3.8. Membuat Form Data Barang Keluar
1. Klik kanan pada package gudang-New-JFrame Form Isi Class Name :
Form_Data_Barang_Keluar -Finish
Gambar 2.75 membuat JFrame baru
159
a. Desain
Gambar 2.76 desain form data barang keluar
b. Source Code
Gambar 2.76. komponen data barang keluar
Desain Form Data Barang Keluar Running Form Data Barang Keluar
1
2
160
Spesifikasi properties komponen form aplikasi_RePassword :
No Komponen Properties
1 jTextField Change Variable Name : tcari
2 jTabel Change Variable Name : tbl_barang
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.sql.*;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Pannugroho
*/
public class Form_Data_Barangkeluar extends javax.swing.JDialog {
koneksi kon=new koneksi();
public Form_Pengeluaran_Barang barang1 = null;
private Object [][] databarang=null;
private String[]label={"KODE BARANG","NAMA
KATEGORI","NAMA BARANG","STOK","MIN.STOK"};
161
/**
* Creates new form Form_Data_Barangkeluar
*/
public Form_Data_Barangkeluar(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
kon.setkoneksi();
BacaTabelBarang();
}
private void BacaTabelBarang()
{
try
{
String sql="Select *From tb_barang order by kd_brg";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while (kon.rs.next())
{
baris=kon.rs.getRow();
}
databarang=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
databarang[x][0] = kon.rs.getString("kd_brg");
databarang[x][1] = kon.rs.getString("nm_kategori");
databarang[x][2] = kon.rs.getString("nm_brg");
162
databarang[x][3] = kon.rs.getString("stok");
databarang[x][4] = kon.rs.getString("min_stok");
x++;
}
tbl_barang.setModel(new DefaultTableModel(databarang,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void CariTabelBarang()
{
try
{
String sql="select *from tb_barang where kd_brg like '%"
+tcari.getText()+"%'"
+ "or nm_kategori like '%" +tcari.getText()+"%'"
+ "or nm_brg like '%" +tcari.getText()+"%'";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while(kon.rs.next()){
baris=kon.rs.getRow();
}
databarang=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
163
while(kon.rs.next())
{
databarang[x][0] = kon.rs.getString("kd_brg");
databarang[x][1] = kon.rs.getString("nm_kategori");
databarang[x][2] = kon.rs.getString("nm_brg");
databarang[x][3] = kon.rs.getString("stok");
databarang[x][4] = kon.rs.getString("min_stok");
x++;
}
tbl_barang.setModel(new DefaultTableModel(databarang,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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")
2. Klik kanan pada Kolom Cari Barang, pilih Event-Key-KeyTyped, ketik
Script berikut :
private void tcariKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
CariTabelBarang();
164
}
3. Klik kanan pada Tabel Barang, pilih Event-Mouse-MouseClicked, ketik
Script berikut :
private void tbl_barangMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int tabelbarang = tbl_barang.getSelectedRow();
barang1.KdBrg = tbl_barang.getValueAt(tabelbarang, 0).toString();
barang1.NmKategori = tbl_barang.getValueAt(tabelbarang,
1).toString();
barang1.NmBrg = tbl_barang.getValueAt(tabelbarang, 2).toString();
this.dispose();
}
2.3.9. Membuat Form Pengeluaran Barang
1. Klik kanan pada package gudang-New-JFrame Form
2. Isi Class Name : Form_Pengeluaran_Barang -Finish
Gambar 2.77. membuat JFrame baru
165
a. Desain
Gambar 2.78 desain form pengeluaran barang
b. Source Code
Gambar 2.79 komponen form pengeluaran barang
Desain Form Pengeluaran Barang Running Form Pengeluaran Barang
166
No Komponen Properties
1 JTextField Change Variable Name : tid_keluar
2 JTextField Change Variable Name : ttgl_keluar
3 JTextField Change Variable Name : tid_user
4 JTextField Change Variable Name : tkd_brg
5 JButton Edit Text : ...
Change Variable Name : tb_browse
6 JTextField Change Variable Name : tnm_kategori
7 JTextField Change Variable Name : tnm_brg
8 JTextField Change Variable Name : tjml
9 JTextField Change Variable Name : tjml_awal
10 JTabel Change Variable Name : tbl_penerimaan
11 JButton Edit Text : Tambah
Change Variable Name : bt_tambah
12 JButton Edit Text : Insert
Change Variable Name : bt_insert
13 JButton Edit Text : Update
Change Variable Name : bt_update
14 JButton Edit Text : Simpan
Change Variable Name : bt_simpan
15 JButton Edit Text : Hapus
167
Change Variable Name : bt_hapus
16 JButton Edit Text : Tutup
Change Variable Name : bt_keluar
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
import java.awt.event.KeyEvent;
import java.sql.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Pannugroho
*/
public class Form_Pengeluaran_Barang extends javax.swing.JFrame {
koneksi kon=new koneksi();
private Object [][] datasementara=null;
private String[]label={"KODE BARANG","NAMA
KATEGORI","NAMA BARANG","JUMLAH"};
private String ubah;
/**
168
* Creates new form Form_Pengeluaran_Barang
*/
public Form_Pengeluaran_Barang() {
initComponents();
kon.setkoneksi();
nonaktif();
}
public String kode;
public String getNik()
{
return kode;
}
public String KdBrg;
public String NmKategori;
public String NmBrg;
private void Bersih(){
tid_keluar.setText("");
ttgl_keluar.setText("");
tid_user.setText("");
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
private void aktif(){
ttgl_keluar.setEnabled(true);
tid_keluar.setEnabled(true);
169
tjml_awal.setVisible(false);
tid_user.setEnabled(true);
tkd_brg.setEnabled(true);
tnm_brg.setEnabled(true);
tnm_kategori.setEnabled(true);
tjml.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_simpan.setEnabled(true);
tb_browse.setEnabled(true);
bt_insert.setEnabled(true);
bt_tambah.setEnabled(false);
}
private void nonaktif(){
ttgl_keluar.setEnabled(false);
tid_keluar.setEnabled(false);
tjml_awal.setVisible(false);
tid_user.setEnabled(false);
tkd_brg.setEnabled(false);
tnm_brg.setEnabled(false);
tnm_kategori.setEnabled(false);
tjml.setEnabled(false);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_simpan.setEnabled(false);
bt_insert.setEnabled(false);
tb_browse.setEnabled(false);
}
170
private void setTable(){
int row=tbl_penerimaan.getSelectedRow();
tkd_brg.setText((String)tbl_penerimaan.getValueAt(row,0));
tnm_kategori.setText((String)tbl_penerimaan.getValueAt(row,1));
tnm_brg.setText((String)tbl_penerimaan.getValueAt(row,2));
tjml_awal.setText((String)tbl_penerimaan.getValueAt(row,3));
}
private void NoKeluar()
{
try {
String sql_no= "select right(id_keluar,3)as no, mid(id_keluar,4,4)
as periode from tb_pengeluaran_barang";
kon.setkoneksi();
ResultSet rs = kon.st.executeQuery(sql_no);
if (rs.next()){
rs.last();
int no = Integer.parseInt(rs.getString("no"))+1;
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat1=new SimpleDateFormat
("MM.yy");
String tanggal=dateformat1.format(date);
if(no<10)
tid_keluar.setText("ID/KB-
"+tanggal+"/000"+Integer.toString(no));
else if(no<100)
171
tid_keluar.setText("ID/KB-
"+tanggal+"/00"+Integer.toString(no));
else if(no<1000)
tid_keluar.setText("ID/KB-
"+tanggal+"/0"+Integer.toString(no));
else
tid_keluar.setText("ID/KB-
"+tanggal+"/"+Integer.toString(no));
}
else
{
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat1=new SimpleDateFormat
("MM.yy");
String tanggal=dateformat1.format(date);
tid_keluar.setText("ID/KB-"+tanggal+"/0001");
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void TampilanTabelSementara()
{
try
{
String sql="Select *From tb_sementara_pengeluaran order by
kd_brg";
kon.rs=kon.st.executeQuery(sql);
172
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while(kon.rs.next())
{
baris=kon.rs.getRow();
}
datasementara=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
datasementara[x][0]=kon.rs.getString("kd_brg");
datasementara[x][1]=kon.rs.getString("nm_kategori");
datasementara[x][2]=kon.rs.getString("nm_brg");
datasementara[x][3]=kon.rs.getString("jml");
x++;
}
tbl_penerimaan.setModel(new
DefaultTableModel(datasementara,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void TampilDataBarang()
{
173
try{
String sql="select *from tb_barang where kd_brg='"
+tkd_brg.getText()+"'";
kon.rs=kon.st.executeQuery(sql);
if(kon.rs.next())
{
tnm_kategori.setText(kon.rs.getString("nm_kategori"));
tnm_brg.setText(kon.rs.getString("nm_brg"));
}
else
{
JOptionPane.showMessageDialog(null, "Kode
Barang"+tkd_brg.getText()+"tidak ditemukan");
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void SimpanSementara()
{
try
{
String sql="insert into tb_sementara_pengeluaran
values('"+tkd_brg.getText()+"',"
+ "'"+tnm_kategori.getText()+"',"
+ "'"+tnm_brg.getText()+"',"
+ "'"+tjml.getText()+"')";
174
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void EditData(){
try{
String sql="Update tb_sementara_pengeluaran set
kd_brg='"+tkd_brg.getText()+"',"
+ "nm_kategori='"+tnm_kategori.getText()+"',"
+ "nm_brg='"+tnm_brg.getText()+"',"
+ "jml='"+tjml.getText()+"'"
+ "where kd_brg='"+tkd_brg.getText()+"'";
kon.st.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Data berhasil diupdate");
TampilanTabelSementara();
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,e);
}
}
175
private void HapusIsiSementara()
{
int row=tbl_penerimaan.getSelectedRow();
try
{
String sql="Delete from tb_sementara_pengeluaran where
kd_brg='"+(String)tbl_penerimaan.getValueAt(row,0)+"'";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e);
}
}
private void setTanggalskr()
{
java.util.Date skrg = new java.util.Date();
java.text.SimpleDateFormat kal = new
java.text.SimpleDateFormat("yyyy-MM-dd");
ttgl_keluar.setText(kal.format(skrg));
}
private void SimpanPenerimaan()
{
try
{
String sql="insert into tb_pengeluaran_barang
values('"+tid_keluar.getText()+"',"
+ "'"+ttgl_keluar.getText()+"',"
176
+ "'"+tid_user.getText()+"')";
kon.st.executeUpdate(sql);
String detail="insert tb_detail_pengeluaran select
'"+tid_keluar.getText()+"',"
+"kd_brg,jml from tb_sementara_pengeluaran";
kon.st.executeUpdate(detail);
Bersih();
}
catch(SQLException e)
{
System.out.println("koneksi gagal"+e.toString());
}
}
private void HapusTabelSementara()
{
try
{
String sql="Delete from tb_sementara_pengeluaran";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void updateStokBarang(String ubah){
177
int jml=0, stok=0;
String sql="SELECT stok from tb_barang WHERE
kd_brg='"+tkd_brg.getText()+"'";
try {
kon.rs=kon.st.executeQuery(sql);
while(kon.rs.next()){
jml=Integer.parseInt(kon.rs.getString(1));
}
if(ubah.equals("delete")){
stok=jml+Integer.parseInt(tjml_awal.getText());
}
else if(ubah.equals("edit")){
stok=(jml-
Integer.parseInt(tjml.getText()))+Integer.parseInt(tjml_awal.g
etText());
}
else if(ubah.equals("insert")){
stok=jml-Integer.parseInt(tjml.getText());
}
String sql_update="UPDATE tb_barang SET stok='"+stok+"'
WHERE kd_brg='"+tkd_brg.getText()+"'";
try {
kon.st.executeUpdate(sql_update);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
178
}
/**
* 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")
1. Klik kanan pada Button Browser, pilih Event-Action-Action
Performed, ketik Script berikut :
private void tkd_brgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TampilDataBarang();
}
2. Klik kanan pada Button Browser, pilih Event-Action-Action Performed,
ketik Script berikut :
private void tb_browseActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
boolean closable = true;
Form_Data_Barangkeluar databarang=new
Form_Data_Barangkeluar(null, closable);
databarang.barang1 = this;
databarang.setVisible(true);
databarang.setResizable(true);
tkd_brg.setText(KdBrg);
tnm_kategori.setText(NmKategori);
179
tnm_brg.setText(NmBrg);
}
3. Ketik kanan pada Tabel Barang, pilih Event-Key-KeyPressed, ketik Scrip
berikut :
private void tbl_penerimaanKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_BACK_SPACE)
{
HapusIsiSementara();
}
}
4. Ketik kanan pada Tabel Barang, pilih Event-Mouse-Mouseclicked, ketik
Scrip berikut :
private void
tbl_penerimaanMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
aktif();
tkd_brg.setEnabled(true);
bt_update.setEnabled(true);
bt_hapus.setEnabled(true);
bt_tambah.setEnabled(false);
bt_insert.setEnabled(false);
setTable();
}
5. Klik kanan pada Button Tambah, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt)
{
aktif();
180
setTanggalskr();
NoKeluar();
bt_simpan.setEnabled(false);
}
6. Klik kanan pada Button Insert, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_insertActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
String sql="select *from tb_sementara_pengeluaran where
kd_brg='" +tkd_brg.getText()+ "'";
kon.rs=kon.st.executeQuery(sql);
if(kon.rs.next())
{
JOptionPane.showMessageDialog(this,"Kode Sudah
Dipilih...","Informasi", JOptionPane.INFORMATION_MESSAGE);
tb_browse.requestFocus();
tkd_brg.setText("");
}
else
{
ubah="insert";
updateStokBarang(ubah);
bt_keluar.setEnabled(true);
bt_simpan.setEnabled(true);
SimpanSementara();
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
181
tjml.setText("");
if (JOptionPane.showConfirmDialog(this, "Mau Tambah
Barang?", "konfirmasi", JOptionPane.YES_NO_OPTION) ==
JOptionPane.YES_OPTION) {
}
else
{
bt_simpan.requestFocus();
ubah="insert";
updateStokBarang(ubah);
bt_keluar.setEnabled(true);
bt_simpan.setEnabled(true);
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
7. Klik kanan pada Button Update, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_updateActionPerformed(java.awt.event.ActionEvent evt) {
ubah="edit";
updateStokBarang(ubah);
EditData();
182
tkd_brg.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_tambah.setEnabled(false);
bt_insert.setEnabled(true);
bt_keluar.setEnabled(true);
}
8. Klik kanan pada Button Simpan, pilih Event-Action-Action Performed,
ketik Script berikut :
private void bt_simpanActionPerformed(java.awt.event.ActionEvent evt)
{
SimpanPenerimaan();
JOptionPane.showMessageDialog(this,"Berhasil disimpan",
"Informasi",JOptionPane.INFORMATION_MESSAGE);
TampilanTabelSementara();
HapusTabelSementara();
nonaktif();
Bersih();
bt_tambah.setEnabled(true);
bt_keluar.setEnabled(true);
}
9. Klik kanan pada Button Hapus, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt) {
ubah="delete";
updateStokBarang(ubah);
HapusIsiSementara();
bt_simpan.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
183
bt_insert.setEnabled(true);
bt_keluar.setEnabled(true);
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
10. Klik kanan pada Button Tutup, pilih Event-Action-Action Performed, ketik
Script berikut :
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {
HapusTabelSementara();
dispose();
}
2.10. Membuat Form Penerimaan Barang
1. Klik kanan pada package gudang-New-JFrame Form
2. Isi Class Name : Form_Penerimaan_Barang -Finish
184
Gambar 2.80 membuat JFrame baru
a. Desain
Desain Form Penerimaan Barang Running Form Penerimaan Barang
Gambar 2.81 desain form penerimaan barang
185
b. Source Code
Gambar 2.82 komponen form penerimaan barang
No Komponen Properties
1 JTextField Change Variable Name : tinvoice
2 JTextField Change Variable Name : ttgl_penerimaan
3 JTextField Change Variable Name : tid_user
4 JTextField Change Variable Name : tkd_brg
5 JButton Edit Text : ...
Change Variable Name : tb_browse
6 JTextField Change Variable Name : tnm_kategori
7 JTextField Change Variable Name : tnm_brg
186
8 JTextField Change Variable Name : tjml
9 JTextField Change Variable Name : tjml_awal
10 JTabel Change Variable Name : tbl_penerimaan
11 JButton Edit Text : Tambah
Change Variable Name : bt_tambah
12 JButton Edit Text : Update
Change Variable Name : bt_update
13 JButton Edit Text : Simpan
Change Variable Name : bt_simpan
14 JButton Edit Text : Insert
Change Variable Name : bt_insert
15 JButton Edit Text : Hapus
Change Variable Name : bt_hapus
16 JButton Edit Text : Tutup
Change Variable Name : bt_keluar
Ketik Scrip method-method dibawah ini :
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package gudang;
187
import java.awt.event.KeyEvent;
import java.sql.*;
import java.text.SimpleDateFormat;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
/**
*
* @author Pannugroho
*/
public class Form_Penerimaan_Barang extends javax.swing.JFrame {
koneksi kon=new koneksi();
private Object [][] datasementara=null;
private String[]label={"KODE BARANG","NAMA
KATEGORI","NAMA BARANG","JUMLAH"};
private String ubah;
/**
* Creates new form Form_Penerimaan_Barang
*/
public Form_Penerimaan_Barang() {
initComponents();
kon.setkoneksi();
nonaktif();
}
public String kode;
public String getNik()
{
return kode;
}
188
public String KdBrg;
public String NmKategori;
public String NmBrg;
private void Bersih(){
tinvoice.setText("");
ttgl_penerimaan.setText("");
tid_user.setText("");
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
private void aktif(){
ttgl_penerimaan.setEnabled(true);
tinvoice.setEnabled(true);
tjml_awal.setVisible(false);
tid_user.setEnabled(true);
tkd_brg.setEnabled(true);
tnm_brg.setEnabled(true);
tnm_kategori.setEnabled(true);
tjml.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_simpan.setEnabled(true);
tb_browse.setEnabled(true);
bt_insert.setEnabled(true);
bt_tambah.setEnabled(false);
189
}
private void nonaktif(){
ttgl_penerimaan.setEnabled(false);
tinvoice.setEnabled(false);
tjml_awal.setVisible(false);
tid_user.setEnabled(false);
tkd_brg.setEnabled(false);
tnm_brg.setEnabled(false);
tnm_kategori.setEnabled(false);
tjml.setEnabled(false);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_simpan.setEnabled(false);
bt_insert.setEnabled(false);
tb_browse.setEnabled(false);
}
private void setTable(){
int row=tbl_penerimaan.getSelectedRow();
tkd_brg.setText((String)tbl_penerimaan.getValueAt(row,0));
tnm_kategori.setText((String)tbl_penerimaan.getValueAt(row,1));
tnm_brg.setText((String)tbl_penerimaan.getValueAt(row,2));
tjml_awal.setText((String)tbl_penerimaan.getValueAt(row,3));
}
private void TampilanTabelSementara()
{
try
{
190
String sql="Select *From tb_sementara_penerimaan order by
kd_brg";
kon.rs=kon.st.executeQuery(sql);
ResultSetMetaData m=kon.rs.getMetaData();
int kolom=m.getColumnCount();
int baris=0;
while(kon.rs.next())
{
baris=kon.rs.getRow();
}
datasementara=new Object[baris][kolom];
int x=0;
kon.rs.beforeFirst();
while(kon.rs.next())
{
datasementara[x][0]=kon.rs.getString("kd_brg");
datasementara[x][1]=kon.rs.getString("nm_kategori");
datasementara[x][2]=kon.rs.getString("nm_brg");
datasementara[x][3]=kon.rs.getString("jml");
x++;
}
tbl_penerimaan.setModel(new
DefaultTableModel(datasementara,label));
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
191
private void TampilDataBarang()
{
try{
String sql="select *from tb_barang where kd_brg='"
+tkd_brg.getText()+"'";
kon.rs=kon.st.executeQuery(sql);
if(kon.rs.next())
{
tnm_kategori.setText(kon.rs.getString("nm_kategori"));
tnm_brg.setText(kon.rs.getString("nm_brg"));
}
else
{
JOptionPane.showMessageDialog(null, "Kode
Barang"+tkd_brg.getText()+"tidak ditemukan");
}
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void SimpanSementara()
{
try
{
String sql="insert into tb_sementara_penerimaan
values('"+tkd_brg.getText()+"',"
192
+ "'"+tnm_kategori.getText()+"',"
+ "'"+tnm_brg.getText()+"',"
+ "'"+tjml.getText()+"')";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
}
private void EditData(){
try{
String sql="Update tb_sementara_penerimaan set
kd_brg='"+tkd_brg.getText()+"',"
+ "nm_kategori='"+tnm_kategori.getText()+"',"
+ "nm_brg='"+tnm_brg.getText()+"',"
+ "jml='"+tjml.getText()+"'"
+ "where kd_brg='"+tkd_brg.getText()+"'";
kon.st.executeUpdate(sql);
JOptionPane.showMessageDialog(null,"Data berhasil diupdate");
TampilanTabelSementara();
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
catch(SQLException e){
JOptionPane.showMessageDialog(null,e);
193
}
}
private void HapusIsiSementara()
{
int row=tbl_penerimaan.getSelectedRow();
try
{
String sql="Delete from tb_sementara_penerimaan where
kd_brg='"+(String)tbl_penerimaan.getValueAt(row,0)+"'";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e){
JOptionPane.showMessageDialog(null, e);
}
}
private void setTanggalskr()
{
java.util.Date skrg = new java.util.Date();
java.text.SimpleDateFormat kal = new
java.text.SimpleDateFormat("yyyy-MM-dd");
ttgl_penerimaan.setText(kal.format(skrg));
}
private void SimpanPenerimaan()
{
try
{
194
String sql="insert into tb_penerimaan_barang
values('"+tinvoice.getText()+"',"
+ "'"+ttgl_penerimaan.getText()+"',"
+ "'"+tid_user.getText()+"')";
kon.st.executeUpdate(sql);
String detail="insert tb_detail_penerimaan select
'"+tinvoice.getText()+"',"
+"kd_brg,jml from tb_sementara_penerimaan";
kon.st.executeUpdate(detail);
Bersih();
}
catch(SQLException e)
{
System.out.println("koneksi gagal"+e.toString());
}
}
private void HapusTabelSementara()
{
try
{
String sql="Delete from tb_sementara_penerimaan";
kon.st.executeUpdate(sql);
TampilanTabelSementara();
}
catch(SQLException e)
{
JOptionPane.showMessageDialog(null, e);
}
195
}
private void updateStokBarang(String ubah){
int jml=0, stok=0;
String sql="SELECT stok from tb_barang WHERE
kd_brg='"+tkd_brg.getText()+"'";
try {
kon.rs=kon.st.executeQuery(sql);
while(kon.rs.next()){
jml=Integer.parseInt(kon.rs.getString(1));
}
if(ubah.equals("insert")){
stok=jml+Integer.parseInt(tjml.getText());
}
else if(ubah.equals("edit")){
stok=(jml-
Integer.parseInt(tjml_awal.getText()))+Integer.parseInt(tjml.getText());
}
else if(ubah.equals("delete")){
stok=jml-Integer.parseInt(tjml_awal.getText());
}
String sql_update="UPDATE tb_barang SET stok='"+stok+"'
WHERE kd_brg='"+tkd_brg.getText()+"'";
try {
kon.st.executeUpdate(sql_update);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
} catch (Exception e) {
196
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
private void NoInvoice()
{
try {
String sql_no= "select right(invoice,3)as no, mid(invoice,4,4) as
periode from tb_penerimaan_barang";
kon.setkoneksi();
ResultSet rs = kon.st.executeQuery(sql_no);
if (rs.next()){
rs.last();
int no = Integer.parseInt(rs.getString("no"))+1;
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat1=new SimpleDateFormat
("MM.yy");
String tanggal=dateformat1.format(date);
if(no<10)
tinvoice.setText("AHI/INV-
"+tanggal+"/000"+Integer.toString(no));
else if(no<100)
tinvoice.setText("AHI/INV-
"+tanggal+"/00"+Integer.toString(no));
else if(no<1000)
tinvoice.setText("AHI/INV-
"+tanggal+"/0"+Integer.toString(no));
else
197
tinvoice.setText("AHI/INV-
"+tanggal+"/"+Integer.toString(no));
}
else
{
java.util.Date date = new java.util.Date();
SimpleDateFormat dateformat1=new SimpleDateFormat
("MM.yy");
String tanggal=dateformat1.format(date);
tinvoice.setText("AHI/INV-"+tanggal+"/0001");
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null, e);
}
}
/**
* 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")
198
1. Klik kanan pada Kolom Kode Barang, pilih Event-Action-Action
Performed, ketik Script berikut :
private void tkd_brgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TampilDataBarang();
}
2. Klik kanan pada tombol Browser, pilih Event-Action-Action Performed,
ketik Script berikut:
private void tb_browseActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
boolean closable = true;
Form_Stok_Barang_MinimalPM databarang=new
Form_Stok_Barang_MinimalPM(null, closable);
databarang.barang1 = this;
databarang.setVisible(true);
databarang.setResizable(true);
tkd_brg.setText(KdBrg);
tnm_kategori.setText(NmKategori);
tnm_brg.setText(NmBrg);
}
3. Klik kanan pada tabel, pilih Event-Mouse-Mouseclicked, ketik Script
berikut :
private void tbl_penerimaanMouseClicked(java.awt.event.MouseEvent evt)
{
// TODO add your handling code here:
aktif();
tkd_brg.setEnabled(true);
bt_update.setEnabled(true);
bt_hapus.setEnabled(true);
199
bt_tambah.setEnabled(false);
bt_insert.setEnabled(false);
setTable();
}
4. Klik kanan pada tabel, pilih Event-Key-KeyPressed, ketik Script berikut :
private void tbl_penerimaanKeyPressed(java.awt.event.KeyEvent evt)
{
// TODO add your handling code here:
if(evt.getKeyCode()==KeyEvent.VK_BACK_SPACE)
{
HapusIsiSementara();
}
}
5. Klik kanan pada Button Tambah, pilih Event-Action-Action Performed,
ketik Script berikut:
private void bt_tambahActionPerformed(java.awt.event.ActionEvent evt)
{
aktif();
setTanggalskr();
NoInvoice();
bt_simpan.setEnabled(false);
}
6. Klik kanan pada Button Update, pilih Event-Action-Action Performed,
ketik Script berikut:
private void bt_updateActionPerformed(java.awt.event.ActionEvent evt)
{
ubah="edit";
updateStokBarang(ubah);
200
EditData();
tkd_brg.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_tambah.setEnabled(false);
bt_insert.setEnabled(true);
bt_keluar.setEnabled(true);
}
7. Klik kanan pada Button Simpan, pilih Event-Action-Action Performed,
ketik Script berikut:
private void bt_simpanActionPerformed(java.awt.event.ActionEvent evt)
{
SimpanPenerimaan();
JOptionPane.showMessageDialog(this,"Berhasil disimpan",
"Informasi",JOptionPane.INFORMATION_MESSAGE);
TampilanTabelSementara();
HapusTabelSementara();
nonaktif();
Bersih();
bt_tambah.setEnabled(true);
bt_keluar.setEnabled(true);
}
8. Klik kanan pada Button Insert, pilih Event-Action-Action Performed, ketik
Script berikut:
private void bt_insertActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
String sql="select *from tb_sementara_penerimaan where
kd_brg='" +tkd_brg.getText()+ "'";
201
kon.rs=kon.st.executeQuery(sql);
if(kon.rs.next())
{
JOptionPane.showMessageDialog(this,"Kode Sudah
Dipilih...","Informasi", JOptionPane.INFORMATION_MESSAGE);
tb_browse.requestFocus();
tkd_brg.setText("");
}
else
{
ubah="insert";
updateStokBarang(ubah);
bt_keluar.setEnabled(true);
bt_simpan.setEnabled(true);
SimpanSementara();
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
if (JOptionPane.showConfirmDialog(this, "Mau Tambah
Barang?", "konfirmasi", JOptionPane.YES_NO_OPTION) ==
JOptionPane.YES_OPTION) {
}
else
{
bt_simpan.requestFocus();
}
}
}
catch(SQLException e)
202
{
JOptionPane.showMessageDialog(null, e);
}
}
9. Klik kanan pada Button Hapus, pilih Event-Action-Action Performed,
ketik Script berikut:
private void bt_hapusActionPerformed(java.awt.event.ActionEvent evt)
{
ubah="delete";
updateStokBarang(ubah);
HapusIsiSementara();
bt_simpan.setEnabled(true);
bt_update.setEnabled(false);
bt_hapus.setEnabled(false);
bt_insert.setEnabled(true);
bt_keluar.setEnabled(true);
tkd_brg.setText("");
tnm_kategori.setText("");
tnm_brg.setText("");
tjml.setText("");
}
10. Klik kanan pada Button Tutup, pilih Event-Action-Action Performed, ketik
Script berikut:
private void bt_keluarActionPerformed(java.awt.event.ActionEvent evt) {
HapusTabelSementara();
dispose();
}
203
2.4. Rancangan Laporan
2.4.1. Persiapan Pembuatan Laporan
Dalam bahasa pemrograman Java kita dapat membuat laporan
dengan menggunakan Plugin tambahan, yaitu iReport. iReport atau yang
juga dikenal dengan nama Jasper Report adalah plugin milik IDE
Netbeans, yang dapat digunakan secara bebas karena bersifat Open
Source. Sebelum kita mulai membuat laporan, silakan download plugin
iReport. Selain plugin iReport, kita juga membutuhkan Library Jar
untuk memanggil dan menampilkan iReport.
Langkah – langkah dalam Instalasi Plugin iReport di Netbeans
adalah sebagai berikut :
1. Jalankan Netbeans, pilih menu Tools – Plugin
2. Pilih tab Downloadead – Add Plugins
3. Cari hasil download Plugin iReportnya, pastikan sudah
mengekstrak Plugin iReport
4. Pilih semua file *.nbm yang ada didalam folder Plugin iReport
Gambar 2.83 menambahkan Plugin di iReport
204
Gambar 2.84 menginstal plugin
5. Ikuti langkah – langkah seperti saat anda menginstal program aplikasi.
Jika proses sudah selesai, ,biarkan Netbeans untuk restart.
6. Tambahkan Libraries untuk bisa terhubung ke database
Klik kanan pada Libraries – Add Libraries – Pilih JasperReport 3.0.1 –
Add Library
Gambar 2.85 menambahka library JasperReports
205
2.4.2. Pembuatan Data Laporan
1. Langkah – langkah Welcome Window klik gambar drum ( Datasource )
untuk membuat Datasource baru yang digunakan untuk koneksi laporan
ke Database.
2. Pilih Database JDBC Connection – Next, seperti gambar 5.4
Gambar 2.85 membuat laporan data
Gambar 2.85 koneksi laporan kedatabase
2. Klik Datasource
1. Klik Database JDBC connection
2. Klik Tombol Next
1. Klik Tab Welcome Window
206