Cara Gampang Bikin Aplikasi CRUD

Kalau kemarin telah saya posting tentang cara gampang koneksi database dengan java netbeans, nah… sekarang mari kita coba implementasikan pada Swing Application. Maaf kali ini tidak menggunakan metode-metode yang rumit, langsung aja to the point… hehehe… Konsepnya adalah menyimpan langsung dari view ke database, menghapus database langsung berdasarkan key yang ada pada vienya, demikian pula pada metode editnya. Walaupun kodenya akan menumpuk, tetapi ndak terlalu panjang kok… hehehe… Tinggal kita sendiri bagaimana menyimpulkan mau yang pake metode MVC, metode obok-obok kayak gini, atau pake framework yang keren. Semua terserah anda…. Nah, mari kita buat designnya dulu… Sebagai contoh buatlah design form seperti gambar di bawah ini.

Nah, setelah itu sesuaikanlah variable name nya sesuai dengan kode di bawah ini. (Kode di bawah ini adalah kode untuk JButton New. Atau script yang dipanggil ketika form dipanggil.

    private void Baru() {
        btnSave.setText("Save");
        Date date = new Date();
        SimpleDateFormat formatHari = new SimpleDateFormat("dd");
        txtTanggal.setText("" + formatHari.format(date));
        SimpleDateFormat formatBulan = new SimpleDateFormat("MM");
        txtBulan.setText("" + formatBulan.format(date));
        SimpleDateFormat formatTahun = new SimpleDateFormat("yyyy");
        txtTahun.setText("" + formatTahun.format(date));
        txtNIS.requestFocus();
        txtNIS.setText("");
        txtNama.setText("");
        txtTempatLahir.setText("");
        txtAlamat.setText("");

        try {
            Class.forName(KoneksiDatabase.driver);
            java.sql.Connection c = DriverManager.getConnection(KoneksiDatabase.database, KoneksiDatabase.user, KoneksiDatabase.pass);
            Statement s = c.createStatement();
            String sql = "select * from Identitas";
            ResultSet rs = s.executeQuery(sql);

            final String[] headers = {"NIS", "Nama", "Tempat Lahir", "Tanggal Lahir", "Alamat"};
            rs.last();

            int n = rs.getRow();
            Object[][] data = new Object[n][5];
            int p = 0;
            rs.beforeFirst();
            while (rs.next()) {
                data[p][0] = rs.getString(1);
                data[p][1] = rs.getString(2);
                data[p][2] = rs.getString(3);
                data[p][3] = rs.getString(4);
                data[p][4] = rs.getString(5);
                p++;
            }
            tblIdentitas.setModel(new DefaultTableModel(data, headers));
            tblIdentitas.setAlignmentX(CENTER_ALIGNMENT);

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Gagal Koneksi kang....", "Warning", JOptionPane.WARNING_MESSAGE);
        }

    }

Nah, setelah itu kita bikin juga kondisi saat kita menyimpan. Untuk sourcecode menyimpannya seperti berikut :

    private void Simpan() {
        if (txtNIS.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Isi NIS nya ya....!!!", "Peringatan", JOptionPane.ERROR_MESSAGE);
            txtNIS.requestFocus();
        } else if (txtNama.getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Isi Nama nya ya....!!!", "Peringatan", JOptionPane.ERROR_MESSAGE);
            txtNama.requestFocus();
        } else {
            try {
                Class.forName(KoneksiDatabase.driver);
                java.sql.Connection c = DriverManager.getConnection(KoneksiDatabase.database, KoneksiDatabase.user, KoneksiDatabase.pass);
                Statement s = c.createStatement();
                String sql;
                String tanggallahir;
                tanggallahir = txtTahun.getText() + "-" + txtBulan.getText() + "-" + txtTanggal.getText();
                if (btnSave.getText().equals("Save")) {
                    sql = "insert into Identitas values ('";
                    sql += txtNIS.getText() + "','";
                    sql += txtNama.getText() + "','";
                    sql += txtTempatLahir.getText() + "','";
                    sql += tanggallahir + "','";
                    sql += txtAlamat.getText() + "')";
                    JOptionPane.showMessageDialog(null, "Data berhasil disimpan ...!" + sql, "Informasi", JOptionPane.INFORMATION_MESSAGE);
                } else {
                    sql = "update Identitas set Nama = '";
                    sql += txtNama.getText() + "', TempatLahir='";
                    sql += txtTempatLahir.getText() + "', TanggalLahir='";
                    sql += tanggallahir + "', Alamat='";
                    sql += txtAlamat.getText() + "'";
                    sql += "where Nis = '" + txtNIS.getText() + "'";
                }
                s.executeUpdate(sql);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(null, "Terjadi kesalahan koneksi...!!!", "Peringatan", JOptionPane.WARNING_MESSAGE);
            }
            Baru();
        }

    }

Sedangkan untuk aksi penghapusan data dapat menggunakan kode program sebagai berikut :

    private void Hapus() {
        try {
            Class.forName(KoneksiDatabase.driver);
            java.sql.Connection c = DriverManager.getConnection(KoneksiDatabase.database, KoneksiDatabase.user, KoneksiDatabase.pass);
            Statement s = c.createStatement();
            String sql = "DELETE FROM Identitas where Nis ='"+txtNIS.getText()+"'";
            s.executeUpdate(sql);
            JOptionPane.showMessageDialog(null, "Data telah berhasil dihapus...!!!", "Informasi", JOptionPane.INFORMATION_MESSAGE);
            Baru();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Kemungkinan terjadi kegagalan koneksi", "Warning", JOptionPane.ERROR_MESSAGE);
        }
    }

Nah, kalau tablenya gimana? Ketika salah satu baris diclik maka akan memunculkan datanya pada Jtextfield. Nah, itu semua dapat ditangani dengan script sebagai berikut :

    private void KlikTabel() {
        SimpleDateFormat formatTanggal = new SimpleDateFormat("dd");
        String tanggal = tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 3).toString();
        btnSave.setText("Edit");
        txtNIS.setText(tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 0).toString());
        txtNama.setText(tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 1).toString());
        txtTempatLahir.setText(tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 2).toString());
        txtTempatLahir.setText(tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 2).toString());
        txtTanggal.setText(tanggal.substring(8));
        txtBulan.setText(tanggal.substring(5, 7));
        txtTahun.setText(tanggal.substring(0, 4));
        txtAlamat.setText(tblIdentitas.getValueAt(tblIdentitas.getSelectedRow(), 4).toString());
    }

Nah, semestinya pada form di atas juga terdapat validasi-validasi pada saat inputan. Akan saya bahas di waktu yang akan datang. Nah, kalau udah selesai, maka tampilannya ketika dijalankan dan digunakan dapat berjalan seperti berikut :

Nah, sampai jumpa di tutorial berikutnya…. 😀

Iklan

One comment on “Cara Gampang Bikin Aplikasi CRUD

  1. mas,.. numpanng tanya klo ngosongin field tanggal pada tabel mysql gimana caranya mas….?
    soalnya klo dikasih nilai’y string kosong selalu ditolak

    Error : Incorrect date value

    saya pengen bisa nginpun data pada tanggal keluar = kosong ketika seorang pegawai masih aktif, dan baru diisi saat pegawai tsb keluar gtu deh,..

    mohon pencerahannya

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s