A. LANDASAN TEORI
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. 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 engan 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 PosqgreSQL 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.
l1.
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 roperties 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 kelasprop.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.
l2.
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();