Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans

Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans

Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans

form penjualan adalah sebuah form yang sangat penting dalam aplikasi penjualan dimana form ini mencakup keseluruhan form yang ada di aplikasi baik it form barang, stok dan masih banyak lagi.


berikut ini freakprogrammer.com akan membagikan tutorial Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans.
form penjualan
Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans
Buatlah design GUI seperti tampilan di atas, kemudian masukan source code di bawah ini agar form tersebut dapat bekerja.
Source Code
  1. import java.sql.ResultSet;
  2. import java.sql.SQLException;
  3. import java.sql.Statement;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.Vector;
  7. import java.util.logging.Level;
  8. import java.util.logging.Logger;
  9. import javax.swing.JOptionPane;
  10. import javax.swing.UIManager;
  11. import javax.swing.UnsupportedLookAndFeelException;
  12. import javax.swing.table.DefaultTableModel;
  13. import koneksi.koneksi;
  14. import sun.applet.Main;
  15. /**
  16.  *
  17.  * @author Moch. Arif S.
  18.  */
  19. public class Form_Penjualan_Barang extends javax.swing.JFrame {
  20.     koneksi k;
  21.     Statement statement;
  22.     ResultSet resultSet;
  23.     String idPenjualan, id_barang,ubah;
  24.     int count,jml_awal;
  25.    
  26.     public Form_Penjualan_Barang() {
  27.         initComponents();
  28.         k = new koneksi();
  29.         selectTabelHargaJual();
  30.         selectTabelHargaBeli();
  31.         kondisiawal();
  32.     }
  33.     private void clear() {
  34.         txt_idbarang.setText("");
  35.         txt_cari.setText("");
  36.         txt_jmlh.setText("");
  37.         txt_hrga.setText("");
  38.         txt_bayar.setText("");
  39.     }
  40.     private void kondisiawal() {
  41.         btninsert.setEnabled(false);
  42.         btndelete.setEnabled(false);
  43.         txt_idbarang.setEnabled(false);
  44.         txt_jmlh.setEnabled(false);
  45.         tbl_barangbeli.setEnabled(false);
  46.         txt_tot.setEnabled(false);
  47.         txt_bayar.setEnabled(false);
  48.         clear();
  49.         btntransaksibaru.setEnabled(true);
  50.         idPenjualan = "";
  51.     }
  52.     private void kondisiAktif() {
  53.         btninsert.setEnabled(true);
  54.         btndelete.setEnabled(true);
  55.         txt_jmlh.setEnabled(true);
  56.         tbl_barangbeli.setEnabled(true);
  57.         btntransaksibaru.setEnabled(false);
  58.         txt_bayar.setEnabled(true);
  59.         clear();
  60.     }
  61.     private void selectTabelHargaJual(){
  62.         Object header[] = {"ID BARANG","NAMA BARANG","HARGA JUAL","STOK"};
  63.         DefaultTableModel defaultTable = new DefaultTableModel(null,header);
  64.         tbl_barangjual.setModel(defaultTable);
  65.         int baris = tbl_barangjual.getRowCount();
  66.         for (int i = 0; i < baris; i++) {
  67.             defaultTable.removeRow(i);
  68.         }
  69.         String sql_select = "select id_barang,nama_barang,harga_jual,stok from barang where stok > 0";
  70.         try {
  71.             statement = k.connection.createStatement();
  72.             resultSet = statement.executeQuery(sql_select);
  73.             while(resultSet.next()){
  74.                 String idBarang = resultSet.getString(1);
  75.                 String namaBarang = resultSet.getString(2);
  76.                 String harga_jual = resultSet.getString(3);
  77.                 String stok = resultSet.getString(4);
  78.                 String kolom[] = {idBarang,namaBarang,harga_jual,stok};
  79.                 defaultTable.addRow(kolom);
  80.             }
  81.         } catch (Exception e) {
  82.             JOptionPane.showMessageDialog(null, e.getMessage());
  83.         }
  84.     }
  85.     private void selectTabelHargaBeli() {
  86.         Object header[] = {"ID PENJUALAN""ID BARANG""NAMA BARANG""HARGA""JUMLAH""TOTAL HARGA"};
  87.         DefaultTableModel defaultTable = new DefaultTableModel(null, header);
  88.         tbl_barangbeli.setModel(defaultTable);
  89.         int baris = tbl_barangbeli.getRowCount();
  90.         for (int i = 0; i < baris; i++) {
  91.             defaultTable.removeRow(i);
  92.         }
  93.         String sql_select = "select r.id_penjualan,r.id_barang,b.nama_barang,b.harga_jual,r.jumlah_pengadaan_barang,r.total_harga "
  94.                 + "from rel_penjualan_barang r, barang b where r.id_barang = b.id_barang and r.id_penjualan ='" + idPenjualan + "'";
  95.         try {
  96.             statement = k.connection.createStatement();
  97.             resultSet = statement.executeQuery(sql_select);
  98.             while (resultSet.next()) {
  99.                 String idjual = resultSet.getString(1);
  100.                 String idBarang = resultSet.getString(2);
  101.                 String namaBarang = resultSet.getString(3);
  102.                 String harga = resultSet.getString(4);
  103.                 String jml = resultSet.getString(5);
  104.                 String total = resultSet.getString(6);
  105.                 String kolom[] = {idjual, idBarang, namaBarang, harga, jml, total};
  106.                 defaultTable.addRow(kolom);
  107.             }
  108.         } catch (Exception e) {
  109.             JOptionPane.showMessageDialog(null, e.getMessage());
  110.             System.out.println("" + e.getMessage());
  111.         }
  112.     }
  113.     private void searchTabelHargaJual(){
  114.         Object header[] = {"ID BARANG","NAMA BARANG","HARGA JUAL","STOK"};
  115.         DefaultTableModel defaultTable = new DefaultTableModel(null,header);
  116.         tbl_barangjual.setModel(defaultTable);
  117.         int baris = tbl_barangjual.getRowCount();
  118.         for (int i = 0; i < baris; i++) {
  119.             defaultTable.removeRow(i);
  120.         }
  121.         String sql_select = "select id_barang,nama_barang,harga_jual,stok from barang "
  122.                 + "where stok > 0 and (nama_barang like '%"+txt_cari.getText()+"%' or id_barang like '%"+txt_cari.getText()+"%')";
  123.         try {
  124.             statement = k.connection.createStatement();
  125.             resultSet = statement.executeQuery(sql_select);
  126.             while(resultSet.next()){
  127.                 String idBarang = resultSet.getString(1);
  128.                 String namaBarang = resultSet.getString(2);
  129.                 String harga_jual = resultSet.getString(3);
  130.                 String stok = resultSet.getString(4);
  131.                 String kolom[] = {idBarang,namaBarang,harga_jual,stok};
  132.                 defaultTable.addRow(kolom);
  133.             }
  134.         } catch (Exception e) {
  135.             JOptionPane.showMessageDialog(null, e.getMessage());
  136.         }
  137.     }
  138.     private String insertTabelPenjualan() {
  139.         try {
  140.             Date date = new Date();
  141.             SimpleDateFormat dateformat=new SimpleDateFormat ("yyyy-MM-dd");
  142.             String tanggal=dateformat.format(date);
  143.             txttanggal.setDate(date);
  144.             SimpleDateFormat dateformat2=new SimpleDateFormat ("dd.MM.yyyy");
  145.             String tanggal2=dateformat2.format(date);
  146.             int count = 100;
  147.             String sqltanggal = "select tanggal_penjualan,id_penjualan from penjualan";
  148.             resultSet = statement.executeQuery(sqltanggal);
  149.             while (resultSet.next()) {
  150.                 String data1 = resultSet.getString(1);
  151.                 String data2 = resultSet.getString(2);
  152.                 if (data1.equals(tanggal)) {
  153.                     if (count == Integer.valueOf(data2.substring(1417))) {
  154.                         count++;
  155.                     }
  156.                 }
  157.             }
  158.             idPenjualan = "TJ." + tanggal2 + "." + count;
  159.             String sql = "insert into penjualan values('" + idPenjualan + "','administrator','" + tanggal + "',0)";
  160.             statement.executeUpdate(sql);
  161.         } catch (Exception e) {
  162.             JOptionPane.showMessageDialog(null, e.getMessage());
  163.         }
  164.         return idPenjualan;
  165.     }
  166.     private void insertRelPenjualan() {
  167.         double total = Integer.parseInt(txt_jmlh.getText()) * Double.parseDouble(txt_hrga.getText());
  168.         try {
  169.             String sql = "INSERT INTO rel_penjualan_barang "
  170.                     + "VALUES('" + txt_idbarang.getText() + "','" + idPenjualan + "','" + txt_jmlh.getText() + "','"+hitungLaba()+"','" + total + "')";
  171.             statement = k.connection.createStatement();
  172.             statement.executeUpdate(sql);
  173.         } catch (Exception e) {
  174.             JOptionPane.showMessageDialog(null, e.getMessage());
  175.             System.out.println("" + e.getMessage());
  176.         }
  177.     }
  178.     private void total_transaksi() {
  179.         String total = "SELECT sum(total_harga) from rel_penjualan_barang where id_penjualan ='" + idPenjualan + "'";
  180.         try {
  181.             statement = k.connection.createStatement();
  182.             resultSet = statement.executeQuery(total);
  183.             while (resultSet.next()) {
  184.                 txt_tot.setText(resultSet.getString(1));
  185.             }
  186.         } catch (Exception e) {
  187.             JOptionPane.showMessageDialog(null, e.getMessage());
  188.             System.out.println("" + e.getMessage());
  189.         }
  190.     }
  191.     private void updateTotalTransaksi() {
  192.         String sql_update = "UPDATE penjualan SET total_penjualan = '" + txt_tot.getText() + "' WHERE ID_PENJUALAN = '" + idPenjualan + "'";
  193.         try {
  194.             statement = k.connection.createStatement();
  195.             statement.executeUpdate(sql_update);
  196.         } catch (Exception e) {
  197.             JOptionPane.showMessageDialog(null, e.getMessage());
  198.             System.out.println("" + e.getMessage());
  199.         }
  200.     }
  201.     private double hitungLaba() throws SQLException {
  202.         Vector<String> vektorIdPengadaan = new Vector();
  203.         Vector<String> vektorIdBarang = new Vector();
  204.         Vector<Integer> jum = new Vector();
  205.         Vector<Double> hargaBeli = new Vector();
  206.         Vector<Double> hargaJual = new Vector();
  207.         double laba = 0;
  208.         try {
  209.             String sql = "select r.id_pengadaan,r.id_barang,r.harga_beli_satuan,b.harga_jual,r.belum_terjual "
  210.                     + "from rel_pengadaan_barang r,barang b "
  211.                     + "where r.id_barang=b.id_barang AND r.id_barang='" + txt_idbarang.getText() + "' and r.belum_terjual>0";
  212.             resultSet = statement.executeQuery(sql);
  213.             while (resultSet.next()) {
  214.                 vektorIdPengadaan.addElement(resultSet.getString(1));
  215.                 vektorIdBarang.addElement(resultSet.getString(2));
  216.                 hargaBeli.addElement(resultSet.getDouble(3));
  217.                 hargaJual.addElement(resultSet.getDouble(4));
  218.                 jum.addElement(resultSet.getInt(5));
  219.             }
  220.             int jumlah;
  221.             int jumlahJual = Integer.valueOf(txt_jmlh.getText());
  222.             for (int i = 0; i < vektorIdPengadaan.size(); i++) {
  223.                 jumlah = jum.elementAt(i) - jumlahJual;
  224.                 if (jumlah >= 0) {
  225.                     try {
  226.                         String query = "update rel_pengadaan_barang set belum_terjual=" + jumlah + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
  227.                         statement.executeUpdate(query);
  228.                         laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jumlahJual;
  229.                     } catch (Exception e) {
  230.                         JOptionPane.showMessageDialog(null, e.getMessage());
  231.                     }
  232.                     break;
  233.                 } else {
  234.                     try {
  235.                         String query1 = "update rel_pengadaan_barang set belum_terjual=" + 0 + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
  236.                         statement.executeUpdate(query1);
  237.                     } catch (Exception e) {
  238.                         JOptionPane.showMessageDialog(null, e.getMessage());
  239.                     }
  240.                     laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jum.elementAt(i);
  241.                     jumlahJual = -1 * jumlah;
  242.                 }
  243.             }
  244.         } catch (NumberFormatException n) {
  245.             JOptionPane.showMessageDialog(null, n.getMessage());
  246.         }
  247.         return laba;
  248.     }
  249.     private int cekStok() {
  250.         int stok = 0;
  251.         String total = "SELECT stok from barang where id_barang ='" + id_barang + "'";
  252.         try {
  253.             statement = k.connection.createStatement();
  254.             resultSet = statement.executeQuery(total);
  255.             while (resultSet.next()) {
  256.                 stok = Integer.parseInt(resultSet.getString(1));
  257.             }
  258.         } catch (Exception e) {
  259.             JOptionPane.showMessageDialog(null, e.getMessage());
  260.             System.out.println("" + e.getMessage());
  261.         }
  262.         return stok;
  263.     }
  264.     private void UpdateStok(String ubah) {
  265.         int stokBaru = 0;
  266.         try {
  267.             if(ubah.equals("insert")){
  268.                 stokBaru = cekStok() - Integer.parseInt(txt_jmlh.getText());
  269.             }else if(ubah.equals("delete")){
  270.                 stokBaru=cekStok()+jml_awal;
  271.             }
  272.             String total = "UPDATE barang set stok ='" + stokBaru + "' where id_barang = '" + id_barang + "'";
  273.             statement.executeUpdate(total);
  274.         } catch (Exception e) {
  275.             JOptionPane.showMessageDialog(null, e.getMessage());
  276.             System.out.println("" + e.getMessage());
  277.         }
  278.     }
  279.     private void delete(){
  280.         String sql_delete="DELETE FROM rel_penjualan_barang WHERE ID_PENJUALAN='"+idPenjualan+"' AND ID_BARANG='"+idHapus.getText()+"'";
  281.         try {
  282.             statement=k.connection.createStatement();
  283.             statement.executeUpdate(sql_delete);
  284.         } catch (Exception e) {
  285.             JOptionPane.showMessageDialog(null"Data masih digunakan!!");
  286.             System.out.println(""+e.getMessage());
  287.         }
  288.     }
Kemudian masukan source code di bawah ini yang mana fungsi dari source code ini adalah untuk tombol berupa button agar berfungsi.
Source Code
  1. private void btninsertActionPerformed(java.awt.event.ActionEvent evt) {                                          
  2.         // TODO add your handling code here:
  3.         ubah="insert";
  4.         if (Integer.parseInt(txt_jmlh.getText()) <= cekStok()) {
  5.             insertRelPenjualan();
  6.             total_transaksi();
  7.             UpdateStok(ubah);
  8.             selectTabelHargaJual();
  9.             selectTabelHargaBeli();
  10.             clear();
  11.         } else {
  12.             JOptionPane.showMessageDialog(null"Stok barang tidak cukup!!");
  13.         }
  14.     }                                        
  15.     private void btnkembaliActionPerformed(java.awt.event.ActionEvent evt) {                                          
  16.         // TODO add your handling code here:
  17.         new MenuUtama().setVisible(true);
  18.         this.dispose();
  19.     }                                          
  20.     private void btndeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
  21.         // TODO add your handling code here:
  22.         ubah="delete";
  23.         if(idHapus.getText().equals("")){
  24.             JOptionPane.showMessageDialog(null"Pilih data yang akan dihapus");
  25.         }
  26.         else{
  27.             int hasil=JOptionPane.showConfirmDialog(null"Apakah benar anda ingin menghapus kode kategori : "+idHapus.getText(),null,JOptionPane.YES_NO_OPTION);
  28.             if(hasil == JOptionPane.YES_OPTION){
  29.                 delete();
  30.                 UpdateStok(ubah);
  31.                 idHapus.setText("");
  32.                 selectTabelHargaBeli();
  33.                 selectTabelHargaJual();
  34.             }
  35.             else if(hasil==JOptionPane.NO_OPTION){
  36.                 idHapus.setText("");
  37.             }
  38.         }
  39.     }                                        
  40.     private void txt_cariKeyTyped(java.awt.event.KeyEvent evt) {                                  
  41.         // TODO add your handling code here:
  42.         searchTabelHargaJual();
  43.     }                                
  44.     private void btntransaksibaruActionPerformed(java.awt.event.ActionEvent evt) {                                                
  45.         // TODO add your handling code here:
  46.         kondisiAktif();
  47.         txt_idpenjualan.setText(insertTabelPenjualan());
  48.     }                                                
  49.     private void tbl_barangjualMouseClicked(java.awt.event.MouseEvent evt) {                                            
  50.         // TODO add your handling code here:
  51.         id_barang = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow()0).toString();
  52.         String namaBarang = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow()1).toString();
  53.         String harga = tbl_barangjual.getValueAt(tbl_barangjual.getSelectedRow()2).toString();
  54.         txt_idbarang.setText(id_barang);
  55.         txt_cari.setText(namaBarang);
  56.         txt_hrga.setText(harga);
  57.     }                                          
  58.     private void txt_bayarKeyPressed(java.awt.event.KeyEvent evt) {                                    
  59.         // TODO add your handling code here:
  60.         double sisa = Double.parseDouble(txt_bayar.getText()) - Double.parseDouble(txt_tot.getText());
  61.         if (evt.getKeyChar() == '\n') {
  62.             if (sisa >= 0) {
  63.                 if (sisa != 0) {
  64.                     JOptionPane.showMessageDialog(null"Kembalian Anda = " + sisa);
  65.                 } else {
  66.                     JOptionPane.showMessageDialog(null"Uang anda pas");
  67.                 }
  68.                 updateTotalTransaksi();
  69.                 clear();
  70.                 kondisiawal();
  71.                 selectTabelHargaBeli();
  72.                 selectTabelHargaJual();
  73.             } else {
  74.                 JOptionPane.showMessageDialog(null"Uang anda kurang = " + (sisa * (-1)));
  75.             }
  76.         }
  77.     }                                    
  78.     private void tbl_barangbeliMouseClicked(java.awt.event.MouseEvent evt) {                                            
  79.         // TODO add your handling code here:
  80.         idHapus.setText(tbl_barangbeli.getValueAt(tbl_barangbeli.getSelectedRow()1).toString());
  81.         jml_awal=Integer.valueOf(tbl_barangbeli.getValueAt(tbl_barangbeli.getSelectedRow()4).toString());
  82.     }                                          
  83.     private void txt_jmlhKeyPressed(java.awt.event.KeyEvent evt) {                                    
  84.         // TODO add your handling code here:
  85.         ubah="insert";
  86.         if(evt.getKeyChar()=='\n'){
  87.             if(Integer.parseInt(txt_jmlh.getText()) <= cekStok()){
  88.                 insertRelPenjualan();
  89.                 total_transaksi();
  90.                 UpdateStok(ubah);
  91.                 updateTotalTransaksi();
  92.             }
  93.         }
  94.     }
jika semua source code dan design Gui sudah di buat kemudian jalankan aplikasi nya maka tampilan aplikasi akan seperti gambar di bawah ini.
Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans
Sedikit penjelasan dari form tersebut.
  1. button transaksi baru : aan membuka form barang yang akan di beli kemudian kita akan memilih sesuai kode barang.
  2. button insert : untuk menambahkan data ke database.
  3. button delete : untuk membersihkan field.
  4. button back : untuk kembali ke form sebelumnya.
Itulah acar Membuat Form Penjualan pada Aplikasi Penjualan dengan Java Netbeans jika ada pertanyaan silahkan di tanyakan di kolom komentar. 
semoga tutorial ini bermanfaat.


Buka Komentar