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.