Membuat Aplikasi Data Entry dengan Database SQLite

Melanjutkan tutorial sebelumnya tentang SQLite, kali ini saya membuat aplikasi sederhana untuk melakukan entry data. Aplikasi ini mempunyai fungsi insert, edit, delete dan tentu saja menggunakan driver SQLite. Supaya tidak kesulitan, ikuti terlebih dahulu tutorial yang pernah saya tulis sebelumnya, yaitu mengenai Pemrogaman Java dengan SQLite dan Menggunakan CardLayout di Netbeans dimana tutorial ini merupakan lanjutan dari kedua tutorial tersebut.

Sedangkan untuk melihat index keseluruhan tutorial, anda dapat membaca page Membuat Aplikasi Data Entry dengan Database SQLite

Membuat Aplikasi Data Entry dengan Database SQLite

Langsung saja berikut dokumentasi membuat aplikasi data entry dengan database sqlite yang saya buat.

Pertama buat project baru seperti biasa, saya beri nama SQLiteProject atau silakan melanjutkan tutorial sebelumnya mengenai Menggunakan CardLayout di Netbeans.

Buat Form dengan menggunakan GUI builder Netbeans, seperti ini

membuat aplikasi data entry dengan database sqlite
panel utama

Panel dengan card name utama, memiliki dua button yaitu button Masuk dengan nama variable btnMasuk dan button CreateDB dengan nama variable btnCreateDB.

Ketika button CreateDB diklik maka aplikasi akan membuatkan database baru dan secara otomatis menghapus database sebelumnya. Sedangkan button Masuk akan membawa kita ke panel entry

membuat program data entry dengan menggunakan SQLite
panel entry

Panel dengan card name entry, terdapat dua buah text field dan tiga button dengan masing-masing memiliki nama variable txtNama, txtJurusan, btnTabel (button Tabel), btnReset (button Reset) dan btnSimpan (button Simpan).

Button Simpan berfungsi untuk melakukan penyimpanan ke dalam database, button Reset berfungsi untuk menghapus teks yang berada di kedua text field, dan button Tabel berfungsi menampilkan panel tabel berisikan data-data yang telah dientry.

melakukan update entry dengan database SQLite Java
panel tabel

Panel dengan card name tabel, akan menampilkan data-data yang telah dientry sebelumnya, di dalam panel ini terdapat tiga button dengan masing-masing memiliki nama variable btnEntry, btnUpdate, btnDelete.

Button Entry akan mengarahkan kita kembali ke panel entry, button Update berfungsi untuk melakukan update data dan button Delete untuk menghapus data yang telah tersimpan. Fungsi Update dan Delete ini dapat dijalankan setelah sebelumnya melakukan seleksi tehadap data yang akan di update/delete pada tabel. Catatan: Tabel tersebut berada di dalam jScrollPane dengan nama variable jTable1.

membuat aplikasi data entry dengan java
panel about

Panel dengan card name about ini hanya sebatas tambahan saja, sebagai informasi mengenai programmer yang membuat aplikasi tersebut.

Sekarang kita akan mulai bermain dengan source code, masuk ke tampilan source dan deklarasikan variable berikut di bawah deklarasi class:

DefaultTableModel tableModel;

Object data[] = new Object[10];

String tempNama, tempJurusan;

Kembali ke tampilan Design, dimulai dari panel utama, klik kanan button Masuk, pilih Events, pilih action, pilih actionPerformed dan ketikkan code berikut

CardLayout cl = (CardLayout)panelForm.getLayout();

cl.show(panelForm, "entry");

Maksud dari code di atas adalah, ketika kita menekan button Masuk, maka kita akan diarahkan ke panel card entry.

Ulangi langkah di atas untuk button Entry dan button Tabel dan sesuaikan codenya.

Untuk button CreateDB berikan actionPerformed dengan code sebagai berikut:

try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db");
            Statement stat = con.createStatement();
            stat.executeUpdate("drop table if exists mahasiswa;");
            stat.executeUpdate("create table mahasiswa (nama, jurusan);");
            tabel();
            con.close();
            JOptionPane.showMessageDialog(null, "Database Berhasil Dibuat", "Selamat", JOptionPane.INFORMATION_MESSAGE);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
        }
    }

Untuk button Reset berikan actionPerformed dengan code sebagai berikut:

txtNama.setText("");
txtJurusan.setText("");

 

Untuk button Simpan juga sama dengan button yang lain, codenya sebagai berikut:

try {
            simpanData();
        } catch (Exception ex) {
            Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex);
        }

Sementara untuk method simpanData seperti ini code nya:

