Lompat ke konten Lompat ke sidebar Lompat ke footer

Koneksi PostgreSQL dengan Java Menggunakan GUI Netbeans

Koneksi PostgreSQL dengan Java Menggunakan GUI Netbeans - Sebelumnya pembahasan mengenai tutorial dasar menghubungkan postgreSQL dengan java telah dijelaskan, bagi anda yang belum membaca dapat mengunjunginya disini. kali ini akan dibahas mengenai pengembangan program koneksi postgreSQL dengan menggunakan GUI netbeans. Selain tampilannya yang lebih menarik, penggunaan GUI netbeans tentunya akan lebih mempermudah pengguna dalam mengoperasikan aplikasi.


Kelas Informatika - Koneksi PostgreSQL dengan Java Menggunakan GUI Netbeans


Koneksi Database PostgreSQL

Langkah pertama yakni membuat koneksi database. Untuk mempraktekkannya, Kelas Informatika telah menulis tutorial menghubungkan koneksi postgreSQL dengan java yang dapat anda lihat disini. Perlu kita ketahui bahwa database yang akan digunakan pada tutorial kali ini adalah database mahasiswa, sama halnya dengan tutorial sebelumnya.

Rancang Form Aplikasi

Selanjutnya, kita buat form yang didalamnya terdapat tombol insert, update, delete, tampil dan pencarian data. Agar lebih mudah kita gunakan GUI builder.

Kelas Informatika - GUI Builder Netbeans Aplikasi Data Mahasiswa

Berikut sentuhan akhir dari pembuatan form data mahasiswa yang dibangun menggunakan GUI Builder. Preview ini menggunakan jenis tampilan nimbuss.

Kelas Informatika - Interface Netbeans Program Data Mahasiswa Nimbuss Preview

Membuat Fungsi Event

Kita lanjutkan dengan membuat fungsi event atau aksi tombol, sesuai dengan interface yang telah kita buat sebelumnya. Esensinya proses ini tidaklah jauh berbeda dengan beberapa fungsi method yang telah kami jelaskan pada postingan sebelumnya. Hanya saja disini lebih mengembangkan aspek pengguna, tujuannya agar program terlihat lebih menarik dan mempunyai nilai estetika serta user friendly.

Insert Data

Langkah pertama adalah menambah source code insert data. Pada intinya source code fungsi insert data tidaklah jauh berbeda dengan tutorial sebelumnya. Kita hanya perlu menyesuaikan dengan variabel yang terdapat pada interface aplikasi, seperti halnya button, edit text, text field, dsb. Berikut source code insert data yang dapat anda gunakan.
private void insertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed
        int mah_nim = Integer.parseInt(tnim.getText());
        String mah_nama = tnama.getText();
        String mah_alamat = talamat.getText();
        String mah_telp = ttelp.getText();
        int fak_id = Integer.parseInt(tfakId.getText());
        int jur_id = Integer.parseInt(tjurId.getText());
        
        try {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "insert into mahasiswa values (" + mah_nim + ",'" + mah_nama + "','" + mah_alamat + "','" + no_telp + "'," + fak_id + "'," + jur_id + ");";
            statemen.executeUpdate(sql);
            statemen.close();
            JOptionPane.showMessageDialog(null, "Data mahasiswa telah tersimpan...");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, silahkan periksa" + e);
        }
    }
Kemudian kita jalankan program dan masukkan suatu data. Sebagai contoh, telah kami input data mahasiswa dengan NIM 19. Lengkapi pula isian identitas lain, seperti halnya nama, alamat, telepon, dan yang lain.

Kelas Informatika - Insert Data Mahasiswa Berhasil

Terlihat dari gambar diatas, penginputan data dengan NIM 19 memunculkan pesan “Data mahasiswa telah tersimpan”. Artinya tidak terdapat kesalahan pada source code insert data, sehingga fungsi dapat dijalankan. 

Selanjutnya kita lakukan pengecekan pada SQL Shell PostgreSQL. Apabila telah tampil data baru yang sesuai dengan inputan (NIM 19), berarti SQL Shell PostgreSQL telah terintegrasi dengan program.

Kelas Informatika - SQL Shell PostgreSQL Insert Data Mahasiswa

Update Data

