Anda di halaman 1dari 22

PEMROSESAN QUERY DALAM SEBUAH SISTEM MANAJEMEN

BASIS DAT
Untuk Memenuhi Tugas Mata Kuliah Basis Data I

Nama dan NIM

1. Paulina Wahyuni (DBC 113 045)


2. Estu Pambudi

(DBC 113 061)

3. Lilis Friennawati (DBC 113 063)


4. Loure Florentina (DBC 113 067)

Dosen

5. Pita Ria

(DBC 113 079)

6. Sena Hartani

(DBC 113 123)

Ade Chandra Saputra, S.Kom, M.Kom.

JURUSAN / PROGRAM STUDI TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKA RAYA
TAHUN 2015

BAB I
PENDAHULUAN

1.1.

Latar Belakang
Sistem

manajemen

basis

data

merupakan

sebuah

perangkat

lunak

yang

memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses ke


dalam sebuah database. Sistem manajemen basis data juga menerapkan mekanisme
pengamanan data, pemakaian data secara bersama, keakuratan data, dan sebagainya. Sistem
ini dirancang untuk memproses berbagai data dengan beberapa referensi data yang sama.
Umumnya data-data yang disimpan dalam sebuah database memiliki hubungan antara satu
dengan yang lainnya. Sistem manajemen basis data ini juga mampu diakses oleh berbagai
aplikasi. Sistem manajemen basis data diperlukan untuk :
a. Independensi daat dan akses yang efisien
b. Mereduksi waktu pengembangan aplikasi
c. Integritas dan keamanan data
d. Administrasi keseragaman data
e. Akses bersamaan dan perbaikan dari terjadinya crash
Komponen utama sistem manajemen basis data dapat dibagi menjadi 4 macam,
diantaranya adalah :

Perangkat keras (hardware)

Perangkat lunak (software)

Data

Pengguna (user)
Sistem manajemen basis data memiliki fasilitas yang memungkinkan seorang

pengguna (user) untuk :


a. Mendefinisikan database
Untuk mendefinisikan basis data, user dapat menggunakan Data Definition Language
(DDL). DDL memungkinkan user untuk dapat menspesifikasikan tipe, struktur, serta
batasan aturan mengenai data yang akan disimpan ke dalam database tersebut.

b. Memanipulasi database
Data Manipulation Language (DML) merupakan fasilitas pada sistem manajemen
basis data yang memungkinkan user untuk dapat menambah, mengedit, maupun
menghapus, data.
c. Melakukan akses kontrol terhadap database
Data Control Language (DCL) merupakan fasilitas pada sistem manajemen basis data
yang digunakan untuk melakukan pengontrolan data dan server database seperti
manipulasi user dan hak akses (priviledges).
Sebuah sistem manajemen basis data dapat melakukan pengaksesan terhadap suatu
query. Query merupakan sebuah permintaan atau pencarian yang dilakukan terhadap data
tertentu pada database. Pemrosesan query adalah aktivitas bagaimana sebuah query akan
dikerjakan dan dipenuhi, yang merujuk pada sejumlah aktivitas yang dilakukan untuk
pengambilan data dari sebuah basis data dalam rangka memenuhi permintaan data/informasi
dari user (pengguna). Aktivitas tersebut meliputi transfromasi dari berbagai query yang
diekspresikan dalam bahasa query komersial (level logik) ke dalam ekspresi-ekspresi query
pada level fisik, serta berbagai transformasi optimasi query dan pengevaluasian query. Waktu
yang digunakan dalam pemrosesan query dapat disebut sebagai cost atau biaya yang sebagian
besar digunakan untuk pengaksesan disk, yang tentunya lebih lambat bila dibandingkan
dengan pengaksesan memori.
Sebelum pemrosesan query dimulai, sistem harus menterjemahkan query tersebut ke
dalam bentuk yang cocok bagi sistem basis data. Proses translasi dilakukan oleh modul parser
dalam sebuah sistem kompilator program. Parser memeriksa sintaks query dari pemakai juga
melihat apakah nama tabel yang disebutkan memang benar merupakan nama tabel yang ada
di dalam basis data. Dari proses parsing yang dilakukan oleh modul parser akan dibentuk
sebuah representasi hirarkis dari sebuah query yang kemudian dapat lebih mudah
ditranslasikan ke dalam ekspresi aljabar relasional.
Database merupakan tempat penyimpanan data, dimana data-data yang disimpan
merupakan data-data yang saling berhubungan/berkaitan. Contohnya adalah aplikasi kontak
yang terdapat pada handphone. Dengan menggunakan aplikasi ini, kita dapat menyimpan
data-data kontak seperti nama dan nomor telepon atau nomor ponsel. Bahkan fasilitas daftar
kontak pada beberapa handphone kini juga telah memungkinkan penggunanya untuk
menyimpan data seperti alamat email, nomor fax, foto, dan lainnya. Tempat penyimpanan
data-data kontak inilah yang disebut dengan database.

