Database dan JDBC Apa itu Database 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. Sebuah database harus dibuat dengan rapi agar setiap data yang dimasukkan sesuai dengan tempatnya. Sebagai contoh di sebuah Perpustakaan penyimpanan buku dilakukan berdasarkan atas jenis atau kategori-kategori tertentu dari buku-buku tersebut, misalnya kategori buku komputer, buku pertanian, dan lain-lain. Kemudian dikelompokkan lagi berdasarkan abjad dari judul-judul buku. Ini dilakukan agar setiap pengunjung dapat dengan mudah mencari dan mendapatkan buku yang dimaksud. Bisa dibayangkan jika bukubuku tersebut tidak dikelompokkan berdasarkan kategori-kategori yang ditentukan, maka seorang pengunjung akan sulit untuk mencari dan mendapatkan buku yang dimaksud. Untuk itu sebuah database yang baik harus memiliki kategori-kategori yang digunakan sebagai pengelompokan data-data. Penggunaan database pada komputer dilakukan dengan menggunakan tabel-tabel. Pada tabel-tabel tersebut masih dikelompokkan lagi menjadi beberapa bagian untuk membedakan data yang satu dengan data yang lain. Pada sebuah tabel database harus memiliki satu kategori data yang digunakan sebagai kunci untuk membedakan data-data yang ada didalam satu tabel. Data kunci tersebut tidak boleh sama antara satu data dengan data yang lain. Data kunci sering disebut dengan Primary Key. Gambar 1.1 Contoh Tabel Database Kolom pada tabel mengidentifikasikan kategori-kategori data dari tiap-tiap baris. Pada contoh di atas kolom dengan kategori kode digunakan sebagai data kunci, sehingga data yang terdapat pada kolom kode tidak boleh sama, sedangkan data untuk kolom-kolom lainnya boleh sama. Ini bisa dilihat pada baris ke 1 dan ke 3 pada kolom ALAMAT memiliki data yang sama yaitu “Perum PGRI Blok K-60 Klipang Semarang”, begitu juga dengan baris ke 2, 7 dan 8 pada kolom No Tlp. Data kunci ini digunakan untuk mempermudah pencarian sebuah data. Dengan data kunci, setiap data yang terdapat pada sebuah tabel dapat dibedakan sehingga dalam pengolahan data tidak tejadi tumpang-tindih antara satu data dengan data yang lain. Konsep Relasional Database Relational Database Management System (RDBMS) Merupakan sekumpulan data yang disimpan sedemikian rupa sehingga mudah diambil informasinya bagi pengguna, dan data tersebut saling berhubungan. RDBMS merupakan suatu paket perangkat lunak yang kompleks digunakan untuk memanipulasi database. Ada tiga prinsip dalam RDBMS : Data definition Mendefinisikan jenis data yang akan dibuat (dapat berupa angka atau huruf), cara relasi data, validasi data dan lainnya. Data Manipulation Data yang telah dibuat dan didefinisikan tersebut akan dilakukan beberapa pengerjaan, seperti menyaring data, melakukan proses query, dan sebagainya. Data Control Bagian ini berkenaan dengan cara mengendalikan data, seperti siapa saja yang bisa melihat isi data, bagaimana data bisa digunakan oleh banyak user, dan sebagainya. Semua operasi input dan output yang berhubungan dengan database harus menggunakan DBMS. Bila pemakai akan mengakses database, DBMS menyediakan penghubung (interface) antara pemakai dengan database. Hubungan pemakai dengan database dapat dilakukan dengan dua cara : 1. Secara interaktif menggunakan bahasa pertanyaan (query language). 2. Dengan menggunakan program aplikasi. Jenjang Data Dalam database terdapat jenjang atau urutan data mulai dari kumpulan yang terkecil sampai yang terbesar. Jenjang data dapat Anda lihat pada gambar di bawah ini. Gambar 1.2 Jenjang Data Characters : merupakan bagian data yang terkecil, dapat berupa karakter numerik, huruf ataupun karakter-karakter khusus (special characters) yang membentuk suatu item data / field. Field : merepresentasikan suatu atribut dari record yang menunjukkan suatu item dari data, seperti misalnya nama, alamat dan lain sebagainya. Kumpulan dari field membentuk suatu record. field name: harus diberi nama untuk membedakan field yang satu dengan lainnya field representation: tipe field (karakter, teks, tanggal, angka, dsb), lebar field (ruang maksimum yang dapat diisi dengan karakter-karakter data). field value: isi dari field untuk masing-masing record. Record : Kumpulan dari field membentuk suatu record. Record menggambarkan suatu unit data individu yang tertentu. Kumpulan dari record membentuk suatu file. Misalnya file personalia, tiap-tiap record dapat mewakili data tiap-tiap karyawan. File: File terdiri dari record-record yang menggambarkan satu kesatuan data yang sejenis. Misalnya file mata pelajaran berisi data tentang semua mata pelajaran yang ada. Database : Kumpulan dari file / tabel membentuk suatu database Apa itu 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 API memudahkan untuk mengirim perintah SQL ke sistem database relasionel dan mendukung bermacam-macam dialek SQL. JDBC API pertama kali dirilis dengan nama JDBC API 2.0 pada tahun 1997 yang memiliki fasilitas dan kemampuan yang sederhana, selanjutnya beberapa tahun kemudian dirilis kembali JBDC API versi 2.0 yang memiliki kemampuan lebih baik dari versi sebelumnya diantaranya fasilitas batch update dan scrollable cursor. JDBC API versi 2.0 ini belum terdistribusi langsung di dalam J2SDK masih berupa package tambahan yang bernama javax.sql. JDBC API 2.0 memiliki kemampuan yang bagus seperti connection pooling, interface rowset, dan transaksi terdistribusi. JDBC API versi 3.0 telah terdistribusi secara langsung di dalam paket yang terdapat pada J2SDK versi 1.4. yaitu pada package java.sql dan javax.sql. Kemampuan-kemampuan yang terdapat pada versi 3.0 diantaranya transaction savepoint, manajemen connection pooling yang lebih mendetail, dan dukungan lebih lengkap terhadap SQL99. Tipe-Tipe JDBC Driver JDBC API terdiri dari dua interface utama yaitu JDBC API untuk penulis aplikasi, dan JDBC Driver API lower-level untuk penulis driver. Teknologi JDBC Driver dikelompokkan ke dalam 4 kategori. Gambar di bawah ini menggambarkan konektivitas JDBC menggunakan ODBC Driver dan library database client yang ada. Tipe 1 Tipe 2 Gambar 1.3. JDBC Driver tipe 1 dan tipe 2 (Sun Microsystems) Tipe 1 : JDBC-ODBC Bridge plus ODBC Driver Tipe Driver ini menyediakan akses JDBC melalui ODBC Driver. JDBCODBC 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 pada buku ini dengan menggunakan database server Microsoft Access. 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. Aplikasi dan applet dapat mengakses database melalui JDBC API dengan menggunakan program Java murni, seperti yang terlihat pada gambar di bawah ini. Tipe 4 Tipe 3 Gambar 1.4. JDBC Driver tipe 3 dan tipe 4 (Sun Microsystems) 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. Driver tipe ini akan kita gunakan dalam pembuatan program JDBC pada buku ini dengan menggunakan database server MySQL. Komponen Utama JDBC JDBC API memiliki beberapa komponen utama yang berhubungan dengan mekanisme pengolahan data baik itu untuk berkomunikasi dengan database server, melakukan koneksi, mengirim perintah SQL, mendapatkan data, menutup koneksi, serta penanganan error yang mungkin terjadi dalam pengolahan data. 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 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 kesalahankesalahan (error) yang mengkin terjadi dalam pengolahan database. Keunggulan Teknologi JDBC Ada beberapa keunggulan dari teknologi JDBC dalam pembuatan aplikasi berbasis database dibandingkan dengan teknologi lainnya. MEMPERTAHANKAN DATA YANG TELAH ADA Dengan teknologi JDBC, aplikasi bisnis dan perusahaan tidak terpaku pada arsitektur tertentu, dan dapat menggunakan database yang telah ada sebelumnya tanpa harus merubah atau mengganti isi dari database yang telah dibuat sebelumnya. MENYEDERHANAKAN PEMBUATAN APLIKASI Kombinasi antara Java API dengan JDBC API menjadikan pembuatan aplikasi lebih mudah, sederhana, dan hemat dari segi ekonomis. JDBC menyembunyikan tugas-tugas akses data sehingga pada programmer tidak perlu mengetahui apa yang terjadi di belakang layar. Disamping itu juga, JDBC API sangat mudah untuk dipelajari, dan sangat murah dalam pemeliharaannya. TIDAK PERLU MELAKUKAN KONFIGURASI PADA JARINGAN KOMPUTER Dengan JDBC API, sudah tidak perlu lagi melakukan konfigurasi sistem pada komputer klien. Dengan driver yang dituliskan dalam program Java, semua informasi yang diperlukan untuk melakukan koneksi dengan database telah didefinisikan oleh JDBC URL atau dengan objek DataSource yang didaftarkan dengan Java Naming and Directory Interface (JNDI). AKSES PENUH KE METADATA JDBC API menyediakan akses metadata sehingga memungkinkan untuk mengembangkan sebuah aplikasi yang lebih canggih dan kemampuan melakukan koneksi database yang lebih baik. TIDAK PERLU DIINSTALL JDBC driver yang murni bawaan dari Java misalnya JDBC-ODBC bridge, tidak perlu diinstall lagi karena secara otomatis sudah terpasang pada mesin klien. KONEKSI DATABASE MENGGUNAKAN URL Teknologi JDBC memanfaatkan keunggulan dari standar Internet yaitu Uniform Resource Locator (URL) untuk mengidentifikasi koneksi database. JBDC API juga menyediakan cara lain yang lebih baik untuk identifikasi dan koneksi database ke sumber data yaitu dengan menggunakan objek DataSource, dan membuat kode lebih mudah untuk dipindahkan ke platform lain serta lebih mudah dalam pemeliharaan. Sebagai tambahan, objek DataSource juga menyediakan connection pooling dan distributed transactions, yang merupakan seuatu yang penting dalam aplikasi database.