You are on page 1of 81

Strategi Perancangan

Dan
Pengolahan Basis Data

Kusrini, M.Kom.

Penerbit ANDI Yogyakarta


e-Book Hak Cipta 2007

KATA PENGANTAR

Bismillahirrohmanirrokhim. Puji syukur penulis hatur kehadirat Allah SWT,


atas limpahan rahmat-nya sehingga buku Strategi Perancangan dan Pengolahan
Basis Data dapat terwujud. Buku ini dapat ditulis dengan baik atas dukungan dari
berbagai pihak. Untuk itu penulis sampaikan rasa terima kasih kepada seluruh pihak
yang telah memberi dukungan.

Buku ini didesain sedikit berbeda dari buku-buku lainnya, karena buku ini
selain memaparkan basis data secara teori juga memberikan contoh-contoh praktis
dan implementasi yang sesungguhnya. Kasus yang penulis angkat merupakan contoh
nyata kasus basis data yang memang penulis gunakan dalam pengembangan system
informasi.

Harapan penulis, biku ini dapat memberi tuntunan konseptual yang praktis
basi mereka, baik praktisi maupun mahasiswa dalam memahami basis data. Buku ini
digunakan sebagai buku pegangan bagi para pengajar, baik jurusan Manajemen
informatika, Teknik Informatika, maupun Ilmu Komputer.

Penulis menyadari, isi maupun cara penyampian buku ini masih jauh dari
sempurna. Untuk itu penulis mengharapkan saran dan kritik yang bersifat membangun
dari para membaca sehingga penulis bias mengembangangkan buku ini menjadi lebih
baik.

Terima kasih.

Yogyakarta, September 2006

Penulis

-1-
e-Book Hak Cipta 2007

DAFTAR ISI

KATA PENGANTAR.................................................................................... iii


DAFTAR ISI................................................................................................... V
BAB I KONSEP DASAR BASIS DATA.................................................. 1
A. Pendahuluan............................................................................. 1
B. Definisi Basis Data.................................................................. 2
C. Tujuan Basis Data.................................................................... 2
D. Manfaat/Kelebihan Basis Data................................................ 5
E. Operasi Dasar Basis Data........................................................ 9
F. Soal Latihan............................................................................. 10
BAB II KONSEP DASAR SISTEM BASIS DATA................................... 11
A. Sistem ...................................................................................... 11
B. Sistem Basis Data..................................................................... 11
C. Soal Latihan............................................................................. 13
BAB III ARSITEKTUR SISTEM BASIS DATA.................................... 15
A. Arsitektur Basis Data............................................................... 15
B. Soal Latihan.............................................................................. 16
BAB IV MODEL-MODEL DATA............................................................. 17
A. Model-Model Data................................................................... 17
B. Soal Latihan............................................................................. 20
BAB V ENTITY RELATIONSHIP DIAGRAM.................................... 21
A. Konsep Entity Relationship Diagram...................................... 21
B. Tahap Pembuatan Entity Relationship Diagram..................... 25
C. Soal Latihan............................................................................ 31
BAB VI IMPLEMENTASI ENTITY RELATIONSHIP DIAGRAM.. 33
A. Tahap Implementasi................................................................ 33
B. Tipe Data File.......................................................................... 35
C. Soal Latihan............................................................................. 36
BAB VII NORMALISA DAN DENOMARLISASI................................. 39
A. Normalisa................................................................................ 39
B. Denomarlisa............................................................................ 46

-2-
e-Book Hak Cipta 2007

