Assalamu'alaikum :), post kali ini agak berbeda, kita akan mengkoneksikan database pada PostgreSQL dengan Java pada Netbeans. Jadi kita akan ada ketemu lagi sama koding mengkoding :D
        A. Dasar Teori
Kali ini, kita akan mencoba mengkoneksikan database (PostgreSQL) dengan Java pada Netbeans.
1.      Langkah-Langkah Koneksi Database
Dalam mengkoneksikan database dengan Java, ada beberapa langkah yang harus kita lakukan agar Java dapat berinteraksi dengan database server. Langkah-langkah tersebut adalah sebagai berikut.
·         Impor package java.sql
·         Memanggil Driver JDBC
·         Membangun Koneksi
·         Membuat Statement
·         Melakukan Query
·         Menutup Koneksi
a.      Impor package java.sql
Hal pertama yang harus dilakukan sebelum kita membuat program JDBC adalah mengimpor package java.sql terbih dahulu, karena di dalam package java.sql tersebut terdapat kelas-kelas yang akan digunakan dalam proses-proses berintekasi dengan database server misalnya kelas DriverMaganer, Connection, dan ResultSet.  Hal ini sangat penting dilakukan karena bagi pemula seringkali lupa untuk mengimpor package yang kelas-kelas yang akan digunakan terdapat di dalamnya, sehingga mengakibatkan kegagalan dalam mengkompile program Java.
Adapun listing untuk mengimpor package java.sql adalah sebagai berikut :
import java.sql.*;
Listing tersebut diletakkan sebelum menulis kelas.
b.      Memanggil Driver JDBC
Langkah pertama untuk melakukan koneksi dengan database server adalah dengan memanggil JDBC Driver dari database server yang kita gunakan. Driver adalah library yang digunakan untuk berkomunikasi dengan database server. Driver dari setiap database server berbeda-beda, sehingga Anda harus menyesuaikan Driver JDBC sesuai dengan database server yang Anda gunakan.
Berikut ini adalah listing program untuk memanggil driver JDBC.
Class.forName(namaDriver); atau Class.forName(namaDriver).newInstance();
Kedua cara di atas memiliki fungsi yang sama yaitu melakukan registrasi class driver dan melakukan intansiasi. Apabila driver yang dimaksud tidak ditemukan, maka program akan menghasilkan exception berupa ClassNotFoundException. Untuk menghasilkan exception apabila driver tidak ditemukan, maka diperlukan penambahan try-catch. Adapun cara menambahkan try-catch untuk penanganan error apabila driver tidak ditemukan, sebagai berikut :
Try {
Class.forName(namaDriver);
} catch (ClassNotFoundException e) {
... Penanganan Error ClassNotFoundException
}
Contoh listing memanggil driver menggunakan PosqgreSQL adalah :
try {
Class.forName(“org.postgresql.Driver”);
} catch (ClassNotFoundException e) {
System.out.println(“Pesan Error : “ + e)
}
c.       Membangun Koneksi
Setelah melakukan pemanggilan terhadap driver JDBC, langkah selanjutnya adalah membangun koneksi dengan menggunakan interface Connection. Object Connection yang dibuat untuk membangun koneksi dengan database server tidak dengan cara membuat object baru dari interface Connection melainkan dari class DriverManager dengan menggunakan methode getConnection().
Connection koneksi = DriverManager.getConnection(<argumen>);
Untuk menangani error yang mungkin terjadi pada proses melakukan koneksi dengan database maka ditambahkan try-catch. Exception yang akan dihasilkan pada proses ini adalah berupa SQLException. Adapun cara penulisan listingnya adalah sebagai berikut :
try {
... koneksi database
} catch (SQLException sqle){
... penanganan error koneksi
}
Ada beberapa macam argumen yang berbeda dari methode getConnection() yang dipanggil dari DriverManager, yaitu :
getConnection(String url)
Pada methode diatas hanya memerlukan argumen URL, sedangkan untuk data user dan password sudah diikutkan secara langsung. Adapun penulisan nilai sebagai berikut :
jdbc:<DBServer>://[Host][:Port]/<namaDB>?<user=User>&<password=Pasword>
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc: postgresql://localhost:3306/Dbase? User = adi & password = pas”;
Connection koneksi = DriverManager.getConnection(url);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
           
