Minggu, 21 Juli 2013

Pembuatan Form Detail Transakasi pada Aplikasi Penjualan dengan Java Netbeans

         
             Postingan ini adalah Lanjutan dari Postingan yang lalu yaitu tentang form pengadaan barang, kali ini saya akan menjelaskan tentang pembuatan Form Detail Transaksi barang. Sebelumnya kita buat terlebih dahulu Form nya pada Netbeans, dibawah ini adalah gambar tentang pembuatan form detail transaksi barang pada Netbeans.


Setelah kita buat Form Detail transaksi tersebut langkah berikutnya adalah mengisi source code untuk form detail transaksi, source codenya adalah sebagai berikut.

import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
import koneksi.koneksi;


public class form_detail_transaksi extends javax.swing.JFrame {

    koneksi koneksi;
    Statement statement;
    ResultSet resultSet;
    int count = 0, count2 = 0;
    private String id_pengadaan,id_edit;

    public form_detail_transaksi(String idTransaksi) {
        initComponents();
        koneksi = new koneksi();
        this.id_pengadaan = idTransaksi;
        txtIdTransaksi.setText(id_pengadaan);
        select(id_pengadaan);
        totalTransaksi(id_pengadaan);
        select_harga_jual();
        panggilKategori();
        comboNamaBarang.removeAllItems();
        comboNamaBarang.addItem("-- Pilih --");
      
    }

    private void clear1() {
        txtIdBarang.setText("");
        txtHargaBeli.setText("");
        txtJumlah.setText("");
    }
    
     private void clear2() {
        txtId_Barang.setText("");
        txtHarga_jual.setText("");
    }