Kedua kita buat aksi tombol update dengan menggunakan source code berikut.
private void updateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed
        int mah_nim = Integer.parseInt(tnim.getText());
        String mah_nama = tnama.getText();
        String mah_alamat = talamat.getText();
        String mah_telp = ttelp.getText();
        int fak_id = Integer.parseInt(tfakId.getText());
        int jur_id = Integer.parseInt(tjurId.getText());
        
        try {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "update mahasiswa set mah_nama = '" + mah_nama + "', "
                    + "mah_alamat = '" + mah_alamat + "', "
                    + "no_telp = '" + no_telp + "', "
                    + "fak_id = " + fak_id + "', "
                    + "fak_id = " + jur_id
                    + "where mah_nim = " + mah_nim + ";";
            statemen.executeUpdate(sql);
            statemen.close();
            JOptionPane.showMessageDialog(null, "Data mahasiswa telah diubah...");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, silahkan periksa" + e);
        }
    }
Setelah itu jalankan program dan lakukan pembaruan data yang terdapat pada database mahasiswa.

Kelas Informatika - Update Data Mahasiswa Berhasil

Terlihat output pengubahan data dengan NIM 19 memunculkan pesan “Data mahasiswa telah diubah”. Dapat kita simpulkan bahwa fungsi update telah berjalan dengan baik. Selanjutnya lakukan pengecekan pada SQL Shell PostgreSQL.

Kelas Informatika - SQL Shell PostgreSQL Update Data Mahasiswa

Terlihat pada gambar terdapat perubahan pada NIM 19. Semula bernama sutrisno, berubah menjadi kiki. Artinya data pada postgreSQL sudah terkoneksi dengan program.

Delete Data

Kemudian untuk mempraktekkan fungsi delete data, dapat anda gunakan source code berikut.
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed
        int mah_nim = Integer.parseInt(tnim.getText());
        
        try {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "delete from mahasiswa where mah_nim = " + mah_nim + ";";
            statemen.executeUpdate(sql);
            statemen.close();
            JOptionPane.showMessageDialog(null, "Data mahasiswa telah dihapus...");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, silahkan periksa" + e);
        }
    }
Seperti biasa, Setelah source code dimasukkan kita coba jalankan program dengan menghapus data pada database mahasiswa. Caranya adalah dengan memasukkan NIM mahasiswa yang ingin dihapus, kemudian klik tombol delete.

Kelas Informatika - Delete Data Mahasiswa Berhasil

Terlihat output memunculkan pesan “Data mahasiswa telah dihapus”, yang berarti aksi tombol delete sudah dapat digunakan. Jangan lupa untuk tetap melakukan pengecekan pada SQL Shell PostgreSQL.

Kelas Informatika - SQL Shell PostgreSQL Delete Data Mahasiswa

Terlihat pada tabel kedua sudah tidak terdapat data mahasiswa dengan NIM 19. Artinya data pada postgreSQL telah sesuai dengan program yang kita bangun pada netbeans.

Tampil Data

Setelah tombol delete, kita tambahkan aksi tombol tampil pada form aplikasi. Sebelum itu, mari kita lihat source code aksi tombol tampil yang dapat digunakan.
private void deleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed
        int mah_nim = 0;
        String mah_nama = "";
        String mah_alamat = "";
        String no_telp = "";
        int fak_id = 0;
        int jur_id = 0;
               
        try {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "select * from mahasiswa order by mah_nim";
            ResultSet rs = statemen.executeQuery(sql);
            JOptionPane.showMessageDialog(null, "Seluruh Data Mahasiswa\nAkan Ditampilkan");
            while (rs.next()) {
                mah_nim = Integer.parseInt(rs.getString("mah_nim"));
                mah_nama = rs.getString("mah_nama");
                mah_alamat = rs.getString("mah_alamat");
                no_telp = rs.getString("mah_telp");
                fak_id = Integer.parseInt(rs.getString("fak_id"));
                jur_id = Integer.parseInt(rs.getString("jur_id"));
                ttampil.append
                ("NIM = "+mah_nim+"\nNama = "+mah_nama+"\nAlamat = "+mah_alamat+"\nTelepon = "+no_telp+
                    "\nID Fakultas = "+fak_id+"\nID Jurusan = "+jur_id+"\n\n");
                    }
            statemen.close();
        } catch (Exception e) { JOptionPane.showMessageDialog(null, "Terjadi kesalahan, silahkan periksa" + e); }
    }
