Trik Rahasia Pemrograman Database Dengan Java

24
25 TRIK KONEKSI DATABASE Dalam bab ini, Anda akan belajar tentang teknik melakukan koneksi dengan database. Dalam pemrograman database, perihal koneksi adalah hal yang paling pertama kali untuk diselesaikan atau diten- tukan, apa dan bagaimana nantinya koneksi dari sebuah aplikasi tersebut bekerja. Materi dalam bab ini menyangkut pembuatan koneksi simple sampai yang expert, diakhiri dengan membuat kelas untuk melakukan konfigurasi koneksi. 2.1 Koneksi dengan Database MS Access Pada hari ini hampir semua orang tahu apa itu Microsoft Office. Bahkan jika Anda tidak mengetahuinya, maka bagi kebanyakan orang Anda adalah orang yang ketinggalan zaman. Meskipun Anda sudah menguasai berbagai pemrograman sekalipun, suka atau tidak suka, produk ini sudah membumi di kalangan masyarakat kita. Termasuk paket-paket di dalamnya, seperti MS Access, sebagai DBMS yang dianggap cukup ampuh untuk kebutuhan-kebutuhan kecil-menengah bagi sebagian kalangan. Ikuti langkah-langkah beri- kut ini. 1. Anda sebelumnya harus punya database dalam MS Access, yang memiliki satu atau beberapa table.

Transcript of Trik Rahasia Pemrograman Database Dengan Java

Page 1: Trik Rahasia Pemrograman Database Dengan Java

25

TRIK KONEKSI DATABASE

Dalam bab ini, Anda akan belajar tentang teknik melakukan koneksi dengan database. Dalam pemrograman database, perihal koneksi adalah hal yang paling pertama kali untuk diselesaikan atau diten-tukan, apa dan bagaimana nantinya koneksi dari sebuah aplikasi tersebut bekerja. Materi dalam bab ini menyangkut pembuatan koneksi simple sampai yang expert, diakhiri dengan membuat kelas untuk melakukan konfigurasi koneksi.

2.1 Koneksi dengan Database MS Access

Pada hari ini hampir semua orang tahu apa itu Microsoft Office. Bahkan jika Anda tidak mengetahuinya, maka bagi kebanyakan orang Anda adalah orang yang ketinggalan zaman. Meskipun Anda sudah menguasai berbagai pemrograman sekalipun, suka atau tidak suka, produk ini sudah membumi di kalangan masyarakat kita. Termasuk paket-paket di dalamnya, seperti MS Access, sebagai DBMS yang dianggap cukup ampuh untuk kebutuhan-kebutuhan kecil-menengah bagi sebagian kalangan. Ikuti langkah-langkah beri-kut ini.

1. Anda sebelumnya harus punya database dalam MS Access, yang memiliki satu atau beberapa table.

Page 2: Trik Rahasia Pemrograman Database Dengan Java

26

2. Buat Data Source ODBC, dari Control Panel Administrative Tools Data Sources (ODBC), sehingga muncul jendela ODBC Data Source Administrator.

Gambar 2.1 ODBC Administrator

3. Dari jendela ODBC Administrator, klik tombol Add, sehingga muncul jendela Create New Data Source. Pilih Microsoft Access Driver (*.mdb), klik Finish, sehingga muncul jendela ODBC Microsoft Access Setup.

Gambar 2.2 Memilih Driver

Page 3: Trik Rahasia Pemrograman Database Dengan Java

27

4. Pada jendela ODBC Microsoft Access Setup, klik tombol Select… (pada groupbox Database). Selanjutnya cari nama file database access yang disimpan sebelumnya. Misalnya pada E:\JAVA BUKU\Source\data.mdb, lalu klik OK dan OK untuk mengakhiri.

Gambar 2.3 Menentukan Nama Data Source Name

Gambar 2.4 Memilih File Database

Pilih nama file yang ditampilkan dalam jendela sebelah kiri (Database name). Sedangkan jendela sebelah kanan untuk memilih direktorinya.