C. Soal Latihan............................................................................ 47
BAB VIII BAHASA BASIS DATA............................................................ 49
A. Bahasa Basis Data.................................................................. 49
B. Bahasa Basis Data untuk Mengimplementasikan Rancangan
Basis Data............................................................................... 50
C. Definisi Skema dalam SQL.................................................... 51
D. Soal Latihan............................................................................ 61
BAB IX MANIPULASI DATA............................................................... 63
A. Bahasa Basis Data.................................................................. 63
B. Modifikasi Data….................................................................. 64
C. Penghapusan Data................................................................... 67
D. Soal Latihan…….................................................................... 69
BAB X MENGEKSEKUSI DATA........................................................ 71
A. Struktur Data…….................................................................. 74
B. Operasi Himpunan................................................................. 77
C. Fungsi Agregasi…................................................................. 79
D. Soal Latihan……................................................................... 82
BAB XI QUERY ANTAR TABEL……………………………………. 83
A. Join Anta Tabel….................................................................. 83
B. Query dengan Dua Buah Tabel.............................................. 83
C. Menggunakan Alias............................................................... 84
D. Perkalian Kartesian................................................................ 84
E. Equijoin................................................................................. 85
F. Self Join………..................................................................... 85
G. Inner Join dan Quter Join....................................................... 86
H. Query Bersarang (Nested Query............................................ 89
I. Keanggotaan Himpunan......................................................... 89
J. Perbandingan Himpunan........................................................ 89
K. Soal Latihan…….................................................................. 90
DAFTAR PUSTAKA................................................................................. 91
GLOSSARIUM………………………………………………………….. 93

-3-
e-Book Hak Cipta 2007

BAB I
KONSEP DASAR BASIS DATA

A. PENDAHULUAN
Pemrosesan basis data sebagai perangkat andalan sangat diperlukan oleh
berbagai institusi dan perusahaan. Dalam pengembangan sstem informasi diperlukan
basis data sebagai media penyimpanan data. Kehadiran basis data dapat meningkatkan
daya saing perusahaan tersebut.
Basis data dapat mempercepat upaya pelayanan kepada pelanggan,
menghasilkan informasi dengan cepat dan tepat sehingga membantu pengambilan
keputusan untuk segera memutuskan suatu masalah berdasarkan informasi yang ada.
Banyak aplikasi yang dibuat dengan berlandaskan pada basis data antara lain:
semua transaksi perbankan, aplikasi pemesanan dan penjadwalan penerbangan, proses
regristasi dan pencatatan data mahasiswa pada perguruan tinggi, aplikasi pemrosesan
penjualan, pembelian dan pencatatan data barang pada perusahaan dagang, pencatatan
data pegawai beerta akrifitasnya termasuk operasi penggajian pada suatu perusahaan,
dan sebagainya.
Beberapa informasi pada perusahaan retail seperti jumlah penjualan, mencari
jumlah stok penjualan, mencari jumlah stok yang tersedia, barang apa yang paling
lakudijual pada bulan ini, dan berapa laba bersih perusahaan dapat diketahui dengan
mudah dengan basis data.
Pada perpustakaan, adanya aplikasi pencarian data buku berdasarkan judul,
pengarang atau kriteria lain dapat mudah dilakukan dengan basis data. Pencarian data
peminjam yang terlambat mengembalikan juga mudah dilakukan sehingga bisa dibuat
aplikasi pembuatan surat berdasarkan informasi yang tersedia.
Dengan memanfaatkan teknologi jaringan, kemampuan basis data dapat dapat
dioptimalkan. Misalnya transaksi antar cabangpada sebuah perbankan secara online.
Begitu banyak yang dapat diperoleh dengan pemanfaatan basis data. Basis
data dapat meningkatkan daya guna perangkat computer yang mungkin tadinya hanya
untuk keperluan game atau pengetikan dengan aplikasi office.

-4-
e-Book Hak Cipta 2007

B. DEFINISI BASIS DATA


Basis data adalah kumpulan data yang saling berelasi. Data sendiri merupakan
fakta mengenai obyek, orang, dan lain-lain. Data dinyatakan dengan nilai
(angka,deretan karakter, atau symbol).
Basis data dapat didefinisikn dalam berbagai sudut pandang seperti berikut:
1. Himpunan kelompok data yang saling berhubungan yang diorganisasikan
sedemikian rupa sehingga kelak dapat dimanfaatkan dengan cepat dan
mudah.
2. Kumpulan data yang saling berhubungan yang disimpan secara bersama
sedemikian rupa tanpa pengulangan (redundancy) yang tidak perlu, untuk
memenuhi kebutuhan.
3. Kumpulan file/table/arsip yang saling berhubungan yang disimpan dalam
media penyimpanan elektronik.

C. TUJUAN BASIS DATA


Basis data bertujuan untuk mengatur data sehingga diperoleh kemudahan,
ketepatan, dan kecepatan dalam pengambilan kembali. Untuk mencapai tujuan, syarat
sebuah basis data yang baik adalah sebagai berikut;
1. Tujuan adanya redundansi dan inkonsistensi data
Redudansi terjadi jika suatu informasi disimpan di beberapa tempat. Misalnya, ada
data mahasiswa yang memuat NIM, nama, alamat, dan atribut lainnya, sementara
kita punya data lain tentang data KHS mahasiswa yang isinya yang terdapat NIM,
nama, mata kuliah, dan nilai. Pada ku\edua data tersebut kita tempat ada atribut
nama, seperti digambarkan dalam Tabel 1.1 dan Tabel 1.2 berikut:

Tabel 1.1 Mahasiswa


Mahasiswa
NIM Nama Alamat
101 Agung Klaten
102 Ratna Bantul

-5-
e-Book Hak Cipta 2007

Tabel 1.2 KHS


KHS
NIM Nama Mata Kuliah Nilai
102 Ratna Basis Data A
101 Agung Sruktur Data C
102 Endang Struktur Data B
102 Endang Agama A

Jika terjadi keadaan seperti pada Tabel 1.1 dan Tabel 1.2, informasi nama
seorang mahasiswa disimpan diberbagai tempat. Maka data tersebut diatas masih
mengandung redudansi yang harus dihindari pada perancangan dasis data.
Akibat dari redudansi adalah inkonsistensi data atau data yang tidak
konsisten. Sebagai contoh, perhatikan table 1.1 dan Tabel 1.2. pada table
mahasiswa, NIM 102 bernama ratna pada baris pertama, tetapi pada baris ke 3 dan
4 nama endang. Jelas informasi ini menyesatkan.
Redudansi juga mungkin terjadi pada table yang sama. Contoh lain dari
redundasi yang berakibat pada inkonsistensi seperti itu yaitu pada data Pembelian,
dimana pada data tersebut disimpan informasi jumlah pembelian, harga satuan,
dan harga total. Misalnya terjadi jumlah pembelian 5, harga satuan 1000, dan
harga total 7000. padahal diketahui bahwa harga total merupan hasil perkalian dari
jumlah pembelian dengan harga satuan. Informasi ini juga menyesatkan. Kita tidak
tahu informasi mana yang dapat dipercaya.

2. Kesulitan Pengaksesan Data


Basis data memiliki fasilitas untuk melakuakan pencarian informasi
dengan menggunakan Query taupun dari tool untik melihat tabelnya. Dengan
fasilitas ini. Kita bias secara langsung melihat data dari software DBMS-nya.
Selain itu, baiss data bias dihubungkan dengan program aplikasi sehingga
memudahkan pengguna dalam mengakses informasi. Misalnya program aplikasi
untuk kasir yang terhubung dengan basis data . pengguna cukup mengguna
fasilitas pencarian ataupun laporan. Yang tersedia pada program aplikasi untuk
mendapatkan informasi stok, laporan penjualan, dan lain-lain.

-6-
e-Book Hak Cipta 2007

Dalam basis data, informasi yang diperolah dari kumpulan data bisa berupa
keseluruhan data, sebagai data, data denga filter tertentu, data yang terurut,
ataupun data summary.
Sebagai contoh sederhana ketika kita ingin mencatat data alamat dan
telepon dari kolega kita. Sebagai orang akan menggunakan buku alamat. Metode
pencatat dilakukan dilakukan dengan menuliskan data setelah catatan terakhir.
Ketika kita menginginkan informasi alamat seseorang kita akan mencari karena
informasi yang tersaji tidak terurut.
Ada juga orang mencatat dengan mengelompokan nama berdasarkan
abjad. Hal ini akan lebih mempermudah pencarian karena kita tidak perlu
membaca keseluruhan data, tetapi cukup dalam satu kelompok saja. Tapi masalah
baru muncul ketika jumlah data untuk sekelompokan data abjad teretentu telalu
banyak sedangkan kelompok abjad yang lain masih terlalu sedikit. Dalam metode
ini, ada banyak ruang tidak terpakai jika memberikan ruang yang sama untuk
setiap kelompok. Dalam hal pencarian, kesulitan akan kita temui ketika informasi
yang kita ingin cari dengan kata kunci sebagagian namanya. Misalnya kita akan
mencari alamat Anto, sementara yang tercatat dalam buku catatan adalah
Mardianto. Tentu saja kita tidak akan dapat menemukannya dalam kelompok data
dengan huruf depan A. selain itu, tidak selamanya kata kunci yang diketahui
adalah dari nama, tetapi bisa saja yang diketahui adalah nomer teleponnya,
sedangkan yang ingin kita cari adalah alamat dan namanya. Hal ini merupakan
masalah baru dari pencatatan data dengan buku.
Basis data bisa memberikan solusi terhadap permasalahan-permasalahan
tersebut diatas.

3. Multiple User
Basis data memungkinkan pengguna data bersama-sama oleh banyak
pengguna pada saat yang bersamaan atau pada saat yang berbeda. Dengan
meletakkan basis data pada bagian server yang bisa diakses kesemua pengguna
dari banyak klient, kita sudah menyediakan akses kesemua pengguna dari
computer klient ke sumber informasi yaitu basis data. Tentu saja pengaksesan oleh
pengguna-pengguna ini disesuaikan dengan hak aksesnya. Misalnya sebuah
perguruan tinggi memiliki data tentang mahasiswa, pembayaran, dan lain-lain
yang diletakan dalam sebuah basis data. Bagian Akademi akan bisa mengakses

-7-
e-Book Hak Cipta 2007

data-data akademi mahasiswa, Bagian Keuangan akan diijinkan mengakses data


pembayaran mahasiswa, sementara mahasiswa hanya bisa melihat status
akademi/keuangan yang berhubungan dengan dirinya saja. Hal ini sangat
dimungkinkan dengan penyimpanan data dalam basis data.

D. MANFAAT/KELEBIHAN BASIS DATA


Banyak memanfaat yang dapat kira peroleh dengan menggunakan basis data.
Manfaat/kelebihan basis data diantaranya adalah:
1. Kecepatan dan kemudahan (speed)
Dengan menggunakan basis data pengambilan informasi dapat dilakukan
dengan cepat dan mudah. Basis data memiliki kemampuan dalam
mengelompokan, mengurutkan bahkan perhitungan dengan metematika. Dengan
perancangan yang benar, maka penyajian informasi akan dapat dilakukan dengan
cepat dan mudah.

2. Kebersamaan pemakai
Sebuah basis data dapat digunakan oleh banyak user san banyak aplikasi.
Untuk data-data yang diperlukan oleh banyak orang/bagian. Tidak perlu dilakukan
pencatatan dimasing-masing bagian, tetapi cukup dengan satu basis data untuk
dipakai bersama. Misalnya data mahasiswa dalam suatu perguruan tinggi,
dibutuhkan oleh banyak bagian, diantaranya: bagian akademik, bagian keuangan,
bagian kemahasiswaan, dan perpustakaan. Tidak harus semua bagian ini memiliki
catatan dan semua bagian bisa mengakses data tersebut sesuai dengan
keperluannya.

3. Pemusatan control data


karena cukup dengan satu basis data unutk banyak keperluan, pengontrolan
terhadap data juga cukup dilakuan di satu tempat saja. Jika ada perubahan data
alamat mahasiswa misalnya, maka tidak perlu kita meng-update semua data
dimasing-masing bagian tetapi cukup hanya disatu basis data.

4. Efesiensi ruang penyimpanan (space)


Dengan pemakain bersama, kita tidak perlu menyediakan tempat
penyimpanan diberbagai tempat, tetapi cukup satu saja sehingga ini akan

-8-
e-Book Hak Cipta 2007

menghemat ruang penyimpanan data yang dimilikioleh sebuah organisasi. Dengan


teknik perancangan basis data yang benar, kita akan menyederhanakan
penyimpanan sehingga tidak semua data harus disimpan. Misalnya ada data
pengambilan mata kuliah oleh mahasiswa, dimanan yang dicata adalah: NM,
Nama, Jurusan, Alamat, Kode, NamaMatkul dan SKS. Perhatikan Tabel 1.1
tentang data KRS.

Tabel 1.3 KRS


NM Nama Jurusan Alamat Kode Nama Matkul SKS
1 Anto SI Klaten A Agama 3
1 Anto SI Klaten B Bahasa 4
1 Anto SI Klaten C Calculus 2
2 Fika MI Bantul A Agama 3
2 Fika MI Bantul B Bahasa 4
3 Fika MI Bantul C Calculus 2
Jika kita memiliki data 4000 mahasiswa dengan rata-rata setiap mahasiswa
mengambil 5 mata kuliah, maka data seorang mahasiswa akan kita tulis 5 kali dan
data tiap mata kuliah akan ditulis 4000kali. Andaikandata bernilai 1 byte (diabaikan
tipe datanya) maka kita akan membutuhkan ruang penyimpanan sebesar jumlah field
x jumlah mhs x jumlah matkul (7x4000x5 = 140000)
Dengan basis data yang dirancang dengan benar, data ini bisa dibagi menjadi 3,
seperti tampak pada Table 1.2, Table 1.3, dan Tabel 1.4.

Tabel 1.4 Mahasiswa

NM Nama Jurusan Alamat


1 Anto SI Klaten
1 Anto SI Klaten
1 Anto SI Klaten
2 Fika MI Bantul
2 Fika MI Bantul
3 Fika MI Bantul

-9-
e-Book Hak Cipta 2007

Tabel 1.5 Mata kuliah

Kode NamaMatkul Sks


A Agama 3
B Bahasa 4
C Calculus 2

Tabel 1.6 KRS

NM Kode

1 A

1 B

1 C

2 A

2 B

3 C

Kita membutuhkan ruang penyimpanan untuk table mahasiswa seperti


tampakpada table 1.2 sebesar jumlah kolom x jumlah mahasiswa (4 x 4000 = 16000).
Untuk mata kuliah seperti tampak pada table 1.3 sebesar jumlah kolom x jumlah
matkul (3 x 5 = 15). Dan untuk KRS seperti tampak pada table KRS sebesar jumlah
kolom X jumlah mahasiswa X jumlah matkul (2 x 4000 x 5 = 40000).
Dari table 1.2, Tabel 1.3, dan Tabel 1.4, dibutuhkan sebesar 16000+15+40000
= 56015 byte. Bila dibandingkan dengan penyimpanan data pada table 1.1 sebesar
140000, jelas relasi antar table pada basis data bias memperkecil rungan
penyimpanan.

5. Keakuratan (Accuracy)
Penerapan secara ketat aturan tipe data, domain data, keunikan data,
hubungan antara data, dan lain-lain, dapat menekan keakuratan dalam
pemasukan/penyimpanan data.

- 10 -
e-Book Hak Cipta 2007

6. Ketersediaan (availability)
Dengan basis data kita dapat mem-backup data, memilah-milah data mana
yang masih diperlukan dan data mana yang perlu kita simpan ke tempat lain. Hal
ini mengingat pertumbuhan transaksi suatu organisasi dari waktu ke waktu
membutuhkan media penyimpanan yang semakin besar.

7. Kelengkapan (Completenenss)
8. Keamanan (Security)
Kebanyakan DBMS dilengkapi dengan fasilitas manajemen pengguna
diberikan hak akses yang berbeda-beda sesuai dengan pengguna dan posisinya.
Basis data bisa diberikan passwordnya untuk membatasi orang yang
mengaksesnya.

9. Kemudahan dalam pembuatan program aplikasi baru


Pengguna basis data merupakan bagian dari perkembangan teknologi.
Dengan adanya basis data pembuatan aplikasi bisa memanfaatkan kemampuan
dari DBMS, sehingga pembuatan aplikasi tidak perlu mengurusi penyimpanan
data, tetapi cukup mengatur interface untuk pengguna.

10. Pemakain secara langsung


Basis data memiliki fasilitas untuk melihat datanya secara langsung
dengan tool yang disediakan oleh DBMS. Untuk melihat data, langsung ke tabel
ataupun menggunakan query. Biasanya yang menggunakan fasilitas ini adalah
user yang sudah ahli, atau database administrator.

11. Kebebasan data (Data Independence)


Jika sebuah program telah selesai dibuat, dan ternyata ada perubahan
isi/struktur data. Maka dengan basis data, perubahan ini hanya perlu dilakukan
pada level DBMS tanpa harus membongkar kembali program aplikasinya.

12. User view


Basis data penyediaan pandangan yang berbeda-beda untuk tiap-tiap
pengguna. Misalnya kita memiliki data-data dari perusahaan yang bergerak
dibidang retail. Data yang ada berupa data barang, penjualan, dan pembelian. Ada

- 11 -
e-Book Hak Cipta 2007

beberapa jenis pengguna yang memerlukan informasi terkait dengan data


perusahaan tresebut. Mereka adalah pelanggan, kasir, bagian gudang, bagian
akutansi dan manajer. Tidak semua data boleh diakses oleh semua pengguna.
Misalnya kasir dia hanya boleh berhak melihat informasi nama barang dan harga
jualnya. Sementara itu dia berhak untuk memasukan data penjualan . berbeda
dengan pelanggan yang hanya melihat data keberadaan barang dan harga jual
tetapi tidak berhak memasukan atau merubah data. Sementara itu bagian akutansi
berhak melihat keuntungan dari tiap-tiap barang untuk menganalisa data
akutansinya.
Basis data mampu memberikan layanan organisasi seperti ini.

E. OPERASI DASAR BASIS DATA


Beberapa operasi dasar basis data, yaitu :
1. Pembuatan basis data
2. Penghapusan basis data
3. Pembuatan file/table
4. Penghapusan file/table
5. Pengubahan table
6. Penambahan/pengisian
7. Pengambilan data
8. Penghapusan data

F. SOAL LATIHAN
1. Jelaskan karasteristik dari basis data!
2. Salah satu tujuan basis data adalah menghilangkan redudansi data. Berikan contoh
kasus terjadinya redudansi data dan jelaskan mengapa redudansi basis data harus
dihindari!
3. Beri penjelasan kelebihan menggunakan basis data dibandingan dengan
menggunakan pencatatan melalui buku atau menggunakan program aplikasi
Microsoft Exel!

- 12 -
e-Book Hak Cipta 2007

BAB II
KONSEP DASAR SISTEM BASIS DATA

A. SISTEM
Sistem adalah sebuah tatanan yang terdiri dari atas sejumlah komponen
fungsional (dengan tugas/fungsi khusus) yang saling berhubungan dan secara
bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu.
Sebgai contoh, system kendaraan terdiri dari komponen starter, komponen
pengapian, komponen penggerak, komponen pengerem, komponen kelistrikan –
speedometer, lampu, dan lain-lain. Komponen-komponen tersebut memiliki tujuan
yang sama, yaitu untuk membuat kendaraan tersebut bias dikendarai dengan nyaman
dan aman.
Contoh lain yaitu system perguruan tinggi, yang terdiri dari dosen, mahasiswa,
kurikulum, dan lain-lain. System ini bertujuan untuk menghasilkan mahasiswa-
mahasiswa yang memiliki kemampuan dibidang ilmunya.

B. SISTEM BASIS DATA


Sistem basis data merupakan perpaduan antara basis data dan system
manajemen basis data (SMBD). Komponen-komponen system basis data meliputu :
1. Perangkat keras(Hardware) sebagai pendukung operasi pengolah data.
Perangkat keras komputer adalah semua bagian fisik komputer. Contoh dari
perangkat keras computer yaitu : mouse, keyboarg, monitor, dan lain-lain.
2. Sistem operasi (Operating system atau perangkat lunak untuk mengolah
basis data.
Sistem operasi merupakan suatu software system yang bertugas untuk melakukan
control dan manajemen hardware serta operasi-operasi dasar sistem termasuk
menjalankan software aplikasi seperti program-program pengolah kata dan
browser web. Secara umum, Sistem Operasi akan melakukan layanan inti umum
tersebut seperti akses ke disk, mamajemen memori, scadulling task, dan antar
muka user. Dengan demiikian masing-masing software tidak perlu lagi
memerlukan tugas-tugas inti umum tersebut, karena tidak dapat dilayani dan
dilakukan oleh Sistem Operasi.

- 13 -
e-Book Hak Cipta 2007

Contoh dari sistem operasi yang sudah ada sekarang ini, yaitu : DOS, Window 98,
Window XP, Window 2000, Window NT, Linux, Macintost, dan lain-lain.

3. Basis data (Database) sebagai inti dari system basis data.


4. Database Management System (DBMS)
DBMS adalah software yang menangani semua akses ke basis data. Secara
konsep apa yang terjasi adalah sebagai berikut :

a. User melakukan pengaksesan basis data untuk informasi yang diperlukannya


menggunakan suatu bahasa manipulasi data, bias any disebut SQl.
b. DBMS menerima request dari user dan menganalisa request tersebut.
c. DBMS memeriksa skema eksternal user, pemetaan eksternal/konseptual,
skema konseptual, pemetaan konseptual/internal, dan struktur penyimpanan.
d. DBMS mengeksekusi operasi-operasi yang diperlukan untuk memenuhi
permintaan user.
Contoh dari DBMS ini yaitu antara lain Microsoft SQL Server 2000, Oracle, MySQL,
Interbase, Paradox, Microsoft Acces, dan lain-lain.

5. Pemakai (User)
Pemakai merupakan orang atau system yang akan mengakses dan merubah isi
basis data. Beberapa jenis penggunaan basis data, yaitu :
a. Programer Aplikasi ; orang yang mengkodekan aplikasi dengan bahasa
pemrograman.
b. User Mahir : orang yang mampu menggunakan basis data secara langsung
dengan menggunakan DBMS.
c. User Umum/End User : orang yang memakai basis data dengan
menggunakan perantara program aplikasi. Misalnya seorang kasir
memasukan data penjualan kedalam basis data dengan menggunakan aplikasi
kasir.
d. User Khusus : bisa berupa sistem lain.

6. Aplikasi lain
Aplikasi lain merupakan software yang dibiat untuk memberikan interface kepada
user sehingga lebih mudahdan terkontrol dalam mengakses basis data. Aplikasi

- 14 -
e-Book Hak Cipta 2007

lain ini merupakan komponen tambahan dalam system basis data yang sifatnya
opsional.

C. SOAL LATIHAN
1. Apa perbedaan basis data dan system basis data?
2. Sebutkan elemen-elemen yang menyusun system basis data!

- 15 -
e-Book Hak Cipta 2007

BAB III
ARSITEKTUR SISTEM BASIS DATA

A. ARSITEKTUR SISTEM BASIS DATA


Arsitektur sistem basis data memberikan kerangka kerja bagi para
pengembang system basis data.
Ada 3 level arsitektur sistem basis data, yaitu :
1. Level Fisik/Internal
Level fisik merupakan level paling rendah yang menggambarkan bagaimana data
disimpan secara fisik. Misalnya kita memiliki data mahasiswa. Pada level fisik
data mahasiswa dipandang dengan memperhatikan bahwa dalam data tersebut ada
atribut Nama yang disimpan pada media penyimpanan (disk) sepanjang 20 byte.
2. Level Konseptual/Logika
Level ini menggambarkan data apa yang disimpan dalam basis data dan hubungan
ini memperhatikan data apa sebenarnya (secara fungsional) disimpan dalam basis
data dan hubungannya dengan data yang lain. Pemakai tidak mempedulikan
kerumitan dalam struktur level fisik lagi. Penggambaran cukup dengan memakai
kotak, garis, dan hubungan secukupnya. Pada level ini biasanya desainer basis
data membuat rancangan dalam bentuk diagram-diagram/model.
3. Level Pandangan Pengguna (User View level)/Eksternal
Level ini merupakan level abraksi data tertinggi yang menggambarkan hanya
sebagaian saja yang dilihat dan dipakai dari keseluruhan database. Hal ini
disebabkan beberapa pengguna database tidak membutuhkan semua ini database.
Yang dimaksud dengan user/pengguna disini adalah programmer, eng user, atau
DBA. Setiap user mempunyai ’bahasa’ yang sesuai dengan kebutuhannya, antara
lain :
a. Programmer : bahasa yang digunakan adalah bahasa pemrograman seperti
C, COBOL, atau PL/I.
b. End User : bahasa yang digunakan adalah bahasa query atau menggunakan
fasilitas yang tersedia pada program aplikasi.
Pada level eksternal ini, user dibatasi pada kemampuan berangkat keras dan perangkat
lunak yang digunakan aplikasi bahasa basis data.

- 16 -
e-Book Hak Cipta 2007

Gambar di bawah ini menunjukan level-level yang ada dalam arsiktektur sistem basis
data.

View level

View 1 View 1 … View n

Dosen

Physical level

Gambar 3.1 Arsiktektur Sistem Basis Data

Abstraksi data dalam arsiktektur sistem basis data memberikan pandangan terhadap
data secara berbeda-beda tergantung dari levelnya. Sebagai contoh pada level user view,
bayangan mengenai data tidak lagi memperhatikan bagaimana data disusun dan disimpan
dalam disk, tetapi secara menyeluruh bagaimana data direpresentasikan sesuai dengan
keadaan yang dihadapi sehari-hari oleh pengguna. Hal ini dimaksudkan menghindari
kerumitan teknik penyimpanan dan pengelolaan data dari pandangan pengguna awam.

B. SOAL LATIHAN
1. jelaskan bagaimana pengguna awam memandang data dalam sistem basis data !
2. jelaskan kegunaan dari level konseptual dalam arsiktektur sistem basis data!

- 17 -
e-Book Hak Cipta 2007

BAB IV
MODEL-MODEL DATA

A. MODEL-MODEL DATA
Yang dimaksud dengan model data adalah sekumpulan tool konseptual
untuk mendeskripsikan data. Relasi-relasi antar data, semantik data, dan konsistensi
konstrain. Menyatakan hubungan antar rekaman yang tersimpan dalam basis data.
Bermacam-macam model data terbagi dalam dua kelompok besar, yaitu Object-based
logical models dan record based logical models.
1. object-based logical models
yang termasuk dalam kelompk ini di antaranya adalah entity-reletionship model
dan Object-oriented model.
a. Entity-Relation Model
E-R model didasarkan atas persepsi terhadap dunia nyata yang terdiri dari
sekumpulan object, disebut entitas dan hubungan antar objek tersebut, disebut
relasi. Entitas adalah objek didunia yang bersifat unik. Setiap entitas
mempunyai atribut yang membedakannya dengan entitas lainnya. Contoh :
entitas Mahasiswa, mempunyai atribut Nim, Nama, Alamat, dan Tanggal
lahir.
Permodelan data dengan model E_R menggunakan diagram E_R.
Diagram E_R terdiri dari:
• Kotak persegi panjang, menggambarkan himpunan entitas.
• Elip, menggambarkan atribut-atribut entitas.
• Diamond, menggambarkan hubungan antar hubungan antar entitas.
• Garis, yang menghubungkan antar objek dalam diagram E-R.
b. Object-oriented Model
Model berorientasi object berbasiskan kumpulan object. Setiap object berisi :
• Nilai yang disimpanan dalam variable instant, dimana variable
”melekat” dengan objek itu sendiri.
• Metode, operasi yang berlaku pada object yang bersangkutan
• Objel-objek yang memiliki tipe nilai dan metode yang dikelompokan
dalam satu kelas. Kelas disini mirip dengan abstrak pada bahasa
pemrograman.

- 18 -
e-Book Hak Cipta 2007

• Sending a massage, sebuah objek dapat mengakses data sebuah yang


lain hanya dengan memanggil metode dari objek tersebut.
Selain kedua model diatas, yang termasuk dalam kelompok object-based
logical model adalah Semantic data model dan Functional data model.
2. Record-based models
Beberapa model yang termasuk dalam model ini, adalah model relasional, model
hierarki, model jaringan.
a. Model relasional
Model relational menggunakan kumpulan tabel-tabel untuk mempresentasikan
data-data dan relasi antar sata-data tersebut. Setiap tebel terdiri dari atas
kolom-kolom dan setiap kolom mempunyai nama yang unik.
b. Model heirarki
Model ini menyerupai pohon yang dibalik. Menggunakan pola hubungan
orangtua-anak. Setiap simpul menyatakan sekumpulan medan. Simpul yang
terhubung dengan level yang dibawahnya disebut orangtua. Setiap orang tua
hanya mempunyai satu anak, bisa banyak anak tetapi anak hanya mempunyai
satu orangtua. Simpul yang mempunyai anak tersebut akar, dan simpul yang
tidak punya anak disebut daun. Hubungan antar orangtua dan anak disebut
cabang.
Contoh DBMS yang menggunakan model hierarki : Informasi Management
System, dikembangkan oleh IBM dan Rockwell International Corporation.
Berikut adalah contoh model basis data dengan menggunakan model hierarki
untuk domain masalah pengajaran diperguruan tinggi.

- 19 -
e-Book Hak Cipta 2007

Perguruan Tinggi

STMK AMKOM
Yogyakarta

Mata kuliah Matakuliah Matakuliah

Basis Data Sistem Pakar Struktur Data

Dosen Dosen Dosen Dosen Dosen

Kusrini Andi Sunyoto Kusrini Kusrini Kusrini

Gambar 4.1 Contoh model basis data hierarki

c. Model jaringan
Data dalam jaringan direpresentasikan daengan sekumpulan record (Pascal)
dan rlasi antar data dorepresentasikan oleh record dan pointer. Record-record
diorganisasikan sebagai graft.
Model ini hampir sama dengan model hierarki. Perbedaannya pada model ini
satu anak bisa mempunyai lebih dari 1 orangtua.
Istilah orangtua dalammodel jaringan disebut sebagai pemilik, sedangkan anak
disebut sebagai anggota.
Contoh DBMS yang menggunakan model jaringan yaitu CAIDMS/DB dan
Integreted Database Management System yang dibangan oleh Cullinet
Software Inc.
Berikut ini adalah contoh medel basis data dengan menggunakan jaringan.

- 20 -
e-Book Hak Cipta 2007

Perguruan
Tinggi

STMK
AMKOM

Mata kuliah Matakuliah Matakuliah

Basis Data Sistem Pakar Struktur Data

Dosen Dosen Dosen

Hanill al Fatta Andi Sunyoto Kusrini

Gambar 4.2 Contoh model basis data jaringan

B. SOAL LATIHAN
1. jelaskan perbedaan dari model data yang berbasis obyek dan model data yang
berbasis record!
2. perhatikan ilustrasi kasus berikut :
sebuah perusahaan retailer memiliki domain usaha jual beli barang. Barang-
barang yang diperjual belikan dikelompokan menjasi 2 kelompok, yaitu busana
dan bahan makanan. Setiap pelanggan dimungkinkan untuk melakukan pembelian
beberapa pelanggan. Tetapi setiap hanya dibeli dari seorang distributor, meskipun
seorang distbutor dimungkinkan untuk menjual beberapa jenis barang sekaligus.
Gambarkan kasus tersebut diatas dengan :

a. Model relasional
b. Model hierarki
c. Model jaringan

- 21 -
e-Book Hak Cipta 2007

BAB V
ENTITY RELATIONSHIP DIAGRAM

A. KONSEP ENTITY RELATIONSHIP DIAGRAM


Perancangan basis data dengan menggunakan model entity relationship adalah dengan
menggunakan Entity Relationship Diagram (ERD). Terdapat tiga notasi dasar yang
bekerja pada model E-R yaitu : entity sets, relationship sets, dan attribut.
Sebuah entiti adalah sebuah ”benda” (thing) atau ”objek” (objek) didunia nyata yang
dapat dibedakan dari objek lainnya. Entity sets adalah sekumpulan entiti yang
mempunyai tipe yang sama. Kesamaan tipe ini dapat dilihat dari attribut/property
yang dimiliki oleh setiap entity. Misal :
- Kumpulan orang yang menyimpan uang pada suatu bank dapat didefinisikan
sebagai entity set nasabah.
- Kumpulan orang yang belajar diperguruan tinggi didefinisikan sebagai
mahasiswa.
Entity set dilambangkan dengan bentuk persegi panjang , seperti tampak pada gambar
:

Gambar 5.1 Lambang Entity Set


Relationship adalah hubungan diantara beberapa entiti. Relationship set adalah
sekumpulan relasi yang mempunyai tipe yang sama. Relationship set digambar
dengan diamond seperti tampak pada gambar dibawah ini.

Gambar 5.2 Lambang Entity Set


Atribut merupakan sebutan untuk mewakili suatu entity. Atribut dalam ERD
dilambangkan dengan bebtuk elips. Seperti pada gambar 5.3

Gambar 5.3 Lambang Entity Set

- 22 -
e-Book Hak Cipta 2007

Ada beberapa istilah yang harus dipahami sebelum merancang basis data dengan
menggunakan model entity relationship diagram. Diantaranya yaitu ;
1. Superkey
Satu atau lebih atribut (kump atribut) yang dapat membedakan setiap baris data
dalam tabek secara unik.
Sebagai ilustasi diberikan tabel mahasiswa berikut :

Tabel 5.1 Tabel Mahasiswa

NIM Nama Alamat Jurusan


1001 Rita Yogya MI
1002 Aini MI
1003 Rita Magelang SI
1004 Iko TI

Dari tabel tersebut yang memungkinkan menjadi superkey adalah atibut NIM,
atribut NIM dan Nama, atribut NIM dan Alamat, atibut NIM dan Jurusan, atribut
NIM, Nama, Alamat dan Jurusan.
Atribut Nama tidak bisa menjadi superkey karena memungkinkan lebih dari 1
baris yang memiliki nilai sama. Demikian pula atribut alamat, atribut jurusan,
atribut Nama dan Alamat, Atribut Nama dan Jurusan, Atribut Alamat dan Jurusan
serta Atribut Nama, Alamat, dan Jurusan.
2. Kandidat Key
Merupakan kumpulan atribut minimal yang membedakan setiap baris data dalam
tabel secara unik. Untuk bisa menjadi kandidat key, suatu atribut harus memenuhi
persyaratan sebagai berikut :
a. Untuk satu nilai hanya mengidentifikasikan satu baris dalam satu relasi
(unik).
b. Tidak memiliki subset yang juga merupakan kunci relasi
c. Tidak dapat bernilai null
Dengan kata lain, sebuah kandidat key adalah superkey yang paling sedikit jumlah
atributnya. Dari contoh pada superkey dari tabel Mahasisea pada tabel 5.1 yang
memenuhi persyaratan sebagai kandidat key adalah atribut NIM.
3. Kunci relasi (relation key) kunci utama (primary key)
Nilai dari kunci relasi harus mengidentifikasikan sebuah baris yang unik didalam
sebuah rekasi. Kunci relasi terdiri dari satu atau lebih atribut-atribut relasi. Agar
menjadi sebuah primary key, sebuah atribut haruslah memenuhi perdyaratan

- 23 -
e-Book Hak Cipta 2007

sebagai kandidat key. Dalam contoh tabel mahaiswa pada pada Tabel 5.1 NIM
adalah kunci relasinya.
4. Kunci Alternatif (alternate Key)
Kunci yang tidak ada didunia nyata, tetapi diadakan dan dijadikan primary key.
Kunci alternatif dibuat ketika tidak ada satu pun atribut dalam sebuah relasi yang
bisa mewakili relasi teresebut, atau ada yang bisa menjadi kandidat key tetapi
tidak cukup efektif untuk digunakan sebagai primary key.
Sebagai contoh berikut ini adalah sebuah relasi Hobby ;

Tabel 5.2 Tabel hobby

Hobby
Nama Keterangan
Hiking
Climbing Suka naik gunung itu lho
Renang

Dari tabel 5.2 kandidat key pada tabel tersebut adalah Nama. Tetapi untuk lebih
efektif mungkin aja perancang basisdata akan memberikan kunci alternatif berupa
kode_hobi. Kode tersebut tidak pernah ada dalam dunia nyata. Karena kita tidak
pernah tahu kalau Hiking tersebut dipilih sebagai kunci utama. Maka kode_nilai
disebut sebagai kunci alternatif.
5. Komposit Key
Primary key yang terdiri dari lebih dari 1 atribut
6. Foreign Key (FK)
Istilah Fk juga banyak digunakan dalam perancangan. Sebuah Fk adalah
sekumpulan atribut dalam suatu rlasi (misal A) sedemikian sehingga kumpulan
atribut ini bukan kunci A tetapi merupakan kunci dari relasi lain.
7. Kardinalitas Pemetaan
Kardinalitas pemetaan atau rasio kardinalitas menunjukan jumlah entity yang
dihubungkan ke satu entity lain dengan suatu relationship sets. Kardinalitas
pemetaan meliputi :
a. Hubungan satu ke satu (one to one) yaitu satu entity dalam A dihubungkan
dengan maksimum satu entity.
b. Hubungan satu ke banyak (one to many) yaitu satu entity dalam A
dihubungkan dengan sejumlah entity dalam entity dalam B dihubungkan
dengan maksimum satu entity dalam A.

- 24 -
e-Book Hak Cipta 2007

c. Hubungan banyak ke satu (many to one) satu entity dalam A dihubungkan


dengan maksimum satu entity B. satu entity dalam B hubungkan dengan
sejumlah entity dalam A.
d. Hubungan banyak ke banyak (many to many) satu entity dalam A
dihubungkan dengan sejumlah entity dalam entity dalam B dihubungkan
dengan sejumlah entity dalam A.

B. TAHAP PEMBUATAN ENTITY RELATIONSHIP DIAGRAM

Secara umum ada 2 langkah dalam membuat ERD. Langkah pertama adalah membuat
ERD awal untuk mendapat sebuah rancangan database yang minimal dapat
mengakomodasi kebutuhan penyimpanan data sistem yang sedang
mempertimbangkan anomali-anomali dan aspek-aspek efesiensi, kinerja, dan
flekibilitas.

Berikut akan dijelaskan tahap-tahap pembuatan ERD awal. Untuk lebih memudahkan
ilustrasi, akan diberikan kasus perancangan basis data dalam Sistem Informasi
Akademik. Adapun langkah-langkahnya adalah sebagai berikut.

1. Mengidentifikai dan menetapkan seluruh himpunan entitas 9entity) yang


akan terlihat.

Misalnya entitas yang terlihat adalah : Mahasiswa, Dosen, Matakuliah.

2. Menentukan atribut-atribut key dari masing-masing himpunan entitas.

Untuk entitas Mahasiswa, atribut yang terlibat yaitu : NIM, Nama., Alamat,
Jurusan.

Untuk entitas Dosen, atribut yang terlibat adalah : NIP, Nama, Alamat.

Untuk entitas Matakulaih, atribut yang terlibat adalah : Kode_Matakul, Nama,


SKS.

3. Menentukan PK dari setiap entitas yang ada.

PK dari entitas Mahasiswa : NIM.

PK dari entita Dosen : NIP.

PK dari entitas Matakuliah : Kode_Matkul.

4. Mengidentifikasi dan menetapkan seluruh himpunan relasi di antara


himpunan entitas-himpunam entitas yang ada beserta foreign key-nya.

- 25 -
e-Book Hak Cipta 2007

Dosen dengan mata kuliah berelasi secara langsung dengan relasi mengajar,
yaituu deosen mengajar mata kuliah. Himpunan relasi mengajar antara Dosen dan
Mata kuliah bisa dilihat pada gambar 5.4 dibawah ini.

alamat Kod_Matkul
SKS
Nama

Dosen Mengajar Matakuliah

NIP Nama
NIP

atribut pada gambar 5.4 ada beberapa atribut yang digaris bawahi yang atribut
NIP pada Entity Dosen dan Kode_Matkul pada Entity Matakuliah. Atribut yang
diberi garis bawah ganda seperti atribut NIP dan Kode_Matkul pada relasi
Mengajar merupakan Foregein Key.

Selain Dosen dan Matakuliah yang dihubungkan dengan Relasi Mengajar, masih
ada satu Entity yang masih berelasi dalam sistem ini, yaitu Entity Mahasiswa.
Entity Mahasiswa berhubungan dengan relasi Matakuliah sekaligus beralasi
dengan dosen, tetapi relasi antara Mahasiswa dengan kedua entity yang lain
saling bekaitan (bersamaan). Mahasiswa mengikuti suatu matakuliah yang
diajarkan oleh seorang dosen. Adi tidak hanya dosennya tetapi langsung dengan
mata kuliahnya secara spesifik.

Relasi seperti ini disebut dengan agragasi. Dimana sebuah entity berelasi dengan
yang lain.

Jika digambar akan tampak seperti pada gambar 5.5 berikut ini :

alamat
Nama Dosen Kod_Matkul Kod_Matkul SKS
Dosen

Mengajar
Dosen Matakuliah

NIP NIP Nama

Mengik
Kod_Matkul
ut

NIP NIP

NIM Mahasiswa Jurusan


Dosen

alamat
Nama Dosen
Dosen

Gambar 5.5 Relasi Agregasi


5. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi

- 26 -
e-Book Hak Cipta 2007

Relasi anatara dosen dengan matakuliah memiliki kardinalitas banyak ke banyak


atau many to many, dimana satu dosen dapat mengajar banyak mata kuliah dan
datu mata kuliah bisa diajarkan oleh banyak dosen.
Demikian pula relasi antara Mahasiswa dengan RELASI Mengajar yang
menghubungkan antara Entity Dosen dengan Matakuliah, memiliki kardinilitas
Banyak ke Banyak.
Berikut ini adalah gambar ERD setelah ditentukan derajat kardinilitasnya.

alamat
Nama Dosen Kod_Matkul Kod_Matkul SKS
Dosen

Mengajar
Dosen Matakuliah

NIP NIP Nama

Mengik
Kod_Matkul
ut

NIP NIP

NIM Mahasiswa Jurusan


Dosen

alamat
Nama Dosen
Dosen

Gambar 5.6 Dengan derajat kardinalitas

Penggambaran ERD dapat pula dilengkapi dengan kamus data, sehingga tidak perlu
digambarkan semua atributnya dalam gambaran ERD-nya. Cara penulisan kamus data
yaitu dengan menyebutkan Entity diikuti dengan atribut-aributnya. Misal Entity
Dosen akan ditulis sebagai berikut :
Dosen : { NIP, Nama, Alamat}
Dalam kamus data NIP diberi garis bawah untuk menambahkan bahwa NIP
merupakan primary key dari entiti Dosen.
Setelah ERD lengkap dengan kardanilitasnya selesai dibuat. Langkah selanjutnya
yang perlu dipikirkan adalah optimasi dilakukan untuk 3 tujuan yaitu meningkatkan :
- Efesiensi
- Kinerja
- Fleksibilitas

- 27 -
e-Book Hak Cipta 2007

Untuk meningkatkan efesiensi dan kinerja, dalam optimasi ERD terkadang diperlukan
pemberian kunci alternatif (alternate key) yaitu atribut yang sebenarnya tidak ada
didunia nyata. Tetapi ditambahkan dan dijadikan sebagai primery key. Sebagai contoh
dalam relasi hobi, dimana dalam relasi tersebut hanya tersiri dari nama_hobi.
Mengingat panjang data nama hobi cukup banyak, terkadang perlu dipertimbangkan
untuk menambahkan kode_hobi yang sebenarnya hal ini ada dalam dunia nyata.
Dalam hal pengkodean, ada 3 bentuk pengkodean yang bisa diberikan yaitu :
- Sekuensial, jenis kode ini diberikan secara urut. Misalnya untuk kode pembelian
terurut dari 1, 2, 3, dan seterusnya.
- Mnemonic. Jenis kode ini berupa karakter atau angka sebagai simbol. Misalnya L
dan P pada jenis kelamain yang aartinya laki-laki dan perempuan.
- Blok. Jenis pengkodean ini terdiri dari beberapa bagian, misalnya NIM
02.11.2341. kode tersebut memiliki 3 bagian yang masing-masing memiliki
makna tersendiri. Bliok pertama 02 bermakna tahun angkatan 2002. Blok ke 2
berisi kode jurusan yang menggambarkan nomer urutan mahaiswa pada tahun dan
jurusan terebut.
Hal lain yang bisa dilakuakn dalam usaha optomasi adalah melakukan dekomposisi
atau pemecahan tabel.
Dalam hal peningkatan fleksibilitas, optimasi dilakukan dengan cara berikut :
- Penambahan atribut. Dengan ditambahkan atribut pada entity/relasi diharapkan,
entity/relasi ini akan lebih fleksibel penggunaannya. Sebagai contoh :relasi
mengajar jika hanya memiliki atribut NIP dan Kode_Matkul, berarti relasi ini
hanya berlaku untuk datu periode waktu daja. Namun jika ditambahkan atribut
Tahun dan semester, maka relasi ini dapat menampung data untuk beberapa
periode waktu.
- Pemilihan domain atribut yang lebih luas. Sebagai contoh adalah pemilih lebar
data untuk atribut tahun. Sebelum tahun 2002, banyak system yang yang
dibangun dengan rancangan lebar atribut tahun adalah 2 digit. Ddengan demikian
untuk tahun 1982 hanya ditulis 82. untuk tahun 1989 hanya ditulis 98.
- Generelasi. Sebuah contoh kasus generelasi adalah sebagai berikut. Diberikan 2
entitas Dosen dan Mahasiswa sebagai anggota dalam sistem perpustakaan.
Masing-masing dari kedua entitas tersebut memiliki atribut IdAnggota, Nama,
dan Alamat. Jika masing-masing jenis anggota direpresentasikan dalam sebuah
relasi maka jika ada penambahan jenis anggota, misalnya karyawan, maka harus

- 28 -
e-Book Hak Cipta 2007

ditambahkan relasi baru. Tetapi jika generelasi , seluruh relasi dari anggota
perpustakan dijadikan sebuah relasi anggota dengan atriut IdAnggota, Nama, dan
Alamat dan ditambah dengan jenis.
- Perubahan stuktur entitas dari yang berorientasi kolom baris ke orientasi baris.
Sebagai contoh, sebuah relasi sirkulasi pada sistem perpustakaan yang berbentuk,
seperti tampak pada tabelo 5.3 berikut.
Tabel 5.3 Relasi Sirkulasi berorientasi kolom
Id_Ang TglPinjam IdBuku1 IdBuku2
1 1/1 06 A01 B54
3 3/2 06 D34 A43
...

Relasi pada tabel 5.3 diatas berlaku untuk perpustakaan yang memilki
kebijakan meminjam buku 2 eksemplar untuk tiap peminjaman yang terjadi. Untuk
perpustakaan yang memiliki kebijakan lain, relasi ini tidak dapat digunakan. Atau
untuk perpustakaan yang sama, pihak manajemen tidak diijinkan untuk mengubah
kebijakan.
Tabel 54 Relasi Sirkulasi berorientasi baris
Id_Ang TglPinjam IdBuku
1 1/1 06 A01
1 1/1 06 B54
3 3/2 06 D34
3 3/2 06 A43
...
C. SOAL LATIHAN
Nerikut adalah sebuah kasus dalam perusahaan reatail yang memiliki lingkungan
kerja penjualan dan pembelian barang. Identitas :
1. Entitas yang telibat
2. sebutkan atribut-atribut yang terlibat pada entitas dari laithan nomor 1.
3. pilih primary key entitas dari laithan soal nomor 1
4. cari hubungan diantara entitas dari latihan soal nomor 1
5. tentukan hubungan kardinilitas dari hubungan antar entitas pada latihan soal
nomor 4

- 29 -
e-Book Hak Cipta 2007

BAB VI
IMPLEMENTASI ENTITY
RELATIONSHIP DIAGRAM

A. TAHAP IMPLEMENTASI
Tahap Implementasi merupakan upaya untuk membangun basis data fisik yang
ditempatkan dalam memori sekunder.
Adapun langkah-langkah untuk mengimplementasikan Entity Relationshp diagram
adalah sebagai berikut :
- transformasi dari model data yang telah dibuat ke skema basis data sesuai dengan
DBMS yang dipilih.
- Diagram ER à basis data.
- Entity à table-tabke/file-file data
- Atribut à field
Transformasi dasar :
1. Setiap himpunan entiatas akan diimplementasikan sebagai sebuah table
2. Relasi dengan derajat 1-1 yang menghubungkan 2 buah himpuna entitas akan
direpresentasikan dalam bentuk penambahan atribut-atribut relasi ke salah satu
tabel yang memiliki kedua himpunan entitas.
3. Relasi dengan derajat 1-N yang menghubungkan 2 buah himpunan entitas juda
akan direpresentasikan dalam bentuk pencntuman atau pemberian atribut key dari
himpunan entitas pertama (yang derajat 1) ke himpunan ke 2 (yang derajat N).
4. Relasi dengan derajat N-N yang menghubungkan 2 buah himpunan entitas akan
diwujudkan dalam bentuk table khusus, yang memiliki fiekd tepatnya (foreigen
key) yang berasal dari key-key kedua himpunan entitas yang dihubungkan.
5. Relasi tunggal
a. Derajat 1-1 : penggunaan field key dua kali pada satu table dengan nama dan
fungsi berbeda.
b. Derajat 1-N : dibentuk tabel baru yang mendapatkan field dari atribut relasi dari
atribut relasi yang ditambah dengan atribut key dari himpunan entitasnya.
Sebgai contoh akan diberikan ER Diagram seperti tertera pada Gambar 6.1 berikut :

- 30 -
e-Book Hak Cipta 2007

alamat
Nama Dosen Kod_Matkul Kod_Matkul SKS
Dosen

Mengajar Prayarat
Dosen Matakuliah

NIP
NIP
Nama

Mengik
Kod_Matkul
ut

NIP NIP

NIM Mahasiswa alamat


Dosen

Nama
Dosen
Nama
Dosen
Jurusan Mengik
I ut

Kod_Jurusan NIM

Kod_Jurusan

Gambar 6.1 Entity Relationship Diagram

Adapun langkah implementasinya adalah sbagai berikut :


1. Mengubah entitas menjadi tabel dengan fieldnya adalah atribut dari entitas
tersebut. Dengan demikian tabel yang berbentuk pada tahap ini adalah :
- Tabel Dosen, Field-fieldnya : NIP, Nama, Alamat.
- Tabel Matakuliah, Field-fieldnya : Kode_Matkul, Nama, SKS.
- Tabel Mahasiswa, Fieldnya-fieldnya : NIM, Nama, Alamat.
- Tabel Jurusan, Field-fieldnya : KD_Jurusan, Nama.
2. Mengubah relasi antara entitas dengan derajat kardinalitas banyak ke banyak
enjadi table baru. Dari gambar 6.1, relasi yang derajat kardinalitasnya banyak ke
banyak adalah :
- Relasi Mengajar, yang menghubungkan antar Dosen dengan Matakuliah.
Relasi ini diubah menjadi tabel Mengajar dengan field : NIP, Kode_Matkul.
- Relasi Prasyaratan, yang menghubungkan antara Matakuliah dengan
Matakulaiah. Relasi ini diubah menjadi tabel Prasyarat dengan field :
kode_Matkul, Kode_Matkul_Prasyarat
- Relasi Mengikuti, yang menghubungkan antar Mahasiswa dengan Relasi
Mengajar. Relasi ini diubah menjadi tabel mengikuti dengan nilai field : NIM,
Kode_Matkul, NIP

- 31 -
e-Book Hak Cipta 2007

Menambahkan fild pada entity yang dihubungkan oleh relasi dengan derajat satu
ke banyak. Dari gambar 6.1, relasi yang berderajat satu ke derajat banyak adalah
relasi memiliki yang menghubugkan antar jurusan dengan mahasiswa. Relasi ini
mengakibatkan penambahan field Kode_Jurusan sebagai primary key dari entiti
jurusan yang berserajat satu ke entiti mahasiwa yang berderajat banyak. Dengan
demikian tabel mahasiswa memiliki field : Nim, Nama, dan Kode_Jurusan.
B. TIPE DATA FIELD
Tipe-tipe data field beserta aturan penamaan tertanggung pada DBMS-nya. Secara
umum macam-macam tipe field :
- Data Angka : Numerik atau Alfanumerik.
- Data Numerik : Bilangan bulat (interger) atau Bilangan Nyata (real).
- Data Bilangan Bulat (interger)
o Byte (1 byte)
o Small interger (2 byte)
o Long interger (4 byte)
- Data Bilangan Nyata
o Singel (4 byte)
o Double (8 byte)
- Data Uang
o Money/currency
- Data Teks
o Character (fixed)
o Variable Character (non fixed)
- Data Biner
Blob

C. SOAL LATIHAN
Tentukan implementasi basis data secara fisik berupa file, field, primary key, dan
foreign key dari ER-Diagram berikut :
1. Mahasiswa {NIM, Nama}
Hobbi {Kode, Hobbi}

Mahasiswa Memiliki Hobbi


2. Dosen {NIP, Nama, Alamat}

- 32 -
e-Book Hak Cipta 2007

Dosen
Pembimbing

3. Mahasiswa {NIM, Nama}


Matakuliah {Kode, Matakuliah, SKS}

Mahasiswa Mengikuti Matakuliah


o
4. Dokter {KodeDokter, Nama, Alamat}

Dokter
Pasangan

BAB VII

- 33 -
e-Book Hak Cipta 2007

NORMALISASI DAN DENORMALISASI

A. TEKNIK NORMALISASI
Salah satu topik yang cukup kompleks dalam dunia manajemen database adalah
proses untuk menormaslisasi tabel-tabel dalam database relasional. Bab ini akan
membahas mengenai bentuk-bentuk normalisasi dan teknik-teknik yang digunakan
dalam melakukan normalisasi.
Dengan normalisasi kita ingin mendesain database relasional yang terdiri dari tabel-
tabel berikut :
1. Berisi data yang diperlukan.
2. Memilki sedikit mungkin redudansi.
3. Mengakomodasi banyak nilai untuk tipe data yang diperlukan.
4. Mengsfisienkan update.
5. Menghindari kemungkinan kehilangan data secara tidak disengaja/tidak diketahui.

Alasan utama dari normalisasi database minimal sampai dengan bentuk normal ketiga
adalah menghilang kemungkinan adanya ”insertion anomalies”, ”delection
anomalies”, dan ”update anomalies”. Tipe-tipe kesalahan terebut sangat mungkin
terjadi pada database yang tidak normal.

”insertion anomalies” adalah sebuah kesalahan dalam penempatan informasi entry


data baru ke seluruh tempat dalam data base dimana informasi tersebut perlu
disimpan. Dalam database yang tidak perlu normalisasi, prses dimasukkan ke dalam
satu tempat.

”Delection anomalies” adalah sebuah kesalahan dalam penghapusan suatu informasi


dalam database harus dilakukan dengan penghapusan informasi tersebut dari beberapa
tempat dalam database. Dalam database yang telah dinormalisasi, penghapusan suatu
informasi hanya perlu dilakuakan dalam satu tempat dalam database tersebut.

Sedang kan dalam melakukan update satu informasi, kesalahan juga dapat terjadi
ketika kita harus melakukan update ke seluruh tempat yang menyimpan informasi
tersebut. Kesalahan ini disebut dengan ”update anomaly”.

- 34 -
e-Book Hak Cipta 2007

Normalisasi merupakan cara pendekatan dalam membangun desain logika basis dataa
relasional yang tidak secara langsung berkaitan dengan model data, tetapi dengan
menerapkansejumlah aturan dan kreteriastandar untuk menghasilkan struktur tabel
yang normal.

Dalam perperspektif normalisasi sebuah databae dikatakan baik jika setiap tabel yang
membentuk basis data sudah berada dalam keadaan normal. Suatu tabel dikatakan
normal, jika :
a. Jika ada dekomposisi/penguraian tabel, maka dekomposisinya dijamin aman
(lossless-join decomposition)
b. Terpeliharanya ketergantungan funtional pada saat perubahan data (dependency
preseervation)
c. Tidak melanggar Boyce Code Normal FORM (BCNF), jika tidak bisa minimal
tidak melanggar bentuk normalisasi ketiga.
Yang dimaksudkan dengan ketergantungan fungsional/fungcional depedency adalah :
Diberikan sebuah tabel /relasi T. Atribut B dari T bergantung secara fungsi pada
atribut A dari T jika dan hanya jika setiap nilai B dari T punya hubungan dengan
tepat satu nilai A dalam T (dalam setiap satu waktu)
Beberapa kondii yang diuji pada proses normalisasi ;
- Menambah data/insert
- Mengedit/mengupdate
- Menghapus/delete
- Membaca/retrieve

3. BENTUK-BENTUK NORMALISASI
a. Bentuk tidak normal
bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan
megikuti format tertentu, dapat saja tidak lengkap dan keharusan dan terduplikasi.
Data dikumpulkan apa adanya sesuai keadaannya.
b. Bentuk normal tahap pertama (1 st Normal Form)
Definisi :
Sebuah table disebut 1NF jika :
Tidak ada baris yang duplikat dalam abel tersebut
Masing-masing cell bernilai tunggal

- 35 -
e-Book Hak Cipta 2007

Catatan : permintaan yang menyatakan tidak ada baris yang duplikat dalam
sebuah tabel berarti tabel tersebut memiliki sebuah kunci, meskipun kunci
tersebut merupakan kombinasi dari semua kolom.
Berikut ini akan dicontohkan normalisasi pertama, karena terdapat atribut
waktu yang tergolong ke dalam atribut bernilai banyak. Agar tabel tersebut
dapat memenuhi 1NF, maka solusinya adalah dengan mengkomposisikan tabel
Kuliah menjadi :
Tabel kuliah tersebut tidak memenuhi normalisasi pertama, karena terdapat
atribut waktu yang tergolong dalam atribut bernilai banyak. Agar tabel tersebut
dapat memenuhi 1NF, maka solusinya adalah dengan mendekomposisikan
tabel Kuliah menjadi :
§ Tabel Kuliah (kode_kul, nama_kul, sks, semester, nama_dos)
§ Tabel Jadwal(kode_kul, waktu, ruang).
c. Bentuk normal tahap kedua (2 nd normal form)
Bentuk Normal Kedua (2NF) terpenuhi jika pada sebuah tabel semua atribut yang
tidak termasuk dalam primary key memiliki ketergantungan fungsional pada
primary key secara uth.
Sebuah tabel dikatakan tidak memenuhi 2NF, jika ketergantungannya hanya
bersifat parsial (hanya tergantungan pada sebagaian dari primary key).
Bentuk normal kedua akan dicontohkan berikut.
Misal tabel nilai terdiri dari atribut kode_kul, nim dan nilai. Jika pada tabel Nilai,
misalnya kita tambahkan sebuah atribut yang bersifat redundan, yaitu nama_mhs,
maka tabel nilai ini dianggap melanggar 2NF.
Primary key pada tabel nilai adalah [kode_kul,nim].
Penambahan atribut baru (nama_mhs) akan menyebabkan adanya ketergantungan
fungsional yang baru yaitu nim - >nama_mhs. Karena atribut nama_mhs ini haya
memiliki keterbgantungan parsial pada primary key secara utuh (hanya tergantung
pada nim, padahal nim hanya bagian dari primary key).
Bentuk normal kedua ini dianggap belum memadai karena meninjau sifat
ketergantungan atribtu terhadap primary key saja.

d. Bentuk normal tahap ketiga (3 rd normal form)

- 36 -
e-Book Hak Cipta 2007

sebuah tabel dikatakan memenuhi bentuk normal ketiga (3NF), jika untuk setiap
ketergantungan fungsional dengan notasi X - > A, dimana A mewakili semua
atribut tunggal didalam tabel yang tidak ada di dalam X, maka :
- X haruslah super key pada tabel tersebut
- Atau A merupakan bagian dari primary key pada tabel tersebut
Misalkan pada table Mahasiswa, atriibut alamat_mhs dipecah kedalam
alamat_jalan, alamat_kota dank ode_pos. Bentuk ini tidak memenuhi 3NF, karena
terdapat ketergantungan fungsional baru yang muncul baru pada tabel tersebut,
yaitu :
Alamat_jalan nama_kota - > kode_pos
Dalam hal ini (alamat_jalan, nama_kota) bukan super key sementara kode_pos
juga bukan bagian dari primary key pada tabel Mahasiswa.
Jika tabel Mahasiswa didekomposisikan menjadi tabel Mahasiswa dan tabel
Alamat, maka telah memenuhi 3NF. Hal ini dapat dibuktikan dengan memeriksa
dua ketergantungan fungsional pada alamat tersebut, yaitu :
Alamat_jalan nama_kota - > kode_pos
Kode_pos - > nama_kota
Ketergantungan fungsional yang pertama tidak melanggar 3NF, karena
(alamat_jalan, nama_kota merupakan superkey (sekaligus sebagai promari key)
dari tabel Alamat tersebut. Demikian juga dengan ketergantungan fungsional yang
kedua meskipun (kode_pos) bukan merupakan superkey, tetapi nama_kota
merupakan bagain dari primary key dari tabel alamat. Karena telah memenuhi
3NF, maka tabel tersebut tidak perlu di_dekomposisikan lagi.
e. Bentuk normal tahap keempat dan kelima
penerapan aturan normalisasi sampai bentuk normal ketiga sudah memadai untuk
menghasilkan tabel berkualitas baik. Namun demikian, terdapat pula bentuk
normal keempat (2NF) dan kelima (5NF). Bentuk Normal keempat berkaitan
dengan sifat ketergantungan banyak nilai (multivalued dependencey) pada suatu
tabel yang merupakan pengembangan fungsional . adapun bentuk normal tahap
kelima merupakan nama lain dari Project Joiin Normal Form (PJNF).
f. Boyce Code Normal Form (BCNF)
§ Memenuhi 1 st NF
§ Relasi harus bergantung fungsi pada atribut superkey
3. CONTOH KASUS

- 37 -
e-Book Hak Cipta 2007

Berikut akan diberikan contoh proses perancangan database dengan tteknik


normalisasi.

Dokumen dasar :

Faktur Pembelian Barang

PT. Ayo Bersama


Jl. Senopati 12 yk

Kode Suplier : G01 Tanggal : 07/10/04


Nama Suplier : Gober Nustra Nomor : 004
Kode Nama Brg Qty Harga Jml
A01 AC model 1 10 1000000 10000000
A02 AC model 2 5 900000 4500000
Total Faktur 14500000
Jatuh Tempo 15/10/04

Faktur Pembelian Barang

PT. Ayo Bersama


Jl. Senopati 12 yk

Kode Suplier : G01 Tanggal : 07/10/04


Nama Suplier : Gober Nustra Nomor : 004
Kode Nama Brg Qty Harga Jml
B01 Kursi 5 100000 50000
A03 Meja 7 250000 3250000
Total Faktur 3750000
Jatuh Tempo 17/10/04
Bentuk tidak ternormalisasi
Kd Fak Kd Sup Nama Sup Kd Brg Nama brg Tgl ...
ACModel 1,
Gobel A01,
004 G01 AC Model2 07/10/04 ...
Nustra A02

006 A03 Angkasa B01,A03 Meja,Kursi 09/10/05 ...

- 38 -
e-Book Hak Cipta 2007

... J.tempo qty Hrg Jml Tot


1000000, 10000000, 14500000
15/10/04 10,5
900000 4500000
100000, 500000,
17/10/05 5,7 3750000
250000 3250000

Bentuk Normal 1
Kd Fak Kd Sup Nama Sup Kd Brg Nama brg ...
004 G01 Gobel Nustra A01 AC Model 1 ...
004 G01 Gobel Nustra A02 AC Model2 ...
004 G01 Angkasa B01 Meja …
004 G01 Angkasa B03 Kursi …

... Tgl J.tempo qty Hrg

... 07/10/40 15/10/04 10 1000000

... 07/10/40 15/10/04 5 900000

... 09/10/05 17/10/05 5 100000

... 09/10/05 17/10/05 7 250000

Kelemahan :
- insert : ingin memasukan supplier tanpa transaksi?
- Delete : menghapus transaksi à supplier terhapus
- Update : mengganti satu nama supplier à lainnya jadi tidak benar
- Redundancy : jumlah ß hasil perhitungan qty * harga

Bentuk 2nd NF :
KdFaktur à Tgl, Jtempo
KodeSup, NamaSup
KdFaktur à NamaBrg, Qty, Harga

Bentuk BCNF :
KodeFaktur à Tgl, Jtempo, KodeSup
KdSup à NamaSup
KdFaktur à Qty, Harga
KodeBrg à NamaBrg

- 39 -
e-Book Hak Cipta 2007

B. DENORMALISASI

1. KONSEP DENORMASLISASI
Normalisasi hanya merupakan kebijakan standart perancangan basis data yang masih
boleh dilanggar. Pross pelanggaran terahadap konsep normalisasi disebut dengan
denormalissi adalah untuk meningkatkn kinerja sistem (performasi).
2. AKIBAT DENORMALISASI
Denormalisasi dapat mengakibatkan adanya redudancy. Redudancy terjadi ketika
terjadi penyimpanan fakta yang sama lebih dari 1 kali.
Redudancy perlu dibedakan dengan duplikasi. Duplikasi terkadang memang
diperlukan dalam basis data. Duplikasi adalah penyimpanan nilai-nilai yang lebih 1
kali untuk menggambarkan fakta yang beda.
Kelemahan redudancy :
- membutuhkan ruang penyimpanan yang besar.
- Dapat menimbulkan inkonsistensi data (melemahkan integritas data).
- Pemeliharaan integritas membutuhkan waktu lebih banyak.
3. BENTUK-BENTUK DENORMALISASI
Berikut ini adalah bentuk-bentuk denormalisasi :
- atribut yang terderiviasi ànilai pada aribut ini bisa diolah dari nilai-nilai yang
sudah ada tabel lain.
- Atribut yang berlabihan :
Atribut terkodekan
atribut gabungan
Atribut tumpang tindih
Atribut bermakna ganda
- Tabel rekapitulasi

C. SOAL LATIHAN
1. BUATLAH RANCANGAN BASIS DATA DENGAN MENGGUNAKAN
TEKNIK NORMALISASI (BENTUK TIDAK NORMAL 1, NORMAL 2, DAN
BENTUK BCNF) DENGAN DOKUMEN DASAR SEBAGAI BERIKUT :
TRANSKIP NILAI
PERGURUAN TINGGI XYZ

NIM : 110A213 Jenjang : S1


Nama : Nindita Adi Swatika Jurusan : Sistem Informasi
Alamat : Jl. Apel Merah No 27A Th. Masuk : 2002
Yogyakarta

Kode Tahun Semester


Nama SKS Nilai
Matkul Pengambilan Pengambilan
BD Basis Data 3 2002 2 A
SD Struktur Data 4 2003 1 B
A Agama 2 2002 2 D
K Kalkulus 3 2003 1 C

Total : 12
SKS
IPK : 2.92

- 40 -
e-Book Hak Cipta 2007

2. apa alasan dilakukannya denomarlisasi?

3. berikan contoh keadaan/tabel yang perlu denormalisasi. Jelaskan alasannya!

- 41 -
e-Book Hak Cipta 2007

BAB VIII
BAHASA BASIS DATA

A. BAHASA BASIS DATA


Sistem basis data komersial menghendaki adanya sebuah bahasa query yang lebih
mudah dipahami dan mudah digunakan (user-friendly). Oleh karena itu diperkenalkan
SQL sebagai bahasa query yang lebih marketable. SQL menggunakan kombinasi
aljabar relasional & kalkulus relasional. Meskipun SQL adalah bahasa query terhadap
basis data. SQL mempunyai kemampuan untuk mendefinisikan struktur data,
modifikasi data dalam basis data dan menentukan konstrain sekuriti.
SQL mrupakan bahasa data relasional standart. Terdapat macam-macam versi SQL.
Vrsi aslinya pertama kali dikembangkan oleh IBM San Jose Research Laboratory.
Bahasa ini aslinya disebut Suquel, diimplementasikan pada Sytem R Project pada
awal 1970-an. Bahasa Sequel berkembang dan berubah menjadi SQL (Structural
Query Language).
Pada tahun 1986, the American National Standart Institute (ANSI) dan the
International Standart Organization (ISO) mengumumkan sebuah standart SQL yang
disebut 86. Sampai sekarang bahasa yang menjadi standart adalah SQL 92.

Bahasa SQL mempunyai dua bagian, yaitu :


1. Data Definition Language (DDL)
DDL memberikan perintah untuk mendefinisikan dan memodifikasi database dan
strukturnya termasuk konstrain-konstrain yang ada di suatu table. Contoh
konstrain yang diimaksud disini adalah promery key, foreign key, null, default,
index, unique, dan lain-lain.
2. Data-Manipulasi Language (DML)
DML merupakan bahasa query yang digunakan untuk melakukan pengolahan
terhadap data yang ada didalam sebuah database.
Pengolahan yang dimaksudkan disini diantaranya adalah memasukan data
kedalam table (INSERT), mengubah data (UPDATE), menghapus data
(DELETE), dan mengambi data (SELECT) dari satu atau beberapa table.

- 42 -
e-Book Hak Cipta 2007

B. BAHASA BASIS DATA UNTUK MENGIMPLEMENTASIKAN


RANCANGAN BASIS DATA
Pada bahasan sebelumnya, sudah dijelaskan SQL untuk mengakses data dan untuk
manipulasi data. Didalam SQL juga dikenal bahasa definisi data atau sering dengan
definition language.
Standart SQL-92 mendukung bermacam-macam tipe domain built-in yang dapat
dilihat pada tabel 8.1.
Tabel 8.1 Tabel tipe domain standart SQL-92
Tipe Keterangan
Char (n) Tipe karakter dengan panjang yang tetap (n) (fixed-lengthcharacter)
Vachar (n) Tipe karakter dengan panjang bervariasi. Maksimum panjang n.
Int Interger
Smallint Small interger
P menunjukkan jumlah digit bilangan dan d menunjukan jumlah digit
Numeric (p, d)
dibelakang titik desimal.
Real, Double
Floating-poin dan double-precision floating point
Precision
Float (n) Floating—point number e
Date Tipe kalender
Time Tipe hari dalam jam, menit, dan detik

D. DEFINISI SKEMA DALAM SQL


Berikut ini adalah perintah-perintah SQL yang contohnya diimplementasikan dalam
software SQL server 2000.
1. Membuat database
CREATE DATABASE SPBD ;
Scipt tersebut akan menghasilkan pembuatan database dilokasi default dari SQL
Server 2000, yaitu di C:\Program Files\Microsoft SQL Server\MSSQL\Data\
Dengan nama SPBD, mdf dan SPBD_Log.Idf
File dengan ekstensi .mdf bersisi data dari database tersebut sedangkan file
dengan ekstensi . Idf erupakan file history.
Apabila diinginkan lokasi database yang berbeda, bisa dibuat cript seperti
dibawah ini :

- 43 -
e-Book Hak Cipta 2007

CREATE DATEBASE SPBD


ON PRIMARY
( NAME = spbd,
FILENAME = D : \spbd.mdf ,
SIZE = 1,
MAXSIZE = 10,
FILEGROWTH = 2 )
LOG ON
( NAME = spbdlog ,
FILENAME = D : \spbd.ldf ,
SIZE = 1MB,
MAXSIZE = 10 MB,
FILEGROWTH = 1MB ) ;
Scipt tersebut diatas akan membuat sebuah database dengan nama SPBF pada
disk local dengan dua buah file, yaitu file data di D:\spbd.mdf dan history di
D:\spbd.ldf.
Keyboard size merupakan besar awl dari file ketika database dibuat. Maxsize
merupakan nilai maximum dari databasenya sedangkan filegrowth merupakan
nilai maksimum nilai pertambahan ukuran database ketika ukuran sudah
mencapai ukuran yang didefinisikan sebelumnya.
2. Menghapus database
Sintak query untuk menghapus database sebagai berikut :
DROP DATABASE nama_database
Berikut ini adalah contoh query untuk menghapus database SPBD.
DROP DATABSE SPBD ;
Sebagai catatan , didalam banyak DBMS pembuatan dan penghapusan database
biasanya dapat menggunakan fasilitas GUI yang disediakan DBMS tersebut.
3. Mebuat Tabel
Berikut ini adalah contoh query untuk membuat table mahasiswa dengan
atributnya adalah ThAng, Nim, Nama, dan Alamat. Dalam query dibawah ini
belum didefinisikan primary key dan konstrain yang lain.

CREATE TABLE MAHASISWA (


THAN INTERGER,

- 44 -
e-Book Hak Cipta 2007

NIM INTERGER,
NAMA VARCHAR ( 30 ) ,
ALAMAT VARCHAR ( 80 ) ) ;

4. Menghapus tabel
Untuk menghapus sebuah tabel dapat dituliskan perintah query berikut ini :
DROP TABLE MAHASISWA ;
5. Mendefinisikan null/not null
Secara default, suatu atribut boleh bernilai kosong (null)/tidak diisi ketika
pengguna menambah data. Namun, terkadang dibutuhkan pula kostrain untuk
mendefinisikan suatu atribut yang harus disi (not null). Untuk melakukannya,
berikut contoh bentuk query-nya :
CREATE TABLE MAHASISWA (
THAN INTERGER not null ,
NAMA VARCHAR ( 30 ) not null ,
ALAMAT VARCHAR ( 80 ) ) ;
Dalam query tersebut diatas, akan dibuat sebuah tabel dengan nama mahasiswa.
Tabel tersebut memiliki 4 buah fielf yang bermakna ThAng, NIM, Nama dan
Alamat. Field ThAng, NIM, dan Nama harus diisi ketika akan menambah data
baru, tetapi field Alamat boleh tidak isi.
6. Mendefinisikan Nilai Default
Nilai default adalah nilai/data yang otomatis diberikan oleh sistem untuk suatu
field ketika ada penambahan baris/record, sementara nilai pada field tersebut tidak
diisi oleh user. Apabila tidak didefinisikan, nilai defaualt dari suatu atribut adalah
null.
Untuk mendifinisikan nilai default dapat dilakukan dengan membuat qury dengan
bentuk seperti dibawah ini, pada saat ini pembuatan tabel.
CREATE TABLE MAHASISWA (
THAN INTERGER not null ,
NAMA VARCHAR ( 30 ) not null ,
ALAMAT VARCHAR ( 80 ) ) default YOGYA ) ;
Query tersebut diatas mendefinisikan pembuatan tabel dengan 4 field, yaitu :
ThAng, NIM, Nama dan Alamat. Karena memilki kostrain not null, Field ThAng,
NIM harus diisi ketika ada penambahan data baru, sedangkan field Alamat tidak

- 45 -
e-Book Hak Cipta 2007

harus diisi. Namun jika tidak diisi, maka sistem secara otomatis akan mengisi
field tersebut dengan ’YOGYA’.
7. Mendefinisikan Primary Key
Primary key adalah satu atau lebih atribut yang terpilih sebagai wakil dari suatu
tabel apabila akan direlasikan dengan tabel yang lain.
Ada 3 cara yang dapat dilakukan dalam pembuatan primary key, yaitu :
a. Didefinisikan dibelakang atribut yang terpilih sebagai primary key. Cara ini
dilakukan bersama-sama pada saat dilakukan pembuatan table. Apabila
atribut yang terpilih sebagai primary key lebih dari satu ( komposit key ), cara
ini tidak dapat mengimplementasikannya.
Berikut ini adalah contoh pembuatan tabel mahasiswa dengan primary key
NIM :
CREATE TABLE MAHASISWA (
THAN INTERGER not null ,
NIM INTERGER not null ,
NAMA VARCHAR ( 30 ) not null primary key ,
ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) ;
b. Cara kedua dilakukan dengan mendefinisikan konstrain primary key pada
bagian akhir pendefinisikan tabel. Cara kedua seperti cara pertama, juga
dilakukan pada saat pembuatan tabel. Hanya saja pada cara ini, primary key
boleh atribut tunggal ataupun kumpulan atribut.
Berikut ini adalah contoh query untuk membuat table mahasiswa dengan
primary key atribut tunggal, yaitu NIM :
CREATE TABLE MAHASISWA (
THAN INTERGER not null ,
NIM INTERGER not null ,
NAMA VARCHAR ( 30 ) not null ,
ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) ,
PRIMARY KEY ( NIM ) ) ;
Contoh yang lain, misalnya kita ingin membuat table KHS dengan atribut
NIM, Matkul, dan Nilai dengan primary key NIM dan Matkul.
Maka atribut query-nya adalah sebagai berikut :
CREATE TABLE KHS (
NIM INTERGER not null ,

- 46 -
e-Book Hak Cipta 2007

MATKUL VARCHAR ( 4 ) not null ,


NILAI CHAR ( 80 ) ) default ’ B ’ ) ,
PRIMARY KEY ( NIM , MATKUL ) ) ;
c. Cara terakhir untuk mendefinisikan primary key adalah dengan
menambahkan query khusus pendefinisisan kotrain primary key cara ini bisa
dilakukan pada saat table sudah dibuat, tetapi primary key belum
didefinisikan. Dengan cara ini, kita juga bisa mendefinisikan primary key
yang berupa atribut tunggal atau komposit key.
Sebagai contoh, apabila kita sudah membuat tabel mahasiswa dengan 4 atribut
tanpa primary key dengan query berikut :
CREATE TABLE MAHASISWA (
THAN INTERGER not null ,
NIM INTERGER not null ,
NAMA VARCHAR ( 30 ) not null ,
ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) ;
Setelah query dijalankan dan tabel sudah terbuat, sementara kita merasa masih
harus didefinisikan primary key-nya maka kita bisa menambahkan query
berikut tanpa melakukan penghapusan tabel terlebih dahulu.
ALTER TABLE MAHASISWA ADD CONSTRAIN PK_MHS
PRIMARY KEY (NIM) ;
Mahasiswa pada query diatas adalah nama table yang ingin ditambahi primary
key, PK_MHS merupakan nama konstrainnya sedangkan NIM merupakan
atribut yang terpilih sebagai primary key. Sebenarnya semua konstrain
didalam database memilki nama, tetapi apabila tidak didefinisikan, nama
tersebut akan diberikan secara otomatis oleh siste. Namaum khusus untuk
pendefinisian primary key dengan cara ketiga ini, kostrain primary key
HARUS diberikan nama.
Atribut yang dipilih sebagai primary key harus terdefinisian terlebih dahulu
dalam pembuatan table sebelumnya dan memiliki konstrain not null pada
atribut tersebut.
Dengan cara ini nama kostrain PK_MHS dapat kita gunakan untuk menghapus
konstrain tersebut dengan cara berikut :
ALTER TABLE MAHASISWA DROP CONSTRAIN PK_MHS ;