Seperti metode sebelumnya, selanjutnya kita jalankan program dan tampilkan data mahasiswa pada aplikasi.

Kelas Informatika - Notifikasi Tampil Data Mahasiswa

Sebelum data ditampilkan, akan ada kotak dialog berisi pesan “Seluruh Data Mahasiswa Akan Ditampilkan”. Anda dapat melanjutkan dengan menekan OK. Barulah setelah itu seluruh data mahasiswa ditampilkan pada aplikasi.

Kelas Informatika - Select Tampil Data Mahasiswa Berhasil

Cari Data

Terakhir adalah pemberian event atau aksi tombol cari. Kita awali dengan menambahkan source code cari data dibawah ini.
private void cariActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_insertActionPerformed
        int mah_nim = Integer.parseInt(tnim.getText());
        String mah_nama = "";
        String mah_alamat = "";
        String mah_telp = "";
        int fak_id = 0;
        int jur_id = 0;
               
        try {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "select * from mahasiswa where mah_nim = " + mah_nim + ";";
            ResultSet rs = statemen.executeQuery(sql);
            if (rs.next()) {
                tnama.setText(rs.getString("mah_nama"));
                talamat.setText(rs.getString("mah_alamat"));
                ttelp.setText(rs.getString("mah_telp"));
                tfakId.setText(String.valueOf(rs.getString("fak_id")));
                tjurId.setText(String.valueOf(rs.getString("jur_id")));
                JOptionPane.showMessageDialog(null, "Data mahasiswa\nDitemukan...");
            } else {
                JOptionPane.showMessageDialog(null, "Data mahasiswa\nTidak Ditemukan...");
            }
            statemen.close();
        } catch (Exception e) { 
            JOptionPane.showMessageDialog(null, "Terjadi kesalahan, silahkan periksa" + e); 
        }
    }
Selanjutnya kita jalankan program, lanjutkan dengan mencoba mencari data yang terdapat pada database mahasiswa berdasarkan NIM. Sebagai contoh, disini kami coba mencari data mahasiswa dengan NIM 18.

Kelas Informatika - Cari Data Mahasiswa Berhasil Ditemukan

Terlihat output proses pencarian data dengan NIM 18 memunculkan pesan “Data mahasiswa telah ditemukan”. Dapat kita simpulkan fungsi pencarian data pada program sudah dapat berjalan dengan baik.

Optimalisasi Fungsi Kelas Koneksi

Sebelum melakukan optimalisasi, pastikan fungsi koneksi yang kita gunakan sebelumnya sudah berjalan dengan baik. Selanjutnya, berikut kami tampilkan method koneksi yang akan dipanggil pada setiap fungsi operasi database pada netbeans.
// koneksi database
    public koneksi_postgre(){
        try {
            Class.forName("org.postgresql.Driver").newInstance();
            url = "jdbc:postgresql://localhost/postgres";
            username = "";
            password = "";
            try {
                conn = DriverManager.getConnection(url, username, password);
                JOptionPane.showMessageDialog(null, "Database Berhasil Terkoneksi");
             } catch (SQLException e){
                System.out.println("salah\n server belum start \n hubungi admin"+ex);
                System.exit(1);
             }
        } catch (Exception ex) {
            System.out.println("salah"+ex);
        }
    }
Sebagai pengembangan source code pada fungsi sebelumnya, disini akan ditampilkan (berturut-turut) source code untuk method insert, update, delete, tampil, dan cari dengan memanggil kelas koneksi yang telah dibuat sebelumnya sehingga tidak perlu menulis ulang pemanggilan driver jdbc, url, maupun conectionnya.

Kelas Informatika - Source Code Insert Action Performed
Source Code Insert Action Performed

Kelas Informatika - Source Code Update Action Performed
Source Code Update Action Performed

Kelas Informatika - Source Code Delete Action Performed
Source Code Delete Action Performed

Kelas Informatika - Source Code Tampil Action Performed
Source Code Tampil Data Action Performed

Kelas Informatika - Source Code Search Action Performed
Source Code Search Data Action Performed