5. Buat project baru (Java Application), beri nama project-nya dengan Bab021. Tidak perlu setting Path library (driver koneksi)

Page 4: Trik Rahasia Pemrograman Database Dengan Java

28

karena sudah dikenali dengan ODBC driver secara built-in dalam Java.

package bab021; import java.sql.*; /** * */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Connection conn; try { // Daftarkan driver JDBC yang akan digunakan Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Buat Koneksi ke DSN conn = DriverManager.getConnection( "jdbc:odbc:odbcku"); System.out.println("koneksi sukses"); } catch(Exception e) { System.out.println("Pesan gagal: "+ e.getMessage()); } } }

Hasilnya sebagai berikut.

Gambar 2.5 Tampilan Koneksi Berhasil

Page 5: Trik Rahasia Pemrograman Database Dengan Java

29

2.2 Koneksi dengan Database MySQL

Database MySQL dikenal cukup luas di kalangan programmer open source. DBMS ini diyakini cukup ampuh untuk kebutuhan aplikasi dengan skala data menengah. Sebagai programmer tentunya Tool development kit ini sangat berguna untuk menangani kebutuhan-kebutuhan dewasa ini. Untuk membuat koneksinya, ikuti langkah-langkah berikut ini.

1. Pastikan bahwa server MySQL sudah berjalan dengan baik.

2. Buat database, beri nama tip_022.

3. Buat proyek baru (Java Application), beri nama Bab022, cukup dengan kelas Main saja.

4. Edit kelas Main.java, sehingga menjadi seperti berikut.

package bab022; import java.sql.*; /** * * @author Administrator */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here String user="root"; String pwd ="admin"; String host="localhost"; String db="tip_022"; String urlValue=""; try { Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ host +"/"+

db +"?user=" + user + "&password="+ pwd; Connection conn= DriverManager.getConnection(urlValue);

Page 6: Trik Rahasia Pemrograman Database Dengan Java

30

System.out.println("koneksi sukses"); conn.close(); } catch (SQLException e){ System.out.println("koneksi gagal " + e.toString()); } catch(ClassNotFoundException e) { System.out.println( "jdbc.Driver tidak ditemukan"); } } }

5. Lakukan kompilasi (Clean and Build), kemudian jalankan program. Dan lihat apa yang muncul dalam jendela output?

Gambar 2.6 Tampilan Output Awal

Terlihat bahwa program di-compile sukses, tanpa error. Akan tetapi, program menunjukkan kegagalan/run time error. Ten-tunya hal ini akan membuat pusing bagi pemula, karena merasa program sudah free error, tapi kenapa saat dijalankan program memberikan hasil yang error? Inilah persoalan mendasar yang sering membuat programmer baru berputus asa dan mengu-rungkan niatnya untuk melanjutkan mempelajari program.

Baiklah, mari dikupas persoalan di atas dengan saksama, diawali dengan pesan error yang muncul, yaitu “jdbc.Driver tidak dite-mukan”. Hal ini terlihat di dalam program bahwa perintah untuk menampilkan pesan ini ada pada langkah eksepsi kedua (ClassNotFoundException e). Dari sini dapat disimpulkan 100%

Page 7: Trik Rahasia Pemrograman Database Dengan Java

31

bahwa ini terjadi akibat kelas tersebut tidak ada, kelas apakah itu? Kita bisa melihat bahwa dalam program kita menuliskan Class.forname (“com.mysql.jdbc.Driver”). Berarti kelas driver MySQL-lah yang bermasalah, untuk itu lakukan pemasangan driver (ikuti langkah berikutnya).

6. Untuk memasang driver MySQL tersebut, Anda bisa membuka sub-subbab 1.2.2, atau menggunakan cara alternatif berikut. Klik kanan Project Properties, sehingga muncul jendela Project Properties.