- 47 -
e-Book Hak Cipta 2007

8. Mendefinisikan Foreign Key


Untuk mendefiniskan Foeign Key harus dipastikan bahwa table dan atribut yang
dirujuk (table induk dari foreign key) sudah didefinisikan terlebih dahulu.
Misalnya kita membuat 3 buah table mahasiswa, mata kuliah, dan primary keynya
adalah NIP dan pada table Mata kuliah primary key-nya adalah Kode, sedangkan
primary key dari kelas adalh IdKelas.
Sementara pada table kelas terdapat foreign key kode yang merujuk pada atribut
kode pada mata kuliah. Selain itu table tersebut juga memiliki foreign key NIP
yang merujuk pada atribut NIP pada dosen.

KELAS KELAS
PK PK PK KODE
IDKELAS
KODE
MATAKULIAH
NIP SKS

PK
KELAS
PK
NIP
NAMA

Gambar 8.1 Relasi antar table


Untuk mengimplementasikan foreign key pada table kelas, maka table induk dari
foreign key yang ada pada table tersebut (mahasiswa dan dosen) harus
diimplementasikan terlebih dahulu.
Ada dua cara untuk mendefinisikan foreign key pada suatu table, cara pertama
dengan mendefinisikan pada saat pembuatan table. Sebagai contoh, perhatikan
pendefinisian foreign key pada table Kelas berikut :
CREATE TABLE KELAS (
IDKELAS INTERGER NOT NULL PRIMARY KEY,
KODE CHAR ( 2 ) NOT NULL
REFERENCES MATAKULIAH ( KODE )

- 48 -
e-Book Hak Cipta 2007

ON UPDATE CASCADE
ON DELETE NO ACTION ,
NIP INTERGER NOT NULL
REFERENCES DOSEN ( NIP )
ON UPDATE CASCADE
ON DELETE NO ACTION ) ;
Cara ini digunakan hanya untuk foreign key yang bukan komposit key (hanya
satu atribut saja).
Sementara apabila foreign key lebih dari satu atribut atau
didefinisikanssesudah table terimplementasi, maka dapat didefinisikan dengan
query berikut :
ALTER TABLE KELAS ADD CONSTRAINT
FK_KELAS1 FOREIGN KEY (KODE)
REFERENCES MATAKULIAH (KODE)
ON UPDATE CASCADE
ON DELETE NO ACTION ;
ALTER TABLE KELAS ADD CONSTRAINT
FK_KELAS2 FOREIGN KEY (NIO)
REFERENCES DOSEN (NIP)
ON UPDATE CASCADE
ON DELETE NO ACTION ;
Pendefinisian foreign key dengan cara kedua ini mempunayi keuntungan
dalam memodifikasi/menghapus foreign key NIP pada table kelas yang diberi
namaFK_Kelas2 dapat dilakukan dengan langkah sebagai berikut :
ALTER TABLE KELAS DROP CONTRAINT
FK_KELAS ;
Dalam pendefinisian konstrain foreign key, ada variable status ON UPDATE
dan ON DELETE yang isisnya bisa CAScade atau NO ACTION.
CASCADE maksudnya, segala perubahan data pada table induk dimana data
tersebut sudah dipakai pada table yang ada foreign key-nya tersebut maka data
pada table yang ada foreign key akan menyesuaikan/mengikuti perubahannya.
Sebagai contoh data table DOSEN ditujukan pada table 8.2 dan data KELAS
ditujukan pada table 8.3 berikut :