Pada aplikasi kontak tersebut, data-data akan disimpan dalam bentuk daftar dan
urutannya selalu teratur (berdasarkan abjad), meskipun kita tidak menginputkan data-data
tersebut dengan berdasarkan urutan. Hal tersebut memudahkan pengguna jika ingin
melakukan pencarian data kontak. Bahkan terkadang kita tidak perlu repot untuk membaca
data kontak satu-persatu, kita dapat mencari kontak yang dimaksud hanya dengan
mengetikkan beberapa huruf yang berkaitan dengan nama kontak yang dicari. Perhatikan juga
bahwa data-data yang tersimpan pada daftar kontak tidak ada yang sama. Hal tersebut
mencegah terjadinya redudansi data, sehingga dapat menghemat penggunaan memori. Data
yang disimpan pun tidak tertukar antara kontak yang satu dengan kontak yang lainnya.
Semua data disimpan dengan teratur dan rapi. Berbagai kemudahan yang disebutkan di atas
merupakan hasil kerja dari sebuah sistem manajemen basis data atau DBMS.
Sistem

manajemen

basis

data

merupakan

sebuah

perangkat

lunak

yang

memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses ke


dalam sebuah database. Sistem manajemen basis data diperlukan untuk :
f. Independensi data dan akses yang efisien
g. Mereduksi waktu pengembangan aplikasi
h. Integritas dan keamanan data
i. Administrasi keseragaman data
j. Akses bersamaan dan perbaikan dari terjadinya crash
Komponen utama sistem manajemen basis data dapat dibagi menjadi 4 macam,
diantaranya adalah :

Perangkat keras (hardware)


Kita memerlukan perangkat keras sebagai media untuk penyimpanan data dan sistem
manajemen basis data, sekaligus sebagai sarana untuk menginputkan data pada sistem
manajemen basis data. Seperti pada contoh di atas, kita memerlukan handphone
sebagai sarana untuk menginputkan data ke dalam daftar kontak.

Perangkat lunak (software)


Perangkat lunak (dalam hal ini sistem manajemen basis data) diperlukan untuk
membuat, mengedit/mengatur dan mengontrol database yang digunakan. Pada aplikasi
kontak misalnya, sistem manajemen basis data memungkinkan pengguna untuk
membuat sebuah kontak dengan mengisi data-data pada kontak (seperti nama dan
nomor telepon), kemudian menyimpan data tersebut dalam daftar. Suatu saat jika ada

perubahan pada data, pengguna dapat mengedit data yang dimaksud kemudian
menyimpannya kembali. Sistem manajemen basis data memungkinkan data yang baru
diedit tersebut disimpan dalam data kontak yang lama, kecuali pengguna menyimpan
data tersebut sebagai kontak yang baru lagi.

Data
Data merupakan kumpulan fakta yang disimpan oleh pengguna dalam database.

Pengguna (user)
Pengguna merupakan orang yang menggunakan fasilitas, aplikasi dan sistem yang
berkaitan dengan database.
Sistem manajemen basis data memiliki fasilitas yang memungkinkan seorang

pengguna (user) untuk :


d. Mendefinisikan database
Untuk mendefinisikan basis data, user dapat menggunakan Data Definition Language
(DDL). DDL memungkinkan user untuk dapat menspesifikasikan tipe, struktur, serta
batasan aturan mengenai data yang akan disimpan ke dalam database tersebut.
e. Memanipulasi database
Data Manipulation Language (DML) merupakan fasilitas pada sistem manajemen
basis data yang memungkinkan user untuk dapat menambah, mengedit, maupun
menghapus, data.
f. Melakukan akses kontrol terhadap database
Data Control Language (DCL) merupakan fasilitas pada sistem manajemen basis data
yang digunakan untuk melakukan pengontrolan data dan server database seperti
manipulasi user dan hak akses (priviledges).
Sebuah sistem manajemen basis data dapat melakukan pengaksesan terhadap suatu
query. Query merupakan sebuah permintaan atau pencarian yang dilakukan terhadap data
tertentu pada database. Aktivitas pada sebuah database tidak akan terjadi tanpa adanya query.
Dengan menggunakan query pengguna dapat meminta sistem untuk melakukan aktivitas
tertentu yang diinginkannya, misalkan menampilkan data tertentu, menambahkan data,
mengedit data, dan masih banyak lagi. Seluruh proses yang melibatkan pengerjaan sebuah
query disebut dengan pemrosesan query.

