Pages

Rabu, 17 Juli 2013

Form Pengadaan Barang Aplikasi Minimarket - Java MySQL


     Setelah membuat form input barang. berikutnya adalah membuat form pengadaan barang. Form ini berfungsi. Buat sebuah form seperti berikut ini :
1. Form Pengadaan Barang :


2. Beri nama pada masing-masing fungsi seperti button, textfield, tabel dan jDateChooser. JDate ini merupakan library yang dapat di download pada www.netbeans.org. :


3. Kemudian, langkah awal dalam pengcodingan adalah menampilkan tabel yang akan terkoneksi dengan database pengadaan. Langkahnya sebagai berikut :
private void select() {
        Object header[] = {"ID PENGADAAN", "TANGGAL", "SUPPLIER", "TOTAL TRANSAKSI", "ACTION"};
        DefaultTableModel defaultTable = new DefaultTableModel(null, header);
        tabelpengadaanbarang.setModel(defaultTable);
        tabelpengadaanbarang.getColumnModel().getColumn(4).setCellRenderer(new buttonDetail());
        
        int baris = tabelpengadaanbarang.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }

        String sql_select = "select * from pengadaan";
        try {
            statement = k.con.createStatement();
            resultSet = statement.executeQuery(sql_select);

            while (resultSet.next()) {
                String id_Pengadaan = resultSet.getString(1);
                String tanggal = resultSet.getString(3);
                String supplier = resultSet.getString(4);
                String total = resultSet.getString(5);

                String kolom[] = {id_Pengadaan, tanggal, supplier,total};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
4. Seperti langkah sebelumnya buat sebuah deklarasi variable untu koneksi, resulSet dan statement.  dan panggil koneksi pada konstruktor.

5. Setelah itu jalankan program :


6. Jika muncul, berikutnya adalah mengatur tanggal secara otomatis dimana tanggal tersebut akan ditampilkan pada id pengadaan, sehingga pada id pengadaan tidak ada inputan. lakukan syntax seperti berikut ini :
 private void insertData() {
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            String tanggal = dateFormat.format(txtkalender.getDate());

            SimpleDateFormat dateFormat2 = new SimpleDateFormat("dd.MM.yyyy");
            String tanggal2 = dateFormat2.format(txtkalender.getDate());

            count = 100;
            String sqltanggal = "select tanggal, id_pengadaan from pengadaan";
            resultSet = statement.executeQuery(sqltanggal);

            while (resultSet.next()) {
                String data1 = resultSet.getString(1);
                String data2 = resultSet.getString(2);
                if (data1.equals(tanggal)) {
                    if (count == Integer.valueOf(data2.substring(14, 17))) {
                        count++;
                    }
                }
            }

            String id_pengadaan = "TB." + tanggal2 + "." + count;
            String sql = "insert into pengadaan "
                    + "values('" + id_pengadaan + "','"+Form_Login.userLogin+"','" + tanggal + "','" + txtsupplier.getText() + "',0)";
            statement.executeUpdate(sql);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
Keterangan : Syntax untuk menampilkan insert data sekaligus format automatis pada kolom idpengadaan. Untuk menampilkan jDateChooser membuat SimpleDateFormat untuk melakukan format data yang akan di tampilkan dan untuk memanggilnya menggunakan getDate(). Pada perintah di atas, mula-mula jumlah / count di set 100 sehingga jika ada inputan supplier berikutnya akan menambah menjadi 101,102 dst.. 

Contohnya adalah dapat dilihat pada gambar berikut :


Pada gambar diatas terlihat jelas bahwa format otomatis telah berjalan dengan melihat pada kolom yang telah ditandai. Ketika supplier akan melakukan transaksi pada tanggal yang sama, maka akan secara otomatis jumlah bertambah. 

7. Untuk menampilkan button action tersebut, scriptnya adalah sebagai berikut :
public class buttonDetail extends JButton implements TableCellRenderer{ 
 
    public buttonDetail() { 
    setText("detail"); 
    } 
     
 @Override 
 
public Component getTableCellRendererComponent(JTable table, Object value, 
boolean isSelected, boolean hasFocus, int row, int column) { 
         
setBackground(isSelected?table.getSelectionBackground():table.getBackground()); 
        return this; 
    }     
} 
Dan untuk memanggilnya dalam proses select ( ) adalah :
tabelpengadaanbarang.getColumnModel().getColumn(4).setCellRenderer(new buttonDetail());
8.Tombol button pada tabel berfungsi untuk me-link ke halaman selanjutnya. dan source codenya atau peletakannya adalah pada bagian coding dibawah ini :
if (tabelPengadaan.getSelectedColumn()==4) { 
            this.dispose(); 
            new Form_selanjutnya().setVisible(true); 
        } 
9. Untuk delete data lakukan syntax berikut ini :
 if (txtsupplier.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan dihapus");
        }else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin menghapus kode kategori : "
                    +id_hapus,null,JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                deleteData();
                select();
                clear();
            }else if (hasil == JOptionPane.NO_OPTION) {
                clear();
            }
        }   
10. Pada form_selanjutnya adalah form mengenai form data pembelian, untuk penjelasan selanjutnya dapat diikuti pada postingan berikut ini..

0 Comments
Tweets
Komentar

0 komentar:

Posting Komentar

Tulis komentar disini!