Membuat Desain Form Data Penjualan Dengan Netbeans

5:29:00 PM
http://helmyntest.blogspot.com/2017/01/membuat-desain-form-data-penjualan-dengan-netbeans.html


Membuat Desain Form Data Penjualan Dengan Netbeans - Halo sobat helmyntest sorry nih udah lama banget ga ngebloging dan baru-baru ini gua lagi semangat kembali buat bloging jadi gua baru bisa ngelanjutin tentang membuat aplikasi penjualan dengan netbeans. kali ini gw mau lanjutin postingan sebelumnya Membuat Desain Form Data Barang Masuk. kali ini kita akan Membuat Desain Form Data Penjualan Dengan Netbeans dari aplikasi penjualan barang, langsung saja sob kita simak baik-baik! 

Fungsi dari form ini adalah agar  dapat  mengetahu  dan menginput data  para transaksi penjualan yang terjadi. Lakukan beberapa langkah berikut ini sob:

  1. Buatlah  file  baru  dalam  paket  AplikasiPenjualan,  dengan  cara  klik  kanan  paket  Penjualan, Pilih New -> JFrame Form…, sehingga muncul jendela New File.
  2. Pada jendela New JFrame Form, isikan FrmPenjualan pada kotak isian Class Name, dan  Package pilih aplikasipenjualan, lalu tekan tombol Finish untuk mengakhiri. 
  3. Desainlah form yang baru anda ciptakan seperti gambar dibawah ini:
http://helmyntest.blogspot.com/2017/01/membuat-desain-form-data-penjualan-dengan-netbeans.html


Keterangan :
http://helmyntest.blogspot.com/2017/01/membuat-desain-form-data-penjualan-dengan-netbeans.html


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.sql.*; 
import java.text.SimpleDateFormat;
import java.util.Date;

Pada bagian public class FrmPenjualan extends javax.swing.JFrame tambahkan kode berikut:
public final class FrmPenjualan extends javax.swing.JFrame {
Connection conn;
Statement cn;
    /**
     * Creates new form FrmPenjualan
     */
    public FrmPenjualan() {
        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();
        TanggalOtomatis();
         SetEditOff();
        TampilComboBarang();
        TampilComboPetugas();
        tampilfaktur();
    }

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,tbldetailpenjualan.jumlah,tbldetailpenjualan.subtotal,tblpenjualan.nofaktur " + 
                 "FROM tblbarang,tbldetailpenjualan,tblpenjualan WHERE tblbarang.kodebarang=tbldetailpenjualan.kodebarang " + 
                 "AND tblpenjualan.nofaktur=tbldetailpenjualan.nofaktur" + 
                 "AND tbldetailpenjualan.nofaktur='"+NoFaktur.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()); 
        } 
    } 
    
    // Variables declaration - do not modify 

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,tbldetailpenjualan.jumlah,tbldetailpenjualan.subtotal,tblpenjualan.nofaktur " +
                 "FROM tblbarang, tbldetailpenjualan, tblpenjualan " +
                 "WHERE tblbarang.kodebarang=tbldetailpenjualan.kodebarang " +
                 "AND tblpenjualan.nofaktur=tbldetailpenjualan.nofaktur " +
                 "AND tbldetailpenjualan.nofaktur='" + NoFaktur.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); 
   //  NoFaktur.setText(""); 
     NamaPetugas.setText(""); 
     IDPetugas.setSelectedIndex(0); 
     KodeBarang.setSelectedIndex(0); 
     NamaBarang.setText("");    
       HargaJual.setText(""); 
     Jumlah.setText(""); 
     Stok.setText(""); 
     Bayar.setText("0"); 
     Sisa.setText("0"); 
     Total.setText("0"); 
     SubTotal.setText("0"); 
  } 
     public void BersihDetail(){ 
     KodeBarang.setSelectedIndex(0); 
     NamaBarang.setText("");   
     HargaJual.setText(""); 
     Stok.setText(""); 
     Jumlah.setText(""); 
     SubTotal.setText("0"); 
     } 
      
     public void SetEditOff(){ 
     NoFaktur.setEnabled(false); 
     TglPenjualan.setEnabled(false); 
     IDPetugas.setEnabled(false); 
     KodeBarang.setEnabled(false); 
     Jumlah.setEnabled(false); 
     Hitung.setEnabled(false); 
     CariData.setEnabled(false); 
     AddItem.setEnabled(false); 
     } 
      
     public void SetEditOn(){ 
     NoFaktur.setEnabled(true); 
     TglPenjualan.setEnabled(true); 
     IDPetugas.setEnabled(true); 
     KodeBarang.setEnabled(true); 
     Jumlah.setEnabled(true); 
     SaveTransaction.setEnabled(true); 
     CariData.setEnabled(true); 
     Hitung.setEnabled(true); 
     AddItem.setEnabled(true); 
     }  



Buatlah  kode  program  pada  kombobox  idpetugas  dengan  cara  klik  kanan  pilih  events  ->  item  -> itemStatChanged.
  private void IDPetugasItemStateChanged(java.awt.event.ItemEvent evt) {                                           
        // 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) { 
        } 
          
    }                      

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  kodebarang  dengan  cara  klik  kanan  pilih  events  ->  item  -> itemStatChanged. 
 private void KodeBarangItemStateChanged(java.awt.event.ItemEvent evt) {                                            
        // 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); 
         
    }  

Buatlah private baru untuk menampilakn data pada kombobox iddistributor 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 private baru untuk menampilkan tanggal otomatis seperti berikut:
public void TanggalOtomatis(){
      Date tanggal = new Date();
      TglPenjualan.setText(""+ (String.format("%1$td/%1$tb/%1$tY",tanggal)));
  }