Pemrosesan query adalah aktivitas bagaimana sebuah query akan dikerjakan dan
dipenuhi, yang merujuk pada sejumlah aktivitas yang dilakukan untuk pengambilan data dari
sebuah database dalam rangka memenuhi permintaan data/informasi dari user (pengguna).
Aktivitas tersebut meliputi transfromasi dari berbagai query yang diekspresikan dalam bahasa
query komersial (level logik) ke dalam ekspresi-ekspresi query pada level fisik, serta
berbagai transformasi optimasi query dan pengevaluasian query. Waktu yang digunakan
dalam pemrosesan query dapat disebut sebagai cost atau biaya yang sebagian besar
digunakan untuk pengaksesan disk, yang tentunya lebih lambat bila dibandingkan dengan
pengaksesan memori.
Sebelum pemrosesan query dimulai, sistem harus menterjemahkan query tersebut ke
dalam bentuk yang cocok bagi sistem basis data. Proses translasi dilakukan oleh modul parser
dalam sebuah sistem kompilator program. Parser memeriksa sintaks query dari pemakai juga
melihat apakah nama tabel yang disebutkan memang benar merupakan nama tabel yang ada
di dalam basis data. Dari proses parsing yang dilakukan oleh modul parser akan dibentuk
sebuah representasi hirarkis dari sebuah query yang kemudian dapat lebih mudah
ditranslasikan ke dalam ekspresi aljabar relasional.
1.2.

Rumusan Masalah
1. Bagaimana sebuah sistem manajemen basis data melakukan pemrosesan terhadap
sebuah query?
2. Bagaimana estimasi biaya query dalam sistem manajemen basis data?
3. Apa saja operasi join yang terdapat dalam sistem manajemen basis data?
4. Bagaimana evaluasi ekspresi pada sistem manajemen basis data?
5. Bagaimana interpretasi query dalam sistem manajemen basis data?

1.3.

Batasan Masalah
Pada makalah kami ini, kami membatasi ruang lingkup masalah dengan membahas
mengenai sistem manajemen basis data pada database SQL.

1.4.

Tujuan Penulisan
1. Mengetahui proses sebuah sistem manajemen basis data melakukan pemrosesan
terhadap sebuah query.
2. Mengetahui proses estimasi biaya query dalam sistem manajemen basis data?

3. Mengetahui operasi join yang terdapat dalam sistem manajemen basis data?

4. Mengetahui proses evaluasi ekspresi pada sistem manajemen basis data?


5. Mengetahui proses interpretasi query dalam sistem manajemen basis data?

1.5.

Manfaat Penulisan
Manfaat dari penulisan ini adalah untuk mengetahui dan memahami sebuah
manajemen sistem basis data dan bagaimana sebuah manajemen sistem basis data
diolah dan dikelola secara efisien, menarik dan tepat guna.

BAB II
PEMBAHASAN

2.1.

Pemrosesan Query
Dalam basis data, bahasa query merupakan bahasa yang digunakan untuk meminta

informasi dari sebuah basis data. Bahasa query itu sendiri terbagi menjadi 2 kategori, yaitu :

Bahasa query prosedural


Dalam bahasa query jenis ini, user menginstruksikan ke sistem agar membentuk
serangkaian operasi dalam basis data untuk mengeluarkan hasil yang diinginkan. Yang
termasuk dalam bahasa query ini adalah : aljabar relasional (relational algebra).

Bahasa query non prosedural


Pada bahasa query ini, user mendeskripsikan informasi yang diinginkan tanpa
memberikan prosedur detail untuk menghasilkan informasi tersebut. Yang termasuk
dalam bahasa ini adalah : kalkulus relational tuple (tuple relational kalkulus).
Pemrosesan query merupakan proses bagaimana sebuah query dikerjakan atau

dipenuhi dalam sebuah basis data. Pemrosesan query ini merujuk pada sejumlah aktivitas
yang dilakukan untuk mengambil atau menampilkan data tertentu dari sebuah basis data
dalam rangka memenuhi permintaan data maupun informasi, sesuai dengan query atau
perintah yang diberikan oleh user. Aktivitas yang dimaksud, meliputi transformasi dari
berbagai query yang diekspresikan dalam bahasa tingkat tinggi ke dalam ekspresi-ekspresi
query dalam bahasa tingkat rendah, berbagai transformasi optimasi query dan pengevaluasian
query.
Tujuan dari pemrosesan query ini adalah untuk mengubah atau menyajikan query
yang ditulis dalam bahasa tingkat tinggi (bahasa yang dapat dipahami manusia), misalkan
menggunakan bahasa SQL menjadi bahasa tingkat rendah (bahasa yang dipahami oleh mesin)
seperti aljabar relasional, kemudian melaksanakan pengambilan data yang diperlukan.
Langkah-langkah

yang

dilakukan

diilustrasikan pada gambar di bawah ini :

dalam

pemrosesan

sebuah

query

dapat

Langkah-langkah pemrosesan sebuah query dapat dijelaskan sebagai berikut :