private void simpanData() throws Exception{
        try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db");
            Statement stat = con.createStatement();
            PreparedStatement prep = con.prepareStatement("insert into mahasiswa values (?, ?);");

            prep.setString(1, txtNama.getText());
            prep.setString(2, txtJurusan.getText());
            prep.addBatch();

            con.setAutoCommit(false);
            prep.executeBatch();
            con.setAutoCommit(true);
            tabel();
            con.close();
            JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan", "Selamat", JOptionPane.INFORMATION_MESSAGE);
            txtNama.setText("");
            txtJurusan.setText("");

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE);
        } catch (ClassNotFoundException cnfe){
            JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE);
        }       
    }

Selanjutnya kita akan menampilkan data yang telah diinput tersebut dalam bentuk tabel, klik kanan tabel, pilih Events, pilih Mouse, pilih mouseClicked dan isikan code berikut:

int n = 0;
n = jTable1.getSelectedRow();
txtNama.setText(jTable1.getValueAt(n, 0).toString());
txtJurusan.setText(jTable1.getValueAt(n, 1).toString());

Supaya tabel tersebut akan berubah secara otomatis ketika ada data yang masuk, maka buatlah method tabel dan ketikkan code berikut:

private void tabel() {
        try {

                jTable1.setModel(new javax.swing.table.DefaultTableModel(new Object[][]{}, new String []{"Nama", "Jurusan"}));

                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db");
                Statement stat = con.createStatement();
                ResultSet rs = stat.executeQuery("select * from mahasiswa;");

                tableModel = (DefaultTableModel)jTable1.getModel();

                while (rs.next()){
                    for (int i=0;i<2;i++){
                        data[i]=rs.getString(i+1);
                    }
                  tableModel.addRow(data);
                }
                rs.close();
                con.close();

        } catch (Exception e) {
        }
    }

Untuk button Update, berikan code berikut:

int n = 0;
        n = jTable1.getSelectedRow();
        tempNama = (String) jTable1.getValueAt(n, 0);
        tempJurusan = (String) jTable1.getValueAt(n, 1);
        try {
            updatePane();
        } catch (Exception ex) {
            Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex);
        }

Dan untuk method updatePane() adalah sebagai berikut:

private void updatePane() throws Exception{
        JTextField Nama = new JTextField(10);
        JTextField Jurusan = new JTextField(10);

        JPanel myPanel = new JPanel();
        myPanel.add(new JLabel("Nama"));
        myPanel.add(Nama);
        myPanel.add(Box.createHorizontalStrut(15)); // a spacer
        myPanel.add(new JLabel("Jurusan"));
        myPanel.add(Jurusan);

        int result = JOptionPane.showConfirmDialog(null, myPanel, 
           "Masukkan data yang benar:", JOptionPane.OK_CANCEL_OPTION);
        if (result == JOptionPane.OK_OPTION) {
            try {
                Class.forName("org.sqlite.JDBC");
                Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db");
                Statement stat = con.createStatement();
                PreparedStatement prep = con.prepareStatement("update mahasiswa set nama=?, jurusan =? where nama='"+tempNama+"';");

                prep.setString(1, Nama.getText());
                prep.setString(2, Jurusan.getText());
                prep.addBatch();

                con.setAutoCommit(false);
                prep.executeBatch();
                con.setAutoCommit(true);
                tabel();
                con.close();
                JOptionPane.showMessageDialog(null, "Data Berhasil Diupdate", "Selamat", JOptionPane.INFORMATION_MESSAGE);

            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE);
                System.out.println(e.getMessage());
            } catch (ClassNotFoundException cnfe){
                JOptionPane.showMessageDialog(null, "Koneksi Gagal", "Error", JOptionPane.ERROR_MESSAGE);
                System.out.println(cnfe.getMessage());
            }
        }
    }

Terakhir adalah button Delete dengan code sebagai berikut:

int n = 0;
        String temp;
        n = jTable1.getSelectedRow();
        temp = (String) jTable1.getValueAt(n, 0);
        if(JOptionPane.showConfirmDialog(null,"Anda Yakin Akan Menghapus Data Ini? ","Peringatan",JOptionPane.OK_CANCEL_OPTION,JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
        {
            try {
            Class.forName("org.sqlite.JDBC");
            Connection con = DriverManager.getConnection("jdbc:sqlite:belajarSQLite.db");
            Statement stat = con.createStatement();
            stat.executeUpdate("delete from Mahasiswa where Nama = '"+temp+"'");
            tabel();
            con.close();
            } catch (Exception ex) {
                Logger.getLogger(Form.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

Silakan dicoba-coba source code di atas, source code dapat di download di sini

Alhamdulillah, akhirnya tutorial membuat aplikasi data entry sqlite java selesai sudah.

Semoga bermanfaat.

4 thoughts on “Membuat Aplikasi Data Entry dengan Database SQLite”

Leave a Reply to azuharu Cancel reply