Membuat Desain Form Data Barang Masuk

3:06:00 PM
http://www.helmyntest.blogspot.com/2016/05/membuat-desain-form-data-barang-masuk.html

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:

http://www.helmyntest.blogspot.com/2016/05/membuat-desain-form-data-barang-masuk.html

Keterangan : 

http://www.helmyntest.blogspot.com/2016/05/membuat-desain-form-data-barang-masuk.html

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:

http://www.helmyntest.blogspot.com/2016/05/membuat-desain-form-data-barang-masuk.html

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.


Share this

Related Posts

Previous
Next Post »