1) Parsing
Sebelum sebuah query diproses dalam sebuah sistem basis data, query tersebut harus
diubah (ditranslasikan) terlebih dahulu menjadi bahasa yang cocok dengan mesin atau
sistem basis data yang digunakan. Bahasa query yang dikenal oleh basis data
merupakan aljabar relasional.
Sebelum ditranslasikan menjadi aljabar relasional, umumnya sebuah sistem basis data
akan mengecek terlebih dahulu query yang diberikan (disebut parsing). Pada saat
parsing inilah query akan dicek, apakah penulisan query sudah sesuai dengan format
penulisan query yang bisa dipakai oleh sistem basis data tersebut, sehingga tidak
menyebabkan error pada saat query dieksekusi. Contohnya, ada tidaknya tanda titik
koma (;) pada akhir baris query (jika menggunakan bahasa SQL).
Selanjutnya, akan dilakukan pengecekan terhadap metadata sistem basis data tersebut
yang menyimpan informasi, apakah tabel atau data yang dimaksud ada dalam basis
data tersebut. Dapat dikatakan bahwa pada sistem basis data, proses parsing ini
merupakan

proses

yang

melakukan

pengecekan

terhadap

kelengkapan

an

benar/tidaknya query yang diberikan oleh user.


2) Translasi
Setelah dilakukan proses parsing dan jika ternyata query tersebut sudah benar, maka
query akan diubah ke dalam bentuk aljabar relasional. Sebuah query dapat
membentuk berbagai bentuk aljabar relasional yang nantinya dapat mempengaruhi
proses pengambilan data dalam database. Misalnya, user memberikan query Select

nilai from mahasiswa. Dalam aljabar relasional, query ini dapat ditranslasikan
menjadi : nilai<100(nilai(mahasiswa)) atau nilai( nilai<100(mahasiswa)).
Kedua aljabar relasional tersebut akan menghasilkan output yang sama. Perbedaannya
terletak pada proses eksekusi query saat menampilkan data tersebut. Pada aljabar
relasional yang pertama, proses penelusuran dilakukan terlebih dahulu. Penelusuran
dilakukan satu-persatu pada seluruh data dalam tabel mahasiswa. Tabel mahasiswa
dikunjungi, kemudian seluruh data pada kolom nilai diambil. Selanjutnya, barulah
dilakukan proses seleksi dengan syarat nilai<100. Data-data yang memenuhi syarat
ditampilkan. Pada aljabar relasional yang kedua, proses seleksi (dengan syarat
nilai<100) pada kolom nilai pada tabel mahasiswa dilakukan lebih dulu. Berbeda
dengan aljabar relasional yang pertama, penelusuran yang dilakukan pada aljabar
relasional yang kedua ini langsung melibatkan pemeriksaan terhadap nilai
mahasiswanya. Data nilai mahasiswa yang kurang dari 100 akan ditampilkan.
3) Optimasi
Setelah query ditranslasikan, maka akan dilakukan optimasi terhadap query tersebut.
Optimasi query merupakan sebuah proses yang dilakukan untuk manganalisa query
untuk menentukan sumber-sumber apa saja yang digunakan oleh query tersebut dan
apakah penggunaan sumber-sumber tersebut dapat dikurangi tanpa mengubah output
yang dihasikan. Dapat dikatakan juga bahwa optimasi query merupakan sebuah
prosedur yang dilakukan untuk meningkatkan strategi evaluasi query, sehingga
meghasilkan query yang lebih efektif.
Tujuan dari optimasi query adalah untuk menemukan jalur akses yang termurah untuk
meminimalkan total waktu yang digunakan pada saat pemrosesan query. Optimasi
query mencakup beberapa teknik, seperti transformasi query ke dalam bentuk logika
yang sama, memilih jalur akses yang optimal dan memaksimalkan penyimpanan data
pada database.
4) Evaluasi query
Setelah ketiga proses di atas berhasil dilaksanakan, maka akan dilakukan proses
evaluasi query. Pada proses ini, sistem basis data akan memplanning kerja yang akan
dilakukan terhadap query tersebut. Jika data yang dimaksud ada pada database, maka
sistem basis data akan melakukan planning query yang tergantung pada kolom dan
tabel dari data yang akan ditampilkan (misalkan besar datanya), mengeksekusi query

tersebut, kemudian menampilkan hasilnya. Sebaliknya, jika data yang dicari tidak ada,
maka sistem basis data tidak perlu melaksanakan query dan akan menampilkan pesan
bahwa data yang dimaksud tidak ada dalam database.
Metode yang digunakan dalam evalusi query diantaranya adalah :

Materialisasi
Hasil operasi disimpan dalam tabel temporer, kemudian digunakan untuk
evaluasi operasi pada level berikutnya.

Pipeline
Meminimalisasi atau mereduksi tabel temporer.

2.2.

Estimasi Biaya Query


Dalam sebuah sistem basis data, semakin banyak pekerjaan yang bisa kita lakukan

dalam data pada memori maka semakin baik sistem basis data tersebut. Beberapa komponen
biaya yang perlu dipertimbangkan, yaitu :
1. Biaya akses ke penyimpanan sekuder (harddisk).
2. Biaya penyimpanan untuk menyimpan hasil query.
3. Biaya perhitungan, yang termasuk di dalamnya yaitu : CPU, transfer memori, dan
lainnya yang diperlukan untuk melakukan operasi di memori.
4. Biaya komunikasi untuk protokol data di sekitar jaringan, misalnya : dalam database
terdistribusi atau client/server.
Pada umumnya, biaya atau cost diukur sebagai total waktu yang dibutuhkan untuk
menyelesaikan eksekusi sebuah query. Banyak faktor yang menentukan besarnya biaya,
diantaranya adalah kecepatan akses disk, CPU, sampai komunikasi jaringan. Umumnya,
kecepatan akses disk merupakan faktor utama yang menjadi penentu besanya biaya dan
biasanya relatif mudah untuk diperkirakan. Kecepatan akses disk dapat diukur dengan :
a. Number of seeks * average-seek-cost
b. Number of blocks read * average-block-read-cost
c. Number of blocks written * average-block-write-cost
Perlu diketahui pula bahwa biaya atau cost yang digunakan untuk menulis sebuah
blok nilainya lebih besar daripada biaya untuk membaca blok. Hal tersebut disebabkan

karena setelah menulis, data akan dibaca lagi untuk memastikan data yang ditulis berhasil
(formatnya sudah benar).
Langkah-langkah dalam proses optimasi berdasarkan biaya :
1.

Menghitung semua rencana yang sah (menyebutnya P 1 ... P n ) di mana setiap


rencana mengandung seperangkat operasi O 1 ... O k

2.

Pilih rencana

3.

Untuk setiap operasi O i dalam rencana, dihitung rutinitas akses yang terjadi

4.

Untuk setiap Access yang memungkinkan rutinitas operasi O I, diperkirakan


biayanya. Pilih rutinitas akses dengan biaya terendah.

5.

Ulangi langkah 2 sampai rutinitas akses yang efisien telah dipilih untuk setiap
operasi. Jumlah biaya setiap rutinitas akses untuk menentukan total biaya untuk
rencana.

6.

Ulangi langkah 2 sampai 5 untuk setiap rencana dan memilih rencana dengan
total biaya terendah.

Contoh :
Asumsikan 3 operasi (satu proyeksi, dua pilihan dan bergabung) : P1 S1 S2 dan J1. Secara
umum gambarannya adalah menentukan pilihan, kemudian bergabung dan akhirnya proyeksi.
1. Menghitung rencana
Perhatikan ada dua orderings seleksi yang mungkin sehingga dua rencana menjadi :
Rencana A: S1 S2 J1 P1
Rencana B: S2 S1 J1 P1
2. Pilih rencana (mari kita mulai dengan Plan A).
3. Untuk setiap operasi menghitung rutinitas akses :
Operasi S1 memiliki kemungkinan rutinitas akses yaitu : Cari Linear dan pencarian
biner.
Operasi S2 memiliki kemungkinan rutinitas akses yaitu : Cari Linear dan terindeks
search.
Operasi J1 memiliki kemungkinan rutinitas akses yaitu : Nested loop bergabung dan
diindeks bergabung.
4. Pilih yang paling biaya akses rutinitas untuk setiap operasi :

Operasi S1 biaya akses rutinitas pencarian biner dengan biaya setidaknya 10 blok.
Operasi S2 biaya akses rutinitas pencarian linear dengan biaya setidaknya 20 blok.
Operasi J1 biaya akses rutinitas diindeks bergabung dengan biaya setidaknya 40 blok.
5. Jumlah biaya untuk setiap rutinitas akses adalah: 10 + 20 + 40 = 70. Jadi total biaya
untuk Rencana A adalah 70.
6. Ulangi langkah 2 sampai langkah 5 untuk Plan B, yaitu :
Operasi S2 biaya akses rutinitas pencarian biner dengan biaya setidaknya 20 blok.
Operasi S1 biaya akses rutinitas diindeks pencarian dengan biaya setidaknya 5 blok.
Operasi J1 biaya minimal akses rutinitas diindeks bergabung dengan biaya setidaknya
30 blok.
7. Jumlah biaya untuk setiap rutin akses adalah : 20 + 5 + 30 = 55 Jadi total biaya untuk
Rencana B adalah 55.
Hasil akhir : Plan B akan menjadi rencana yang terbaik, sehingga Plan B akan
dijadikan generator kode query.

2.3.

Operasi Join
Join merupakan sebuah operasi yang digunakan untuk mendapatkan data gabungan

dari dua tabel atau lebih, dengan cara mengakses setiap data tabel secara individu
berdasarkan kondisi yang diberikan pada query, menggabungkan hasilnya, kemudian
ditampilkan. Syarat penggunaan join adalah harus terdapat hubungan atau keterikatan
diantara tabel-tabel yang dijadikan sumber data bagi kolom-kolom yang hendak ditampilkan
dengan menggunakan operasi join. Keterikatan yang dimaksud adalah bahwa kolom-kolom
tersebut harus memiliki nilai dan tipe data yang sama.
Operasi join dimungkinkan dalam basis data dengan model relasional. Sebaliknya,
join juga diperlukan dalam model data tersebut. Secara umum, operasi join terbagi menjadi 3
jenis, yaitu : cartesian product, join condition dan outer join.
1) Cartesian product
Cartesian product merupakan operasi join yang akan menggabungkan dua tabel atau
lebih tanpa melibatkan kondisi tertentu. Contoh :
Tabel mahasiswa
nim
DBC 113 063

