IKLAN

Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL

Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL - Hallo sahabat TUTORIAL CUY, Pada Artikel yang anda baca kali ini dengan judul Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL, kami telah mempersiapkan artikel ini dengan baik untuk anda baca dan ambil informasi didalamnya. mudah-mudahan isi postingan Artikel APLIKASI, Artikel JAVA, yang kami tulis ini dapat anda pahami. baiklah, selamat membaca.

Judul : Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL
link : Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL

Baca juga


Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL


     Pada form ini, dibuat untuk melakukan penjualan barang. Nantinya, form ini akan terdapat dua buah tabel. Tabel yang pertama adalah tabel daftar barang, yaitu untuk melihat barang apa saja yang ada, dimana barang tersebut akan ditampilkan ketika stok-nya lebih dari nol, jika stok kurang maka tidak akan ditampilkan. Setelah dibeli, barang akan di tampung pada tabel kedua. Untuk itu simak lebih teliti pada panduan berikut ini :
1. Buatlah sebuah JForm, desain bebas akan tetapi juga dapat mengikuti desain form seperti berikut :


2. Dan beri nama masing-masing txtfield, jDateChooser, button, table, serta jLabel. Selanjutnya, dalam form ini, ketika user belum melakukan transaksi baru. ada beberapa fungsi yang di setEnabled False pada kondisi awal, yaitu :
private void kondisiawal() {
        btninsert.setEnabled(false);
        btndelete.setEnabled(false);
        txt_idbarang.setEnabled(false);
        txt_jmlh.setEnabled(false);
        tbl_barangbeli.setEnabled(false);
        txt_tot.setEnabled(false);
        txt_bayar.setEnabled(false);
        clear();
        btntransaksibaru.setEnabled(true);
        idPenjualan = "";
    }
Sedangkan setelah kondisi transaksi aktif akan di setEnabled True, yaitu :
 private void kondisiAktif() {
        btninsert.setEnabled(true);
        btndelete.setEnabled(true);
        txt_jmlh.setEnabled(true);
        tbl_barangbeli.setEnabled(true);
        btntransaksibaru.setEnabled(false);
        txt_bayar.setEnabled(true);
        clear();
    }
3. Setelah itu kita akan membuat kode tanggal secara otomatis pada saat button transaksi baru di klik. Sebelumnya kita juga pernah melakukannya pada transaksi pengadaan sebelumnya. Masih ingat? jika tidak saya akan memberikan source code diman source code tersebut termasuk bernama InsertTabelPenjualan ( ):
 private String insertTabelPenjualan() {
        try {
            Date date = new Date();
            SimpleDateFormat dateformat=new SimpleDateFormat ("yyyy-MM-dd");
            String tanggal=dateformat.format(date);
            txttanggal.setDate(date);

            SimpleDateFormat dateformat2=new SimpleDateFormat ("dd.MM.yyyy");
            String tanggal2=dateformat2.format(date);
            int count = 100;
            String sqltanggal = "select tanggal_penjualan,id_penjualan from penjualan";
            resultSet = statement.executeQuery(sqltanggal);
            while (resultSet.next()) {
                String data1 = resultSet.getString(1);
                String data2 = resultSet.getString(2);
                if (data1.equals(tanggal)) {
                    if (count == Integer.valueOf(data2.substring(14, 17))) {
                        count++;
                    }
                }
            }
            idPenjualan = "TJ." + tanggal2 + "." + count;
            String sql = "insert into penjualan values('" + idPenjualan + "','"+Form_Login.userLogin+"','" + tanggal + "',0)";
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
        return idPenjualan;
    }
Keterangan : source code diatas akan menampilkan kode tanggal secara otomatis. sehingga tidak perlu melakukan inputan.

4. Berikutnya adalah , langkah untuk membuat bagaimana jika terjadi transaksi maka terdapat stok barang yang berkurang dan langsung ditampilkan pada tabel. Maka perlu adanya update stok barang. Jika terjadi cancel dalam melakukan transaksi, maka stok barang harus bertambah, sehingga kita membutuhkan update stok barang. kemudian laba akan dihitung pada tiap transaksi. Berikut source code untuk menghitung laba :
Source code memperoleh laba :
 private double hitungLaba() throws SQLException {
        Vector vektorIdPengadaan = new Vector();
        Vector vektorIdBarang = new Vector();
        Vector jum = new Vector();
        Vector hargaBeli = new Vector();
        Vector hargaJual = new Vector();
        double laba = 0;
        try {
            String sql = "select r.id_pengadaan,r.id_barang,r.harga_beli_satuan,b.harga_jual,r.belum_terjual "
                    + "from rel_pengadaan_barang r,barang b "
                    + "where r.id_barang=b.id_barang AND r.id_barang='" + txt_idbarang.getText() + "' and r.belum_terjual>0";
            resultSet = statement.executeQuery(sql);
            while (resultSet.next()) {
                vektorIdPengadaan.addElement(resultSet.getString(1));
                vektorIdBarang.addElement(resultSet.getString(2));
                hargaBeli.addElement(resultSet.getDouble(3));
                hargaJual.addElement(resultSet.getDouble(4));
                jum.addElement(resultSet.getInt(5));
            }
            int jumlah;
            int jumlahJual = Integer.valueOf(txt_jmlh.getText());
            for (int i = 0; i < vektorIdPengadaan.size(); i++) {
                jumlah = jum.elementAt(i) - jumlahJual;
                if (jumlah >= 0) {
                    try {
                        String query = "update rel_pengadaan_barang set belum_terjual=" + jumlah + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
                        statement.executeUpdate(query);
                        laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jumlahJual;
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, e.getMessage());
                    }
                    break;
                } else {
                    try {
                        String query1 = "update rel_pengadaan_barang set belum_terjual=" + 0 + " where id_pengadaan='" + vektorIdPengadaan.elementAt(i) + "' and id_barang='" + vektorIdBarang.elementAt(i) + "'";
                        statement.executeUpdate(query1);
                    } catch (Exception e) {
                        JOptionPane.showMessageDialog(null, e.getMessage());
                    }
                    laba = laba + (hargaJual.elementAt(i) - hargaBeli.elementAt(i)) * jum.elementAt(i);
                    jumlahJual = -1 * jumlah;
                }
            }
        } catch (NumberFormatException n) {
            JOptionPane.showMessageDialog(null, n.getMessage());
        }
        return laba;
    }