getConnection(String url, Properties info)
Pada methode ini memerlukan URL dan sebuah object Properties. Sebelum menggunakan methode ini, Anda harus melakukan import package berupa java.util.*, ini dikarenakan object Properties terdapat pada package tersebut. Object Properties berisikan spesifikasi dari setiap parameter database misalnya user name, password, autocommit, dan sebagainya.
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc: postgresql://localhost:5432/praktikumdbd”;
Properties prop = new java.util.Properties(); // tidak mengimpor kelas
prop.put(“user”,”NamaUser”);
prop.put(“password”,”datapassword”);
Connection koneksi = DriverManager.getConnection(url, prop);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
getConnection(String url, String user, String password)

Pada methode ini memerlukan argumen berupa URL, user name, dan password. Methode ini secara langsung mendefinisikan nilai URL, user name dan password.
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc: postgresql://localhost:5432/ praktikumdbd”;
String user = “adi”
String password “ternate”
Connection koneksi = DriverManager.getConnection(url, user, password);
System.out.prinln(“Proses apabila koneksi sukses”);
} catch (SQLException sqle) {
System.out.println(“Proses apabila koneksi gagal dilakukan”);
}
d.      Membuat Statement
JDBC API menyediakan interface yang berfungsi untuk melakukan proses pengiriman statement SQL yang terdapat pada package java.sql. Statement yang ada secara umum digunakan terdiri dari berikut :
Statement
Interface ini dibuat oleh methode Connection.createStatement(). Object Statement digunakan untuk pengiriman statement SQL tanpa parameter serta Setiap SQL statement yang dieksekusi dikirim secara utuh ke database.
Statement stat = Connection.createStatement();
PreparedStatement

Interface ini dibuat oleh methode Connection.prepareStatement(). Object PreparedStatement digunakan untuk pengiriman statement SQL dengan atau tanpa parameter. Interface ini memiliki performa lebih baik dibandingkan dengan interface Statement karena dapat menjalankan beberapa proses dalam sekali pengiriman perintah SQL, pengiriman selanjutnya hanya parametered querynta saja.
PreparedStatement stat = Connection.prepareStatement();
e.       Melakukan Query
Setelah kita memiliki object statement, kita dapat menggunakannya untuk melakukan pengiriman perintah SQL dan mengeksekusinya. Methode eksekusi yang digunakan untuk perintah SQL terbagi menjadi dua bagian yaitu untuk perintah SELECT methode eksekusi yang digunakan adalah executeQery() dengan nilai kembaliannya adalah ResultSet, dan untuk perintah INSERT, UPDATE, DELETE methode eksekusi yang digunakan adalah executeUpdate().
Berikut ini adalah contoh melakukan eksekusi perintah SQL dan mengambil hasilnya (ResultSet) dengan menggunakan perintah SELECT :
String sql = “SELECT kode, nama, alamat, kelas FROM dataSiswa”;
ResultSet set = stat.executeQuery(sql);
while (set.next()) {
String kode = set.getString("kode");
String nama = set.getString("nama");
String alamat = set.getString("alamat");
String kelas = set.getString("kelas");
}
Berikut ini adalah contoh melakukan eksekusi perintah SQL dengan menggunakan perintah DELETE.
String sql = "DELETE FROM data_siswa WHERE kode = “1234”;
PreparedStatement stat = konek.prepareStatement(sql);
stat.executeUpdate();
f.       Menutup Koneksi
Penutupan terhadap koneksi database perlu dilakukan agar sumber daya yang digunakan oleh object Connection dapat digunakan lagi oleh proses atau program yang lain. Sebelum kita menutup koneksi database, kita perlu melepas object Statement dengan kode sebagai berikut :
statement.close();
Untuk menutup koneksi dengan database server dapat kita lakukan dengan kode sebagai berikut :
connection.close();
2.      Praktek Langkah-langkah Koneksi database dengan java di Netbeans
Materi kali ini akan sedikit membubuhkan tutorial untuk pengkoneksian dan penyampaian contohnya. Seperti berikut langkah-langkahnya :
a.       buatlah project baru pada netbeans
b.      pada project tersebut, klik kanan – properties
c.       pilih Libraries pada list Properties
d.       add Library
e.       add JAR/Folder
f.       browse file konektor PostgreSQL
g.      ambil file konektor, semisal :postgresql-9.0-801.jdbc4.jar atau versi yang lain.
h.      kemudian open
i.        Klik OK
j.        Setelah selesai maka bisa dilanjutkan membuat kelas java untuk mengkoneksikan database yang telah dibuat dengan java.
              Musthafa, Aziz. 2014. Modul Praktikum Desain Basis Data 2014 
      B. Hasil Praktikum
