You are on page 1of 35

Membuat Program Data Barang

Aplikasi satu ini adalah aplikasi database yang memuat kategori beserta data barang itu
sendiri. Aplikasi ini terdiri dari dua form dan dua tabel. Berikut ini adalah langkah-langkah
dalam membuatnya.
Mendownload dan Menginstall Aplikasi dan Plugin yang Diperlukan
Pertama, java yang digunakan disini adalah Netbeans 7.0.1, mysql, plugin iReport. Untuk
plugin iReport bisa didownload di jaspersoft.com. Extract, lalu add plugin di setting
netbeans.

Klik install.

Membuat Database dan Tabel
Setelah semua komponen ada buatlah database beserta tabelnya. Database beserta tabel dapat
dibuat di phpmyadmin, namun saya membuatnya di bagian Services yang disediakan
netbeans.
Pertama buka bagian tab Services, klik kanan di database klik Register MySQL Server



Klik ok saja, mau dicheck/uncheck tidak masalah.

Klik kanan di server yang baru diregister, lalu klik Connect, baru Create Database

Buat databasenya, misalnya dbbarang . Nanti muncul di bawahnya koneksi baru.


Klik Execute Command untuk mulai membuat tabel
Pertama kita akan membuat tabel kategori/jenis barang. Strukturnya sbb
Kolom Tipe Data Panjang
kodejenis* char 4
jenis varchar 60

Ketikkan perintah mysql di jendela SQL Command yang muncul, klik Run SQL atau tekan
tombol CTRL+Shift+E
create table tbljenis(
kodejenis char(4) not null primary key,
jenis varchar(60));
Selanjutnya buat tabel barangnya.
Kolom Tipe Data Panjang
kodebarang* char 4
namabarang varchar 100
kodejenis char 4
harganet double -
hargajual double -
stok smallint 4

Ketikkan lagi di jendela SQL Command yang sama(jangan lupa hapus kode sebelumnya).
create table tblbarang(
kodebarang char(4) not null primary key,
namabarang varchar(100),
kodejenis char(4),
harganet double,
hargajual double,
stok smallint(20)
);
Membuat database.ini
File ini digunakan untuk menghubungkan database dengan java, letakkan di tempat dimana
program netbeansnya dibuat.
Ketikkan ini di notepad, simpan sebagai database.ini
# Setting JDBC
# getDriver JDBC
DBDriver=com.mysql.jdbc.Driver
# getDatabase
DBDatabase=jdbc:mysql://localhost/databarang
# Setting username
DBUsername=root
# Setting password
DBPassword=passwordanda
Menambahkan Library dan Jar file
Pertama masukkan jar file, klik kanan di Libaries pilih add jar/folder : masukkan jar dari
jasperreport nya.
Berikutnya library, buat library baru, beri nama dan tambahkan daftar jar folder seperti di
bawah ini:

Lalu pilih add library, pertama MySQL JDBC Driver lalu SimpleReport yang telah kita isi
tadi.
Merancang Program
Buat project baru , pilih File > New Project>Java Application, isi dengan nama project,
misalnya sisfo_barang. Nama ini juga yang akan menjadi nama paket awal secara otomatis.
Selanjutnya tinggal membuat listing program
database.java
package sisfo_barang;
import java.io.FileInputStream;
import java.util.Properties;
import javax.swing.JOptionPane;
public class Database {
public Properties mypanel, myLanguage;
private String strNamePanel;
public Database(){
}
public String SettingPanel(String nmPanel){
try {
mypanel = new Properties();
mypanel.load(new FileInputStream("lib/database.ini"));
strNamePanel = mypanel.getProperty(nmPanel);
} catch (Exception e) {
JOptionPane.showMessageDialog(null,"Tidak ada koneksi","Error",
JOptionPane.INFORMATION_MESSAGE);
System.err.println(e.getMessage());
System.exit(0);
}
return strNamePanel;}}
Buat Form untuk menginput jenis barang, klik di package : New>Jframe Form, beri nama
kelasnya. Misalnya FrmJenis.java Design tampilannya seperti di bawah ini:

Untuk propertinya :