Buatlah  kode  program  untuk  menampilkan  perhitungan  subtotal  dengan  mengkilik  button  hitung  -> events -> action -> ActionPerformed. .
private void HitungActionPerformed(java.awt.event.ActionEvent evt) {                                     
        // TODO add your handling code here:
        int a;
int b;
double c;   
a = Integer.parseInt(HargaJual.getText());
b = Integer.parseInt(Jumlah.getText());
c = a * b; 
SubTotal.setText(String.valueOf(c));
    }

 Buatlah kode program untuk menampilkan total dengan cara klik kanan textfield  subtotal -> events -> charet -> charetUpdate. 
 private void SubTotalCaretUpdate(javax.swing.event.CaretEvent evt) {                                     
        // 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)); 

    }       

 Buatlah kode program untuk menampilkan perhitungan sisa bayar dengan cara klik kanan textfield bayar -> events -> charet -> charetUpdate.

private void BayarCaretUpdate(javax.swing.event.CaretEvent evt) {                                  
        // TODO add your handling code here:
        double a; 
double b; 
double c;  
a = Double.parseDouble(Bayar.getText());  
b = Double.parseDouble(Total.getText()); 
c = a - b;   
Sisa.setText(String.valueOf(c)); 
 
    } 


Buatlah  kode  program  AddNew  dengan  mengklik  kanan  button  AddNew  ->events  ->  action  -> ActionPerformed. 
private void AddNewActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
        SetEditOn(); 
        BersihData();
        NoFaktur.requestFocus();  
        tampilfaktur();
        
    } 

 Buatlah  kode  program  Add  Item  dengan  mengklik  kanan  button  Add Item  ->events  ->  action  -> ActionPerformed. 
private void AddItemActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
         String NM=NoFaktur.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 tbldetailpenjualan values('"+NoFaktur.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(); 
                KodeBarang.requestFocus(); 
            } catch (Exception ex) { 
                System.err.println(ex.getMessage()); 
            } 
        } 
    } 

 Buatlah  kode  program  SaveTransaction  dengan  mengklik  kanan  button  save Transaction  ->events  ->  action  -> ActionPerformed.
private void SaveTransactionActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // TODO add your handling code here:
          String NM=NoFaktur.getText(); 
         
        if ((NM.isEmpty())) { 
            JOptionPane.showMessageDialog(null,"data tidak boleh kosong, silahkan dilengkapi"); 
            NoFaktur.requestFocus(); 
        }else { 
             
            try { 
               koneksi (); 
                String     SQL = "insert into tblpenjualan values('"+NoFaktur.getText()+"',"+ 
                        "'"+TglPenjualan.getText()+"',"+ 
                        "'"+IDPetugas.getSelectedItem()+"',"+ 
                        "'"+Bayar.getText()+"',"+ 
                        "'"+Sisa.getText()+"',"+ 
                        "'"+Total.getText()+"')";  
                cn.executeUpdate(SQL); 
                cn.close(); 
                conn.close(); 
                BersihData(); 
                SetEditOff(); 
                SaveTransaction.setEnabled(false); 
            } catch (Exception ex) { 
                System.err.println(ex.getMessage()); 
            } 
        }
    }


 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();
           new FrmMenu().setVisible(true);
    } 

 Buatlah  kode  program  Cari  Data  dengan  mengklik  kanan  button  Cari Data->  events  ->  Action  -> ActionPerformed. 
private void CariDataActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        try { 
koneksi ();
String     SQL = "SELECT * FROM tblpenjualan where nofaktur='"+NoFaktur.getText()+"'"; 
ResultSet  res = cn.executeQuery(SQL); 
res.absolute(1); 
TampilGridDetail(); 
TglPenjualan.setText(res.getString("tglpenjualan")); 
IDPetugas.setSelectedItem(res.getString("idpetugas")); 
Bayar.setText(res.getString("bayar")); 
Sisa.setText(res.getString("sisa")); 
Total.setText(res.getString("total")); 
SaveTransaction.setEnabled(false); 
NoFaktur.setEnabled(false); 
CariData.setEnabled(false); 
} catch (SQLException ex) { 
} 
    } 

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

Buatlah private baru untuk menampilkan Faktur seperti berikut:
 public void tampilfaktur() {
 //  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("yyMMdd");
        String time = format1.format(sk);
        koneksi();
        String sql = "select right(nofaktur,1) as kd from tblpenjualan order by kd desc";

        try{
       try (ResultSet rs = cn.executeQuery(sql)) {
           if (rs.next()){
              
               int kode = Integer.parseInt(rs.getString("kd"))+1;
              
               NoFaktur.setText(time+Integer.toString(kode));
              
           }else{
              
               int kode = 1;
              
               NoFaktur.setText(time+Integer.toString(kode));
              
           }
       }

        }catch (SQLException | NumberFormatException e){

            JOptionPane.showMessageDialog(null, e);

        }     
       }


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


Doneeeee… Form selesai dibuat selanjutnya tinggal sobat jalankan dengan memencet shift+F6  dan akan tampil seperti berikut sob:
http://helmyntest.blogspot.com/2017/01/membuat-desain-form-data-penjualan-dengan-netbeans.html


Akhirnya selesai juga sob membuat Form Data Penjualan, untuk langkah selanjutnya akan gw bahas di lain kesempatan sob.  okelah sekian untuk postingan kali ini. terimakasih untuk sobat helmyntest atas kunjungannya. sampai jumpa dipostingan berikutnya! :v

Untuk Postingan Sebelumnya bisa cek disini sob :D atau bisa cek disini untuk indexnya :D

Share this

Related Posts

Previous
Next Post »