Perbedaan Statement dan Prepared Statement

Sebagai tambahan referensi, disini akan kami bangun program untuk membuktikan perbedaan penggunaan statement dan preparestatement. Supaya lebih jelas, akan kami tampilkan source code untuk model statement ini dan preparedstatement.
//Update Data Menggunakan Statement
    void updatest(){
        int mah_nim = 20;
        int fak_id = 2;
        String mah_nama = "Suparman";
        String mah_alamat = "Banyuwangi";
        String mah_telp = "08755677890";
         try
        {
            Class.forName("org.postgresql.Driver");
            Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            Statement statmen = connection.createStatement();
            String sql = "update mahasiswa "
                    + "set mah_nama = '"+mah_nama+"', mah_alamat= '"+mah_alamat+"' where mah_nim='"+mah_nim+"'";
            statmen.executeUpdate(sql);
            statmen.close();
            System.out.println ("Data Mahasiswa Telah Terupdate");
        }
        catch (Exception e)
        {
            System.out.println("Kesalahan, silahkan periksa"+e);
        }
    }
Perhatikan pada source code, disana terdapat penerapan model statement pada fungsi update. Selanjutnya untuk mengetahui letak perbedaan antara statement dan preparedstatement, berikut kami tampilkan source code untuk metode preparedstatement (implementasi pada fungsi update).
//Update Data Menggunakan Prepared Statement
    void updatepr(){
        Connection konek = null;
        String sql = "update mahasiswa set mah_nama=?, mah_alamat=?, mah_telp=?, fak_id=?, jur_id=? where mah_nim=?";
        JOptionPane.showMessageDialog(null,"Masuk Gan!!");
        String host = "jdbc:postgresql://localhost/postgres";
        String user = "";
        String pass = "";
        try {
            Class.forName("org.postgresql.Driver");
            konek = DriverManager.getConnection("jdbc:postgresql://localhost/postgres", "", "");
            PreparedStatement pstat = konek.PreparedStatement(sql);
            pstat.setString(1,"Wulan");
            pstat.setString(2,"Lamongan");
            pstat.setString(3,"087740500335");
            pstat.setInt(4,2);
            pstat.setInt(5,12);
            pstat.executeUpdate();
            System.out.println ("Data Mahasiswa Telah Diubah Menggunakan Metode PreparedStatement");
        }
        catch (Exception ex){
            System.out.println("Kesalahan, silahkan periksa"+ex);
        }
    }
Kita simak kedua statement diatas, berdasarkan strukturnya terdapat perbedaan pada kedua source code tersebut. metode inisiasi menebabkan proses dieksekusi seketika itu pula terhadap data yang di input melalui form data mahasiswa. Sedangkan pada metode statement masih merujuk pada database postgreSQL. 

Agar lebih memahami perbedaan keduanya, akan dijalankan program dengan metode preparedStatement. Perhatikan output yang ditampilkan.

Kelas Informatika - Update Data Mahasiswa Metode Prepared Statement Berhasil

Pada gambar diatas dapat kita lihat tengah dilakukan pembaruan (update) data mahasiswa dengan NIM 19. Setelah pembaharuan selesai, selanjutnya kita lakukan pengecekan terhadap data mahasiswa pada SQL Shell postgreSQL.

Kelas Informatika - SQL Shell PostgreSQL Update Data Mahasiswa Metode Prepared Statement

Terlihat pada gambar diatas, data dengan NIM 19 telah berubah. Awalnya bernama Sutrisno, sekarang telah berganti menjadi Kiki. Karena output yang dihasilkan pada netbeans dan postgreSQL sama, maka dapat disimpulkan bahwa kedua metode (statement dan prepareStatement) tidaklah berbeda jika dilihat berdasarkan output. Namun dari segi struktur program serta mekanisme pemrosesan data, terdapat beberapa perbedaan.

Sekian tulisan kali ini yang membahas tentang Koneksi PostgreSQL dengan Java Menggunakan GUI Netbeans. Masukan, pertanyaan, atau bahkan koreksi dapat anda sampaikan melalui kolom komentar. Semoga bermanfaat, salam 😊

Posting Komentar untuk "Koneksi PostgreSQL dengan Java Menggunakan GUI Netbeans"