Erd Penggajian

81
Strategi Perancangan Dan Pengolahan Basis Data Kusrini, M.Kom. Penerbit ANDI Yogyakarta

Transcript of Erd Penggajian

Page 1: Erd Penggajian

Strategi PerancanganDan

Pengolahan Basis Data

Kusrini, M.Kom.

Penerbit ANDI Yogyakarta

Page 2: Erd Penggajian

e-Book

- 1 -

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

Page 3: Erd Penggajian

e-Book

- 2 -

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

Page 4: Erd Penggajian

e-Book

- 3 -

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

Page 5: Erd Penggajian

e-Book

- 4 -

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.

Page 6: Erd Penggajian

e-Book

- 5 -

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

Page 7: Erd Penggajian

e-Book

- 6 -

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.

Page 8: Erd Penggajian

e-Book

- 7 -

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

Page 9: Erd Penggajian

e-Book

- 8 -

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

Page 10: Erd Penggajian

e-Book

- 9 -

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

Page 11: Erd Penggajian

e-Book

- 10 -

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.

Page 12: Erd Penggajian

e-Book

- 11 -

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

Page 13: Erd Penggajian

e-Book

- 12 -

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 DATABeberapa 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 LATIHAN1. 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!

Page 14: Erd Penggajian

e-Book

- 13 -

Hak Cipta 2007

BAB II

KONSEP DASAR SISTEM BASIS DATA

A. SISTEMSistem 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 DATASistem 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.

Page 15: Erd Penggajian

e-Book

- 14 -

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

Page 16: Erd Penggajian

e-Book

- 15 -

Hak Cipta 2007

lain ini merupakan komponen tambahan dalam system basis data yang sifatnya

opsional.

C. SOAL LATIHAN1. Apa perbedaan basis data dan system basis data?

2. Sebutkan elemen-elemen yang menyusun system basis data!

Page 17: Erd Penggajian

e-Book

- 16 -

Hak Cipta 2007

BAB III

ARSITEKTUR SISTEM BASIS DATA

A. ARSITEKTUR SISTEM BASIS DATAArsitektur 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.

Page 18: Erd Penggajian

e-Book

- 17 -

Hak Cipta 2007

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

data.

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!

View level

View 1

Physical level

Dosen

View 1 View n…

Page 19: Erd Penggajian

e-Book

- 18 -

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.

Page 20: Erd Penggajian

e-Book

- 19 -

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.

Page 21: Erd Penggajian

e-Book

- 20 -

Hak Cipta 2007

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.

Perguruan Tinggi

STMK AMKOMYogyakarta

Mata kuliah

Basis Data

Dosen

Kusrini

Dosen

Andi Sunyoto

Dosen

Kusrini

Dosen

Kusrini

Dosen

Kusrini

Matakuliah

Sistem Pakar

Matakuliah

Struktur Data

Page 22: Erd Penggajian

e-Book

- 21 -

Hak Cipta 2007

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

PerguruanTinggi

STMKAMKOM

Mata kuliah

Basis Data

Dosen

Andi Sunyoto

Dosen

Kusrini

Dosen

Hanill al Fatta

Matakuliah

Sistem Pakar

Matakuliah

Struktur Data

Page 23: Erd Penggajian

e-Book

- 22 -

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

Page 24: Erd Penggajian

e-Book

- 23 -

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 Jurusan1001 Rita Yogya MI1002 Aini MI1003 Rita Magelang SI1004 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

Page 25: Erd Penggajian

e-Book

- 24 -

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

HobbyNama KeteranganHikingClimbing Suka naik gunung itu lhoRenang

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.

Page 26: Erd Penggajian

e-Book

- 25 -

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) yangakan 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 antarahimpunan entitas-himpunam entitas yang ada beserta foreign key-nya.

Page 27: Erd Penggajian

e-Book

- 26 -

Hak Cipta 2007

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

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

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

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

Jika digambar akan tampak seperti pada gambar 5.5 berikut ini :

Gambar 5.5 Relasi Agregasi5. Menentukan derajat/kardinalitas relasi untuk setiap himpunan relasi

Nama

alamat

Nama

Dosen Mengajar Matakuliah

Kod_MatkulSKS

NIPNIP

NamaDosen

alamatDosen

Nama

Dosen Mengajar Matakuliah

Kod_Matkul SKSKod_Matkul

NIP NIP

Mengikut

NIPNIP

Kod_Matkul

Mahasiswa

alamatDosen

JurusanDosen

NamaDosen

NIM

Page 28: Erd Penggajian

e-Book

- 27 -

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.

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

NamaDosen

alamatDosen

Nama

Dosen Mengajar Matakuliah

Kod_Matkul SKSKod_Matkul

NIP NIP

Mengikut

NIPNIP

Kod_Matkul

Mahasiswa

alamatDosen

JurusanDosen

NamaDosen

NIM

Page 29: Erd Penggajian

e-Book

- 28 -

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

Page 30: Erd Penggajian

e-Book

- 29 -

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

Page 31: Erd Penggajian

e-Book

