Upload
devi-apriansyah
View
77
Download
6
Embed Size (px)
Citation preview
LAPORAN PRAKTIKUMBAHASA PEMROGRAMAN 2
MODUL VIPEMROGRAMAN DATABASE DENGAN JDBC
DISUSUN OLEHNAMA : DEVINIM : 2012081043KELAS : TI2012A
LABORATORIUM KOMPUTERFAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN2014
I. DASAR TEORI
Mengenal JDBC
Java Database Connectivity adalah API yang digunakan Java untuk
melakukan koneksi dengan aplikasi lain atau dengan berbagai macam
database. JDBC memungkinkan kita untuk membuat aplikasi Java yang
melakukan tiga hal: konek ke sumber data, mengirimkan query dan statement
ke database, menerima dan mengolah resultset yang diperoleh dari database.
JDBC mempunyai empat komponen :
1. JDBC API
JDBC API menyediakan metode akses yang sederhana ke sumber data
relational (RDBMS) menggunakan pemrograman Java. dengan
menggunakan JDBC API, kita bisa membuat program yang dapat
mengeksekusi SQL, menerima hasil ResultSet, dan mengubah data dalam
database. JDBC API juga mempunyai kemampuan untuk berinteraksi
dengan lingkungan terdistribusi dari jenis sumber data yang berbeda-beda.
JDBC API adalah bagian dari Java Platform yang disertakan dalam library
JDK maupun JRE. JDBC API sekarang ini sudah mencapai versi 4.0 yang
disertakan dalan JDK 6.0. JDBC API 4.0 dibagi dalam dua package yaitu :
java.sql dan javax.sql.
2. JDBC Driver Manager
Class DriverManager dari JDBC bertugas untuk mendefisikan object-
object yang dapat digunakan untuk melakukan koneksi ke sebuah sumber
data. Secara tradisional DriverManager telah menjadi tulang punggung
arsitektur JDBC.
3. JDBC Test Suite
JDBC Test Suite membantu kita untuk mencara driver mana yang
cocok digunakan untuk melakukan sebuah koneksi ke sumber data
tertentu. Tes yang dilakukan tidak memerlukan resource besar ataupun tes
yang komprehensif, namun cukup tes-tes sederhana yang memastikan
fitur-fitur penting JDBC dapat berjalan dengan lancar.
4. JDBC-ODBC Bridge
Brige ini menyediakan fasilitas JDBC untuk melakukan koneksi ke
sumber data menggunakan ODBC (Open DataBase Connectivity) driver.
Sebagai catatan, anda perlu meload driver ODBC di setiap komputer client
untuk dapat menggunakan bridge ini. Sebagai konsekuensinya, cara ini
hanya cocok dilakukan di lingkungan intranet dimana isu instalasi tidak
menjadi masalah.
Dengan keempat komponen yang dipunyainya, JDBC menjadi tools yang
dapat diandalkan untuk melakukan koneksi, mengambil data dan merubah
data dari berbagai macam sumber data. Modul ini hanya akan membahas dua
komponen pertama dari keempat komponen yang dipunyai oleh JDBC, yaitu
JDBC API dan DriverManager. Sumber data yang digunakan adalah
Relational Database.
Langkah-Langkah Pemrograman JDBC
Pada pemrograman Java dengan menggunakan JDBC, ada beberapa langkah
yang secara umum harus dilakukan sehingga aplikasi tersebut dapat
berinteraksi dengan database server.
Langkah-langkah untuk berinteraksi dengan database server dengan
menggunakan JDBC adalah sebagai berikut :
1. Mengimpor package java.sql
2. Memanggil Driver JDBC
3. Membangun Koneksi
4. Membuat Statement
5. Melakukan Query
6. Memproses Hasil
7. Menutup Koneksi
8. Penanganan Error
Mengimpor 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.
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 adalah sebagai berikut :
Try {
Class.forName(namaDriver);
} catch (ClassNotFoundException cnfe) {
... Penanganan Error ClassNotFoundException
}
Contoh listing memanggil driver untuk database server menggunakan MySQL
adalah :
try {
Class.forName(“com.mysql.jdbc.Driver”);
} catch (ClassNotFoundException cnfe) {
System.out.println(“Pesan Error : “ + cnfe)
}
Dari contoh listing di atas dapat dijelaskan bahwa apabila driver yang
dipanggil tidak ditemukan, maka program akan menampilkan pesan pada
consule dengan isi pesan adalah “Pesan Error :
java.lang.ClassNotFoundException : com.mysql.jdbc.Driver”. Penanganan
error sangat penting dilakukan karena dapat membantu kita dalam mengetahui
kesalahan-kesalahan yang terjadi dalam menjalankan program sehingga kita
dapat mengatasi kesalahan-kesalahan tersebut.
Berikut ini adalah daftar nama-nama driver dari beberapa database server yang
sering digunakan.
Database
Server
Nama Driver
JDBC-
ODBC
sun.jdbc.odbc.JdbcOdbcDri
ver
MySQL com.mysql.jdbc.Driver
PostgreSQ
L
org.postgresql.Driver
Microsoft
SQLServer
com.microsoft.jdbc.sqlserve
r.SQLServerDriver
Oracle oracle.jdbc.driver.OracleDri
ver
IBM DB2 COM.ibm.db2.jdbc.app.DB
2Driver
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 kita hanya memerlukan argumen URL, sedangkan untuk data
user dan password sudah diikutkan secara langsung pada URL sehingga tidak
perlu lagi secara terpisah mendefinisikan data user dan password.
Adapun penulisan nilai URL dari methode getConnection(String url) adalah
sebagai berikut :
jdbc:<DBServer>://[Host][:Port]/<namaDB>?
<user=User>&<password=Pasword>
Misalkan kita menggunakan database server berupa MySQL dengan
spesifikasi menggunakan host adalah localhost dan port default (3306), nama
database adalah Database, nama user adalah adi, dan password adalah
purnomo. Maka penulisan URL adalah sebagai berikut :
jdbc:mysql://localhost:3306/Dbase?user=adi&password=pasw
Berikut ini contoh penggunaan methode ini didalam program :
try {
String url = “jdbc:mysql://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:mysql://localhost:3306/Dbase”;
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:mysql://localhost:3306/Dbase”;
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 penggunaanJDBC-ODBC jdbc:odbc:<NamaDatabase> jdbc:odbc:DbaseMySQL jdbc:mysql://
<nmHost>:<port>/<nmDB>jdbc:mysql://localhost:3306/Dbase
PostgreSQL jdbc:postgresql://<nmHost>:<port>/<nmDB>
jdbc:postgresql://localhost:5432/Dbase
Microsoft SQLServer
jdbc:microsoft:sqlserver://<nmHost>:<port>;
jdbc:microsoft:sqlserver://localhost:1433;
DatabaseName=<namaDatabase>
DatabaseName=Dbase
Oracle jdbc:oracle:thin:@<nmHost>:<port>:<nmDB>
jdbc:oracle:thin:@localhost:1521:Dbase
IBM DB2 jdbc:db2:<NamaDatabase> jdbc:db2:Dbase
Membuat Object Statement
JDBC API menyediakan interface yang berfungsi untuk melakukan proses
pengiriman statement SQL yang terdapat pada package java.sql. Di dalam
JDBC API disediakan tiga buah interface untuk fungsi tersebut yaitu :
Statement
Interface ini dibuat oleh methode Connection.createStatement(). Object
Statement digunakan untuk pengiriman statement SQL tanpa parameter.
Statement stat = Connection.createStatement();
PreparedStatementInterface ini dibuat oleh methode Connection.prepareStatement(). Object
PreparedStatement digunakan untuk pengiriman statement SQL dengan atau
tanpa parameter. Dengan object ini, kita dapat menampung satu atau lebih
parameter sebagai argumen input (perameter IN). Interface ini memiliki
performa lebih baik dibandingkan dengan interface Statement karena dapat
menjalankan beberapa proses dalam sekali pengiriman perintah SQL.
PreparedStatement stat = Connection.prepareStatement();
CallableStatement
Interface ini dibuat oleh methode Connection.prepareCall(). Object
CallableStatement digunakan untuk menjalankan store procedure SQL.
CallableStatement stat = Connection.prepareCall();
Melakukan Eksekusi Perintah SQL
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();
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();
II. PRAKTIKUM DAN PEMBAHSAN
1. Praktek 1 : Membuat Database
Buat database dengan nama fkom
Pembahasan:
Gambar di atas merupakan pembuatan database fkom dengan
menggunakan command prompt. Dengan menggunakan command
prompt maka kita dituntut harus hafal dengan semua perintah atau
bahasa dalam database, baik Data Definition Language (DDL), Data
Manipulation Language (DML) atau Data Control Language (DCL).
Sebelum menuliskan perintah kita harus masuk ke C dan masuk ke
direktori mysql. setelah berada dalam direktori mysql maka kita bisa
menulisakan perintah untuk database.
Membuat table dengan nama mhs
Pembahasan:
Perintah diatas adalah untuk membuat table dengan nama mhs
yang mempunyai 4 field, yaitu nama, jk, telepon dan umur. Yang
menjadi primary key dalam table tersebut adalah nama.
Untuk menampilkan struktur dari table mhs digunakan perintah
describe mhs.
2. Praktek 2 : Load Driver MySQL
Klik kanan pada Libraries, pilih Add Library.
Setelah membuat database di database server mysql maka kita
harus memanggil driver tersebut agar dapat terkoneksi dengan
database server tersebut.
Pilih MySQL JDBC Driver, klik Add Library
3. Praktek 3 : Membuat Koneksi JDBC
Kode Program:
Pembahasan:
Script diatas adalah untuk membuat koneksi ke database dengan
nama class dbCon. Langkah pertama yang dilakukan adalah mengimport
package java.sql, statement tersebut digunakan untuk memanggil
komponen pendukung yang akan digunakan dalam suatu program. Baris
ke 14 samapi dengan baris 17 adalah inisialisasi variable, untuk variable
dbUrl valuenya adalah "jdbc:mysql://localhost:3306/fkom”, karena yang
di gunakan adalah server mysql dan database yang telah dibuat bernama
fkom.
Class.forName("org.gjt.mm.mysql.Driver");
conn=DriverManager.getConnection(dbUrl,uname,pword);
Kedua perintah diatas untuk memanggil driver mysql dan membuat
koneksi. Method Class.forName secara otomatis membuat instance dari
database driver, class DriverManager secara otomatis juga dipanggil untuk
mengelola class database driver ini. Jadi kita tidak perlu menggunakan
statement new untuk membuat instance dari class database driver tersebut.
Jadi kedua perintah diatas digunakan untuk menghubungkan program
dengan database.
Terdapat penanganan error, jika koneksi tersebut berhasil maka
akan muncul kotak dialog JOptionPane "Koneksi ke Database OK...", dan
jika gagal maka akan muncul pesan “ERROR”.
Output:
4. Praktek 4 : Insert data dengan nama class inprofile
Kode Program:
Pembahasan:
Script diatas adalah untuk menambahkan data dalam database
dengan nama class inprofile. Dalam setiap menuliskan perintah query data
manipulation language kita harus memasukan script koneksi database agar
dapat terhubung ke database tersebut.
String sql="INSERT INTO mhs(nama,jk,telepon,umur) VALUES
('Dani','L','098878',22)";
Perintah diatas adalah untuk menambahkan data pada table mhs ke
dalam field nama, jk, telepon dan umur dengan nilainya Dani, L, 098878,
22.
Ps adalah objek yang dibuat dari PrepareStatement, Objek prepared
statement digunakan untuk mengirim statement sql dengan atau tanpa
parameter, objek tersebut dipanggil dengan method executeUpdate().
Jika koneksi berhasil dan data berhasil dimasukan maka akan muncul
JOptionPane “Koneksi ke Database OK…!” dan “Data baru sudah
disimpan”.
Output:
5. Praktek 5 : Menampilkan Data dengan class ShowTableProfile
Kode Program:
Pembahasan:
Script di atas adalh untuk menanmplkan data dari databse dengan
nama ShowTableProfile. Perlu diingat untuk setiap menuliskan perintah
query harus disertakan pula script untuk koneksi database. Untuk
menampilkan data kita menggunakan perintah select.
String sql="SELECT*FROM mhs";
Perintah diatas untuk menampilkan semua data yang berada pada table
mhs.
PreparedStatement ps=conn.prepareStatement(sql);
ResultSet rs=ps.executeQuery();
Instance dari object bertipe ResultSet diperlukan untuk
menampung hasil kembalian data dari database. Sebelum kita bisa
memperoleh instance dari ResultSet, kita harus membuat instance dari
class Statement. Class Statement mempunyai method executeQuery yang
digunakan untuk menjalankan perintah query dalam database kemudian
mengembalikan data hasil eksekusi query ke dalam object ResultSet.
Output:
III.TUGAS
1. Buat program java untuk mengahapus data mhs.
Script:
Pembahasan:
Untuk menghapus data mhs digunakan perintah delete yaitu :
String sql="delete from mhs where nama='Dani'";
Perintah delete hampir sama dengan update, hanya saja kita tidak perlu
mengisikan perubahan data karena memang tidak diperlukan.
Output:
Output di atas adalah jika kita berhasil menghapus data yang bernama
Dani, maka ketika mengeksekusi class ShowtableProfile tampilan tabelnya
kosong, seperti di bawah ini:
IV. KESIMPULAN
Dari praktikum dan pembahasan diatas dapat disimpulkan bahwa JDBC
(Java Database Connectivity) adalah API yang digunakan Java untuk
melakukan koneksi dengan aplikasi lain atau dengan berbagai macam
database. JDBC memungkinkan kita untuk membuat aplikasi Java yang
melakukan tiga hal: konek ke sumber data, mengirimkan query dan statement
ke database, menerima dan mengolah resultset yang diperoleh dari database.
Berbeda dengan ODBC, di dalam IDE Netbeans telah menyertakan diver
JDBC di dalam paketnya sehingga kita tidak perlu lagi mencari dan mengeset
secara manual.
V. DAFTAR PUSTAKA
Ridwan Sanjaya,SE.,S.Kom.Pengolahan Databse MYSQL 5 dengan Java 2
disertai Teknik Pencetakan Laporan. . Yogyakarta : Andi.