- 49 -
e-Book Hak Cipta 2007

Tabel 8.2 Tabel Dosen


NIP NAMA
1 Ani
2 Eka
3 Ratih

Tabel 8.3 Tabel Kelas


IDKELAS KODE NIP
1 1 2
2 2 2
3 2 1

Dengan NIP pada kelas merupakan foreign key yang merujuk ke NIP pada table
Dosen, jika didefinisikan ON UPDATE CASCADE maka ketika NIP 2 di table
dosen diubah menjadi 5 maka semua NIP pada table kelas yang bernilai 2 akan
berubah menjadi 5.
Jika didefinisikan ON DELETE CASCADE, maka yang terjadi ketika NIP 1 di
table dosen dihapus, maka semua NIP yang bernilai 1 pada table Kelas juga
terhapus.
Sementara itu nilai NO ACTION maksudnya adalah, jika sebuah data pada table
induk sudah dirujuk pada table yang ada foreign key-nya (seperti NIP 2 dan 1
pada table dosen sudah dirujuk oleh NIP pada table kelas) maka pada table
induknya tidak ijinkan untuk dilakukan pengubahan/penghapusan.
Jika didefinisikan ON UPDATE CASCADE, maka pengeditan tidak diijinkan.
Sementara jika definisi ON DELETE NO ACTION, maka penghapusan tidak
diijinkan.
Jika tepaksa diinginkan pegnubahan/penghapusan pada tabel induk yang sudah
dirujuk dengan foreign key yang didefinisikan dengan ON UPDATE NO
ACTION atau ON DLETE NO ACTION, maka sebelum
penghapusan/pengubahan, data terkait pada tabel yang ada foreign key-nya
tersebut harus dihapus terlebih dahulu.
Misalnya diinginkan menghapus NIP 1 pada tabel dosen, maka harus dilakukan
penghapusan data dengan NIP 1 pada table Kelas terlebih dahulu.

