Koneksi PostgreSQL pada Java (Netbeans)

hi sobat blogger... 
kali ini kita akan membahas tentang koneksi postgresql pada JAVA (Netbeans)..
sebelum kita mengerjakan soal-soal yang ada.. 
baca dulu dasar teori nya nya biar g terlalu blank saat ngerjain.. oke ?!

Langkah-langkah Koneksi database
Terdapat beberapa langkah yang secara umum harus dilakukan sehingga aplikasi

 yang berbasis Java dapat berinteraksi dengan database server. Langkah-langkah tersebut
sebagai berikut :
1. Impor package java.sql
2. Memanggil Driver JDBC
3. Membangun Koneksi
4. Membuat Statement
5. Melakukan Query
6. Menutup Koneksi

Berikut penjelasan untuk masing-masing langkah :
1. Impor package java.sql
Pertama-tama yang harus dilakukan sebelum Anda 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 ini dituliskan sebelum Anda menulis kelas.

2. 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 MySQL adalah :
try {
Class.forName(“org.postgresql.Driver”);
} catch (ClassNotFoundException e) {
System.out.println(“Pesan Error : “ + e)
}

Berikut ini adalah daftar nama-nama driver dari beberapa database server yang sering
digunakan.
Database Server                            Nama Driver
JDBC-ODBC                                
            sun.jdbc.odbc.JdbcOdbcDriver
MySQL                                        
          com.mysql.jdbc.Driver
PostgreSQL                                  
          org.postgresql.Driver
Microsoft SQLServer                  
          com.microsoft.jdbc.sqlserver.SQLServerDriver
Oracle                                          
        oracle.jdbc.driver.OracleDriver

IBM DB2                                      
          COM.ibm.db2.jdbc.app.DB2Driver

3. 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 c
ara penulisan listingnya adalah
sebagai berikut :
try {
... koneksi database
} catch (SQLException sqle){
... penanganan error koneksi
}

Ada beberapa macam argumen yang berbeda da
ri 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 l
angsung. Adapun penulisan nilai
sebagai berikut :
jdbc:<DBServer>://[Host][:Port]/<namaDB>?<user=User>&<password=Pa
ssword>
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 penggunaa
n 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 nil
ai URL, user name
dan password.

Berikut ini contoh penggunaan methode ini didalam progr
am :
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”);
}

4. 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 querynya saja
PreparedStatement stat = Connection.prepareStatement();

5. 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 d
an mengambil
hasilnya (ResultSet) denga
n 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();

6. 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();
 


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 :
1. buatlah project baru pada netbeans
2. pada project tersebut, klik kanan – properties
3. pilih Libraries pada list Properties
4. add Library
7. add JAR/Folder
8. browse file konektor PostgreSQL
9. ambil file konektor, semisal :postgresql-9.0-801.jdbc4.jar atau versi yang lain.
10. kemudian open
11. Klik OK
12. coba lihat diproject netbeans - Libraries seperti gambar dibawah ini:
15. disitu sudah tertanam driver Java DB dan jdbc.jar
Setelah selesai maka bisa dilanjutkan membuat kelas java untuk mengkoneksikan database yang telah dibuat dengan java. Untuk mempermudah gambaran kode programnya disini terdapat contoh listing sebagai berikut :
Contoh Listing Program :
 

 


Soal Praktikum :

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.


Hasil Praktikum :

Langkah pertama yang harus dilakukan adalah membuat project baru, lalu didalam project tersebut kita tambahkan kelas koneksi. Kelas koneksi berguna dalam pengoneksian database(postgresql) pada Java. Berikut merupakan listing kode koneksi. 
Untuk mengecek apakah koneksi berhasil atau tidak, kita bisa me_running file kelas kita. Jika muncul pop-up pesan “ok berhasil” menandakan bahwa kita sudah berhasil mengoneksikan database yang ada pada posgresql dengan java.

Setelah project kita terkoneksikan ke postgresql, barulah kita mulai membuat form baru. Dalam postingan kali ini pemosting membuat form identitas. Form identitas ini berfungsi sebagai jembatan kita dalam menginsert, mengupdate, menghapus, dan menampilkan data-data yang ada pada postgresql.
Berikut contoh form yang sudah ane buat.... (desainnya nggag sama dengan soal ya sobt, tapi tenang.. content-content yang ada di dalamnya sama kok.. hehe)
Di dalam form terdapat tombol simpan, edit, hapus, tampil, riset dan juga cari.
Nah loh, gimana caranya agar tombol-tombol tersebut dapat berfungsi??
Ikuti penjelasan selanjutnya ya..
yang pertama, pemosting membuat listing kode tombol simpan , untuk lebih jelasnya perhatikan listing kode di bawah ini ya...

setelah membuat listing simpan, mari kita cek..
awalnya saya membuka postgresql untuk melihat data-data yang ada pada tabel mahasiswa. 


Kembli ke netbeans, running form identitas.. lalu akan muncul tampilan awal form. Selanjutnya coba inputkan data untuk setiap-tiap field. Seperti pada kolom Nim, Nama, Alamat, kode fakultas serta Gender.

jika listing berhasil, akan muncul pop-up menu “data berhasil disimpan”.
Pada JtextArea yang ada di paling bawah form akan muncul data yang baru saja kita simpan. 
dan untuk lebih meyakinkan kita, langsung saja kita cek pada postgresql. Lihat lah apakah data sudah tersimpan apa belum.
kita lanjut ke tombol yang lainnya ya..

