alexa-tracking
Selamat Guest, Agan dapat mencoba tampilan baru KASKUS Masih Kangen Tampilan Sebelumnya
Kategori
Kategori
Home / FORUM / All / Tech / ... / Programmer Forum /
cara menghindari perulangan saat input data di java?
1024
1024
KASKUS
51
244
https://www.kaskus.co.id/thread/58e5d5e9a09a395d4f8b456c/cara-menghindari-perulangan-saat-input-data-di-java

cara menghindari perulangan saat input data di java?

ane lagi buat aplikasi penjualan. ini ane kasih gambar form penjualannya :
Form

maaf sebelumnya ane jelasin dulu ya ..
ketika klik button 'Tambah', maka akan muncul no nota dan tanggalnya secara otomatis. terus tinggal isi aja nama pembelinya dan barang yang mau dibeli. pilih barangnya klik button yang ada dibawah label kode barang, trus tinggal di klik dan muncul nama barang dan harganya otomatis, dan input jumlah yang ingin dibeli. trus tinggal klik button + maka data barang tadi akan ditampung sementara di tabel. nah yang jadi permasalahannya ini, gimana caranya agar kode barang yg sdh dipilih dan ditampung di tabel itu ga bisa dipilih lagi? jadi hanya boleh satu kali utk memilih 1 jenis kode barang. misal kalo kita klik lagi kode barang yg sdh dipilih tadi, maka pas klik button + akan muncul pesan error "barang sudah dipilih". ane udah coba buat,tapi malah error hehe. mohon agan2 bantuannya..
ini koding button + di form penjualan =
Code:
private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {                                          
// TODO add your handling code here:
if(txtkodebrg.getText().equals("") || txtnota.getText().equals("") || txtnama.getText().equals("")){
JOptionPane.showMessageDialog(null, "Lengkapi inputan pembelian barang");
} else{
int jml=Integer.parseInt(txtjumlah.getText());
int stok=Integer.parseInt(txtstok.getText());
if(jml>stok){
JOptionPane.showMessageDialog(null, "Stok barang tidak mencukupi");
}else{
listEDB=dbc.CekBarang(/*txtnota.getText(),*/txtkodebrg.getText());
if(listEDB.size()>0){
JOptionPane.showMessageDialog(null, "Barang ini sudah anda beli, silahkan pilih yang lain");
} else{
int harga=Integer.parseInt(txtharga.getText());
EntitasDetail_Beli edb=new EntitasDetail_Beli();
// edb.setNonota(txtnota.getText());
edb.setKdbarang(txtkodebrg.getText());
edb.setNmbarang(txtnamabrg.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, txtkodebrg.getText());
buatTabelBeli();
tampilBarang();
int total=Integer.parseInt(txttotal.getText());
int totalBayar=total+(harga*jml);
txttotal.setText(Integer.toString(totalBayar));

txtkodebrg.setText("");
txtnamabrg.setText("");
txtharga.setText("");
txtjumlah.setText("");
txtstok.setText("");
}
}
}
private DefaultTableModel model;
DetailBeli dbc=new DetailBeli();
ControlBeli bc=new ControlBeli();
ControlBarang brgc=new ControlBarang();
List <Entitas_Beli> listEb=new ArrayList<Entitas_Beli>();
List <EntitasDetail_Beli> listEDB=new ArrayList<EntitasDetail_Beli>();
List <Entitas_Barang> listBarang=new ArrayList<Entitas_Barang>();


Ini class EntitasDetail_Beli :
Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package aplikasipenjualan.entity;




/**
*
* @author Dlc
*/
public class EntitasDetail_Beli {
String nonota,kdbarang,nmbarang;
int harga,jml,total;

public int getHarga() {
return harga;
}

public void setHarga(int harga) {
this.harga = harga;
}

public int getJml() {
return jml;
}

public void setJml(int jml) {
this.jml = jml;
}

public String getKdbarang() {
return kdbarang;
}

public void setKdbarang(String kdbarang) {
this.kdbarang = kdbarang;
}

public String getNmbarang() {
return nmbarang;
}

public void setNmbarang(String nmbarang) {
this.nmbarang = nmbarang;
}

public String getNonota() {
return nonota;
}

public void setNonota(String nonota) {
this.nonota = nonota;
}

public int getTotal() {
return total;
}

public void setTotal(int total) {
this.total = total;
}
}




class DetailBeli :
Code:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package aplikasipenjualan.Method;

import aplikasipenjualan.entity.EntitasDetail_Beli;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

/**
*
* @author internet
*/
public class DetailBeli {
Connection con=null;
Statement st=null;
ResultSet rs=null;
String sql=null;

public DetailBeli(){
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/penjualan","root","");
st=con.createStatement();
}catch(Exception a){
JOptionPane.showMessageDialog(null, "Koneksi Database Gagal, Terjadi kesalahaan Pada : \n"+a);
}
}

public List tampilBarang(String noNota){
List logDetailBeli = new ArrayList();
sql="select kd_barang,namabarang,harga,jumlah,total from tbl_detailjual where no_nota='"+noNota+"'";
try{
rs=st.executeQuery(sql);

while(rs.next()){
EntitasDetail_Beli eb=new EntitasDetail_Beli();
eb.setKdbarang(rs.getString("kd_barang"));
eb.setNmbarang(rs.getString("namabarang"));
eb.setHarga(rs.getInt("harga"));
eb.setJml(rs.getInt("jumlah"));
eb.setTotal(rs.getInt("total"));
logDetailBeli.add(eb);
}
} catch(SQLException a){
JOptionPane.showMessageDialog(null, "Terjadi kesalahan tampil, pada :\n"+a);
}
return logDetailBeli;
}

public List CekBarang(String noNota,String kdBarang){
List logDetailBeli = new ArrayList();
sql="select kd_barang,namabarang,harga,jumlah,total from tbl_detailjual where kd_barang='"+kdBarang+"'";
try{
rs=st.executeQuery(sql);

while(rs.next()){
EntitasDetail_Beli eb=new EntitasDetail_Beli();
eb.setKdbarang(rs.getString("kd_barang"));
eb.setNmbarang(rs.getString("namabarang"));
eb.setHarga(rs.getInt("harga"));
eb.setJml(rs.getInt("jumlah"));
eb.setTotal(rs.getInt("total"));
logDetailBeli.add(eb);
}
} catch(SQLException a){
JOptionPane.showMessageDialog(null, "Terjadi kesalahaan Cek barang, pada :\n"+a);
}
return logDetailBeli;
}

public int tambahDetailBeli(EntitasDetail_Beli e){
sql="insert into tbl_detailjual values('"+e.getNonota()+"','"+e.getKdbarang()
+"','"+e.getNmbarang()+"','"+e.getHarga()+"','"+e.getJml()+"','"+e.getTotal()+"')";
int hasil=0;
try{
hasil=st.executeUpdate(sql);
} catch(SQLException a){
Logger.getLogger(ControlBarang.class.getName()).log(Level.SEVERE,null,a);
}
return hasil;
}

public int deleteDetailBeli(String nonota,String kdbarang){
sql="delete from tbl_detailjual where no_nota='"+nonota+"' and kd_barang='"+kdbarang+"'";
int hasil=0;
try{
hasil=st.executeUpdate(sql);
} catch(SQLException a){
Logger.getLogger(ControlBarang.class.getName()).log(Level.SEVERE,null,a);
}
return hasil;
}
}
Diubah oleh: sally31
Urutan Terlama
wah java ya...

y pas klik tombol tambah, list nya kode barang di delete..
kalau di visual studio ada fitur filter select, jd di filter slain yg d klik tambah -> not in ("kode_a","kode_b")
bs pake for jg, jd except nya di simpen d array
Diubah oleh sharkybun
coba googling tentang mysql INSERT OR UPDATE gan.

jadi kalau sudah ada di database dia akan timpa datanya (UPDATE).
hasilnya ga jadi double deh datanya.
Quote:

sql="select kd_barang,namabarang,harga,jumlah,total from tbl_detailjual where kd_barang='"+kdBarang+"'";

kyknya WHERE nya perlu ditambahin nomor nota gan.
tinggal dibuat kode pengecekan apakan pada tabel tampung sementara itu sudah ada kode barang yang akan diinputkan sudah ada atau belum
catat dolo


×
GDP Network
Copyright © 2018, Kaskus Networks, PT Darta Media Indonesia.
Ikuti KASKUS di