Berikut ini adalah soal praktikum ke Sembilan.
1.      Buatlah koneksi seperti contoh listing kode diatas dengan database kalian masing2!
2.      Buatlah form pada netbeans dan buatlah tombol insert, update, delete, tampil dan pencarian seperti dibawah !

3.      Buat Event tiap tombol seperti contoh listing diatas dengan catatan memakai database praktikan sendiri dan menggunakan tabel mahasiswa. Untuk tampil, data munculkan pada jtabel atau text area.
4.      Buatlah seperti nomor 2. Dengan aturan terdapat kelas koneksi sendiri sehingga tidak menulis ulang pemanggilan driver jdbc, url, dan koneksi nya pada saat insert,update, delete dan tampil data.
Untuk menjawabnya, pertama kita buka dulu Netbeansdan buat project baru. Saya akan membuat project dengan nama praktikumdbd9.
1.      Pertama, kita klik kanan pada project, pilih properties dan add library pilih PostgreSQL JDBC Driver.
Kemudian akan kita lihat library tersebut sudah ada di project yang kita buat.

Lalu kita buat kelas dengan nama koneksi_postgre dan import package java sql dan java swing seperti di bawah ini, listing ini ditulis sebelum kelas.

Lalu ketikkan source code seperti di bawah ini untuk mengkoneksikan postgre dengan java.

Untuk mengeceknya dapat kita klik kanan dan pilih Run atau dengan Shift+F6, sehingga jika sukses koneksi akan muncul seperti di bawah ini.

2.      Untuk soal nomor 2 kita buat form baru dengan Jframe Form dengnan nama formbaru dengan tampilan seperti di bawah ini.

Setelah itu kita ganti variabel JTextField menjadi txtnim untuk nim, dan seterusnya. Begitu juga dengan JTextArea, JComboBox dengan variabel yang mudah diingat.
3.      Untuk soal nomor 3, kita akan membuat seluruh aksi pada tombol yang ada.
Tombol cari.

Tombol simpan

Tombol edit

Tombol hapus

Tombol tampil

Tombol reset

Untuk membuktikan bahwa tombol-tombol di atas berfungsi, kita akan mencobanya.
Pertama, kita coba cari data mahasiswa dengan NIM 21 seperti di bawah ini.

Setelah itu klik tombol cari, sehingga akan tampil data mahasiswa seperti di bawah ini. Jika data tersebut ada, maka


Kemdian kita coba masukkan data mahasiswa baru dengan NIM 26 dengan nama Ahmad seperti di bawah ini. Setelah kita klik tombol simpan akan muncul pesan data telah tersimpan.

