40
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

Membuat Program Data Barang.docx

Embed Size (px)

Citation preview

Page 1: Membuat Program Data Barang.docx

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

Page 2: Membuat Program Data Barang.docx

Klik ok saja, mau dicheck/uncheck tidak masalah.

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

Page 3: Membuat Program Data Barang.docx

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

Page 4: Membuat Program Data Barang.docx

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.

Page 5: Membuat Program Data Barang.docx

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();

Page 6: Membuat Program Data Barang.docx

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

Page 7: Membuat Program Data Barang.docx

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();

Page 8: Membuat Program Data Barang.docx

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

Page 9: Membuat Program Data Barang.docx

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 ="";

Page 10: Membuat Program Data Barang.docx

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();

Page 11: Membuat Program Data Barang.docx

}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();

Page 12: Membuat Program Data Barang.docx

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);

Page 13: Membuat Program Data Barang.docx

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);

Page 14: Membuat Program Data Barang.docx

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:

Page 15: Membuat Program Data Barang.docx

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

Page 16: Membuat Program Data Barang.docx

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 */

Page 17: Membuat Program Data Barang.docx

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) {

}

Page 18: Membuat Program Data Barang.docx

}

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();

Page 19: Membuat Program Data Barang.docx

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);

Page 20: Membuat Program Data Barang.docx

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);

Page 21: Membuat Program Data Barang.docx

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();

Page 22: Membuat Program Data Barang.docx

}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();

Page 23: Membuat Program Data Barang.docx

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());

}

Page 24: Membuat Program Data Barang.docx

}

}

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());

}

Page 25: Membuat Program Data Barang.docx

}

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

Page 26: Membuat Program Data Barang.docx

: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

Page 27: Membuat Program Data Barang.docx

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.

Page 28: Membuat Program Data Barang.docx

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.

Page 29: Membuat Program Data Barang.docx

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.

Page 30: Membuat Program Data Barang.docx

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

Page 31: Membuat Program Data Barang.docx

Klik OK, kembali ke yang tadi, klik Next

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

Page 32: Membuat Program Data Barang.docx

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.

Page 33: Membuat Program Data Barang.docx

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.

Page 34: Membuat Program Data Barang.docx
Page 35: Membuat Program Data Barang.docx