7. Dalam jendela Project Properties, pilih Libraries pada kotak Categories. Di sebelah kanan tekan tombol Add Library… (pada tab Compile), sehingga muncul jendela Add Library. Pilih MySQL JDBC Driver, tekan Add Library, lalu klik OK pada jendela Properties.

8. Kemudian Compile ulang. Jalankan program dan lihat hasilnya. Anda akan mendapati pesan “koneksi sukses”. Jika Anda masih belum berhasil, periksa langkah Anda.

2.3 Koneksi dengan Database Lain

Pada prinsipnya, koneksi dengan database lain adalah sama saja dengan Anda melakukan koneksi dengan MySQL sebelumnya, yakni siapkan file/kelas JDBC driver-nya (Anda bisa download dari internet). Selanjutnya pasang dalam Project, tidak perlu mengubah code program. Jika Anda sebelumnya sudah mempunyai aplikasi database, hanya string koneksinya saja yang diganti (cukup kelas koneksinya saja).

Anda bisa membuka http://www.devx.com/tips/Tip/28818 untuk melihat beberapa konfigurasi database yang berbeda.

2.4 Membuat Kelas Koneksi

Hampir semua aplikasi bisnis, mengharuskan koneksi database bisa dilakukan secara fleksibel (dinamis), sehingga bisa diubah dan dise-suaikan oleh User (penggunanya). Misalkan nama server-nya,

Page 8: Trik Rahasia Pemrograman Database Dengan Java

32

account user MySQL, maupun nama databasenya. Koneksi database yang disimpan secara statik dalam program, akan menyulitkan User dan programmer sendiri pada akhirnya. Sehingga perlu dibuat sebuah kelas yang bisa digunakan untuk melakukan konfigurasi database secara run-time. Untuk membuatnya ikuti langkah berikut:

1. Buat sebuah project baru, melalui menu File New Project, sehingga muncul jendela New Project.

Gambar 2.7 Membuat Java Class Library

Pada jendela New Project, dalam kotak Categories pilih Java. Dalam kotak Projects, pilih Java Class Library, klik Next. Sehingga muncul jendela New Java Class Library.

Gambar 2.8 Jendela Nama Paket Library

Page 9: Trik Rahasia Pemrograman Database Dengan Java

33

Pada jendela New Java Class Library, masukkan nama project-nya Bab024, klik Finish.

2. Buat sebuah paket baru bernama koneksi, melalui jendela Projects klik node Source Packages New Java Package, sehingga muncul jendela New Java Package.

Gambar 2.9 Menu Membuat Paket

Gambar 2.10 Menentukan Nama Paket

Pada jendela New Java Package, pada kotak masukan Package Name isikan koneksi, klik Finish.

Page 10: Trik Rahasia Pemrograman Database Dengan Java

34

3. Pada paket koneksi, tambahkan sebuah form JDialogs, dengan cara; klik kanan paket koneksi New JDialogs Form…. Jika tidak muncul menu JDialogs Form, pilih Other, masukkan nama form yang akan menjadi nama kelasnya (pada kotak Class Name), selanjutnya klik tombol Finish.

Gambar 2.11 Menu Membuat Dialogs Form

Gambar 2.12 Menambah JDialogs Form melalui Menu Other

Jika Anda menggunakan menu Other…, maka akan muncul jendela New File. Pada kotak pilihan Categories pilih Swings GUI Forms. Pada kotak pilihan File Types pilih JDialog Form, klik Next, sehingga muncul jendela New JDialog Form.

Page 11: Trik Rahasia Pemrograman Database Dengan Java

35

Gambar 2.13 Memberi Nama JDialog Form

Pada jendela New JDialog Form, ketikkan SettingUI pada kotak masukan Class Name, klik Finish.

4. Ubah properti title pada form SettingUI, menjadi DB Setting, kemudian tambahkan beberapa objek ke dalam form antara lain:

Object [Variable Name] Property Value

JLabel [jLabel1] text Server

JTexField [txt_server] text localhost

JLabel [jLabel2] text User

