Newest Post
// Posted by :kelvin
// On :Rabu, 10 Januari 2018
Aplikasi Sistem Penjualan
Aplikasi Sistem Penjualan, aplikasi ini saya buat menggunakan netbeans dengan menggunakan bahasa pemrograman java. Saya akan memberikan penjelasan tentang Aplikasi Sistem Penjualan dalam rangka memenuhi tugas Ujian Akhir Semester (UAS) Algoritma pemrograman 2.
- Judul project Dan penjelasan
Aplikasi Sistem Penjualan.
Aplikasi ini mempermudah kita untuk menginput data penjualan yang kita sudah jual jadi kita bisa menghitung barang apa saja yang stocknya sudah habis atau masih tersedia. dan mempermudah kita untuk menjual barang tanpa harus menggunakan pen lalu kita catat di kertas. sekarang adanya aplikasi sistem penjualan kita sekarang hanya input di nama barang langsung include kode barang, harga barang dan jumlah harga. sebelum kita masuk kedalam transaksi beli barang aplikasi ini pertama kita jalankan akan ada form login dimana form login ini kita sudah input username dan passwordnya di database. jadi kalian bisa custom username dan password anda sendiri. untuk aplikasi ini ada enam form jadi ada apa aja dari ke enam form itu nanti saya jelaskan di bawah.
- Design Form Login
Login |
Gambar Diatas adalah Design dari form login dimana pertama kita run aplikasi ini kita di minta input username dan password untuk menjalankan aplikasi sistem penjualan ini dimana form ke dua master data barang. dan berikut source code dari Form Login.
if(txtUsername.getText().equals("") || txtPassword.getText().equals("")){
JOptionPane.showMessageDialog(null, "Inputkan username dan password","Pesan",JOptionPane.INFORMATION_MESSAGE);
} else {
try{
listLogin = pc.cariLogin(txtUsername.getText(), EnkripsiKeSH1.getSHA1(txtPassword.getText()));
if(listLogin.size()>=1) {
if(listLogin.get(0).getHakakses().equalsIgnoreCase("administrator")){
MenuUtama mnu=new MenuUtama();
//mnu.setExtendedState(JFrame.MAXIMIZED_BOTH);
mnu.setVisible(true);
mnu.tampilUser(txtUsername.getText());
mnu.hakAksesAdmin();
dispose();
} else {
MenuUtama mnu=new MenuUtama();
mnu.setVisible(true);
mnu.tampilUser(txtUsername.getText());
mnu.hakAksesKasir();
dispose();
}
} else {
JOptionPane.showMessageDialog(null, "Username atau Password tidak ditemukan \nHarap ulangi","Ami Market",
JOptionPane.WARNING_MESSAGE);
txtUsername.requestFocus();
}
} catch(Exception a){
JOptionPane.showMessageDialog(null, "Terjadi kesalahaan enkripsi");
}
}
- Design Form Master Data Barang
Master Data Barang |
Gambar Diatas adalah design dari form Master data barang dimana kita bisa input nama-nama barang yang kita mau tambah atay jika ada stock baru yang ingin di tambah. berikut source code dari Form Master Data Barang.
private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(btnTambah.getText().equalsIgnoreCase("tambah")){
btnTambah.setText("Batal");
bersih();
siapIsi(true);
buatKdBarang();
txtNmBrg.requestFocus();
btnTambah.setEnabled(true);
btnSimpan.setEnabled(true);
btnHapus.setEnabled(false);
btnEdit.setEnabled(false);
btnKeluar.setEnabled(false);
btnCari.setEnabled(false);
} else{
btnTambah.setText("Tambah");
bersih();
siapIsi(false);
tombolNormal();
}
}
private void btnSimpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(txtNmBrg.getText().isEmpty() || cmbSatuan.getSelectedItem().equals("") ||txtStok.getText().isEmpty()||txtHarga.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Inputkan semua data barang","Ami Market",JOptionPane.INFORMATION_MESSAGE);
} else{
eb.setKdbarang(txtKdBrg.getText());
eb.setNmbarang(txtNmBrg.getText());
eb.setSatuan(cmbSatuan.getSelectedItem().toString());
eb.setStok(Integer.parseInt(txtStok.getText()));
eb.setHarga(Integer.parseInt(txtHarga.getText()));
if(btnTambah.getText().equalsIgnoreCase("batal")){
if(bc.tambahBarang(eb)==1){
JOptionPane.showMessageDialog(null, "Simpan data berhasil","Ami Market",JOptionPane.INFORMATION_MESSAGE);
} else{
JOptionPane.showMessageDialog(null, "Simpan data gagal, periksa kembali","Ami Market",JOptionPane.INFORMATION_MESSAGE);
}
}
if(btnEdit.getText().equalsIgnoreCase("batal")){
if(bc.editBarang(eb)==1){
JOptionPane.showMessageDialog(null, "Edit data berhasil","Ami Market",JOptionPane.INFORMATION_MESSAGE);
} else{
JOptionPane.showMessageDialog(null, "Edit data gagal, periksa kembali","Ami Market",JOptionPane.INFORMATION_MESSAGE);
}
}
bersih();
siapIsi(false);
btnTambah.setText("Tambah");
btnEdit.setText("Edit");
tombolNormal();
}
}
private void txtStokKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
// NumberFormat rubah=NumberFormat.getInstance();
// rubah.setMaximumFractionDigits(3);
//rubah.setGroupingUsed(true);
// txtStok.setText(rubah.format(Integer.parseInt(txtStok.getText())));
}
private void txtStokKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!((c >= '0') && (c <= '9') && txtStok.getText().length() < 3
|| (c == KeyEvent.VK_BACK_SPACE)
|| (c == KeyEvent.VK_DELETE )|| (c==KeyEvent.VK_ENTER))) {
getToolkit().beep();
evt.consume();
}
}
private void txtHargaKeyTyped(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
char c = evt.getKeyChar();
if (!((c >= '0') && (c <= '9') && txtHarga.getText().length() < 15
|| (c == KeyEvent.VK_BACK_SPACE)
|| (c == KeyEvent.VK_DELETE )|| (c==KeyEvent.VK_ENTER))) {
getToolkit().beep();
evt.consume();
}
}
private void btnCariActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String cari=null;
cari=JOptionPane.showInputDialog("Inputkan kriteria pencarian");
model.getDataVector().removeAllElements();
model.fireTableDataChanged();
listBarang.clear();
listBarang=bc.cariBarang(cari);
for(x=0;x<listBarang.size();x++){
Object[] data=new Object[5];
data[0]=listBarang.get(x).getKdbarang();
data[1]=listBarang.get(x).getNmbarang();
data[2]=listBarang.get(x).getSatuan();
data[3]=listBarang.get(x).getStok();
data[4]=listBarang.get(x).getHarga();
model.addRow(data);
}
}
private void tblBarangMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tblBarang.getSelectedRow();
txtKdBrg.setText(tblBarang.getModel().getValueAt(baris, 0).toString());
txtNmBrg.setText(tblBarang.getModel().getValueAt(baris, 1).toString());
cmbSatuan.setSelectedItem(tblBarang.getModel().getValueAt(baris, 2).toString());
txtStok.setText(tblBarang.getModel().getValueAt(baris, 3).toString());
txtHarga.setText(tblBarang.getModel().getValueAt(baris, 4).toString());
siapIsi(false);
tombolNormal();
btnHapus.setEnabled(true);
btnEdit.setEnabled(true);
}
private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
eb.setKdbarang(txtKdBrg.getText());
int pesan=JOptionPane.showConfirmDialog(null, "Yakin data akan dihapus ?","Konfirmasi",JOptionPane.YES_NO_OPTION
,JOptionPane.QUESTION_MESSAGE);
if(pesan==JOptionPane.YES_OPTION){
if(bc.deleteBarang(eb)==1){
JOptionPane.showMessageDialog(null, "Hapus data sukses");
bersih();
siapIsi(false);
tombolNormal();
} else{
JOptionPane.showMessageDialog(null, "Hapus data gagal");
}
}
}
private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(btnEdit.getText().equalsIgnoreCase("edit")){
btnEdit.setText("Batal");
siapIsi(true);
txtKdBrg.setEnabled(false);
txtNmBrg.requestFocus();
btnTambah.setEnabled(false);
btnSimpan.setEnabled(true);
btnHapus.setEnabled(false);
btnEdit.setEnabled(true);
btnKeluar.setEnabled(false);
btnCari.setEnabled(false);
} else{
btnEdit.setText("Edit");
bersih();
siapIsi(false);
tombolNormal();
}
}
- Design Form Menu Utama
Menu Utama |
Gambar diatas adalah design menu utama dimana disana ada logout, barang, penjualan, backup and restore
form ini muncul jika kita berhasil login dari form login. dan di form ini ada menu logout untuk keluar lagi ke form login, barang untuk menginput nama barang dan kita juga bisa edit jika ada kesalahan memberi nama. untuk menu penjualan pasti sudah pada tahu menu tersebut untuk menjual barang. berikut source code untuk Menu Utama.
if(btnTambah.getText().equalsIgnoreCase("tambah")){
btnTambah.setText("Batal");
siapIsi(true);
bersih();
buatNoNota();
txtPembeli.requestFocus();
btnSimpan.setEnabled(true);
btnTambahBrg.setEnabled(true);
btnKurangBrg.setEnabled(true);
btnCariBrg.setEnabled(true);
}else{
bersih();
siapIsi(false);
btnTambah.setText("Tambah");
tombolNormal();
}
}
private void btnCariBrgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
buatTabelBarang();
showTabelBarang();
txtCariBrg.setText(null);
//frmBarang.setSize(472,390);
frmBarang.setBounds(300, 300, 472, 390);
frmBarang.setVisible(true);
txtCariBrg.requestFocus();
}
private void txtCariBrgKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==10){
model.getDataVector().removeAllElements();
model.fireTableDataChanged();
listBarang.clear();
listBarang=brgc.cariBarang(txtCariBrg.getText());
for(int x=0;x<listBarang.size();x++){
Object[] data=new Object[5];
data[0]=listBarang.get(x).getKdbarang();
data[1]=listBarang.get(x).getNmbarang();
data[2]=listBarang.get(x).getSatuan();
data[3]=listBarang.get(x).getStok();
data[4]=listBarang.get(x).getHarga();
model.addRow(data);
}
}
}
private void tblMasterBarangMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tblMasterBarang.getSelectedRow();
txtKdBrg.setText(tblMasterBarang.getModel().getValueAt(baris, 0).toString());
txtNmBrg.setText(tblMasterBarang.getModel().getValueAt(baris, 1).toString());
txtStok.setText(tblMasterBarang.getModel().getValueAt(baris, 3).toString());
txtHarga.setText(tblMasterBarang.getModel().getValueAt(baris, 4).toString());
txtJml.requestFocus();
frmBarang.setVisible(false);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
model.getDataVector().removeAllElements();
model.fireTableDataChanged();
listBarang.clear();
listBarang=brgc.cariBarang(txtCariBrg.getText());
for(int x=0;x<listBarang.size();x++){
Object[] data=new Object[5];
data[0]=listBarang.get(x).getKdbarang();
data[1]=listBarang.get(x).getNmbarang();
data[2]=listBarang.get(x).getSatuan();
data[3]=listBarang.get(x).getStok();
data[4]=listBarang.get(x).getHarga();
model.addRow(data);
}
}
private void btnTambahBrgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(txtKdBrg.getText().equals("") || txtNota.getText().equals("") || txtPembeli.getText().equals("")){
JOptionPane.showMessageDialog(null, "Lengkapi inputan pembelian barang");
} else{
int jml=Integer.parseInt(txtJml.getText());
int stok=Integer.parseInt(txtStok.getText());
if(jml>stok){
JOptionPane.showMessageDialog(null, "Stok barang tidak mencukupi");
}else{
listEDB=dbc.CekBarang(txtNota.getText(), txtKdBrg.getText());
if(listEDB.size()>0){
JOptionPane.showMessageDialog(null, "Barang ini sudah anda beli, silahkan pilih yang lain");
} else{
int harga=Integer.parseInt(txtHarga.getText());
EntitasDetailBeli edb=new EntitasDetailBeli();
edb.setNonota(txtNota.getText());
edb.setKdbarang(txtKdBrg.getText());
edb.setNmbarang(txtNmBrg.getText());
edb.setHarga(harga);
edb.setJml(jml);
edb.setTotal(harga*jml);
if (dbc.tambahDetailBeli(edb)==0){
JOptionPane.showMessageDialog(null, "Simpan detail data barang gagal, Mohon periksa kembali");
} else{
int sisaStok=stok-jml;
brgc.updateStok(sisaStok, txtKdBrg.getText());
buatTabelBeli();
tampilBarang();
int total=Integer.parseInt(txtTotal.getText());
int totalBayar=total+(harga*jml);
txtTotal.setText(Integer.toString(totalBayar));
txtKdBrg.setText("");
txtNmBrg.setText("");
txtHarga.setText("");
txtJml.setText("");
txtStok.setText("");
}
}
}
}
- Design Form Pembelian
Form Pembelian |
Gambar diatas adalah design form pembelian disana kita input nama barang yang kita mau beli, sebelum kita mau input nama barang seblumnya kita klik tombil tambah yang ada di design, jika sudah input nama barang kita tinggal klik simpan untuk print struk pembelian tersebut. berikut source code untuk Form Pembelian.
if(btnTambah.getText().equalsIgnoreCase("tambah")){
btnTambah.setText("Batal");
siapIsi(true);
bersih();
buatNoNota();
txtPembeli.requestFocus();
btnSimpan.setEnabled(true);
btnTambahBrg.setEnabled(true);
btnKurangBrg.setEnabled(true);
btnCariBrg.setEnabled(true);
}else{
bersih();
siapIsi(false);
btnTambah.setText("Tambah");
tombolNormal();
}
}
private void btnCariBrgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
buatTabelBarang();
showTabelBarang();
txtCariBrg.setText(null);
//frmBarang.setSize(472,390);
frmBarang.setBounds(300, 300, 472, 390);
frmBarang.setVisible(true);
txtCariBrg.requestFocus();
}
private void txtCariBrgKeyPressed(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
if(evt.getKeyCode()==10){
model.getDataVector().removeAllElements();
model.fireTableDataChanged();
listBarang.clear();
listBarang=brgc.cariBarang(txtCariBrg.getText());
for(int x=0;x<listBarang.size();x++){
Object[] data=new Object[5];
data[0]=listBarang.get(x).getKdbarang();
data[1]=listBarang.get(x).getNmbarang();
data[2]=listBarang.get(x).getSatuan();
data[3]=listBarang.get(x).getStok();
data[4]=listBarang.get(x).getHarga();
model.addRow(data);
}
}
}
private void tblMasterBarangMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
int baris = tblMasterBarang.getSelectedRow();
txtKdBrg.setText(tblMasterBarang.getModel().getValueAt(baris, 0).toString());
txtNmBrg.setText(tblMasterBarang.getModel().getValueAt(baris, 1).toString());
txtStok.setText(tblMasterBarang.getModel().getValueAt(baris, 3).toString());
txtHarga.setText(tblMasterBarang.getModel().getValueAt(baris, 4).toString());
txtJml.requestFocus();
frmBarang.setVisible(false);
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
model.getDataVector().removeAllElements();
model.fireTableDataChanged();
listBarang.clear();
listBarang=brgc.cariBarang(txtCariBrg.getText());
for(int x=0;x<listBarang.size();x++){
Object[] data=new Object[5];
data[0]=listBarang.get(x).getKdbarang();
data[1]=listBarang.get(x).getNmbarang();
data[2]=listBarang.get(x).getSatuan();
data[3]=listBarang.get(x).getStok();
data[4]=listBarang.get(x).getHarga();
model.addRow(data);
}
}
private void btnTambahBrgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if(txtKdBrg.getText().equals("") || txtNota.getText().equals("") || txtPembeli.getText().equals("")){
JOptionPane.showMessageDialog(null, "Lengkapi inputan pembelian barang");
} else{
int jml=Integer.parseInt(txtJml.getText());
int stok=Integer.parseInt(txtStok.getText());
if(jml>stok){
JOptionPane.showMessageDialog(null, "Stok barang tidak mencukupi");
}else{
listEDB=dbc.CekBarang(txtNota.getText(), txtKdBrg.getText());
if(listEDB.size()>0){
JOptionPane.showMessageDialog(null, "Barang ini sudah anda beli, silahkan pilih yang lain");
} else{
int harga=Integer.parseInt(txtHarga.getText());
EntitasDetailBeli edb=new EntitasDetailBeli();
edb.setNonota(txtNota.getText());
edb.setKdbarang(txtKdBrg.getText());
edb.setNmbarang(txtNmBrg.getText());
edb.setHarga(harga);
edb.setJml(jml);
edb.setTotal(harga*jml);
if (dbc.tambahDetailBeli(edb)==0){
JOptionPane.showMessageDialog(null, "Simpan detail data barang gagal, Mohon periksa kembali");
} else{
int sisaStok=stok-jml;
brgc.updateStok(sisaStok, txtKdBrg.getText());
buatTabelBeli();
tampilBarang();
int total=Integer.parseInt(txtTotal.getText());
int totalBayar=total+(harga*jml);
txtTotal.setText(Integer.toString(totalBayar));
txtKdBrg.setText("");
txtNmBrg.setText("");
txtHarga.setText("");
txtJml.setText("");
txtStok.setText("");
}
}
}
}
- Design Form Pengguna
Data Pengguna |
if(txtId.getText().isEmpty() || txtUsername.getText().isEmpty() || txtPass.getText().isEmpty() ||
txtUlangiPass.getText().isEmpty() || cmbHakAkses.toString().equals(null)){
JOptionPane.showMessageDialog(null, "Lengkapi inputan data","Pesan",JOptionPane.INFORMATION_MESSAGE);
} else{
//validasi password dan ketik ulang password
if(txtPass.getText() == null ? txtUlangiPass.getText() != null : !txtPass.getText().equals(txtUlangiPass.getText())){
JOptionPane.showMessageDialog(null, "Pengetikan password tidak sama, periksa kembali","Pesan",JOptionPane.WARNING_MESSAGE);
txtPass.requestFocus();
} else {
//validasi id pengguna
listPengguna=pc.cariId(Integer.parseInt(txtId.getText()));
if(listPengguna.size()==1){
JOptionPane.showMessageDialog(null, "ID Pengguna sudah digunakan user lain","Pesan",JOptionPane.WARNING_MESSAGE);
txtId.requestFocus();
} else {
try{
ep.setIdpengguna(Integer.parseInt(txtId.getText()));
ep.setUsername(txtUsername.getText());
ep.setPassword(EnkripsiKeSH1.getSHA1(txtPass.getText()));
ep.setHakakses(cmbHakAkses.getSelectedItem().toString());
if(pc.tambah(ep)==1){
JOptionPane.showMessageDialog(null, "SImpan pengguna berhasil");
} else{
JOptionPane.showMessageDialog(null, "Simpan data gagal");
}
bersih();
} catch(Exception a){
JOptionPane.showMessageDialog(null, "Tidak dapat enkripsi password");
}
}
}
Gambar diatas adalah design form pengguna, form pengguna ini untuk menambahkan username dan password baru. tidak hanya menambahkan tapi juga bisa edit username dan password yang sudah ada / sebelumnya yang sudah kita input. berikut source code Diatas.
- Design Form Report Barang/ Laporan Barang
Laporan Barang |
Gambar diatas adalah form terakhir dari aplikasi Sistem Penjualan. laporan barang ini kita bisa lihat hasil penjualan, dan juga bisa melihat barang yang masih ada stock atau tidak. berikut source code untuk report barang.
// TODO add your handling code here:
if(optSemua.isSelected()){
rc.cetakSeleruhBarang();
} else if(optSatuan.isSelected()){
rc.cetakPerSatuan(cmbSatuan.getSelectedItem().toString());
} else{
JOptionPane.showMessageDialog(null, "Pilih kriteria cetak barang");
}
}
private void btnKeluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}
- FlowChart
FlowChart |
Sekian pembahasan saya untuk Aplikasi Sistem Penjual dengan berbasis java sekiranya ada tambahan kalian bisa tinggalkan di kolom komentar.