    private void select(String data) {
        Object header[] = {"ID TRANSAKSI", "ID BARANG", "NAMA BARANG", "HARGA BELI", "HARGA JUAL", "JUMLAH", "KADALUARSA"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabeldetail.setModel(defaultTable);

        int baris = tabeldetail.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select r.id_pengadaan,r.id_barang,b.nama_barang,r.harga_beli_satuan,b.harga_jual,r.jumlah_pengadaan_barang,r.tgl_kadaluarsa "
                + "from rel_pengadaan_barang r, barang b where r.id_pengadaan='" + data + "' and r.id_barang = b.id_barang";
        try {
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String idPengadaan = resultSet.getString(1);
                String idBarang = resultSet.getString(2);
                String namaBarang = resultSet.getString(3);
                double harga_beli = resultSet.getDouble(4);
                double harga_jual = resultSet.getDouble(5);
                int jumlah = resultSet.getInt(6);
                String kadaluarsa = resultSet.getString(7);

                Object kolom[] = {idPengadaan, idBarang, namaBarang, harga_beli, harga_jual, jumlah, kadaluarsa};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void select_harga_jual() {
        Object header[] = {"ID BARANG", "NAMA BARANG", "HARGA BELI TERMAHAL", "HARGA JUAL"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabelHargaJual.setModel(defaultTable);

        int baris = tabelHargaJual.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select r.id_barang, b.nama_barang, max(r.harga_beli_satuan),b.harga_jual from rel_pengadaan_barang r, barang b where b.id_barang = r.id_barang group by id_barang";
        try {
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String idBarang = resultSet.getString(1);
                String namaBarang = resultSet.getString(2);
                String maxHarga = resultSet.getString(3);
                String harga_jual = resultSet.getString(4);

                String kolom[] = {idBarang, namaBarang, maxHarga, harga_jual};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilKategori() {
        try {
            comboKategori.removeAllItems();
            String sql = "select kategori from kategori";
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                comboKategori.addItem(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilNamaBarang(String data) {
        try {
            String sql = "select nama_barang from barang where kategori='" + data + "'";
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql);
            comboNamaBarang.removeAllItems();
            comboNamaBarang.addItem("-- Pilih --");
            while (resultSet.next()) {
                comboNamaBarang.addItem(resultSet.getString(1).toString());
            }
        } catch (Exception e) {
//            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void panggilIdBarang(String data) {
        try {
            String sql = "SELECT ID_BARANG FROM barang WHERE NAMA_BARANG='" + data + "'";
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                txtIdBarang.setText(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void updateHarga() {
        String sql_update = "update barang set harga_jual = '" + txtHarga_jual.getText() + "' where id_barang = '" + txtId_Barang.getText() + "';";
        try {
            statement = koneksi.connection.createStatement();
            statement.executeUpdate(sql_update);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    
    private void updateDetailTransaksi() {
       String sql=null;
        
        if (radioAda.isSelected()) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tgl_kadaluarsa = dateFormat.format(tglKadaluarsa.getDate());
            
            sql ="UPDATE rel_pengadaan_barang "
                    + "SET ID_BARANG ='"+txtIdBarang.getText()+"', JUMLAH_PENGADAAN_BARANG ='"+txtJumlah.getText()+"', HARGA_BELI_SATUAN ='"+txtHargaBeli.getText()+"',"
                    + "TGL_KADALUARSA ='"+tgl_kadaluarsa+"' WHERE ID_PENGADAAN ='"+id_pengadaan +"' AND ID_BARANG='"+id_edit +"'";
        } else if (radioTdkAda.isSelected()) {
            sql ="UPDATE rel_pengadaan_barang "
                    + "SET ID_BARANG ='"+txtIdBarang.getText()+"', JUMLAH_PENGADAAN_BARANG ='"+txtJumlah.getText()+"', HARGA_BELI_SATUAN ='"+txtHargaBeli.getText()+"',"
                    + "TGL_KADALUARSA ='Tidak ada' WHERE ID_PENGADAAN ='"+id_pengadaan +"' AND ID_BARANG='"+id_edit +"'";
        }
        
        try {
            statement = koneksi.connection.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void insertData() {
       String sql = null;
        
        if (radioAda.isSelected()) {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tgl_kadaluarsa = dateFormat.format(tglKadaluarsa.getDate());
           //  sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + txtIdTransaksi.getText() + "', '" + txtIdBarang.getText() + "', '" + comboKategori.getSelectedItem().toString() + "', '" + comboNamaBarang.getSelectedItem().toString()+"','"+txtHargaBeli.getText()+"','"+txtJumlah.getText()+ "','" + tgl_kadaluarsa + "')";
        sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + txtIdTransaksi.getText() + "', '" + txtIdBarang.getText() + "', '" + txtJumlah.getText() + "', '" + txtHargaBeli.getText() + "','" + tgl_kadaluarsa + "')";

        }
        else if (radioTdkAda.isSelected()) {
          // sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + txtIdTransaksi.getText() + "', '" + txtIdBarang.getText() + "', '" + comboKategori.getSelectedItem().toString() + "', '" + comboNamaBarang.getSelectedItem().toString()+"','"+txtHargaBeli.getText()+ "',0,null)";
         sql = "INSERT INTO rel_pengadaan_barang VALUES ('" + txtIdTransaksi.getText() + "', '" + txtIdBarang.getText() + "', '" + txtJumlah.getText() + "', '" + txtHargaBeli.getText() + "','Tidak ada')";

        }

        try {
            statement = koneksi.connection.createStatement();
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

    private void totalTransaksi(String data) {
        String sql_select = "SELECT SUM(JUMLAH_PENGADAAN_BARANG*HARGA_BELI_SATUAN) FROM rel_pengadaan_barang WHERE ID_PENGADAAN='" + data + "'";
        try {
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                txt_total_transaksi.setText(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
    

 private void UpdateStok() {
        String idBarang = txtIdBarang.getText();
        String jumlah = txtJumlah.getText();
        String sqlstok = "SELECT stok FROM barang WHERE id_barang='" + idBarang + "'";
        try {
           statement = koneksi.connection.createStatement();
           resultSet = statement.executeQuery(sqlstok);
            while (resultSet.next()) {
                String stoklama = resultSet.getString(1);
                double stok = Double.parseDouble(jumlah) + Double.parseDouble(stoklama);
                String sql = "UPDATE barang SET stok='" + stok + "' WHERE id_barang='" + idBarang + "'";
                try {
                    statement = koneksi.connection.createStatement();
                    statement.executeUpdate(sql);
                } catch (Exception e) {
                    System.out.println("Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
                    JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena data telah tersedia!\n" + e.getMessage());
                }
            }
        } catch (Exception e) {
            System.out.println("Terjadi kesalahan, karena " + e.getMessage());
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
        }
    }
 private void TotalTransaksidipengadaan() {
        String sql_update = "update pengadaan set total_transaksi = '" + txt_total_transaksi.getText() + "' where id_pengadaan = '" + txtIdTransaksi.getText() + "';";
        
        try {
            statement = koneksi.connection.createStatement();
            statement.executeUpdate(sql_update);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }


private void deleteData() {
        String sql_delete = "DELETE FROM rel_pengadaan_barang WHERE ID_PENGADAAN ='" + txtIdTransaksi.getText() + "' AND ID_BARANG ='" + txtIdBarang.getText() + "'";
        try {
            statement = koneksi.connection.createStatement();
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Data masih digunakan!!");
        }
    }

    public void Search() {
        Object header[] = {"ID BARANG", "NAMA BARANG", "HARGA BELI TERMAHAL", "HARGA JUAL"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabelHargaJual.setModel(defaultTable);

        String cari = txtSearch.getText();
        String sql = "select r.id_barang, b.nama_barang, max(r.harga_beli_satuan),b.harga_jual from rel_pengadaan_barang r, barang b "
                + "where b.id_barang = r.id_barang  and b.id_barang LIKE '%" + cari + "%' or b.nama_barang LIKE '%" + cari + "%'";
        try {
            statement = koneksi.connection.createStatement();
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                String idBarang = resultSet.getString(1);
                String namaBarang = resultSet.getString(2);
                String maxHarga = resultSet.getString(3);
                String harga_jual = resultSet.getString(4);

                String kolom[] = {idBarang, namaBarang, maxHarga, harga_jual};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            System.out.println("Terjadi kesalahan, karena " + e.getMessage());
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, karena " + e.getMessage());
        }
    }


Berikutnya kita isi source code pada Button dan combo box tersebut.
Berikut penjelasan source codenya

  • Button Insert
private void btninsertActionPerformed(java.awt.event.ActionEvent evt) {                                          
        
         if (txtHargaBeli.getText().isEmpty() || txtJumlah.getText().isEmpty() ) {
            JOptionPane.showMessageDialog(null, "Pengisian Form Harus Lengkap");
        }else{
             insertData();
             UpdateStok();
             TotalTransaksidipengadaan();
        select(id_pengadaan);
        select_harga_jual();
        totalTransaksi(id_pengadaan);
        clear1();
        }
    }      

  • Button Set Harga
    private void btndelete1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        if (txtIdTransaksi.getText().isEmpty() || txtIdBarang.getText().isEmpty() || txtHargaBeli.getText().isEmpty() || txtJumlah.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan diedit");
        } else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin mengedit kode barang : " + txtIdBarang.getText(), null, JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                updateDetailTransaksi();
                select(id_pengadaan);
                select_harga_jual();
                totalTransaksi(id_pengadaan);
                clear1();
            } else if (hasil == JOptionPane.NO_OPTION) {
                clear1();
            }
        }
    }   

  • Button Delete
    private void btndeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        if (txtIdTransaksi.getText().isEmpty() || txtIdBarang.getText().isEmpty() || txtHargaBeli.getText().isEmpty() || txtJumlah.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan dihapus");
        } else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin menghapus kode barang : " + txtIdBarang.getText(), null, JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                deleteData();
                select(id_pengadaan);
                select_harga_jual();
                totalTransaksi(id_pengadaan);
                clear1();
            } else if (hasil == JOptionPane.NO_OPTION) {
                clear1();
            }
        }
    }        

  • Button Cancel
private void btncancelActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        new form_pengadaan_barang().show();
        this.dispose();
    }   

  • Button Refresh
private void btnRefreshActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
        select_harga_jual();
    }


  • Combo Nama Barang
private void comboNamaBarangItemStateChanged(java.awt.event.ItemEvent evt) {                                                 
        // TODO add your handling code here:
        if (count2 >= 2) {
            if (comboNamaBarang.getSelectedItem().toString().equals("-- Pilih --")) {
            } else {
                panggilIdBarang(comboNamaBarang.getSelectedItem().toString());
            }
        } else {
            count2++;
        }
    }      

  • Combo Kategori
   private void comboKategoriItemStateChanged(java.awt.event.ItemEvent evt) {                                               
        // TODO add your handling code here:
        if (count >= 2) {
            panggilNamaBarang(comboKategori.getSelectedItem().toString());
        } else {
            count++;
        }
    }    

  • Radio
    private void radioAdaMouseExited(java.awt.event.MouseEvent evt) {                                     
        // TODO add your handling code here:
        radioAda.setEnabled(true);
        tglKadaluarsa.setEnabled(true);
    }                                    

    private void radioAdaMouseEntered(java.awt.event.MouseEvent evt) {                                      
        // TODO add your handling code here:
        radioAda.setEnabled(true);
        radioTdkAda.setEnabled(false);
    }                                     

    private void radioTdkAdaMouseEntered(java.awt.event.MouseEvent evt) {                                         
        // TODO add your handling code here:
        radioTdkAda.setEnabled(true);
        radioAda.setEnabled(false);
        tglKadaluarsa.setEnabled(false);
    }                                        

  • Tabel
private void tabelHargaJualMouseClicked(java.awt.event.MouseEvent evt) {                                            
        // TODO add your handling code here:
        txtId_Barang.setText(tabelHargaJual.getValueAt(tabelHargaJual.getSelectedRow(), 0).toString());
        txtHarga_jual.setText(tabelHargaJual.getValueAt(tabelHargaJual.getSelectedRow(), 3).toString());

    }         

  • Tabel Detail
private void tabeldetailMouseClicked(java.awt.event.MouseEvent evt) {                                         
        // TODO add your handling code here:
        txtIdTransaksi.setText(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 0).toString());
        txtIdBarang.setText(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 1).toString());
        comboKategori.setSelectedItem(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 2));
        comboNamaBarang.setSelectedItem(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 3));
        txtHargaBeli.setText(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 3).toString());
        txtJumlah.setText(tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 5).toString());
        id_edit = tabeldetail.getValueAt(tabeldetail.getSelectedRow(), 1).toString();
    }                                   


Setelah kita mengisikan source codenya langkah selanjutnya kita coba jalankan program form tersebut, sebelum menjalankan form tersbut kita harus kembali pada Form Pengadaan barang lalu kita klik detail, contohnya adalah seperti gambar dibawah ini.


Bila kita mengklik detail maka selanjutnya akan menuju pada Form Detail Transaksi barang. pada Form detail Transaksi in, ID TRANSAKSI sudah terisi secara otomatis dan untuk inputan Kategori Barang dan Nama barang, kita akan memilih melalui combo box karena data sudah ada pada database. seperti contoh gambar dibawah ini.



Bila kita selesai menginputkan, maka data yang kita inputkan akan ada pada tabel dibawahnya, beserta total transaksi untuk barang tersebut.



Langkah selanjutnya kita masuk pada tabbed pane harga jual barang. Data yang kita inputkan akan masuk pada tabel harga jual barang. berikut ini adalah gambar form harga jual barang setelah kita input data.


Langkah Berikutnya kita mengeset untuk harga jual barang, caranya yaitu dengan mengklik tabel data yang akan di set harga jualnya kemudian kita ubah harga jual..
seperti gambar berikut.


Sekian Penjelasan dari form Detail transaksi barang.

7 komentar:

  1. bro klo bikin form pengadaan barang aja tanpa bikin form transaksi barang bisa jalan gag tuh ?
    ane dapet tugas dari dosen nih bikin pengadaan barang aja
    mohon bantuannya bro

    BalasHapus
  2. boleh minta file javanya bang... di email ke subangkit@ymmail.com

    BalasHapus
  3. Bos mw tanya klu 1 id transaksi cuman bli barangy lebih dari satu gmna ya sourcodey??mhon pencerahan

    BalasHapus
  4. boleh minta file javanya bang, kirim ke email rachmad.kiki@gmail.com terima kasih

    BalasHapus
  5. pusing... ga dijelasin cara masukin scriptnya... gambar demonya lumayan ngerti...

    BalasHapus
  6. boleh minta file projeknya mas

    BalasHapus