nama
Lilis Friennawati

DBC 113 067

Loure Florentina

Tabel mata_kuliah
kode_mk
A-01
B-02

matkul
Basis Data I
Sistem Berkas

Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :
SELECT * FROM mahasiswa, mata_kuliah;
Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
DBC 113 063
DBC 113 067
DBC 113 067

nama
Lilis Friennawati
Lilis Friennawati
Loure Florentina
Loure Florentina

kode_mk
A-01
B-02
A-01
B-02

matkul
Basis Data I
Sistem Berkas
Basis Data I
Sistem Berkas

2) Join condition
Join condition merupakan operasi penggabungan dari dua atau beberapa tabel dengan
melibatkan kondisi tertentu.

Equi-join/simple join/inner join


Merupakan operasi penggabungan dari dua atau lebih tabel yang dilakukan dengan
cara menyamakan nilai kolom pada tabel yang pertama dengan nilai kolom pada tabel
yang lainnya. Dengan kata lain, operasi join ini menggunakan operator sama dengan
(=) sebagai kondisinya. Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067

nama
Lilis Friennawati
Loure Florentina

kode_mk
A-01
B-02

Tabel mata_kuliah
kode_mk
matkul
A-01
Basis Data I
B-02
Sistem Berkas
Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :

SELECT m.nim, m.nama, m.kode_mk FROM mahasiswa m mata_kuliah k


WHERE m.kode_mk = k.kode_mk;
Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
DBC 113 063

nama
Lilis Friennawati
Lilis Friennawati

kode_mk
A-01
B-02

matkul
Basis Data I
Sistem Berkas

Non equi-join
Merupakan operasi join dengan menggunakan operator selain sama dengan (=),
misalnya operator <, >, >=, =>, dan lainnya sebagai kondisinya. Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067

nama
Lilis Friennawati
Loure Florentina

nilai
85
90

Tabel mata_kuliah
kode_mk
A-01
B-02

matkul
Basis Data I
Sistem Berkas

Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :
SELECT

FROM

mahasiswa,

mata_kuliah

WHERE

mahasiswa.nilai

BETWEEN 80 AND 89;


Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
DBC 113 063

nama
Lilis Friennawati
Lilis Friennawati

nilai
85
85

kode_mk
A-01
B-02

matkul
Basis Data I
Sistem Berkas

Self join
Merupakan operasi join dimana sebuah tabel akan digabungkan dengan tabel itu
sendiri (dengan dirinya sendiri), dengan asumsi bahwa tabel tersebut muncul dua kali
pada klausa from dan masing-masing harus diikuti dengan nama aliasnya.
Penggunaan nama alias ini wajib digunakan untuk menghindari terjadinya ambiguitas,

karena semua nama kolom pada tabel pertama juga ada pada tabel yang kedua.
Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067
DBC 113 123

nama
Lilis Friennawati
Loure Florentina
Sena Hartani

dosen_pa
Marhayu
Marhayu
Licantik

Jika kita ingin menampilkan data mahasiswa yang memiliki nama dosen PA yang
sama. Query yang digunakan adalah sebagai berikut :
SELECT a.dosen_pa, b.nim, b.nama FROM mahasiswa a join mahasiswa b ON
a.dosen_pa = b.nama_dosen_pa WHERE a.dosen_pa = Marhayu;
Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
DBC 113 067

nama
Lilis Friennawati
Loure Florentina

nama_dosen_pa
Marhayu
Marhayu

3) Outer join
Outer join merupakan tipe operator join yang mencari referensi data dari suatu tabel
(tabel sumber) ke tabel lainnya dengan tidak menghilangkan data sumber pada tabel
yang pertama meskipun referensi (pada tabel yang lainnya) tidak ditemukan. Dengan
kata lain, operator ini akan tetap menampilkan baris data dari tabel yang pertama atau
dari tabel yang kedua, atau dari kedua tabel tersebut meskipun tidak terdapat
pasangan baris data tersebut dari tabel yang dijoinnya.
Untuk menggunakan operator jenis ini, kita perlu memperhatikan hal-hal seperti
berikut :
a) Perlu dibedakan antara tabel yang menjadi sumber dengan tabel yang menjadi
referensi. Hal ini ditentukan dengan cara menspesifikasikan kedudukan tabel
sumber apakah letaknya di kiri (left) atau di kanan (right).
b) Jika tidak ada data dari tabel referensi yang cocok dengan kondisi join, maka
data dari tabel sumber tetap akan ditampilkan, tetapi kolom-kolom yang
harusnya diisi dengan data dari tabel referensi akan diberikan nilai NULL.

Left outer join

