bp3 pertemuan ke 5

advertisement
BAHASA PEMROGRAMAN 3
PERTEMUAN KE 5
NETBEANS DATABASE
BY : TITO SUGIHARTO
Pembahasan
Sistem Database
 Pengantar teknologi JDBC
 Sejarah JDBC
 Desain JDBC
 JDBC Driver
 Arsitektur aplikasi JDBC
 Petunjuk langkah penggunaan JDBC
 Retrieve data dari ResultSet

Pendahuluan
Database adalah sekumpulan file data yang
satu sama lainnya saling berhubungan yang
diorganisasi
sedemikian
rupa
sehingga
memudahkan
untuk
mendapatkan
dan
memproses data tersebut.
Lingkungan sistem database menekankan
pada data yang tidak tergantung (idenpendent)
pada aplikasi yang akan menggunakan data
tersebut. Data adalah kumpulan kumpulan fakta
dasar
(mentah)
yang
terpisah.
Data
menggambarkan suatu organisasi.
Sistem Database

Berbagai macam jenis sistem database :
◦ High performance commercial databases – eg.
Oracle, DB2, Informix, Microsoft SQL server
◦ Open-source – eg. PostgreSQL, MySQL and
Interbase
◦ Lightweight Java databases – eg. Cloudscape,
InstantDB and Pointbase.
◦ Desktop databases – eg. Paradox and Access.

Need to choose and install database first.
JDBC
JDBC API adalah kelas Java API untuk
mengakses segala data berupa tabel. JDBC
adalah sebuah nama merek dagang atau
trademark dari Sun Microsystem (bukan sebuah
singkatan, meskipun demikian JDBC sering
disebut sebagai “Java Database Connectivity”)
yang merupakan bagian dari teknologi Java
yang
diperuntukkan
untuk
pengolahan
Database.
JDBC juga memiliki library atau API yang
dapat digunakan untuk kebutuhan database baik
itu koneksi maupun pengolahan data.
JDBC Architecture
Tipe 1 : JDBC-ODBC Bridge plus ODBC Driver
Tipe Driver ini menyediakan akses JDBC
melalui ODBC Driver. JDBC-ODBC bridge
telah diikutkan pada distribusi JDK sejak
versi 1.2, dan menjadi gateway ke ODBC API.
Driver tipe ini akan kita gunakan dalam
pembuatan
program
JDBC
dengan
menggunakan database server Microsoft
Access.
Type 1: JDBC-ODBC Bridge and ODBC Driver

Sebelum JDBC  ODBC sudah ada.

Bisakah pakai ODBC dari Java untuk koneksi JDBC?
 bisa yaitu dengan bantuan JDBC API yang berupa JDBCODBC bridge

Sun menyediakan sebuah driver JDBC-ODBC bridge, yang
cocok untuk keperluan eksperimental dan untuk situasisituasi dimana tidak ada driver yang sesuai.

Tipe driver ini juga paling cocok untuk jaringan korporat
dimana instalasi klien bukan masalah besar, atau untuk
aplikasi server yang ditulis dalam bahasa Java dalam
arsitektur 3-tier.
Karakteristik JDBC - ODBC?

ODBC tidak cocok untuk dipakai langsung dari bahasa pemrograman Java
karena ODBC menggunakan bahasa C. Pemanggilan dari Java ke kode
native C memiliki beberapa masalah dalam sekuritas, implementasi,
robustness, dan portabilitas aplikasi.

Penerjemahan secara literal dari ODBC C API kedalam Java API bukanlah
hal yang baik. Contoh: Java tidak memiliki pointer.

ODBC sulit untuk dipelajari. ODBC memiliki option-option yang
kompleks walaupun untuk query-query sederhana. Sebaliknya JDBC
didesain tetap sederhana meski mengerjakan hal-hal kompleks.