Lalu kita akan mengedit alamat Ahmad menjadi Sidoarjo sperti di bawah ini. Setelah kita klik tombol edit akan muncul pesan bahwa data mahasiswa telah diubah.

Kenudian kita akan coba menghapus data Ahmad tersebut, setelah kita klik tombol hapus, akan muncul pesan bahwa data telah terhapus seperti di bawah ini.

Lalu kita coba menampilkan semua data mahasiswa dengan klik tombol tampil. Sehingga pada Text Area akan muncul semua data pada tabel Mahasiswa.


Kemudian kita coba tombol reset, setelah kita klik, maka data pada form akan kosong kembali seperti di bawah ini.


4.      Untuk nomor 4, kita akan membuat form baru dengan format sama seperti nomor2, tetapi kita tidak perlu menulis ulang pemanggilan driver jdbc, url, dan koneksi nya pada saat insert,update, delete dan tampil data, tetapi kita tinggal memanggil kelas koneksi_postgre yang telah kita buat. 

Kita letakkan listing seperti di bawah ini di bawah public class.

Kemudian kita akan memberikan aksi pada tombol.
Tombol cari.

Tombol simpan


Tombol edit

Tombol hapus

Tombol tampil

Tombol reset

Untuk membuktikan bahwa tombol-tombol di atas berfungsi, kita akan mencobanya.
Pertama, kita coba cari data mahasiswa dengan NIM 21 seperti di bawah ini.

Setelah itu klik tombol cari, sehingga akan tampil data mahasiswa seperti di bawah ini. Jika data tersebut ada, maka


Kemdian kita coba masukkan data mahasiswa baru dengan NIM 27 dengan nama Ahmad seperti di bawah ini. Setelah kita klik tombol simpan akan muncul pesan data telah tersimpan.


Lalu kita akan mengedit kode fakultas Rita menjadi 1 sperti di bawah ini. Setelah kita klik tombol edit akan muncul pesan bahwa data mahasiswa telah diubah.

Kenudian kita akan coba menghapus data Rita tersebut, setelah kita klik tombol hapus, akan muncul pesan bahwa data telah terhapus seperti di bawah ini.


Lalu kita coba menampilkan semua data mahasiswa dengan klik tombol tampil. Sehingga pada Text Area akan muncul semua data pada tabel Mahasiswa.


Kemudian kita coba tombol reset, setelah kita klik, maka data pada form akan kosong kembali seperti di bawah ini.


C.    Keslimpulan, Kritik, Saran dan Manfaat
1.      Kesimpulan
Setelah melakukan praktikum ini, saya dapat mengambil kesimpulan bahwa kita dapat mengkoneksikan Java pada Netbeans database server dari PostgreSQL dengan beberapa langkah seperti yang disebutkan di atas. Kita juga dapat melakukan fungsi insert, update, delete dan select dari Java di Netbeans dan dapat langsung terhubung pada database pada PostgreSQL.
            2.   Saran
Diperlukan pembelajaran lebih lanjut mengenai pengelolaan database menggunakan PostgreSQL yang dikoneksikan dengan Java pada Netbeans agar praktikan dapat menguasai pembuatan database yang lebih baik dengan PostgreSQL yang terkoneksi dengan Java pada Netbeans.
            3.   Kritik
Dalam laporan ini, masih banyak terdapat kekurangan karena terbatasnya pengetahuan saya mengenai pengelolaan database yang terkoneksi dengan Java pada Netbeans yang digunakan dalam praktikum ini.     
           4.    Manfaat
Manfaat yang akan didapat pembaca dalam laporan ini antara lain dapat mengetahui langkah-langkah mengkoneksikan Java pada Netbeans dengan server database PostgreSQL. Pembaca juga dapat mengetahui bahwa fungsi insert, pdate, delete dan select dapat dilakukan pada Java Netbeans dan langsung terhubung pada database di PostgreSQL.