Palette
Pengaturan Properti
Text Change Variable Name
jLabel1 Entri Jenis Data Barang jLabel1
jLabel2 Kode Jenis jLabel2
jLabel3 Jenis Barang jLabel3
JTextField1 - KodeJenis
JTextField2 - Jenis
JButton1 Tambah AddNew
JButton2 Simpan Save
JButton3 Ubah Edit
JButton4 Hapus Delete
JButton5 Cetak Print
JButton6 Keluar Close
JTable - Table

Untuk mengganti variabel bisa mengklik kanan tiap properti dan pilih Change Variable
Name.
Berikut adalah detil dimana listing harus ditambahkan :
Di bawah package, bagian import :
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
di bagian public class FrmJenis extends javax.swing.JFrame {
public class FrmJenis extends javax.swing.JFrame {
Database dbsetting;
String driver,database,user,pass;
private Object tabel;
/** Creates new form FrmJenis */
public FrmJenis() {
initComponents();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
if(frameSize.height > screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width > screenSize.width){
frameSize.width=screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height =
screenSize.height) / 4);
dbsetting = new Database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
table.setModel(tableModel);
Tabel(table, new int[]{90,370});
setDefaultTable();
SetEditOff();
}
Di bawah @SuppressWarnings("unchecked") :
public void BersihData(){
KodeJenis.setText("");
Jenis.setText("");
}
public void SetEditOff(){
KodeJenis.setEnabled(false);
Jenis.setEnabled(false);
}
public void SetEditOn(){
KodeJenis.setEnabled(true);
Jenis.setEnabled(true);
}
Ketiga method di atas adalah method untuk membersihkan form sebelum ditambahkan data,
mengeset semua text field dalam posisi bisa diedit atau tidak dan juga membuat enable dari
tiap tombol on atau tidak, tergantung tombol mana yang terlebih dahulu diklik.
Diatas // Variables declaration - do not modify
int row = 0;
public void Tampil(){
row = table.getSelectedRow();
KodeJenis.setText(tableModel.getValueAt(row, 0).toString());
Jenis.setText(tableModel.getValueAt(row, 1).toString());
Save.setEnabled(false);
Update.setEnabled(true);
Delete.setEnabled(true);
SetEditOn();
}
private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel();
private void Tabel(javax.swing.JTable tb, int lebar[] ) {
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
int kolom=tb.getColumnCount();
for(int i=0;i < kolom;i++) {
javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}

private javax.swing.table.DefaultTableModel getDefaultTabelModel() {
return new javax.swing.table.DefaultTableModel(
new Object[][] {},
new String [] {"Kode Jenis","Jenis Barang"}
){
boolean[] canEdit = new boolean[]{
false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex){
return canEdit[columnIndex];
}
};
}
String data[]=new String[2];
private void setDefaultTable() {
String stat ="";
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM tbljenis";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
tableModel.addRow(data);
}
res.close();
stt.close();
kon.close();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}

Kode-kode ini untuk mengatur tabel.
Pada tombol Tambah :
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
KodeJenis.requestFocus();
Save.setEnabled(true);
Update.setEnabled(false);
Delete.setEnabled(false);
SetEditOn();
}
Pada tombol Simpan :
private void SaveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KJ=KodeJenis.getText();
String J=Jenis.getText();
if ((KJ.isEmpty()) | (J.isEmpty()))
{JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeJenis.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "insert into tbljenis values(' "+KodeJenis.getText()+" ' , "+
" ' "+Jenis.getText()+"')";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.insertRow(0, data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Pada tombol Ubah :
private void UpdateActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KJ=KodeJenis.getText();
String J=Jenis.getText();
if ((KJ.isEmpty()) | (J.isEmpty()))
{JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeJenis.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Update tbljenis set jenis=' "+Jenis.getText()+" ' "+
"Where kodejenis=' "+KodeJenis.getText()+" ' ";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.removeRow(row);
tableModel.insertRow(row,data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Pada Tombol Hapus :
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KJ=KodeJenis.getText();
String J=Jenis.getText();
if ((KJ.isEmpty()) | (J.isEmpty()))
{JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeJenis.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Delete From tbljenis Where kodejenis='"+KodeJenis.getText().toString()+"'";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.removeRow(row);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Pada tombol Cetak :
private void PrintActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
MysqlDataSource dds = new MysqlDataSource();
dds.setServerName("localhost");
dds.setUser("root");
dds.setPassword("");
dds.setDatabaseName("databarang");

Connection kon = dds.getConnection();
Statement pr = kon.createStatement();
ResultSet hs = null;
pr.executeQuery("SELECT * FROM tblbarang");
hs = pr.getResultSet();
JRDataSource ds = new JRResultSetDataSource(hs);
Map pm = new HashMap();
JasperPrint jasperPrint =
JasperFillManager.fillReport("src/sisfo_barang/reportjenis.jasper", pm, kon);
JasperViewer.viewReport(jasperPrint);
}
catch(JRException e ){JOptionPane.showMessageDialog(rootPane, e.getMessage());
}
catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e.getMessage());
}
}
Pada tombol Keluar :
private void CloseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null,"Aplikasi ini akan ditutup! ",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}