- 30 -

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 :

Page 32: Erd Penggajian

e-Book

- 31 -

Hak Cipta 2007

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

I

NamaDosen

alamatDosen

Nama

Dosen Mengajar Matakuliah

Kod_Matkul SKSKod_Matkul

NIPNIP

Mengikut

NIPNIP

Kod_Matkul

Mahasiswa alamatDosen

NamaDosen

NIM

Mengikut

Jurusan

NamaDosen

Kod_Jurusan NIM

Kod_Jurusan

Prayarat

Page 33: Erd Penggajian

e-Book

- 32 -

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}

2. Dosen {NIP, Nama, Alamat}

Mahasiswa Memiliki Hobbi

Page 34: Erd Penggajian

e-Book

- 33 -

Hak Cipta 2007

3. Mahasiswa {NIM, Nama}Matakuliah {Kode, Matakuliah, SKS}

4. Dokter {KodeDokter, Nama, Alamat}

BAB VII

Dosen Pembimbing

Mahasiswa Mengikutio

Matakuliah

Dokter Pasangan

Page 35: Erd Penggajian

e-Book

- 34 -

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”.

Page 36: Erd Penggajian

e-Book

- 35 -

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

Page 37: Erd Penggajian

e-Book

- 36 -

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)

Page 38: Erd Penggajian

e-Book

- 37 -

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

Page 39: Erd Penggajian

e-Book

- 38 -

Hak Cipta 2007

Berikut akan diberikan contoh proses perancangan database dengan tteknik

normalisasi.

Dokumen dasar :

Bentuk tidak ternormalisasi

Kd Fak Kd Sup Nama Sup Kd Brg Nama brg Tgl ...

004 G01Gobel

Nustra

A01,

A02

ACModel 1,

AC Model2 07/10/04 ...

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

Faktur Pembelian Barang

PT. Ayo BersamaJl. Senopati 12 yk

Kode Suplier : G01 Tanggal : 07/10/04Nama Suplier : Gober Nustra Nomor : 004Kode Nama Brg Qty Harga JmlA01 AC model 1 10 1000000 10000000A02 AC model 2 5 900000 4500000

Total Faktur 14500000Jatuh Tempo 15/10/04

Faktur Pembelian Barang

PT. Ayo BersamaJl. Senopati 12 yk

Kode Suplier : G01 Tanggal : 07/10/04Nama Suplier : Gober Nustra Nomor : 004Kode Nama Brg Qty Harga JmlB01 Kursi 5 100000 50000A03 Meja 7 250000 3250000

Total Faktur 3750000Jatuh Tempo 17/10/04

Page 40: Erd Penggajian

e-Book

- 39 -

Hak Cipta 2007

... J.tempo qty Hrg Jml Tot

15/10/04 10,51000000,

900000

10000000,

4500000

14500000

17/10/05 5,7100000,

250000

500000,

32500003750000

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, NamaSupKdFaktur à NamaBrg, Qty, Harga

Bentuk BCNF :KodeFaktur à Tgl, Jtempo, KodeSupKdSup à NamaSupKdFaktur à Qty, HargaKodeBrg à NamaBrg

Page 41: Erd Penggajian

e-Book

- 40 -

Hak Cipta 2007

B. DENORMALISASI

1. KONSEP DENORMASLISASINormalisasi hanya merupakan kebijakan standart perancangan basis data yang masihboleh dilanggar. Pross pelanggaran terahadap konsep normalisasi disebut dengandenormalissi adalah untuk meningkatkn kinerja sistem (performasi).2. AKIBAT DENORMALISASIDenormalisasi dapat mengakibatkan adanya redudancy. Redudancy terjadi ketikaterjadi penyimpanan fakta yang sama lebih dari 1 kali.Redudancy perlu dibedakan dengan duplikasi. Duplikasi terkadang memangdiperlukan dalam basis data. Duplikasi adalah penyimpanan nilai-nilai yang lebih 1kali 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 DENORMALISASIBerikut ini adalah bentuk-bentuk denormalisasi :

- atribut yang terderiviasi ànilai pada aribut ini bisa diolah dari nilai-nilai yangsudah ada tabel lain.

- Atribut yang berlabihan :Atribut terkodekanatribut gabunganAtribut tumpang tindihAtribut bermakna ganda

- Tabel rekapitulasi

C. SOAL LATIHAN1. BUATLAH RANCANGAN BASIS DATA DENGAN MENGGUNAKAN

TEKNIK NORMALISASI (BENTUK TIDAK NORMAL 1, NORMAL 2, DANBENTUK BCNF) DENGAN DOKUMEN DASAR SEBAGAI BERIKUT :

TRANSKIP NILAIPERGURUAN TINGGI XYZ

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

KodeMatkul Nama SKS Tahun

PengambilanSemester

Pengambilan Nilai

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 : 12SKSIPK : 2.92

Page 42: Erd Penggajian

e-Book

- 41 -

Hak Cipta 2007

2. apa alasan dilakukannya denomarlisasi?

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

Page 43: Erd Penggajian