Source code untuk update stok barang :
 private void UpdateStok(String ubah) {
        int stokBaru = 0;
        try {
            if(ubah.equals("insert")){
                stokBaru = cekStok() - Integer.parseInt(txt_jmlh.getText());
            }else if(ubah.equals("delete")){
                stokBaru=cekStok()+jml_awal;
            }
            String total = "UPDATE barang set stok ='" + stokBaru + "' where id_barang = '" + id_barang + "'";
            statement.executeUpdate(total);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

5. Bagaimana untuk menampilkan data pada tabel pertama dan tabel kedua? Untuk tabel pertama merupakan tabel dimana tabel tersebut untuk melihat stok-stok yang tersedia atau sudah kosong. Langkahnya adalah :
private void selectTabelHargaJual(){
        Object header[] = {"ID BARANG","NAMA BARANG","HARGA JUAL","STOK"};
        DefaultTableModel defaultTable = new DefaultTableModel(null,header);
        tbl_barangjual.setModel(defaultTable);

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

        String sql_select = "select id_barang,nama_barang,harga_jual,stok from barang where stok > 0";
        try {
            statement = k.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

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

                String kolom[] = {idBarang,namaBarang,harga_jual,stok};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
Kemudian tabel kedua merupakan tabel untuk mengetahui pembelian barang :
   private void selectTabelHargaBeli() {
        Object header[] = {"ID PENJUALAN", "ID BARANG", "NAMA BARANG", "HARGA", "JUMLAH", "TOTAL HARGA"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tbl_barangbeli.setModel(defaultTable);

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

        String sql_select = "select r.id_penjualan,r.id_barang,b.nama_barang,b.harga_jual,r.jumlah,r.total_harga "
                + "from rel_penjualan_barang r, barang b where r.id_barang = b.id_barang and r.id_penjualan ='" + idPenjualan + "'";
        try {
            statement = k.connection.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String idjual = resultSet.getString(1);
                String idBarang = resultSet.getString(2);
                String namaBarang = resultSet.getString(3);
                String harga = resultSet.getString(4);
                String jml = resultSet.getString(5);
                String total = resultSet.getString(6);

                String kolom[] = {idjual, idBarang, namaBarang, harga, jml, total};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

6. Kemudian berikutnya untuk melengkapi saya akan tampilkan source code insert dan delete. Dimana kedua fungsi tersebut sangat penting untuk melakukan insert data serta menghapus data jika terjadi kekeliruan peng-entrian data :
Source code insert data :
private void insertRelPenjualan() {
        double total = Integer.parseInt(txt_jmlh.getText()) * Double.parseDouble(txt_hrga.getText());

        try {
            String sql = "INSERT INTO rel_penjualan_barang "
                    + "VALUES('" + txt_idbarang.getText() + "','" + idPenjualan + "','" + txt_jmlh.getText() + "','"+hitungLaba()+"','" + total + "')";
            statement = k.connection.createStatement();
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }
Source code delete data :
private void delete(){
        String sql_delete="DELETE FROM rel_penjualan_barang WHERE ID_PENJUALAN='"+idPenjualan+"' AND ID_BARANG='"+idHapus.getText()+"'";
        try {
            statement=k.connection.createStatement();
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Data masih digunakan!!");
            System.out.println(""+e.getMessage());
        }
    }
Kemudian jalankan programnya, dan coba lakukan transaksi :

SetEnabled False ( ) :
Sebelum transaksi baru di klik

SetEnabled True ( ) :
Sesudah transaksi baru di klik

Insert Data  :
Pembelian barang "Pensil" sejumlah 2 

Barang telah masuk dan stok berkurang

Delete data :
Delete pada nama barang : "Pensil"

Stok kembali seperti sebelum di jual



Demikianlah Artikel Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL

Sekianlah artikel Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL kali ini, mudah-mudahan bisa memberi manfaat untuk anda semua. baiklah, sampai jumpa di postingan artikel lainnya.

Anda sekarang membaca artikel Cara Buat Form Penjualan Barang Aplikasi Minimarket - Java MySQL dengan alamat link https://tutorialcuy.blogspot.com/2019/02/cara-buat-form-penjualan-barang.html

Subscribe to receive free email updates: