AKSES DATABASE MENGGUNAKAN JDBC

advertisement
AKSES DATABASE
MENGGUNAKAN JDBC
Pada bab ini Anda akan belajar bagaimana membuat program
koneksi Java dengan database Access dan MySQL. Selain itu, Anda
juga akan diajarkan bagaimana membuat program sederhana
dengan kedua database tersebut.
5.1
DBMS dengan MySQL
Software database ini cukup familiar bagi programmer berbasis open
source dan para pengembang aplikasi client-server, terutama web
programming. Untuk bisa mengakses MySql dibutuhkan driver yang
bisa menjembatani antara dabase ini dengan mesin java.
Jika Anda belum memiliki installer-nya, kunjungi situs
http://www.mysql.com atau http://dev.mysql.com/doc/mysql/en
untuk mendapatkan manualnya. Dalam hal ini penulis menggunakan
distribusi dari pihak ketiga/pengembang lain yang memanfaatkan
database tersebut dengan bantuan program pendukung lainnya,
yaitu AppServ. Program bantu ini untuk manajemen basis data
MySQL dengan skrip php dan dilengkapi server Apache. Untuk
mendapatkannya,
Anda
bisa
mengunjungi
alamat
http://appservnetwork.com (Anda juga bisa mendapatkan file dalam
85
bonus CD buku ini). Program tersebut free jadi Anda tidak usah resah
dengan biaya. Program tersebut juga sudah didukung dengan
PhpMyAdmin sebuah end user database management yang sudah
dikenal luas oleh para pengembang database server oriented/Web
programming.
Pastikan web server dan mysql sudah berjalan. Jika Anda menggunakan Windows XP, lihat dari Control Panel Æ Administrative Tool
Æ Services sehingga muncul jendela semua servis yang sedang
berjalan dalam komputer. Pastikan bahwa Apache2.2 dan mysql
sudah berjalan.
Gambar 5.1 Servis Apache
Gambar 5.2 Servis MySQL
Anda bisa menggunakan database manajemen yang lain yang
berbasiskan desktop (stand alone) atau berbasis web. Untuk melakukan manajemen database menggunakan web base interface,
lakukan bebarapa langkah berikut ini:
1. Pastikan bahwa Anda sudah memasang Database server MySQL,
Webserver Apache, dan PHP, serta PHPMyAdmin dalam
komputer Anda. Anda bisa mengopi dari bonus CD (folder
software/appserv-win32-2.5.10.exe) kalau belum memilikinya.
86
2. Jalankan
WebBrowser,
ketikkan
alamat
http://localhost/phpMyAdmin. Anda juga bisa mengganti
localhost dengan nama komputer Anda, sehingga muncul
halaman utama. Perhatikan Gambar 5.3.
3. Buat database baru, dengan cara memasukkan namanya dalam
kotak isian Create new database. Ketikkan latihan_b5, lalu klik
tombol Create seperti pada Gambar 5.3.
Gambar 5.3 Tampilan PhpMyAdmin
4. Jendela yang muncul selanjutnya adalah seperti Gambar 5.4,
yaitu pesan pembuatan database sukses. Dan tersedia untuk
memasukkan nama tabel baru dalam database tersebut. Anda
bisa membuat tabelnya, dengan cara memasukkan nama tabel
pada kotak isian name di panel Create new table on latihan_b5.
Ketikkan mahasiswa kemudian isi jumlah kolomnya pada kotak
isian Number of fields. Ketikkan 4 (pada panel yang sama),
kemudian klik tombol Go. Perhatikan Gambar 5.4 dan langkah
selanjutnya pada Gambar 5.5.
Gambar 5.4 Membuat Table Baru
87
5. Pada langkah pemasukan data tabel dengan kolom-kolom yang
tersedia seperti Gambar 5.5, isikan semua nama kolom pada
kotak yang sudah disediakan. Jangan lupa mengisikan juga tipe
data pada kolom Type dan panjangnya pada kolom Length/
Values. Setelah terisi semua, klik tombol Save.
Gambar 5.5 Mengisi Kolom Tabel Baru
6. Langkah berikutnya adalah membuat kunci utama pada tabel ini
dengan cara: masuk dalam struktur tabel (klik link menu
Structure). Kemudian pada sebelah kanan terlihat gambar kunci,
sorot pada baris no_mhs, kemudian arahkan mouse pada tombol
kunci tersebut (lihat Gambar 5.6). Setelah itu program akan
menampilkan pesan konfirmasi tentang pembuatan kunci
tersebut.
Gambar 5.6 Menambahkan Primary Key
88
Gambar 5.7 Konfirmasi Penambahan Kunci
7. Selanjutnya Anda perlu memasukkan beberapa data untuk
latihan koneksi database dengan Java. Sekarang, klik tombol
Insert pada deretan menu yang ada di sisi atas, kemudian
masukkan beberapa data yang diperlukan.
Gambar 5.8 Tombol-Tombol Fungsional phpMyAdmin
Gambar 5.9 Pemasukan Data Baru
8. Terakhir, klik tombol Go.
89
5.2
Membuat Koneksi untuk MySQL
Tibalah waktunya untuk membuat programnya. Buat dengan editor
yang paling ringan. Sekarang jangan gunakan editor yang hight end
user dulu karena yang kita buat sekarang belum membutuhkan
desain yang rumit. Prinsipnya, gunakan alat yang sesuai kebutuhan
agar selalu efektif dalam bekerja. Pakailah editor Gel dan lakukan
langkah-langkah berikut ini:
1. Buat proyek baru, beri nama Database.
2. Tambahkan kelas baru dalam proyek tersebut, beri nama
KoneksiMysql.
3. Setting library driver Mysql dalam editor Gel untuk proyek ini.
Jika dalam editor Anda tidak di-setting secara global dalam
Options (menu Options pada tab classpath), maka Anda harus
melakukan setting setiap proyek. Untuk itu lakukan setting
secara global pada Gel, dengan cara:
a. Masuk dalam jendela Options.
b. Masuk dalam tab Classpath.
c. Tekan tombol Add File pilih file driver MySQL. Jika Anda
belum memiliki, bisa mengopi dari bonus CD, silakan kopi
file mysql-connector-java-5.1.6-bin.jar dalam folder com dan
letakkan dalam folder latihan bab5.
4. Ketik dan sesuaikan kode program Anda seperti berikut:
import java.sql.*;
public class KoneksiMysql {
private
private
private
private
String
String
String
String
host="localhost";
user="root";
password="admin";
db=" latihan_b5";
public KoneksiMysql() {
Connection conn;
Statement st;
ResultSet rs;
int no=0;
try {
90
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://"+ host +"/"+ db
+"?user=" +user+
"&password="+ password);
st = conn.createStatement();
rs = st.executeQuery("Select * from
mahasiswa");
while (rs.next()) {
no=no+1;
System.out.println(no + ")");
System.out.println("No Mhs
:"
rs.getString("no_mhs"));
System.out.println("Nama
:"
rs.getString("nama"));
System.out.println("Alamat
:"
rs.getString(3));
System.out.println("Jurusan
:"
rs.getString(4));
System.out.println("============"
"====================");
}
conn.close();
}
}
+
+
+
+
+
}
catch(Exception e) {
System.out.println(
"Pesan kesalahan : "+ e.getMessage());
}
public static void main(String[] args) {
KoneksiMysql koneksimysql = new KoneksiMysql();
}
5. Pastikan bahwa properti host, user, password dan db sudah
disesuaikan dengan konfigurasi user MySQL dalam komputer
Anda. Jika tidak, Anda dijamin gagal dalam menampilkan data
dari database tersebut.
private
private
private
private
String
String
String
String
host="localhost";
user="root";
password="admin";
db=" latihan_b5";
6. Compile dan jalankan program.
91
Gambar 5.10 Keluaran dari KoneksiMySQL.java
Properti host, user, password dan db dipakai untuk akses ke dalam
database MySQL. Pada constructor KoneksiMysql terdapat kelas
bertipe Connection dan Statement. Kelas tersebut dipakai untuk
koneksi ke dalam database melalui query, sedangkan kelas
ResultSet dipakai untuk menyimpan hasil query dalam bentuk kumpulan data yang bisa diakses secara berurutan. Sedangkan perintah
Class.forName("com.mysql.jdbc.Driver") adalah untuk melakukan pengenalan terhadap driver database yang digunakan, yaitu
com.mysql.jdbc.Driver. Jika kelas ini tidak ditemukan dalam class
path, koneksi akan gagal.
92
5.3
Design DB Paket
Dalam buku Java yang kami terbitkan sebelumnya (Membuat
Aplikasi Penjualan dengan Java dan MySQL) telah dijelaskan
tentang kelas-kelas untuk mengakses dan manajemen database versi
1.0.0, termasuk pembuatannya, antara lain kelas DB, DBTable,
DBQuery, DriverConnection, MyTable dan Utils.
Sebenarnya dalam buku ini juga menggunakan kelas yang sudah
dipakai pada buku sebelumnya, tetapi sudah di-update ke versi
2.0.0. Secara prinsip dasarnya adalah sama, sehingga tidak perlu lagi
dibahas dalam buku ini. Namun, perlu penulis gambarkan perancangan paket ini agar lebih mudah untuk dipahami bagi pembaca,
baik yang belum pernah membaca buku pertama, atau yang sudah
pernah membaca buku sebelumnya.
5.3.1 DB.java
Kelas ini adalah abstraksi dari objek tabel fisik dalam sebuah
database. Agar kita bisa melakukan pengambilan data dan melakukan modifikasi terhadap data (tabel) tersebut dengan cepat dan
mudah. Serta tidak mengetikkan program sama secara berulangulang.
Seperti yang kita ketahui sebelumnya bahwa untuk mengambil data
dalam tabel perlu melakukan pengenalan driver database, membuat
statement, kemudian menjalankan query yang disimpan dalam
sebuah recordset (himpunan record). Sehingga setiap kali kita
melakukan operasi baca/tulis, sejumlah perintah program akan kita
tuliskan berulang-ulang. Hal itu tidak salah, tetapi akan lebih baik jika
kita membuat sebuah objek yang bisa menggantikan pekerjaan itu.
Sehingga penulisan kode program akan menjadi sederhana dan
mudah dalam proses pengembangannya. Inilah keuntungannya
pemrograman yang bersifat modular (tersusun atas modul-modul).
5.3.2 DBTable.java
Kelas ini diturunkan dari kelas DB, yang dikhususkan untuk
menangani hubungan dengan sebuah tabel saja. Properti yang
dimilikinya adalah tableName yang menyimpan informasi nama
tabel dalam database yang akan dibaca/ditulis.
93
Method yang dimilikinya adalah setTableName untuk mengubah/
menentukan nama tabel dan method makeActive untuk mengaktifkan data dalam komponen DBTable ini. Dan method init untuk
memasukkan perintah SQL agar membuka satu tabel tertentu. Tentu
saja selain metode di atas, komponen ini juga memiliki seluruh
kemampuan nenek moyangnya, yaitu kelas DB.
5.3.3 DBQuery.java
Kelas ini diturunkan dari kelas DB, yang memiliki kemampuan untuk
melakukan pengambilan data melalui query dalam database (bisa
membaca dari beberapa tabel sekaligus, atau hanya beberapa kolom
saja dari total tertentu).
Metode init digunakan untuk menentukan tipe recordset-nya menjadi
readonly (tidak untuk edit), sedangkan makeActive digunakan untuk
mengaktifkan data dalam komponen DBQuery.
5.3.4 DBCombo.java
Kelas ini diturunkan dari kelas DBQuery, yang memiliki kemampuan
untuk melakukan pengambilan data melalui query dan siap untuk
meletakkan data dalam sebuah combobox. Dengan berbagai kondisi
atau pilihan data untuk ditampilkan secara dinamis.
5.3.5 MyModelTable.java
Komponen ini hampir sama dengan DefaultTableModel dalam paket
java.swing.table, yaitu komponen yang mampu menampilkan
tabular data/tabel. Karena kami memang mengembangkan dari
kelas tersebut agar bisa disesuaikan dengan kebutuhan aplikasi yang
kita buat. Selalu gunakan sederhana saja, yaitu: “pelajari yang sudah
ditulis pengembang terdahulu, baru dikembangkan semaksimal
mungkin”.
Untuk pengembangan, properti yang ditambahkan antara lain
readOnlyCol untuk menyimpan informasi mengenai atribut setiap
kolom dalam tabel, sehingga kita bisa menentukan kolom mana
yang boleh diedit atau mana yang tidak boleh diedit. Sedangkan
method yang ditambahkan antara lain setReadOnlyCol untuk
mengisi properti readOnlyCol.
94
5.3.6 MyTable
Komponen ini adalah sebuah kontainer panel yang memuat kelas
JscrollPanel dan JTable dengan model tabelnya adalah
MyModelTable. Dengan kemampuan khusus, untuk menampilkan
data dari database ke dalam bentuk tabel (tabular data) dibungkus
dalam satu kelas agar memudahkan dalam pengembangan dan
mengurangi kompleksitas program.
5.3.7 Utils
Kelas ini digunakan untuk keperluan yang bersifat umum,
independent dan sering kali digunakan, seperti halnya fungsi-fungsi
standar pada Java. Contohnya fungsi-fungsi bilangan parseInt,
parseDouble dan sebagainya. Di sini akan dibuat dua buah metode
showMessage() untuk menampilkan pesan, dan isNumber() untuk
mengetahui sebuah string tertentu berformat angka atau bukan.
DriverConnection
DB
MyModelTable
DBTable
Utils
MyTable
DBQuery
DBCombo
Gambar 5.11 Desain DBPaket
ooo0ooo
95
Download