- 50 -
e-Book Hak Cipta 2007

Berikut diberikan contoh sebuah rancangan database pada gambar 8.2 dan
diimplementasikan dengan query dibawahnya secara lengkap.

DOSEN MATAKULAH
PK
PK NIP PK KODE PK
NAMA MATAKULIAH

SKS

KELAS
PK IDKELAS
KODE

PK NIP

KRS
PK NIM
PK PK
IDKELAS

NILAI

MAHASISWA

THANG
PK NIM

NAMA

ALAMAT

Gambar 8.2 Rancangan Database

CREATE TABLE MAHASISWA (


THAN INTERGER not null ,
NIM INTERGER not null ,
NAMA VARCHAR ( 30 ) not null ,
ALAMAT VARCHAR ( 80 ) ) default ’ YOGYA’ ) ;

- 51 -
e-Book Hak Cipta 2007

ALTER TABLE MAHASISWA ADD CONSTRAIN PK_MHS


PRIMARY KEY (NIM) ;

CREATE TABLE DOSEN (


NIP INTERGER NOT NULL PRIMAARY KEY ,
NAMA VARCHAR ( 30 ) NOT NULL ) ;
CREATE TABLE MATAKULIAH (
KODE CHAR ( 2) NOT NULL PRIMARY KEY ,
MATAKULIAH VARCHAR ( 30 ) NOT NULL ,
SKS INTERGER DEFAULT 2 ) ;
CREATE TABLE KELAS (
IDKELAS INTERGER NOT NULL PRIMARY KEY ,
KODE CHAR ( 2 ) NOT NULL ,
NIP INTERGER NOT NULL ) ;