Outer join dengan tipe ini merupakan penggabungan dua tabel atau lebih, dimana
semua data pada tabel pertama (tabel yang terletak di sebelah kiri) akan ditampilkan,
sedangkan data pada tabel kedua (tabel yang terletak di sebelah kanan) yang kosong
akan ditampilkan dengan nilai NULL. Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067
DBC 113 123

nama
Lilis Friennawati
Loure Florentina
Sena Hartani

nip_dosen_pa
123
(NULL)
125

Tabel dosen
nip
123
124
125

nama
Marhayu
Enny
Licantik

Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :
SELECT nim, m.nama AS nama mahasiswa, d.nama AS nama dosen PA
FROM mahasiswa m left join dosen d ON m.nip_dosen_pa = d.nip;
Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
DBC 113 067
DBC 113 123

nama mahasiswa
Lilis Friennawati
Loure Florentina
Sena Hartani

nama dosen PA
Marhayu
(NULL)
Licantik

Right outer join


Kebalikan dari left outer join, outer join dengan tipe ini akan menampilkan seluruh
data pada tabel kedua (tabel yang terletak di sebelah kanan), sementara tabel pertama
(tabel yang terletak di sebelah kiri) yang kosong akan ditampilkan dengan nilai
NULL. Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067
DBC 113 123

nama
Lilis Friennawati
Loure Florentina
Sena Hartani

nip_dosen_pa
123
(NULL)
125

Tabel dosen
nip
123
124
125

nama
Marhayu
Enny
Licantik

Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :
SELECT nim, m.nama AS nama mahasiswa, d.nama AS nama dosen PA
FROM mahasiswa m right join dosen d ON m.nip_dosen_pa = d.nip;
Maka dihasilkan tabel seperti berikut ini :
nim
DBC 113 063
(NULL)
DBC 113 123

nama mahasiswa
Lilis Friennawati
(NULL)
Sena Hartani

nama dosen PA
Marhayu
Enny
Licantik

Full outer join


Full outer join merupakan gabungan dari left outer join dan right outer join. Outer join
dengan tipe ini akan menampilkan baris hasil yang didapat dari semua baris pada tabel
pertama (tabel yang terletak di sebelah kiri) dan semua baris pada tabel kedua (tabel
yang terletak di sebelah kanan) walaupun ada ketidaksamaan nilai pada kolom yang
dijoin. Contoh :
Tabel mahasiswa
nim
DBC 113 063
DBC 113 067
DBC 113 123

nama
Lilis Friennawati
Loure Florentina
Sena Hartani

nip_dosen_pa
123
(NULL)
125

Tabel dosen
nip
123
124
125

nama
Marhayu
Enny
Licantik

Jika kita ingin menampilkan tabel dengan menggunakan query sebagai berikut :
SELECT nim, m.nama AS nama mahasiswa, d.nama AS nama dosen PA
FROM mahasiswa m full join dosen d ON m.nip_dosen_pa = d.nip;

Maka dihasilkan tabel seperti berikut ini :


nim
DBC 113 063
DBC 113 067
DBC 113 123

2.4.

nama mahasiswa
Lilis Friennawati
Loure Florentina
Sena Hartani

nama dosen PA
Marhayu
Enny
Licantik

Evalusi Ekspresi
Dalam sistem basis data, evaluasi ekspresi merupakan suatu ekspresi yang memiliki

potensi untuk diubah menjadi ekspresi ekuivalen yang dapat dieksekusi secara lebih efisien.
Proses ini disebut sebagai optimasi query. Query dievaluasi dengan menggunakan contoh
input relasi dan menghasilkan contoh output relasi.
Dalam aplikasi pengolah database MySQL misalnya, fungsi logika merupakan fungsi
yang disediakan untuk melakukan evaluasi suatu ekspresi. Dengan berdasarkan nilai ekspresi
inilah akan dihasilkan suatu nilai yang akan ditampilkan pada hasil query. Berikut adalah
fungsi built-in yang disediakan untuk melakukan evaluasi ekspresi :

IF(ekspresi1, ekspresi2, ekspresi3)


Fungsi if() mengevaluasi ekspresi1, jika ekspresi1 bernilai benar(true) maka ekspresi2
akan menjadi hasil, jika ekspresi1 bernilai salah (false) maka ekspresi3 akan menjadi
hasilnya. Contoh :
mysql> SELECT IF(1,"Benar","Salah");
IF(1,"Benar","Salah")
| Benar |
1 row in set (0.00 sec)

IFNULL(ekspresi1, ekspresi2)
Fungsi ini akan mengevaluasi ekspresi1, jika ekspresi1 berisi NULL, maka ekspresi2
menjadi hasilnya, sedangkan jika ekspresi1 bukan NULL maka ekspresi1 itu sendiri yang
menjadi hasilnya. Contoh :
mysql> SELECT IFNULL(gol,"6A") FROM gaji WHERE tunj_gol="1200000";
Empty set (0.00 sec)

ISNULL(ekspresi)

Menghasilkan nilai 1 jika ekspresi bernilai NULL, nilai 0 jika ekspresi salah. Contoh :
mysql> SELECT ISNULL(gol) FROM gaji WHERE tunj_gol="1200000";
Empty set (0.00 sec)
2.5.