Klik bagian events di tabel sehingga jadinya seperti dalam gambar, lalu isikan kode berikut :
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount()==1) {
Tampil();
}
}



Buat Form Barang dengan design berikut :

Atur propertinya sbb :

Palette
Pengaturan Properti
Text Change Variable Name
jLabel1 Entri Data Barang jLabel1
jLabel2 Kode Barang jLabel2
jLabel3 Nama Barang jLabel3
jLabel4 Kode Jenis Barang jLabel4
jLabel5 Jenis Barang jLabel5
jLabel6 Harga Net jLabel6
jLabel7 Harga Jual jLabel7
jLabel8 Stok jLabel8
JTextField1 - KodeBarang
JTextField2 - NamaBarang
JTextField3 - Jenis
JTextField4 - HargaNet
JTextField5 - HargaJual
JTextField6 Stok
ComboBox1 KodeJenis
JButton1 Tambah AddNew
JButton2 Simpan Save
JButton3 Ubah Edit
JButton4 Hapus Delete
JButton5 Cetak Print
JButton6 Keluar Close
JTable - Table

Di bawah package, bagian import :
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
di bagian public class FrmBarang extends javax.swing.JFrame {

public class FrmBarang extends javax.swing.JFrame {Database dbsetting;
String driver,database,user,pass,userLogin;
private Object tabel;
/** Creates new form FrmBarang */
public FrmBarang() {
initComponents();
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
if(frameSize.height > screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width > screenSize.width){
frameSize.width=screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) / 2,(screenSize.height =
screenSize.height) / 6);
//setting untuk memanggil koneksi Database.ini
dbsetting = new Database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
table.setModel(tableModel);
Tabel(table, new int[]{90,300,90,90,90,70});
setDefaultTable();
SetEditOff();
TampilComboJenis();
}
Di bawah @SuppressWarnings("unchecked") :
public void TampilComboJenis(){
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL = "SELECT * FROM tbljenis";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
KodeJenis.addItem(res.getString("kodejenis"));
}
} catch (SQLException ex) {
}
}

public void BersihData(){
KodeJenis.setText("");
Jenis.setText("");
}
public void SetEditOff(){
KodeJenis.setEnabled(false);
Jenis.setEnabled(false);
}
public void SetEditOn(){
KodeJenis.setEnabled(true);
Jenis.setEnabled(true);
}
Method yang pertama untuk menampilkan data di combobox, dimana data itu berasal dari
tabel jenis barang pada form pertama. Ketiga method di bawahnya adalah method untuk
membersihkan form sebelum ditambahkan data, mengeset semua text field dalam posisi bisa
diedit atau tidak dan juga membuat enable dari tiap tombol on atau tidak, tergantung tombol
mana yang terlebih dahulu diklik.
Diatas // Variables declaration - do not modify
int row = 0;
public void Tampil(){
row = table.getSelectedRow();
KodeBarang.setText(tableModel.getValueAt(row, 0).toString());
NamaBarang.setText(tableModel.getValueAt(row, 1).toString());
KodeJenis.setSelectedItem(tableModel.getValueAt(row, 2).toString());
HargaNet.setText(tableModel.getValueAt(row, 3).toString());
HargaJual.setText(tableModel.getValueAt(row, 4).toString());
Stok.setText(tableModel.getValueAt(row, 5).toString());
Save.setEnabled(false);
Update.setEnabled(true);
Delete.setEnabled(true);
SetEditOn();
}