Jika menggunakan ODBC, driver manager harus diinstall secara manual
pada tiap mesin klien. Jika menggunakan JDBC driver, kode JDBC secara
otomatis diinstall.
Type 2 : A native API partly Java
technology-enabled driver
Tipe Driver ini mengkonversi pemanggilan
JDBC ke dalam pemanggilan klien API untuk
Oracle, Sybase, Infomix, BD2, atau DBMS
yang lainnya. Tipe driver ini juga memerlukan
kode binary yang spesifik terhadap system
operasi yang di-load ke dalam masing-masing
mesin klien. Tipe ini memerlukan software
tertentu yang diinstall pada mesin klien.
Type 3 : Pure Java Driver for Database
Middleware
Tipe driver ini menterjemahkan pemanggilan
JDBC ke dalam middleware protokol verdor,
yang kemudian diterjemahkan ke dalah protokol
DBMS oleh server middleware. Middleware
menyediakan konektivitas bagi banyak database
yang berbeda.
Tipe driver ini sangat fleksibel, karena tidak
memerlukan kode yang terinstall di mesin klien
dan sebuah driver dapat menyediakan akses ke
berbagai database.
Type 4: Direct-to-Database
Pure Java Driver
Tipe driver ini mengkonversi JDBC
secara langsung ke dalam protokol
jaringan yang digunakan oleh DBMS,
memungkinkan suatu panggilan langsung
dari mesin klien kepada DBMS server, dan
meyediakan suatu solusi praktis untuk
akses internet.
Driver-driver dari tipe ini dibangun
menggunakan teknologi Java murni
sehingga memberikan portabilitas tinggi.
Komponen Utama JDBC

Driver adalah komponen untuk menangani
komunikasi dengan database server.

DriverManager adalah komponen untuk
menangani objek Driver dimana objek
DriverManager juga mengabstraksi detail dari
proses kerja objek Driver.

Connection
adalah
komponen
untuk
merepresentasikan koneksi secara fisik ke
database
Komponen Utama JDBC

Statement adalah komponen untuk mengirim
perintah-perintah SQL ke database.

ResultSet adalah komponen untuk menyimpan
data yang didapat dari database setelah perintah
SQL dijalankan dengan menggunakan komponen
Statement.

SQLException adalah komponen untuk
menangangi kesalahan-kesalahan (error) yang
mengkin terjadi dalam pengolahan database.
Application Architectures
Contoh Two-Tier Architecture
Arsitektur 3-tier
Contoh Three-tier Architecture
Server
Web Server
(Apache, IIS, Glasfish,
dsb)
Middleware
(ASP, JSP, PHP,
dsb)
Internet
Permintaan
Tanggapan
Browser
(Internet
Explorer,
Netscape,dsb)
klien
Database
(Access,
Oracle,
dsb)
Beberapa Keuntungan Arsitektur
Three-Tier

Keluwesan teknologi
◦ Mudah untuk mengubah DBMS engine
◦ Memungkinkan pula middle tier ke platform yang
berbeda

Biaya jangka panjang yang rendah
◦ Perubahan-perubahan cukup dilakukan pada middle tier
daripada pada aplikasi keseluruhan

Keunggulan kompetitif
◦ Kekampuan untuk bereaksi thd perubahan bisnis
dengan cepat, dengan cara mengubah modul kode
daripada mengubah keseluruhan aplikasi
Langkah Penggunaan JDBC
1.
2.
3.
4.
5.
6.
7.
Meload driver JDBC
Mendefinisikan URL database
Membuat dan melakukan koneksi
Membuat obyek statement
Mengeksekusi query
Memproses result
Menutup koneksi
1. JDBC : Load Driver

Driver :
◦ library yang digunakan untuk berkomunikasi
dengan database server
◦ Dengan menggunakan driver, program Java
yang menggunakan API JDBC dapat
berinteraksi dan dapat dimengerti oleh
database server.

Untuk database yang berbeda dibutuhkan driver
yang berbeda.
.......
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(dbname,"","");
if (con==null)
status = "gagal";
else
status = "berhasil";
}catch(ClassNotFoundException ex) {
status = "Driver Error";
}catch(SQLException ex) {
status = "gagal";
}
con.close();
Jenis Driver Database
Nama Driver database:
 JDBC-ODBC :
