satu bangunan atau terpisah oleh jarak yang jauh walaupun banyak bangunannya dan terhubung melalui jaringan internet. Dalam penggunaan basis data terdistribusi bisa
dilakukan di server internet, ekstranet kantor atau intranet, maupun di jaringan perusahaan.
Pengguna atau disebut user dalam sebuah basis data terdistribusi bisa mengakses basis data melalui dua jenis aplikasi yaitu:
a. Aplikasi lokal adalah aplikasi yang tidak memerlukan data dari tempat lain.
b. Aplikasi global adalah aplikasi dengan kebutuhan akan data dari tempat lain.
2.4. Konsep Structure Query LanguageSQL
Menurut Connoly dan Begg 2005, p113, pengertian SQL adalah transform- oriented language atau bahasa yang dirancang dengan penggunaan relasi untuk mengubah
masukan menjadi keluaran yang ibutuhkan. Sebagai sebuah bahasa, standar internasional SQL menetapkan 2 komponen pokok, yaitu :
a. Data Definition Language DDL untuk mendefisinikan struktur basis data
dan akses kontrol data. b.
Data Manipulation Language DML untuk mengembalikan dan memperbarui data.
2.4.1. Data Manipulation
Data manipulation di dalam SQL mencakup banyak hal mengenai query. Hal- hal yang akan dibahas disini adalah yang terkait dengan query secara umum, yaitu :
a. SELECT : untuk menampilkan hasil query data dalam basis data.
b. INSERT : untuk memasukkan data ke dalam basis data.
c. UPDATE : untuk memperbarui data dalam basis data.
d. DELETE : untuk menghapus data dalam basis data.
Tujuan perintah SELECT adalah untuk mengembalikan nilai dan menampilkan data dari satu atau lebih tabel dalam basis data.
Perintah yang sangat baik kemampuannya dalam menampilkan relasi data adalah operasi Selection, Projection dan Join dalam perintah tunggal.
a. Selection
Operasi selection bekerja pada relasi tunggal R dan mendefinisikan relasi yang hanya berisi tuple R yang memenuhi kondisi tertentu predikat. Misalnya adalah
Universita Sumatera Utara
mencari gaji pegawai yang lebih dari 10000. Predikat dapat dihasilkan dari operasi logika AND, OR dan NOT.
b. Projection
Operasi projection bekerja pada relasi tunggal R dan mendefinisikan relasi yang berisi bagian secara vertikal dari R, mengambil nilai dari atribut yang ditentukan dan
menghilangkan duplikasi.
c. Join
Operasi join sama halnya dengan operasi cross-product yang melakukan pencarian data yang sama pada kolom yang berkaitan antara 2 tabel dalam query. Dalam
memenuhi kondisi query tertentu, penggunaan operasi join lebih baik daripada operasi cross-product dalam efisiensi waktu dan pencarian yang dilakukan. Operasi
join akan mengkombinasikan dua relasi ke bentuk relasi yang baru, yang merupakan operasi dasar dalam relational algebra.
Menurut Ramakrishnan dan Gehrke 2005, p107, ada beberapa bentuk dari join, yaitu :
1. Condition Joins
Penggunaan join yang paling umum adalah bentuk condition join, yang melakukan kondisi seleksi pada cross-product antara 2 relasi R dan S.
a. Equijoin
Operasi equijoin sama halnya ketika melakukan query dengan penggabungan relasi dengan mencari nilai data yang sama pada kolom yang berkaitan antara
kedua relasi tersebut. Diilustrasikan dengan query : R.name1 = S.name2, dimana R dan S masing-masing adalah tabel untuk mencari nilai data yang sama pada
kolom name1 pada tabel R dan kolom name2 pada tabel S. b.
Natural Join Operasi natural join adalah operasi equijoin yang memiliki kesamaan dalam
semua field yang memiliki nama yang sama dalam tabel R dan tabel S. Dalam hal ini, kita dapat menghilangkan kondisi dalam operasi join karena
akan menghasilkan dua field dengan nama yang sama. Dalam RDBMS, perintah SQL akan dianalisis oleh Optimizer, yang akan
menentukan langkah-langkah yang paling optimal dalam menjalankan perintah SQL. Berikut ini ada beberapa cara JOIN yang ada pada basis data yaitu :
a. Nested Loop
Universita Sumatera Utara
Nested Loop adalah sebuah JOIN yang efektif jika subset yang digabungkan berjumlah sedikit dan jika kondisi dalam perintah JOIN efisien untuk menggabungkan 2
tabel tersebut.Cara kerja Nested Loop adalah : 1.
Optimizer menentukan sebuah tabel untuk dijadikan Outer 2.
Tabel yang tersisa dijadikan Inner Table. 3.
Pada setiap baris yang terdapat pada Outer Table, Optimizer akan mengakses semua baris yang terdapat pada Inner Table dengan kondisi yang di
spesifikasikan di dalam JOIN.
b. Hash Joins
Hash Joins biasanya digunakan untuk mengabungkan data-data yang berjumlah besar. Cara kerja Hash Joins adalah Optimizer membuat sebuah Hash Table berdasarkan
predikat JOIN. Setiap tabel di Inner maupun Outer masing-masing dijadikan sebuah kode dengan Hash Function kemudian setiap kode Hash dari Inner akan
dibandingkan dengan Hash Kode dari Outer. Apabila kode hash dari Inner dan Outer sama maka akan dilakukan proses pengecekan nilai dari kolom yang pada akhirnya akan
dimasukkan ke dalam hasil jika nilai kolomnya sama.
c. Sort Merge Joins
Sort Merge Joins biasa digunakan untuk menggabungkan baris dari dua sumber yang tidak mempunyai hubungan. Biasanya Hash Joins mempunyai performa
yang lebih baik dari pada Sort Merge Joins. Namun Sort Merge Joins akan bekerja lebih baik daripada Hash Join apabila terdapat kondisi sebagai Baris-baris sudah diurutkan.
d. Cartesian Joins
Sebuah Cartesian Joins digunakan ketika satu atau lebih tabel tidak mempunyai kondisi penggabungan terhadap tabel lainnya. Optimizer akan
menggabungkan setiap baris di tabel pertama dengan setiap baris di tabel lainya untuk menghasilkan sebuah Cartesian Produk dari dua set tersebut.
e. Outer Joins
Outer Joins mempunyai proses dimana selain baris yang memenuhi kondisi JOIN yang dimasukkan ke dalam hasil. Outer Joins akan menambahkan baris
yang tidak memenuhi kondisi JOIN namun digabung dengan nilai NULL. Terdapat 3 Jenis Outer Join yaitu :
a. Sort Merge Join sangat berguna apabila kondisi JOIN diantara dua tabel bukan
berbentuk kondisi sama namun mempunyai bentuk.
Universita Sumatera Utara
b. Jika penggunaan Nested Loop Join tidaklah optimal karena jumlah data yang
besar dan tidak adanya kondisi JOIN yang cukup efisien. c.
Jika Optimizer menemukan bahwa penggunaan Sort Merge akan meningkatkan performa daripada Hash Join karena
Berikut ini adalah cara-cara bagaimana Optimizer menganalisis perintah JOIN yang akan dijalankan dalam query : Untuk mengeksekusi sebuah perintah JOIN maka
Optimizer harus mengidentifikan beberapa hal, yaitu : 1. Cara akses perintah JOIN
Untuk perintah-perintah yang sederhana, Optimizer harus menentukan cara mengakses yang paling optimal untuk mendapatkan data dari setiap tabel yang di-
JOIN. 2. Metode JOIN
Setiap ada perintah JOIN maka Optimizer akan menentukan metode JOIN mana yang paling tepat untuk digunakan, baik itu Nested Loop, Sort Merge, Cartesian atau Hash
Joins.
2.4.2. Konsep Query
Query adalah semacam kemampuan untuk menampilkan suatu data dari database dimana mengambil dari table-tabel yang ada di database, namun tabel tersebut tidak semua
ditampilkan sesuai dengan yang kita inginkan. data apa yang ingin kita tampilkan. misal : data peminjam dengan buku yang dipinjam, maka nanti akan mengambil data dari table
peminjam dan tabel buku. Bahasa query query language adalah bahasa khusus yang digunakan untuk
melakukan query pada basis data. Contoh penggunaan bahasa query adalah: SELECT ALL WHERE kota=”Yogyakarta” AND umur40. Query tersebut meminta semua
record dari basis data yang sedang digunakan misalkan basisdata konsumen yang bertempat tinggal di Yogyakarta dan berumur lebih dari 40 tahun kota dan umur adalah
nama field yang telah didefinisikan. Standar bahasa query yang banyak digunakan adalah SQL structured query language. Metode ini paling rumit tetapi paling fleksibel
dibandingkan metode query yang lain, query dengan parameter yang telah tersedia dan query by example.
Query dibedakan menjadi 2, yaitu
Universita Sumatera Utara
1. Untuk membuatmendefinisikan obyek-obyek database seperti membuat tabel,
relasi dan sebagainya. Biasanya disebut dengan Data Definition Language DDL 2.
Untuk memanipulasi data, yang biasanya dikenal dengan Data Manipulation Language DML. Manipulasi data bisa berupa:
a. Menambah, mengubah atau menghapus data.
b. Pengambilan informasi yang diperlukan dari database, yang mana datanya
diambil dari tabel maupun dari query sebelumnya
2.5. Optimasi Query
Optimasi Query adalah suatu proses untuk menganalisa query untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan apakah penggunaan
dari sumber tersebut dapat dikurangi tanpa merubah output. Atau bisa juga dikatakan bahwa optimasi query adalah sebuah prosedur untuk meningkatkan strategi evaluasi dari
suatu query untuk membuat evaluasi tersebut menjadi lebih efektif. Optimasi query mencakup beberapa teknik seperti transformasi query ke dalam bentuk logika yang
sama, memilih jalan akses yang optimal dan mengoptimumkan penyimpanan data. Tujuan dari optimasi query adalah menemukan jalan akses yang termurah untuk
meminimumkan total waktu pada saat proses sebuah query. Untuk mencapai tujuan tersebut, maka diperlukan optimizer untuk melakukan analisa query dan untuk
melakukan pencarian jalan akses.
2.6. Algoritma Hash Join
Hash join digunakan ketika men-join tabel-tabel yang berukuran besar atau dengan set data yang besar. Hash join memerlukan Equijoin predikat predikat membandingkan
nilai dari satu tabel dengan nilai-nilai dari tabel lain menggunakan operator yang sama ‘=’.
Optimizer menggunakan hash join untuk join dengan dua tabel jikajoin menggunakan Equijoin dan jika salah satu dari kondisi berikut benar:
a.
Sejumlah data besar yang harus join.
b.
Sebuah fraksi besar tabel harus join.
Universita Sumatera Utara
Optimizer menggunakan lebih kecil dari dua tabel atau sumber data untuk membangun sebuah tabel hash dalam memori. Kemudian scan tabel yang lebih besar,
menyelidiki tabel hash untuk menemukan baris join. Metode ini paling baik digunakan ketika tabel kecil cocok di memori yang tersedia. Biaya kemudian dibatasi untuk
melewati single read untuk dua tabel. Hash join akan digunakan, jika tidak ada indeks yang memadai pada kolom join. Ini adalah situasi terburuk.
Query optimizer membuat hash join dalam dua tahap, yaitu : a.
M
embangun build tabel hash di memori, yang lebih kecil dari dua tabel. b.
Probe ini tabel hash dengan nilai hash untuk setiap tabel baris kedua.
Algoritma Hash Join :
Fase Build For each R1
begin generate hash value of R1 join key
insert into build table to appropriate hash bucket end
Fase Probe for each R2
begin generate hash value of R2 join key
for each R1 in corresponding hash bucket if match R1 and R2
output R1,R2 end
Jadi hash join memiliki dua input, yaitu masukan membangun dan masukan probe.
Contoh query hash join : select e.last_name, d.department_name, d.location_id from employees e, departments d,
locations l where e.department_id = d.department_id;
2.7. Algoritma Nested Join
Nested query atau query bersarang adalah query yang memiliki query lain di dalamnya. Sub Query merupakan pernyataan Select yang merupakan bagian dari pernyataan
Insert,Select. Nested query digunakan untuk menangani masalah dalam query yang kompleks bahkan kita tidak tahu nilai berapa yang akan diSelect atau di Insert.
Beberapa kegunaan dari Nested Query adalah:
Universita Sumatera Utara
1. Subquery digunakan untuk menyelesaikan persoalan dimana suatu nilai yang
tidak diketahui.
2.
Meng-copy data dari satu tabel ke tabel lain.
3.
Menerima data dari Inline View.
4.
Mengambil data dari tabel lain untuk kemudian diupdate ke tabel yang dituju .
5.
Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.
Bentuk Umum dari Nested Query adalah: select from employees el where e.department_id in Select d.department_id from
department_name d
2.8. Riset Terkait
Dalam melakukan penelitian, penulis menggunakan beberapa riset terkait yang dijadikan acuan yang membuat penelitian berjalan lancer. Adapun riset-riset terkait
tersebut adalah :
Tabel 2.1 Riset terkait
No Judul Riset
Nama Peneliti Dan Tahun
AlgoritmaMetode Yang Digunakan
Hasil Penelitian
1 Perbandingan
Cross-Product Dan Subset
Query Pada Multiple Relasi
Dengan Metode Cost-Based
Metta SantiPutri,Mira
Chandra Kirana,Anni,2010
Subset Query,Cross
Product dengan
menggunakan Metode Cost Based
Subset query
pada bentuk
scalar dan
kombinasi 1
merupakan model yang lebih
baik dalam
pencarian data jika
dibandingkan dengan cross product,
baik dalam 2 relasi maupun 3 relasi. Jika
menggunakan
model cross
product dalam
pencarian data, maka pada bagian kolom
yang dikondisi harus diindekskan
2 Pengoptimasian
Pencarian Data Dengan
Algoritma Subset Query
Tri Wahyu, 2008 Algoritma
Subset Query
Dengan menggunakan Interbase 6, untuk data
hasil query lebih dari kurang dari atau sama
dengan 5165 record, penggunaan
query dengan cross product
membutuhkan waktu
Universita Sumatera Utara
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 3
Meningkatkan Kecepatan
Akses Data
dengan Teknologi
Optimasi Query Rushmore
Arief Jananto,2006
Query Rushmore Salah satu keuntungan
optimisasi query Rushmore
adalah bahwa mesin jet Query
sekarang dapat
menggunakan index
lebih dari satu tiap tabel untuk
menyelesaikan suatu
query. Didalam
Jet 1.X,
hanya satu index pada satu
waktu yang
bisa digunakan
untuk menyelesaikan
suatu query.
Kemampuan index dari tabel besar
dapat menghasilkan
kinerja besar ketika Rushmore Optimisasi
Query digunakan
4 Optimasi Query
Database Menggunakan
Algoritma Genetik
Manahan Siallagan,
Mira Kania Sabariah,
Malanita Sontya, 2008
Algoritma Genetik Database ini antara
lain : 1.
Metode terbaik
untuk permasalahan optimasi
query database
pada percobaan
yang dilakukan
adalah metode
M2S crossover.
2. Berdasarkan
percobaan yang
dilakukan, dapat
dilihat bahwa
dengan algoritma
Universita Sumatera Utara
genetik, jika jumlah Pm diperkecil maka
hasil optimum dapat dicapai.
3. Jumlah relasi kecil,
harga pencarian
tidakn berubah-
ubah. 4.
Dari hasil beberapa kali
percobaan, bahwa
semakin banyak jumlah yang
digunakan maka
waktu proses yang diperlukan algoritma
genetic untuk
menyelesaikan optimasi query akan
semakin lama.
2.8 Perbedaan Dengan Riset Yang lain Dalam penelitian ini yang memedakan antara peneliti sebelumnya adalah perbedaan
algoritma, tahapan pengujian, Bahasa Pemrograman yang digunakan, Database Manajemen Sistem dan masukkan dari peneliti-peneliti sebelumnya yang mereka
tuangkan dikesimpulan untuk melakukan penelitian selanjutnya.
2.9 Kontribusi Riset
Ada pun kontribusi penulis dalam melakukan penelitian ini adalah: Menganalisis perbandingan running time atau kecepatan waktu untuk melakukan
pencarian data dengan menggunakan Query Hash Join dan Query Nested Query dari suatu aplikasi berbasis Client dan Server.
Universita Sumatera Utara
BAB 3 METODOLOGI PENELITIAN
3.1. Deskripsi Basis Data
Sumber data untuk menjadi studi kasus dalam penelitian ini adalah master basis data Anggaran mempunyai 6 tabel yang saling berhubungan. Semua tabel tidak memiliki
indeks atau cluster yang digunakan dalam pencarian data.
3.1.1. Struktur Fisik Database
Pengujian query-query pencarian data menggunakan beberapa tabel yang saling berhubungan dari tabel satu dengan tabel yang lain. Berikut struktur fisik database yang
akan diuji.
Tabel 3.1. TBMStruk
Nama Kolom Tipe Data
Panjang Karakter
Keterangan
Strukid Varchar
10 ID dari table
StrukKode Varchar
4 Kode Struktur
StrukNama Varchar
50 Nama Struktur
OP Varchar
30 Operator
LU Datetime
Tanggal dan Waktu Akses PC
Varchar 30
Nama Komputer
Mengakses DLT
Bit Status data
Pada tabel Tbmstruk memilik 7 kolom yaitu Strukid, Strukkode, StrukNama, OP, LU,
PC dan DLT serta semua kolom tersebut memiliki tipe data dan panjang karakter berbeda tergantung jenis data kolom tersebut. Sedangkan kunci unik dari tabel diatas adalah
StrukID.
Universita Sumatera Utara