yaitu tombol reset, level kesulitan listing kode riset adalah yang paling sederhana dibanding tombol-tombol lainnya. Namun sedikit berbeda dengan tombol-tombol lainnya. kita tidak langsung mengetikkan listingnya pada listing kode tombol reset, tetapi kita membuat method di luar method tombol reset. kenapa begitu??
ya iyalah,, karena kita akan memerlukan method reset ini untuk tombol-tombol yang lainnya. berikut listingnya.
lalu barulah kita bisa memanggilnya di method tombol reset
langsung kita cek ya, masih ingatkan keadaan form saat setelah kita cek tombol simpan.. masih ada text pada from. dan ane akan menekan tombol reset..
dan form akan kembali bersih seperti gambar diatas.
setelah bersih, kita coba lihat tombol cari, mulai dari membuat listingnya seperti dibawah ini.
setelah itu, kita cek lagi ya... masukkan NIM 10 (sebenarnya sih terserah sobat2.. hehe), 
setelah ada menu pop-up "data ditemukan",,  maka data dengan NIM 10 akan tampil pada JTextArea yang ada pada bagian paling bawah form. Sebagai kelanjutan tombol cari, ane pingin nglanjutin buat listing kode edit ya sobt,  tombol edit sama juga dengan perintah update pada database, berikut listingnya .
setelah selesei, ane mau mengubah data yang baru saja ane simpan di langkah yang sebelumnya. pada form simpan, yaitu NIM 10 atas nama IFA dan disini ane akan rubah menjadi nama ROSYID. hehepertama, cari NIM yang akan dirubah dengan menginputkan NIM dan tekan tombol cari. setelah muncul data-data milik ifa, ganti field-field yang ada, kecuali NIM karena NIM disinisebagai kunci utama.

apabila data sudah berhasi terubah, maka muncul pop-up "Data Berhasi dirubah". dan agar lebih meyakinkan, ane cek pada postgresql.

berikutnya yaitu tombol hapus.
ane mau menghapus data Rosyid tetapi jangan lupa dibuat dulu ya listing kode tombol hapusnya.

 langsung deh ane uji coba,
dan sekarang tinggal tombol terakhir yang belum kita kasih listing kode, yaitu tobol tampil. tombol tampil akan menampilkan semua data yang ada pada tabel mahasiswa di textarea. berikut listingya
 di cek ya.. unutuk melihat sudah berhasil atau belum kodenya..
tetetetetet... dan akhirnya selesai juga event-event kita.. dari mulai tombol simpan, cari, edit, hapus reset dan tampil.

ops.. tapi tugas ini belum selesai loh.. kita masih harus membuat form yang sama dengan form diatas tetapi kita diminta untuk membuat kelas koneksi sendiri sehingga tidak perlu menulis ulang pemanggilan driver jdbc, url, dan koneksi nya pada saat insert, update, delete dan tampil data.
hal pertama yang harus dilakukan adalah membuat kelas koneksi, setelah itu buat form baru (disini ane buat form identitas_dua). Pada form identitas_dua, dibawah package dbd.. kita buat seperti listing dibawah ini ya.. seperti yang ane kotak-i hitam. maksudnya adalah, itu digunakan untuk memanggil kelas koneksi.
lalu seperti biasa, periksa apakah sudah terkoneksi dengan database apa belum dengan me-running file. jika berhasil maka muncul pop-up seperti ini.

 tampilan form identitas dua,
 listing tombol simpan. hanya sedikit berbeda dari yang tidak menggunakan kelas koneksi.
 lalu di cek,,
 coba kita menginsertkan data mahasiswa yang baru.

 dari data yang baru saja di-insertkan, ane pengen ubah..
action tersebut dapat berjalan karena sebelumnya ane telah membuat listing kode seperti di bawah ini pada method tombol edit.
 lanjut aja ya biar g bertele-tele.. hehe
ane pingin menghapus data yang baru saja ane ubah. tetapi sebelumnya ane buat dulu listng kode hapus pada method hapus seperti ini.
 
 untuk method tombol tampil, berikut listingnya..
 setelah listing kode jadi (tidak ada pentungan merahnya :v)
langsung kita buktikan kebenarannya dengan menekan tombol tampil pada form identitas_dua.
dan yang terakhir dan hampir terlewatkan adalah tombol reset,, mengosongan semua data pada form (bukan tabel loh ya)..hehe
buat method reset dulu, lalu panggil method tersebut pada method tombol reset.

 lalu panggil,,

 Kesimpulan
Dari beberapa kegiatan diatas dapat disimpulkan bahwa, kita bisa mengoneksikan DBMS Mysql maupun PostgreSQL melalui JAVA (Netbeans),, sehingga kita bisa melakukan beberapa aksi  seperti Insert, Select, Hapus, Update serta Pencarian pada Database melalui JAVA GUI. Sehingga orang awam saja dapat dengan mudah melakukan aksi-aksi tersebut tanpa menggunakan suatu query yang ribet.

Kritik
Masih sangat terbatasnya pengetahuan saya tentang pengkoneksian ini dan juga kurang teliti sehingga sering muncul tanda "pentung" pada java. hehe
Saran
Lebih teliti dalam mengerjakan serta lebih banyak membaca buku-buku tentang database dan juga java agar tidak terlalu nge_blank saat praktikum.


Manfaat 
Manfaat yang bisa diambil adalah, kita mengetahui langkah-langkah mengkoneksikan Postgresql dengan Java (Netbeans).


Daftar Pustaka
 http://www.academia.edu/5026002/JAVA_CEssss_eui?login=dwi_arcem@yahoo.com&email_was_taken=true
Sanjaya, Ridwan. Pengolahan MySQL dengan Java disertai Teknik Pencetakan Laporan. Andi : Jogjakarta. 2005

Komentar