Interpretasi Query
Secara umum, interpretasi merupakan penafsiran atau penilaian terhadap sesuatu.

Dalam sistem basis data, interpretasi query dapat dikatakan sebagai sebuah teknik untuk
membaca query (perbaris) yang diberikan oleh user, kemudian mengeksekusi query tersebut
perbaris pula. Jika ditemukan kesalahan dalam penulisan query, maka di baris query yang
terdapat kesalahan itulah program akan dihentikan. Program yang melakukan tugas ini
disebut interpreter. Interpretasi query berkaitan dengan proses evaluasi query.
Interpretasi query dalam sebuah sistem basis data dianggap penting, karena
interpretasi query inilah yang akan mengidentifikasi dan menilai :

Apakah query yang diberikan oleh user dapat dieksekusi?


Dalam hal ini, akan dinilai apakah format penulisan query sudah sesuai dengan
aplikasi pengolahan basis data ataupun sistem basis data yang digunakan. Jika
penulisan query tepat, maka query akan dieksekusi dan data yang diminta akan
ditampilkan. Sebaliknya, jika query yang diberikan tidak sesuai maka aplikasi akan
menampilkan pesan error.
Error pada sebuah query bisa saja terjadi karena format penulisan yang salah, ada
kekurangan dalam penulisan query, atau query yang digunakan tidak cocok atau tidak
sesuai dengan aplikasi sistem basis data yang digunakan (tidak semua fitur/perintah
berlaku pada sistem basis data yang digunakan).

Apa data yang dimaksud pada query tersebut ada?


Jika query yang diberikan user sudah tepat, maka akan dilakukan pencarian terhadap
data yang dimaksud pada query tersebut. Jika data yang dicari ada pada database,
maka data akan ditampilkan. Sedangkan jika data yang dimaksud tidak ditemukan
pada database, maka akan ditampilkan pesan bahwa data yang dicari tidak dapat
ditemukan/tidak ada dalam database.

BAB III
PENUTUP

3.1 Kesimpulan
Sistem manajemen basis data merupakan sebuah perangkat lunak yang
memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses ke
dalam sebuah database. Sistem manajemen basis data juga menerapkan mekanisme
pengamanan data, pemakaian data secara bersama, keakuratan data, dan sebagainya.
Sistem ini dirancang untuk memproses berbagai data dengan beberapa referensi data
yang sama. Umumnya data-data yang disimpan dalam sebuah database memiliki
hubungan antara satu dengan yang lainnya.
Sebuah sistem manajemen basis data dikatakan efisien jika sebuah data bases
dapat diakses oleh berbagai aplikasi tanpa merubah isi/struktur di dalam data base
tersebut. Di dalam sebuah sistem manajemen basis data yang efisien, terdapat sejumlah
query pembangun data base dimana optimasi query sangat diperlukan di dalamnya untuk
mendapatkan hasil query yang paling efisien dan tepat guna.

3.2 Saran
Dalam membuat sebuah manajemen sistem basis data yang efisien dan tepat guna,
diperlukan ketelitian dalam membuat sebuah sistem tersebut baik dari segi biaya dan dari
segi pemrograman databasesnya. Diharapkan bagi para programmer, agar lebih
memperhatikan kegunaan dari sebuah databases, bentuk databases, tingkat keamanan
databases, biaya pembuatan databases dan mengaplikasikannya ke dalam manajemen
sistem basis data yang efisien dan tepat guna, serta nyaman digunakan oleh para
pengguna (user), sehingga para pengguna tidak khawatir dalam menggunakan
manajemen sistem basis data tersebut.

DAFTAR PUSTAKA

Finandhita, Alif. 2012. Sistem Basis Data Pemrosesan Query. Bandung : UNIKOM.
Solihin, Firdaus. 2008. Join. Madura : Universitas Trunojoyo.
Ayunita, Dian. 2011. Pengantar Dasar Database 2. [Online]. Tersedia : http://
dianayun30207013.blogspot.com/2011/01/pengantar-dasar-database-2.html. Diakses :
04 Juni 2015, 12:43:25 WIB.
Hendrolim. 2007. Langkah-Langkah Pemrosesan Query. [Online]. Tersedia : https://
hendrolim.wordpress.com/2007/12/23/langkah-langkah-pemrosesan-query/. Diakses :
04 Juni 2015, 19:18:17 WIB.
Novhard. 2007. Steps in Query Processing. [Online]. Tersedia : https://novhard.wordpress.
com/2007/08/31/steps-in-query-processing/. Diakses : 04 Juni 2015, 12:35:35 WIB.
Roses, Alit. 2014. Pengaksesan DBMS Terhadap Query. [Online]. Tersedia : http://
painfulbyroses.blogspot.com/2014/02/pengaksesan-dbms-terhadap-query.html.
Diakses : 04 Juni 2015, 12:33:41 WIB.

Anda mungkin juga menyukai