1.    Membuat Projek Toko dengan nama BlueMartFikri

 

2.    Desain interface untuk input data Inventory

3.    Proses penyimpanan pada data inventory

-       Klik tombol Add

-       Mengisi data sesuai dengan field yang disediakan

-       Lalu tekan tombol Save

Source Code untuk tombol Save:

String KodeBarang = txtKodeBarang.getText();
        String NamaBarang = txtNamaBarang.getText();
        String Stok = txtStok.getText();
        String Beli = txtBeli.getText();        
        String Jual = txtJual.getText();
        String Keterangan = txtKeterangan.getText();

        if (KodeBarang.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Barang tidak boleh kosong");
            txtKodeBarang.requestFocus();
        } else if (NamaBarang.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Nama Barang tidak boleh kosong");
            txtNamaBarang.requestFocus();
        } else if (Stok.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Stok tidak boleh kosong");
            txtStok.requestFocus();
        } else if (Beli.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Harga Beli tidak boleh kosong");
            txtBeli.requestFocus();
        } else if (Jual.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Harga Jual tidak boleh kosong");
            txtJual.requestFocus();
        } else if (Keterangan.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Keterangan tidak boleh kosong");
            txtKeterangan.requestFocus();
        } else if (!(new Scanner(Stok).hasNextLong())) {
            JOptionPane.showMessageDialog(null, "Stok harus angka");
            txtStok.requestFocus();
        } else if (!(new Scanner(Beli).hasNextLong())) {
            JOptionPane.showMessageDialog(null, "Harga Beli harus angka");
            txtBeli.requestFocus();
        } else if (!(new Scanner(Jual).hasNextLong())) {
            JOptionPane.showMessageDialog(null, "Harga Jual harus angka");
            txtJual.requestFocus();
        } else {
            try {
                sql = "INSERT INTO tb_inventory (kode_barang, nama_barang, stok, harga_beli, harga_jual, keterangan) VALUES ('" + KodeBarang + "','" + NamaBarang + "','" + Stok + "','" + Beli + "','" + Jual + "','" + Keterangan + "')";
                s = c.createStatement();
                s.executeUpdate(sql);
                ShowTabel();
                Clear();
                AUTONOMOR();
                txtNamaBarang.requestFocus();
                btnSave.setEnabled(true);
                btnCancel.setEnabled(true);
                JOptionPane.showMessageDialog(null, "Data BERHASIL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Data GAGAL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            }
        }

-       Data akan ditampilkan ke dalam tabel.

Source Code untuk menampilkan data ke tabel

try {
            sql = "SELECT * FROM tb_inventory";
            ps = c.prepareStatement(sql);
            rs = ps.executeQuery(sql);
            DefaultTableModel dtm = (DefaultTableModel) tbInventory.getModel();
            dtm.setRowCount(0);
            String[] data = new String[6];
            int i = 1;

            while (rs.next()) {
                data[0] = rs.getString("kode_barang");
                data[1] = rs.getString("nama_barang");
                data[2] = rs.getString("stok");
                data[3] = rs.getString("harga_beli");
                data[4] = rs.getString("harga_jual");
                data[5] = rs.getString("keterangan");
                dtm.addRow(data);
                i++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR\nGagal Menyambung Ke Database\nAktifkan Database Sebelum Memulai");
        }
 

4.    Desain interface untuk input data Customer

5.    Proses penyimpanan pada data Customer

-       Klik tombol Add


-       Mengisi data sesuai dengan field yang disediakan

-       Lalu tekan tombol Save

Source Code untuk tombol Save:

String KodeCustomer = txtKodeCustomer.getText();
        String NamaCustomer = txtNamaCustomer.getText();
        String Tlp = txtTlp.getText();
        String Alamat = txtAlamat.getText();

        if (KodeCustomer.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Customer tidak boleh kosong");
            txtKodeCustomer.requestFocus();
        } else if (NamaCustomer.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Nama Customer tidak boleh kosong");
            txtNamaCustomer.requestFocus();
        } else if (Tlp.isEmpty()) {
            JOptionPane.showMessageDialog(null, "No Telpon tidak boleh kosong");
            txtTlp.requestFocus();
        } else if (Alamat.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Alamat tidak boleh kosong");
            txtAlamat.requestFocus();
        } else if (!(new Scanner(Tlp).hasNextLong())) {
            JOptionPane.showMessageDialog(null, "No Telpon harus angka");
            txtTlp.requestFocus();
        } else {
            try {
                sql = "INSERT INTO tb_customer (kode_customer, nama_customer, no_tlp, alamat) VALUES ('" + KodeCustomer + "','" + NamaCustomer + "','" + Tlp + "','" + Alamat + "')";
                s = c.createStatement();
                s.executeUpdate(sql);
                ShowTabel();
                Clear();
                AUTONOMOR();
                txtNamaCustomer.requestFocus();
                btnSave.setEnabled(true);
                btnCancel.setEnabled(true);
                JOptionPane.showMessageDialog(null, "Data BERHASIL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);                
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Data GAGAL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            }
        }

-       Data akan ditampilkan ke dalam tabel.

Source Code untuk menampilkan data ke tabel:

try {
            sql = "SELECT * FROM tb_customer";
            ps = c.prepareStatement(sql);
            rs = ps.executeQuery(sql);
            DefaultTableModel dtm = (DefaultTableModel) tbCustomer.getModel();
            dtm.setRowCount(0);
            String[] data = new String[4];
            int i = 1;

            while (rs.next()) {
                data[0] = rs.getString("kode_customer");
                data[1] = rs.getString("nama_customer");
                data[2] = rs.getString("no_tlp");
                data[3] = rs.getString("alamat");
                dtm.addRow(data);
                i++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR\nGagal Menyambung Ke Database\nAktifkan Database Sebelum Memulai");
        }

6.    Desain interface untuk input data Supplier


7.    Proses penyimpanan pada data Supplier

-       Klik tombol Add

-       Mengisi data sesuai dengan field yang disediakan

-       Lalu tekan tombol Save

Source Code untuk tombol Save:

String KodeSupplier = txtKodeSupplier .getText();
        String NamaSupplier  = txtNamaSupplier .getText();
        String Tlp = txtTlp.getText();
        String BarangDijual = txtBarangDijual.getText();
        String Alamat = txtAlamat.getText();

        if (KodeSupplier .isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Supplier tidak boleh kosong");
            txtKodeSupplier.requestFocus();
        } else if (NamaSupplier.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Nama Supplier tidak boleh kosong");
            txtNamaSupplier .requestFocus();
        } else if (Tlp.isEmpty()) {
            JOptionPane.showMessageDialog(null, "No Telpon tidak boleh kosong");
            txtTlp.requestFocus();
        } else if (BarangDijual.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Barang Dijual tidak boleh kosong");
            txtBarangDijual.requestFocus();
        } else if (Alamat.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Alamat tidak boleh kosong");
            txtAlamat.requestFocus();
        } else if (!(new Scanner(Tlp).hasNextLong())) {
            JOptionPane.showMessageDialog(null, "No Telpon harus angka");
            txtTlp.requestFocus();
        } else {
            try {
                sql = "INSERT INTO tb_supplier (kode_supplier, nama_supplier, no_tlp, barang_dijual, alamat) VALUES ('" + KodeSupplier + "','" + NamaSupplier + "','" + Tlp + "','" + BarangDijual + "','" + Alamat + "')";
                s = c.createStatement();
                s.executeUpdate(sql);
                ShowTabel();
                Clear();
                AUTONOMOR();
                txtNamaSupplier.requestFocus();
                btnSave.setEnabled(true);
                btnCancel.setEnabled(true);
                JOptionPane.showMessageDialog(null, "Data BERHASIL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);                
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Data GAGAL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            }
        }

-       Data akan ditampilkan ke dalam tabel.

Source Code untuk menampilkan data ke tabel:

try {
            sql = "SELECT * FROM tb_supplier";
            ps = c.prepareStatement(sql);
            rs = ps.executeQuery(sql);
            DefaultTableModel dtm = (DefaultTableModel) tbSupplier.getModel();
            dtm.setRowCount(0);
            String[] data = new String[5];
            int i = 1;

            while (rs.next()) {
                data[0] = rs.getString("kode_supplier");
                data[1] = rs.getString("nama_supplier");
                data[2] = rs.getString("no_tlp");
                data[3] = rs.getString("barang_dijual");
                data[4] = rs.getString("alamat");
                dtm.addRow(data);
                i++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR\nGagal Menyambung Ke Database\nAktifkan Database Sebelum Memulai");
        }

8.    Proses penyimpanan pada data transaksi Pembelian dan Penjualan

a.       Transaksi Pembelian

-       Desain interface

-       Proses penyimpanan

·           Klik tombol Add

·           Mengisi data sesuai dengan field yang disediakan

·           Lalu tekan tombol Save

Source Code untuk tombol Save:

tran = txtNo.getText();
        ks = txtKodeS.getText();
        ns = txtNamaS.getText();
        kb = txtKodeB.getText();
        nb = txtNamaB.getText();
        st = txtStok.getText();
        j = txtJumlah.getText();
        h = txtHarga.getText();
        t = txtTotal.getText();

        if (ks.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Supplier tidak boleh kosong");
            txtKodeS.requestFocus();
        } else if (kb.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Barang tidak boleh kosong");
            txtKodeB.requestFocus();
        } else if (j.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Jumlah tidak boleh kosong");
            txtJumlah.requestFocus();
        } else if (!(new Scanner(j).hasNextInt())) {
            JOptionPane.showMessageDialog(null, "Jumlah harus angka");
            txtJumlah.requestFocus();
        } else {
            try {
                sql = "INSERT INTO tb_pembelian (kd_pembelian, tgl_transaksi, kd_supplier, nm_supplier, kd_barang, nm_barang, stok, harga, jumlah, total)value ('" + tran + "','" + tgl + "','" + ks + "','" + ns + "','" + kb + "','" + nb + "','" + st + "','" + h + "','" + j + "','" + t + "' )";
                s = c.createStatement();
                s.execute(sql);
                Update();
                ShowTabel();
                Clear();
                AUTONOMOR();
                btnSave.setEnabled(true);
                btnCancel.setEnabled(true);
                JOptionPane.showMessageDialog(null, "Data BERHASIL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Data GAGAL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            }
        }

Terdapat methode Update(); yang berfungsi untuk mengupdate stok barang di inventory

Souce Code yang digunakan:

try {
            String tt = txtJumlah.getText();
            String ss = txtStok.getText();
            int stk = Integer.parseInt(ss);
            int jmlh = Integer.parseInt(tt);

            int hasil = stk + jmlh;
            sql = "UPDATE tb_inventory SET stok='" + hasil + "' where kode_barang = '" + kb + "'";
            s = c.createStatement();
            s.execute(sql);
        } catch (Exception e) {
        }

·           Data akan ditampilkan ke dalam tabel.

Source Code untuk menampilkan data ke tabel:

try {
            sql = "SELECT * FROM tb_pembelian";
            ps = c.prepareStatement(sql);
            rs = ps.executeQuery(sql);
            DefaultTableModel dtm = (DefaultTableModel) tbPembelian.getModel();
            dtm.setRowCount(0);
            String[] data = new String[10];
            int i = 1;

            while (rs.next()) {
                data[0] = rs.getString("kd_pembelian");
                data[1] = rs.getString("tgl_transaksi");
                data[2] = rs.getString("kd_supplier");
                data[3] = rs.getString("nm_supplier");                
                data[4] = rs.getString("kd_barang");
                data[5] = rs.getString("nm_barang");
                data[6] = rs.getString("stok");
                data[7] = rs.getString("harga");
                data[8] = rs.getString("jumlah");
                data[9] = rs.getString("total");
                dtm.addRow(data);
                i++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR\nGagal Menyambung Ke Database\nAktifkan Database Sebelum Memulai");
        }

b.      Transaksi Penjualan

-       Desain interface

-       Proses penyimpanan

·           Klik tombol Add

·           Mengisi data sesuai dengan field yang disediakan

·           Lalu tekan tombol Save

Source Code untuk tombol Save:

tran = txtNo.getText();
        kb = txtKode.getText();
        nb = txtNama.getText();
        st = txtStok.getText();
        j = txtJumlah.getText();
        h = txtHarga.getText();
        t = txtTotal.getText();
        t2 = txtTotal2.getText();
        b = txtBayar.getText();
        k = txtKembalian.getText();
        km=String.valueOf(txtKodeM.getText());
        nm=String.valueOf(txtNamaM.getText());
        d=String.valueOf(txtDiskon.getText());
        
        if (kb.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Kode Barang tidak boleh kosong");
            txtKode.requestFocus();
        } else if (j.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Jumlah tidak boleh kosong");
            txtJumlah.requestFocus();
        } else if (b.isEmpty()) {
            JOptionPane.showMessageDialog(null, "Bayar tidak boleh kosong");
            txtBayar.requestFocus();
        } else if (!(new Scanner(j).hasNextInt())) {
            JOptionPane.showMessageDialog(null, "Jumlah harus angka");
            txtJumlah.requestFocus();
        } else if (!(new Scanner(b).hasNextInt())) {
            JOptionPane.showMessageDialog(null, "Bayar harus angka");
            txtBayar.requestFocus();
        } else {
        try {
            sql = "INSERT INTO tb_penjualan (no_transaksi, tgl_transaksi, kd_barang, nama_barang, stok, jumlah, harga, total, kd_cusotmer, nama_customer, diskon, total2, bayar, kembalian)value ('" + tran + "','" + tgl + "','" + kb + "','" + nb + "','" + st + "','" + j + "','" + h + "','" + t + "','" + km + "','" + nm + "','" + d + "','" + t2 + "','" + b + "','" + k + "')";
            s = c.createStatement();
            s.execute(sql);
            Update();
            Cek();
            ShowTabel();
            Clear();
            AUTONOMOR();
            btnSave.setEnabled(true);
            btnCancel.setEnabled(true);
            JOptionPane.showMessageDialog(null, "Data BERHASIL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Data GAGAL tersimpan", "Informasi", JOptionPane.INFORMATION_MESSAGE);
        }
        }  

Terdapat methode Update(); yang berfungsi untuk mengupdate stok barang di inventory

Souce Code yang digunakan:

try {
            String tt = txtJumlah.getText();
            String ss = txtStok.getText();
            int stk = Integer.parseInt(ss);
            int jmlh = Integer.parseInt(tt);

            int hasil = stk - jmlh;
            sql = "UPDATE tb_inventory SET stok='" + hasil + "' where kode_barang = '" + kb + "'";
            s = c.createStatement();
            s.execute(sql);
        } catch (Exception e) {
        }

·           Data akan ditampilkan ke dalam tabel.

Source Code untuk menampilkan data ke tabel:

try {
            sql = "SELECT * FROM tb_penjualan";
            ps = c.prepareStatement(sql);
            rs = ps.executeQuery(sql);
            DefaultTableModel dtm = (DefaultTableModel) tbPenjualan.getModel();
            dtm.setRowCount(0);
            String[] data = new String[14];
            int i = 1;

            while (rs.next()) {
                data[0] = rs.getString("no_transaksi");
                data[1] = rs.getString("tgl_transaksi");
                data[2] = rs.getString("kd_barang");
                data[3] = rs.getString("nama_barang");
                data[4] = rs.getString("stok");
                data[5] = rs.getString("jumlah");
                data[6] = rs.getString("harga");
                data[7] = rs.getString("total");
                data[8] = rs.getString("kd_customer");
                data[9] = rs.getString("nama_customer");
                data[10] = rs.getString("diskon");
                data[11] = rs.getString("total2");
                data[12] = rs.getString("bayar");
                data[13] = rs.getString("kembalian");
                dtm.addRow(data);
                i++;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "ERROR\nGagal Menyambung Ke Database\nAktifkan Database Sebelum Memulai");
        }

9.    Desain laporan Transaksi Pembelian, Transaksi Penjualan dan Laporan Inventory

a.       Transaksi Pembelian

Ouput:

b.      Transaksi Penjualan

Output:

c.       Laporan Inventory

Ouput:

10.    Membuat installer dari Projek yang telah dibuat

a.       Pertama menggunakan Launc4j

Untuk membuat Projek yang dibuat menjadi program *.exe

-          Open Launc4j

-        Pada Output File, cari lokasi tempat file untuk menyimpan hasil convert jar ke exe dan berikan nama aplikasinya. Kemudian pada Jar, cari lokasi file jar yang akan dijadikan file exe.

-       Selanjutnya pada tab JRE, isi Min Requirement JRE dan Max Requirement JRE

Untuk tab – tab yang lain bisa diisi sesuai dengan kebutuhannya.

-       Lalu pilih menu Build Wrapper

-       Pilih lokasi hasil buildnya

-       Jika sukses, pada log akan menampilkan tampilan seperti ini

-       Lalu pilih Test Wrapper untuk menguji hasil file .exe berhasil atau masih ada error.

-       Jika tidak ada error, maka hasilnya akan seperti ini

b.      Membuat installer menggunakan NSIS

-          Setelah membuat program menjadi *.exe, archive file program *.exe dan folder lib menjadi format zip

-            Lalu Open NSIS, pilih installer based on .ZIP file

-            Open file zip yang telah dibuat

-            Sesuaikan Default folder dan yang lainnya

-            Lalu klik Generate

-            Selesai



File installer BlueMart bisa di download di sini



 

 

 

 


Comments