JTextField [txt_user] text root

JLabel [jLabel3] text Password JPasswordField [txt_password] text admin

JLabel [jLabel4] text Database

JTextField [txt_database] text tip_024

JButton [bConnect] text Connect…

JLabel [jLabel5] text Status

JTextArea [txt_status]

Page 12: Trik Rahasia Pemrograman Database Dengan Java

36

Gambar 2.14 Design Form

Gambar 2.15 Hierarki Objek

5. Tambahkan kode program pada kelas SettingUI seperti berikut.

package Koneksi; import java.sql.*; import javax.swing.JOptionPane; /** *

Page 13: Trik Rahasia Pemrograman Database Dengan Java

37

* @author Administrator */ public class SettingUI extends javax.swing.JDialog { private Connection ConnectionObj; private boolean blnIsConnected=false; public Connection getConnection(){ return ConnectionObj; } public boolean isConnected() { return blnIsConnected; } /** Creates new form SettingUI */ public SettingUI(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); }

Ketik yang dicetak miring saja, yakni kode yang belum ada dalam program Anda (kode awal setelah form dibuat).

6. Tambahkan event Actionperformed pada tombol Connect… (bConnect), dengan cara klik kanan tombol Event Action

actionperformed, kemudian masukkan kode berikut.

private void bConnectActionPerformed( java.awt.event.ActionEvent evt) { // TODO add your handling code here: blnIsConnected=false; String user= txt_user.getText(); String pwd = String.copyValueOf( txt_password.getPassword(),0, txt_password.getPassword().length); String host= txt_server.getText(); String db= txt_database.getText(); String urlValue=""; txt_status.setText("Terputus"); try { Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ host +"/"+ db +"?user=" + user + "&password="+ pwd;

Page 14: Trik Rahasia Pemrograman Database Dengan Java

38

ConnectionObj= DriverManager.getConnection(urlValue); txt_status.setText("Terhubung (OK)"); blnIsConnected=true; } catch (SQLException e){ txt_status.setText("koneksi gagal " + e.toString()); } catch(ClassNotFoundException e) { txt_status.setText( "jdbc.Driver tidak ditemukan"); } if (blnIsConnected) JOptionPane.showMessageDialog( this, "Koneksi Sukse"); else JOptionPane.showMessageDialog( this, "Koneksi Gagal"); }

7. Pasang Driver JDBC MySQL-nya.

8. Lakukan Clean And Build, jalankan program, klik tombol Connect....

Gambar 2.16 Tampilan Awal

Page 15: Trik Rahasia Pemrograman Database Dengan Java

39

Gambar 2.17 Pesan Koneksi Sukses

Gambar 2.18 Tampilan Akhir

2.5 Mengimplementasikan Kelas Koneksi

Dalam hal ini, implementasi yang dimaksudkan adalah meman-faatkan kelas Koneksi yang dibuat sebelumnya pada sebuah aplikasi. Untuk itu lakukan langkah-langkah berikut.

1. Buat sebuah aplikasi baru, menggunakan template dalam NetBeasn, yang sudah memiliki menu dan sebuah form about, melalui menu File New Project, sehingga muncul jendela New Project.

Page 16: Trik Rahasia Pemrograman Database Dengan Java

40

Gambar 2.19 Memilih Java Desktop Application

Pada jendela New Project, pilih Java pada kotak pilihan Categories. Pilih Java Desktop Application pada kotak pilihan Project. Klik tombol Next, sehingga muncul jendela New Desktop Application.

Gambar 2.20 Jendela New Desktop Application

Page 17: Trik Rahasia Pemrograman Database Dengan Java

41

Pada jendela New Desktop Application, pilih Basic Application pada kotak pilihan Choose Application Shell, ketik Bab025 pada kotak masukan Project Name, klik Finish.

Gambar 2.21 Hasil Template Desktop Application

Project yang dihasilkan dari template Desktop Application, memiliki beberapa kelas, antara lain Bab025AboutBox.java, Bab025App.java, Bab025View.java.

