Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Cara cek duplikat data di tabel arraylist?
Halo, saya lagi buat aplikasi penjualan pake java & mysql.Berikut form penjualannya : <a href='https://drive.google.com/open?id=0B-CpAcAUqtVkSXl4Tzl3VjFCS2s '>https://drive.google.com/open?id=0B-CpAcAUqtVkSXl4Tzl3VjFCS2s </a>
masalahnya ada pada saat input barang. Saya klik button kode barang, lalu akan muncul daftar barang dan tinggal pilih saja, setelah itu nama dan harga barang akan muncul otomatis, dan input jumlah yg mau dibeli. setelah itu klik button'+' dan barang yang dipilih tadi akan muncul di tabel untuk ditampung sementara. pertanyaan saya, gimana ya caranya, misal saya udah pilih item 1 dan ditampung di tabel, trus kalo saya klik lagi item1 akan muncul pesan "Barang sudah dipilih"? Mohon bantuannya..
Ini coding form penjualan :
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 dipilih");
} 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("");
}
}
}
}
}
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;
}
}
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;
}
3 Jawaban:
sory ikut nimbrung, sy tidak punya pengalaman sm sekali mengenai java, tapi sepertinya mirip2 javascript ya. penggunaan if else untuk cek apakah sudah ada barang atau belum ada di bagian sini ya?
listEDB=dbc.CekBarang(txtnota.getText(),txtkodebrg.getText());
if(listEDB.size()>0){
JOptionPane.showMessageDialog(null, Barang ini sudah dipilih");
}
...
// kemudian function CekBarang() return logDetailBeli adapun logDetailBeli didefenisikan
// List logDetailBeli = new ArrayList().
// Bukan kah ini akan buat array baru?
// Yang artinya tiap kali kode ini dieksekusi maka akan buat array baru alias tidak menampung data item sebelumnya yg telah ditambahkan?
// Jadi yg if bagian ini if(listEDB.size()>0) artinya kita mengecek apakah ada data di listEDB buka mengecek apakah sudah ada barang dengan kode tertentu
iya, itu koding untuk mengecek duplikat barang. dan koding nya ga berfungsi. jadi gimana ya solusinya?
Saya kurang tahu syntaxnya bagaimana karena sy belum tahu sama sekali mengenai java. Tapi kalau dari kode agan itu yang perlu agan lakukan adalah ini: 1. Agan perlu sebuah sebuah variable yang menampung seluruh barang yg dipilih. 2. Buat juga function untuk memasukkan barang 3. Yang tidak kalah pentingnya buat function untuk cek barang sudah ada atau belum
# Kalau dari kode agan di atas, agan belum punya point 1 dan point 3. Point 2 sudah ada tapi kurang tepat, semestinya new arraylist itu di buat di luar function (bagian ini nanti menjadi point nomor 1).