membuat program data barang.docx

Post on 28-Dec-2015

33 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 :

Pengaturan Properti

Palette

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.

top related