ALTER TABLE KELAS ADD CONSTRAIN FK_KELAS1


FOREIGEN KEY (KODE) ;
REFERENCES
MATAKULIAH (KODE)
ON UPDATE CASCADE
ON DELETE NO ACTION ;

ALTER TABLE KELAS ADD CONSTRAIN FK_KELAS2


FOREIGN KEY (NIP) ;
REFERENCES DOSEN (NIP)
ON UPDATE CASCADE
ON DELETE NO ACTION ;
CREATE TABLE KHS (
NIM INTRGER NOT NULL ,
IDKELAS INTERGER NOT NULL ,
NILAI INTERGER DEFAULT 0 ,
PRIMARY KEY (NIM, IDKELAS ) ) ;
ALTER TABLE KRS ADD CONSTRAIN FK_KRS1
FOREIGN KEY (NIM) ;
REFERENCES MAHASISWA (NIM)
ON UPDATE CASCADE

- 52 -
e-Book Hak Cipta 2007

ON DELETE NO ACTION ;
ALTER TABLE KRS ADD CONSTRAIN FK_KRS2
FOREIGN KEY (NIP) ;
REFEREBCES KELAS (IDKELAS)
ON UPDATE CASCADE
ON DELETE NO ACTION ;

9. Manambah Kolom
Terkadang penembahan kolom baru diperlukan pada table yang telah dibuat.
Berikut adalah contoh query untuk melakukan penambahan kolom/field pada tabel
mahasiswa yang sudah diimplementasikan sebelumnya.
ALTER TABLE MAHASISWA ADD JKEL CHAR ( 1 ) ;
10. Menghapus Kolom
Jika diinginkan untuk menghapus suatu kolom yang sudah tidak diperlukan
disuatu table, dapat dilakukan seperti contoh query berikut dimana dalam query
tersebut akan dilakukan penghapusan kolom jkel pada table mahasiswa.
ALTER TABLE MAHASISWA
DROP COLOM JKEL ;
11. Mengubah Tipe Kolom
Mengubah suatu tipe kolom dapat dilakukan seperti contoh query di bawah ini,
dimana dalam query tersebut akan dilakukakan pengubahan tipe kolom alamat
menjadi varchar (255).
ALTER TABLE MAHASISWA ALTER COLOM ALAMAT
VARCHAR ( 255 ) ;
Dalam pengubahan suatu kolom tidak perlu disebutkan tipe kolom awal tetapi
cukup tipe barunya saja.
Terkadang pengubah tipe kolom tidak dapat dilakukan pada kolom yang telah
berisi data yang tidak kompotibel. Sebagai contoh, kolom alamat tidak bia diubah
menjadi tipe interger apabila telah berisi nonangka, seperti huruf dan simbol/tanda
baca.

- 53 -
e-Book Hak Cipta 2007

D. SOAL LATIHAN
1. Didefinisikan bahasa basis data untuk pembuatan tabel barang dengan field :
Nama, Satuan, dan Keterangan. File Nama dan Satuan tidak boleh berisi NULL.
Pilih tipe-tipe yang paling sesuai untuk field-field tersebut, dan berikan
penjelasan!
2. Tambahkan field KodeBarang ebagai primary key pada tabel di latihan soal no.1.
3. definisikan sebuah table pembelian dengan field : Tanggal, KodeBarang, Harga,
dan Jumlah.
4. Hapus field KodeBarang dari table pada laithan soal nomer 3.
5. Tambahkan table pembelian pada soal nomor 3 dengan field KodeBarang dan
didefinisikan sebagai foreign key yang merujuk pada field KodeBarang dan table
Barang.

- 54 -
e-Book Hak Cipta 2007

BAB 1X
MANIPULASI DATA

Data manipulasi language (DML) merupakan bahasa query yang berdasarkan pada
aljabar relasi dan kalkulus relasi tuple. Termasuk dalam perintah ini adalah
penyisipan, penghapusan dan modifikasi.

A. PENYISIPAN DATA ( INSERTION)


Perintah SQL untuk measukan data ke dalam tabel adalah INSERT
INTO....VALUES....
Syntax :
INSERT INTO nama_tabel
VALUE (nilai_1, nilai_2, .., niai_n) ;
Atau
INSERT INTO table_name (kolom_1, kolom_2, ..,kolom_n)
VALUE (nilai_1, nilai_2, ,nilai_n) ;
Contoh :
Penyisipan data mahasiswa ke table mahaiswa.
INSERT INTO mahasiswa
VALUE (2003, 204, Maharani ) ;
Atau
INSERT INTO mahasiswa ( thmasuk, nim, nama )
VALUE (2003, 204, Maharani ) ;
Penulisan query untuk menyisipkan data dapat dilakukan dengan 2 cara. Pada cara
pertama, nama kolom yang akan diisikan tidak disebutkan. Dengan cara ini, jumlah
dan urutan kolom yang akan diisis harus sesuai dengan jumlah dan urutan struktur
tabel mahasiswa. Lain halnya dengan cara kedua, nama kolom yang diisi tida harus
sesuai dengan struktur tabel mahasiswa tetapi antara jumlah dan urutan kolom yang
disebutkan harus dengan jumlah dan urutan pada bagiann value. Selain itu, seluruh
kolom yang didefinisikan tidak null (not null) harus selalu diisi dala proses penyisipan
data.

- 55 -
e-Book Hak Cipta 2007

B. MODIFIKASI DATA
Dalam situasi tertentu, diinginkan untuk mengganti nilai dalam tabel tanpa harus
mengganti semua nilai dalam tabel tersebut. Untuk tujuan ini dapat digunakan
statement UPDATE. UPDATE juga dapat digunakan untuk mengubah data yang
terdapat pada baris tertentu.
Syntaks :
UPDATE nama_tabel1
SET
Kolom_1 = nilai_baru_1 ,
Kolom_2 = nilai_baru_2 ,
...
Kolom_3 = nilai_baru_n
[Whare kondisi]
Ada empat hal yang bisa kita lakukan untuk mengubah data dengan UPDATE :
§ Mengubah sebuah kolom untuk baris tertentu.
§ Mengubah beberapa kolom sekaligus
§ Mengubah beberapa baris.
§ Mengubah semua baris.
1. Mengubah kolom tertentu untuk baris tertentu
Mislkan kita ingin mengubah kolom nama menjadi Anita Marani dalam tabel
mahasiswa yang nim-nya = 200.
Data semula :
NIM ThMasuk Nama
200 1999 Nita Mariani

Perintah SQL :
UPDATE mahasiswa
SET nama = ’ Anita Mariani ’
WHERE nim = 200 ;
Data hasil :
NIM ThMasuk Nama
200 1999 Anita Mariani

- 56 -
e-Book Hak Cipta 2007

2. Mengubah beberapa kolom sekaligus


Misalkan diinginkan untuk mengubah beberapa data seorang mahasiswa
Data semula :
NIM ThMasuk Nama
200 1999 Anita Mariani