private javax.swing.table.DefaultTableModel tableModel=getDefaultTabelModel();
private void Tabel(javax.swing.JTable tb, int lebar[] ) {
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
int kolom=tb.getColumnCount();
for(int i=0;i < kolom;i++) {
javax.swing.table.TableColumn tbc=tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}
private javax.swing.table.DefaultTableModel getDefaultTabelModel() {
return new javax.swing.table.DefaultTableModel(
new Object[][] {},
new String [] {"Kode Barang","Nama Barang","Kode Jenis","Harga NET","Harga Jual","Stok"}
){
boolean[] canEdit = new boolean[]{
false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex){
return canEdit[columnIndex];
}
};
}
String data[]=new String[6];
private void setDefaultTable() {
String stat ="";
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM tblbarang";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
data[2] = res.getString(3);
data[3] = res.getString(4);
data[4] = res.getString(5);
data[5] = res.getString(6);
tableModel.addRow(data);
}
res.close();
stt.close();
kon.close();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Kode-kode ini untuk mengatur tabel.
Pada tombol Tambah :
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
BersihData();
KodeBarang.requestFocus();
Save.setEnabled(true);
Update.setEnabled(false);
Delete.setEnabled(false);
SetEditOn();
}

Pada tombol Simpan :
private void SaveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KB=KodeBarang.getText();
String NB=NamaBarang.getText();
String KJ=KodeJenis.getSelectedItem().toString();
String HN=HargaNet.getText();
String HJ=HargaJual.getText();
String ST=Stok.getText();
if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty())
|(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) {
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeBarang.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "insert into tblbarang values('"+KodeBarang.getText()+"',"+
"'"+NamaBarang.getText()+"',"+
"'"+KodeJenis.getSelectedItem()+"',"+
"'"+HargaNet.getText()+"',"+
"'"+HargaJual.getText()+"',"+
"'"+Stok.getText()+"')";
stt.executeUpdate(SQL);
data[0] = KodeBarang.getText();
data[1] = NamaBarang.getText();
data[2] = KodeJenis.getSelectedItem().toString();
data[3] = HargaNet.getText();
data[4] = HargaJual.getText();
data[5] = Stok.getText();
tableModel.insertRow(0, data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}

Pada tombol Ubah :
private void UpdateActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KB=KodeBarang.getText();
String NB=NamaBarang.getText();
String KJ=KodeJenis.getSelectedItem().toString();
String HN=HargaNet.getText();
String HJ=HargaJual.getText();
String ST=Stok.getText();
if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty())
|(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) {
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeBarang.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Update tblbarang Set namabarang='"+NamaBarang.getText()+"',"+
"kodejenis='"+KodeJenis.getSelectedItem()+"',"+
"harganet='"+HargaNet.getText()+"',"+
"hargajual='"+HargaJual.getText()+"',"+
"stok='"+Stok.getText()+"'"+
"Where kodebarang='"+KodeBarang.getText()+"'";
stt.executeUpdate(SQL);
data[0] = KodeBarang.getText();
data[1] = NamaBarang.getText();
data[2] = KodeJenis.getSelectedItem().toString();
data[3] = HargaNet.getText();
data[4] = HargaJual.getText();
data[5] = Stok.getText();
tableModel.removeRow(row);
tableModel.insertRow(row,data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
Pada Tombol Hapus :
private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String KB=KodeBarang.getText();
String NB=NamaBarang.getText();
String KJ=KodeJenis.getSelectedItem().toString();
String HN=HargaNet.getText();
String HJ=HargaJual.getText();
String ST=Stok.getText();
if ((KB.isEmpty()) | (NB.isEmpty()) |(KJ.isEmpty())
|(HN.isEmpty())|(HJ.isEmpty())|(ST.isEmpty())) {
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeBarang.requestFocus();
}else {
try {
Class.forName(driver);
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Delete From tblbarang Where kodebarang='"+KodeBarang.getText().toString()+"'";
stt.executeUpdate(SQL);
data[0] = KodeBarang.getText();
data[1] = NamaBarang.getText();
data[2] = KodeJenis.getSelectedItem().toString();
data[3] = HargaNet.getText();
data[4] = HargaJual.getText();
data[5] = Stok.getText();
tableModel.removeRow(row);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}

}

Pada tombol Cetak :
private void PrintActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
try
{
MysqlDataSource dds = new MysqlDataSource();
dds.setServerName("localhost");
dds.setUser("root");
dds.setPassword("");
dds.setDatabaseName("databarang");

Connection kon = dds.getConnection();
Statement pr = kon.createStatement();
ResultSet hs = null;
pr.executeQuery("SELECT * FROM tblbarang");
hs = pr.getResultSet();
JRDataSource ds = new JRResultSetDataSource(hs);
Map pm = new HashMap();
JasperPrint jasperPrint =
JasperFillManager.fillReport("src/sisfo_barang/reportbarang.jasper", pm, kon);
JasperViewer.viewReport(jasperPrint);
}
catch(JRException e ){JOptionPane.showMessageDialog(rootPane, e.getMessage());
}
catch (Exception e) {
JOptionPane.showMessageDialog(rootPane, e.getMessage());
}
}

Pada tombol Keluar :
private void CloseActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null,"Aplikasi ini akan ditutup! ",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
Klik bagian events di tabel sehingga jadinya seperti dalam gambar pada form sebelumnya,
lalu isikan kode berikut :
private void tableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
if (evt.getClickCount()==1) {
Tampil();
}
}


