Bahasan
-
Pada bab kali ini bab kali ini akan membahas
tentang koneksi PostgreSQL dengan bahasa pemrograman java.
-
Selain
hal itu akan dibahas juga mengenai kode pemrograman untuk manipulasi data.
Tujuan
1.
Mahasiswa
memahami dalam penggunaan Database PostgreSQL dan Bahasa pemrograman Java untuk
membuat suatu program aplikasi.
Manfaat
1.
Mampu
memahami dalam penggunaan Database PostgreSQL dan Bahasa pemrograman Java untuk
membuat suatu program aplikasi.
BAB
I
Landasan Teori
Untuk mengakses database dengan Java cukup mudah. API
Java yang perlu dipelajari ada dalam paket java.sql. Class-class yang
berhubungan dengan mengakses database antara lain Connection, Statement, PreparedStatement
dan ResultSet. Teknologi Java untuk mengakses database disebut JDBC. Dengan
JDBC kita dapat menciptakan koneksi ke database, mengirimkan perintah-perintah
sql dan memproses hasil eksekusi sql.
Hal lain yang dibutuhkan untuk mengakses database
adalah JDBC Driver. JDBC Driver berbeda untuk setiap database yang ada.
Misalnya JDBC Driver untuk PGSQL/MySQL akan berbeda dengan JDBC Driver untuk
SQL Server atau Oracle.
Aplikasi database yang dikembangkan menggunakan
teknologi Java tidak akan terikat dengan database yang digunakan. Maksudnya
adalah kita dapat bergonta-ganti database engine dari yang satu ke database
engine yang lain tanpa harus mengubah source program kita secara signifikan.
Yang perlu diganti hanyalah JDBC Driver yang digunakan.[1]
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
1.
Import Package java.sqll
Adapun listing
untuk mengimpor package java.sql adalah sebagai berikut :
Import java.sql.*;
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.
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
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”);
}
Berikut ini
adalah daftar penulisan URL dari beberapa database server yang sering
digunakan.
Database Server
Nama URL Contoh penggunaan
JDBC-ODBC
jdbc:odbc:<NamaDatabase> jdbc:odbc:Dbase
MySQL
jdbc:mysql://<nmHost>:<port>/<nmDB>
jdbc:mysql://localhost:3306/Dbase
PostgreSQL
jdbc:postgresql://<nmHost>:<port>/<nmDB>
jdbc:postgresql://localhost:5432/Dbase
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 querynta
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 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();
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
5. add JAR/Folder
6. browse file
konektor PostgreSQL
7. ambil file konektor, semisal :postgresql-9.0-801.jdbc4.jar atau
versi yang lain.
8. kemudian open
9. Klik OK
[2] http://darkzone7.blogspot.com/2013/10/package-pada-java-pengertian-joptionpane.html
BAB II
HASIL PRAKTIKUM
SOAL PRAKTIKUM
1.
Buatlah koneksi seperti contoh listing kode diatas dengan database
kalian masing2 !
Jawab :
Database yang
akan digunakan untuk proses koneksi adalah database fitri13650022. Yang
didalamnya terdapat tabel mahasiswa. Dengan demikian saya membuat class pada
Java Netbeans. yang didalamnya terdapat sebuah class yang berisi method bernama
koneksi() yang berfungsi untuk mengkoneksikan program yang dibuat dengan
database. Code dalam method koneksi sebagai berikut.
Dimana Jika
sourcecode, database, serta keaktifan database dalam keadaan benar, maka akan
muncul “BERHASIL KONEKSI”, kalo dalam keadaan salah maka yang muncul “TIDAK ADA
KONEKSI” atau bahkan tidak ada output
2.
Buatlah form pada netbeans dan buatlah tombol insert, update,
delete, tampil dan pencarian !
Jawab :
Ya, mengenang
masalalau :D tapi ga mengenang juga sih, soalnya di semester 3 masih berkutat
menggunakan netbean
Berikut adalah
form keseluruhan yang telah saya buat melalui GUI builder dengan insert update
delete tampil dan pencarian.
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.
Penyelesaian :
Berikut ini
adalah event untuk masing-masing tombol,
a.
Event
Tombol Simpan
b.
Event
Tombol Edit
c.
Event
Tombol Tampil
d.
Event
Tombol Hapus
e.
Event
Tombol Reset
f.
Event
Tombol Cari
4.
Buatlah seperti nomor 2. Dengan aturan terdapat kelas koneksi
sendiri sehingga tidak menulis ulang pemanggilan driver jdbc, url, dan
conektion nya pada saat insert, update, delete dan tampil data.
5.
Bagaimana perbedaan penggunaan statement dan PrepareStatement, buatlah
program untuk pembuktian dari perbedaan tersebut.
a. Membuat Perintah Select dengan PrepareStatement
b. Membuat Perintah SQL dengan Statement Biasa
Memiliki Output yang sama, namun
kualitas PrepareStatement Lebih baik karena menangkal SQL Injection.
Oiya, kali ini tidak ada perbedaan antara PGSQL dan MYSQL yaa.. kata pak aziz, pake postgresql aja, soalnya perbedaannya cuma terletak di koneksinya aja :)
KESIMPULAN
Ada beberapa langkah yang harus diperhatikan dalam mengoneksikan database ke netbean, terutama pada import package nya dan metode eksekusinya
SARAN DAN MANFAAT
Semoga praktikan menggunakan semua materi yang telah didapat diberbagai tempat dan pengaplikasiannya pada kebutuhan sehari-hari
DAFTAR PUSTAKA
Musthofa, Aziz. 2013. Modul Praktikum Desain Basis
Data
http://sinau-java.blogspot.com/2008_05_01_archive.html
http://darkzone7.blogspot.com/2013/10/package-pada-java-pengertian-joptionpane.html
Tidak ada komentar:
Posting Komentar