Erd Penggajian
Erd Penggajian
Erd Penggajian
Dan
Pengolahan Basis Data
Kusrini, M.Kom.
KATA PENGANTAR
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.
Penulis
-1-
e-Book Hak Cipta 2007
DAFTAR ISI
-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
-5-
e-Book Hak Cipta 2007
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.
-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
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.
-8-
e-Book Hak Cipta 2007
-9-
e-Book Hak Cipta 2007
NM Kode
1 A
1 B
1 C
2 A
2 B
3 C
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.
- 11 -
e-Book Hak Cipta 2007
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.
- 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.
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
- 16 -
e-Book Hak Cipta 2007
Gambar di bawah ini menunjukan level-level yang ada dalam arsiktektur sistem basis
data.
View level
Dosen
Physical level
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
- 19 -
e-Book Hak Cipta 2007
Perguruan Tinggi
STMK AMKOM
Yogyakarta
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
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
- 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 :
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 ;
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
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.
Untuk entitas Mahasiswa, atribut yang terlibat yaitu : NIM, Nama., Alamat,
Jurusan.
Untuk entitas Dosen, atribut yang terlibat adalah : NIP, Nama, Alamat.
- 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
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
Mengik
Kod_Matkul
ut
NIP NIP
alamat
Nama Dosen
Dosen
- 26 -
e-Book Hak Cipta 2007
alamat
Nama Dosen Kod_Matkul Kod_Matkul SKS
Dosen
Mengajar
Dosen Matakuliah
Mengik
Kod_Matkul
ut
NIP NIP
alamat
Nama Dosen
Dosen
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
Nama
Dosen
Nama
Dosen
Jurusan Mengik
I ut
Kod_Jurusan NIM
Kod_Jurusan
- 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}
- 32 -
e-Book Hak Cipta 2007
Dosen
Pembimbing
Dokter
Pasangan
BAB VII
- 33 -
e-Book Hak Cipta 2007
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.
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.
- 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
Dokumen dasar :
- 38 -
e-Book Hak Cipta 2007
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 …
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
Total : 12
SKS
IPK : 2.92
- 40 -
e-Book Hak Cipta 2007
- 41 -
e-Book Hak Cipta 2007
BAB VIII
BAHASA BASIS DATA
- 42 -
e-Book Hak Cipta 2007
- 43 -
e-Book Hak Cipta 2007
- 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
- 47 -
e-Book Hak Cipta 2007
KELAS KELAS
PK PK PK KODE
IDKELAS
KODE
MATAKULIAH
NIP SKS
PK
KELAS
PK
NIP
NAMA
- 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
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
- 51 -
e-Book Hak Cipta 2007
- 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.
- 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
Perintah SQL :
UPDATE mahasiswa
SET nama = ’ Anita Mariani ’ ,
thmasuk = 2000 ,
WHERE nim = 200 ;
Data hasil :
NIM ThMasuk Nama
200 2000 Anita Mariani
- 57 -
e-Book Hak Cipta 2007
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
- 58 -
e-Book Hak Cipta 2007
Mahasiswa Mahasiswa
PK Kelas
PK NIM
PK,FK1 KodeKul
ThMasuk PK,FK2 NIM
Nama Nilai
- 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
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
- 61 -
e-Book Hak Cipta 2007
BAB X
MENGAKSES DATA
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
Dengan asumsi isi dari tabel-tabel dala basis data adalah sebagai berikut :
Tabel 10.1 Isi tabel Mahasiswa
- 62 -
e-Book Hak Cipta 2007
- 63 -
e-Book Hak Cipta 2007
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
- 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
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
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
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
- 72 -
e-Book Hak Cipta 2007
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
- 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
- 76 -
e-Book Hak Cipta 2007
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
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
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
- 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.
- 79 -
e-Book Hak Cipta 2007
DAFTAR PUSTAKA
Korth, H.F. & Silberschats A. 1991. Database System Concepts. C.Graw Hill
- 80 -