Membuat Desain Form Data Barang Masuk ~ Selamat pagi siang sore malam sobat helmyntest semoga kalian dalam keadaan baik Amiin. Sudah beberapa hari gw ga ngeposting karena ada beberapa kesibukan (alesan) dan kali ini gw gabut jadi gw mau lanjutin mengenai salah satu form desain dari Aplikasi Penjualan yang sudah lama gw share. Kali ini gw mau share Membuat Desain Form Data Barang Masuk. Langsung aja sob disimak.
Seperti biasa pertama kita harus membuat file baru dalam paket AplikasiPenjualan, dengan cara klik kanan paket Penjualan, Pilih New - JFrame Form…, sehingga muncul jendela New File. Kemudian Pada jendela New JFrame Form, isikan FrmBrgMasuk pada kotak isian Class Name, dan Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri. Setalah Form Baru dibuat kemudian Desainlah Form yang baru sobat buat seperti gambar dibawah:
Keterangan :
Sekarang kita masuk ketahap pengkodeannya sob, berikut syntax programnya:
Pada bagian import tambahkan dibawah baris package aplikasipenjualan sepeti kode berikut:
package penjualan;
import javax.swing.*;
import java.awt.*;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
Pada bagian
public class FrmBrgMasuk extends javax.swing.JFrame tambahkan kode berikut:
public final class FrmBrgMasuk extends javax.swing.JFrame {
Connection conn;
Statement cn;
/**
* Creates new form FrmBrgMasuk
*/
public FrmBrgMasuk() {
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) / 10);
table.setModel(tableModel);
Tabel(table, new int[]{90,300,90,60,60,90});
setDefaultTable();
SetEditOff();
TanggalOtomatis();
TampilComboBarang();
TampilComboPetugas();
TampilComboDistributor();
tampilnota();
}
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","Harga Jual","Stok","Jumlah","Sub Total"}
){
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 tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual," +
"tblbarang.stok,tbldetailbrgmasuk.jumlah,tbldetailbrgmasuk.subtotal,tblbrgmasuk.nonota " +
"FROM tblbarang,tbldetailbrgmasuk,tblbrgmasuk " +
"WHERE tblbarang.kodebarang=tbldetailbrgmasuk.kodebarang " +
"AND tblbrgmasuk.nonota=tbldetailbrgmasuk.nonota" +
"AND tbldetailbrgmasuk.nonota="+NoNota.getText()+"";
try (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);
}
}
cn.close();
conn.close();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Buatlah
private baru
TampilGridDetail kemudian buat kode program seperti berikut:
private void TampilGridDetail(){
String stat ="";
try {
koneksi();
String SQL = "SELECT tblbarang.kodebarang,tblbarang.namabarang,tblbarang.hargajual, tblbarang.stok,tbldetailbrgmasuk.jumlah,tbldetailbrgmasuk.subtotal,tblbrgmasuk.nonota " +
"FROM tblbarang,tbldetailbrgmasuk,tblbrgmasuk WHERE tblbarang.kodebarang=tbldetailbrgmasuk.kodebarang " +
"AND tblbrgmasuk.nonota=tbldetailbrgmasuk.nonota AND tbldetailbrgmasuk.nonota='"+NoNota.getText()+"'";
try (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);
}
}
cn.close();
conn.close();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
Buatlah perintah
BersihData,BersihDetail,SetEditOff, dan SetEditON disembarang tempat yang memiliki space kosong seperti berikut ini:
public void BersihData(){
tableModel.setRowCount(0);
// NoNota.setText("");
IDDistributor.setSelectedIndex(0);
NamaPetugas.setText("");
IDPetugas.setSelectedIndex(0);
NamaDistributor.setText("");
KotaAsal.setText("");
KodeBarang.setSelectedIndex(0);
NamaBarang.setText("");
HargaJual.setText("");
Jumlah.setText("");
Stok.setText("");
SubTotal.setText("0");
Total.setText("0");
}
public void BersihDetail(){
KodeBarang.setSelectedIndex(0);
NamaBarang.setText("");
HargaJual.setText("");
Stok.setText("");
Jumlah.setText("");
SubTotal.setText("0");
}
public void SetEditOff(){
NoNota.setEnabled(false);
TglMasuk.setEnabled(false);
IDDistributor.setEnabled(false);
IDPetugas.setEnabled(false);
KodeBarang.setEnabled(false);
Jumlah.setEnabled(false);
Hitung.setEnabled(false);
CariData.setEnabled(false);
AddItem.setEnabled(false);
}
public void SetEditOn(){
NoNota.setEnabled(true);
TglMasuk.setEnabled(true);
IDDistributor.setEnabled(true);
IDPetugas.setEnabled(true);
KodeBarang.setEnabled(true);
Jumlah.setEnabled(true);
SaveTransaction.setEnabled(true);
CariData.setEnabled(true);
Hitung.setEnabled(true);
AddItem.setEnabled(true);
}
Buatlah
Perintah Koneksi disembarang tempat yang memiliki space kosong seperti berikut ini:
public void koneksi(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbretail","root","");
cn = conn.createStatement();
}catch (ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"koneksi gagal..");
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
(option) Buatlah Perintah
tampil nota dan tanggalotomatis untuk menampilkan nota dan tanggal secara otomatis disembarang tempat yang memiliki space kosong seperti berikut ini:
public void tampilnota() {
// Date tanggal = new Date();
// String kode;
// NoFaktur.setText(""+ (String.format("%1$tY%1$tm%1$td",tanggal)));
Date sk = new Date();
SimpleDateFormat format1=new SimpleDateFormat("ddMMyy");
String time = format1.format(sk);
koneksi();
String sql = "select right(nonota,1) as kd from tblbrgmasuk order by kd desc";
try{
try (ResultSet rs = cn.executeQuery(sql)) {
if (rs.next()){
int kode = Integer.parseInt(rs.getString("kd"))+1;
NoNota.setText(time+Integer.toString(kode));
}else{
int kode = 1;
NoNota.setText(time+Integer.toString(kode));
}
}
}catch (SQLException | NumberFormatException e){
JOptionPane.showMessageDialog(null, e);
}
}
public void TanggalOtomatis(){
Date tanggal = new Date();
TglMasuk.setText(""+ (String.format("%1$td/%1$tb/%1$tY",tanggal)));
}
Buatlah kode program pada
kombobox idpetugas dengan cara klik kanan pilih
events-item-itemStatChanged.
private void IDPetugasItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_IDPetugasItemStateChanged
// TODO add your handling code here:
try {
koneksi();
String SQL = "SELECT * FROM tblpetugas where idpetugas='"+
IDPetugas.getSelectedItem().toString()+"'";
ResultSet res = cn.executeQuery(SQL);
res.absolute(1);
NamaPetugas.setText(res.getString("namapetugas"));
} catch (SQLException ex) {
}
}//GEN-LAST:event_IDPetugasItemStateChanged
Buatlah private baru untuk menampilakn data pada
kombobox idpetugas seperti berikut:
public void TampilComboPetugas(){
try {
koneksi();
String SQL = "SELECT * FROM tblpetugas";
ResultSet res = cn.executeQuery(SQL);
while(res.next()){
IDPetugas.addItem(res.getString("idpetugas"));
}
} catch (SQLException ex) {
}
}
Buatlah kode program pada
kombobox iddistributor dengan cara klik kanan pilih
events-item-itemStatChanged.
private void IDDistributorItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_IDDistributorItemStateChanged
// TODO add your handling code here:
try {
koneksi();
String SQL = "SELECT * FROM tbldistributor where iddistributor='"+
IDDistributor.getSelectedItem().toString()+"'";
ResultSet res = cn.executeQuery(SQL);
res.absolute(1);
NamaDistributor.setText(res.getString("namadistributor"));
KotaAsal.setText(res.getString("kotasal"));
} catch (SQLException ex) {
}
}//GEN-LAST:event_IDDistributorItemStateChanged
Buatlah private baru untuk
menampilakn data pada kombobox iddistributor seperti berikut:
public void TampilComboDistributor(){
try {
koneksi ();
String SQL = "SELECT * FROM tbldistributor";
ResultSet res = cn.executeQuery(SQL);
while(res.next()){
IDDistributor.addItem(res.getString("iddistributor"));
}
} catch (SQLException ex) {
}
}
Buatlah kode program pada
kombobox kodebarang dengan cara klik kanan pilih
events-item-itemStatChanged.
private void KodeBarangItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_KodeBarangItemStateChanged
// TODO add your handling code here:
try {
koneksi();
String SQL = "SELECT * FROM tblbarang where kodebarang='"+
KodeBarang.getSelectedItem().toString()+"'";
ResultSet res = cn.executeQuery(SQL);
res.absolute(1);
NamaBarang.setText(res.getString("namabarang"));
HargaJual.setText(res.getString("hargajual"));
Stok.setText(res.getString("stok"));
} catch (SQLException ex) {
}
Jumlah.requestFocus();
AddItem.setEnabled(true);
}//GEN-LAST:event_KodeBarangItemStateChanged
Buatlah private baru untuk
menampilakn data pada kombobox combobarang seperti berikut:
public void TampilComboBarang(){
try {
koneksi ();
String SQL = "SELECT * FROM tblbarang";
ResultSet res = cn.executeQuery(SQL);
while(res.next()){
KodeBarang.addItem(res.getString("kodebarang"));
}
} catch (SQLException ex) {
}
}
Buatlah kode program untuk
menampilkan perhitungan subtotal dengan mengkilik button
hitung-event-action-ActionPerformed.
private void HitungActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_HitungActionPerformed
// TODO add your handling code here:
int a;
int b;
double c;
a = (int) Double.parseDouble(HargaJual.getText());
b = (int) Double.parseDouble(Jumlah.getText());
c = a * b;
SubTotal.setText(String.valueOf(c));
}//GEN-LAST:event_HitungActionPerformed
Buatlah kode program untuk
menampilkan total dengan cara klik kanan
textfield subtotal-events-charet-charetUpdate.
private void SubTotalCaretUpdate(javax.swing.event.CaretEvent evt) {//GEN-FIRST:event_SubTotalCaretUpdate
// TODO add your handling code here:
double d, e;
d = Double.parseDouble(SubTotal.getText());
e = Double.parseDouble(Total.getText());
e = e+d;
Total.setText(String.valueOf(e));
}//GEN-LAST:event_SubTotalCaretUpdate
Buatlah kode program
AddNew dengan mengklik kanan button
AddNew-events-action-ActionPerformed.
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddNewActionPerformed
// TODO add your handling code here:
SetEditOn();
NoNota.requestFocus();
BersihData();
tampilnota();
}//GEN-LAST:event_AddNewActionPerformed
Buatlah kode program
Add Item dengan mengklik kanan button
save-events-action-ActionPerformed.
private void AddItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddItemActionPerformed
// TODO add your handling code here:
String NM=NoNota.getText();
String KB=KodeBarang.getSelectedItem().toString();
String JM=Jumlah.getText();
if ((NM.isEmpty()) | (KB.isEmpty()) |(JM.isEmpty())) {
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
KodeBarang.requestFocus();
}else {
try {
koneksi();
try (Statement stt = conn.createStatement()) {
String SQL = "insert into tbldetailbrgmasuk values('"+NoNota.getText()+"',"+
"'"+KodeBarang.getSelectedItem()+"',"+
"'"+Jumlah.getText()+"',"+
"'"+SubTotal.getText()+"')";
stt.executeUpdate(SQL);
koneksi();
Statement stt1 = conn.createStatement();
String SQL1 = "Update tblbarang Set stok=stok + '"+Jumlah.getText()+"'" +
"Where kodebarang='"+KodeBarang.getSelectedItem().toString()+"'";
stt1.executeUpdate(SQL1);
data[0] = KodeBarang.getSelectedItem().toString();
data[1] = NamaBarang.getText();
data[2] = HargaJual.getText();
data[3] = Stok.getText();
data[4] = Jumlah.getText();
data[5] = SubTotal.getText();
tableModel.insertRow(0, data);
}
conn.close();
KodeBarang.requestFocus();
AddItem.setEnabled(false);
BersihDetail();
//TampilGrid();
KodeBarang.requestFocus();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}//GEN-LAST:event_AddItemActionPerformed
Buatlah kode program
SaveTransaction dengan mengklik kanan button
save-events-action-ActionPerformed.
private void SaveTransactionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_SaveTransactionActionPerformed
// TODO add your handling code here:
String NM=NoNota.getText();
if ((NM.isEmpty())) {
JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi");
NoNota.requestFocus();
}else {
try {
koneksi();
String SQL = "insert into tblbrgmasuk values('"+NoNota.getText()+"',"+
"'"+TglMasuk.getText()+"',"+
"'"+IDDistributor.getSelectedItem()+"',"+
"'"+IDPetugas.getSelectedItem()+"',"+
"'"+Total.getText()+"')";
cn.executeUpdate(SQL);
cn.close();
conn.close();
BersihData();
SetEditOff();
SaveTransaction.setEnabled(false);
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}//GEN-LAST:event_SaveTransactionActionPerformed
Buatlah kode program
Close dengan mengklik kanan button
Close-evens-action-ActionPerformed.
private void CloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CloseActionPerformed
// 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();
new FrmMenu().setVisible(true);
}//GEN-LAST:event_CloseActionPerformed
Buatlah kode program
Cari Data dengan mengklik kanan button
Cari Data-events-Action-ActionPerformed.
private void CariDataActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_CariDataActionPerformed
// TODO add your handling code here:
try {
koneksi ();
String SQL = "SELECT * FROM tblbrgmasuk where nonota='"+NoNota.getText()+"'";
ResultSet res = cn.executeQuery(SQL);
res.absolute(1);
TglMasuk.setText(res.getString("tglmasuk"));
IDPetugas.setSelectedItem(res.getString("idpetugas"));
IDDistributor.setSelectedItem(res.getString("iddistributor"));
Total.setText(res.getString("total"));
TampilGridDetail();
SaveTransaction.setEnabled(false);
NoNota.setEnabled(false);
CariData.setEnabled(false);
} catch (SQLException ex) {
}
}//GEN-LAST:event_CariDataActionPerformed
Finally Jalankan Program dengan Shift+F6 dan berikut hasilnya sob:
Sekian sob untuk postingan kali ini, semoga bermanfaat untuk sobat helmyntest dan dapat menambah wawasan pengetahuan sobat. Jika ada yang tidak dapat dipahami silahkan berkomentar dibawah atau bisa langsung pesan Facebook gw sob. Jika ada salah salah kata gw mohon maaf sob. Sampai Jumpa dipostingan gw berikutnya sob dan Stay Tune untuk lanjutan dari aplikasi penjualan barang.