Klik pada combobox sehingga keluar tampilan seperti diatas, klik lalu isi dengan kode berikut
:
private void KodeJenisItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add your handling code here:
try {
Connection kon = DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
String SQL = "SELECT * FROM tbljenis where kodejenis='"+
KodeJenis.getSelectedItem().toString()+"'";
ResultSet res = stt.executeQuery(SQL);
res.absolute(1);
Jenis.setText(res.getString("jenis"));
} catch (SQLException ex) {
}
}

Buatlah form utama untuk memanggil kedua form tadi, pada contoh dibawah hanya ada menu
untuk memanggil kedua form, bisa ditambahkan dengan label dsb.

Pertama tambahkan komponen Menu bar, drag Menu item dua kali ganti properti sbb :


Palette
Pengaturan Properti
Text Change Variable Name
jMenuBar1 - jMenuBar1
jMenu1 File jMenu1
jMenuItem1 Input Jenis Barang MenuJenisBarang
jMenuItem2 Input Data Barang MenuBarang


Klik pada MenuJenisBarang, isi dengan :
private void MenuJenisBarangActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FrmJenis().setVisible(true);
}

Lakukan hal yang sama dengan menu barang :
private void MenuBarangActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FrmBarang().setVisible(true);
}
Klik di project lalu properties, pilih FormUtama sebagai main class.

Berikutnya tinggal membuat report, perlu diingat bahwa bagian cetak tidak akan jalan apabila
report belum dibuat.
Pertama kita akan membuat report untuk tabel jenis.

Klik kanan pada package, pilih report wizard seperti di gambar.

Isi dengan nama report yang diinginkan, klik next.

Klik datasource yang diinginkan, kalau belum ada buat baru dengan klik New

Pilih sumber database yang diinginkan, karena yang digunakan mysql pilih Database JDBC
connection. Klik Next Lagi.

Beri nama sesuka hati, isi Server Address dengan localhost, Database dengan nama database
di mysql klik Wizard. Isi bagian Username dan Password dengan Username dan Password di
mysql, centang save password. Klik Test, kalau successful berarti sudah terkoneksi dengan
benar. Klik Save.
Kembali ke bagian yang tadi, klik Design query

Klik OK, kembali ke yang tadi, klik Next

Pilih Field yang ingin ditampilkan, klik >> untuk memindahkan semuanya. Klik Next lagi.

Pilih grupnya

Pilih layoutnya, klik Next untuk terakhir kali dan klik Finish.
Berikut adalah tampilan report untuk tabel jenis barang dengan tabular layout. Tentu saja atur
dulu propertinya.

Klik Compile report agar ia menjadi file jasper.
Untuk report data barang langkahnya sama, tampilannya nanti seperti ini:


Berikut adalah hasil running dari semua form dan laporan, apabila sesuai dengan gambar, dan
bisa diinput dan keluar laporannya berarti tidak ada masalah.

You might also like