Membuat Desain Form Data Barang - Halo sobat helmyntest akhirnya gua sempet ngeblog lagi nih,oke sob kali ini gw mau lanjutin postingan sebelumnya nih sob mengenai membuat aplikasi penjualan barang, kali ini kita akan Membuat Desain Form Data Barang dari aplikasi penjualan sob, langsung saja sob kita simak baik-baik!
Fungsi dari form ini adalah agar petugas dapat mengetahu dan menginput data barang. Lakukan beberapa langkah berikut ini sob:
- Buatlah file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
- Pada jendela New JFrame Form, isikan FrmBarang pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri.
- Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
Keterangan :
Syntax Program
Selanjutnya setelah form sudah selesai dibuat kita masukan Syntax Programnya sob.
Pada bagian import tambahkan dibawah baris package penjuaan sepeti kode berikut:
package penjualan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
Pada bagian public class FrmBarang extends javax.swing.JFrame tambahkan kode berikut:
public final class
FrmBarang extends javax.swing.JFrame {
Connection conn;
Statement cn;
/**
* Creates new
form FrmBarang
* @throws
java.lang.ClassNotFoundException
*/
public FrmBarang()
throws ClassNotFoundException {
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);
table.setModel(tableModel);
Tabel(table,
new int[]{90,160,90,90,90,70});
setDefaultTable();
SetEditOff();
TampilComboJenis();
tampilid();
}
Buatlah kode program diatas // Variables declaration - do not modify untuk menampilkan data pada tabel seperti berikut:
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 {
koneksi();
String SQL =
"SELECT * FROM tblbarang";
ResultSet res =
cn.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();
cn.close();
conn.close();
} catch
(Exception ex) {
System.err.println(ex.getMessage());
}
}
Buatlah kode program untuk menampilkan data yang sudah tersimpan di database, letakkan disembarang tempat yang memiliki space kosong seperti berikut ini:
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();
}
Buatlah perintah BersihData,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
NamaBarang.setText("");
KodeJenis.setSelectedIndex(0);
Jenis.setText("");
HargaNet.setText("");
HargaJual.setText("");
Stok.setText("0");
}
public void
SetEditOff(){
KodeBarang.setEnabled(false);
NamaBarang.setEnabled(false);
KodeJenis.setEnabled(false);
HargaNet.setEnabled(false);
HargaJual.setEnabled(false);
Stok.setEnabled(false);
}
public void
SetEditOn(){
KodeBarang.setEnabled(true);
NamaBarang.setEnabled(true);
KodeJenis.setEnabled(true);
HargaNet.setEnabled(true);
HargaJual.setEnabled(true);
Stok.setEnabled(true);
}
Buatlah perintah koneksi disembarang tempat yang memiliki space kosong seperti berikut ini:
public void koneksi() throws ClassNotFoundException{
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbretail","root","");
cn = conn.createStatement();
}catch (SQLException e){
JOptionPane.showMessageDialog(null,"koneksi gagal..");
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
Buatlah kode program AddNew dengan mengklik kanan button AddNew ->evens -> action -> ActionPerformed.
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();
try {
tampilid();
} catch
(ClassNotFoundException ex) {
Logger.getLogger(FrmBarang.class.getName()).log(Level.SEVERE, null, ex);
}
}
Buatlah perintah untuk menampilkan data pada kombo jenis dengan mengklik kanan kombojenis -> events -> item -> itemStateChange.
private void
KodeJenisItemStateChanged(java.awt.event.ItemEvent evt) {
// TODO add
your handling code here:
try {
koneksi();
String SQL =
"SELECT * FROM tbljenis where kodejenis='"+
KodeJenis.getSelectedItem().toString()+"'";
ResultSet res =
cn.executeQuery(SQL);
res.absolute(1);
Jenis.setText(res.getString("jenis"));
} catch
(SQLException ex) {
} catch
(ClassNotFoundException ex) {
Logger.getLogger(FrmBarang.class.getName()).log(Level.SEVERE, null, ex);
}
}
Butlah kode program tambahan untuk menampilkan data pada kombo kodejenis dengan membuat private baru seperti berikut.
public void
tampilid() throws ClassNotFoundException{
koneksi();
String sql =
"select right(kodebarang,1) as kd from tblbarang";
try{
ResultSet rs =
cn.executeQuery(sql);
if
(rs.first()==false){
KodeBarang.setText("KB01");
}else{
rs.last();
int no
= rs.getInt(1)+1;
String
cno = String.valueOf(no);
int
pjg_cno = cno.length();
for
(int i=0;i<2-pjg_cno cno="" i="" span="">
2-pjg_cno>
}
KodeBarang.setText("IP"+cno);
}
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Koneksi Database Gagal ! Periksa Database atau Hubungi Penyedia");
}
}
Buatlah kode program save dengan mengklik kanan button save ->events -> action -> ActionPerformed.
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 {
koneksi();
String SQL = "insert into
tblbarang values('"+KodeBarang.getText()+"',"+
"'"+NamaBarang.getText()+"',"+
"'"+KodeJenis.getSelectedItem()+"',"+
"'"+HargaNet.getText()+"',"+
"'"+HargaJual.getText()+"',"+
"'"+Stok.getText()+"')";
cn.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);
cn.close();
conn.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
JOptionPane.showMessageDialog(null,"Data Berhasil Disimpan!");
} catch
(SQLException ex) {
JOptionPane.showMessageDialog(null,ex);
} catch
(ClassNotFoundException ex) {
Logger.getLogger(FrmBarang.class.getName()).log(Level.SEVERE,
null, ex);
}
}
}
Buatlah kode program even Click dengan mengklik kanan table(grid) ->evens -> Mouse -> MouseClicked.
private void
tableMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code
here:
if
(evt.getClickCount()==1) {
Tampil();
}
}
Buatlah kode program Update dengan mengklik kanan button Update ->evens -> action -> ActionPerformed.
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 {
koneksi();
String SQL = "Update
tblbarang Set namabarang='"+NamaBarang.getText()+"',"+
"kodejenis='"+KodeJenis.getSelectedItem()+"',"+
"harganet='"+HargaNet.getText()+"',"+
"hargajual='"+HargaJual.getText()+"',"+
"stok='"+Stok.getText()+"'"+
"Where
kodebarang='"+KodeBarang.getText()+"'";
cn.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);
cn.close();
conn.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
JOptionPane.showMessageDialog(null,"Data Berhasil Dirubah!");
} catch
(SQLException ex) {
JOptionPane.showMessageDialog(null,ex);
} catch
(ClassNotFoundException ex) {
Logger.getLogger(FrmBarang.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Buatlah kode program Delete dengan mengklik kanan button Delete ->evens -> action -> ActionPerformed.
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 {
koneksi();
String SQL = "Delete From
tblbarang Where
kodebarang='"+KodeBarang.getText().toString()+"'";
cn.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);
cn.close();
conn.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
JOptionPane.showMessageDialog(null,"Data Berhasil Dihapus!");
} catch
(SQLException ex) {
JOptionPane.showMessageDialog(null,ex);
} catch
(ClassNotFoundException ex) {
Logger.getLogger(FrmBarang.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Buatlah kode program Close dengan mengklik kanan button Close ->evens -> action -> ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add
your handling code here:
if(JOptionPane.showConfirmDialog(null,"This application will be
close \n if you press button
OK","Information",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
Buatlah kode program Cancel dengan mengklik kanan button Cancel -> events -> Action -> ActionPerformed.
private void
CancelActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add
your handling code here:
BersihData();
SetEditOff();
}
Doneeeee… Form selesai dibuat selanjutnya tinggal sobat jalankan dengan memencet shift+F6 dan akan tampil seperti berikut sob:
Akhirnya selesai juga sob membuat form data barang, untuk form selanjutnya akan gw bahas di lain kesempatan sob. okelah sekian dulu ya sob postingannya. terimakasih untuk sobat helmyntest atas kunjungannya. sampai jumpa lagi sob! :v
Untuk Postingan Sebelumnya bisa cek
disini sob, untuk selanjutnya tunggu aja sob :v