e-Book

- 42 -

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.

Page 44: Erd Penggajian

e-Book

- 43 -

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

Numeric (p, d)P menunjukkan jumlah digit bilangan dan d menunjukan jumlah digit

dibelakang titik desimal.

Real, Double

PrecisionFloating-poin dan double-precision floating point

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 databaseCREATE 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 :

Page 45: Erd Penggajian

e-Book

- 44 -

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_databaseBerikut 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,

Page 46: Erd Penggajian

e-Book

- 45 -

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

Page 47: Erd Penggajian

e-Book

- 46 -

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 ,

Page 48: Erd Penggajian

e-Book

- 47 -

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 ;

Page 49: Erd Penggajian

e-Book

- 48 -

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.

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 )

KELAS

IDKELAS KODE NIP

PK

KELAS

KODE

MATAKULIAHSKS

PK

KELAS

NIPNAMA

PK

PK

PK

Page 50: Erd Penggajian

e-Book

- 49 -

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 :

Page 51: Erd Penggajian

e-Book

- 50 -

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.

Page 52: Erd Penggajian

e-Book

- 51 -

Hak Cipta 2007

Berikut diberikan contoh sebuah rancangan database pada gambar 8.2 dan

diimplementasikan dengan query dibawahnya secara lengkap.

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’ ) ;

DOSEN

NIP NAMA

MATAKULAH

KODE MATAKULIAH

SKS

KELAS

IDKELAS KODE

NIP

KRS

NIM IDKELAS

NILAI

MAHASISWA

THANG NIM

NAMA

ALAMAT

PK PK

PK

PK

PK

PK

PK

PK

PK

PK

Page 53: Erd Penggajian

e-Book

- 52 -

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

Page 54: Erd Penggajian

e-Book

- 53 -

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.

Page 55: Erd Penggajian

e-Book

- 54 -

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.

Page 56: Erd Penggajian

e-Book

- 55 -

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.

Page 57: Erd Penggajian

e-Book

- 56 -

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

Page 58: Erd Penggajian

e-Book

- 57 -

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

Page 59: Erd Penggajian

e-Book

- 58 -

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

Page 60: Erd Penggajian

e-Book

- 59 -

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

PK

PK,FK1

PK,FK2

Kelas

KodeKul

NIM

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’

Mahasiswa

PK NIM

ThMasuk

Nama

Page 61: Erd Penggajian

e-Book

- 60 -

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

Page 62: Erd Penggajian

e-Book

- 61 -

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!

Page 63: Erd Penggajian

e-Book

- 62 -

Hak Cipta 2007

BAB X

MENGAKSES DATA

Untuk membantu memahami pemahaman mengenai SQL, perhati9kan relasi basis

data berikut :

KRSPraktikum KRSTeoriMahasiswa

Matakuliah

KuliahPraktikum

KuliahTeori

Dosen

PKPK, Fk1PK, Fk2

PKPK, Fk1PK, Fk2

KelasKodeKulNIM

KelasKodeKulNIM

Nilai Nilai

PK

PK

ThnMasukNama

NIM

KodeKul

KuliahSKSTeorilSKSPraktek

PK, Fk2PK, Fk2

KelasKodeKu

KelasKodeKuFk

Fk

NIPLab

Nama

PK NIP

NIP

PK, Fk2PK, Fk2

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

Page 64: Erd Penggajian

e-Book

- 63 -

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

Page 65: Erd Penggajian

e-Book

- 64 -

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

Page 66: Erd Penggajian

e-Book

- 65 -

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

Page 67: Erd Penggajian

e-Book

- 66 -

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 :

Page 68: Erd Penggajian

e-Book

- 67 -

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.

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”

Tabel 1 Tabel 2

Page 69: Erd Penggajian

e-Book

- 68 -

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.

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 1 Tabel 2

Tabel 2

Page 70: Erd Penggajian

e-Book

- 69 -

Hak Cipta 2007

Contoh : untuk mendapatkan semua mahasiswa yang mengikuti kuliah teori tetapitidak 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 :

Page 71: Erd Penggajian

e-Book

- 70 -

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)]

Page 72: Erd Penggajian

e-Book

- 71 -

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

Page 73: Erd Penggajian

e-Book

- 72 -

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).

Page 74: Erd Penggajian

e-Book

- 73 -

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 ;

Page 75: Erd Penggajian

e-Book

- 74 -

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

Page 76: Erd Penggajian

e-Book

- 75 -

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

Page 77: Erd Penggajian

e-Book

- 76 -

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

Page 78: Erd Penggajian

e-Book

- 77 -

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

:

Page 79: Erd Penggajian

e-Book

- 78 -

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’

Page 80: Erd Penggajian

e-Book

- 79 -

Hak Cipta 2007

K. SOAL LATIHAN

Dengan menggunakan tabel yang memiliki relasi seperti tergambar pada Gambar 10.1dan 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) dengantampilan : NIM, NAMA, IPK.

Page 81: Erd Penggajian

e-Book

- 80 -

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 : PenerbitanANDI.

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