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..

»»  READMORE...

Form Login Pada Aplikasi Minimarket - Java MySQL

     
     Setelah saya mem-posting sebelumnya mengenai form user yang dapat dilihat disini, selanjutnya tugas saya untuk melanjutkan postingan berikutnya yaitu membuat form login. Diharapkan pembaca harus lebih cermat dan teliti karena prosesnya sedikit rumit.
1. Untuk langkah pertama, desain sebuah form login.


2. Deklarasikan variable berikut pada form login :
    koneksi koneksi;
    Statement statement;
    ResultSet resultSet;
    public static int kondisiLogin=3;
    public static String userLogin="tidak terdeteksi";
Keterangan : kondisiLogin di setting = 3, kondisi awal tersebut di atur selain 0 atau 1 karena jika 0 nantinya akan login sebagai admin dan 1 sebagai user.

3. membuat script untuk proses login :
 private void prosesLogin() {
        String level = "";
        try {
            String sql = "select username,password,level from user where username='" 
                    + txtUser.getText() +"' AND password = md5('"+txtPassword.getText()+"'  )"; 

            statement = koneksi.con.createStatement();
            resultSet = statement.executeQuery(sql);

            while (resultSet.next()) {
                level = resultSet.getString(3);
            }
            if (level.equals("")) {
                JOptionPane.showMessageDialog(null, "USERNAME atau PASSWORD SALAH");
                clear();
            } 
            else {
                if (level.equals("0")) {
                    new Menu_Utama(0).setVisible(true);
                    kondisiLogin = 0;

                    this.dispose();
                } else if (level.equals("1")) {
                    new Menu_Utama(1).setVisible(true);
                    kondisiLogin = 1;
                    this.dispose();
                } else {
                    new Menu_Utama(3).setVisible(true);
                    kondisiLogin = 3;
                    this.dispose();
                }
                userLogin = txtUser.getText();
            }

        } catch (Exception  e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
Keterangan : Pada script diatas akan mengecek  siapakah yang login pada sistem. Jika suatu password dan username yang di inputkan salah maka akan muncul sebuah message dialog "username atau password salah" dan apabila benar maka dia akan di cek apakah level nya 0 atau 1. Jika 0 maka login sebagai admin dan 1 sebagai user.


4. Tahap berikutnya adalah buka form menu yang sudah kita buat sebelumnya, jika agan belum membuat dapat dilihat disini. Setelah itu pada form menu, beri nama menu-menu seperti dibawah ini :


5. Pada form menu utama. Buat sebuah deklarasi variable seperti berikut :
    koneksi koneksi;
    public static int kodeLogin=3;
    ResultSet resultSet;
    Statement statement;
6. Kemudian membuat sebuah private belumLogin ( ), private loginAdmin( ), dan private loginKaryawan( ). Kondisi belumLogin ( ) akan berjalan ketika tidak ada user atau admin yang login menjalankan sistem, sedangkan private loginAdmin( ) berjalan ketika admin sedang masuk dalam sistem, begitu juga dengan private loginKaryawan( ) ketika user masuk dalam sistem. 
private void belumLogin() {
        jMenu2.setEnabled(false);
        jMenu3.setEnabled(false);
        jMenu4.setEnabled(false);
        jMenu5.setVisible(true);
        jMenu5.setEnabled(false);
        subMenuLogin.setEnabled(true);
        subMenuRegistrasi.setEnabled(false);
        subMenuLogout.setEnabled(false);
    }

    private void loginAdmin() {
        jMenu2.setEnabled(true);
        jMenu3.setEnabled(true);
        jMenu4.setEnabled(true);
        jMenu5.setEnabled(true);
        jMenu5.setVisible(true);
        subMenuRegistrasi.setEnabled(true);
        subMenuLogout.setEnabled(true);
        subMenuLogin.setEnabled(false);
    }

    private void loginKaryawan() {
        jMenu2.setEnabled(true);
        jMenu3.setEnabled(true);
        jMenu4.setEnabled(true);
        jMenu5.setEnabled(true);
        jMenu5.setVisible(false);
        subMenuRegistrasi.setEnabled(false);
        subMenuLogout.setEnabled(true);
        subMenuLogin.setEnabled(false);
    }
7. Letakkan source code berikut tepat dibawah initComponents( ) :
        kodeLogin = login;
        belumLogin();

        if (login == 0) {
            loginAdmin();
        } else if (login == 1) {
            loginKaryawan();
        } else {
            belumLogin();
        }
8. Kemudian Jalankan menu utama dan lihat pada menu user, submenu logout dan manage user telah di set dengan set enable false, begitu pula dengan menu Management Barang, Pengadaan, Penjualan dan Laporan :


9. Setelah itu coba anda login sebagai user


Lihat perubahan pada menu user. User yang melakukan login pada sistem, maka submenu Login  akan di setEnabled (false). Lihat pada submenu Managae User dan submenu Logout, submenu tersebut akan ter-setEnable (true). Dan jika login sebagai user. Hak akses dapat dilihat pada gambar menu utama dibawah ini, bahwa user tidak dapat melakukan entri data user baru dan tidak dapat mengelola laporan.


10. Coba anda login sebagai Administrator :


11. Dan lihat perubahan pada menu utama. Apa yang terjadi ? bahawa administrator dapat mengelola laporan serta menambah user baru.


»»  READMORE...

Form Input Barang Aplikasi Minimarket Java - MySQL


     Form ini berfungsi untuk menginputkan barang baru setelah form kategori barang telah dibuat. Pada form ini, kategori barang pada form tidak di inputkan secara manual. Melainkan mengambil secara langsung dari tabel kategori. Untuk lebih jelas bagaimana langkah untuk membuatnya, dapat diikuti panduan berikut ini :
1. Buat sebuah form input barang seperti pada gambar berikut :


2. Kemudian beri nama txtfield id barang, txtfield nama barang, combo box kategori, tabel input barang, button delete, button edit serta button insert dan button cancel.

3. Jika selesai memberikan nama. Langkah berikutnya yaitu seperti biasa mendeklarasikan koneksi , resulSet dan statement. 
    koneksi k;
    Statement statement;
    ResultSet resultSet;
4. Panggil method koneksi pada konstruktor :
 k = new koneksi();
5. Setelah itu, masih ingat bagaimana cara menampilkan database tabel barang ke dalam tabel form ? Simak script berikut untuk menampilkannya :
private void select(){
        Object header[] = {"ID BARANG","KATEGORI","NAMA BARANG"};
        DefaultTableModel defaultTable = new DefaultTableModel(null,header);
        tabelBarang.setModel(defaultTable);
        
        int baris = tabelBarang.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }
        
        String sql_select = "select * from barang";
        try {
            statement = k.con.createStatement();
            resultSet = statement.executeQuery(sql_select);
            
            while(resultSet.next()){
                String idBarang = resultSet.getString(1);
                String kategori = resultSet.getString(2);
                String namaBarang = resultSet.getString(3);
                
                String kolom[] = {idBarang,kategori,namaBarang};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
Keterangan :  code di atas akan menampilkan id barang, kategori , nama barang pada tabel barang. perintah sql dengan "select * from barang" akan memanggil semua kolom yang berada pada tabel barang. akan tetapi yang di tampilkan pada form hanyalah id barang, kategori , nama barang.

6. Panggil class di atas dengan meletakkan select ( ) tepat dibawah konstruktor.

7. Kemudian coba jalankan program, jika berhasil akan tampil sebagai berikut :


8. Selanjutnya adalah bagaimana menampilkan data kategori pada tabel kategori  di combo box kategori ?. Lihat hasil berikut :


9. Cara menampilkan seperti di atas adalah, dapat dilihat pada source code dibawah ini :
private void panggilKategori(){
        try {
            comboKategori.removeAllItems();
            String sql="select kategori from kategori";
            resultSet = statement.executeQuery(sql);
            while(resultSet.next()){
                comboKategori.addItem(resultSet.getString(1));
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
10. Selanjutnya adalah melakukan insert data pada form input barang. Ini digunakan ketika terdapat barang baru yang dimasukkan. Dengan cara mengklik kategori apa barang tersebut. dan masukkan id baru serta nama barang. Berikan id yang mudah diingat agar tidak lupa terhapad nama barangnya. buat class seperti berikut ini :
 private void insertData(){
        String idBarang = comboKategori.getSelectedItem().toString();
        
        String sql_insert  = "insert into barang values('"+txtIdBarang.getText() +"','"+idBarang +""
                + "','"+txtnamaBarang.getText() +"',0,0)"; 
        try {
            statement.executeUpdate(sql_insert);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
Keterangan : pada syntax insert data , data yang akan dimasukkan hanya pada id barang, kategori yang diberi variable idBarang, serta nama barang. Pada database tabel barang terdapat stok dan harga jual. Pada kolom tersebut mula-mula di set dengan angka 0.

11. Setelah itu beri validasi pada action performed button insert :
 if (txtIdBarang.getText().isEmpty() || txtnamaBarang.getText().isEmpty() ) {
            JOptionPane.showMessageDialog(null, "Pengisian Form Harus Lengkap");
        }else{
            insertData();
            select();
            clear();
        }
12. Pada source code di atas, terdapat clear ( ) ; ,apa fungsinya ? untuk menghapus data pada txtfield id barang dan txtnama barang ketika barang baru telah di masukkan. Caranya adalah buat source code seperti dibawah ini :
 private void clear(){
        txtIdBarang.setText("");
        txtnamaBarang.setText("");
    }
13. Coba RUN program pada Netbeans dengan menekan Shift + F6 :


14. Insert sebuah barang baru pada kategori ATK, nama barang bernama Rotan dan id barang adalah ATK4. Jika sudah mengisi pada kolom id barang dan nama barang, klik button insert :


15. Lihat pada tabel. Jika barang yang kita isi sebelumnya pada tabel telah tampil. Maka insert data telah berhasil. Jika belum teliti pada langkah-langkah yang sudah dibuat sebelumnya.

16. Apa langkah selanjutnya? jika barang baru yang telah kita masukkan mengalami kesalahan, bisa melakukan edit data dengan memberikan perintah atau source code untuk menjalankan sistem nya. Buat sebuah class untuk menuliskan source code dibawah ini :
 private void updateData() {
        String sql_update = "update barang set kategori = '"+comboKategori.getSelectedItem().toString() 
                +"',nama_barang='"+txtnamaBarang.getText() +"' where id_barang = '"+txtIdBarang.getText() +"'";
        try {
            statement.executeUpdate(sql_update);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
17. Kemudian seperti halnya langkah insert data yaitu memberikan validasi serta meletakkan script di atas pada action performed edit button dengan cara double klik pada button edit. dan letakkan source code berikut :
  if (txtIdBarang.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan diedit");
        }else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin mengedit data dengan kode : "
                    +txtIdBarang.getText(),null,JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                updateData();
                select();
                clear();
            }else if (hasil == JOptionPane.NO_OPTION) {
                clear();
            }
        }  
18. Setelah itu jalankan program. Kemudian Cari id barang ATK4 dan coba lakukan edit data dengan mengganti nama barang yang semula "Rotan" menjadi "Cutter".  dan klik button edit :


19. Setelah mengklik button edit , akan muncul sebuah pesan konfirmasi bahwa "Apakah akan mengedit data atau tidak ?" jika ingin melakukan edit, maka klik "Yes" , klik "No" Jika sebaliknya.


20. Kemudian lihat pada tabel, apakah data yang telah diganti sebelumnya telah tereksekusi atau tidak? Jika anda melakukan langkah secara benar, akan berhasil seperti gambar berikut :


21. Langkah selanjutnya adalah menghapus data. Fungsi ini sangat diperlukan ketika kita tidak memerlukan data, kita bisa melakukan delete. Bagaimana scriptnya ? ikuti langkah berikut, membuat source code untuk menghapus data :
private void deleteData(){
        String sql_delete  = "delete from barang where id_barang = '"+txtIdBarang.getText() +"'"; 
        try {
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
22. Kemudian double klik button delete dan letakkan code berikut :
 if (txtIdBarang.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan dihapus");
        }else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin menghapus kode kategori : "
                    +txtIdBarang.getText(),null,JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                deleteData();
                select();
                clear();
            }else if (hasil == JOptionPane.NO_OPTION) {
                clear();
            }
        }  

23. Kemudian jalankan program dan setelah itu, hapus idbarang ATK4 :


24. Akan muncul pesan konfirmasi seperti biasa, klik "Yes" untuk meneruskan penghapusan data :


25. Jika data telah terhapus seperti dibawah ini : maka anda telah berhasil dalam mengikuti langkah-langkah di atas :


26. yang terakhir adalah membuat action performed button cancel, button ini akan mengembalikan ke form menu utama. Ketik source code berikut ini :
        clear();
        new Menu_Utama(Form_Login.kondisiLogin).setVisible(true);
        this.dispose();
27. Selesai, Ikuti langkah diatas dengan benar agar dapat menjalankan form input barang.
»»  READMORE...

Kamis, 11 Juli 2013

Form Kategori Barang Aplikasi Minimarket - Java MySQL

 
     Sekarang, saya akan membahas mengenai pembuatan form kategori barang. Sebelumnya saya telah mempostingkan mengenai database aplikasi minimarket. Perlu diketahui kategori barang ini, nama table pada databasenya adalah kategori. Coba kita review sedikit ada kolom apa saja dalam database kategori ? lihat pada gambar berikut :

       Pada gambar diatas terlihat bahwa tabel kategori memiliki 2 atribut. Yaitu atribut kategori dan deskripsi. Nah.. untuk langkah selanjutnya :

1. Buatlah form kategori barang, saya contohkan form seperti gambar dibawah ini :


2. Tahap kedua mari kita bermain dengan source code - nya. Untuk pertama-tama. buat sebuah source code dibawah ini :
    koneksi k;
    Statement statement;
    ResultSet resultSet;
3. Kemudian letakkan source code berikut, dibawah initComponents(), fungsinya adalah untuk memanggil koneksi dalam database :
 k = new koneksi();
4. Setelah itu bagaimana ? langkah selanjutnya yang harus dilakukan adalah menampilkan tabel yang di ambil dari database, caranya adalah seperti coding berikut :
 private void select(){
        Object header[]={"ID KATEGORI","DESKRIPSI"};
        DefaultTableModel defaultTable = new DefaultTableModel(null,header);
        tabelkategori.setModel(defaultTable);
        
        int baris = tabelkategori.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTable.removeRow(i);
        }
        
        String sql_select = "select * from kategori";
        try {
            statement = k.con.createStatement();
            resultSet = statement.executeQuery(sql_select);
            
            while(resultSet.next()){
                String kategori = resultSet.getString(1);
                String deskripsi = resultSet.getString(2);
                
                String kolom[] = {kategori,deskripsi};
                defaultTable.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
5. Kemudian, setelah menulis source code di atas. Letakkan "select ( )" dibawah initComponents( ) agar tabel tersebut dapat tampil ketika program dijalankan. Coba jalankan form kategori barang :


6. Jika anda menjalankan dan akan tampil seperti gambar diatas, maka langkah tersebut telah berhasi. Selanjutnya, menuliskan source code untuk insert data :
 private void insertData(){
        String sql_insert  = "insert into kategori values ('"+txtkategori.getText()+"','"+txtdeskripsi.getText()+"')"; 
        try {
            statement.executeUpdate(sql_insert);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }
7. Kemudian buat sebuah class private void clear( ) agar ketika di insert data yang di tulis pada textfield dan textarea akan terhapus :
        private void clear(){
        txtkategori.setText("");
        txtdeskripsi.setText("");
    }
8. Langkah berikutnya adalah, double click pada button insert. Dan buat source code untuk memanggil insert data :
   if (txtkategori.getText().isEmpty() || txtdeskripsi.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pengisian Form Harus Lengkap");
        }else{
            insertData();
            select();
            clear();
        }
Keterangan : Pada script di atas, jika txtkategori atau txtdeskripsi itu tidak diisi, maka form tersebut akan menampilkan pesan dialog bahwa "Pengisian Form Harus Lengkap". Dan jika keduanya telah di isi. maka akan melakukan insert data.

9. Coba jalankan program anda, dan lihat apakah insert data anda berhasil, jika benar maka data tersebut akan seperti gambar dibawah ini :


10. Setelah itu lihat pada tabel, apakah data tersebut telah berhasil di insert dan di tampilkan pada tabel ?


11. Setelah berhasil melakukan insert data, bagaimana jika data yang di entri mengalami kesalahan penulisan kata ? Solusinya adalah dengan membuat delete data. Pastikan anda telah membuat button delete, letakkan source code dibawah ini :
  private void deleteData(){
        String sql_delete = "delete from kategori where kategori = '"+txtkategori.getText()+"'"; 
        try {
            statement.executeUpdate(sql_delete);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Data masih digunakan!!");
        }
    }
12. Letakkan source code untuk memanggil script di atas pada action button performed dari button delete. Atau bisa dilakukan dengan melakukan double click pada button delete :
 if (txtkategori.getText().isEmpty()) {
            JOptionPane.showMessageDialog(null, "Pilih data yang akan dihapus");
        }else {
            int hasil = JOptionPane.showConfirmDialog(null, "Apakah benar anda ingin menghapus kode kategori : "
                    +txtkategori.getText(),null,JOptionPane.YES_NO_OPTION);
            if (hasil == JOptionPane.YES_OPTION) {
                deleteData();
                select();
                clear();
            }else if (hasil == JOptionPane.NO_OPTION) {
                clear();
            }
        }   
Keterangan : Jika txtkategori tersebut di klik tidak diisi, maka akan menampilkan pesan error "Pilih data yang akan dihapus". Dan jika txtkategori telah diisi, maka akan menampilkan pesan konfirmasi mengenai "Apakah benar anda ingin menghapus kode kategori : <nama kategori yang dihapus>.  Dan kemudian jika benar akan dihapus, maka proses tersebut akan melakukan delete data, jika tidak, hanya melakukan clear data pada pengisian data.

13. Coba jalankan terlebih dahulu programnya. Dan lakukan pilih data yang akan di delete :


13. Jika anda meng-klik "Yes" maka data Type-x akan terhapus dan pembuktiannya dapat dilihat pada tabel form kategori barang :

»»  READMORE...

Membuat Form User Aplikasi Minimarket - Java MySQL


     Pada postingan sebelumnya, saya membahas mengenai bagaimana cara membuat menu utama dari aplikasi minimarket. Kali ini kita akan fokus dengan pembuatan form user. Apa kegunaan dari form user ? form user ini berfungsi sebagai login dan untuk mengetahui siapa yang melakukan transaksi dalam aplikasi, apakah user ? atau administrator?. Oleh karena itu form ini dibuat untuk memecahkan hal tersebut. Bagaimana yang harus dilakukan? Simak lah panduan berikut :

1. Buatlah sebuah desain JFrame seperti dibawah ini :
Form user ini terdapat sebuah Tabbed Pane. Tab yang pertama adalah tambah user, tambah user ini bertujuan untuk mendata user atau administrator baru. Sehingga operator baru yang menjalankan aplikasi minimarket akan di eksekusi pada form ini.

Form User(Tambah User)

Form User (Reset Password)

2. Setelah anda membuatnya, langkah selanjutnya adalah deklarasikan sebuah variable untuk koneksi, ResulSet dan Statement.
koneksi koneksi;
ResultSet resultSet;
Statement statement;

3. Panggil koneksi tepat dibawah initComponents( ) :
koneksi = new koneksi();

4. Kemudian menampilkan tabel yang isinya diambil dari database dan ditampilkan pada form user. Yang akan di tampilkan pada form user adalah username, nama, alamat dan nomor telepon, dimana nomor telepon sebagai Primary Key. Scriptnya dapat dilihat sebagai berikut :
private void tampilanadministrator() {
        Object header[] = {"USERNAME", "NAMA", "ALAMAT", "NO TELEPON"};
        DefaultTableModel defaultTableModel = new DefaultTableModel(null, header);
        tabeladmin.setModel(defaultTableModel);

        //menghapus tabel sebelum menampilkan data
        int baris = tabeladmin.getRowCount();
        for (int i = 0; i < baris; i++) {
            defaultTableModel.removeRow(i);
        }

        String sql = "select username, nama, alamat, no_telepon from user";
        try {
            statement = koneksi.con.createStatement();
            resultSet = statement.executeQuery(sql);

            while (resultSet.next()) {
                String kolom1 = resultSet.getString(1);
                String kolom2 = resultSet.getString(2);
                String kolom3 = resultSet.getString(3);
                String kolom4 = resultSet.getString(4);

                String kolom[] = {kolom1, kolom2, kolom3, kolom4};
                defaultTableModel.addRow(kolom);
            }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
            System.out.println("" + e.getMessage());
        }
    }

5. Kemudian letakkan  tampilanadministrator() dibawah initComponents( ) agar dapat langsung berjalan ketika form user di compile.

6. Buat sebuah private void insert () untuk melakukan insert data ke dalam database dan di tampilkan dalam tabel form user. Perlu diketahui dalam membuat insert data ini, harus benar-benar terlindungi agar password user tidak diketahui oleh user lain. Maka dari itu dibuat sebuah enkripsi data menggunakan MD5. MD5 berfungsi untuk melindungi password dengan merubahnya keladam bentuk huruf maupun angka secara random. Skripnya datap dilihat dibawah ini :
private void insert() {
        char[] passw = txtPassword.getPassword();
        String sandi = "";
        for (int i = 0; i < passw.length; i++) {
            sandi = sandi + passw[i];
        }
        int level;
        if (comboLevel.getSelectedItem().equals("Admin")) {
            level = 0;
        } else {
            level = 1;
        }
        try {
            String sql =
                    "insert into user values('" + txtUser.getText() + "'  ,md5('" + sandi + "'  )," + level + "  ,'" + txtNama.getText() + "'  ,'" + txtAlamat.getText() + "','" + txtTelpon.getText() + "')";
            statement.executeUpdate(sql);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "error pada insert : " + e.getMessage());
        }
    }

7. Buat private void reset () dan private void delete(). Reset digunakan untuk mengatur ulang password ulang apabila mengalami lupa password. Karena jika password lupa maka tidak dapat menjalankan sistem. Sedangkan delete untuk menghapus data user atau administrator ketika data tersebut tak digunakan. Berikut Source Code nya:
Reset :
private void reset() {
        try {
            String sql = "update user set password=md5('" + txtPassword2.getText() +
                    "') where username='" + txtUser2.getText() + "'";
            statement = koneksi.con.createStatement();
            statement.executeUpdate(sql);
            statement.close();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

Delete :
private void Hapusadministrator() {
        String query = "delete from user where no_telepon = '" + txtTelpon.getText() + "'";
        try {
            statement.executeUpdate(query);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage());
        }
    }

8. Jika selesai, langkah berikutnya, hanya memanggil script void tersebut kedalam action button. Caranya adalah double klik pada button, misalkan button insert atau add. Kemudian kita ketik insert(); agar dapat dijalankan ketika button di klik.

9. Coba jalankan program. dan kemudian lakukan insert, delete maupun reset password.  Jika berhasil maka akan muncul seperti gambar yang saya posting dibawah ini :
a. Saat program dijalankan, tabel user muncul :

Data  tampil pada tabel user

b. Ketika melakukan insert data :

Meingputkan data baru sebagai user

Data ditampilkan pada tabel user

c. Reset Password :

Reset password pada username yang di pilih

d. Delete user atau administrator :

Pilih data pada tabel

data terhapus sesuai nomor telepon sebagai id
»»  READMORE...

Membuat Menu Utama Aplikasi Minimarket - Java MySQL

     Pada pembahasan sebelumnya, sudah disediakan postingan bagaimana membuat database aplikasi minimarket serta koneksi database ke MySQL. Jika kalian belum membuatnya, coba lihat link disini untuk mengetahui bagaimana cara membuat database minimarket dan klik disini untuk membuat koneksi dari java ke MySQL. Selanjutnya, postingan kali ini adalah membuat menu dari aplikasi minimarket yang saya buat. Menu Utama tersebut dapat dilihat pada gambar berikut :

a. Menu Utama :


b. User :


c. Management Barang :


d. Pengadaan :


e. Penjualan :


 f. Laporan :


     Bagaimana cara membuatnya ? nah.. untuk membuat menu seperti di atas, ada baiknya agan menyimak langkah-langkahnya sebagai berikut :

1. Buat sebuah JFrame pada project dengan nama "Menu_Utama".

2. Setelah itu, Buat 1 buah panel  dengan cara klik "Pallete" pada Netbeans dan pada Swing Containers, pilih "Panel". 

3. Masih pada Pallete, berikutnya adalah membuat menu, pada Swing Menus, terdapat berbagai pilihan dan cari "Menu bar". 


4. Kemudian pada menu yang telah kita buat, "klik kanan" lalu pilih "add menu" sebanyak 3x. "Double klik" pada menu dan rubah nama menu-menu tersebut menjadi seperti gambar dibawah ini :



5. Langkah berikutnya adalah membuat sub-menu, Pada panduan berikut saya hanya memberi contoh pada satu menu yaitu user. Caranya adalah "klik menu user", kemudian pilih "Add From Pallete" dan pilih "Menu Item". Dan rename nama-nama submenu tersebut seperti dibawah ini :



6. Lakukan dengan hal yang sama pada Menu Management Barang dengan sub-menu : kategori barang, daftar barang. Menu Pengadaan : Transaksi Pengadaan, Daftar Pengadaan Barang, Stok Barang. Menu Penjualan : Penjualan Barang. Menu Laporan : Laporan Stok, Laporan Laba, Laporan Barang Terlaris, Laporan Barang Kadaluarsa.

7. Setelah agan membuat menu dengan sub-menu nya. Bagaimana dengan langkah selanjutnya? Yaitu memberi icon pada menu agar tampilannya lebih menarik, Caranya adalah : klik menu yang akan diberi gambar, pada contoh menggunakan menu user. Kemudian pilih "Properties" pada Netbeans. setelah itu pilih "icon", dapat dilihat pada gambar berikut :


8. Pilih "External Image" dan kemudian klik "Import to Project".


9. Cari icon yang akan agan masukkan kedalam menu user. Jika sudah, klik "Next" sebelum klik finish. Apa alasannya? agar icon tersebut di taruh dalam satu folder project yang kita buat. Kemudian pilih package "gambar". dan klik "Finish". 




Package tersebut berasal dari project kita. jika agan belum membuat package tersebut bisa membuatnya dengan cara : "klik kanan project", Kemudian "New Java Package".

10. Setelah itu gambar yang kita pilih sebelumnya akan muncul, jika icon tersebut benar, klik saja "Ok".


11. Dan akan tampil seperti ini :


12. Bagaimana mengatur menu user agar tulisan berada di bawah icon user? langkahnya adalah "klik menu user" kemudian pilih "Properties". Kemudian ubah "Horizontal Alligment" dan "Horizontal Text Position" menjadi "CENTER".


14. Setelah itu ubah "Vertical Alligment" dan "VerticalText Position" menjadi "BOTTOM".


15. Jika selesai, maka hasil akan terlihat seperti gambar berikut :


»»  READMORE...