sun.jdbc.odbc.JdbcOdbcDriver
 Oracle :
oracle.jdbc.driver.OracleDriver
 Sybase :
com.sybase.jdbc.SybDriver
 MySQL:
com.mysql.jdbc.Driver
 PostgreSQL:
org.postgresql.Driver
 Microsoft SQLServer 2000 :
com.microsoft.jdbc.sqlserver.SQLServerDriver
2. Mendefinisikan Koneksi URL
Menspesifikasikan lokasi database server.
Untuk mendefinisikan URL bisa menggunakan
dokumentasi driver. Berikut ini contoh
mendefinisikan url:
Connection con=null;
String dbname="jdbc:odbc:DSFilm";
String status="";
Jenis URL
Nama URL database:
 JDBC-ODBC :
jdbc:odbc:nama_database
 Oracle :
jdbc:oracle:thin:@nama_host:1521:namaDB
 MySQL:
jdbc:mysql://nama_host:3306/namaDB
 PostgreSQL:
jdbc:postgresql://nama_host:5432/namaDB
 Microsoft SQLServer 2000 :
jdbc:microsoft:sqlserver://nama_host:1433;DatabaseNa
me=namaDB
3. JDBC : Membuat Koneksi

Cara : memanggil method getConnection dari class DriverManager
dengan melewatkan URL (hasil langkah dua) sebagai argumen.

getConnection akan melempar SQLException

Contoh:
Connection con=null;
String dbname="jdbc:odbc:DSFilm";
String status="";
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection(dbname,"","");
4. JDBC : Membuat Obyek Statement
Object Statement digunakan untuk mengirim
query dan perintah ke database.
 Object Statement dibuat dengan cara
bekerjasama dengan class Connection.
 Cara: memangil method createStatement() dari
obyek Connection.
 Contoh:

Statement statement = connection.createStatement();
5. JDBC : Mengeksekusi Query
Memanfaatkan object Statement untuk memproses query.
 Cara: memanggil method executeQuery() dari object Statement.
 memberikan return value bertipe ResulSet

String kueri = "INSERT INTO FILM(ID, JUDUL, JUMLAH) VALUES
('"+id+"','"+judul+"',"+jumlah+")";
ResultSet rs=statement.executeQuery(kueri);
int isiTabel = st.executeUpdate(kueri);
 Note : Untuk memodifikasi database, gunakan
statement.executeUpdate(sql); yang mendukung string sql
UPDATE, INSERT INTO, DELETE
ResultSet
ResultSet memberikan bermacam2 method getXxx dengan
parameter indek kolom atau nama kolom dan mengembalikan
data.
 Method lain object ResultSet:
◦ findColumn()
mendapatkan index (integer value) berdasarkan
nama kolom.
Kolom pertama mempunyai index 1 bukan 0.
◦ getMetaData()
retrieve informasi mengenai ResultSet, returns object
ResultSetMetaData.
◦ wasNull()
Mengetahui apakah getXxx() menghasilkan SQL null.

6. JDBC : Memproses result
Dengan menggunakan method next() pada object ResultSet 
mendapatkan results per satu baris.
 Contoh:

String nrp;
String nama;
while (rs.next()){
nrp=rs.getString(1);
nama=rs.getString(2);
System.out.println("NRP : " +nrp);
System.out.println("NAMA : " +nama);
System.out.println("-------------");
}
 Kolom pertama mempunyai index 1 bukan 0.
 Object ResultSet otomatis akan ditutup bila ada object ResultSet baru.
7. JDBC : Menutup Koneksi

Harus didefinisikan secara eksplisit.
connection.close();

Karena membuka koneksi adalah mahal,
maka penundaan langkah terakhir ini
hanya jika masih ada operasi database
yang dilakukan.
TUGAS PRAKTIKUM
KIRIM KE::
[email protected]
FORMAT SUBJEK
[LAPORAN1] [NAMA] [KELAS]
Download