BAHASA PEMROGRAMAN 3 PERTEMUAN KE 5 NETBEANS DATABASE BY : TITO SUGIHARTO
Feb 08, 2016
BAHASA PEMROGRAMAN 3
PERTEMUAN KE 5
NETBEANS DATABASEBY : TITO SUGIHARTO
PembahasanSistem DatabasePengantar teknologi JDBCSejarah JDBCDesain JDBCJDBC DriverArsitektur aplikasi JDBCPetunjuk langkah penggunaan
JDBCRetrieve data dari ResultSet
PendahuluanDatabase 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 DatabaseBerbagai 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.
JDBCJDBC 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 JDBC-ODBC bridge
Sun menyediakan sebuah driver JDBC-ODBC bridge, yang cocok untuk keperluan eksperimental dan untuk situasi-situasi 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 JDBCDriver 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 JDBCStatement 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
klien
Server
Middleware
(ASP, JSP, PHP, dsb)
Database (Access, Oracle,
dsb)
Web Server
(Apache, IIS, Glasfish, dsb)
Internet
Browser (Internet Explorer,
Netscape,dsb)
Permintaan Tanggapan
Beberapa Keuntungan Arsitektur Three-TierKeluwesan teknologi
◦ Mudah untuk mengubah DBMS engine◦ Memungkinkan pula middle tier ke
platform yang berbedaBiaya 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 JDBC1. Meload driver JDBC2. Mendefinisikan URL database3. Membuat dan melakukan
koneksi4. Membuat obyek statement5. Mengeksekusi query6. Memproses result7. Menutup koneksi
1. JDBC : Load DriverDriver :
◦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";elsestatus = "berhasil";}catch(ClassNotFoundException ex) {status = "Driver Error";}catch(SQLException ex) {status = "gagal";}con.close();
Jenis Driver DatabaseNama 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 URLNama 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;DatabaseName=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 KoneksiHarus 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] SUBJEK[LAPORAN1] [NAMA] [KELAS]