Perintah SQL :
UPDATE mahasiswa
SET nama = ’ Anita Mariani ’ ,
thmasuk = 2000 ,
WHERE nim = 200 ;
Data hasil :
NIM ThMasuk Nama
200 2000 Anita Mariani

3. Mengubah beberapa baris


Untuk membatasi baris baris yang akan diubah, kiata perlu menggunakan klausa
WHERE. Kondisi yang disertakan di belakang klausa WHERE akan menentukan
berapa banyak baris yang akan diubah. Apabila kondidinya memenuhi syarat
untuk satu baris saj, maka yang akan diubah juga hanya satu baris saja. Namun
bila kondisinya terpenuhi oleh beberapa baris, maka semua baris yang memenuhi
akan ikut diubah.
Contoh :
Perubahan thmasuk mahasiswa yang semula 2001 menjadi 2002.
Data semula :
NIM ThnMasuk Nama
200 1999 Nita Mariana
201 1999 Fitri Lutfia
202 2000 Farhan Saleh
234 2000 Romi Amanda
323 2000 Emilia
324 2000 Fery Aryanto
325 2000 Miranda Jamil

- 57 -
e-Book Hak Cipta 2007

400 2001 Astrina Damayanti


425 2001 Gogon Nandito
426 2001 Ananda Miranti

Contoh :
UPDATE mahasiswa
SET thmasuk = 2002
WHERE thmasuk = 2001
Data hasil :
NIM ThnMasuk Nama
200 1999 Nita Mariana
201 1999 Fitri Lutfia
202 2000 Farhan Saleh
234 2000 Romi Amanda
323 2000 Emilia
324 2000 Fery Aryanto
325 2000 Miranda Jamil
400 2002 Astrina Damayanti
425 2002 Gogon Nandito
426 2002 Ananda Miranti

4. Mengubah semua baris


Untuk mengubah semua baris, kita tidak perlu menuliskan klausa WHERE
sebagai pembatas.
Contoh :
UPDATE mahasiswa
SET thmasuk = 2003 ;
Dengan perintah diatas, maka seluruh baris dalam tabel mahasiswa pada kolom
thmasuk akan diisi dengan 2003

- 58 -
e-Book Hak Cipta 2007

C. PENGHAPUSAN DATA (DELETION)


Untuk menghapus baris-baris yang terdapat pada suatu tabel dapt digunakan
pernyataan DELETE. Yang dapat dihapus (delete) hanyalah tuple bukan nilai pada
suau atribut tertentu.
Sintaks :
DELETE FROM nama_tabel
[WHERE kondisi] ;
Penghapusan data pada suatu tabel yang menjadi referensi (master) dari tabel lain
tidak dapat dilakukan apabila sifat relasinya on de;ete no action. Tetapi jika
sifatrelasinya on delete cascade akan penghapusan suatu data master akan
mengakibatkan terhapusnya data pada tabel yang mereferensi (detail). Sebagai contoh
adalah pada relasi antar tabel mahasiswa dengan tabel KRSTeori. Relasi kedua tabel
tersebut tampak pada gambar 9.1. dalamrelasi mereka NIM pada tabel tersebut
tampak pada tabel 10.1 dan 10.6, aka pada sifat relasi on delete no action
penghapusan data mahaisawa dengan NIM 200 tidak bisa dilakukan, karena sedang
digunakan pada tabel KRSTeori. Tetapi sifat relai on delete on cascade, maka
penghapusan data mahasiswa dengan NIM 200 akan mengakibatkan penghapusan
semua data ada KRSTeoti dengan NIM 200.

Mahasiswa Mahasiswa

PK Kelas
PK NIM
PK,FK1 KodeKul
ThMasuk PK,FK2 NIM
Nama Nilai

Gambar 9.1 Relasi tabel Mahasiswa dan KRSTeori


Ada dua penggolongan dalam menghapus tabel :
§ Menghapus beberapa baris
§ Menghapus semua baris
1. Menghapus beberapa baris
Seperti pada bagian modifikasi data, penghapusan data pada baris-baris tertentu
memerlukan klausa WHERE sebagai pembatasan baris dengan kondisi bagaimana
yang akan dihapus.
Contoh :
Menghapus data KRSTeori yang memiliki kelas-nya – ’A’

- 59 -
e-Book Hak Cipta 2007

Data semula :
Kelas KodeKul NIM Nilai
A SD 200 23
A SD 201 43
B SD 200 65
B SD 234 85
A SPBD 323 35
A SPBD 324 76
B SPBD 234 45
A PT 234 87
A PT 202 45

Perintah SQL :
DELETE FROM KRHTeori
WHERE Kelas = A
Data hasil :
Kelas KodeKul NIM Nilai
B SD 200 65
B SD 234 85
B SPBD 234 45

2. Menghapus semua baris


Untuk menghapus semua baris dalam suatu table, tidak diperlukan adanya
pembatasan kondisi sehingga sintaknya tidak memerlukan klausa WHERE.
Contoh :
Penghapusan seluruh isi dari table mahasiswa berikut :
DELETE FROM mahasiswa ;

D. SOAL LATIHAN
Perhatikan table mahasiswa berikut :
NIM Nama Alamat
1 Ana Jamaica frinsca Klaten
2 Edi mailoloho Yogya

- 60 -
e-Book Hak Cipta 2007

3 Edna jurica Yogya


4 Emilia Anastasia Klaten
5 Famili yogya

1. sebutkan isi table mahasiswa jika dijalankan perintah SQL berikut :


update ahasiswa Set Nama = ’Jamaica Endrina ’ Where NIM = 3 ;
2. buatlah bahasa SQL untuk menambahan mahasiswa dengan NI 6 dan Nama
Edmon.
3. Buatlah bahasa SQL untuk menghapus data mahasiswa yang beralamat di klaten.
Tunjukan hasilnya!

- 61 -
e-Book Hak Cipta 2007

BAB X
MENGAKSES DATA

Untuk membantu memahami pemahaman mengenai SQL, perhati9kan relasi basis


data berikut :

KRSPraktikum Mahasiswa KRSTeori


PK Kelas PK Kelas
PK NIM PK, Fk1 KodeKul
PK, Fk1 KodeKul
PK, Fk2 NIM PK, Fk2 NIM
ThnMasuk
Nama
Nilai Nilai

Matakuliah

PK KodeKul

Kuliah
SKSTeoril
SKSPraktek

KuliahPraktikum
PK, Fk2 Kelas KuliahTeori
PK, Fk2 KodeKu
Dosen PK, Fk2 Kelas
PK, Fk2 KodeKu
Fk NIP PK NIP
Lab
Nama Fk NIP

Gambar 10.1 Relasi antar tabel

Dengan asumsi isi dari tabel-tabel dala basis data adalah sebagai berikut :
Tabel 10.1 Isi tabel Mahasiswa

NIM ThnMasuk Nama


200 1999 Nita Mariana
201 1999 Fitri Lutfia
202 2000 Farhan Saleh
234 2000 Romi Amanda
323 2000 Emilia
324 2000 Fery Aryanto

- 62 -
e-Book Hak Cipta 2007

325 2000 Miranda Jamil


400 2001 Astrina Damayanti
425 2001 Gogon Nandito
426 2001 Ananda Miranti

Tabel 10.2 Isi tabel Dosen


NIP Nama
066 Kusrini, M.Kom
067 Erik H.S, S.Kom
068 Khusnawi, S.Kom
056 Suyanto, MM

Tabel 10.3 Isi tabel Matakuliah


KodeKul Kuliah SKSTeori SKSPraktek
SD Struktur data 2 1
SPBD Bais Data 2 2
MM Multimedia 2 0
PT Pengenalan Pascal 0 2

Tabel 10.4 Isi tabel KuliahTeori


Kelas KodeKul NIP
A SD 066
B SD 067
A SPBD 068
B SPBD 066
A MM 056

Tabel 10.5 Isi tabel KuliahPraktikum


Kelas KodeKul NIP Lab
A SD 068 I
B SD 066 I
A SPBD 066 I
B SPBD 067 II
A MM 067 II

- 63 -
e-Book Hak Cipta 2007

Tabel 10.6 Isi tabel KRSTeori


Kelas KodeKul NIM Nilai
A SD 200 40
A SD 202 80
B SD 234 50
B SD 323 30
A SPBD 200 15
A SPBD 234 100
B SPBD 324 25
B SPBD 323 34
A MM 324 65

Tabel 10.7 Isi tabel KRSTeori


Kelas KodeKul NIM Nilai
A SD 200 23
A SD 201 43
B SD 200 65
B SD 234 85
A SPBD 323 35
A SPBD 324 76
B SPBD 234 45
A PT 234 87
A PT 202 45

A. STRUKTUR BAHASA
Struktur dasar dari ekspresi SQL terdiri dari tiaga klausa, yaitu : select, form, dan
where. Klausa Select berhubungan dengan operasi proyeksi dari aljabar relasional.
Operasi ini digunakan untuk mendaftar semua atributyang diinginkan sebagai hasil
suau query. Klausa Form berhubungan dengan operasi Cartesian-product dari aljabar
relasional. Operasi ini mencatat semua relasi yang di”scan” dalam evaluai suatu
query. Klausa opersi ini terdiri dari sebuah predikat seleksi dari aljabar relasional.
Operasi ini terdiri dari sebuah predikat yang menyangkut atribut-atribut relasi yang
muncul dalam klausa from.
Sebuah query SQL biasanya mempunyai bentuk :
Select kolom_1 , Kolom_2 , ... Kolom_n

- 64 -
e-Book Hak Cipta 2007

Form Tabel_1 , Tabel_2 , … Tabel_n


Where Kondisi
1. Klausa Select
Contoh : ” tentukan nama-nama mahasiswa dari relasi Mahasiswa”.
Query-nya :
Select nama form Mahasiswa
Hasil dari query terebut adalah sebuah relasi sebuah atribut tunggal dengan nama
nama.
Bahasa query formal bersifat matematis dimana relasi adalah sebuah himpunan
sehingga tuple-tuple yang telah muncul tidak akan muncul lagi (tidak akan terjadi
duplikasi tuple).
Tapi dalam prakteknya untuk menghilangkan duplikasi tuple sangat memakan
waktu. Oleh karenanya itu SQL memungkinkan terjadinya duplikasi tersebut. Dari
contoh di atas, maka query-nya akan mencatat setiap nama_mhs setiap kali -
nama_mhs tersebut ditentukan dalam relasi Mahasiswa.
Untuk kasus diatas jika diinginkan untuk menghilangkan duplikasi, maka dapat
disisipkan perintas distinct setelah select. Jika tuple yang terduplikasi diinginkan
hilang maka query diatas ditulis ulang sebagai berikut :
Klausa select dapat juga mengandung operasi aritmatika yaitu operator : +, -, *, /
dan operasi terhadap konstanta atau atribut dari tuple.
Contoh query berikut :
Select K.NIM, K.KodeKul, K.Nilai * M.SKSTeori
Form MataKuliah M, KRSTeori K
Where M.KodeKul = K.KodeKul
SQL-92 juga menyediakan tipe data spesial seperti tipe date dan memungkinkan
beberapa fungsi aritmatika untuk beroperasi pada tipe-tipe ini.
Untuk menampilkan semua kolom dari suatu tabel, bisa digunakan * sebagai
pengganti penyebutan nama-nama kolomnya. Misalnya untuk menampilkan
semua kolom pada tabel mahasiswa.
2. Klausa Where
Contoh query : ”temukan semua NIM dari relasi mahasiswa yang namanya Gogon
Nandito”.
Query-nya ditulis sebgai berikut :
Select NIM

- 65 -
e-Book Hak Cipta 2007

