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

Comments