OPTIMASI QUERY UNTUK PENCARIAN DATA DENGAN SUBSET QUERY Kusrini, S.Kom Abstract There are several query models for accessing data from two or more tables in a relational database. Two models that have been observed are cross product and subset query, since those models can be used to produce same query result. To get an optimal system performance, it is needed to find the best model in specific conditions. By using Borland Delphi version 6 software program and Interbase version 6 as database system, the researcher was trying to prove the optimization query theory with heuristic model. The theory says that one method to optimize a query is by changing the cross product model into subset query. Kata kunci : database, query, optimasi, heuristic 1. Pendahuluan 1.1. Latar Belakang Masalah Perkembangan aplikasi sistem informasi saat ini lebih cenderung ke client server, web base dan bahkan ke arah mobile aplication. Aplikasi-aplikasi ini akan mengakses basis data secara bersama-sama sehingga diperlukan kecepatan akses yang cukup tinggi. Dalam system basis data relasional sering terjadi dibutuhkan pengaksesan data terhadap beberapa tabel sekaligus. Ada beberapa cara dalam melakukan akses ini, namun perlu diperhatikan cara mana yang paling optimal sehingga diperoleh kecepatan akses tertinggi. 1.2. Rumusan Masalah Dengan menggunakan basis data Interbase dan bahasa pemrograman Delphi 6, akan dibuat sebuah aplikasi untuk menghitung waktu yang diperlukan untuk melakukan pencarian dengan 2 model query yaitu dengan cross product dan subset query. 1.3. Tujuan Penelitian Membuktikan bahwa penggunaan subset query lebih efektif dibandingkan dengan menggunakan cross product. 2. Kajian Pustaka Teknik optimasi dapat dilakukan dengan beberapa cara. Terdapat 2 pendekatan optimasi yang umum digunakan sebagaimana diungkapkan oleh Chanowich (2001), yakni: a. Heuristik atau rule-based Teknik ini mengaplikasikan aturan heuristik untuk mempercepat proses query. Optimasi jenis ini mentransformasikan query dengan sejumlah aturan yang akan meningkatkan kinerja eksekusi, yakni: - melakukan operasi selection di awal untuk mereduksi jumlah baris melakukan operasi projection di awal untuk mereduksi jumlah atribut mengkonversikan query dengan banyak join menjadi query dengan banyak subquery melakukan operasi selection dan join yang paling kecil keluarannya sebelum operasi lain b. Cost-based Teknik ini mengoptimasikan cost yang dipergunakan dari beberapa alternatif untuk kemudian dipilih salah satu yang menjadi cost terendah. Teknik ini mengoptimalkan urutan join terbalik yang dimungkinkan pada relasi-relasi r1 r2 ... rn. Teknik ini dipergunakan untuk mendapatkan pohon left-deep join yang akan menghasilkan sebuah relasi sebenarnya pada node sebelah kanan yang bukan hasil dari sebuah intermediate join. 3. Metodologi Penelitian Untuk membuktikan bahwa subset query lebih baik dari query degan banyak join atau cross product, peneliti membuat sebuah basis data percobaan dengan menggunakan interbase 6, basis data tersebut memuat 2 buah tabel percobaan,yaitu: Nama Field NIM Nama Alamat Tipe Integer Varchar(30) Varchar (80) Tabel 1. Tabel Mahasiswa Nama Field NIM MataKuliah Tipe Integer Varchar(30) Tabel 2. Tabel Kuliah Untuk memasukkan data ke tabel-tabel tersebut diatas, dibuat program pengisi data dengan menggunakan delphi 6. Untuk melihat kinerja system dengan 2 model query yaitu cross product dan subset query, dibuat query berikut: a. Query dengan model cross product diwakili oleh query berikut ini: SELECT M.NIM, M.Nama, M.Alamat FROM Mahasiswa M, Kuliah K WHERE M.NIM = K.NIM b. Query dengan model subset query diwakili oleh query berikut ini: SELECT NIM, Nama, Alamat FROM Mahasiswa WHERE NIM in ( SELECT NIM FROM Kuliah) Kedua query tersebut akan menghasilkan informasi yang sama, yaitu menampilkan data NIM, Nama dan Alamat dari tabel Mahasiswa yang NIM-nya terdapat dalam table Kuliah. Untuk menyimpan hasil percobaan query data, dibuat tabel waktu dengan struktur sebagai berikut: Tabel Waktu Nama Field Jml Q1 Tipe Integer Integer Q2 Integer Keterangan Jumlah record hasil query Waktu yang diperlukan untuk query dengan menggunakan cross product Waktu yang diperlukan untuk query dengan menggunakan subset query Tabel 3. Tabel Waktu Untuk menghitung waktu yang diperlukan untuk mengakses data, dibuat sebuah program aplikasi dengan menggunakan Delphi. 4. Hasil Penelitian dan Pembahasan Setelah melakukan percobaan dengan beberapa data, diperoleh waktu hasil seperti ditunjukkan dalam tabel 4 berikut ini: Jumlah Data Waktu CP (ms) Waktu SQ (ms) 1 10 4 5 5 5 50 9 22 100 10 45 1000 47 42 10000 425 56 25000 1162 121 Tabel 4. Waktu query Adapun grafik hasilnya, tampak dalam gambar 1. Gambar 1. Grafik Waktu Pengambilan Data Dari hasil yang ditunjukkan oleh tabel 4 dan gambar 1, dapat dilihat bahwa: a. Pada data dengan jumlah record sedikit penggunaan cross product dan subset query menunjukkan kinerja yang sama b. Pada data dengan jumlah record banyak, subset query menunjukkan kinerja yang jauh lebih baik dibanding dengan cross product Dari data di atas dapat dihitung persamaan untuk waktu akses dengan query cross roduct adalah : Y = 0.0031265 x + 5165.1148 1) Sedangkan persamaan untuk waktu akses dengan subset query adalah : Y = 0.0184276 x + 5165.0779 2) Dengan Y adalah jumlah data hasil query dan x waktu yang diperlukan dalam mili detik. Dari persamaan 1) dan 2) bisa dihitung bahwa pada jumlah record 5165 akan diperlukan waktu yang sama yaitu 2.412398 mili detik 5. Kesimpulan Dengan menggunakan Interbase 6, untuk data hasil query lebih dari kurang dari atau sama dengan 5165 record, penggunaan query dengan cross product membutuhkan waktu yang lebih kecil dibanding dengan metode subset query. Sebaliknya untuk data lebih besar dari 5165 record, penggunaan subset query jauh lebih cepat disbanding dengan menggunakan cross product. 6. Daftar Pustaka Chanowich, E. dan Sendelbach, E., 2001, “Query Optimization” in CSE 498G – Advanced Database. Korth, H.F., dan Silberschatz, A., 1991, Database System Concepts, McGraw Hill, Singapura. Setiawan, M.A., 2004, Optimasi SQL Query untuk Informasi Retrievel pada Aplikasi Berbasis Web, Proceedings Seminar Nasional Aplikasi Teknologi Informasi UII, Yogyakarta