Form Mahasiswa
Where nama = `Gogon Nandito’
SQL menggunakan konektivitas logika and, or, dan not dalam klausa where.
SQL juga memiliki perintah between untuk menentukan apakah suatu nilai lebih
kecil dari pada atau sama dengan suatu nilai dan lebih besar dari pada atau sama
dengan suatu nilai lain.
Contoh : untuk menentukan data mahasiswa yang nim-nya antara 210 dan 400,
ditulis sebagai berikut :
Select *
Form Mahasiswa
Where NIM between 210 and 400
Query tersebut akan menghasilkan daftar sebagai berikut :
ThMasuk NIM Nama
2000 234 Romi Amanda

2000 323 Emilia

2000 324 Fery Aryanto

2000 325 Miranda Jamil


2001 400 Astrina Damayanti

3. Klausa Form
From digunakan untuk menyebutkan nama tabel sumber data yang akan diambil.
Contoh : ”contoh semua data yang masuk pada tahun 2001, tentukan NIM dan
Namanya”.
Dalam SQL ditulis :
Select NIM, Nama
Form Mahasiswa
Where ThMasuk = 2001
4. Operasi Rename / Alias
SQL menyediakan mekanisme operasional rename untuk relasi dan atribut.
Operasional rename dalam SQL menggunakan klausa as dengan bentuk :
Nama lama as nama baru
Contoh : jika atribut dengan nama ThMasuk akan diganti dengan nama Angkatan,
dapat ditulis sebagai berikut :

- 66 -
e-Book Hak Cipta 2007

Select Nama, ThMasuk as Angkatan


Form Mahasiswa
Where NIM = 234
Qurey tersebut akan menghasilkan daftar sebagai berikut :
Nama Angkatan
Romi Amanda 2000

B. OPERASI HIMPUNAN
Operasi-operasi himpunan pada SQL-92 meliputi : union, intersect, dan except.
Union identik dengan U (gabungan ). Intersect identik dengan (irisan) dan
expect (tidak) identik ~ pada aljabar relasional.

1. Operasi Union
Operasi ini digunakan untuk menggabungkan hasil dari beberapa query.

Tabel 1 Tabel 2

Contoh :
a. Untuk mendapatkan semua mata kuliah yang ditawarkan di kuliah teori.
Select KodeKul from KuliahTeori
Hasilnya : ”MM” , ”SD” dan ”SPBD”.
b. Untuk mendapatkan semua mata kuliah yang ditawarkan di kuliah praktikum
Select KodeKul from KuliahPraktikum
Hasilnya : ”PT” , ”SD” , ”SPBD”.
c. Untuk mendapatkan semua mata kuliah yang ditawarkan dikuliah teori atau
praktikum.
(Select KodeKul from KuliahTeori)
Union
(select KodeKul from KuliahPraktikum)
Hasilnya : “MM” , “PT” , “SD” dan “SPBD”

- 67 -
e-Book Hak Cipta 2007

Operasi union akan menampilkan semua hasil pencarian pada seleksi pertama
dan seleksi kedua secara unik. Apabila terdapat duplikasi maka yang akan
ditampilkan hanya salah satu. Jika diinginkan adanya akan ditulis ulang
dengan bentuk :
(Select KodeKul from KuliahTeori)
Union all
(select KodeKul from KuliahPraktikum)
2. Operasi Intersect
Operasi intersect digunakan ketika diinginkan hasil dari 2 query, dimana yang
ditampilkan adalah yang memenuhi kedua query tersebut.

Tabel 1 Tabel 2

Dengan menggunakan Contoh 1 dan 2 pada Bab 7, akan ditampilkan daftar mata
kuliah yang ditawarkan baik dikuliah teori maupun di kuliah praktikum. Bentuk
query-nya akan menjadi :
(Select KodeKul from KuliahTeori)
Intersect
(select KodeKul from KuliahPraktikum)
Hasil dari query tersebut adalah : ”SD dan ”SPBD”
Operai intersect secara otomatis menghilangkan duplikasi. Jika diinginkan
duplikasi tetap ada ditulis intersect all, sehingga query-nya menjadi :
(Select KodeKul from KuliahTeori)
Intersect all
(select KodeKul from KuliahPraktikum)
Sehingga hasilnya menjadi ”SD”, ”SPBD”, ”SD” dan ”SPBD”.
3. Operasi Except
Operasi except digunakan untuk menampilkan hasil dari 2 buah query dimana,
hasil yang akan ditampilkan adalah semua hasil query pertama yang tidak terdapat
dalam hasil query kedua.

Tabel 1 Tabel 2

- 68 -
e-Book Hak Cipta 2007

Contoh : untuk mendapatkan semua mahasiswa yang mengikuti kuliah teori tetapi
tidak mengikuti kuliah praktikum, ditulis :
(select KodeKul from KuliahTeori)
except
(select KodeKul from KuliahPraktikum)
Dari query tersebut akan dihasilkan : ”MM”
Operasi except secara otomatis menghilangkan duplikasi. Jika diinginkan ada,
maka tulis : except all.

C. FUNGSI-FUNGSI AGREGASI
Operator agregasi merupakan salah satu bahasan penting materi SQL dalam
perbandingan dengan relasi aljabar. Dalam relasi aljabar, semua kondidsi dinilai satu
saat : satu kondisi selalu merupakan sbuah predikat yang dinilai pada masing-masing
tuple secara terpeisah laiinnya.
Sering terjadi diinginkan untuk menilai sebuah properti yang tergantung pada
sekelompok tuple. Misalnya ingin diketahui jumlah peserta yang ikut kuliahteori, atau
rata-rata nilai mahasiswa pada suatu mata kuliah.
Yang termasuk operator dari kata avarage, akan mengembalikan nilai rata-rata dari
suatu atribut. Min berasal dari kata minimum, akan mengembalikan nilai tekecil dari
suatu atribut. Max berasal dari kata maximum, akan mengembalikan nilai besar dari
suatu artibut. Sum mengembalikan jumlah item dari suatu atribut.
Fungsi-fungs diatas telah tersedia. Input untuk avg, sum, min dan max harus bertipe
numerik. Sementara untuk operator count dapat bertipe non-numerik.
Bentuk umum dari fungsi agregasi adalah :
Select avg I min I max I sum I count (nama_kolom)
From nam_tabel
[Where kondisi]
Contoh :
1. untuk mendapatkan rata-rata nilai mahasiswa yang ikut kuliah teori, gunakan
sintaks berikut :

- 69 -
e-Book Hak Cipta 2007

Select avg (nilai)


From KRSTeori
2. untuk mendapatkan jumlah peserta kuliah teori, gunakan sitaks berikut :
Select count (* )
From KRSTeori
Jika fungsi agregasi ingin diterapkan pada kelompok himpunan tuple, maka gunakan
klausa group bye. Nama atribut/kel. Atribut dalam bahasa klausa group by digunakan
untuk membentuk gruop/kelompok. Artinya tuple-tuple yang mempunyai nilai yang
sama pada semua atribut dalam bahasa klausa group-by dimasukan dalam satu
group/kelompok. Bentuk umum dari klausa ini adalah :
Select kolom_1, kolom_2, ....kolom_n
[, avg I min I max I sum I Count (kolom_n+1)]
From nam_tabel
[Where kondisi]
Group by kolom_1, kolom_2, ....kolom_n
Contoh :
Untuk mencari jumlah peserta kuliah teori yang dikelompokan berdasarkan mata
kuliahnya :
Select KodeKul, Count ( * ) as Jumlah
From KRSTeori
Group by KodeKul

Query tersebut akan menghasilkan :


KodeKul Jumlah
MM 1
SD 4
SPBD 4

Jika suatu fungsi diterapkan pada group/kelompok yang dibentuk oleh group by, maka
dapat digunakan pada klausa having setelah group by. Bentuk umum dari klausa ini
menjadi :
Select kolom_1, kolom_2, ....kolom_n
[, avg I min I max I sum I Count (kolom_n+1)]

- 70 -
e-Book Hak Cipta 2007

From nam_tabel
[Where kondisi]
Group by kolom_1, kolom_2, ....kolom_n
Having avg I min I max I sum I Count (kolom_n+1)
Contoh :
Untuk menampilkan mata kuliah teori yang mempunyai rata-rata nilai mahasiswanya
diatas 45, gunakan sintaks berikut :
Select KodeKul, avg (Nilai ) as Nilai
From KRSTeori
Group by KodeKul
Having avg (Nilai) > 45
KodeKul Nilai
MM 65
SD 50

Atau :
Select KodeKul
From KuliahTeori
Group by KodeKul
Having avg (Nilai) > 75
Hasilnya :
Nilai
65
50

Having memiliki fungsi hampir sama dengan where, yaitu sama-sama memberi
batasan dari tuple yang akan ditampilkan. Namun ada perbedaan antara where dengan
having. Where digunakan untuk membatasi pada level tuple, sedangkan having
memberi batasan pada level group.
Fungsi agregasi count sering digunakan untuk menghitung jumlah tuple dalam suatu
relasi. Notasi fungsi ini dalam SQL adalah count ( * ). Jadi untuk mentukan jumlah
tuple dalam relasi mahasiswa, ditulis :
Select count ( * ) from mahasiswa

- 71 -
e-Book Hak Cipta 2007

D. SOAL LATIHAN
Dengan menggunkan table yang memiliki relasi seperti tergambar pada Gambar 10.1
dan data pada table 10.1 sampai 10.7, buatlah query untuk :
1. Menampilkan seluruh data mahasiswa dari tabel mahasiswa.
2. Menempilkan alamat asal mahasiswa (unik).
3. Menampilkan jumlah kelas teori berdasarkan mata kuliah.

BAB XI
QUERY ANTAR TABEL

A. JOIN ANTAR TABEL


Ada kalanya diperlukan suatu informasi yang merupakan gabungan dari beberapa tabel.
Misalnya diinginkan data NIM (tabel Mahasiswa), nama (tabel Mahasiswa). Kodekul (tabel
krsteori).

- 72 -
e-Book Hak Cipta 2007

NIM NAMA KODEKUL NILAI


324 Fery Arianto MM 65
200 Nita Mariani SD 40
202 Farhan Saleh SD 80
200 Nita Mariani SPBD 15
234 Romi Amanda SPBD 100
234 Romi Amanda SD 50
323 Emilia SD 30
323 Emilia SPBD 34
324 Fery Aryanto SPBD 25

B. QUERY DENGAN DUA BUAH TABEL


Untuk menghasilkan informasi seperti tertera pada table 11.1 diperlukan query dengan 2 buah
table, yaitu table mahasiswa dan table KrsTeori. Adapun bentuk query-nya adalah sebagai
berikut :
SELECT mahasiswa.NIM ,
Mahasiswa.nama ,
From mahasiswa , krsteori
Where mahasiswa.NIM = krsteori.NIM
Bentuk umum query 2 buah table atau lebih adalah sebagai berikut :
SELECT Tabel1. Kolom1 , Tabel1.Kolom2 , ...,
Tabel1.Kolomn ,
Tabel2.Kolom1 , Tabeln.Kolom2 , ...,
Tabel2.Kolomn , ...
Tabeln.Kolom1 , Tabeln.Kolom2 , ...,
Tabeln.Kolomn
FROM Tabel1 , Tabel2 , ..., Tabeln
Where kondisi ;

C. MENGGUNAKAN ALIAS
Nama tabel yang digunakan dalam query antar tabel bisa diberikan nama alias. Bentuk
pemberian nama alias :
SELECT alias1.kolom , alias2.kolom
FROM tabel1 alias1 , tabel2 alias2
WHERE kondisi ;

- 73 -
e-Book Hak Cipta 2007

Dalam hal ini, kondisi bisa menggunkan alias juga. Sebagai contoh, perhatikan
perintah dibawah ini :
SELECT m.NIM , m.nama
k.kodekul , k.nilai
FROM mahasiswa m , krsteori k
WHERE m.NIM = m..NIM

D. PERKALIAN ALIAS
Bentuk paling sederhana dari penggabungan dua buah table akan membentuk
perkalian kartesian (cartesian product) atau biasa juga disebut cross join atau full
join. Hal ini diperoleh kalu klausa WHERE tidak disebutkan. Sebagai contoh,
perkalian kartesian adalah sebagai berikut :
SELECT * FROM mahasiswa , krsteori
Pada prakteknya, operasi seperti ini jarang berguna dan dapat menimbulkan proses
yang sangat lama sekiranya masing-masing tabel mengandung data yang besar.

E. EQUIJOIN
Yang disebut dengan adalah penggabungan antar tabel yang menggunakan operator
sama dengan ( = ) pada kondisi dalam klausa WHERE untuk membandingkan satu
kolom dengan kolom lainya. Contoh-cotoh diatas tadi merupakan contoh equijoin.

F. SELF-JOIN
Self-join merupakan upaya penggabungan ari tabel yang sama. Misalnya, untuk
memperoleh pasangan nama mahasiswa yang NIM-nya < = 300 dengan mahasiswa
dengan NIM > 300 seperti tertera a\pada query berikut :
SELECT x . nama , y . nama
FROM mahasiswa x , mahasiswa y
WHERE x . nim < = 300
And y . nim > 300
Hasil dari query tersebut adalah seperti tercantum dibawah ini :
NAMA NAMA
Nita Mariani Emilia
Fitri Lutfia Emilia

- 74 -
e-Book Hak Cipta 2007

Farhan Saleh Emilia


Romi Amanda Emilia
Nita Mariani Fery Arianto
Fitri Lutfia Fery Arianto
Farhan Saleh Fery Arianto
Romi Amanda Fery Arianto
Nita Mariani Miranda Jamil
Fitri Lutfia Miranda Jamil
Farhan Saleh Miranda Jamil
Romi Amanda Miranda Jamil
Nita Mariani Astrina Damayanti
Fitri Lutfia Astrina Damayanti
Farhan Saleh Astrina Damayanti
Romi Amanda Astrina Damayanti
Nita Mariani Gogon Nandito
Fitri Lutfia Gogon Nandito
Farhan Saleh Gogon Nandito
Romi Amanda Gogon Nandito
Nita Mariani Ananda Mirtani
Fitri Lutfia Ananda Mirtani
Farhan Saleh Ananda Mirtani
Romi Amanda Ananda Mirtani

G. INNER JOIN DAN OUTTER JOIN


Equijoin seringkali dibedakan menjadi dua kategori, yaitu inner wquijoin (atau
disingkat inner join) dan outer equijoin (atau disingkat outer join).
Untuk melihat perbedaan kedua macam equijoin ini, dilakukan qurey berikut :
Contoh Inner Join :
SELECT d . nip , d . nama , k . kodekul
FROM dosen d , kuliahpraktikum k
WHERE d . nip = k . nip

- 75 -
e-Book Hak Cipta 2007

Hasilnya :
NIP NAMA KODEKUL
67 Erik Hadi Saputra, S.Kom PT
66 Kusrini, M.Kom SD
67 Erik Hadi Saputra, S.Kom SD
66 Kusrini, M.Kom SPBD
68 Khusnawi, S.Kom SPBD

Contoh Left Join :


SELECT d . nip , d . nama , k . kodekul
FROM dosen d , LEFT JOIN kuliahpraktikum k
ON d . nip = k . nip
Hasilnya :
NIP NAMA KODEKUL
65 Suyanto, MM NULL
67 Erik Hadi Saputra, S.Kom SD
66 Kusrini, M.Kom SPBD
67 Erik Hadi Saputra, S.Kom PT
66 Kusrini, M.Kom SD
68 Khusnawi, S.Kom SPBD

Contoh Right Join :


SELECT d . nip , d . nama , k . kodekul
FROM dosen d , RIGHT JOIN kuliahpraktikum k
ON d . nip = k . nip
Hasilnya :
NIP NAMA KODEKUL
67 Erik Hadi Saputra, S.Kom PT
66 Kusrini, M.Kom SD
67 Erik Hadi Saputra, S.Kom SD
66 Kusrini, M.Kom SPBD
68 Khusnawi, S.Kom SPBD

- 76 -
e-Book Hak Cipta 2007

Contoh Full Join :


SELECT d . nip , d . nama , k . kodekul
FROM dosen d , FULL JOIN kuliahpraktikum k
ON d . nip = k . nip
Hasilnya :
NIP NAMA KODEKUL
65 Suyanto, MM NULL
67 Erik Hadi Saputra, S.Kom SD
66 Kusrini, M.Kom SPBD
67 Erik Hadi Saputra, S.Kom SD
66 Kusrini, M.Kom PT
68 Khusnawi, S.Kom SPBD

Dengan menggunakan inner join, informasi yang ditampilkan adalah berasal dari dua
tabel yang berisi data sesuai dengan syarat dibelakang on (tidak boleh null). Dengan
kata lain semua data dari tabel kiti mendapat pasangan data dari tabel sebelah kanan.
Dengan menggunakan right join, semua informasi yang ditampilakan adalah data dari
tabel sebelah kanan statement right join beserta pasangannya dari tabel sebelah kiri.
Meskipun ada data tersebut tetap ditampilkan dengan pasangan dengan NULL.
Pada full join, informasi yang ditampilakan adalah dari kedua tabel, baik kiri maupun
kanan statement full join dengan paaangannya. Bagi data yang tidak memiliki
pasangan akan diberi pasangan dengan NULL.
Inner join bisa dilakukan terhadap lebih dari dua tabel. Dalam inner join penambahan
tabel dapat dilakukan seperti pada contoh berikut ini :
SELECT d . nip , d . nama , k . kodekul , M . Kuliah
FROM dosen d , kuliahpraktikum k , matakuliah m
WHERE d . nip = k . nip
ON K . KodeKul = M . KodeKul
Sementara pada outer join, join hanya dapat dilakukan terhadap 2 tabel. Apabila
diinginkan untuk menjoin terlebih dari 2 tabel, maka 2 tabel pertama harus di-join
terlebih dahulu untuk kemudian hasil join tersebut dianggap sebagai satu tabel dan
dapat di-join habis. Berikut adalah contoh join 3 tabel dengan manggunakan right join
:

- 77 -
e-Book Hak Cipta 2007

SELECT d . nip , d . nama , k . kodekul , M . Kuliah


FROM ( dosen d , Right Join kuliahpraktikum k , matakuliah m
ON d . nip = k . nip )
Right Join Matakuliah M
ON K . KodeKul = M . KodeKul

H. QUERY BERSARANG (NESTED QUERY)


Subquery tersarang biasanya digunakan untuk melakukan test keanggotaan himpunan,
perbandingan himpunan, dan kardinalitas himpunan.

I. KEANGGOTAAN HIMPUNAN
Untuk melakuakan test keanggotaan himpunan digunakan in dan not in.
Contoh :
Untuk mendapatkan semua nim dan nama mahasiswa yang nimnya terdaftar dalam
krsteori.
SELECT nip , nama
FROM mahasiswa
WHERE nim in

( SELECT in FROM krstoeri )

J. PERBANDINGAN HIMPUNAN
Perhatikan query berikut : “Temukan nim mahasiswa yang mendapatkan nilai SPBD
lebih dari nilai dari nilai SPBD yang diperoleh mahasiswa dengan NIM 200”.
Query-nya nim
SELECT nim
FROM krsteori
WHERE nilai > all

( SELECT nilai

FROM krstoeri

WHERE nim = 200

AND kodekul = ‘SPBD’ )

AND kodekul = ‘SPBD’

- 78 -
e-Book Hak Cipta 2007

K. SOAL LATIHAN

Dengan menggunakan tabel yang memiliki relasi seperti tergambar pada Gambar 10.1
dan data pada Tabel 10.1 s/d 10.7, buatlah quey untuk :

1. Menampilan data mahasiswa yang mengambil mata kuliah teori yang diambil,
SD.

2. Menampilkan data mahasiswa beserta mata kuliah teori yang diambil, terdiri dari
: NIM, Nama, KodeKul, SKS, Nilai.

3. Tampak data mahasisawa beserta indeks prestasi komulatif (IPK) dengan


tampilan : NIM, NAMA, IPK.

- 79 -
e-Book Hak Cipta 2007

DAFTAR PUSTAKA

Fatansyah, 1999.Basis data. Bandung ; Penerbit Informatika.

Kadir, A 2002.Penuntun Praktis Belajar SQ,.Yogyakarta: Penerbit ANDI.

Korth, H.F. & Silberschats A. 1991. Database System Concepts. C.Graw Hill

Kristanto, H., 1994. Konsep dan Perancangan Database. Yogyakarta : Penerbitan


ANDI.

Kroenke, D.M 2005. Database Processing : Dasar-dasar, Desain dan Implementasi.


Penerbit Erlangga.

- 80 -

You might also like