2. Tambahkan kode program pada kelas Bab025App, sehingga menjadi seperti berikut.

package bab025; import java.sql.Connection; import org.jdesktop.application.Application; import org.jdesktop.application.SingleFrameApplication; /** * The main class of the application. */ public class Bab025App extends SingleFrameApplication { private Connection ConnObj; public Connection getConnection(){ return ConnObj; } public void setConnection (Connection vConnection){ ConnObj = vConnection; }

Page 18: Trik Rahasia Pemrograman Database Dengan Java

42

Ketik yang dicetak miring, yakni kode yang belum ada sebe-lumnya.

3. Lakukan perubahan pada kelas Bab025View (form menu), tambahkan sebuah menu di bawah menu File. Pilih dan klik kanan menu File (fileMenu) pada desain form Add From Palette MenuItem.

Setelah mengklik tambah menu item, di bawah menu File akan muncul menu baru. Ubah text dari menu baru tersebut menjadi DB Setting dan ubah variabel name-nya menjadi mnuDBSetting, melalui klik kanan Change Variable Name.

Gambar 2.22 Menu Baru DB Setting

Untuk menaruh menu DB Setting pada posisi paling atas, bisa dilakukan dengan melakukan drag and drop (seret dan lepas) ke atas.

4. Pasang Library Driver MySQL.

5. Pasang library koneksi yang dibuat sebelumnya. Dalam jendela Project Properties pilih Libraries. Pada tab Compile klik tombol Add JAR/Folder, pilih JAR Koneksi dalam project sebelumnya (Bab024) pada folder <dist>, pilih Bab024.jar, terakhir klik tom-bol Open.

Page 19: Trik Rahasia Pemrograman Database Dengan Java

43

Gambar 2.24 Daftar Library

6. Masih dalam form menu, tambahkan event actionperformed pada menu DBSetting, dengan cara klik kanan menu DB Setting

Event Action actionperformed. Tambahkan kode program seperti berikut.

private void mnuDBSettingActionPerformed( java.awt.event.ActionEvent evt) {

// TODO add your handling code here: SettingUI frm = new SettingUI(null, true); Bab025App.getApplication().show(frm); if (frm.isConnected()) Bab025App.getApplication().setConnection( frm.getConnection()); }

7. Tambahkan dalam bagian import, seperti berikut:

package bab025; import Koneksi.SettingUI;

8. Lakukan Cleand And Build.

Page 20: Trik Rahasia Pemrograman Database Dengan Java

44

Gambar 2.25 Ketika Program Dijalankan

Pada saat program berjalan, pilih menu DB Setting, sehingga muncul jendela Setting Database. Tekan Connect… dan per-hatikan, sebuah instance Connection (kelas yang dipakai untuk koneksi dalam akses database) sudah terpasang dalam aplikasi. Selanjutnya untuk permintaan instance kelas Connection dapat dilakukan sewaktu-waktu, dengan cara memanggil metode Bab025App.getApplication().getConnection(). Jika koneksi me-nunjukkan kegagalan, kelas Koneksi tersebut akan menam-pilkan pesan kegagalan. Perlu diperiksa dahulu sebelum mem-perbaiki kesalahannya, kesalahan yang umum dialami adalah driver JDBC-nya.

Pengembangan berikutnya, perlu dibuatkan untuk menyimpan konfigurasi koneksi (server, user, password, dan seterusnya) dalam sebuah media penyimpan agar User tidak perlu me-masukkan parameter-parameter tersebut. Dalam hal ini biasanya data tersebut tidak disimpan dalam database, tetapi cukup disimpan dalam file eksternal (misal file .ini, .txt). Untuk mela-kukan hal tersebut, digunakan sebuah kelas tertentu. Namun, dalam bab ini tidak dibahas agar pokok bahasan dalam bab ini tetap fokus dan terstruktur. Akan tetapi, jangan khawatir karena hal itu akan dibahas pada trik rahasia selanjutnya.

Page 21: Trik Rahasia Pemrograman Database Dengan Java

45

2.6 Kelas Koneksi Reuseable

Berikut trik membuat kelas koneksi yang lebih reuseable (bisa digunakan kembali dalam berbagai aplikasi), dengan penambahan beberapa properti dan metode yang bisa dipakai untuk mengen-dalikan perilaku kelas tersebut tanpa melalui mode grafik (form less), sehingga cukup menjadi kelas konfigurasi database, yang sewaktu-waktu bisa ditampilkan dalam mode grafik. Ikuti langkah-langkah berikut.

1. Buatlah project library seperti pada Bab024, beri nama project baru ini dengan nama Bab026.

2. Tambahkan juga JDialog Form dalam paket koneksi, beri nama SettingUI.

3. Pasang JDBC MySQL pada project ini.

4. Tambahkan objek-objek pada form SettingUI seperti pada project Bab024 sebelumnya.

5. Tambahkan kode program pada kelas SettingUI, pada bagian import seperti berikut.

package koneksi; import java.sql.*; import javax.swing.JOptionPane;

6. Tambahkan kode pada kelas SettingUI, untuk properti dan metode, ketik di bawah baris: public class SettingUI extends javax.swing.JDialog{

Berikut ini kode yang diketikkan:

private String jServer; private String jUser; private String jPassword; private String jDatabase; private Connection ConnectionObj; private boolean blnIsConnected=false; public void setServer(String value){ jServer=value; } public void setUser(String value){ jUser=value;

Page 22: Trik Rahasia Pemrograman Database Dengan Java

46

} public void setPassword(String value){ jPassword=value; } public void setDatabase(String value){ jDatabase=value; } public String getServer(){ return jServer; } public String getUser(){ return jUser; } public String getPassword(){ return jPassword; } public String getDatabase(){ return jDatabase; } public Connection getConnection(){ return ConnectionObj; } public boolean isConnected() { return blnIsConnected; } public boolean makeConnect(){ String urlValue=""; blnIsConnected=false; try { Class.forName("com.mysql.jdbc.Driver"); urlValue="jdbc:mysql://"+ jServer +"/"+ jDatabase +"?user=" + jUser + "&password="+ jPassword; ConnectionObj= DriverManager.getConnection(urlValue); blnIsConnected=true; } catch (SQLException e){

Page 23: Trik Rahasia Pemrograman Database Dengan Java

47

System.out.println("koneksi gagal " + e.toString()); } catch(ClassNotFoundException e) { System.out.println( "jdbc.Driver tidak ditemukan"); } if (blnIsConnected==false) System.out.println("Koneksi Gagal"); return blnIsConnected; }

7. Tambahkan event actionperformed pada tombol Connect seperti berikut.

private void bConnectActionPerformed( java.awt.event.ActionEvent evt) { // TODO add your handling code here: String user= txt_user.getText(); String pwd = String.copyValueOf( txt_password.getPassword(),0, txt_password.getPassword().length); String host= txt_server.getText(); String db= txt_database.getText(); jServer =host; jUser=user; jPassword=pwd; jDatabase=db; String urlValue=""; makeConnect(); if (blnIsConnected==true) txt_status.setText("Terhubung (OK)"); else txt_status.setText("koneksi gagal "); if (blnIsConnected) JOptionPane.showMessageDialog(this, "Koneksi Sukses"); else JOptionPane.showMessageDialog(this, "Koneksi Gagal"); }

Page 24: Trik Rahasia Pemrograman Database Dengan Java

48

8. Lakukan Clean and Build, jalankan project. Kelas ini bisa dipakai untuk melakukan koneksi, dengan menampilkan konfigurasi secara User Grafis Interface atau non-grafis.

9. Untuk membuat library dari kelas tersebut, bisa memanfaatkan file .Jar-nya, yang terletak pada <Project>\dist\ Bab026.jar.

ooo0ooo