Top Banner
Politeknik Telkom Perancangan Basis Data Relasional Perancangan Basis data i PERANCANGAN BASIS DATA RELASIONAL POLITEKNIK TELKOM BANDUNG 2009
212
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data i

PERANCANGAN BASIS DATA RELASIONAL

POLITEKNIK TELKOM

BANDUNG

2009

Page 2: Database

Politeknik Telkom Perancangan Basis Data Relasional

ii Perancangan Basis data

Koordinator & Editor:

Dedy Rahman Wijaya

Tim:

Abdul Rohim Elly Rosely

Komala Ratna Sari

Tora Fahrudin

Wahyu Hidayat

Dilarang menerbitkan kembali, menyebarluaskan atau menyimpan baik

sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun

tanpa izin tertulis dari Politeknik Telkom.

Hak cipta dilindungi undang-undang @ Politeknik Telkom 2009

No part of this document may be copied, reproduced, printed, distributed, modified,

removed and amended in any form by any means without prior written

authorization of Telkom Polytechnic.

Page 3: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data iii

KATA PENGANTAR

Segala puji bagi Allah SWT, yang telah melimpahkan nikmat-Nya

kepada penulis sehingga dapat menyelesaikan penulisan course ware ini.

Course ware ini digunakan oleh penulis sebagai acuan untuk mata kuliah

Perancangan Basis Data di Politeknik Telkom. Course ware ini ditujukan bagi

mahasiswa program studi diploma.

Course ware ini terdiri dari sepuluh bab, yaitu Pengenalan Basis

Data, Entity Relationship Model, Konversi ER ke Tabel, Normalisasi, Aljabar

Relasional, Bahasa Basis Data, Bahasa Basis Data Lanjutan, Pengenalan

Arsitektur Basis Data, dan Aplikasi Basis Data. Semua materi tersebut

merupakan bahan kuliah yang sesuai dengan kurikulum yang berlaku di

Politeknik Telkom.

Pada kesempatan ini, penulis menyampaikan terima kasih yang tulus

kepada berbagai pihak atas segala bantuan dan dukungannya sehingga penulis

dapat menyelesaikan penulisan course ware ini. Akhirnya, penulis mohon

maaf jika dalam tulisan ini masih banyak kekurangan. Sumbangan ide, saran,

dan kritik yang membangun untuk perbaikan diktat ini sangat penulis

harapkan.

Bandung, Maret 2009

Penulis,

Page 4: Database

Politeknik Telkom Perancangan Basis Data Relasional

iv Perancangan Basis data

DAFTAR ISI

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

DAFTAR ISI .............................................................................. iv

Daftar Gambar .......................................................................... ix

Daftar Tabel .............................................................................xii

1 PENGENALAN BASIS DATA ............................... 1

1.1. Data dan Informasi ........................................................... 2

1.2. Siklus Informasi ................................................................. 2

1.3. Pentingnya data dan informasi .......................................... 3

1.4. Sistem Basis Data dan Sistem File .................................... 3

1.5. Definisi Basis Data dan Sistem Basis Data (DBMS) .......... 5

1.6. Komponen Sistem Basis Data .......................................... 6

1.7. Abstraksi Data .................................................................. 7

1.8. Model Basis Data .............................................................. 8

1.9. Basis Data Relasional ...................................................... 11

1.10. Alternative Terminology ................................................ 12

1.11. Perancangan Basis Data Relational ................................. 13

1.12. Faktor penting menyangkut pemodelan data dari dunia

nyata ................................................................................ 13

1.13. Metodologi Perancangan Basis Data .............................. 14

1.14. Bahasa Basis Data ........................................................... 16

2 ENTITY RELATIONSHIP MODEL .......................... 23

2.1 ER Sebagai Salah Satu Pemodelan Konseptual Basis Data

........................................................................................ 24 2.2 Entitas dan Himpunan Entitas ......................................... 24

2.3 Atribut ............................................................................ 26

2.4 Relasi ............................................................................... 27

2.5 Derajat Himpunan Relasi ................................................ 28

2.6 Kardinalitas Relasi ........................................................... 30

2.7 Key .................................................................................. 32

2.8 Diagram ER ..................................................................... 33

Page 5: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data v

2.9 Constraint Cardinalitas .................................................. 34

3 KONVERSI ER KE TABEL .................................... 42

3.1 Himpunan Entitas Lemah ................................................ 43

3.2 Spesialisasi ....................................................................... 43

3.3 Generalisasi..................................................................... 44

3.4 Agregasi .......................................................................... 45

3.5 Ringkasan notasi simbol di ER ........................................ 46

3.6 Penurunan skema ER ke Tabel ....................................... 47

3.7 Representasi Atribut sebagai Kolom .............................. 47

3.8 Representasi Himpunan Entitas sebagai Tabel ............... 48

3.9 Representasi Relasi (* pada kardinalitas N to N)........... 49

3.10 Hubungan kardinalitas dengan tabel yang terbentuk ...... 49

3.11 Representasi Spesialisasi (IS A) ....................................... 50

3.12 Representasi Agregasi..................................................... 51

4 NORMALISASI ...................................................... 59

4.1 Definisi Normalisasi ........................................................ 60

4.2 Tujuan Normalisasi ......................................................... 60

4.2.1 Update Anomaly ............................................................... 60

4.2.2 Insertion Anomaly .......................................................... 61

4.2.3 Deletion Anomaly........................................................... 61

4.3 The Three Keys .............................................................. 62

4.4 Functional Dependencies ............................................... 64

4.4.1 Partial Funcional Dependency ........................................ 65

4.4.2 Transitive Functional dependency ..................................... 66

4.5 Bentuk Normal dan Langkah-Langkah Normalisasi ....... 67

4.5.1 Bentuk Normal Pertama (1st Normal Form) ................ 67

4.5.2 Bentuk Normal Ke Dua (2nd Normal Form) ................ 69

4.5.3 Bentuk Normal Ke Tiga (3rd Normal Form) ................. 71

4.5.4 Bentuk Normal Boyce Codd (BC Normal Form) ......... 72

4.5.5 Bentuk-Bentuk Normal Lainnya ..................................... 73

4.6 Denormalisasi ................................................................. 73

5 ALJABAR RELASIONAL ...................................... 80

5.1 Query dan Aljabar Relasional ......................................... 81

Page 6: Database

Politeknik Telkom Perancangan Basis Data Relasional

vi Perancangan Basis data

5.2 Operasi Select ................................................................ 82

5.3 Operasi Project .............................................................. 83

5.4 Operasi Cartesian Product ............................................ 83

5.5 Operasi Unio .................................................................. 84

5.6 Operasi Set Difference ................................................... 85

5.7 Operasi Intersection ....................................................... 86

5.8 Operasi rename .............................................................. 86

5.9 Join .................................................................................. 87

5.10 Fungsi Agregasi ............................................................... 88

5.11 Operasi Division ............................................................. 88

6 BAHASA BASIS DATA ........................................ 93

6.1 Pendahuluan .................................................................... 94

6.2 Standarisasi SQL ............................................................. 94

6.3 Membangun Basidata ...................................................... 96

6.3.1 Membuat BasisData ........................................................ 96

6.3.2 Membuat Tabel Data ...................................................... 96

6.3.3 Melakukan Perubahan pada Tabel ................................ 103

6.4 Maintenance Data pada Basisdata................................. 105

6.4.1 Memasukan Data .......................................................... 105

6.4.2 Merubah Data ............................................................... 107

6.4.3 Menghapus Data ........................................................... 108

6.5 Mengakses Basisdata .................................................... 108

6.5.1 Menganti Judul Kolom .................................................. 109

6.5.2 Function pada SQL ....................................................... 110

6.5.3 Menentukan Kondisi ..................................................... 111

6.5.4 Menguruntukan Data .................................................... 113

7 BAHASA BASIS DATA LANJUTAN................ 120

7.1 Fungsi Aggregation........................................................ 121

7.2 Query dari Beberapa Tabel .......................................... 125

7.3 Nama Alias .................................................................... 127

7.4 Bentuk-bentuk Perintah Join ........................................ 128

7.4.1 LEFT JOIN ...................................................................... 129

7.4.2 RIGHT JOIN ................................................................... 130

Page 7: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data vii

7.4.3 FULL JOIN ...................................................................... 131

7.5 Subquery ....................................................................... 132

8 PENGENALAN ARSITEKTUR BASIS DATA . 146

8.1 Pendahuluan .................................................................. 147

8.2 Struktur DBMS ............................................................. 147

8.3 Produk-produk DBMS .................................................. 149

8.4 Database Oracle ........................................................... 149

8.4.1 Arsitektur Database Oracle.......................................... 149

8.4.2 Struktur Database Oracle ............................................. 150

8.4.3 Oracle Instance ............................................................. 151

8.4.4 Oracle Memory Structure ............................................... 151

8.4.5 Oracle Processes Structure ............................................. 153

8.4.6 Oracle Storage Structure ................................................ 154

8.5 Arsitektur Sistem database ........................................... 156

8.5.1 Centralized Sistems ...................................................... 157

8.5.2 Client-Server Sistems .................................................... 157

8.5.3 Parallel Sistems ............................................................. 158

8.5.4 Distributed Sistems ...................................................... 159

8.5.5 Network types ............................................................. 160

9 APLIKASI BASIS DATA ..................................... 166

9.1 Pendahuluan .................................................................. 167

9.2 Sistem Pendukung Keputusan (Decision-Support Sistem)

...................................................................................... 167 9.2.1 Analisis Data ................................................................. 169

9.2.2 Penggalian Data (Data Mining) ...................................... 172

9.2.3 Penggudangan Data (Data Warehousing) ...................... 173

9.3 Basis Data Spasial (Spatial Databases) .......................... 175

9.3.1 Representasi Informasi Geometris ............................... 177

9.3.2 Basis Data Perancangan ................................................ 177

9.3.3 Data Geografis .............................................................. 179

9.3.4 Representasi Data Geografis ........................................ 180

9.3.5 Aplikasi Data Geografis ................................................ 180

9.4 Basis Data untuk Multimedia (Multimedia Databases) . 181

Page 8: Database

Politeknik Telkom Perancangan Basis Data Relasional

viii Perancangan Basis data

9.4.1 Pengambilan Berbasis Kesamaan (Similarity-Based

Retrieval) ...................................................................... 182

9.4.2 Data sinambung (Continuous-Media Data) ..................... 183

9.5 Basis Data Bergerak (Mobility and Personal Databases)

...................................................................................... 183 9.5.1 Model Komputasi Bergerak .......................................... 184

9.5.2 Routing dan Pemrosesan Query .................................... 185

9.6 Sistem Pencarian Informasi (Information Retrieval)..... 185

9.7 Pengindeksan Dokumen ............................................... 187

9.7.1 Browsing dan Hypertext ............................................... 187

9.8 World Wide Web (WWW) ........................................ 189

9.8.1 WEB Sebagai Bentuk Aplikasi Basis Data ..................... 190

Daftar Pustaka .............................................................. 198

Page 9: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data ix

Daftar Gambar

Gambar 1-1 Siklus informasi........................................................ 2

Gambar 1-2 Perkembangan Database .......................................... 5

Gambar 1-3 Komponen DBMS .................................................... 7

Gambar 1-4 Abstraksi Data. ......................................................... 8

Gambar 1-5 Model Database ..................................................... 10

Gambar 1-6 Ilustrasi sebuah relasi ............................................. 12

Gambar 1-7 Terminologi ............................................................ 12

Gambar 1-8 Pendekatan Konvensional ...................................... 15

Gambar 1-9 Pendekatan ER ....................................................... 16

Gambar 2-1 Himpunan Entitas Mahasiswa ................................ 25

Gambar 2-2 Contoh himpunan entitas ........................................ 25

Gambar 2-3 Gambaran Himpunan entitas di Tabel .................... 25

Gambar 2-4 Contoh Atribut Komposit ....................................... 26

Gambar 2-5 Entitas mahasiswa dengan Atribut ......................... 27

Gambar 2-6 Relasi di gambarkan dengan belah ketupat ............ 27

Gambar 2-7 Himpunan Entitas Mahasiwa Ber-Relasi dengan

Himpunan Entitas Organisasi ..................................................... 28

Gambar 2-8 Contoh Derajat Relasi Unary ................................. 29

Gambar 2-9 Contoh Derajat Relasi Binary ................................ 29

Gambar 2-10 Contoh Derajat Relasi Ternary ............................. 30

Gambar 2-11 Relasi dengan Kardinalitas 1 ke 1 ........................ 30

Gambar 2-12 Relasi dengan Kardinalitas 1 ke Banyak .............. 31

Gambar 2-13 Relasi dengan Kardinalitas Banyak ke 1 .............. 31

Gambar 2-14 Relasi dengan Kardinalitas Banyak ke Banyak.... 32

Gambar 2-15 Contoh Diagram ER ............................................. 33 Gambar 2-16 Relasi 1 ke 1 ......................................................... 34

Gambar 2-17 Relasi 1 ke banyak ................................................ 34

Gambar 2-18 Relasi Banyak ke 1 ................................................ 35

Gambar 2-19 Relasi Banyak ke Banyak ....................................... 35

Gambar 3-1 Contoh Himpunan Entitas Lemah .......................... 43

Page 10: Database

Politeknik Telkom Perancangan Basis Data Relasional

x Perancangan Basis data

Gambar 3-2 Contoh Spesialisasi ................................................ 44

Gambar 3-3 Contoh Agregasi ..................................................... 45

Gambar 3-4 Relasi di pandang sebagai Himpunan Entitas ........ 45

Gambar 3-5 Ringkasan Notasi pada Diagram ER ...................... 46

Gambar 3-6 Atribut multivalued di pecah menjadi entitas baru. 47

Gambar 3-7 Atribut himpunan entitas kuat di representasikan

kedalam tabel .............................................................................. 48

Gambar 3-8 Penurunan Himpunan Entitas Lemah ke tabel ....... 48

Gambar 3-9 Penurunan Kardinalitas relasi N to N menjadi Tabel

.................................................................................................... 49

Gambar 3-10 Representasi spesialisasi ke tabel metoda 1 ......... 50

Gambar 3-11 Representasi spesialisasi ke tabel metoda 1 ......... 51

Gambar 3-12 Representasi Agregasi untk tabel mata kuliah,

dosen dan Dosen mengajar mt kul.............................................. 51

Gambar 3-13 Representasi Agregasi untuk tabel Mahasiwa dan

Mahasiwa Mengambil Mtkul ..................................................... 52

Gambar 4-1 Diagram Normalisasi.............................................. 60 Gambar 7-1 Entitas Mahasiswa ................................................... 97

Gambar 7-2 Entitas Kurikulum ................................................... 98

Gambar 7-3 Entitas Mahasiswa dan Jurusan ............................... 99

Gambar 7-4 Relasi Tabel Mahasiswa dan Tabel Jurusan ............ 99

Gambar 9-1 Struktur DBMS secara umum .............................. 148

Gambar 9-2 Struktur Database Oracle .................................... 151

Gambar 9-3 Oracle Instance ..................................................... 151

Gambar 9-4 Oracle Memory ..................................................... 152

Gambar 9-5 Oracle Processes ................................................... 153

Gambar 9-6 Oracle Storage ...................................................... 155

Gambar 9-7 Database Functionality .......................................... 156

Gambar 9-8 Centralized Sistem ............................................... 157

Gambar 9-9 Client-Server Sistem .............................................. 157

Gambar 9-10 Parallel Sistems ................................................... 159

Gambar 9-11 Distributed Sistem .............................................. 159

Gambar 10-1 Arsitektur Data warehouse ................................ 174

Page 11: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data xi

Gambar 10-2 Bentuk-bentuk Geografis. dan Representasinya 177

Gambar 10-3 Objek-objek 3 Dimensi yang Lebih Kompleks .. 178

Gambar 10-4 Objek sebagai Data Raster dan Data Vektor ...... 180

Gambar 10-5 Pengelompokan Buku dalam Perpustakaan ....... 188

Gambar 10-6 Pengelompokan DAC dalam Sistem Pencarian

Informasi................................................................................... 189

Gambar 10-7 Arsitektur Web ................................................... 191

Page 12: Database

Politeknik Telkom Perancangan Basis Data Relasional

xii Perancangan Basis data

Daftar Tabel

Tabel 4-1 Contoh Update Anomaly ............................................ 60

Tabel 4-2 Contoh Insert Anomaly .............................................. 61

Tabel 4-3 Contoh Delete Anomaly............................................. 61

Tabel 4-4 Tabel Mata Kuliah ..................................................... 62

Tabel 4-5 Contoh Tabel .............................................................. 64

Tabel 4-6 Tabel Nilai.................................................................. 66

Tabel 4-7 Tabel Mahasiswa........................................................ 67 Tabel 4-8 Versi pertama ............................................................. 68

Tabel 4-9 Versi ke dua ............................................................... 68

Tabel 4-10 Contoh Tabel T-1 ..................................................... 69

Tabel 4-11 Contoh Tabel T-2 ..................................................... 69

Tabel 4-12 Contoh T-1hasil ........................................................ 70

Tabel 4-13 Contoh Tabel T-1-1 .................................................. 70

Tabel 4-14 Contoh Tabel T-1-2 .................................................. 70

Tabel 4-15 Contoh Tabel T-1-3 .................................................. 71

Tabel 4-16 Contoh tabel T-1-1 ................................................... 72

Tabel 4-17 Contoh Tabel T-1-1-1............................................... 72

Tabel 4-18 Contoh Tabel T-1-1-2............................................... 72

Tabel 7-1 Tabel Data Mahasiswa................................................ 97

Tabel 7-2 Data Kurikulum .......................................................... 98

Tabel 7-3 Tabel Data Jurusan ..................................................... 99

Tabel 7-4 Tabel Data Mahasiswa ................................................ 99

Tabel 7-10 Jenis Data pada Oracle ........................................... 101

Tabel 7-11 Data Jurusan ........................................................... 106

Tabel 7-12 Data Mahasiswa ...................................................... 106

Tabel 7-13 Data Jurusan ........................................................... 108

Tabel 7-14 Data Mahasiswa ...................................................... 108

Tabel 7-15 Output Select Jurusan ............................................ 109

Tabel 7-16 Output Select Jurusan ............................................ 109

Tabel 7-17 Operator Kondisi ..................................................... 111

Tabel 7-18 Output Select Mahasiswa menggunakan Where ... 112

Page 13: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data xiii

Tabel 7-19 Output Select Mahasiswa menggunakan Where ... 112

Tabel 7-20 Contoh Perintah Like ............................................. 112

Tabel 7-21 Output Order By Tabel Mahasiswa ....................... 113

Tabel 7-22 Output Order By DESC Tabel Mahasiswa ............ 113

Tabel 7-23 Output Order By Dua Kolom ............................... 114

Tabel 8-1 Data Kurikulum ........................................................ 122

Tabel 8-2 Hasil Query Jumlah Matakuliah per Semester ........... 123

Tabel 8-3 Hasil Query Jumlah Sks per Semester ....................... 123

Tabel 8-4 Hasil Query Jumlah matakuliah dan Sks per Semester

.................................................................................................. 124 Tabel 8-5 Hasil Query Kelompok Matakuliah ........................... 124

Tabel 8-6 Perbandingan Perintah SQL untuk Limit .................. 125

Tabel 8-7 Mahasiswa dan tabel Jurusan .................................... 125

Tabel 8-8 Output Relasi antar Tabel ........................................ 126

Tabel 8-9 Pengarang ................................................................. 128

Tabel 8-10 Penerbit .................................................................. 129

Tabel 8-11 Hasil Relasi Left Join ................................................ 130

Tabel 8-12 Hasil Relasi Right Join .............................................. 131

Tabel 8-13 Hasil Relasi Full Join ................................................. 132

Tabel 8-14 Data Penerbit ......................................................... 133

Tabel 8-15 Data Buku ............................................................... 133

Tabel 8-16 Data Pengarang ...................................................... 134

Tabel 8-17 Hasil Query Operator IN .......................................... 134

Tabel 8-18 Hasil Query Operator Not IN ................................... 135

Tabel 8-19 Hasil Query Operator Exists ..................................... 136

Tabel 8-20 Hasil Query Operator Not Exists............................... 137

Tabel 8-21 Hasil Query Operator Komparasi .............................. 137

Tabel 8-22 Hasil Query Operator ANY ....................................... 138

Tabel 10-1 Contoh Cross-Tab ................................................. 170

Tabel 10-2 Tabel Relasional ..................................................... 171

Page 14: Database
Page 15: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 1

1 PENGENALAN BASIS DATA

Overview

Dalam kehidupan sehari-hari kita sering membahas mengenai data dan

informasi. Informasi berasal dari kumpulan data yang disimpan secara

terstruktur pada sebuah sistem yang dikenal dengan basis data (database).

Pada bab awal ini akan dibahas tentang definisi, komponen sistem basis data,

sistem file, abstraksi data, bahasa basis data, database administrator dan

struktur sistem.

Tujuan

1. Mahasiswa mengetahui dan mengerti konsep basis data.

2. Mahasiswa mengetahui mengenai komponen-komponen sistem basis

data.

3. Mahasiswa mengetahui mengenai abstraksi data dan Database Language.

Page 16: Database

Politeknik Telkom Perancangan Basis Data Relasional

2 Perancangan Basis data

1.1. Data dan Informasi

Menurut Turban, Aronson, and Liang (2005) data dan informasi didefinisikan

sebagai berikut:

• Data, merupakan sesuatu yang menyangkut barang, kejadian, aktivitas, dan transaksi yang telah tercatat, diklasifikasikan, dan

disimpan namun belum memiliki makna. Data dapat berupa nilai

numerik, alphanumerik, gambar, dan suara.

• Informasi, adalah data yang telah dikelola dalam bentuk tertentu

untuk memberikan makna atau arti bagi penerimanya.

1.2. Siklus Informasi

• Data dan informasi akan saling berkesinambungan sehingga membentuk suatu siklus yang disebut information cycle (siklus

informasi).

• Data ditangkap oleh indera kemudian menjadi inputan dalam sebuah

model untuk diubah menjadi informasi bagi penerimanya yang

nantinya akan membantu pengambilan keputusan dan menjadi sebuah

hasil tindakan.

Gambar 1-1 Siklus informasi

Page 17: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 3

1.3. Pentingnya data dan informasi

Data dan informasi sebagai sebuah aset penting

perusahaan/organisasi.

Informasi yang benar dapat menjadikan suatu perusahaan/organisasi memperoleh margin untuk melakukan aksi.

Data dan informasi sebagai salah satu parameter kemajuan

perusahaan/organisasi (maturity level).

1.4. Sistem Basis Data dan Sistem File

Pada sebuah institusi, data merupakan salah satu hal yang sangat

penting. Setiap bagian/divisi dari institusi memiliki data sendiri-sendiri. Tapi

setiap bagian pun membutuhkan sebagian data dari bagian yang lain. Hal ini

yang biasa dikenal sebagai “shared data”. Setiap divisi memiliki aplikasi sendiri-

sendiri dalam melakukan manipulasi dan pengambilan data tersebut. Setiap

aplikasi memiliki file-file dalam sistem operasi yang digunakan untuk

menyimpan data-data. Seiring dengan berkembangnya institusi, bertambahnya

bagian/divisi, bertambah pula data dan aplikasi yang digunakan. Bertambahnya

aplikasi, bertambah pula file-file yang dibuat.

Gaya sistem pemrosesan-file tersebut menyebabkan setiap data

disimpan dalam bentuk record dalam berbagai macam file, dan diperlukan

aplikasi yang berbeda dalam melakukan pengambilan record dari, dan

penambahan record ke dalam file. Hal ini berlaku pada masa sebelum adanya

Sistem Basis Data (DBMS).

Menyimpan data dalam bentuk file yang berbeda-beda, memiliki

kekurangan-kekurangan:

Data redundancy dan inconsistency. Dikarenakan programer yang berbeda membuat file dan aplikasi

masing-masing, menyebabkan beragam format dan aplikasi yang dibuat.

Bahkan, aplikasi pun dibuat menggunakan bahasa pemrograman yang

berbeda-beda. Lebih jauh lagi, data atau informasi yang sama bisa

terdapat dalam beberapa file yang berbeda. Ini yang disebut dengan

redundancy. Redundancy data ini lama kelamaan akan menyebabkan

inconsystency dari data.

Page 18: Database

Politeknik Telkom Perancangan Basis Data Relasional

4 Perancangan Basis data

Kesulitan dalam pengaksesan data.

Dikarenakan setiap aplikasi memiliki file tersendiri untuk penyimpanan

dan pengambilan data, maka jika suatu bagian dari institusi

membutuhkan data dari bagian lain, akan menemui kesulitan. Hal ini

dikarenakan aplikasi yang dimiliki bagian tersebut, tidak dapat membaca

file yang terdapat di bagian lain.

Isolasi data.

Dikarenakan data tersebar dalam berbagai macam file, dan file tersebut

dalam beragam format, pembuatan aplikasi baru akan terasa sulit ketika

harus membaca format dari masing-masing file tersebut.

Masalah integritas. Data yang disimpan harus memenuhi hal yang dinamakan dengan

consistency constraint. Jika sebuah constraint berubah, maka seluruh

aplikasi yang digunakan harus mengakomodasinya. Masalah akan

muncul, jika constraint melibatkan beberapa data dari file yang berbeda-

beda.

Masalah keamanan.

Tidak semua pengguna dari basis data dapat mengakses semua data.

Hal ini akan sulit dilakukan jika menggunakan gaya penyimpanan data

dalam file.

Page 19: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 5

Gambar 1-2 Perkembangan Database

1.5. Definisi Basis Data dan Sistem Basis Data (DBMS)

Basis data adalah penyimpanan kumpulan informasi secara sistematik

dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu

program komputer untuk memperoleh informasi dari basis data tersebut.

Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (query)

basis data disebut sistem manajemen basis data (Database Management

System, DBMS). DBMS memiliki karakteristik sebagai berikut:

• Software program

• Supplements operating sistem

Page 20: Database

Politeknik Telkom Perancangan Basis Data Relasional

6 Perancangan Basis data

• Manages data

• Queries data and generates reports

• Data security

Sedangkan sistem adalah sebuah tatanan yang terdiri atas sejumlah

komponen fungsional yang saling berhubungan dan secara bersama-sama

bertujuan untuk memenuhi suatu proses pekerjaan. Sehingga bisa dikatakan

bahwa sistem basis data adalah sistem yang terdiri atas kumpulan file-file yang

saling berhubungan dan dikelola oleh program (DBMS) yang memungkinkan

beberapa pemakai dan atau program lain yang memiliki otoritas untuk

mengakses dan memanipulasi data tersebut. Kelebihan pemakaian DBMS

adalah:

• Data berdiri sendiri (Data Independence)

• Pengaksesan data efisien (Efficient data access)

• Integritas data dan keamanan terjamin (Data integrity and security)

• Administrasi data (Data administration)

• Dapat diakses bersamaan (Concurrent access )

• Recovery saat terjadi kegagalan (Crash recovery)

• Mengurangi waktu pembangunan aplikasi (Reduced application development time)

1.6. Komponen Sistem Basis Data

Komponen-komponen pada sebuah sistem basis data antara lain:

Perangkat keras

Sistem operasi

Basis data

DBMS (Database Management System)

Pemakai

Aplikasi lain

Page 21: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 7

Gambar 1-3 Komponen DBMS

1.7. Abstraksi Data

Tujuan utama dari sistem basis data adalah untuk menyediakan fasilitas

untuk view data secara abstrak bagi penggunanya. Namun bagaimana sistem

menyimpan dan mengelola data tersebut, hanya diketahui oleh sistem itu

sendiri. Abstraksi data merupakan level dalam bagaimana melihat data dalam

sebuah sistem basis data. Berikut ini tiga level abstraksi data:

1. Level fisik

Merupakan level terendah pada abstraksi data yang menunjukkan

bagaimana sesungguhnya data disimpan. Pada level ini pemakai melihat

data sebagai gabungan dari struktur dan datanya sendiri.

Page 22: Database

Politeknik Telkom Perancangan Basis Data Relasional

8 Perancangan Basis data

2. Level lojik

Merupakan level berikutnya pada abstraksi data, menggambarkan data

apa yang disimpan pada basis data dan hubungan apa saja yang ada di

antara data tersebut.

3. Level view

Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan

sebagian dari basis data. Banyak user dalam sistem basis data tidak akan

terlibat dengan semua data atau informasi yang ada atau yang disimpan.

Para user umumnya hanya membutuhkan sebagian data atau informasi

dalam basis data yang kemunculannya di mata user diatur oleh aplikasi

end user.

Gambar 1-4 Abstraksi Data.

1.8. Model Basis Data

Hierarchical

Memiliki struktur pohon dimana field hanya memiliki satu buah induk

(parent), masing-masing parent memiliki banyak child (anak). Model ini

memiliki kecepatan yang baik.

Network

Relationship dibuat menggunakan linked list (pointer). Berbeda dengan

model hierarchical satu anak dapat memiliki beberapa induk. Model

ini memiliki fleksibilitas yang tinggi.

Page 23: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 9

Relational

Model ini direpresentasikan dalam tabel dua dimensi, tabel-tabel

tersebut memiliki hubungan yang disebut dengan relasi. Model ini

memiliki fleksibilitas dan kecepatan yang tinggi.

Object oriented

Object Oriented Database adalah sebuah sistem database yang

menggabungkan semua konsep object oriented seperti pewarisan,

abstraksi, enkapsulasi, dll. Model ini dapat berinteraksi dengan baik

dengan bahasa pemrograman berorientasi objek seperti java dan

C++.

Page 24: Database

Politeknik Telkom Perancangan Basis Data Relasional

10 Perancangan Basis data

Gambar 1-5 Model Database

Page 25: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 11

1.9. Basis Data Relasional

Dalam beberapa tahun terakhir, sistem pengelola basis data

(Database Management System - DBMS) menjadi pilihan dalam hal

penyimpanan data bagi sistem informasi mulai dari pemrosesan aplikasi

transaksi komersial yang besar hingga ke aplikasi yang berbasis desktop PC.

Kebanyakan yang digunakan pada masa ini adalah Model basis data relasional

dengan menggunakan Relational Database Management System (RDBMS).

RDBMS menyediakan layanan pengorganisasian data yang mudah tetapi

memiliki kemampuan untuk menangani jumlah data yang sangat besar.

Beberapa contoh dari RDBMS diantaranya:

SQL Server, dibuat oleh Microsoft.

MS Access, dibuat oleh Microsoft.

Oracle Database, dibuat oleh Oracle.

MySQL, dibuat oleh MySQL AB.

Firebird, dibuat oleh komunitas open source berdasarkan

dari kode Interbase.

PostgreSQL, dibuat oleh komunitas open source.

DB2, dibuat oleh IBM.

Basis data relasional memiliki satu struktur “lojik” yang disebut Relation

(relasi). Struktur relasi merupakan strukture data 2-dimensi dan pada level

“fisik” berupa table (tabel). Attribute merepresentasikan elemen dari data

yang berkaitan dengan relasi. Sebagai contoh, relasi Mahasiswa memiliki atribut-atribut seperti nim, nama, tempat lahir. tanggal_ lahir, dan alamat.

Pada buku-buku teks mengenai perancangan basis data, sebuah relasi

dinotasikan secara konvensional dengan Relation(attribute1, attribute2, ..)

dengan aturan : nama dari relasi dan atribut-atribut dari relasi yang berada

didalam tanda kurung.

Contohnya: Mahasiswa(NIM, Nama, Alamat, Jenis_kelamin …).

Nilai data dari atribut dari sebuah relasi akan disimpan dalam tuple

atau row (baris) dari tabel. Gambar dibawah merupakan ilustrasi dari sebuah

relasi.

Page 26: Database

Politeknik Telkom Perancangan Basis Data Relasional

12 Perancangan Basis data

Gambar 1-6 Ilustrasi sebuah relasi

1.10. Alternative Terminology

Table-oriented Set-oriented Record-Oriented

Table Relation Record-type, file

Row Tuple Record

Column Attribute Field

Gambar 1-7 Terminologi

Ada beberapa istilah/ terminologi yang berkaitan dengan konsep basis

data Relational. Ada beberapa cara pandang terhadap data pada konsep basis

data relasional. Yang pertama adalah pandangan yang berorientasi tabel (table-

oriented) dimana sebuah entity-set direpresentasikan secara lojik menjadi

sebuah tabel (table) yang terdiri dari baris (row) dan kolom (column). Kedua

adalah pandangan berorientasi set/kumpulan (set-oriented) dimana entity-set

direpresentasikan sebagai relasi (Relation), nilai-nilai data yang sesuai dengan

atributnya (attribute) disimpan dalam sebuah tempat yang dinamakan tuple.

Page 27: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 13

Terminologi yang terakhir adalah pandangan berorientasi record (record-

oriented) dimana entity-set di representasikan dengan record-type/file sedangkan

nilai dari tiap-tiap entity direpresentasikan dengan record yang terstruktur

berdasarkan field-field yang dimiliki.

1.11. Perancangan Basis Data Relational

Merupakan proses untuk merepresentasikan fakta dunia nyata (real world)

yang dikehendaki ke dalam sistem komputer, sehingga mudah dipahami

pemakai dengan mempertimbangkan kemudahan implementasi dan

pemrosesannya.

Tujuan dari perancangan basis data :

Memenuhi kebutuhan informasi pada saat ini dan akan datang

Kemudahan pengembangan sesuai dengan perkembangan organisasi

Penerapan mekanisme pengamanan data

Istilah „dunia nyata‟ (real world) bermakna terhadap keseluruhan data yang

belum terstruktur yang secara nyata ada/terkait dalam lingkup sistem yang

sedang ditinjau. Dunia nyata disini bisa dikatakan sebagai sebuah domain

secara utuh/penuh maupun subdomain, sebagai contoh jika kita menganggap

suatu perusahaan sebagai suatu domain maka kita dapat menganggap unit-unit

yang ada dalam perusahaan tersebut adalah subdomain atau bisa saja sebuah

proses bisnis atau aktivitas yang ada di perusahaan tersebut juga bisa kita

anggap sebagai sebuah subdomain bahkan domain. Setiap dunia nyata (real

world) yang ada memiliki karakter yang tidak sama/unik. Sebagai contoh dunia

nyata bagi sistem perbankan pasti tidak sama dengan dunia nyata bagi sistem

rumah sakit. Pertanyaannya adalah apakah dunia nyata di bank yang satu

dengan bank yang lain pasti sama?

1.12. Faktor penting menyangkut pemodelan data dari

dunia nyata

1. Adanya aturan, rule dari proses bisnis yang akan dijadikan model.

2. Ada struktur (keteraturan) data yang akan disimpan dan bagaimana

struktur data yang akan diimplementasikan ke dalam sebuah basis data

secara fisik.

Page 28: Database

Politeknik Telkom Perancangan Basis Data Relasional

14 Perancangan Basis data

3. Karakteristik dari data yang akan disimpan sudah jelas. Contoh : Dalam

sistem rumah sakit misalnya ada : dokter, pasien, obat, kamar, dan lain-

lain.

1.13. Metodologi Perancangan Basis Data

Merupakan cara bagaimana suatu basis data dibuat melalui tahap-tahap

tertentu, mulai dari tahap investigasi masalah sampai tahap implementasinya.

Secara umum ada dua tahapan proses perancangan basis data, yaitu :

perancangan logika basis data

perancangan fisik basis data

1. Perancangan logika basis data

Merupakan proses pendefinisian entitas dan relasi (Relationship) dari dunia

nyata yang dirancang, berdasarkan kebutuhan informasi dan pengolahan

data dari organisasi yang bersangkutan.

– Entity / entitas adalah sekumpulan objek yang dapat diidentifikasi dan

dibedakan di lingkungan pemakai

– Relasi adalah hubungan yang terjadi antar kelompok entitas.

Sasaran dari perancangan logika basis data adalah fleksibilitas model data yang

dihasilkan dan efisiensi pengimplementasiannya dalam komputer.

2. Perancangan fisik basis data

Merupakan proses untuk mengimplementasikan hasil perancangan logika ke

dalam komputer secara fisik yang bergantung kepada software DBMS yang

dipilih. Proses yang dilakukan :

Menentukan struktur untuk setiap tabel, meliputi nama field, jenis,

lebar dan field kuncinya.

Menentukan nama basis data dan nama setiap tabel, serta lokasi

tempat penyimpanannya (drive, directory / folder).

Menghitung perkiraan tempat (space) yg dibutuhkan untuk seluruh tabel dan untuk seluruh index.

Implementasi dengan menggunakan software DBMS.

Page 29: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 15

Terdapat dua pendekatan dalam perancangannya :

1. Pendekatan konvensional

Perancangan basis data tanpa melalui tahap perancangan konseptual. Secara

umum mempunyai tahapan perancangan sebagi berikut:

Pembuatan model relasi

Normalisasi

Implementasi dengan menggunakan DBMS tertentu (Access, SQL, dsb.). Struktur tabel, atribut kunci, aturan integritas, relasi antar

tabel

Gambar 1-8 Pendekatan Konvensional

2. Pendekatan Entity-Relationship

Menggunakan pendekatan model konseptual. Secara umum, mempunyai

tahapan sebagai berikut :

Pembuatan model konseptual (model E-R)

Identifikasi entitas dan atributnya

Pendefinisian relasi antar entitas

Penentuan atribut relasi antar entitas

Menggambar diagram E-R

REAL WORLD

Model Data

Relasi

Skema Basis Data

Basis Data

Pembuatan

Model relasi

Normalisasi

Implementasi melalui DBMS

Page 30: Database

Politeknik Telkom Perancangan Basis Data Relasional

16 Perancangan Basis data

Transformasi menjadi model relasi

Nomalisasi

Implementasi dengan menggunakan DBMS tertentu (Access, SQL, dsb.). Struktur tabel, atribut kunci, aturan integritas, relasi antar

tabel

Gambar 1-9 Pendekatan ER

1.14. Bahasa Basis Data

1. Data Definition Language (DDL)

Data Definition Language ini berfungsi untuk menspesifikasikan skema basis

data. Degan bahasa ini user dimungkinkan untuk membuat tabel baru,

indeks, mengubah struktur tabel, menetukan stuktur penyimpanan tabel,

dan masih banyak lagi. Hasil dari kompilasi DDL adala kumpulan tabel yang

tersimpan pada sebuah file khusus yang disebut dengan kamus data (data

dictionary) atau data directory. Kamus data merupakan sebuah file yang

berupa metadata, yaitu data tentang data. Kamus data ini akan selalu

diakses pada suatu operasi basis data sebelum suatu file data yang

sesungguhnya diakses.

2. Interactive Data Manipulation Language (DML)

Level abstraksi yang telah dibahas sebelumnya tidak hanya berlaku pada

definisi atau struktur data tetapi juga pada manipulasi data. Manipulasi data

itu sendiri dapat berupa:

i. pengambilan informasi yang tersimpan pada basis data.

ii. Pemasukan informasi baru ke dalam basis data.

iii. Penghapusan informasi dari basis data.

iv. Modifikasi informasi yang tersimpan pada basis data

REAL WORLD

Model Data

E-R

Skema Basis

Data Basis Data

Pembuatan

Model Kon-septual

Normalisasi

Imple-mentasi melalui DBMS

Model Data

Relasi

Page 31: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 17

Pada level fisik, kita harus mendefinisikan algoritma yang memungkinkan

pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang

dipentingkan bukan hanya efisiensi akses tetapi juga efisiensi interaksi user

dengan sistem.

DML merupakan bahasa yang memungkinkan user untuk mengakses atau

memanipulasi data sebagaimana telah direpresentasikan oleh model data.

Terdapat dua macam DML, yaitu:

Prosedural, mengharuskan user untuk menentukan data apa yang

dibutuhkan dan bagaimana untuk mendapatkan data tersebut.

Nonprosedural, mengharuskan pemakai untuk menentukan data apa yang dibutuhkan tanpa menyebuntukan bagaimana mendapatkan data tersebut.

3. Transaction control

Transaction control adalah bahasa basis data yang mengatur transaksi yang

dilakukan oleh Data Manipulation Language (DML). Transaction control ini

memiliki peran yang sangat besar untuk menentukan dilakukan atau

tidaknya perubahan-perubahan data yang ada pada basis data. Contoh dari

transaction control ini adalah perintah commit dan rollback.

4. Embedded and Dinamic SQL, contoh C,C++,Java, Cobol, Pascal, etc.

Tidak semua DBMS memiliki fasilitas ini, salah satu contoh DBMS yang

memiliki fasilitas ini adalah oracle dimana oracle dapat me-load class yang

ditulis menggunakan bahasa pemrograman java kedalam database.

5. Authorization, untuk mendefinisikan hak akses spesifik terhadap objek-

objek basis data.

Page 32: Database

Politeknik Telkom Perancangan Basis Data Relasional

18 Perancangan Basis data

Rangkuman

1. Data dan informasi akan saling berkesinambungan sehingga membentuk

suatu siklus yang disebut information cycle (siklus informasi).

2. Pengelolaan data dan informasi menggunaan DBMS memiliki keuntungan jika dibandingkan dengan menyimpannya menggunakan file.

3. Basis data adalah penyimpanan kumpulan informasi secara sistematik

dalam sebuah komputer sehingga dapat diperiksa menggunakan suatu

program komputer untuk memperoleh informasi dari basis data tersebut.

Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri

(query) basis data disebut sistem manajemen basis data (Database

Management System, DBMS).

4. Teradapat tiga level abstraksi data yaitu dari yang paling dasar adalah level

fisik, level lojik, dan level view.

5. Basis data relasional memiliki satu struktur “lojik” yang disebut Relation

(relasi). Struktur relasi merupakan struktur data 2-dimensi dan pada level

“fisik” berupa table (tabel).

Page 33: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 19

Kuis Benar Salah

1. Informasi merupakan hasil dari pengolahan data.

2. Data ditangkap oleh indera kemudian menjadi inputan dalam sebuah

model untuk diubah menjadi pengetahuan dan tindakan.

3. Data merupakan salah satu parameter kemajuan sebuah organisasi.

4. Jika data disimpan dalam file maka setiap aplikasi tidak memiliki file

tersendiri.

5. Data integrity merupakan masalah yang dapat ditemui jika kita

menyimpan data menggunakan file.

6. Model object oriented direpresentasikan dalam tabel dua dimensi, tabel-

tabel tersebut memiliki hubungan yang disebut dengan relasi.

7. Perancangan basis data merupakan proses untuk merepresentasikan fakta

dunia nyata (real world) yang dikehendaki ke dalam sistem komputer,

sehingga mudah dipahami pemakai dengan mempertimbangkan

kemudahan implementasi dan pemrosesannya.

8. Database Management System (DBMS) merupakan salah satu jenis perangkat lunak.

9. Data yang disimpan dalam DBMS tidak dapat diakses secara bersamaan.

10. Memungkinkan beberapa aplikasi menggunakan DBMS yang sama.

Page 34: Database

Politeknik Telkom Perancangan Basis Data Relasional

20 Perancangan Basis data

Pilihan Ganda

1. Berikut ini merupakan hasil pengolahan data, kecuali…

A. Informasi

D

. DBMS

B. Pengetahuan E. Wisdom

C. Kebijakan

2.

Penyimpanan data menggunakan file memiliki permasalahan sebagai berikut

kecuali…

A.

Data redundancy dan

inconsistency D. Security

B. Isolation E. Integrity

C. Simplicity

3.

Dalam menganalisis suatu domain, hal-hal yang harus diperhatikan adalah

sebagai berikut kecuali…

A. Pendefinisian masalah D. Identifikasi entitas dan relasi

B. Business process oriented E. Identifikasi produktivitas domain

C. Aturan/rule yang jelas

4. Jawaban yang paling tepat mengenai Database Management System adalah...

A. Menambah data D. Mengelola data

B. Mengubah data E. Memberikan data

C. Menghapus data

5. Berikut ini adalah jenis DBMS untuk skala enterprise adalah…

A. MySQL D. SQL server

B. Firebird E. MS Access

C. PostgreSQL

6 Berikut ini jenis model basis data kecuali...

A. Relational D. Hirarkial

Page 35: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 21

B. Heuristik E. Object oriented

C. Network

7 Berikut ini termasuk komponen basis data, kecuali…

A Hardware D Tupperware

B Operating sistem E Software

C Brainware

8 Hal yang benar mengenai level view pada abstraksi data adalah…

A

Merupakan level terendah

abstraksi D Berhubungan langsung dengan user

B

Dapat direpresentasikan dengan

diagram ER. E

Salah satu level konseptual

abstraksi data

C

Berhubungan dengan indexing,

fragmenting, dan crash recovery

9 Hal-hal berikut ini yang berhubungan dengan metodologi perancangan

basis data kecuali...

A Cara pembuatan basis data D Perancangan lojik

B Perancangan fisik E Penentuan entitas dan relasi

C Operasi recovery

10 Kelebihan DBMS kecuali…

A Data Independence D Crash recovery

B Data integrity E Salah semua

C Data avaibility

Page 36: Database

Politeknik Telkom Perancangan Basis Data Relasional

22 Perancangan Basis data

Latihan

1. Gambarkan dan jelaskan proses pengolahan data hingga data tesebut

dapat menjadi sebuah kebijakan (wisdom)!

2. Jelaskan mengenai masalah integritas data yang terjadi jika kita

menggunakan file untuk menyimpan data!

3. Jelaskan mengenai mekanisme crash recovery pada DBMS

4. Jelaskan perbadaan antara entitas dan relasi dalam konsep RDBMS

5. Apakah tujuan dari perancangan basis data?

Page 37: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 23

2 ENTITY RELATIONSHIP MODEL

Overview

Salah satu pemodelan basis data secara konseptual adalah pemodelan berbasis

relasi antar entitas. Pemodelan ini dikenal karena mudah dimengerti. Konsep

utama dari pemodelan ini berakar pada Entitas entitas dan relasi antar entitas.

Pada bab ini akan di bahas pengertian entitas, atribut dan relasi, derajat

himpunan relasi, kardinalitas relasi, serta pengenalan key sebagai salah satu

constraint dalam ER.

Tujuan

1. Mahasiswa memahami definisi salah pemodelan konseptual basis data

menggunakan ER.

2. Mahasiswa memahami Konsep Entitas, Atribut, Relasi dan Kardinalitas

relasi.

Page 38: Database

Politeknik Telkom Perancangan Basis Data Relasional

24 Perancangan Basis data

2.1 ER Sebagai Salah Satu Pemodelan Konseptual Basis

Data

Didalam membuat sebuah Basis Data, hal pertama yang harus dilakukan

adalah mendesain tabel tabel yang akan digunakan untuk menyimpan data

sesuai bisnis proses yang kita inginkan. Proses konseptual adalah pandangan

secara konsep tentang basis data. Pandangan konseptual ini tentunya harus

bisa diimplementasikan kedalam bentuk tabel, karena basis data relasional

hanya mengenal tabel.

ER adalah salah satu pemodelan basis data konseptual yang

menggambarkan basis data ke dalam bentuk Entitas-Entitas dan Relasi yang terjadi di antara entitas-entitas yang ada. Entitas diartikan sebagai

„objek‟ didunia nyata yang bisa dibedakan dengan „objek‟ yang lain. Relasi

diartikan sebagai hubungan yang terjadi diantara satu entitas dengan entitas

yang lainnya.

2.2 Entitas dan Himpunan Entitas

Definisi entitas adalah objek yang dirasa penting di sistem tersebut, yg

bisa berupa :

– Objek Konkrit

Contoh : Orang, Buku

– Objek Abstrak Contoh : Jadwal, Pinjaman, Tabungan

Bambang adalah salah satu contoh dari entitas. Sedangkan bambang,

susi, sumarno merupakan himpunan entitas orang. Dapat kita katakan bahwa

Himpunan Entitas (Entity Set): Sekelompok entitas yang sejenis dan

berada dalam lingkup yang sama. Kumpulan entitas orang dengan karakteristik

mempunyai nim, prodi, dsb bisa kita katakan merupakan himpunan entitas

mahasiwa. Entitas menunjuk kepada pada individu suatu objek

sedangkan himpunan entitas menunjuk pada rumpun (family) dari

individu tersebut.

Page 39: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 25

Gambar 2-1 Himpunan Entitas Mahasiswa

Sebuah entitas / himpunan entitas dapat di gambarkan / di notasikan

dengan sebuah gambar persegi panjang. Berikut merupakan contoh

entitas mahasiwa, jadwal dan pinjaman.

Gambar 2-2 Contoh himpunan entitas

Setiap entitas mempunyai atribut yang melekat pada entitas tersebut.

Berikut gambaran konseptual basis data (* entitas dan atribut) yang

direfleksikan kedalam bentuk fisik dari basis data (* tabel dan kolom).

Gambar 2-3 Gambaran Himpunan entitas di Tabel

Mahasiswa Jadwal Pinjaman

Bambang

Susi

Sumarno

Mahasiswa

entitas orang

Entitas orang

Himpunan entitas orang yang mempunyai kesamaan karakteristik yaitu nim, prodi,

dsb membentuk himpunan entitas ‘mahasiswa’

Atribut Entitas

Entitas 1

Entitas 2

Entitas 3 MAHASISWA

Page 40: Database

Politeknik Telkom Perancangan Basis Data Relasional

26 Perancangan Basis data

2.3 Atribut

Atribut merupakan gambaran karakteristik dari sebuah entitas atau

himpunan entitas. Contoh : atribut untuk himpunan entitas mahasiswa adalah

nim, nama, alamat, ipk, program studi, hobi, dsb.

Setiap atribut mempunyai domain value set yaitu batasan batasan yg

dibolehkan bagi suatu atribut.

Tipe – tipe atribut dapat dibedakan.

– Simple dan Composite Atribut Simple yaitu suatu atribut yang tidak bisa dibagi menjadi

bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin.

Atribut Composite yaitu suatu atribut yang dapat di bagi menjadi

beberapa bagian. Contoh atribut composite Nama dapat di bagi

menjadi nama depan dan nama belakang.

Gambar 2-4 Contoh Atribut Komposit

– Single value dan multivalued

Atribut Single value yaitu suatu atribut yang bisa di isi paling banyak

1 nilai untuk setiap baris data. Contoh atribut single value adalah Jenis

Kelamin.

Atribut Multivalued yaitu suatu atribut yang bisa lebih dari 1 nilai

yang sejenis untuk setiap baris data. Contoh atribut mutlivalued

value adalah Alamat, No telp dan hobi. Ketiga atribut tersebut bisa

berisi lebih dari 1. Contoh untuk 1 entitas orang bisa mempunyai

lebih dari 1 nilai untuk atribut hobi yang isinya musik, olahraga begitu

juga untuk telp dan alamat (* karena bisa mempunyai > 1 no telp dan

> 1 alamat)

Page 41: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 27

– Derived attribute Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari

hasil pengolahan atribut lain. Contoh atribut derived adalah umur

yaitu didapatkan dari perhitungan tanggal lahir dan tanggal sekarang.

IPK yang didapatkan dari penjumlahan nilai di bagi dengan jumlah sks

yang diambil.

Notasi atribut digambarkan dengan gambar elips. Atribut kunci

biasa di beri tanda # atau garis bawah. Contoh himpunan entitas mahasiswa

mempunyai atribut nim sebagai key, prodi, nama, ipk, dsb

Gambar 2-5 Entitas mahasiswa dengan Atribut

2.4 Relasi

ER menggambarkan entitas-entitas dengan atributnya yang saling

berelasi. Relasi menggambarkan hubungan antara entitas satu dengan entitas

yang lain sesuai dengan proses bisnisnya. Notasi relasi didalam diagram ER

digambarkan dengan notasi belah ketupat.

Perhatikan contoh relasi antara mahasiswa dengan organisasi berikut.

Gambar 2-6 Relasi di gambarkan dengan belah ketupat

Gambar di atas menunjukkan hubungan antara entitas mahasiswa dan

entitas organisasi. Relasi yang terjadi adalah relasi mempunyai, dimana

mahasiwa mempunyai organisasi. Entitas mahasiwa memiliki atribut nim,

Mahasiswa

#nim

prodi ipk

nama

Organisasi

Relasi mahasiswa mempunyai organisasi

mempunyai

memp

unyai

Mahasiswa

Page 42: Database

Politeknik Telkom Perancangan Basis Data Relasional

28 Perancangan Basis data

nama, alamat, prodi, ipk, dsb. Sedangkan entitas organisasi memiliki atribut

kd_organisasi, nama_organisasi, jenis_organisasi (* olahraga/kesenian/jurusan

dsb). 1 Mahasiswa bisa mempunyai 0 atau lebih organisasi pada semester

dan tahun ajaran tertentu. 1 Organisasi bisa di punyai 0 atau lebih

mahasiswa pada semester dan tahun ajaran tertentu. Kardinalitas relasi

adalah n ke n. Dampak dari kardinalitas n ke n ini, relasi menjadi atribut,

primary key dari entitas mahasiwa dan primary key dari entitas organisasi

masuk ke tabel relasi sebagai atribut. Atribut tambahan berupa semester

dan tahun ajaran merupakan atribut tambahan pada tabel relasi

mempunyai, atribut ini disebut atribut deskriptif. Atribut deskriptif ini

muncul karena adanya kebutuhan dari proses bisnis untuk mencatat historis

mahasiwa tersebut per semester dan tahun ajaran tertentu, sehingga bisa di

lihat track record organisasi mahasiwa tersebut selama belajar di kampus dari

semester ke semester berikutnya.

Berikut merupakan contoh gambaran antara entitas mahasiwa dan

entitas organisasi.

Gambar 2-7 Himpunan Entitas Mahasiwa Ber-Relasi dengan Himpunan

Entitas Organisasi

2.5 Derajat Himpunan Relasi

Jika dilihat dari jumlah entitas yang dihubungkan oleh sebuah relasi,

maka kita bisa membagi menjadi 3 macam:

Unary (Hanya me-relasi-kan 1 entitas)

Bambang

Susi Sumarno

Organisai LINUX

Organisai Pecinta Satwa

Sumarno

Mempunyai organisasi Pecinta Satwa

Di semester 1 tahun ajaran 2008/2009

Page 43: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 29

Gambar 2-8 Contoh Derajat Relasi Unary

Relasi di atas menggambarkan entitas karyawan yang ber-

relasi dengan entitas karyawan. Entitas karyawan bisa

merupakan karyawan biasa tetapi bisa juga merupakan

manajer. Relasi yang terjadi yaitu relasi karyawan bekerja

untuk manajer (* entitas manajer adalah salah satu karyawan

juga). Perhatikan kardinalitas relasinya, 1 karyawan hanya

bekerja untuk 1 manajer, tetapi 1 manajer bisa mempunyai

banyak bawahan.

Binary (Me-relasi-kan 2 entitas)

Gambar 2-9 Contoh Derajat Relasi Binary

Relasi di atas menggambarkan entitas pelangan yang ber-relasi

dengan entitas pinjaman. 1 pelanggan bisa mempunyai banyak

nomor pinjaman, dan 1 nomor pinjaman hanya untuk 1

pelanggan.

Page 44: Database

Politeknik Telkom Perancangan Basis Data Relasional

30 Perancangan Basis data

Ternary (Me-relasi-kan 3 entitas)

Gambar 2-10 Contoh Derajat Relasi Ternary

Relasi di atas menggambarkan entitas karyawan yang ber-

relasi dengan entitas cabang dan entitas pekerjaan melalui

relasi bekerja_di. 1 karyawan bekerja di sebuah id pekerjaan

tertentu dan juga bekerja di sebuah cabang tertentu. Ada 3

entitas yang terlibat dari relasi di atas

2.6 Kardinalitas Relasi

Kardinalias relasi menggambarkan banyaknya jumlah maksimum entitas

dapat ber-relasi dengan entitas pada himpunann entitas yang lain. Pada

himpunan relasi biner, pemetaan kardinalitas relasi dapat berupa salah satu

dari pilihan berikut :

Satu ke Satu

Gambar 2-11 Relasi dengan Kardinalitas 1 ke 1

Relasi di atas menggambarkan bahwa untuk setiap entitas di

himpunan entitas A berpasangan dengan maksimal 1 entitas di

Page 45: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 31

himpunan entitas B. Asumsi kita akan membuat sebuah tugas yaitu

menjadi pj_cuci_piring. 1 Orang di tugaskan untuk menjadi

pj_cuci_piring di maksimal 1 hari. Begitupun juga jika di balik, pada

1 hari, maksimal 1 orang yang menjadi pj_cuci_piring. Dari A ke B

kardinalitasnya maksimal 1, dan dari B ke A kardinalitasnya

maksimal 1. Oleh karena itu relasi ini berkardinalitas 1 ke 1.

Satu ke Banyak

Gambar 2-12 Relasi dengan Kardinalitas 1 ke Banyak

Relasi di atas menggambarkan bahwa untuk setiap entitas di

himpunan entitas A berpasangan dengan banyak entitas di

himpunan entitas B. Asumsi yang berbeda di pakai ketika

memandang relasi ini, 1 orang bisa memperoleh pj_cuci_piring

untuk > 1 hari. Tetapi 1 hari hanya di pj-kan hanya untuk maksimal

1 orang. Dari A ke B kardinalitasnya maksimal adalah banyak, dan

dari B ke A kardinalitasnya maksimal 1. Oleh karena itu relasi ini

berkardinalitas 1 ke banyak.

Banyak ke Satu

Gambar 2-13 Relasi dengan Kardinalitas Banyak ke 1

Page 46: Database

Politeknik Telkom Perancangan Basis Data Relasional

32 Perancangan Basis data

Relasi di atas menggambarkan bahwa untuk setiap entitas di

himpunan entitas A berpasangan dengan maksimal 1 entitas di

himpunan entitas B. Asumsikan bahwa untuk 1 hari pj_cuci_piring

boleh di berikan pada banyak orang, sedangkan 1 orang hanya di

berikan tugas untuk menjadi pj_cuci_piring sebanyak maksimal 1

hari. Dari A ke B kardinalitasnya maksimal adalah 1, dan dari B ke

A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi

ini berkardinalitas banyak ke 1.

Banyak ke Banyak

Gambar 2-14 Relasi dengan Kardinalitas Banyak ke Banyak

Relasi di atas menggambarkan bahwa untuk setiap entitas di

himpunan entitas A berpasangan dengan maksimal banyak entitas

di himpunan entitas B. Asumsikan bahwa dalam 1 hari

pj_cuci_piring bisa di bebankan pada banyak orang dan 1 orang

bisa di bebankan untuk menjadi pj_cuci_piring lebih dari 1 hari.

Dari A ke B kardinalitasnya maksimal adalah banyak, dan dari B ke

A kardinalitasnya maksimal adalah banyak. Oleh karena itu relasi

ini berkardinalitas banyak ke banyak.

2.7 Key

Penggunaan key merupakan cara untuk membedakan suatu entitas

didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk

setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa

mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik.

Macam key ada 3 yaitu :

Superkey

Page 47: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 33

Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang

dapat membedakan satiap baris data dalam sebuah relasi

secara unik. Contoh super key yaitu =

• Nim, nama, alamat, kota

• Nim, nama, alamat

• Nim, nama

• Nim

Candidate key

Kumpulan atribut minimal yang dapat membedakan setiap

baris data dalam sebuah relasi secara unik. Contoh Nim

Primary key

Primary key merupakan salah satu dari candidate key yang

terpilih. Alasan pemilihan primary key :

• Lebih sering di jadikan acuan

• Lebih ringkas

• Jaminan keunikan key lebih baik

Contoh dari primary key adalah Nim

2.8 Diagram ER

Merupakan diagram model konseptual untuk menggambarkan struktur

logis dari basisdata berbasis grafis.

Gambar 2-15 Contoh Diagram ER

Notasi yang digunakan di Diagram ER adalah :

Garis : Link yang menghubungkan atara Entitas dengan

atribut, dan entitas dengan relasi atau entitas

Elips dobel : Menunjukkan atribut yang multivalued

Elips dengan garis terputus : Menunjukkan atribut turunan

kota #nim nama

prodi ipk

#kd_org nama

jenis umur

alamat Mahasiswa Organisasi

mem

puny

aime

mpun

yai

Page 48: Database

Politeknik Telkom Perancangan Basis Data Relasional

34 Perancangan Basis data

2.9 Constraint Cardinalitas

Dalam menggambarkam kardinalitas pada Diagram ER, digunakan

garis panah (->) yang menunjukkan ―Satu‖ atau garis biasa (—) yang

menunjukkan ―Banyak‖.

Gambar 2-16 Relasi 1 ke 1

1 Mahasiswa hanya boleh menjabat 1 jabatan dalam 1 periode tertentu.

1 Jabatan hanya boleh di jabat oleh 1 mahasiswa dalam 1 periode

tertentu.

Gambar 2-17 Relasi 1 ke banyak

1 Jabatan hanya boleh dijabat oleh 1 mahasiswa dalam 1 periode

tertentu dan 1 organisasi tertentu.

1 Mahasiswa boleh menjabat 1 jabatan dalam 1 periode tertentu di

organisasi yang berbeda.

kota #nim nama

prodi ipk

#kd_org nama

jenis umur

alamat Mahasiswa Organisasi

mem

puny

aime

mpun

yai

kota #nim nama

prodi ipk

#kd_org nama

jenis umur

alamat Mahasiswa Organisasi

mem

puny

aime

mpun

yai

Page 49: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 35

Gambar 2-18 Relasi Banyak ke 1

1 Jenis Beasiswa boleh diberikan untuk banyak mahasiwa

1 Mahasiwa hanya boleh mendapatkan 1 Jenis beasiwa

Gambar 2-19 Relasi Banyak ke Banyak

1 Mahasiswa boleh mengambil banyak mata kuliah

1 Mata kuliah boleh diambil banyak mahasiwa

kota #nim nama

prodi ipk

#kd_org nama

jenis umur

alamat Mahasiswa Organisasi

mem

puny

aime

mpun

yai

kota #nim nama

prodi ipk

#kd_org nama

jenis umur

alamat Mahasiswa Organisasi

mem

puny

aime

mpun

yai

Page 50: Database

Politeknik Telkom Perancangan Basis Data Relasional

36 Perancangan Basis data

Rangkuman

1. ER adalah salah satu pemodelan basis data ke dalam bentuk

Entitas-Entitas dan Relasi yang terjadi di antara entitas-entitas yang

ada.

2. Entitas diartikan sebagai „objek‟ didunia nyata yang bisa dibedakan dengan „objek‟ yang lain. Notasi entitas digambarkan dengan Persegi

panjang.

3. Relasi diartikan sebagai hubungan yang terjadi diantara satu entitas

dengan entitas yang lainnya. Notasi relasi di gambarkan dengan belah

ketupat.

4. Setiap entitas mempunyai atribut yang berisi karakteristik yang

mendeskripsikan dari entitas tersebut. Notasi atribut di gambarkan

dengan elips.

5. Derajat himpunan relasi ada 3 macam, yaitu unary, binary dan ternary.

6. Kardinalitas relasi menggambarkan banyaknya jumlah maksimum

entitas dapat berelasi dengan entitas pada himpunan entitas

yang lain.

7. Pada himpunan relasi biner, pemetaan kardinaltias relasi dapat berupa

salah satu dari berikut ini

a. Satu ke Satu

b. Satu ke Banyak

c. Banyak ke Satu

d. Banyak ke Banyak

8. Key adalah satu atau gabungan dari beberapa atribut yang dapat

membedakan semua row dalam relasi secara unik. Macam key

dibedakan jadi 3 = super key, candidate key, primary key.

9. Diagram ER Merupakan diagram model konseptual untuk

menggambarkan struktur logis dari basisdata berbasis grafis

Page 51: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 37

Kuis Benar Salah

1. ER merupakan satu-satunya pemodelan konseptual basis data.

2. Objek hanya didefinisikan untuk wujud yang konkrit.

3. Himpunan entitas merupakan diagram model konseptual untuk

menggambarkan struktur logis dari basisdata berbasis grafis

4. Setiap atribut mempunyai domain value set yang di spesifikasikan pada

masing masing atribut.

5. Yang membedakan domain set value antara atribut single dan composit

adalah jika single nilainya tidak bisa dibagi menjadi bagian yang lebih kecil,

sedangkan composit, nilainya dapat dibagi menjadi nilai yang lebih kecil.

6. Makna atribut composit sama dengan atribut multi valued karena bisa

dipecah menjadi bagian yang lebih kecil.

7. Atribut yg didapat dari hasil pengolahan atribut lain merupakan definisi

dari Derived Attribut dengan contohnya yaitu ipk.

8. Didalam relasi tidak dibolehkan menambah atribut lagi kecuali primary key

dari kedua entitas yang ber-relasi. 9. Yang membedakan derajat himpunan relasi adalah banyaknya entitas yang

ber-relasi.

10. Kardinalitas relasi menggambarkan banyaknya jumlah maksimum

entitas dapat berelasi dengan entitas pada himpunan entitas

yang lain.

11. Kumpulan atribut minimal yang dapat membedakan setiap baris data

dalam sebuah relasi secara unik merupakan definisi dari super key.

12. Nim, nama, alamat, kota merupakan primary key.

13. Notasi Elips dobel menunjukkan atribut yang multivalued.

14. Notasi Elips dengan garis terputus : Menunjukkan atribut turunan

15. Notasi garis bawah menunjukkan bahwa atribut tersebut adalah primary

key.

Page 52: Database

Politeknik Telkom Perancangan Basis Data Relasional

38 Perancangan Basis data

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1.

Manakah yang bukan merupakan entitas dari pilihan di bawah

___________

A. Dosen D. Penjadwalan

B. Mata Kuliah E. Nasabah

C. Mempunyai

2. Notas persegi panjang bisa memberikan makna _________

A. Entitas D. Atribut

B. Himpunan Entitas E. Relasi

C. A dan B benar

3.

Berikut ini merupakan domain value set bagi sebuah atribut didalam konse

Entity Relationship, kecuali _________

A. Simple D. Multivalued

B. Composit E. Surrogate key

C. Single value

4.

Dibawah ini merupakan alasan yang benar tentang makna Atribut

deskriptif ________

A.

Muncul hanya jika 2 entitas

bertemu di sebuah relasi D. Atribut yang dipercaya sebagai key

B. Dibolehkan di konsep ER E. Pernyataan di atas salah semua

C.

Atribut yang di turunkan dari

atribut lain

Page 53: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 39

5.

Pada gambar di atas, derajat himpunan relasinya adalah ________

A. Unary D. Four-ary

B. Binary E. Tidak ada jawaban yang benar

C. Ternary

6

Manakah yang benar dari gambar di atas ______

A.

Relasi di atas berkardinalitas

satu ke banyak D. B adalah himpunan Entitas Orang

B.

Relasi di atas berkardinalitas

banyak ke banyak E.

Relasi di atas di petakan kedalam

3 tabel

C. A adalah himpunan Entitas Hari

7

Pernyataan yang benar dari gambar di atas _________

A Himpunan relasi berderajat D A dan B benar

Page 54: Database

Politeknik Telkom Perancangan Basis Data Relasional

40 Perancangan Basis data

Ternary

B

Merupakan kardinalitas relasi

banyak ke banyak E B dan C benar

C

Terdapat 3 tabel, yaitu

himpunan entitas orang,

himpunan entitas hari dan relasi

8

Notasi di atas menggambarkan ________

A

1 Mahasiswa bisa aktif di banyak

organisasi D

1 Organisasi bisa di ikuti oleh

banyak mahasiwa

B

1 Mahasiswa hanya bisa aktif di

1 organisasi E B dan D benar

C

1 Organisasi hanya bisa di ikuti

oleh 1 mahasiswa

9 Kardinalitas relasi dari gambar di atas adalah _______

A 1 ke 1 D Banyak ke Banyak

B 1 ke banyak E Tidak ada jawaban yang benar

C Banyak ke 1

10

Dari himpunan atribut StaffNo, StaffAddress, Skill, mana yang

merupakan candidate key paling baik ________________

A StaffNo D StaffNo dan Skill

B StaffNo dan StaffAddress E Tidak ada jawaban yang tepat

C StaffNo,StaffAddress dan Skill

Page 55: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 41

Latihan

1. Buatlah sebuah entitas dan relasinya dari requirement berikut ini.

Di sebuah perusahaan, terdapat kepentingan untuk mencatat detail

logistik dari setiap kantor cabang. Contoh barang barang logistik adalah

Meja , Kursi, Lemari, Komputer. Setiap cabang bisa mempunyai setiap

barang tersebut sesuai kebutuhan. Untuk setiap logistik ada merknya

sendiri sendiri, bisa berbeda beda. Sistem basis data di inginkan bisa

mencatat historis dari barang logistik yang ada, barang tersebut kapan

datang, kondisinya masih bagus atau sudah rusak. Sehingga manajemen

bisa membuat sebuah anggaran untuk mengganti logistik-logistik yang

sudah usang.

Page 56: Database

Politeknik Telkom Perancangan Basis Data Relasional

42 Perancangan Basis data

3 KONVERSI ER KE TABEL

Overview

Pemodelan ER adalah pemodelan konseptual sebuah basis data relasional.

Desain ER bisa di konversikan kedalam bentuk tabel fisik yang akan di simpan

di dalam basis data. Didalam bab ini akan di bahas lebih lanjut dari ER yaitu

tentang weak entity, spesialisasi, agregasi dan penurunan Diagram ER ke

bentuk tabel. Penekanan pada bab ini adalah kapan dan bagaimana kita

menggunakan weak entity, spesilisasi dan agregasi dan bagaimana menurunkan

konseptual ER kedalam tabel.

Tujuan

1. Mahasiswa memahami konsep Weak Entity, Spesialisasi dan Agregasi

2. Mahasiswa memahami konsep penurunan dari Diagram ER ke Tabel

Page 57: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 43

3.1 Himpunan Entitas Lemah

Secara umum, Himpunan Entitas Lemah tidak memiliki primary key dan

selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan

dengan double persegi panjang, sedangkan relasi untuk himpunan entitas

lemah digambarkan dengan double diamond. Diskriminator / key parsial

adalah atribut – atribut yg dpt membedakan entitas – entitas yang terdapat di

himpunan entitas lemah. Diskriminator tidak sama dengan primary key.

Konsep diskriminator hanya di pakai pada himpunan entitas lemah. Primary

key pada Himpunan Entitas lemah ada 2 yaitu primary key dari

entitas kuat yg berelasi dan diskriminator / key parsialnya.

Diskriminator di notasikan dengan garis bawah yang putus putus.

Gambar 3-1 Contoh Himpunan Entitas Lemah

Relasi di atas menggambarkan bahwa seorang pegawai mendapatkan

fasilitas tunjangan dari perusahaan tempat dia bekerja. Tunjangan dalam hal ini

adalah entitas lemah. Tunjangan sebagai entitas tidak bisa berdiri sendiri,

tunjangan harus bergantung pada entitas pegawai (* tidak akan ada tunjangan

jika tidak ada pegawai).

Kardinalitas relasi yang terjadi pada himpunan entitas lemah biasanya

merupakan banyak ke 1 / 1 ke banyak dengan kardinalitas 1 di himpunan

entitas yang lebih kuat.

3.2 Spesialisasi

Spesialisasi merupakan proses desain top-down dengan mendesain

subgrouping didalam didalam himpunan entitas yang berbeda dari himpunan

entitas. Tujuan dari spesialisasi adalah memberikan gambaran konseptual

Tunjangan Pegawai

#nip nama

jabatan

Nomor

penerima

tunjangan

Nama penerima

tunjangan

Besar tunjangan

Page 58: Database

Politeknik Telkom Perancangan Basis Data Relasional

44 Perancangan Basis data

tentang perbedaan karakteristik dari himpunan entitas yang hampir serupa

dengan konsep sub grouping / pengelompokan.

Subgrouping di atas menjadi himpunan entias yang levelnya lebih

rendah dan memiliki atribut tersendiri yang tidak dimiliki pada level di

atasnya. Atribut ini khas dan merupakan pembeda dari entitas di subgroup

yang lain. IS A dinotasikan dengan gambar segitiga berlabel IS A.

Sifat dari spesialisasi adalah inheritan atribut yaitu atribut pada

level tinggi secara otomatis akan di turunkan pada level di bawahnya.

Gambar 3-2 Contoh Spesialisasi

Contoh di atas menggambarkan bahwa entitas pegawai mempunyai 2

subgroup yaitu pegawai tetap dan pegawai honorer. Kedua entitas pegawai

tetap dan pegawai honorer sama sama mempunyai atribut turunan yaitu nama

dan id_pegawai dari entitas pegawai. Perbedaan dari pegawai tetap dan

pegawai honorer terdapat di atribut yang melekat pada subgroup-nya. Atribut

besar tunjangan dan gaji perbulan hanya terdapat di himpunan entitas pegawai

tetap, sedangkan atribut upah per jam dan jumlah jam kerja terdapat di

himpunan entitas pegawai honorer.

3.3 Generalisasi

Generalisasi merupakan proses desain bottom-up dengan

mengkombinasikan jumlah himpunan entitas yang digunakan secara bersama

sama. Spesialisasi dan generalisasi sama sama digambarkan dengan notasi IS A,

yang membedakan adalah sudut pandangnya saja. Jika Spesialisasi kita

mendefinisikan entitas secara umum kemudian mencari subgroup dari entitas

tersebut, tetapi generalisasi memandang sebaliknya, dari adanya subgroup

subgroup yang berbeda kemudian di cari entitas umum yang mewakili 2

himpunan entitas tersebut.

Pegawai

#Id_pegawai nama

IS A

Pegawai Tetap Pegawai Honorer

Gaji Per Bulan Upah Per Jam

Jumlah Jam Kerja Besar

tunjangan

Page 59: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 45

3.4 Agregasi

Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n).

Pada umumnya terbentuk dari kardinalitas relasi banyak ke banyak. Didalam

konsep agregasi terdapat istilah enkapsulasi relasi dari kedua entitas.

Enkapsulasi di perlukan karena kedua himpunan entitas yang ber-relasi

tersebut merupakan 1 kesatuan yang tidak bisa di pisah. Notasi agregasi di

gambarkan dengan gambar persegi panjang yang membungkus himpunan

entitas yang saling ber-relasi.

Gambar 3-3 Contoh Agregasi

Gambar di atas menunjukkan relasi dosen mengajar sebuah mata

kuliah dan mahasiswa mengambil mata kuliah yang diajarkan oleh dosen

tertentu. Agregasi di perlukan dikarenakan tidak di mungkinkan mahasiwa

untuk mengambil mata kuliah tanpa adanya dosen yang bersedia untuk

mengajar mata kuliah tersebut. Dalam kasus di atas menekankan bahwa

himpunan entitas dosen harus ber-relasi terlebih dahulu dengan himpunan

entitas mata kuliah, kemudian relasinya di pandang sebagai 1 entitas yang ber-

relasi dengan himpunan entitas mahasiwa lewat relasi mengambil. Primary key

dari kedua himpunan entitas dosen dan mata kuliah akan secara implisit

masuk ke relasi mengajar dengan di tambah 2 atribut deskriptif (* semester

dan thn_ajaran). Relasi tersebut di anggap sebagai 1 entitas seperti gambar di

bawah ini.

Gambar 3-4 Relasi di pandang sebagai Himpunan Entitas

Page 60: Database

Politeknik Telkom Perancangan Basis Data Relasional

46 Perancangan Basis data

3.5 Ringkasan notasi simbol di ER

Gambar 3-5 Ringkasan Notasi pada Diagram ER

Page 61: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 47

3.6 Penurunan skema ER ke Tabel

Penurunan skema dimaksudkan untuk mengubah sebuah konsep

hubungan entitas dan relasi kedalam bentuk fisik tabel tabel yang berelasi. Inti

dari Entity Relationship adalah menggambarkan hubungan di dunia nyata

kedalam bentuk entitas entitas yang saling ber-relasi, dari diagram ini bisa di

buat kedalam bentuk tabel yang langsung di implementasikan kedalam basis

data.

Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai

berikut :

Setiap himpunan entitas menjadi Tabel (* baik himpunan entitas

kuat atau lemah)

Setiap atribut menjadi kolom di tabel

Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk

(* akan di bahas di bawah lebih detail)

3.7 Representasi Atribut sebagai Kolom

Pada atribut bertipe simple , single dan derived direpresentasikan

sama persis seperti diagram ER. Tetapi untuk atribut komposit dan

multivalued mempunyai aturan tersendiri.

Atribut komposit akan dipecah dengan membuat atribut terpisah

untuk masing masing komponennya. Contoh atribut nama pada tabel

mahasiwa, di pecah menjadi 2 kolom yaitu nama depan dan nama

belakang.

Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel.

Atribut multivalued M dari entitas E direpesentasikan oleh tabel terpisah EM.

Perhatikan gambar di bawah yang menunjukkan bagaimana penurunan sebuah

atribut multivalued :

Gambar 3-6 Atribut multivalued di pecah menjadi entitas baru

Page 62: Database

Politeknik Telkom Perancangan Basis Data Relasional

48 Perancangan Basis data

3.8 Representasi Himpunan Entitas sebagai Tabel

Himpunan entitas kuat di representasikan kedalam tabel dengan

kolom sama persis dengan atribut yang sudah di definisikan di diagram ER.

Perhatikan gambar di bawah ini :

Gambar 3-7 Atribut himpunan entitas kuat di representasikan kedalam

tabel

Himpunan entitas lemah akan menjadi tabel tersendiri yang

didalamnya ada kolom primary key yang merupakan identifikasi dari himpunan

entitas kuat. Contoh di bawah menggambarkan himpunan entitas lemah di

turunkan kedalam tabel.

Gambar 3-8 Penurunan Himpunan Entitas Lemah ke tabel

Page 63: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 49

3.9 Representasi Relasi (* pada kardinalitas N to N)

Relasi dari Himpunan Banyak ke Banyak direpresentasikan kedalam

Tabel tersendiri dengan primary key dari 2 Entitas menjadi atribut di Tabel

Relasi. Perhatikan relasi banyak ke banyak berikut dan contoh penurunan ke

tabel :

Gambar 3-9 Penurunan Kardinalitas relasi N to N menjadi Tabel

3.10 Hubungan kardinalitas dengan tabel yang terbentuk

Kardinalitas relasi dari Himpunan Entitas yang saling ber-relasi akan

menentukan banyaknya tabel yang bisa di buat. Adapun aturannya sebagai

berikut :

1 ke 1 Pilih primary key di 1 himpunan entitas untuk menjadi foreign key bagi

himpunan entitas yang lain.

Page 64: Database

Politeknik Telkom Perancangan Basis Data Relasional

50 Perancangan Basis data

1 ke banyak / banyak ke 1 Primary key pada Tabel berkardinalitas sedikit menjadi foreign key

pada tabel berkardinalitas banyak.

Banyak ke banyak

Sudah jelas di atas

3.11 Representasi Spesialisasi (IS A)

Ada 2 pendekatan yang dipakai didalam menurunkan spesialisasi

kedalam tabel.

Pendekatan 1

– Bentuklah tabel untuk level entitas yg lebih tinggi

– Bentuklah tabel untuk level entitas yg lebih rendah

(*dengan memasukkan primary key pada level yg lebih tinggi ke tabel dengan level yang lebih rendah)

Gambar 3-10 Representasi spesialisasi ke tabel metoda 1

Pendekatan 2

– Bentuklah tabel untuk tiap himpunan entitas dengan semua atribut lokal dan turunan.

– Bisa jadi tabel pada level tinggi tidak perlu di simpan jika spesialisasi

adalah total. Jika diperlukan bisa dibuat view yang menggabungkan

tabel-tabel spesialisasi.

Page 65: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 51

Gambar 3-11 Representasi spesialisasi ke tabel metoda 1

3.12 Representasi Agregasi

Untuk merepresentasikan agregasi, buatlah tabel yang terdiri dari :

– Foreign key dari himpunan entitas yang berhubungan

– Setiap atribut deskriptif

– Atribut baru untuk primary key di tabel relasi

Gambar 3-12 Representasi Agregasi untk tabel mata kuliah, dosen dan

Dosen mengajar mt kul

Page 66: Database

Politeknik Telkom Perancangan Basis Data Relasional

52 Perancangan Basis data

Gambar 3-13 Representasi Agregasi untuk tabel Mahasiwa dan

Mahasiwa Mengambil Mtkul

Page 67: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 53

Rangkuman

1. Himpunan Entitas Lemah tidak memiliki primary key dan selalu

bergantung pada entitas lain.

2. Notasi entitas lemah adalah doble persegi panjang, sedangkan relasinya

double diamond. 3. Jika konsep primary key di pakai didalam himpunan entitas kuat, maka

diskriminator dipakai sebagai pembeda antar entitas di dalam

himpunan entitas lemah. Diskriminator di gambarkan sebagai garis

bawah yang terputus putus.

4. Spesialisasi merupakan proses desain top-down; dengan mendesain

subgrouping didalam himpunan entitas yang berbeda dari himpunan

entitas.

5. Generalisasi merupakan proses desain bottom-up; mengkombinasikan

jumlah himpunan entitas yang digunakan secara bersama-sama.

6. Agregasi adalah enkapsulasi dari entitas entitas yang berelasi (*n-n).

Notasi agregasi adalah Persegi Panjang yang membungkus himpunan

entitas biner yang saling ber-relasi.

7. Secara umum penurunan diagram ER ke tabel memiliki aturan sebagai

berikut :

Setiap himpunan entitas menjadi Tabel

(* baik himpunan entitas kuat atau lemah)

Setiap atribut menjadi kolom di tabel

Kardinalitas relasi akan menentukan jumlah tabel yang terbentuk

(* akan di bahas di bawah lebih detail)

8. Atribut komposit akan dipecah dengan membuat atribut terpisah

untuk masing masing komponennya.

9. Atribut multivalued mengharuskan untuk di pecah menjadi 2 Tabel.

10. Himpunan Weak Entity akan menjadi tabel tersendiri yang

didalamnya ada kolom primary key yang merupakan identifikasi dari

strong entity.

11. Kardinalitas relasi menentukan berapa banyak tabel yang terbentuk.

Page 68: Database

Politeknik Telkom Perancangan Basis Data Relasional

54 Perancangan Basis data

Kuis Benar Salah

1. Pemodelan ER adalah pemodelan konseptual sebuah basis data relasional

dan pasti bisa di turunkan kedalam tabel.

2. Konsep diskriminator hanya di dapat pada himpunan entitas lemah.

3. Spesialisasi dan Generalisasi sama sama menggunakan notasi IS A.

4. Hanya kardinalitas relasi banyak ke banyak yang menurunkan 1 tabel lagi

yaitu tabel relasi.

5. Agregasi hanya bisa dilakukan pada kardinalitas relasi banyak ke banyak.

Page 69: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 55

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1.

Perhatikan relasi berikut

kardinalitas relasinya adalah________

A. Banyak ke Banyak D. Banyak ke Banyak

B. 1 ke 1 E. Salah semua

C. 1 ke Banyak

2. Diskriminator adalah konsep yang terdapat di __________

A. Himpunan Entitas kuat D. Spesialisasi

B. Himpunan Entitas lemah E. Generalisasi

C. Agregasi

3.

2 Entitas dengan kardinalitas relasi 1 ke banyak akan menghasilkan

__________ tabel

A. 1 Tabel D. Bisa 2 atau 3 tergantung situasi

B. 2 Tabel E. Bisa 1 atau 2 tergantung situasi

C. 3 Tabel

4.

Perhatikan relasi berikut

Relasi di atas merupakan contoh dari relasi _________

Page 70: Database

Politeknik Telkom Perancangan Basis Data Relasional

56 Perancangan Basis data

A. Agregasi D. Weak Entity

B. Spesialisasi E. Salah semua

C. Generalisasi

5.

Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah

_________

A. 3 Tabel D. 6 Tabel

B. 4 Tabel E. 7 Tabel

C. 5 Tabel

6

Gambar himpunan entitas berikut menggambarkan _______

A. Himpunan Entitas D. Relasi

B. Himpunan Entitas Lemah E. Atribut

C. Himpunan Entitas Kuat

7.

Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah

_________

A. 3 Tabel

B. 4 Tabel E. 7 Tabel

C. 5 Tabel

C Network

8 Setiap atribut pasti menjadi 1 kolom. Pernyataan tersebut _______

A Benar D. Salah pada kondisi tertentu

B Salah E. C dan D benar

C Benar pada kondisi tertentu

9 Ketika sebuah nilai atribut mempunyai multivalued maka langkah kita

adalah _______

A Menjadikannya entitas D. Tidak di ikuntukan menjadi kolom

B Biarkan saja E. Tidak ada jawaban yang tepat

C

Membuat banyak kolom untuk

mengatasi multivalued tersebut

Page 71: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 57

10 Semua ER adalah benar. Pernyataan tersebut _______

A Mutlak benar D. Tidak di ikuntukan menjadi kolom

B Mutlak salah E. Tidak ada jawaban yang tepat

C

Mutlak salah karena hanya ada 1

ER yang benar

Page 72: Database

Politeknik Telkom Perancangan Basis Data Relasional

58 Perancangan Basis data

Latihan

1. Turunkan Diagram ER berikut kedalam tabel!

Page 73: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 59

4 NORMALISASI

Overview

Bab ini akan membahas konsep normalisasi database berikut konsep-konsep

lain yang mendasarinya. Dalam bab ini juga akan ditampilkan contoh

penerapan normalisasi untuk tabel-tabel sederhana dalam kasus database

akademik di sebuah perguruan tinggi.

Tujuan

1. Mahasiswa memahami definisi dan tujuan normalisasi

2. Mahasiswa mampu mengidentifikasi super key, candidate key dan primary

key dari sebuah table

3. Mahasiswa mampu mengidentifikasi functional dependency yang ada pada

sebuah tabel, termasuk partial dan transitive FD

4. Mahasiswa mengenal bentuk normal pertama, ke dua, ke tiga dan BCNF

serta mampu melakukan normalisasi dengan menerapkan bentuk-bentuk

normal tersebut

5. Mahasiswa mengenal sekilas tentang bentuk-bentuk normal lain dan

memahami konsep denormalisasi

Page 74: Database

Politeknik Telkom Perancangan Basis Data Relasional

60 Perancangan Basis data

4.1 Definisi Normalisasi

Normalisasi adalah langkah-langkah sistematis untuk menjamin bahwa

struktur database memungkinkan untuk general purpose query dan bebas dari

insertion, update dan deletion anomalies yang dapat menyebabkan hilangnya

integritas data (E.F. Codd, 1970)

4.2 Tujuan Normalisasi

Pada dasarnya normalisasi dilakukan untuk memperbaiki desain tabel

yang kurang baik sehingga penyimpanan data menjadi lebih efisien dan bebas

anomali data. Untuk memperjelas pemahaman tentang proses normalisasi,

perhatikan diagram berikut:

Gambar 4-1 Diagram Normalisasi Intinya, normalisasi dilakukan terhadap desain tabel yang sudah ada

dengan tujuan untuk meminimalkan redundansi (pengulangan) data dan

menjamin integritas data dengan cara menghidari 3 Anomali Data: Update,

Insertion dan Deletion Anomaly.

4.2.1 Update Anomaly

Tabel 4-1 Contoh Update Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

1-01 Tukimin TE Elektro DU-001 English 2 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-01 Jamilah IF Informatika DU-001 English 2 C

2-02 Maemunah IF Informatika IF-002 Database 2 A

Tabel di atas adalah contoh tabel yang memiliki desain yang kurang baik.

Perhatikan bahwa jika kita ingin meng-update jumlah sks mata kuliah

English dari 2 menjadi 3 sks, maka kita harus mengupdate lebih dari 1

record, yaitu baris 2 dan 4.

Jika hanya salah satu baris saja yang di-update, maka data menjadi tidak

konsisten (ada mata kuliah English dengan 2 sks dan ada mata kuliah

Page 75: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 61

English dengan 3 sks) . Kondisi seperti inilah yang disebut dengan update

anomaly.

4.2.2 Insertion Anomaly

Tabel 4-2 Contoh Insert Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

1-01 Tukimin TE Elektro DU-001 English 2 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-01 Jamilah IF Informatika DU-001 English 2 C

2-02 Maemunah IF Informatika IF-002 Database 2 A

Pada tabel yang sama seperti contoh di atas, terjadi pula insertion anomaly.

Misalkan terdapat mahasiswa baru dengan nim 1-02 bernama „Zubaedah‟

dengan kode jurusan „TE‟ dan nama jurusan „Elektro‟.

Data mahasiswa tersebut tidak dapat dimasukkan ke dalam tabel sebab

dia belum mengambil kuliah apapun (misalnya karena belum melakukan

registrasi). Kondisi inilah yang disebut dengan insertion anomaly.

4.2.3 Deletion Anomaly

Tabel 4-3 Contoh Delete Anomaly NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

1-01 Tukimin TE Elektro DU-001 English 2 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-01 Jamilah IF Informatika DU-001 English 2 C

2-02 Maemunah IF Informatika IF-002 Database 2 A

Pada contoh tabel di atas terjadi deletion anomaly. Perhatikan bahwa jika

kita menghapus data mahasiswa bernama „Maemunah‟ maka kita harus

menghapus data pada baris ke 5, hal ini akan mengakibatkan kita juga

kehilangan data mata kuliah „Database‟. Kondisi inilah yang disebut dengan

deletion anomaly.

Selain 3 anomali di atas, ada beberapa konsep yang mendasari

normalisasi. Adapun konsep-konsep penting yang mendasari normalisasi

Page 76: Database

Politeknik Telkom Perancangan Basis Data Relasional

62 Perancangan Basis data

adalah konsep mengenai super key, candidate key, primary key, functional

dependency dan tentu saja bentuk-bentuk normal yang menjadi acuan kita

dalam melakukan normalisasi terhadap desain sebuah tabel. Pemahaman

terhadap konsep-konsep ini sangat penting dan akan dibahas di beberapa

sub bab berikutnya.

4.3 The Three Keys

Konsep tentang key adalah konsep yang penting untuk memahami

keterkaitan antar atribut data dalam tabel dan akan sangat berguna dalam

proses normalisasi. Dalam setiap tabel, terdapat 3 macam key:

a) Super key

Super key adalah satu atribut atau gabungan atribut (kolom) pada tabel

yang dapat membedakan semua baris secara unik.

b) Candidate key

Candidate key disebut juga dengan minimal super key, yaitu super key yang

tidak mengandung super key yang lain. Setiap candidate key pasti

merupakan super key, namun tidak semua super key akan menjadi

candidate key.

c) Primary key

Primary key adalah salah satu candidate key yang dipilih (dengan berbagai

pertimbangan) untuk digunakan dalam DBMS. Tiap tabel hanya memiliki 1

primary key, namun primary key tersebut bisa saja dibentuk dari beberapa

atribut (kolom).

Untuk memperjelas pemahaman kita terhadap 3 macam key di atas,

perhatikan contohnya pada tabel mata_kuliah di bawah ini:

Tabel 4-4 Tabel Mata Kuliah Kode_MK Nama_MK Semester SKS

DU-001 English 2 2

DU-002 Kalkulus 1 3

IF-001 Algoritma 1 3

IF-002 Database 2 3

IF-003 Artificial Intelligence 5 2

TE-001 Elektronika 4 3

Beberapa super key dari tabel di atas adalah:

1. (kode_mk)

Page 77: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 63

Dari 6 baris data yang ada pada tabel di atas tak ada satupun yang

memiliki kode_mk yang sama.

2. (nama_mk)

Demikian pula dengan nama_mk, masing-masing baris data memiliki

nama_mk yang unik. Tidak ada satupun baris data yang memiliki kolom

nama_mk dengan nilai yang sama persis.

3. (kode_mk,nama_mk,semester)

Walaupun beberapa baris data memiliki kolom semester dengan nilai

yang sama (misalnya baris 1&4, baris 2&3) namun tidak ada satupun

baris data yang memiliki kombinasi kode_mk, nama_mk dan semester

yang sama persis.

4. (kode_mk,nama_mk, sks)

Kombinasi kode_mk, nama_mk dan sks juga digolongkan sebagai

super key dengan alasan yang kurang lebih sama dengan poin 3.

5. (kode_mk,nama_mk, semester, jml_temu)

Kombinasi kode_mk, nama_mk, semester dan jml_temu juga

digolongkan sebagai super key dengan alasan yang kurang lebih sama

dengan poin 3 dan 4.

Sedangkan yang bukan super key adalah:

1. (sks)

Perhatikan bahwa kolom sks tidak bisa membedakan baris data secara

unik, contohnya baris data 2,3, 4 dan 6 sama-sama memiliki kolom sks

bernilai 3.

2. (semester)

Kolom semester juga tidak bersifat unik, contohnya baris data 1 dan 4

sama-sama memiliki kolom semester bernilai 2

3. (semester, sks)

Kombinasi semester dan sks juga tidak membedakan tiap baris data

secara unik, contohnya baris data ke 2 dan 3 sama-sama memiliki kolom

semester bernilai 1 dan sama-sama memiliki kolom sks bernilai 3

Candidate key dari tabel mata_kuliah dipilih dari super key yang sudah ada.

Super key yang akan menjadi candidate key adalah super key yang tidak mengandung super key lain di dalamnya.

Perhatikan 5 super key yang sudah kita peroleh dari analisis sebelumnya:

1. (kode_mk)

2. (nama_mk)

3. (kode_mk,nama_mk,semester)

Page 78: Database

Politeknik Telkom Perancangan Basis Data Relasional

64 Perancangan Basis data

4. (kode_mk,nama_mk, sks)

5. (kode_mk,nama_mk, semester, jml_temu)

Super key yang hanya teridiri dari satu atribut data pasti akan menjadi

candidate key sebab tidak mungkin mengandung super key yang lain. Oleh

karena itu super key pada poin 1 dan 2 otomatis menjadi candidate key.

Super key pada poin 3 tidak menjadi candidate key sebab dalam kombinasi

(kode_mk, nama_mk, semester) terdapat super key yang lain yaitu

(kode_mk). Dengan demikian, poin 4 dan 5 juga bukan candidate key.

Dari analisis ini, kita memperoleh 2 buah candidate key yaitu

(kode_mk) dan (nama_mk). Salah satu dari beberapa candidate key ini akan

dipilih untuk digunakan dalam DBMS sebagai primary key. Ada beberapa

pertimbangan untuk memilih primary key, di antaranya adalah jaminan

keunikan yang lebih kuat, representasi yang lebih baik dan lain-lain.

4.4 Functional Dependencies

Functional dependency (FD) atau kebergantungan fungsional adalah

constraint atau batasan/ ketentuan antara 2 buah himpunan atribut pada

sebuah tabel.

JIka A dan B adalah himpunan atribut dari tabel T, kebergantungan

fungsional antara A dan B biasanya dinyatakan dalam notasi notasi A B.

Notasi A B berarti:

A menentukan B

B secara fungsional bergantung kepada A.

A B jika memenuhi syarat berikut ini :

Pada sebuah tabel T, jika ada dua baris data atau lebih dengan nilai atribut A

yang sama maka baris-baris data tersebut pasti akan memiliki nilai atribut B

yang sama Namun hal ini tidak berlaku sebaliknya.

Untuk lebih jelasnya perhatikan tabel berikut ini:

Tabel 4-5 Contoh Tabel NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

1-01 Tukimin TE Elektro DU-001 English 2 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-01 Jamilah IF Informatika DU-001 English 2 C

2-02 Maemunah IF Informatika IF-002 Database 2 A

Page 79: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 65

Contoh kebergantungan fungsional yang terdapat pada tabel di atas:

NIM Nama_mhs

Untuk setiap baris data, jika NIM = 1-01 pasti Nama_mhs =

„Tukimin‟, walaupun belum tentu semua mahasiswa yang bernama

Tukimin memiliki NIM = 1-01

NIM Kd_jur

Untuk setiap baris data, jika NIM = 1-01 pasti Kd_jur = „TE‟,

walaupun tidak semua baris data dengan kd_jur „TE‟ memiliki kolom

NIM bernilai 1-01

NIM Nama_Jur Untuk setiap baris data dengan kolom NIM bernilai 1-01 pasti

memiliki kolom Nama_Jur = „Elektro‟, walaupun tidak semua orang

di jurusan Elektro memiliki NIM = 1-01. Demikian pula tidak semua

baris data pada tabel dengan kolom Nama_Jur = „Elektro‟ memiliki

kolom NIM = 1-01

Penulisan kebergantungan fungsional dari 3 poin di atas dapat diringkas

menjadi (NIM) (nama_mhs, kd_jur, nama_jur)

Dengan demikian, dari tabel tersebut dapat kita simpulkan beberapa

kebergantungan fungsional (FD) sebagai berikut:

• FD1: (nim) (nama_mhs, kd_jur, nama_jur)

• FD2: (kd_jur) (nama_jur)

• FD3: (kode_mk) (nama_mk, sks)

• FD4: (nim,kode_mk) (nilai)

Ada beberapa jenis kebergantungan fungsional, di antaranya yaitu:

a. Partial Functional dependency

b. Transitive Functional dependency

c. Multivalued Functional dependency

Ketiganya adalah konsep penting dalam normalisasi, namun dalam sub bab ini

kita hanya akan membahas mengenai Partial Functional dependency dan

Transitive Functional dependency.

4.4.1 Partial Funcional Dependency

Partial Functional dependency atau kebergantungan fungsional parsial

terjadi bila:

• B A

• B adalah bagian dari candidate key

Page 80: Database

Politeknik Telkom Perancangan Basis Data Relasional

66 Perancangan Basis data

Dengan kata lain jika (B,C) adalah candidate key dan B A maka A

bergantung secara parsial terhadap (B,C) atau (B,C) menentukan A

secara parsial.

Untuk lebih jelasnya perhatikan tabel berikut ini:

Tabel 4-6 Tabel Nilai NIM Nama_Mhs Kode_MK Nilai

1-01 Tukimin TE-001 A

1-01 Tukimin DU-001 A

2-01 Jamilah IF-001 B

2-01 Jamilah DU-001 C

2-02 Maemunah IF-002 A

Pada tabel di atas perhatikan bahwa:

1. Super key : (nim,kode_mk), (nim,nama_mhs,kode_mk) dan

(nim,nama_mhs,kode_mk,nilai)

2. Dari super key yang sudah diperoleh pada poin 1, maka dipilih

super key yang akan menjadi candidate key yaitu (nim,kode_mk)

3. FD: (nim) (nama_mhs)

Dari analisis poin 2 dan 3 maka dapat disimpulkan bahwa terjadi

kebergantungan fungsional parsial dimana (nama_mhs) bergantung

kepada (nim,kode_mk) secara parsial atau dapat juga dikatakan bahwa

(nim,kode_mk) menentukan (nama_mhs) secara parsial.

4.4.2 Transitive Functional dependency

Transitive Functional dependency atau kebergantungan fungsional transitif

terjadi jika:

A B

B C

Jika A B dan B C maka A C. Dengan kata lain A bergantung

secara transitif terhadap C melalui B atau A menentukan C secara

transitif melalui B.

Untuk lebih jelasnya perhatikan contoh tabel berikut ini:

Page 81: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 67

Tabel 4-7 Tabel Mahasiswa NIM Nama_Mhs Kd_Jur Nama_Jur

1-01 Tukimin TE Elektro

1-01 Tukimin TE Elektro

2-01 Jamilah IF Informatika

2-01 Jamilah IF Informatika

2-02 Maemunah IF Informatika

FD1: (nim) (nama_mhs, kd_jur, nama_jur)

FD2: (kd_jur) (nama_jur)

Dengan demikian dapat disimpulkan bahwa (nama_jur) bergantung

secara transitif terhadap (nim) melalui (kd_jur) atau dapat juga dikatakan

bahwa (nim) (nama_jur) secara transitif melalui (kd_jur).

4.5 Bentuk Normal dan Langkah-Langkah Normalisasi

Bentuk Normal adalah sekumpulan kriteria yang harus dipenuhi oleh

sebuah desain tabel untuk mencapai tingkat/level bentuk normal tertentu.

Parameter yang biasanya digunakan dalam menentukan kriteria bentuk normal

adalah Functional dependency & The Three Keys.

Masing-masing bentuk normal memiliki kriteria dan level tertentu yang

tidak mungkin dicapai tanpa memenuhi kriteria bentuk nomal level yang

berada di bawahnya. Makin tinggi level bentuk normal yang dicapai maka

kualitas desain tabel tersebut dinyatakan makin baik dan semakin kecil

peluang terjadinya anomali dan redundansi data.

Normalisasi dilakukan dengan cara menerapkan Bentuk-Bentuk Normal

secara bertahap dari level terendah sampai level yang dikehendaki. Walaupun

ada beberapa bentuk normal namun jika desain tabel tertentu sudah

memenuhi kriteria 3rd NF atau BCNF maka desain tabel itu biasanya dianggap

sudah „cukup normal‟.

4.5.1 Bentuk Normal Pertama (1st Normal Form)

Bentuk normal pertama atau First Normal Form (1st NF) adalah bentuk normal

yang memiliki level terendah.

Kriteria 1st NF:

• Tidak ada atribut (kolom) pada tabel yang bersifat multi-value

Page 82: Database

Politeknik Telkom Perancangan Basis Data Relasional

68 Perancangan Basis data

Sebuah atribut disebut bersifat multivalue jika dalam sebuah baris data

pada kolom tersbut terdapat lebih dari satu nilai. Misalnya kolom telepon

yang berisi „0813xx, 022xxx‟ dan seterusnya.

• Tidak memiliki lebih dari satu atribut dengn domain yang sama Sebuah tabel dikatakan memiliki lebih dari satu atribut dengan domain

yang sama jika pada tabel tersebut terdapat lebih dari satu kolom yang

digunakan untuk menyimpan data yang jenisnya sama. Misalnya kolom

telepon1, telepon2, telepon3 dan seterusnya.

Untuk lebih jelasnya perhatikan 2 versi contoh tabel T berikut ini:

Tabel 4-8 Versi pertama NIM Nama_Mhs Telp_1 Telp_2 Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin 0813xx 022xxx TE Elektro TE-001 Elektronika 3 A

2-01 Jamilah 0812xx 021xxx IF Informatika IF-001 Algoritma 3 B

2-02 Maemunah 0852xx 031xxx IF Informatika IF-002 Database 2 A

Tabel T versi pertama ini memiliki 2 atribut dengan domain yang sama yaitu

kolom telp_1 dan telp_2. Hal ini menunjukkan bahwa tabel T versi pertama

ini belum memenuhi syarat 1st NF.

Tabel 4-9 Versi ke dua NIM Nama_Mhs Telepon Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin 0813xx, 022xxx

TE Elektro TE-001 Elektronika 3 A

2-01 Jamilah 0812xx, 021xxx

IF Informatika IF-001 Algoritma 3 B

2-02 Maemunah 0852xx, 031xxx

IF Informatika IF-002 Database 2 A

Tabel T versi ke dua ini juga belum memenuhi sayarat 1st NF karena kolom

telepon bersifat multivalue.

Solusi agar tabel T memenuhi syarat 1st NF adalah dengan melakukan

pemecahan tabel atau dekomposisi tabel. Namun perlu diingat, dekomposisi

tabel harus dilakukan dengan cermat agar data tetap konsisten (perubahan

hanya terjadi pada struktur tabel tapi tidak terjadi perubahan pada data)

Perhatikan bahwa (nim) (telepon). Dengan demikian, kita dapat

memecah tabel T menjadi tabel T-1 dan tabel T-2 berikut ini:

Page 83: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 69

Tabel 4-10 Contoh Tabel T-1 NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-02 Maemunah IF Informatika IF-002 Database 2 A

Tabel 4-11 Contoh Tabel T-2 NIM Telepon

1-01 0813xx

1-01 022xxx

2-01 0812xx

2-01 021xxx

2-02 0852xx

2-02 031xxx

Baik Tabel T1 maupun tabel T2 tidak memiliki atribut bersifat

multivalue. Tabel T1 dan T2 juga tidak memiliki lebih dari satu atribut dengan

domain yang sama. Dengan demikian dapat disimpulkan bahwa tabel T1 dan

T2 telah memenuhi syarat 1st NF dan siap untuk diperiksa apakah memenuhi

syarat bentuk normal level berikutnya (2nd NF)

4.5.2 Bentuk Normal Ke Dua (2nd Normal Form)

Kriteria 2nd NF:

• Memenuhi 1st NF Desain tabel yang tidak memenuhi syarat 1st NF sudah pasti tidak akan

memenuhi syarat 2nd NF

• Tidak ada Partial Functional dependency

Partial Functional dependency terjadi bila (B,C) adalah candidate key dan

B A

Untuk lebih jelasnya perhatikan tabel T-1hasil tahap sebelumnya:

Page 84: Database

Politeknik Telkom Perancangan Basis Data Relasional

70 Perancangan Basis data

Tabel 4-12 Contoh T-1hasil NIM Nama_Mhs Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

1-01 Tukimin TE Elektro TE-001 Elektronika 3 A

2-01 Jamilah IF Informatika IF-001 Algoritma 3 B

2-02 Maemunah IF Informatika IF-002 Database 2 A

Perhatikan bahwa:

1. (nim, kode_mk) adalah candidate key

2. FD1: (nim) (nama_mhs, kd_jur, nama_jur)

3. FD2: (kode_mk) (nama_mk, sks)

4. FD3: (nim,kode_mk) nilai

Berarti Terjadi Partial Functional dependency:

• FD 1: (nim,kode_mk) (nama_mhs,kd_jur,nama_jur) secara parsial

• FD 2: (nim,kode_mk) (nama_mk,sks) secara parsial

Walaupun tabel T-1 telah memenuhi syarat 1st NF namun karena terjadi

partial functional dependency maka tabel T-1 belum memenuhi syarat 2nd NF.

Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1

dengan tetap menjaga agar datanya tetap konsisten. Hal ini dapat dilakukan

dengan melakukan dekomposisi tabel sesuai FD1, FD2 dan FD3 yang telah

kita analisis sebelumnya. Adapun hasil dekomposisi dari tabel T-1 adalah 3

tabel berikut ini:

Tabel 4-13 Contoh Tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur

1-01 Tukimin TE Elektro

2-01 Jamilah IF Informatika

2-02 Maemunah IF Informatika

Tabel 4-14 Contoh Tabel T-1-2 Kode_MK Nama_MK SKS

TE-001 Elektronika 3

DU-001 English 2

IF-001 Algoritma 3

IF-002 Database 2

Page 85: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 71

Tabel 4-15 Contoh Tabel T-1-3 NIM Kode_MK Nilai

1-01 TE-001 A

1-01 DU-001 A

2-01 IF-001 B

2-01 DU-001 C

2-02 IF-002 A

Ketiga tabel hasil dekomposisi tersebut sudah tidak mengalami partial

functional dependency. Dengan demikian ketiga tabel tersebut telah memenuhi

syarat 2nd NF dan siap untuk diperiksa apakah memenuhi syarat bentuk

normal level berikutnya (3rd NF).

Adapun Tabel T-2 (hasil dekomposisi pada tahap 1st NF) juga tidak

mengalami partial functional dependency sehingga sudah memenuhi 2nd NF,

tidak perlu didekomposisi lagi dan dapat langsung diperiksa apakah memenuhi

3rd NF bersama-sama dengan tabel T-1-1, T-1-2 dan T-1-3.

4.5.3 Bentuk Normal Ke Tiga (3rd Normal Form)

Umumnya jika sebuah tabel telah memenuhi syarat bentuk normal ke

tiga (3rd NF) maka tabel tersebut sudah dianggap „cukup normal‟. Bentuk

normal ke 3 adalah bentuk normal yang biasanya menjadi syarat minimum bagi

sebuah desan tabel walaupun akan lebih baik jika juga memenuhi BCNF.

Kriteria 3rd NF:

• Memenuhi 2nd NF

Desain tabel yang tidak memenuhi syarat 2nd NF sudah pasti tidak akan

memenuhi syarat 3rd NF

• Tidak ada Transitive Functional dependency Transitive functional dependency terjadi bila AB dan BC

Untuk lebih jelasnya perhatikan tabel T-1-1 dari tahap sebelumnya:

Page 86: Database

Politeknik Telkom Perancangan Basis Data Relasional

72 Perancangan Basis data

Tabel 4-16 Contoh tabel T-1-1 NIM Nama_Mhs Kd_Jur Nama_Jur

1-01 Tukimin TE Elektro

2-01 Jamilah IF Informatika

2-02 Maemunah IF Informatika

Perhatikan bahwa:

FD1: (nim) (nama_mhs, kd_jur, nama_jur)

FD2: (kd_jur) (nama_jur)

Berarti Terjadi Transitive FD:

(nim) (nama_jur) secara transitif melalui (kd_jur)

Walaupun tabel T-1-1 telah memenuhi syarat 2nd NF namun karena

terjadi transitive functional dependency maka tabel T1 belum memenuhi syarat

3rd NF. Solusinya adalah dengan melakukan dekomposisi terhadap tabel T-1-1

dengan tetap menjaga agar datanya tetap konsisten sesuai FD1dan FD2.

Adapun hasil dekomposisi dari tabel T-1-1 adalah 2 tabel berikut ini:

Tabel 4-17 Contoh Tabel T-1-1-1 NIM Nama_Mhs Kd_Jur

1-01 Tukimin TE

2-01 Jamilah IF

2-02 Maemunah IF

Tabel 4-18 Contoh Tabel T-1-1-2 Kd_Jur Nama_Jur

TE Elektro

IF Informatika

IF Informatika

4.5.4 Bentuk Normal Boyce Codd (BC Normal Form)

Boyce Codd Normal Form atau bentuk normal Boyce-Codd adalah bentuk

normal yang levelnya di atas 3rd NF. Kriteria BCNF:

Page 87: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 73

• Memenuhi 3rd NF Desain tabel yang tidak memenuhi syarat 3rd NF sudah pasti tidak akan

memenuhi syarat BCNF

• Untuk semua FD yang terdapat di tabel, ruas kiri dari FD

tersebut adalah super key

Jika ada satu saja FD pada tabel dimana ruas kirinya bukan super key maka

desain tabel tersebut belum memenuhi syarat BCNF. Solusinya adalah

dengan melakukan dekomposisi tabel dan tetap mempertahankan

konsistensi data seperti beberapa contoh pada sub bab sebelumnya

Jarang ada kasus dimana sebuah tabel memenuhi 3rd NF tapi tidak

memenuhi BCNF. Umumnya sebuah tabel dikategorikan sudah „cukup

normal‟ jika sudah memenuhi kriteria BCNF. Jika tidak memungkinkan untuk

memenuhi kriteria BCNF, maka 3rd NF juga sudah dianggap cukup memadai.

4.5.5 Bentuk-Bentuk Normal Lainnya

Selain bentuk-bentuk normal yang sudah diperkenalkan pada beberapa

sub bab sebelumnya, masih ada beberapa bentuk-bentuk normal lain.

Beberapa diantaranya adalah sebagai berikut:

1. Bentuk Normal ke-4 (4th NF)

diperkenalkan oleh Ronald Fagin pada tahun 1977

2. Bentuk Normal ke-5 (5th NF)

diperkenalkan oleh Ronald Fagin pada tahun 1979

3. Domain/Key Normal Form (DKNF)

diperkenalkan oleh Ronald Fagin pada tahun 1981

4. Bentuk Normal ke-6 (6th NF)

diperkenalkan oleh Date, Darwen dan Lorentzos pada tahun 2002

4.6 Denormalisasi

Denormalisasi adalah proses menggandakan data secara sengaja

(sehingga menyebabkan redundansi data) untuk meningkatkan performa

database, untuk meningkatkan kecepatan akses data atau memperkecil

query cost.

Yang perlu diingat tentang denormalisasi adalah bahwa denormalisasi

tidak sama dengan tidak melakukan normalisasi. Denormalisasi dilakukan

setelah tabel dalam kondisi „cukup normal‟ (mencapai level bentuk normal

yang dikehendaki).

Page 88: Database

Politeknik Telkom Perancangan Basis Data Relasional

74 Perancangan Basis data

Salah satu contoh teknik Denormalisasi adalah Materialized View pada

DBMS Oracle. Materialized view adalah teknik menggandakan data dengan

cara membuat tabel semu berupa view fisik (yang benar-benar dituliskan di

disk, bukan sebatas di memory). Materialized view biasanya dibuat dari hasil join

beberapa tabel yang sering diakses tapi jarang diupdate.

Materialized view akan menyebabkan redundansi data, namun sebagai

imbalannya kecepatan akses data meningkat drastis sebab data dapat langsung

diakses melalui materialized view tanpa harus menunggu query menyelesaikan

operasi join dari beberapa tabel.

Ada beberapa alasan melakukan denormalisasi:

1. Mempercepat proses query dengan cara meminimalkan cost yang

disebabkan oleh operasi join antar tabel

2. Untuk keperluan Online Analytical Process (OLAP)

3. Dan lain-lain

Adapun konsekuensi denormalisasi adalah sebagai berikut:

1. Perlu ruang ekstra untuk penyimpanan data

2. Memperlambat pada saat proses insert, update dan delete sebab proses-

proses tersebut harus dilakukan terhadap data yang redundant (ganda)

Dengan demikian dapat disimpulkan bahwa denormalisasi harus dilakukan

dengan bijak sebab walaupun memiliki beberapa keuntungan namun juga

memiliki konsekuensi yang patut diperhitungkan.

Page 89: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 75

Rangkuman

1. Normalisasi merupakan serangkaian langkah sistematis yang dilakukan

terhadap desain tabel dan bertujuan untuk menghindari redundansi dan

anomaly data sekaligus mengefisienkan penyimpanan data.

2. Tiga macam anomaly data: update, insertion dan deletion anomaly

3. Super key adalah sebuah atribut atau sekumpulan atribut yang dapat membedakan setiap baris data dalam tabel secara unik

4. Candidate key adalah minimal super key yang tidak mengandung super key

yang lain

5. Primary key adalah candidate key yang dipilih untuk diimplementasikan

pada DBMS

6. Setiap primary key pasti merupakan candidate key, setiap candidate key

pasti merupakan super key. Hal ini tidak berlaku sebaliknya.

7. A B jika terpenuhi syarat bahwa untuk setiap baris data di tabel T, jika

ada pasangan baris data pada kolom A memiliki nilai yang sama maka

dijamin kolom B pada baris-baris tersebut juga akan memiliki nilai yang

sama, namun tidak harus sebaliknya.

8. Partial Functional dependency terjadi bila sebuah atribut bergantung pada

sebagian dari candidate key

9. Transitive Functional dependency terjadi bila sebuah atribut bergantung

pada key melalui atribut lain

10. Normalisasi dilakukan secara bertahap, yaitu dengan menerapkan bentuk-

bentuk normal dari mulai level terendah sampai mencapai level yang

dikehendaki.

11. Syarat 1st NF: tidak ada atribut multivalue dan tidak ada lebih dari satu

atribut dengan domain yang sama

12. Syarat 2nd NF: memenuhi syarat 1st NF dan tidak mengalami partial

functional dependency

13. Syarat 3rd NF: memenuhi syarat 2nd NF dan tidak mengalami transitive

functional dependency

14. Syarat BCNF: memenuhi syarat 3rd NF dan ruas kiri dari setiap functional

dependency-nya adalah super key

15. Denormalisasi tidak sama dengan tidak melakukan normalisasi, tujuannya

adalah untuk meningkatkan performa database sebagai imbalan dari

munculnya redundansi (pengulangan data) pada database.

Page 90: Database

Politeknik Telkom Perancangan Basis Data Relasional

76 Perancangan Basis data

Kuis Benar Salah

1. Normalisasi dilakukan secara bertahap 2. Setiap super key pasti bisa membedakan baris-baris data dalam tabel

secara unik 3. Dalam sebuah tabel minimal ada satu candidate key 4. Primary key dalam sebuah tabel bisa ada lebih dari satu 5. Primary key dalam sebuah tabel bisa terdiri dari beberapa atribut 6. Jika sebuah tabel mengalami transitive functional dependency pasti tabel

tersebut tidak memenuhi syarat 2nd NF 7. Jika sebuah tabel mengalami transitive functional dependency pasti tabel

tersebut tidak memenuhi syarat BCNF 8. Desain tabel yang sudah memenuhi 2nd NF pasti tidak memiliki atribut

multivalue

9. Desain tabel yang sudah memenuhi syarat BCNF pasti tidak mengalami

partial functional dependency tapi masih mungkin mengalami transitive

functional dependency

10. Denormalisasi adalah membuat tabel menjadi „tidak normal‟

Page 91: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 77

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1. Normalisasi bertujuan untuk _____ A. Membuat desain tabel menjadi lebih efisien

B. Menghidari update dan insertion anomaly

C. Meminimalkan redundansi data

D. Menghindari deletion anomaly

E. Semua benar

2. Atribut atau sekumpulan atribut yang dapat membedakan setiap baris

data dalam tabel secara unik disebut _____

A. Super key

B. Candidate key

C. Primary key

D. Functional dependency

E. Tidak ada jawaban yang benar

3. Jika diketahui FD1: (A,B) (C) dan FD2: (C) (D,E) maka dapat

disimpulkan bahwa _____

A. Terjadi transitive functional dependency

B. Tabel tersebut tidak memenuhi syarat 3rd NF

C. (A,B) (C,D)

D. Pilihan A dan B benar

E. Pilihan A, B dan C benar

4. Syarat 2nd NF adalah _____

A. Tabel harus memiliki lebih dari 1 candidate key

B. Tidak boleh ada atribut atau kolom yang bergantung

secara fungsional pada sebagian dari candidate key

C. Tabel harus memiliki primary key

D. Tidak terjadi transitive functional dependency

E. Tidak ada jawaban yang benar

5. Syarat 3nd NF adalah _____

A. Tabel harus bebas dari partial functional dependency

B. Tabel harus memiliki candidate key

Page 92: Database

Politeknik Telkom Perancangan Basis Data Relasional

78 Perancangan Basis data

C. Tidak terdapat multivalue atribut

D. Memenuhi syarat BCNF

E. Memenuhi syarat 2nd NF dan bebas dari transitive

functional dependency

6. Pernyataan yang benar tentang primary key adalah _____

A. Setiap primary key pasti merupakan super key

B. Setiap primary key pasti merupakan candidate key

C. Primary key dalam sebuah tabel boleh lebih dari satu

D. Primary key boleh terdiri dari sekumpulan atribut

E. Semua jawaban benar

7. Atribut atau sekumpulan atribut yang tidak dapat membedakan setiap

baris data dalam tabel secara unik disebut _____

A. Super key

B. Candidate key

C. Primary key

D. Functional dependency

E. Non key

8. Jika sebuah tabel T dipastikan telah memenuhi syarat BCNF maka

dapat disimpulkan bahwa _____

A. Tabel T pasti memenuhi syarat 1st NF

B. Tabel T pasti bebas dari partial functional dependecy

C. Tabel T pasti bebas dari transitive functional dependency

D. Semua ruas kiri FD pada tabel T pasti merupakan super

key

E. Semua benar

9. Salah satu contoh denormalisasi adalah _____

A. View

B. Sequence

C. Materialized View

D. Index

E. Tidak ada jawaban yang benar

10. Dampak penerapan denormalisasi diantaranya _____

A. Penyimpanan data menjadi lebih boros

B. Performa database menjadi makin lambat C. Kecepatan query menurun karena datanya redundan

D. Tabel menjadi mengalami partial functional dependency

E. Tidak ada jawaban yang benar

Page 93: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 79

Latihan

Lakukan normalisasi untuk tabel berikut ini sampai mencapai BCNF

Tgl_

Kem

ba

li 1-M

ar-0

9

23-F

eb-0

9

14-F

eb-0

9

23-F

eb-0

9

1-M

ar-0

9

23-F

eb-0

9

23-F

eb-0

9

Tgl_

Pin

jam

23-F

eb-0

9

31-J

an-0

9

31-J

an-0

9

14-F

eb-0

9

23-F

eb-0

9

31-J

an-0

9

31-J

an-0

9

No

_Ra

k R-0

1

R-0

2

R-0

1

R-0

2

R-0

2

R-0

1

R-0

1

Jns_

Bu

ku

Fiks

i

No

n

Fiks

i

Fiks

i

No

n

Fiks

i

No

n

Fiks

i

Fiks

i

Fiks

i

Jdl_

Bu

ku

Bu

ku In

i

Bu

ku It

u

Bu

ku

An

u

Bu

ku It

u

Bu

ku It

u

Bu

ku In

i

Bu

ku

An

u

Kd

_Bu

ku

B-0

1

B-0

2

B-0

3

B-0

2

B-0

2

B-0

1

B-0

3

Nam

a_A

ng Ja

mal

Jam

al

Jaw

ilem

Jaw

ilem

Jaw

ilem

Jum

inte

n

Jum

inte

n

Id_A

ng

A-0

1

A-0

1

A-0

2

A-0

2

A-0

2

A-0

3

A-0

3

Page 94: Database

Politeknik Telkom Perancangan Basis Data Relasional

80 Perancangan Basis data

5 ALJABAR RELASIONAL

Overview

Bahasa Query adalah bahasa yang dikhususkan untuk mengajukan

pertanyaan atau Query, yang melibatkan data dalam sebuah database. Input

dan output suatu query adalah relasi. Query dievaluasi dengan menggunakan

contoh input relasi dan menghasilkan contoh output relasi. Bahasa query

menggunakan operasi-operasi Aljabar relasional. Aljabar relasional

mendefinisikan secara teoritis cara memanipulasi isi tabel dengan

menggunakan delapan fungsi relasional: SELECT, PROJECT, JOIN,

INTERSECT, UNIO, DIFFERENCE, PRODUCT dan DIVIDE.

Tujuan

4. Memahami dan mengerti tentang dasar-dasar Lajbar Relasional

5. Mengetahui keterkaitan antara Aljabar relasional dengan bahasa query

6. Memahami dan mengerti sintak dasar query dalam basis data.

Page 95: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 81

5.1 Query dan Aljabar Relasional

Bahasa query (Query language) merupakan suatu bahasa yang menyediakan

fasilitas bagi user untuk mengakses informasi dari basis data. Umumnya query

language ini dibagi menjadi 2 (dua) kategori, yaitu:

1. Bahasa Query Prosedural

2. Bahasa Query Non Prosedural

Bahasa query Prosedural adalah dimana user menginstruksikan ke sistem agar

membentuk serangkaian operasi dalam basis data untuk mengeluarkan hasil

yang diinginkan. Yang termasuk dalam bahasa ini adalah Aljabar Relational

Bahasa Query Non-Prosedural adalah dimana user mendesktipsikan informasi

yang diinginkan tanpa memberikan prosedur detail untuk menghasilkan

informasi tersebut. Yang termasuk dalam bahasa ini adalah Kalkulus Relational

Tuple.

Dalam bab ini akan dibahas Bahasa Query prosedural, bahasa ini

memilikisejumlah operasi yang menggunakan satu atau beberapa relasi/tabel

sebagai inputan dan menghasilkan sebuah relasi/tabel sebagai outputnya.

Aljabar Relational sebagai dasar dari bahasa ini merupakan suatu kumpulan

operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih

relasi untuk menghasilkan suatu relasi yang baru. Operasi-operasi dasar dalam

Aljabar Relational sendiri dibagi menjadi 2 (dua) yaitu Unary dan Binary.

Operasi Unary adalah operasi yang hanya memerlukan satu operasi saja. Yang

termasuk didalamnya adalah Select,Project dan Rename. Sedangkan operasi-

operasi yang membutuhkan lebih dari satu relasi (sepasang relasi atau lebih)

disebut Binary,contohnya adalah Unio, Set Difference, Cartessian Product.

Selanjutnya akan dibahas satu persatu dari masing-masing operasi-operasi

diatas, baik yang termasuk dalam unary maupun binary.Sebagai acuan adalah

menggunakan tabel- tabel akademik (tabel mahasiswa, tabel kuliah, tabel

dosen dan tabel nilai).

Page 96: Database

Politeknik Telkom Perancangan Basis Data Relasional

82 Perancangan Basis data

T_kuliah

kode_mk mata_kuliah sks semester

IS_001 Database 3 3

IS_002 Aljabar_Relational 2 3

CA_003 Calculus 3 1

CE_007 Citizenship 2 2

T_Dosen

Kd_dosen Nama_dosen Alamat Tgl_lahir

KML Komala Ratna Bandung N0.1 12-12-1984

HRA Henry Rossi Jakarta No.37 11-11-1983

HNP Hanung Jakarta No.57 10-10-1980

DAN Dahliar Ananda Surabaya 90 9-9-1982

T_ mahasiswa

NIM Nama Tempat_lahir Tgl_Lahir

3010001 Ahmad Jakarta 3-3-1989

3010003 Nita Surabaya 4-4-1988

3010054 Richard Medan 1-1-1990

3010066 Amelia Jakarta 2-2-1990

T_nilai

Kode_mk NIM Indeks

IS_001 3010001 A

IS_002 3010003 A

CA_003 3010003 C

CE_007 3010054 B

5.2 Operasi Select

Operasi ini digunakan untuk mengambil sejumlah baris data yang memenuhi

predikat yang diberikan. Dimana predikat tersebut sesuai dengan kondisi yang

ingin diperoleh dalam operasi ini. Sintaks untuk operasi ini adalah sebagai

berikut,

σ p = (E1) Dimana P adalah predikat dari atribut di E1. Sehingga jika ingin mengambil

bari-baris data mahasiswa yang lahir di kota „Jakarta‟ dapat kita buat sintaks

seperti dibawah ini

Page 97: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 83

σ tempatlahir= ―Jakarta‖ (mahasiswa)

Pada dasarnya predikat merupakan suatu ekspresi lojik sehingga dapat

menggunakan operator-operator lojik seperti =, <, >, dan yang lainnya.

Operasi Project

5.3 Operasi Project

Operasi ini digunakan untuk menampilkan field-field dari sebuah tabel atau

relasi yang diinginkan. Sintaks untuk operasi ini adalah sebagai berikut,

π <daftar atribut > (<nama tabel>) atau π s (E1)

dimana s atau daftar atribut yang berisi satu atau lebih field yang ingin

ditampilkan dari E1.

Sehingga jika kita ingin menghasilkan tampilan yang berisi data NIM dan

Nama_mahasiswa maka query-nya adalah sebagai berikut,

π <NIM,Nama_mahasiswa > (mahasiswa)

Sebagai catatan, operasi yang dapat diprojeksikan bukan hanya dari tabel

tetapi bisa juga dari suatu operasi/query.

5.4 Operasi Cartesian Product

Operasi ini adalah operasi yang bisa digunakan untuk menggabungkan data

dari dua buah tabel atau hasil query. Sintak yang digunakan adalah

E1 X E2

Dimana semua record di E1 akan digabungkan dengan record di E2 dan hasilnya akan menampilkan semua record yang ada di E1 dan E2.

Pada umumnya operasi cartesian product ini tidak berdiri sendiri, biasanya

dikombinasikan atau digabung dengan operasi select dan project dengan

semua ketentuannya sesuai dengan apa yang ingin ditampilkan sebagai hasil

query-nya.

Sebagai contoh, saat akan menampilkan hasil dari tabel kuliah dan tabel nilai

yang mendapatkan indeks “A”, maka operasinya dapat kita tuliskan sebagai

berikut:

σindeks= ―A‖ (t_nilai x t_kuliah)

Page 98: Database

Politeknik Telkom Perancangan Basis Data Relasional

84 Perancangan Basis data

Pada dasarnya untuk melihat adanya satu keterhubungan antara satu tabel

dengan tabel yang lainnya adalah ditandai dengan adanya satu field yang sama.

Misal antara t_kuliah dan t_nilai (tabel kuliah dan tabel nilai) sama-sama

memiliki field kode_mk.

Jika ingin menampilkan hasil dari suatu query dimana tidak ada relasi langsung

antar tabel-tabel yang terkait (tidak ada field yang sama) maka bisa kita

libatkan tabel lain yang memiliki keterhubungan antara tabel tersebut. Contoh

untuk menghasilkan list mahasiswa yang mengambil mata kuliah IS_001.

Tabel kuliah dan tabel mahasiswa tidak memiliki keterhubungan secara

langsung tetapi keterhubungannya dapat kita lihat dari tabel nilai. Sehingga kita

bisa membuat suatu query seperti dibawah ini:

π <NIM > (σt_kuliah.kode_mk=t_nilai.kode_mk п kode_mk = ―IS_001‖ (t_nilai xt_ kuliah))

Dari contoh diatas dapat terlihat bahwa Operasi Cartesian Product tidak

berdiri sendiri tetapi melibatkan operasi-operasi yang lainnya untuk

mendapatkan hasil query yang kita inginkan.

5.5 Operasi Unio

Operasi Unio adalah operasi yang menggabungkan semua baris dari dua buah

tabel dan kedua tabel tersebut harus sesuai atau memiliki hasil projeksi yang

sama. Dimana akan mengasilkan tabel ketiga. Operasi Unio disimbolkan

sebagai berikut :

T1 U T2

Contoh lainnya, adalah pada t_dosen dan t_mahasiswa terdapat field

tempat_lahir. Operasi Projection (proyeksi) untuk masing-masing tabel adalah

Πtempat_lahir(t_dosen) dan

Πtempat_lahir(t_mahasiswa)

Sehingga jika kita ingin memproyeksikan kedua tabel diatas maka kita bisa

menggunakan operasi Unio dengan bentuk sebagai berikut :

Πtempat_lahir(t_dosen) U Πtempat_lahir(t_mahasiswa)

Page 99: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 85

Untuk melakukan suatu operasi unio tabel-tabel tersebut harus bisa unio

compatible. Tabel disebut Unio Compatible jika :

1. T1 dan T2 harus memiliki jumlah atribut/field yang sama

2. Field dari T1 dan field dari T2 harus bersala dari domain yang

sama.

5.6 Operasi Set Difference

Operasi ini merupakan kebalikan dari operasi unio, dimana terjadi

pengurangan data ditabel pertama oleh data dari tabel kedua. Simbol dari

operasi ini adalah sebagai berikut :

T1 – T2

Dapat dikatakan juga bahwa operasi adalah operasi terhadap relasi yang

terdiri dari semua baris di T1, tetapi tidak ada di T2. Operasi ini juga memiliki

syarat yang sama dengan operasi Unio yaitu harus Unio Compatible.

Sebagai contohnya perhatikan tabel dibawah ini

T_kuliah_MI

Kode_mk Mata_kuliah SKS Semester

MI_002 Kalkulus 3 1

MI_002 Aljabar Linear 2 2

CA_001 Database 4 2

CE_003 Java 3 3

T_kuliah_TK

Kode_mk Mata_kuliah SKS Semester

MI_002 Kalkulus 3 1

MI_002 Aljabar Linear 2 2

TK_001 English 2 2 2

CE_007 Software 3 3

Operasi yang dikenakan pada 2 (dua) tabel diatas adalah

Πmata_kuliah(t_kuliah_MI) – mata_kuliah(t_kuliah_TK)

Maka hasilnya query diatas adalah sebagai berikut:

Page 100: Database

Politeknik Telkom Perancangan Basis Data Relasional

86 Perancangan Basis data

Mata_kuliah

Database

Java

Dari contoh diatas didapatkan bahwa operasi ini akan menemukan tuple-tuple

yang berada pada satu relasi tetapi tidak berada pada relasi yang Lainnya

5.7 Operasi Intersection

Operasi intersection adalah operasi yang mendapatkan atau menyatakan irisan

dari dua buah tabel/query. Operasi ini disimbolkan dengan menggunakan

lambang sebagai berikut :

T1 T2 Selain simbol diatas dapat disimbolkan juga dengan bentuk set difference

seperti dibawah ini :

T1 – (T1-T2)

T1 T2 menghasilkan suatu relasi yang berisi instan – instan yang terjadi baik pada T1 dan T2. Relasi T1 dan T2 harus Unio – Compatible.

5.8 Operasi rename

Dalam operasi himpunan Cross – Product, bisa menimbulkan terjadinya konflik

penamaan , karena Cross – Product bisa menghasilkan suatu relasi dari 2 relasi

dengan skema yang sama, sehingga skema hasil akan muncul field dengan nama

yang sama.

Operasi Rename () digunakan untuk menghindari terjadinya Konflik

Penamaan tersebut.Operasi Rename dibutuhkan untuk melakukan penamaan

kembali pada suatu tabel atau hasil proyeksi agar dapat menunjukkan acuan

yang jelas dalam sebuah operasi yang lengkap, khusnya yang melibatkan

dua/lebih sumber data yang sama.

Simbol untuk operasi rename adalah sebagai berikut:

)))(),((( EFR

Page 101: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 87

Dimana R = Relasi, F = Daftar Renaming, E = Aljabar Relasional

5.9 Join

Merupakan operasi yang digunakan untuk mengabungkan informasi dari dua

atau lebih relasi ( ). Selain itu operasi join Memungkinkan kita untuk mengkom- binasikan informasi dari dua tabel atau lebih. JOIN memiliki

kemampuan nyata untuk mendukung basis data relasional, memungkinkan

penggunaan tabel inde-penden yang dihubungkan melalui atribut yang

sama.Dimana notasi untuk join adalah sebagai berikut:

R |x|<kondisi join> S

Kondisi join dalam bentuk:

<kondisi> AND <kondisi> AND … AND

<kondisi>

Operator pembandinganyang digunakan dalam operasi join yaitu {=, <, ≤, >,

≥, ≠}

Operasi join sendiri memiliki beberapa tipe lagi, untuk yang pertama adalah

Natural join dimana Natural JOIN menghubungkan tabel dengan memilih hanya

record dengan nilai yang digunakan bersama-sama pada atribut yang sama.

Operator ini akan menghasilkan tiga tahapan proses:

PRODUCT

SELECT

PROJECT Operasi join yang lain adalah EquiJOIN menghubungkan tabel didasarkan pada

kondisi yang sama dengan memban-dingkan kolom tertentu setiap tabel. Hasil

equiJOIN tidak menghilangkan kolom dupli-kat dan kondisi atau kriteria

penggabungan tabel harus terdefinisi secara eksplisit.

Theta JOIN adalah equiJOIN yang membanding-kan kolom tertentu setiap

tabel menggunakan operator pembanding selain operator sama dengan.

Page 102: Database

Politeknik Telkom Perancangan Basis Data Relasional

88 Perancangan Basis data

Pada Outer JOIN pasangan data yang tidak cocok akan tetap dipertahankan dan

nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong. Outer join

sendiri terdiri dari tiga jenis, yaitu left outer join, right outer join, dan full outer

join.

Left outer join akan menjadikan tabel/hasil query disebelah kiri simbol operasi,

sehingga dapat melihat semua baris data ditabel/hasil query yang pertama baik

yang memiliki relasi ataupun tidak dengan tabel/hasil query kedua.

Operasi right outer join merupakan kebalikan dari operasi left outer join.

Sedangakan operasi full outer join meriupakan gabungan dari operasi left outer

join dan right outer join. Dimana operasi ini akan menghasilkan semua baris

data di kedua tabel/hasil query yang memiliki relasi ataupun tidak.

5.10 Fungsi Agregasi

Fungsi ini dapat dikatakan sebagai fungsi-fungsi yang akan melakukan

penggabungan nilai dari suatu query dan kemudian menyajikannya sebgai

sebuah nilai. Sedangkan fungsi-fungsi ini dapat dijalankan jika atau pada atribut-

atribut yang bersifat numerik. Secara umum ada 5 fungsi agregasi, yaitu

sebagai berikut :

1. SUM : menjumlah nilai dari suatu atribut

2. AVERAGE : mencari rata-rata nilai dari suatu atribut 3. MAXIMUM : mencari nilai paling besar dari suatu atrbiut

4. MINIMUM : mencari nilai paling besar dari suatu atribut

5. COUNT : menghitung jumlah record

Untuk fungsi yang terakhir yaitu fungsi count terdapat perluasan dalam fungsi

tersebut yaitu yang diberi nama Count_distict. Fungsi Count_distict akan

menghitung nilai atribut yang unik.

5.11 Operasi Division

Operasi divisi cocok digunakan untuk quary yang menginginkan adanya

pernyataan “ untuk semua”. Misalkan untuk setiap nilai x di dalam R,

perhatikan kumpulan nilai y yang muncul dalam instan R dengan nilai x

tersebut. Jika kumpulan ini berisi semua nilai y dalam S, maka nilai x adalah

hasil dari R / S. Simbol dari operasi ini adalah “/ “ atau “†”.

Contoh, perhatikan tabel dibawah ini:

Page 103: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 89

A, B (T1) B (T1)

B ( B = b1 (T1)) A, B (T1) /

B (T1)

A, B (T1) / B ( B = b1 (T1))

A

a1

a2

B

b1

b2

A B

a1 b1

a2 b1

a2 b2

a3 b2

A

a2

B

b1

Page 104: Database

Politeknik Telkom Perancangan Basis Data Relasional

90 Perancangan Basis data

Rangkuman

1. ρx(T1), dimana x adalah nama baru untuk hasil T1ika T1 dan T2adalah ekspresi aljabar-relasional,maka berikut ini adalah semua

ekspresi aljabarrelasional :

a. T1 U T2

b. T1 – T2

c. T1 x T2

d. σp(T1), dimana p adalah sebuah predikat untuk atribut-

atribut dalam T1.

e. πs(T1), dimana s adalah daftar yang terdiri dari beberapa

atribut dalam T1.

f. ρx(T1), dimana x adalah nama baru untuk hasil T1

g. Operasi join terdiri dari natural join, equiJoin,outer join

h. Outer oin dibagi menjadi left outer join, right outer join dan full

outer join yang merupakan kombinasi dari left dan right outer

join.

2. Operasi join terdiri dari natural join, equiJoin,outer join

3. Outer oin dibagi menjadi left outer join, right outer join dan full

outer join yang merupakan kombinasi dari left dan right outer join.

4. Operasi lainnya adalah aggregate function terdiri dari operasi Sum,

Average, Maximum, Minimum, dan Count. Untuk operasi tambahan

dari count adala operasi yang dinamakan dengan Count_distinct

5. Untuk Operasi teakhir dalam bahasan ini adalah operasi Division

dimana bisa digunakan untuk operasi yang bersifat “ untuk semua”

Page 105: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 91

Kuis Benar Salah

1. Theta JOIN adalah equiJOIN yang membanding-kan kolom tertentu

setiap tabel menggunakan operator pembanding selain operator

sama dengan

2. Natural JOIN menghubungkan tabel dengan memilih hanya record

dengan nilai yang digunakan bersama-sama pada atribut yang sama

3. Simbol dari operasi Count_distinct adalah “/ “ atau “†”.

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1.

Operasi yang digunakan untuk menghitung jumlah record adalah

_____________

A. SUM D. Count

B. JOIN E. Natural Join

C. FULL Outer Join

Page 106: Database

Politeknik Telkom Perancangan Basis Data Relasional

92 Perancangan Basis data

Latihan

1. Buatkan sebuah contoh tabel - tabel beserta Operasi-operasi

alajabar relasional yang bisa dikenakan terhadap tabel-tabel tersebut.

Page 107: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 93

6 BAHASA BASIS DATA

Overview

Structure Query Language (SQL) merupakan bahasa standar komputer dalam

proses pengolahan data pada basisdata terutama untuk RDBMS. SQL ini telah

mengalami jalan panjang sehingga terbentuk standarisai perintah-perintah yang

ada. Perintah-perintah SQL mencakup perintah untuk membentuk database

dan struktur tabel, merubah database dan struktur tabel, maintenance konten

data pada database.

Tujuan

1. Mahasiswa memahami fungsi dari SQL

2. Mahasiswa memahami dan mengetahui sejarah terbentuknya SQL

3. Mahasiswa memahami dan mengerti bentuk-bentuk standarisasi SQL

4. Mahasiswa mampu membuat database dan struktur tabel dengan

menggunakan perintah SQL

5. Mahasiswa mampu melakukan perubahan pada struktur tabel dengan

menggunakan perintah SQL

6. Mahasiswa mampu untuk menambahkan data pada tabel, merubah

data pada tabel dan menghapus data pada tabel dengan menggunakan

perintah SQL

7. Mahasiswa mampu untuk menampilkan data dari dalam tabel dengan

berbagai macam bentuk, kondisi dan urutan data.

Page 108: Database

Politeknik Telkom Perancangan Basis Data Relasional

94 Perancangan Basis data

6.1 Pendahuluan

Relational Database Management System (RDBMS) seperti Oracle,

Microsoft SQL Server, ProstGreSQL dan MySQL merupakan komponen

utama dalam dalam sebuah sistem informasi saat ini bahkan untuk sistem-

sistem yang berbasis intranet dan internet

Structure Query Language (SQL) hadir dalam RDBMS sebagai bahasa

untuk mengakses, me-maintenance kumpulan dari table-tabel data yang

dihubungkan oleh masing-masing key.

Jadi SQL dapat diartikan sebagai sebuah bahasa komputer untuk

basisdata dimana dapat melakukan proses-proses seperti pembuatan dan

perubahan struktur basisdata, perubahan konten data, mendapatkan informasi

dari basidata, perubahan setting security dan memberikan hak akses kepada

pengguna basidata

Secara umum perintah-perintah SQL dibagi dalam tiga bagian utama

yaitu:

1. Data Definition Language (DDL)

2. Data Manipulation Language (DML)

3. Data Control Language (DCL)

6.2 Standarisasi SQL

SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil

penelitian pada lab IBM,San Joe, California yang dilakukan oleh Donald C

Meserly dan Raymond F Boyce. Versi pertama ini diberikan nama SEQUEL

(Structure English Query Language). Rencana awalnya SEQUEL ini akan

digunakan dalam DB2 sebagai sebuah produk RDBMS dari IBM. Dikemudian

hari IBM memberikan nama lain pada SEQUEL ini dengan nama SQL

Hasil penelitian tersebut menarik banyak perhatian, banyak perusahaan

yang tertarik untuk membangun RDBMS berdasarkan pada SQL ini. Salah

satunya adalah Oracle. Dan Oracle ini dinyatakan sebagai sebuah produk SQL

komersial pertama.

Berdasarkan perkembangan hal diatas American National Standard

Institute (ANSI) dan International Standard Organization (ISO) membentuk

standar SQL yang dimulai tahun 1986. Standar SQL ini lebih dikenal dengan

SQL86. Kemudian SQL86 ini diperbaharui lagi tahun 1992 yang diberi nama

SQL92 dan standar berikutnya dikeluarkan tahun 1999 yang dikenal dengan

SQL99.

Page 109: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 95

Perkembangan saat ini server-server basisdata tidak mengacu

sepenuhnya pada standar SQL tersebut. Masing-masing server basisdata

mengembangkan dialek masing-masing. Beberapa dialek SQL ini diantaranya:

1. PL/SQL

Dibuat oleh Oracle sebagai bahasa procedural berbasis pada SQL

yang mengacu pada bahasa pemrograman ADA. PL/SQL ini

menjadi bagian utama dalam perkembangan Oracle saat ini.

2. Transact SQL

Dialek yang dikembangkan oleh Microsoft yang membuat sebuah

produk DBMS yang diberi nama Microsoft SQL Server. Transact

SQL ini merupakan hasil kerjasama dengan Sybase Adaptive

Server.

3. PL/PgSQL

Seperti juga pada Oracle, PostgreSQL mengembangkan bahasa

procedural tersendiri yang lebih jauh berkembang sehingga

memungkinkan untuk mengakomodasi Object Oriented Database

Management System

SQL92 membagi secara nyata perintah-perintah SQL ini dalam tiga

kategori besar yang diberi nama kelompok : Data Manipulation language

(DML), Data Definition Language (DDL) dan Data Control Language (DCL).

DML menyediakan perintah-perintah untuk melakukan proses

manipulasi pada konten data yang ada dalam basidata. Perintah-perintah ini

diantaranya: Select, Insert, Update dan Delete.

DDL menyediakan perintah-perintah untuk mengakses objek-objek

basidata seperti database, table, index PL/Transact baik untuk membuat dengan

perintah Create, merubah dengan perintah Alter dan menghapus dengan

perintah Drop.

Sementara DCL menyediakan perintah-perintah untuk mengatur hak

akses terhadap objek-objek data dan konten data untuk masing-masing

pengguna dan layer user dalam basidata.

Pada SQL99 pembagian kategori perintah didasarkan class-class (object) yang terkait satu dengan yang lainnya. Terdapat tujuh kelas dalam SQL99

yaitu: SQLConnection, SQLControl, SQLData, SQLDiagnostic, SQLSchema,

SQLSession, SQLTransaction.

Standarisasi SQL berikutnya SQL:2003 yang memperkenalkan Extended

Markup Languange (XML) dan auto-genertor column values. Tahun 2006 muncul

Page 110: Database

Politeknik Telkom Perancangan Basis Data Relasional

96 Perancangan Basis data

lagi SQL:2006 yang ditambahkan kemampuan untuk lebih pleksibel dalam

pemrograman dasidata didalam web dengan membuat XQuery yang

mengabungkan antara SQL dan XML. Terkahir tahun 2008 terdapat standar

baru SQL:2008

6.3 Membangun Basidata

Pembangunan basidata pada SQL92 termasuk dalam kategori DDL

dimana perintah-perintah dasarnya terdiri dari CREATE, ALTER dan DROP.

Pembangun basisdata berarti akan membuat basisdata sebagai wadah utama,

tabel-tabel data yang saling berelasi dengan kolom kunci dari masing-masing

tabel dan jika dibutuhkan dibuat index tabel.

6.3.1 Membuat BasisData

Struktur umum penulisan perintah untuk membuat basisdata ini adalah

CREATE DATABASE nama_database

Misalkan di Politeknik telkom akan dibangun beberapa basisdata yang

terpisah untuk akademik, keuangan dan SDM maka perintah SQL yang perlu

dibuat adalah:

CREATE DATABASE Akademik

CREATE DATABASE Keuangan

CREATE DATABASE SDM

Struktur penulisan CREATE DATABASE ini untuk setiap dialek SQL

berbeda-beda sehingga nantinya perlu disesuaikan dengan struktur penulisan

SQL dari dialek tersebut.

6.3.2 Membuat Tabel Data

Pada basidata yang sudah dibentuk akan ditempatkan beberapa tabel

yang saling terkait satu dengan yang lainnya. Keterkaitan antar tabel ini

ditandai dengan adanya key (Primary key dan Foreign key).

Struktur umum penulisan perintah untuk membuat tabel yaitu :

CREATE TABLE nama_tabel ( [kolom_data] )

nama_tabel = nama yang diberikan untuk

basisdata tersebut

Page 111: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 97

Kolom_data digunakan untuk mendefisikan kolom-kolom data yang

ada dalam tabel tersebut. kolom data ini dapat diuraikan kembali sbb:

Kolom_data= definisi_kolom, [primary_key,

konstrain]

Definisi_kolom = [nama_kolom] [tipedata] {Null,

Not Null} {Option Kolom}

Primary_key = PRIMARY KEY (kolom_key

[,kolom_key])

Konstrain = CONSTRAINT {definisi konstrain}

Contoh akan dibuatkan tabel Mahasiswa sebagai berikut:

Mahasiswa

Nim Nama Alamat

Gambar 6-1 Entitas Mahasiswa

Tabel 6-1 Tabel Data Mahasiswa

NIM NAMA Alamat

32121001 Aji Jl. Abc 123

32121002 Bayu Jl. Melati 10

Perintah SQL nya sbb:

CREATE TABLE Mahasiswa (

Nim CHAR(10) PRIMARY KEY,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL

)

Atau dapat dituliskan sbb:

CREATE TABLE Mahasiswa (

Nim CHAR(10) NOT NULL,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL,

PRIMARY KEY (Nim)

)

Page 112: Database

Politeknik Telkom Perancangan Basis Data Relasional

98 Perancangan Basis data

Contoh lain akan dibuat tabel kurikulum yang mempunyai primary key

KodeMK dan KodeKur.

Kurikulum

KodeMK KodeJur MamaMK

Sks

Status

Gambar 6-2 Entitas Kurikulum

Tabel 6-2 Data Kurikulum

KodeMK KodeKur Nama Matakuliah Sks Status

SI101 SI08 Algoritma Pemrograman 2 1

SI102 SI08 Sistem Komputer 3 1

Perintah SQL nya sbb:

CREATE TABLE Kurikulum (

KodeMK CHAR(5) NOT Null,

KodeKur CHAR(4) NOT Null,

NamaMK VARCHAR NOT Null,

Sks INTEGER,

STATUS CHAR(1),

CONSTRAINT pk_kode_mk_kode_kur PRIMARY KEY

(kodeMK,KodeKur)

)

Atau dapat dituliskan sbb:

CREATE TABLE Kurikulum (

KodeMK CHAR(5) NOT Null,

KodeKur CHAR(4) NOT Null,

NamaMK VARCHAR Not Null,

Sks INTEGER,

STATUS CHAR(1),

PRIMARY KEY (KodeMK, KodeKur)

)

Kalau tadi sudah dibentuk satu tabel dengan primary key, berikut akan

dibentuk tabel yang mempunyai Foreign key. Sebagai contoh akan dibuat tabel

Jurusan dan tabel mahasiswa sebagai berikut:

Page 113: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 99

Mahasiswa

Nim Nama Alamat

KodeJur

Jurusan

Memilih

KodeJur NamaJur

1

N

Gambar 6-3 Entitas Mahasiswa dan Jurusan

Nim Nama Alamat KodeJur

Tabel Mahasiswa

KodeJur NamaJur

Tabel Jurusan

Gambar 6-4 Relasi Tabel Mahasiswa dan Tabel Jurusan

Tabel 6-3 Tabel Data Jurusan

KodeJur NamaJur

12 Teknik Komputer

22 Komputer Akuntansi

32 Manajemen Informatika

Tabel 6-4 Tabel Data Mahasiswa

NIM NAMA Alamat KodeJur

32121001 Aji Jl. Abc 123 32

32121002 Bayu Jl. Melati 10 32

Page 114: Database

Politeknik Telkom Perancangan Basis Data Relasional

100 Perancangan Basis data

12121001 Sonny Jl. Ahmad Yani 121 12

12121002 Putra Jl. Terate 15 12

22121001 Ali Jl. Suka 12 22

Perintah SQL nya sbb:

CREATE TABLE Jurusan (

KodeJur CHAR(2) PRIMARY KEY,

NamaJur VARCHAR(25) NOT NULL

)

CREATE TABLE Mahasiswa (

Nim CHAR(10) PRIMARY KEY,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL,

KodeJur CHAR(2) FOREIGN KEY REFERENCES

Jurusan(KodeJur)

)

Aatau dapat dituliskan sbb:

CREATE TABLE Mahasiswa (

Nim CHAR(10) PRIMARY KEY,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL,

KodeJur CHAR(2),

CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur)

REFERENCES Jurusan(KodeJur)

)

Dalam proses membuat tabel, harus ditentukan dengan tepat jenis

data dan ukuran data yang digunakan untuk masing-masing kolom tersebut.

Dalam contoh diatas baru beberapa tipe data yang terlihat ada Varchar, Char

dan integer.

Masing-masing dialek SQL mendefiniskan jenis data masing-masing

dan satu dengan yang lainya banyak yang berbeda. Oleh sebab itu dalam

pembuatan tabel perlu diperhatikan tujuan basisdata tersebut akan dibentuk

untuk server basidata apa.

Page 115: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 101

Berikut akan ditampilkan tabel jenis data untuk Oracle sbb:

Jenis Data

Tabel 6-5 Jenis Data pada Oracle

Tipe Data Keterangan

BOOLEAN Data lojikal dengan nilai TRUE atau FALSE.

DATE mulai 1 Januari 4712 SM sampai dengan 31 Desember 9999.

NUMBER [(p [,s])] Tipe data numerik dengan p angka penting dan sejumlah s angka penting di belakang koma. Nilai p adalah integer dengan nilai maksimal 38 dan nilai s berada pada rentang -84 sampai dengan 127. Nilai s negatif berarti pembulatan sampai dengan 10s terdekat.

FLOAT Turunan dari NUMBER. Presisi sampai dengan 38 digit.

DOUBLE PRECISION Sama dengan FLOAT.

REAL Turunan dari number. Presisi sampai dengan 18 digit.

DEC [(p [,s])] Sama dengan NUMBER [(p [,s])].

DECIMAL [( p [,s])] Sama dengan NUMBER [(p [,s])].

NUMERIC [(p [,s])] Sama dengan NUMBER [(p [,s])].

INTEGER [(n)] Sama dengan NUMBER [(n,0)].

INT [(n)] Sama dengan NUMBER [(n,0)].

SMALLINT [(n)] Sama dengan NUMBER [(n,0)].

BINARY_INTEGER Tipe variabel ini digunakan menyimpan nilai mulai dari -2.147.483.647 s/d 2.147.483.647

NATURAL Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d 2.147.483.647.

NATURALN Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d 2.147.483.647. Tipe data ini tidak boleh bernilai NULL.

POSITIVE Bagian dari binary integer, mampu menyimpan mulai dari 1 s/d 2.147.483.647

POSITIVEN Bilangan integer dengan rentang nilai 1 sampai dengan 2147483647. Tipe data ini tidak boleh bernilai NULL.

SIGNTYPE Tipe data bilangan yang bernilai -1, 0 atau 1.

PLS_INTEGER Bilangan integer dengan rentang nilai -2147483647 sampai 2147483647.

Page 116: Database

Politeknik Telkom Perancangan Basis Data Relasional

102 Perancangan Basis data

VARCHAR2(n) Data karakter dengan panjang tidak tetap. Nilai n minimum sama dengan 1 dan maksimum sama dengan 32767 byte.

VARCHAR(n) Sama dengan VARCHAR2(n).

CHAR [(n)] Data karakter dengan panjang tetap sebesar n byte. Nilai n maksimum adalah 32767. Nilai n minimum dan juga nilai default adalah 1.

STRING(n) Sama dengan VARCHAR2(n).

CHARACTER [(n)] Sama dengan CHAR(n).

LONG [(n)] Data karakter dengan panjang tidak tetap. Nilai n maksimum sama dengan 32760 byte.

NCHAR [(n)] Data karakter dengan panjang tetap. Panjang maksimum sama dengan 32767 byte. maksimum bergantung pada national character set yang dipakai. Nilai default adalah 1.

NVARCHAR2(n) Data karakter dengan panjang tidak tetap. Panjang maksimum sama dengan 32767 byte. Nilai n maksimum bergantung pada national character set yang dipakai.

RAW(n) Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan 32767 byte.

LONG RAW [(n)] Data binary dengan panjang tidak tetap. Nilai n maksimum sama dengan 32760 byte.

ROWID Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Identitas tersebut menunjukkan posisi baris data. Tipe data ini merupakan balikan dari kolom palsu ROWID.

UROWID [(n)] Identitas baris pada suatu tabel-index yang dinyatakan dengan string heksa desimal. Nilai n adalah ukuran kolom UROWID. Nilai n maksimum adalah 4000 byte.

BFILE Tipe data large object untuk data file.

BLOB Tipe data large object untuk karakter binary.

CLOB Tipe data large object untuk karakter satu byte.

NCLOB Tipe data large object untuk karakter multi byte.

Page 117: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 103

6.3.3 Melakukan Perubahan pada Tabel

Perubahan pada tabel sering terjadi sehubungan dengan perubahan

pada rancangan basisdata yang dilakukan. Perubahan ini dapat dilakukan untuk

menambah kolom, merubah kolom, menghapus kolom, menambahkan key

dan menghapus key (primary key, foreign key)

Perubahan pada tabel dilakukan dengan menggunakan perintah sbb:

ALTER TABLE Nama_tabel

[Add kolom] [Alter Kolom] [drop kolom]

Menambahkan Kolom

Pada tabel mahasiswa akan ditambahkan kolom tahun masuk. Perintah

SQLnya sbb:

ALTER TABLE mahasiswa

ADD TahunMasuk integer

Berikut akan ditambahkan dua kolom sekaligus untuk yaitu kolom

StatusAkademik dan Kelas Kuliah. Perintah SQLnya sbb:

ALTER TABLE Mahasiswa

ADD StatusAkd CHAR(1),

Kelas Char(2)

Merubah Kolom

Akan dilakukan perubahan pada panjang data Alamat dari 75 karakter menjadi

100 karakter. Perintah SQLnya sb:

ALTER TABLE Mahasiswa

ALTER Column Alamat VARCHAR(100)

Menghapus Kolom

Akan dilakukan penghapusan kolom kelas pada tebel Mahasiswa karena akan

dipindahkan pada tabel lainnya. Perintah SQLnya sbb:

ALTER TABLE Mahasiswa

DROP Column kelas

Page 118: Database

Politeknik Telkom Perancangan Basis Data Relasional

104 Perancangan Basis data

Menghapus Primary key

Penghapusan primary key mungkin saja terjadi untuk dilakukan perubahan pada

tabel tersebut yang sifatnya sementara yang kemudian akan dibentuk kembali

primary key yang barunya. Karena prinsip utama pada RDBMS setiap tabel

harus mempunyai primary key.

Misalkan akan dihapus primary key pada tabel mahasiswa, perintah SQLnya

sbb:

ALTER TABLE Mahasiswa

DROP CONSTRAINT pk_mahasiswa

CONSTRAINT pk_mahasiswa didasarkan pada pembentukan struktur tabel

diawal

CREATE TABLE Mahasiswa (

Nim CHAR(10) NOT NULL,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL,

KodeJur CHAR(2),

CONSTRAINT pk_mahasiswa PRIMARY KEY (Nim)

)

Menambahkan Primary key

Akan ditambahkan primary key untuk tabel mahasiswa yang tadi telah dihapus

primary key. Primary key nya tetap pada kolom Nim. Perintah SQLnya sbb:

ALTER TABLE Mahasiswa

ADD CONSTRAINT pk_mahasiswa PRIMARY KEY (Nim)

Menghapus Foreign Key

Penghapusan foreign key berarti memutus hubungan antar tabel yang sudah

saling terkait. Perintah SQL yang dibuat hampir sama dengan penghapusan

primary key. Perintah SQL untuk melakukan penghapusan foreign key adalah

sbb:

ALTER TABLE Mahasiswa

DROP CONSTRAINT fk_mhs_jur

Page 119: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 105

CONSTRAINT pk_mhs_jur didasarkan pada pembentukan struktur tabel

diawal

CREATE TABLE Mahasiswa (

Nim CHAR(10) PRIMARY KEY,

Nama VARCHAR(50) NOT NULL,

Alamat VARCHAR(75) NULL,

KodeJur CHAR(2),

CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur)

REFERENCES Jurusan(KodeJur) )

Menambahkan Foreign Key

Akan ditambahkan foreign key untuk tabel mahasiswa yang tadi telah

dihapus hubungan dengan tabel jurusan nya. Perintah SQLnya sbb:

ALTER TABLE Mahasiswa

ADD CONSTRAINT fk_mhs_jur FOREIGN KEY (KodeJur)

REFERENCES Jurusan(KodeJur)

6.4 Maintenance Data pada Basisdata

Pada bagian atas sudah dibentuk tabel-tabel data yang ada dalam

sebuah basisdata. Langkah berikutnya adalah akan mengisi tabel-tabel data

tersebut dengan konten data. Konten data ini datang dari proses transaksi

yang yang di masukan lewat sebuah form yang biasanya ditangani lewat sebuah

program aplikasi.

Perintah SQL yang diganakan dalam maintenance data ini adalah yang

termasuk dalam Data Manipulation Language (DML) yaitu : INSERT UPDATE,

DELETE dan SELECT.

6.4.1 Memasukan Data

Struktur umum penulisan perintah untuk menambahkan data adalah

sbb:

INSERT INTO nama_tabel (kolom_data) VALUES

(isi_data)

Page 120: Database

Politeknik Telkom Perancangan Basis Data Relasional

106 Perancangan Basis data

Kolom_data adalah nama-nama kolom yang akan diisikan nilai datanya.

Kolom data ini lebih baik dituliskan sesuai dengan data yang akan diisikan.

Perhatikan jika akan mengisi data kolom yang bernilai NOT Null harus diisi

pada saat perintah INSERT dilakukan. Kolom_data dapat diabaikan untuk tidak

ditulis jika data yang akan diisikan untuk seluruh tabel.

Berikut akan diisikan data untuk tabel Jurusan dan Mahasiswa sesuai

dengan tabel berikut:

Tabel 6-6 Data Jurusan

KodeJur NamaJur

12 Teknik Komputer

22 Komputer Akuntansi

32 Manajemen Informatika

Tabel 6-7 Data Mahasiswa

NIM NAMA Alamat KodeJur

32121001 Aji Jl. Abc 123 32

32121002 Bayu Jl. Melati 10 32

12121001 Sonny Jl. Ahmad Yani 121 12

12121002 Putra Jl. Terate 15 12

22121001 Ali Jl. Suka 12 22

Perintah perintah SQLnya sbb untuk menambahkan data pada tabel

Jurusan:

INSERT INTO Jurusan (KodeJur, NamaJur) VALUES

('12','Teknik Infromatika');

INSERT INTO Jurusan (KodeJur, NamaJur) VALUES

('22','Komputer Akuntansi');

INSERT INTO Jurusan (KodeJur, NamaJur) VALUES

('32','Manajemen Informatika');

Atau dapat dituliskan perintah SQL sbb:

INSERT INTO Jurusan VALUES ('12','Teknik

Infromatika');

INSERT INTO Jurusan VALUES ('22','Komputer

Akuntansi');

INSERT INTO Jurusan VALUES ('32','Manajemen

Informatika');

Page 121: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 107

Perintah perintah SQLnya sbb untuk menambahkan data pada tabel

mahasiswa:

INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

VALUES ('32121001','Aji','Jl. Abc 123','32');

INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

VALUES ('32121002','Bayu','Jl. Melati 10','32');

INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

VALUES ('12121001','Sonny','Jl. Ahmad Yani

121','12');

INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

VALUES ('12121002','Putra','Jl. Terate 15','12');

INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

VALUES ('22121001','Ali','Jl. Suka 12','22');

6.4.2 Merubah Data

Struktur umum penulisan perintah untuk merubah data adalah sbb:

UPDATE nama_tabel SET nama_kolom = nilai_baru_kolom WHERE kondisi

Perintah update ini akan mengubah isi kolom data yang jika tidak

disikan kondisi Where data maka akan mengubah seluruh kolom yang ada di

seuruh baris. Oleh sebab itu untuk membuat perubahan data harus selalu

diperhatikan kondisi data yang akan dilakukan perubahan.

Misalnya akan dilakukan perubahan nama pada nama=Aji menjadi Aji

Santoso. Maka kondisi yang harus dibuat adalah Nim sebagai key pada tabel

tersebut, Where Nim='32121001' .

Perintah SQLnya untuk merubah data adalah:

UPDATE Mahasiswa SET Nama='Aji Santoso'

WHERE Nim='32121001';

Berikutnya ingin dirubah nama bayu dengan nama Bayu Adji dan

alamat menjadi Jl. Sukarame 15

UPDATE Mahasiswa

SET Nama='Bayu Adji', Alamat='Jl. Sukarame

15'

WHERE Nim='32121002';

Page 122: Database

Politeknik Telkom Perancangan Basis Data Relasional

108 Perancangan Basis data

6.4.3 Menghapus Data

Struktur umum penulisan perintah untuk menghapus data adalah sbb:

DELETE FROM nama_tabel WHERE kondition

Perintah delete akan menghapus satu baris data atau lebih tergantung

pada kondisi Where yang diberikan. Sebaiknya setipa melakukan proses

penghapusan data maka kondisi penghapusan harus terdefinisi dengan baik,

jika tidak maka akan kehilangan data.

DELETE FROM Mahasiswa WHERE Nim='12121002';

Perintah SQL DELETE FROM Mahasiswa akan mengkosongkan data

pada tabel Mahasiswa

6.5 Mengakses Basisdata

Bagian atas sudah dijelaskan untuk melakukan maintenance data pada

tabel. Berikutnya data dalam tabel tersebut akan dipanggil, diolah sehingga

menjadi informasi yang berguna bagi pemakainya.

Untuk mengakses data digunakan perintah SELECT. Perintah ini akan

mengembalikan kelompok baris-baris data satu baris atau lebih (mungkin juga

tidak mengembalikan baris) yang berasal dari satu tabel, beberapa tabel, view

dan temporary tabel yang ada dalam sebuah basisdata.

Untuk latihan select ini akan digunakan tabel Mahasiswa, Jurusan dan

Kurikulum seperti berikut ini:

Tabel 6-8 Data Jurusan

KodeJur NamaJur

12 Teknik Komputer

22 Komputer Akuntansi

32 Manajemen Informatika

Tabel 6-9 Data Mahasiswa

NIM NAMA Alamat KodeJur

32121001 Aji Jl. Abc 123 32

32121002 Bayu Jl. Melati 10 32

12121001 Sonny Jl. Ahmad Yani 121 12

12121002 Putra Jl. Terate 15 12

22121001 Ali Jl. Suka 12 22

Page 123: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 109

Struktur dasar penulisan perintah select adalah sbb:

SELECT nama_kolom

FROM nama_tabel

[WHERE kondisi]

[ORDER BY mode_urutan_data]

Nama kolom merupakan nama-nama kolom data yang akan ditampilkan

sebagai hasil dari perintah select ini. Jika diinginkan untuk ditampilkan seluruh

kolom maka dapat digantikan dengan karakter bintang (“*”)

Contoh akan ditampilkan data Jurusan, perintah SQL nya sbb: SELECT KodeJur, NamaJur FROM Jurusan

Hasil yang didapat dari perintah diatas adalah:

Tabel 6-10 Output Select Jurusan

KodeJur NamaJur

12 Teknik Infromatika

22 Komputer Akuntansi

32 Manajemen Informatika

SELECT * From Jurusan

Hasilnya akan sama dengan tabel diatas.

6.5.1 Menganti Judul Kolom

Output pada tabel diatas memperlihatkan judul kolom sama dengan

nama kolom, hal ini biasanya tidak baik saat judul kolom tersebut

mengandung singkatan sehingga kurang informatif. Untuk menganti judul

kolom dapat menggunakan perintah AS. Perintah ini akan memberikan nilai

alias pada kolom_data tersebut. Perintah SQL nya sbb:

SELECT KodeJur AS Kode, KodeJur AS Jurusan

FROM Jurusan

Sehingga hasil yang didapat adalah sbb:

Tabel 6-11 Output Select Jurusan

Kode Jurusan

12 Teknik Informatika

Page 124: Database

Politeknik Telkom Perancangan Basis Data Relasional

110 Perancangan Basis data

22 Komputer Akuntansi

32 Manajemen Informatika

Penulisan alias pada kolom dapat juga dituliskan tanpa keyword AD, sehingga perintah SQL nya menjadi sbb:

SELECT KodeJur Kode, KodeJur AS Jurusan

FROM Jurusan

6.5.2 Function pada SQL

Fungsi-fungsi pada SQL terbagi dalam beberap bagian atau kelompok,d

iantaranya :

1. Fungsi untuk agregasi

a. AVG() – mengembalikan nilai rata

b. COUNT() – mengembalikan jumlah data

c. FIRST() – mengembalikan nilai awal data

d. LAST() – mengembalikan nilai terakhir dari data

e. MAX() – mengembalikan nilai terbesar dari data

f. MIN() – mengembalikan nilai terkecil dari data

g. SUM() – mengembalikan hasil penjumlahan dari data

2. Fungsi untuk skalar

a. UCASE() – mengkonversi nilai kolom menjadi huruf

besar semua b. LCASE() - mengkonversi nilai kolom menjadi huruf kecil

semua c. MID() – mengambil sebagian dari suatu string

d. LEN() – mengembalikan panjang string

e. ROUND() – membulatkan nilai bilangan pada nilai

terdekat

Fungsi-fungsi ini mungkin akan berbeda dari suatu dialek SQL dengan dialek SQL lainya.

Contoh penggunaan function SQL sbb:

SELECT COUNT (Nim) FROM Mahasiswa

SELECT MAX(KodeJur) FROM Jurusan

Page 125: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 111

6.5.3 Menentukan Kondisi

Dalam perintah Select terdapat klausa Where yang digunakan untuk

menentukan hasil sesuai dengan data yang dibutuhkan. Kondisi ini perlu

disehingga tidak semua data akan ditampilkan.

Struktur penulisan where pada select sbb:

SELECT nama_kolom

FROM nama_tabel

[WHERE kondisi]

Kondisi = nama_kolom operator nilai_data

Operator yang dapat digunakan pada penulisan kondisi adalah sbb:

Tabel 6-12 Operator Kondisi

Operator Keterangan

= Sama dengan

<> Tidak sama dengan

> Lebih besar dari

< Lebih kecil dari

>= Lebih besar sama dengan dari

<= Kebih kecil sama dengan dari

BETWEEN Nilai diantara

LIKE Mencocokan sesuai dengan pola data yang diberikan

IN Mencocokan data dengan yang ada

Selain operator diatas juga digunakan operator relasi seperti AND, OR dan

NOT

Berikut beberapa contoh penulisan kondisi:

WHERE Nim=’ 32121001’

WHERE Sks=2

WHERE Nama =’Aji’

Page 126: Database

Politeknik Telkom Perancangan Basis Data Relasional

112 Perancangan Basis data

Untuk kolom yang jenis datanya adalah karakter (CHAR, VARCHAR) nilai

datanya harus diapit oleh tanda kutip seperti dibagian atas.

Berikut perintah lengkap menggunakan kondisi dalam menampilkan data.

SELECT Nim, Nama, Alamat

FROM Mahasiswa

WHERE Nim='32121001'

Hasil yang didapat adalah sbb:

Tabel 6-13 Output Select Mahasiswa menggunakan Where

NIM NAMA Alamat

32121001 Aji Jl. Abc 123

SELECT Nim, Nama

FROM Mahasiswa

WHERE KodeJur='32'

Hasil yang didapat adalah sbb:

Tabel 6-14 Output Select Mahasiswa menggunakan Where

NIM NAMA

32121001 Aji

32121002 Bayu

Operator Like digunakan untuk mencari data karakter/string dengan pola-pola tertentu. Pembuatan pola diwakili dengan karakter persen („%‟)

untuk mengartikan satu atau lebih karakter pada string dan tanda garis bawah

(„_‟) yang mewaliki satu karakter saja.

Berikut contoh penggunaan Like:

Tabel 6-15 Contoh Perintah Like

Perintah Like Arti

WHERE Nama LIKE „A%‟ Nama yang berawalan A

WHERE Nama LIKE „%i‟ Nama yang berakhiran i

WHERE Nama LIKE „AL_‟ Nama yang mempunyai awala AL dan huruf

ketiganya bebas

Page 127: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 113

6.5.4 Menguruntukan Data

Klausa ORDER BY digunakan untuk menguruntukan data output. Urutan

data ini dapat diset baik secara Ascending (urutan dari kecil ke besar) atau

Descending (urutan dari besar ke kecil)

Struktur penulisan ORDER BY sebagai berikut:

SELECT nama_kolom

FROM nama_Tabel

ORDER BY nama_kolom ASC | DESC

Nilai Default untuk pengurutan ini adalah ASC, sehingga untuk

menuruntukan dari kecil ke besar sebenarnya tidak perlu dituliskan ASC nya

Berikut contoh perintah SQL menggunaka ORDER BY

SELECT Nim, Nama

FROM Mahasiswa

ORDER BY Nama

Tabel 6-16 Output Order By Tabel Mahasiswa

NIM NAMA

32121001 Aji

22121001 Ali

32121002 Bayu

12121001 Sonny

SELECT Nim, Nama

FROM Mahasiswa

ORDER BY Nama DESC

Tabel 6-17 Output Order By DESC Tabel Mahasiswa

NIM NAMA

12121001 Sonny

32121002 Bayu

22121001 Ali

32121001 Aji

SELECT KodeJur As Jurusan,Nim, Nama

FROM Mahasiswa

ORDER BY Jurusan,Nama

Page 128: Database

Politeknik Telkom Perancangan Basis Data Relasional

114 Perancangan Basis data

Tabel 6-18 Output Order By Dua Kolom

Jurusan Nim Nama

12 12121001 Sonny

22 22121001 Ali

32 32121001 Aji Santoso

32 32121002 Bayu Adji

Page 129: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 115

Rangkuman

1. Structure Query Language (SQL) hadir dalam RDBMS sebagai bahasa

untuk mengakses, me-maintenance kumpulan dari table-tabel data

yang dihubungkan oleh masing-masing key.

2. SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil

penelitian pada lab IBM,San Joe, California yang dilakukan oleh

Donald C Meserly dan Raymond F Boyce.

3. American National Standard Institute (ANSI) dan International Standard

Organization (ISO) membentuk standar SQL yang dimulai tahun

1986.

4. Beberapa standar SQL yang sudah dibuat adalah: SQL86, SQL92,

SQL99, SQL:2003, SQL2006 dan SQL:2008

5. Secara umum perintah-perintah SQL dibagi dalam tiga bagian utama

yaitu:

a. Data Definition Language (DDL)

b. Data Manipulation Languange (DML)

c. Data Control Languange (DCL)

6. DML menyediakan perintah-perintah untuk melakukan proses

manipulasi pada konten data yang ada dalam basidata. Perintah-

perintah ini diantaranya: Select, Insert, Update dan Delete.

7. DDL menyediakan perintah-perintah untuk mengakses objek-objek

basidata seperti database, table, index PL/Transact baik untuk

membuat dengan perintah Create, merubah dengan perintah Alter

dan menghapus dengan perintah Drop.

8. DCL menyediakan perintah-perintah untuk mengatur hak akses

terhadap objek-objek data dan konten data untuk masing-masing

pengguna dan layer user dalam basidata.

Page 130: Database

Politeknik Telkom Perancangan Basis Data Relasional

116 Perancangan Basis data

Latihan

1. Jelaskan hubungan antara SQL dan RDBMS

2. Jelaskan bentuk-bentuk pengkategorian perintah-perintah SQL pada

standar SQL92 dan SQL99

3. Apa fungsi perintah CONSTRAINT pada pembuatan dan perubahan pada

tabel

4. Jelaskan apa yang dimaksud dengan NULL dan NOT NULL pada saat

membuat struktur tabel

5. jelaskan apakah kolom data yang direferensikan dg foreign key ke tabel

lain harus diisi atau tidak saat diberikan perintah INSERT dan UPDATE

tabel

6. Buat perintah DDL untuk membentuk struktur tabel diatas. Tentukan

oleh anda sendiri jenis data yang sesuai dan status NULL atau tidak Null

nya pada masing-masing kolom. Relasi atas tabel harus terbentuk seperti

gambar diatas.

7. Isikan data pada tabel-tabel diatas (tabel gaji, r_golongan,

dpok_karwayan, absensi_karyawan) masing-masing minimal 3 baris data

Page 131: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 117

Kuis Benar Salah

1. Structure Query Languange (SQL) adalah bahasa komputer untuk

pemrograman basidata

2. Basisdata dapat diartikan sama dengan Relational Database Management

System

3. Standar SQL92 membagi kelompok perintah SQL sbb:

Data Definition Language (DDL)

Data Manipulation Language (DML)

Data Control Language (DCL)

4. Perintah Alter digunakan untuk merubah isi tabel data

5. Tabel yang sudah mempunyai primary key tidak dapat dilakukan

perubahan

6. Dalam satu tabel hanya dibolehkan mempunyai mempunyai satu foreign

key

7. Perintah Update tabel akan merubahan data hanya pada kolom data pada

yang ada pada klausa Set saja

8. Perintah Delete Table akan menghilangkan tabel data tersebut

9. Judul kolom hasil perintah Select harus sama dengan nama kolomnya

10. Klausa Order by tidak perlu dilakukan karena perintah Select sudah

menguruntukan data langsung secara Ascending

Page 132: Database

Politeknik Telkom Perancangan Basis Data Relasional

118 Perancangan Basis data

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat! 1 Perhatikan penyataan berikut:

1. SQL dikhususkan untuk bahasa Query Language

2. SQL digunakan untuk mengakses dan me-maintenace

basisdata

A. 1 dan 2 betul D. 1 salah 2 betul

B. 1 dan 2 salah E. tidak ada jawaban

C. 1 betul 2 salah

2 Yang menjadi bagian dari Perintah DDL

A. Insert D. Delete

B. Update E. Select

C. Drop

3 Yang menjadi bagian dari Perintah DCL

A. Insert D. Grant

B. Create E. Select

C. Update

Soal untuk nomor 4 s/d 6

Lengkapi bagian kosong dari perintah Query berikut:

Create ______ Orders (

No integer, _____

Kepada VARCHAR (50) _____ ,

)

4 Create ______

A. tidak perlu diisi apapun D. diisi dengan Database

B. diisi bebas saja E. Diisi dengan tanda kutif

C. diisi dengan Table

Page 133: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 119

5 No integer, _____

A. tidak perlu diisi apapun D. diisi dengan Primary key

B. diisi bebas saja E. Diisi dengan Constranints

C. diisi dengan NULL

6 Kepada VARCHAR (50) _____ ,

A. tidak perlu diisi apapun D. diisi dengan Primary key

B. diisi bebas saja E. Diisi dengan Constranints

C. diisi dengan NULL

7 Jika diinginkan untuk menghapus kolom data Hobby pada tabel

mahasiswa, perintah SQL nya adalah:

A. DROP Mahasiswa Hobby D. Alter Table Mahasiswa Drop

Column Hobby

B. Drop Mahasiswa Column

Hobby

E. Alter Table Mahasiswa Alter

Column Hobby

C. Alter Table Mahasiswa

Drop Hobby

8 Jika diinginkan mencari data mahasiswa yang mengadung nama Aji

maka kondisi where pada select tersebut dituliskan sbb:

A. Where nama=‟Aji‟ D. Where nama like „%aji%‟

B. Where nama Like „Aji%‟ E. Where nama IN „%aji‟

C. Where nama like „%aji‟

9 Jika diinginkan mencari data mahasiswa yang mengadung nama Aji

maka kondisi where pada select tersebut dituliskan sbb:

A. Where nama=‟Aji‟ D. Where nama like „%aji%‟

B. Where nama Like „Aji%‟ E. Where nama IN „%aji‟

C. Where nama like „%aji‟

10 Perintah SQL ini mempunyai arti: SELECT COUNT (Nim) FROM Mahasiswa

A. Tampilkan tabel mahasiswa D. tampilkan hasil

penjumlahan/perhitungan nim

mahasiswa

B. tampilkan jumlah nim

mahasiswa

E. Tampilkan daftar nim dari

mahasiswa

C. Tampilkan jumlah mahasiswa

Page 134: Database

Politeknik Telkom Perancangan Basis Data Relasional

120 Perancangan Basis data

7 BAHASA BASIS DATA LANJUTAN

Overview

Sql Lanjutan membahas perintah-perintah SQL yang mencakup tentang

fungsi agregasi yang didalamnya mengandung perintah pengelompokan data

dengan menggunakan klausa GROUP BY.

Berikutnya dijelaskan query dari beberapa tabel yang bertujuan untuk

mengasilkan informasi yang lebih lengkap bagi penggunanya. Dalam

pembahasan query dari beberapa tabel ini terkait dengan perintah JOIN dimana

terdapat perintah INNER JOIN dan OUTER JOIN.

Subquery menjadi bagian penting sebagai alternatif dalam menghasilkan

informasi dari basisata selain menggunakan join tersebut. Dalam subquery ini

digunakan operator IN, Not IN, Exists, Not Exists, operator relasi dan operator

ANY atau ALL

Tujuan

1. Mahasiswa memahami dan mengerti serta mampu menuliskan query

dalam bentuk agregasi data dengan menggunakan klausa GROUP BY

2. Mahasiswa memahami dan mengerti serta mampu menuliskan query

untuk menghubungkan antar label dengan menggunakan perintah

JOIN (INNER JOIN dan OUTER JOIN) 3. Mahasiswa memahami dan mengerti serta mampu menuliskan query

SubQuery untuk kasus-kasus tertentu

Page 135: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 121

7.1 Fungsi Aggregation

Pada bab sebelumnya sudah dibahas tentang fungsi-fungsi dalam SQL

dan termasuk didalamnya adalah fungsi agregasi. Fungsi-fungsi tersebut adalah

sbb:

3. AVG() – mengembalikan nilai rata

4. COUNT() – mengembalikan jumlah data

5. FIRST() – mengembalikan nilai awal data

6. LAST() – mengembalikan nilai terakhir dari data

7. MAX() – mengembalikan nilai terbesar dari data

8. MIN() – mengembalikan nilai terkecil dari data

9. SUM() – mengembalikan hasil penjumlahan dari data

Contoh penggunaan fungsi agregasi SQL sbb:

SELECT COUNT (Nim) as Jumlah FROM Mahasiswa

Perintah diatas akan menghasilkan output sbb:

Jumlah

5

Dengan menggunakan fungsi agregasi kolom data yang

ditampilkan terbatas pada kolom fungsi saja, misalkan diinginkan untuk menampilkan jumlah mahasiswa tiap jurusan

Perintah SQL sbb: SELECT KodeJur, COUNT(Nim) as Jumlah FROM Mahasiswa akan menimbulkan kesalahan. Hal ini dikarenakan fungsi agregasi akan mengelompokan data sesuai dengan kolomnya, sementara ada kolom KodeJur pada SELECT tersebut yang tidak dikelompokan.

Untuk menanggulangi masalah ini maka diperlukan perintah query tambahan berupa GROUP BY, yang akan mengelompokan data sesuai dengan yang ada dalam kolom data yang akan ditampilkan. Struktur penulisan GROUP BY sbb:

SELECT kolom_data, fungsi_agregasi()

FROM tabel_data

GROUP BY kolom_data

Page 136: Database

Politeknik Telkom Perancangan Basis Data Relasional

122 Perancangan Basis data

Jadi perintah SQL untuk menampilkan jumlah mahasiswa per jurusan

adalah sbb:

SELECT KodeJur, COUNT(Nim) as JumlahMhs

FROM Mahasiswa GROUP BY KodeJur;

Berikut terdapat sebuah tabel Kurikulum untuk mencoba lebih lanjut

fungsi agregasi

Tabel 7-1 Data Kurikulum

Semester KodeMK KodeKur NamaMK Sks

1 IF0141 MI08 Algoritma dan Pemrograman 4

1 IF0143 MI08 Pemrograman I 3

1 KA0181 MI08 Paket Aplikasi I 2

1 ST0101 MI08 Kalkulus 4

1 TK0117 MI08 Fisika Dasar 4

1 TK0121 MI08 Organisasi Komputer 3

2 IF0142 MI08 Stuktur Data 4

2 IF0144 MI08 Pemrograman II 3

2 IF0146 MI08 Pemrograman Visual 3

2 KA0182 MI08 Paket Aplikasi II 2

2 KU0102 MI08 Pendidikan Pancasila 2

2 KU0108 MI08 Pendidikan Kewarganegaraan 2

2 TK0122 MI08 Arsitektur Komputer 3

2 TK0124 MI08 Pengantar Teknologi Informasi 2

3 IF0201 MI08 Logika Matematika 3

3 IF0223 MI08 Sistem Berkas & Pengantar Basis

Data

3

3 IF0231 MI08 Pemrograman Internet I 3

3 KU0203 MI08 Pendidikan Agama 2

3 ST0203 MI08 Aljabar Linier 3

3 ST0209 MI08 Probabilistik dan Statistik 3

3 TK0221 MI08 Pemrograman III 3

4 IF0202 MI08 Matematika Diskrit 3

4 IF0234 MI08 Komunikasi Data 3

4 IF0292 MI08 Rekayasa Perangkat Lunak 3

4 SI0272 MI08 Sistem Basis Data I 3

4 SI0278 MI08 Sistem Operasi 3

4 SI0282 MI08 Pemrograman Internet II 3

4 SI0292 MI08 Sistem Informasi 3

Page 137: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 123

1. Tampilkan jumlah matakuliah per semester

SELECT Semester, Count(KodeMk) as JmlMK

FROM Kurikulum

GROUP BY Semester;

Hasil query yang didapat adalah sbb:

Tabel 7-2 Hasil Query Jumlah Matakuliah per Semester

Semester JmlMK

1 6

2 8

3 7

4 7

2. Tampilkan jumlah Sks per semester

SELECT Semester, Sum(Sks) as JmlSks

FROM Kurikulum

GROUP BY Semester;

Hasil query yang didapat adalah sbb:

Tabel 7-3 Hasil Query Jumlah Sks per Semester

Semester JmlSks

1 20

2 21

3 20

4 21

3. Tampilkan jumlah matakuliah dan jumlah sks per semester

SELECT Semester, Count(kodeMk) as

JmlMK,Sum(Sks) as JmlSks

FROM Kurikulum

GROUP BY Semester;

Page 138: Database

Politeknik Telkom Perancangan Basis Data Relasional

124 Perancangan Basis data

Tabel 7-4 Hasil Query Jumlah matakuliah dan Sks per Semester

Semester JmlMK JmlSks

1 6 20

2 8 21

3 7 20

4 7 21

4. Tampilkan jumlah sks per kelompok matakuliah. Kelompok

matakuliah ditandai dengan dua huruf pertama pada kolom

kodeMK

SELECT LEFT(kodeMk,2) as KelompokMK,

sum(SKs) as JmlSks

FROM Kurikulum

GROUP BY LEFT(kodeMk,2);

Hasil query yang didapat adalah sbb:

Tabel 7-5 Hasil Query Kelompok Matakuliah

KelompokMK JmlSks

IF 35

KA 4

KU 6

SI 12

ST 10

TK 15

Setiap dialek dari SQL ini membuat fungsi-fungsi masing sehingga

menjadi salah satu nilai lebih dari dialek SQL ini. Untuk itu pada saat

mempelajari sebuah dialek SQL maka perlu diperhatikan kekhasan untuk

masing-masing dialek. Sebagai contoh (walaupun bukan bagian dari sub bab

ini) saya berikan contoh perintah untuk membatasi data yang akan

ditampilkan untuk masing-masing dialek SQL ini.

Page 139: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 125

Tabel 7-6 Perbandingan Perintah SQL untuk Limit

Perintah SQL RDBMS

SELECT * FROM T LIMIT 10 PostgreSQL, MySQL, SQLite,

H2

SELECT * from T WHERE ROWNUM <=

10

Oracle (mulai dari Oracle8i)

SELECT FIRST 10 * from T Ingres

SELECT FIRST 10 * FROM T order by a Informix

SELECT * FROM T FETCH FIRST 10

ROWS ONLY

DB2

SELECT TOP 10 * FROM T MS SQL Server, Sybase ASE,

MS Access

SELECT TOP 10 START AT 20 * FROM T Sybase SQL Anywhere

7.2 Query dari Beberapa Tabel

Dibagian sebelumnya telah dibahan untuk meng-query data dari satu

tabel dengan berbagai macam pola dan fungsi-fungsi yang dapat digunakannya.

Pada bagian ini akan dibahas query yang didasarkan pada beberapa tabel (dua

atau lebih tabel) yang saling terkait untuk menghasilkan informasi

Perintah query SELECT * from Mahasiswa kurang begitu infromatif dari

data yang dihasilkannya, karena data jurusan hanya ditampilkan kode jurusan

saja, seharusnya data jurusan ditampilkan nama jurusan. Data nama jurusaan

berada di tabel Jurusan. Oleh sebab itu maka perlu dikaitkan antar tabel

matakuliah dengan tabel Jurusan.

Dilihat dari hubungan antar tabel seperti yang terlihat pada gambar

dibawah ini adalah sbb:

Tabel 7-7 Mahasiswa dan tabel Jurusan

Nim Nama Alamat KodeJur

Tabel Mahasiswa

KodeJur NamaJur

Tabel Jurusan

Page 140: Database

Politeknik Telkom Perancangan Basis Data Relasional

126 Perancangan Basis data

Maka kaitan antara tabel Mahasiswa dan tabel Jurusan adalah pada

kolom KodeJur di kedua tabel. Penyambungan dilakukan dengan perintah sbb:

Mahasiswa.kodeJur = Jurusan.KodeJur

Perintah ini akan ditempatkan pada klausa WHERE pada perintah

SELECT dan sebelumnya harus disebuntukan pada FROM kedua tabel tersebut.

Perintah lengkapnya sbb:

SELECT Nim, Nama, NamaJur

FROM Mahasiswa, Jurusan

WHERE Mahasiswa.kodeJur = Jurusan.KodeJur

Sehingga output yang dihasilkan adalah sbb:

Tabel 7-8 Output Relasi antar Tabel

Nim Nama NamaJur

12121001 Sonny Teknik Infromatika

22121001 Ali Komputer Akuntansi

32121001 Aji Manajemen Informatika

32121002 Bayu Manajemen Informatika

Bentuk penulisan query diatas dapat juga menggunakan keyword JOIN

sebagai pengembangan dari model sebelumnnya. Bentuk penulisan SELECT

JOIN adalah sbb:

SELECT nama_kolom

FROM nama_tabel_1

INNER JOIN nama_tabel_2

ON kolom_relasi_tabel

Berikut contoh penggunaan INNER JOIN dengan menggunakan masalah

diatas

SELECT Nim, Nama, NamaJur

FROM Mahasiswa

INNER JOIN Jurusan

ON Mahasiswa.kodeJur = Jurusan.KodeJur

Page 141: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 127

7.3 Nama Alias

Nama alias dapat diberikan untuk nama kolom dan juga untuk nama

tabel. Pemberian nama alias menggunakan keyword AS. Nama alias ini sangat

diperlukan untuk menyingkat penulisan-penulisan perintah query yang

komplek dan banyak.

Struktur penulisan nama tabel adalah sbb:

SELECT nama_kolom

FROM nama_tabel AS nama_alias

Contoh perintah SQL untuk penggunaan alias ini adalah sbb:

SELECT Nim, Nama, NamaJur

FROM Mahasiswa AS M, Jurusan AS J

WHERE M.kodeJur = J.KodeJur

Contoh lain sbb:

SELECT Nim, Nama, M.kodeJur, NamaJur

FROM Mahasiswa AS M, Jurusan AS J

WHERE M.kodeJur = J.KodeJur

Perintah INNER JOIN juga dapat menggunakan alias sbb:

SELECT Nim, Nama, NamaJur

FROM Mahasiswa AS m

INNER JOIN Jurusan AS j

ON m.kodeJur = j.KodeJur

Pembuatan alias selain menggunakan keyword AS juga dapat

menggunakan spasi sebagai pemisah dari nama tabel dan nama alias. Contoh

sbb:

SELECT Nim, Nama, NamaJur

FROM Mahasiswa m

INNER JOIN Jurusan j

ON m.kodeJur = j.KodeJur

Page 142: Database

Politeknik Telkom Perancangan Basis Data Relasional

128 Perancangan Basis data

7.4 Bentuk-bentuk Perintah Join

Perintah JOIN ini terdiri dari berbagai variasi, sebelumnya telah dibahas

JOIN dengan INNER JOIN. INNER JOIN ini mensyaratkan data di kedua belah

tabel singkon (ada di tabel mahasiswa dan ada di tabel jurusan). Data yang

tidak singkron tidak akan ditampilkan sebagai hasil query tersebut.

Bentuk variasi lainnya adalah OUTER JOIN, perintah JOIN ini

memungkinkan untuk menampilkan data yang tidak singkron diatara kedua

tabel tersebut ditampilkan. Data yang tidak singkron nantinya akan diberikan

nilai NULL. Ketidak singkronan ini dapat dari satu sisi tabel atau bahkan di

kedua sisi tabel tersebut sehingga data NULL nya pun dapat muncul di sisi kiri

maupun disisi kanan atau bahkan dikedua sisi tersebut.

Penulisan query untuk OUTER JOIN ini dibentuk menjadi 3 bagian sbb:

1. LEFT JOIN

2. RIGHT JOIN

3. FULL JOIN

Untuk menjalankan perintah OUTHER JOIN ini akan digunakan tabel

Pengarang dan tabel Penerbit. Secara relasi kedua tabel ini tidak ada hubungan

sama sekali. Dan hanya mungkin di relasikan bedasarkan kota yang ada di

tabel pengarang dan tabel penerbit tersebut.

Tabel 7-9 Pengarang

KodePeng NamaPeng KotaTinggal

172-32-1176 Johnson White Menlo Park

213-46-8915 Marjorie Green Oakland

238-95-7766 Cheryl Carson Berkeley

267-41-2394 Michael O'Leary San Jose

274-80-9391 Dean Straight Oakland

341-22-1782 Meander Smith Lawrence

409-56-7008 Abraham Bennet Berkeley

427-17-2319 Ann Dull Palo Alto

472-27-2349 Burt Gringlesby Covelo

486-29-1786 Charlene Locksley San Francisco

Page 143: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 129

Tabel 7-10 Penerbit

NamaPen Kota

New Moon Books Boston

Binnet & Hardley Washington

Algodata Infosistems Berkeley

Five Lakes Publishing Chicago

Ramona Publishers Dallas

GGG&G München

Scootney Books New York

Lucerne Publishing Paris

7.4.1 LEFT JOIN

Bentuk umum penulisan LEFT JOIN adalah sbb:

SELECT nama_kolom

FROM nama_tabel_1

LEFT JOIN nama_tabel_2

ON relasi_tabel

Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada

nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi tidak singkron

dengan nama_tabel_2 (disebelah kanan).

Ketika data tidak ditemukan pada nama_tabel_2, maka akan

diberikan nilai NULL pada data tersebut.

Berikut perintah LEFT JOIN yang akan menampilkan data pengarang yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p

LEFT JOIN Penerbit t

ON p.KotaTinggal=t.Kota

Page 144: Database

Politeknik Telkom Perancangan Basis Data Relasional

130 Perancangan Basis data

Tabel 7-11 Hasil Relasi Left Join

KodePeng NamaPeng Kota

172-32-1176 Johnson White NULL

213-46-8915 Marjorie Green NULL

238-95-7766 Cheryl Carson Berkeley

267-41-2394 Michael O'Leary NULL

274-80-9391 Dean Straight NULL

341-22-1782 Meander Smith NULL

409-56-7008 Abraham Bennet Berkeley

427-17-2319 Ann Dull NULL

472-27-2349 Burt Gringlesby NULL

486-29-1786 Charlene Locksley NULL

Penulisan klausa LEFT JOIN dapat juga dituliskan LEFT OUTER JOIN

sehingga perintah SQL nya sbb:

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p

LEFT OUTER JOIN Penerbit t

ON p.KotaTinggal=t.Kota

7.4.2 RIGHT JOIN

Bentuk umum penulisan RIGHT JOIN adalah sbb:

SELECT nama_kolom

FROM nama_tabel_1

RIGHT JOIN nama_tabel_2

ON relasi_tabel

Perintah RIGHT JOIN ini akan menghasilkan seluruh baris data pada

nama_tabel_2 (yang ada disebelah kanan) walaupun dalam relasi tidak

singkron dengan nama_tabel_1 (disebelah kiri).

Ketika data tidak ditemukan pada nama_tabel_1, maka akan

diberikan nilai NULL pada data tersebut.

Page 145: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 131

Berikut perintah RIGHT JOIN yang akan menampilkan data pengarang

yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p

RIGHT JOIN Penerbit t

ON p.KotaTinggal=t.Kota

Tabel 7-12 Hasil Relasi Right Join

KodePeng NamaPeng Kota

NULL NULL Boston

NULL NULL Washington

238-95-7766 Cheryl Carson Berkeley

409-56-7008 Abraham Bennet Berkeley

NULL NULL Chicago

NULL NULL Dallas

NULL NULL München

NULL NULL New York

NULL NULL Paris

Penulisan klausa RIGHT JOIN dapat juga dituliskan RIGHT OUTER JOIN

sehingga perintah SQL nya sbb:

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p

RIGHT OUTER JOIN Penerbit t

ON p.KotaTinggal=t.Kota

7.4.3 FULL JOIN

Bentuk umum penulisan FULL JOIN adalah sbb:

SELECT nama_kolom

FROM nama_tabel_1

FULL JOIN nama_tabel_2

ON relasi_tabel

Perintah FULL JOIN ini akan menghasilkan seluruh baris data pada

nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan seluruh baris

nama_tabel_1 (disebelah kanan) walaupun ada tidak singkron diantara

keduanya.

Page 146: Database

Politeknik Telkom Perancangan Basis Data Relasional

132 Perancangan Basis data

Ketika data tidak ditemukan pada nama_tabel_1 dan nama_tabel_2,

maka akan diberikan nilai NULL pada data tersebut.

Berikut perintah FULL JOIN yang akan menampilkan data pengarang

yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p

FULL JOIN Penerbit t

ON p.KotaTinggal=t.Kota

Tabel 7-13 Hasil Relasi Full Join

KodePeng NamaPeng Kota

172-32-1176 Johnson White NULL

213-46-8915 Marjorie Green NULL

238-95-7766 Cheryl Carson Berkeley

267-41-2394 Michael O'Leary NULL

274-80-9391 Dean Straight NULL

341-22-1782 Meander Smith NULL

409-56-7008 Abraham Bennet Berkeley

427-17-2319 Ann Dull NULL

472-27-2349 Burt Gringlesby NULL

486-29-1786 Charlene Locksley NULL

NULL NULL Washington

NULL NULL Chicago

NULL NULL Boston

NULL NULL Paris

NULL NULL New York

NULL NULL Dallas

NULL NULL München

7.5 Subquery

Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan

nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT, UPDATE

dan DELETE atau dengan kata lain subquery adalah query dalam query.

Subquery merupakan alternative dalam membuat perintah SQL yang

menggunakan JOIN, dimana hal ini dibuat untuk meningkatkan performance

Page 147: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 133

terhadap perintah query tersebut. namun demikian, tergantung kepada data

jika kalau ingin dibandingkan mana yang lebih baik antara subquery dengan

JOIN ini.

Subquery dapat ditempatkan pada perintah SELECT setelah klausa

Select, From, Where, Group BY dan Having. Umumnya perintah sub Query ini

mengikuti format sebagai berikut:

WHERE ekspresi [NOT] IN (subquery)

WHERE ekspresi operator perbandingan [ANY | ALL] (subquery)

WHERE [NOT] EXISTS (subquery)

Untuk melakukan percobaan terhadap perintah sub Query ini akan

disediakn dua buah tabel yaitu tabel Penerbit, tabel Pengarang dan tabel Buku

Tabel 7-14 Data Penerbit

KodePen NamaPen Kota

0736 New Moon Books Boston

0877 Binnet & Hardley Washington

1389 Algodata Infosistems Berkeley

1622 Five Lakes Publishing Chicago

1756 Ramona Publishers Dallas

9901 GGG&G München

9952 Scootney Books New York

9999 Lucerne Publishing Paris

Tabel 7-15 Data Buku

Kode JudulBuku Jenis Kode

Pen

BU1032 The Busy Executive's Database Guide business 1389

BU1111 Cooking with Computers:

Surreptitious Balance Sheets

business 1389

BU2075 You Can Combat Computer Stress! business 0736

BU7832 Straight Talk About Computers business 1389

MC2222 Silicon Valley Gastronomic Treats mod_cook 0877

MC3021 The Gourmet Microwave mod_cook 0877

MC3026 The Psychology of Computer

Cooking

UNDECIDED 0877

PC1035 But Is It User Friendly? popular_comp 1389

PC8888 Secrets of Silicon Valley popular_comp 1389

PC9999 Net Etiquette popular_comp 1389

Page 148: Database

Politeknik Telkom Perancangan Basis Data Relasional

134 Perancangan Basis data

Tabel 7-16 Data Pengarang

KodePeng NamaPeng KotaTinggal

172-32-1176 Johnson White Menlo Park

213-46-8915 Marjorie Green Oakland

238-95-7766 Cheryl Carson Berkeley

267-41-2394 Michael O'Leary San Jose

274-80-9391 Dean Straight Oakland

341-22-1782 Meander Smith Lawrence

409-56-7008 Abraham Bennet Berkeley

427-17-2319 Ann Dull Palo Alto

472-27-2349 Burt Gringlesby Covelo

486-29-1786 Charlene Locksley San Francisco

Operator IN

Subquery dengan menggunakan operator IN adalah akan me-list hasil

dari subquery untuk dibandingkan dengan ekspresi where yang diberikan.

Subquery akan dijalankan terlebih dahulu baru kemudian query pemanggilnya

akan dijalankan.

Berikut contoh perintah Subquery untuk menampilkan nama penerbit

untuk buku yang berjenis business dengan menggunakan operator IN

SELECT NamaPen

FROM Penerbit

WHERE kodePen IN

(SELECT kodePen

FROM Buku

WHERE jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-17 Hasil Query Operator IN

NamaPen

New Moon Books

Algodata Infosistems

Page 149: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 135

Berdasarkan pada perintah query diatas, pertama kali akan menjalankan

query untuk buku dahulu sehingga akan menghasilkan nilai 1389, 1389, 0736,

1389. Kemudian akan menjalankan perintah query pada Penerbit dengan

kondisi KodePen didasarkan pada hasil query pertama. Perintah query ini dapat

diterjemahkan sbb:

SELECT NamaPen

FROM Penerbit

WHERE kodePen IN (‘1389’, ‘1389’,’0736’,

‘1389’)

Subquery diatas pun seperti dijelaskan terdahulu bahwa dapat menggunakan perintah JOIN dengan bentuk sbb:

SELECT DISTINCT NamaPen

FROM Penerbit p

INNER JOIN Buku b

ON p.kodePen=b.KodePen

AND jenis='business'

Jika operator IN ditambahkan operator NOT maka akan menjadi NOT

IN. hal ini akan memberikan nilai kebalikan dari hasil yang didapat dengan

menggunakan perintah IN

SELECT NamaPen

FROM Penerbit

WHERE kodePen NOT IN

(SELECT kodePen

FROM Buku

WHERE jenis='business')

Tabel 7-18 Hasil Query Operator Not IN

NamaPen

Binnet & Hardley

Five Lakes Publishing

Ramona Publishers

GGG&G

Scootney Books

Lucerne Publishing

Page 150: Database

Politeknik Telkom Perancangan Basis Data Relasional

136 Perancangan Basis data

Operator EXISTS

Operator Exists ini akan melakukan pemeriksaan terhadap hasil

subqery apakah menghasilkan baris-data atau tidak, jika subquery tersebut

menghasilkan baris data maka akan mengembalikan nilai true dan sebaliknya

jika tidak menghasikan data maka akan mengembalikan nilai false

Berikut contoh perintah Subquery untuk menampilkan nama penerbit

untuk buku yang berjenis business dengan menggunakan operator EXISTS

SELECT NamaPen

FROM Penerbit p

WHERE EXISTS

(SELECT *

FROM Buku b

WHERE b.KodePen= p.KodePen

AND jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-19 Hasil Query Operator Exists

NamaPen

New Moon Books

Algodata Infosistems

Jika operator EXISTS ditambahkan operator NOT maka akan menjadi

NOT EXISTS. hal ini akan memberikan nilai kebalikan dari hasil yang didapat

dengan menggunakan perintah EXISTS

SELECT NamaPen

FROM Penerbit p

WHERE NOT EXISTS

(SELECT *

FROM Buku b

WHERE b.KodePen= p.KodePen

AND jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Page 151: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 137

Tabel 7-20 Hasil Query Operator Not Exists

NamaPen

Binnet & Hardley

Five Lakes Publishing

Ramona Publishers

GGG&G

Scootney Books

Lucerne Publishing

Operator Komporasi

Subquery memungkinkan juga menggunakan operator komparasi yang

terdiri dari =, < >, >, > =, <, ! >, ! <, or < =. Berbeda dengan operator

sebelum penggunaaan operator ini subquery harus menghasilkan data tunggal

yang menjadi parameter untuk query pemanggilnya.

Berikut contoh perintah Subquery untuk menampilkan nama penerbit

untuk buku yang berjenis business dengan menggunakan operator komparasi

=

SELECT NamaPeng

FROM Pengarang

WHERE KotaTinggal =

(SELECT Kota

FROM Penerbit

WHERE namaPen='Algodata Infosistems')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-21 Hasil Query Operator Komparasi

NamaPeng

Cheryl Carson

Abraham Bennet

Operator ANY dan ALL

Penggunaan operator ini dipadukan dengan operator relasi sehingga

nanti akan terbentuk >ANY, =ANY , <> ANY, >ALL dan <>ALL

Page 152: Database

Politeknik Telkom Perancangan Basis Data Relasional

138 Perancangan Basis data

>ANY mengadung arti bahwa akan mengambil nilai lebih besarnya dari

nilai terendah yang ada dalam list tersebut. contoh >ANY (1,2,3) maka nilai

lebih besarnya adalah 1

>ALL mengandung arti bahwa akan mengambil nilai lebih besarnya dari

nilai tertinggi yang ada dalam lsit tersebut. Contoh >ALL (1,2,3) maka nilai

lebih besarnya adalah 3

=ANY pada dasarnya sama dengan fungsi operator IN yaitu akan

menyamakan apa yang ada dala list sebagai hasil dari subquerynya. <>ANY

tidak serta merta sama dengan NOT IN, hal ini berbeda karena <>ANY

menghasilkan not = a or not = b , sementara NOT IN menghasilkan not = a

and not = b. <>ALL pengertianya sama dengan NOT IN

Berikut contoh perintah Subquery untuk menampilkan nama penerbit

untuk buku yang berjenis business dengan menggunakan operator <>ANY

SELECT NamaPeng

FROM Pengarang

WHERE KotaTinggal <>ANY

(SELECT Kota

FROM Penerbit)

Tabel 7-22 Hasil Query Operator ANY

NamaPeng

Johnson White

Marjorie Green

Cheryl Carson

Michael O'Leary

Dean Straight

Meander Smith

Abraham Bennet

Ann Dull

Burt Gringlesby

Charlene Locksley

Page 153: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 139

Rangkuman

1. Structure Query Language (SQL) menyediakan banyak fungsi-fungsi

yang siap digunakan oleh penggunaya, baik pungsi untuk melakukan

pertungan, fungsi penangan string, fungsi penagan tanggal dan fungsi-

fungsi untuk proses agregasi data

2. Fungsi agregasi data akan berhubungan dengan klausa GROUP BY

untuk membuat kelompok data jika terdapat kolom yang tidak

diagregasi akan ditampilkan sebagai hasil query

3. Klausa GROUP BY mempunyai parameter untuk mengseksi data

menggunakan HAVING

4. Membuat hubungan antar tabel dapat dilakukan dengan perpaduan

antara FROM dan WHERE pada perintah select.

5. Selain itu hubungan antar tabel dapat menggunakan perintah JOIN

6. Perintah JOIN terdiiri dari peritah :

a. Inner Join

b. Outher Join

i. Left Join

ii. Right Join

iii. Full Join

7. INNER JOIN ini mensyaratkan data di kedua belah tabel singkon,

Data yang tidak singkron tidak akan ditampilkan sebagai hasil query

tersebut

8. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada

nama_tabel_1 (yang ada diseblah kiri) walaupun dalam relasi tidak

singkron dengan nama_tabel_2 (disebelah kanan)

9. Perintah RIGHT JOIN ini akan menghasilkan seluruh baris data pada

nama_tabel_2 (yang ada disebalah kanan) walaupun dalam relasi

tidak singkron dengan nama_tabel_1 (disebelah kiri).

10. Perintah FULL JOIN ini akan menghasilkan seluruh baris data pada nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan

seluruh baris nama_tabel_1 (disebelah kanan) walaupun ada tidak

singkron diantara keduanya.

Page 154: Database

Politeknik Telkom Perancangan Basis Data Relasional

140 Perancangan Basis data

11. Subquery adalah sebuah bentuk perintah SELECT yang mengembalikan

nilai yang ada kepada perintah lain berupa perintah SELECT, INSERT,

UPDATE dan DELETE atau dengan kata lain subquery adalah query

dalam query.

Umumnya perintah sub Query ini mengikuti format sebagai berikut:

a. WHERE ekspresi [NOT] IN (subquery)

b. WHERE ekspresi operator perbandingan [ANY | ALL]

(subquery)

c. WHERE [NOT] EXISTS (subquery)

12. Subquery menggunakan operator IN, Not IN, Exists, Not Exists, Any, All

dan operator relasi

13. Subquery dengan menggunakan operator IN adalah akan me-list hasil

dari subquery untuk dibandingkan dengan ekspresi where yang

diberikan.

14. Operator Exists ini akan melakukan pemeriksaan terhadap hasil

subqery apakah menghasilkan baris-data atau tidak, jika subquery

tersebut menghasilkan baris data maka akan mengembalikan nilai true

dan sebaliknya jika tidak menghasikan data maka akan

mengembalikan nilai false

15. Operator komparasi yang terdiri dari =, < >, >, > =, <, ! >, ! <, or <

=. Berbeda dengan operator sebelum penggunaaan operator ini

subquery harus menghasilkan data tunggal yang menjadi parameter

untuk query pemanggilnya.

16. Penggunaan operator ini dipadukan dengan operator relasi sehingga

nanti akan terbentuk >ANY, =ANY , <> ANY, >ALL dan <>ALL

Page 155: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 141

Latihan

1. Jelaskan kegunaan dari masing-masing fungsi agregasi

2. Berikan contoh perintah query yang menggunakan GROUP BY untuk

menghitung jumlah mahasiswa laki-laki atau perempuan per angkatan

3. Jelaskan dan berikan contoh untuk klausa HAVING

4. Jelaskan perbedaan dari INNER JOIN dan OUTER JOIN dan berikan

contohnya

5. Untuk kasus-kasus seperti apakah Left Join dan Right Join ini akan

digunakan

6. Jelaskan karateristik operator Exists yang ada dalam sebuah subquery

7. Jelaskan perbedaan antara operator IN dan ANY dalam sebah subquery

8. Dengan menggunakan struktur basidata yang sudah dibentuk pada tugas

sebelumnya maka buat perintah-perintah SQL :

a. Menghitung jumlah karyawan berdasarkan golongan

tertentu

b. Total gaji seluruh karyawan berdasarkan pada golongan

yang ada pada tabel gaji

c. Menghitung kehadiran karyawan per bulan aktif

d. Menampilkan golongan dan pangkat karyawan

e. Menampilkan karyawan yang tidak hadir pada tanggal

tertentu

Page 156: Database

Politeknik Telkom Perancangan Basis Data Relasional

142 Perancangan Basis data

Kuis Benar Salah

1. Fungsi-fungsi aggregation tidak dapt digunakan untuk kondisi pencarian

dalam Where

2. Hasil dari perintah select dengan menggunakan fungsi fungsi aggregation

akan mengembalikan hanya satu baris data saja

3. Merelasikan antar tabel hanya dapat dilakukan dengan perintah Inner Join

saja

4. Pengertian penulisan Left Join sama dengan Left Outer Join

5. Perintah LEFT JOIN ini akan menghasilkan seluruh baris data pada tabel

yang ada disebelah kiri walaupun dalam relasi tidak singkron dengan

tabel disebelah kanan

6. Penulisan alias tabel hanya dapat dilakukan dengan menabahkan keyword

AS

7. Join tabel hanya dapat dilakukan untuk tabel yang dapat dihubungkan

salah satu dari kolom data dikedua table

8. Full join adalah sama dengan menampilkan seluruh isi data dari kedua sisi

table

9. operator exists pada sub query hanya memeriksa keberadaan baris data

pada sub query tersebut dengan mengembalikan nilai true jika ada dan

false jika tidak ada.

10. Operator <>ANY pengertianya sama dengan NOT IN

Page 157: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 143

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

1 Perhatikan penyataan berikut:

3. Fungsi agregasi menghasilkan 1 baris data saja

4. Kodisi filter untuk data pada agregasi tidak menggunaka

Where tetapi Having

A. 1 dan 2 betul D. 1 salah 2 betul

B. 1 dan 2 salah E. tidak ada jawaban

C. 1 betul 2 salah

2 Perhatikan penyataan berikut:

1. Perintah Join tidak ada dalam struktur penulisan Select

2. Outer Join akan menampilkan data Null pada data yang

tidak ketemu di tabel pembandingnya

A. 1 dan 2 betul D. 1 salah 2 betul

B. 1 dan 2 salah E. tidak ada jawaban

C. 1 betul 2 salah

3 Perhatikan penyataan berikut:

1. Fungsi agregasi menghasilkan 1 baris data saja

2. Kodisi filter untuk data pada agregasi tidak menggunaka

Where tetapi Having

A. 1 dan 2 betul D. 1 salah 2 betul

B. 1 dan 2 salah E. tidak ada jawaban

C. 1 betul 2 salah

Page 158: Database

Politeknik Telkom Perancangan Basis Data Relasional

144 Perancangan Basis data

4 Pernyataan berikut ini :

Perintah ini akan menghasilkan seluruh baris data pada tabel yang

ada disebelah kiri walaupun dalam relasi tidak singkron dengan tabel

disebelah kanan

A. JOIN D. Full Join

B. Left Join E. tidak ada jawaban

C. Right Join

5 Pernyataan berikut ini :

Subquery dengan menggunakan operator ________ akan me-list hasil

dari subquery untuk dibandingkan dengan ekspresi where yang

diberikan. Subquery akan dijalankan terlebih dahulu baru kemudian

query pemanggilnya akan dijalankan.

A. operator IN D. operator any

B. operator exists E. tidak ada jawaban

C. operator not exists

6 Jika ada perintah SQL sbb:

SELECT Nim, Nama, NamaJur

FROM Mahasiswa, Jurusan

WHERE _______________________

Perintah yang harus diberikan pada Where..

A. where mahasiswa.kodeJur =

jurusan.KodeJur

D. kodeJur

B. kodeJur=KodeJur E. tidak ada jawaban

C. m.kodeJur = j.KodeJur

Untuk soal no 7:

KodePeng NamaPeng Kota

172-32-1176 Johnson White NULL

213-46-8915 Marjorie Green NULL

238-95-7766 Cheryl Carson Berkeley

267-41-2394 Michael O'Leary NULL

Page 159: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 145

7 Dengan menggunakan tabel diatas perintah subQuery yang dibuat

adalah:

SELECT KodePeng, NamaPeng, Kota

FROM Pengarang p ____________ Penerbit t

ON p.KotaTinggal=t.Kota

Perintah pada bagian kosong adalah

A. Inner Join D. Right Join

B. Left Join E. full Join

C. Join On

8 Jika ada kondisi operator ANY sbb:

>ANY (1,2,3,4)

Yang dianggap nilai tersebarnya oleh perintah Any ini adalah:

A. 1 D. 4

B. 2 E. >4

C. 3

9 Jika ada kondisi where kode <>ALL maka dapat diganti dengan

operator:

A. Not ANY D. ANY

B. NOT IN E. ALL

C. NOT ALL

10 Perintah SQL ini akan menimbulkan error

SELECT KodeJur, COUNT(Nim) as Jumlah FROM Mahasiswa

Untuk memperbaikinya maka perlu ditambahkan

A. WHERE KodeJur D. ORDER BY KodeJur

B. GROUP KodeJur E. salah semua

C.GROUP BY KodeJur

Page 160: Database

Politeknik Telkom Perancangan Basis Data Relasional

146 Perancangan Basis data

8 PENGENALAN ARSITEKTUR BASIS

DATA

Overview

Sistem database merupakan satu kesatuan antara DBMS dan database nya.

DBMS merupakan paket software yang digunakan untuk mengatur akses data

ke database. Bagaimana struktur DBMS di dalamnya dan arsitektur sistem

database diimplementasikan, akan diterangkan lebih detail dalam bab ini.

Tujuan

Mahasiswa memahami DBMS beserta komponen-komponen yang

membangunnya.

Page 161: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 147

8.1 Pendahuluan

Sistem database merupakan satu kesatuan dari Database Management

System (DBMS) dan database. DBMS adalah kumpulan dari program-program

yang mengijinkan user untuk melakukan create, maintain, dan control terhadap

semua kegiatan yang mengakses database.

Tujuan utamanya adalah untuk menyediakan sistem yang aman,

nyaman, dan efisien untuk user dalam mengakses dan menyimpan informasi.

8.2 Struktur DBMS

Secara umum struktur DBMS terdiri dari beberapa modul yang masing-masing mempunyai tanggung jawab dalam membentuk struktur sistem

secara keseluruhan. Beberapa fungsi dari DBMS mungkin telah diberikan oleh

sistem operasi.

Setiap produk DBMS mempunyai karakteristik sistem sendiri-sendiri.

Struktur penyimpanan logic pada Oracle dan MS SQL Server agak berbeda.

Struktur logic terkecil pada Oracle adalah block, sedangkan pada MS SQL

Server adalah page.

Page 162: Database

Politeknik Telkom Perancangan Basis Data Relasional

148 Perancangan Basis data

Gambar 8-1 Struktur DBMS secara umum

Dua bagian utama dalam struktur DBMS ini adalah query processor

dan storage manager.

Query processor merupakan bagian yang merubah queri level tinggi

menjadi instruksi level rendah. Komponen-komponen Query Processor adalah :

• DML compiler, menerjemahkan perintah DML pada suatu query ke

dalam instruksi level rendah yang dimengerti oleh query evaluation

engine.

• Embedded DML precompiler, mengkonversi perintah DML yang embed pada sebuah program aplikasi ke procedure call yang normal

dalam bahasa host.

• DDL interpreter, menginterpretasikan perintah DDL dan mencatatnya dalam sekumpulan tabel yang mengandung metadata.

Page 163: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 149

• Query evaluation engine, mengeksekusi instruksi level rendah yang dihasilkan oleh DML compiler.

Storage manager menyediakan antarmuka antara data level rendah

yang tersimpan dalam basis data dan program aplikasi serta query yang

diberikan ke sistem. Bagian ini terdiri dari:

• Manajer otorisasi dan integritas, menguji integritas dari

constraint yang ada serta otoritas user untuk mengakses data.

• Manajer transaksi, meyakinkan basis data tetap pada kondisi konsisten (benar) saat terjadi kegagalan sistem serta meyakinkan

bahawa eksekusi dari transaksi yang konkuren (terjadi “bersamaan”)

berlangsung tanpa adanya konflik.

• Manajer file, mengelola alokasi ruang pada disk penyimpanan

struktur data yang digunakan untuk mewakili informasi yang

disimpan pada disk.

• Manajer buffer, bertanggung jawab untuk mengambil data dari disk penyimpanan ke dalam memori utama serta menetukan data yang

mana yang akan ditempatkan di memory

8.3 Produk-produk DBMS

Produk-produk DBMS yang ada di pasaran sekarang ini cukup banyak

dan beragam. Para pembuat software DBMS menawarkan fitur-fitur yang

bervariasi.

Contoh produk-produk DBMS yang telah banyak pemakainya

diantaranya adalah ORACLE, DB2, MS SQL Server, MySQL, dan lain-lain.

8.4 Database Oracle

Database Oracle merupakan salah satu produk DBMS yang

dikembangkan oleh Oracle Corporation. Versi terakhir yang sudah direlease

ke pasaran adalah Oracle versi 11.

8.4.1 Arsitektur Database Oracle

Oracle server adalah DBMS yang menyediakan pendekatan

menyeluruh dan terbuka pada information management. Dalam hal ini, Oracle

server harus bisa mengatur data dalam jumlah yang banyak dalam sistem multi

user, mencegah pengaksesan data oleh user yang tidak punya otoritas, serta

melakukan recovery secara efisien apabila terjadi kegagalan pada sistem.

Page 164: Database

Politeknik Telkom Perancangan Basis Data Relasional

150 Perancangan Basis data

Oracle server terdiri dari Oracle instance dan Oracle database, dimana

Oracle Instance merupakan media untuk mengakses Oracle Database.

8.4.2 Struktur Database Oracle

Database Oracle dibangun berdasarkan beberapa struktur yaitu

memory, process, dan storage. Ketiga struktur ini merupakan komponen-

komponen yang berinterrelasi satu dengan yang lainnya.

Oracle database menggunakan struktur memory dan struktur proses

untuk mengatur dan mengakses database. Semua struktur memory berada

dalam main memory dari komputer dimana database server berada. Proses

adalah job yang bekerja di memori dan merupakan suatu mekanisme dalam

sistem operasi yang bisa mengeksekusi satu seri program.

Page 165: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 151

Gambar 8-2 Struktur Database Oracle

8.4.3 Oracle Instance

Bila suatu database dijalankan pada database server, software Oracle

akan mengalokasikan „shared memory area‟ yang disebut Sistem Global Area

(SGA) dan mengaktifkan beberapa Oracle Background processes. Kombinasi

dari SGA dan Oracle processes disebut Oracle instance.

Bila instance telah di start, software Oracle akan menghubungkan

instance dengan suatu database, dan prosesnya disebut „mounting‟ database.

Sejak itulah database siap untuk dibuka sehingga bisa diakses oleh user yang

mempunyai hak akses. Beberapa instance dapat dijalankan secara bersamaan

pada komputer yang sama, dimana setiap instance mengakses masing-masing

databasenya.

Gambar 8-3 Oracle Instance

8.4.4 Oracle Memory Structure

Struktur memori dalam Oracle terdiri dari dua, yaitu:

• Sistem Global Area (SGA) : di-share oleh semua server dan Background process

Page 166: Database

Politeknik Telkom Perancangan Basis Data Relasional

152 Perancangan Basis data

• Program Global area (PGA) : Private untuk masing-masing server dan Background process. Satu PGA untuk masing-masing

proses.

Gambar 8-4 Oracle Memory

SGA

SGA merupakan area memori yang berisi data dan control information

untuk instance, dimana struktur datanya meliputi :

- Database buffer cache: Cache block data yang diambil dari

database

- Redo log buffer: Cache informasi redo, digunakan untuk recovery

instance, sampai informasi ini ditulis ke penyimpanan fisik redo log

files dalam disk

- Shared pool: Cache beberapa program yang dapat di share oleh

user

- Large pool: merupakan area opsional yang menyediakan alokasi

memori yang besar untuk proses yang besar, seperti operasi backup

dan recovery, dan proses I/O server

- Java pool: digunakan untuk semua session Java code dan data dalam

Java Virtual Machine (JVM)

- Streams pool: digunakan oleh Oracle Streams

PGA

Program Global Area atau Process Global Area (PGA) adalah area

memori yang meliputi data dan control information untuk setiap proses.

PGA dialokasikan ketika suatu proses dimulai dan akan di-dealokasikan

ketika proses itu selesai. Satu PGA digunakan hanya oleh satu proses.

Page 167: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 153

8.4.5 Oracle Processes Structure

Gambar 8-5 Oracle Processes

Oracle processes structure terdiri dari:

• User process :

dimulai pada saat user meminta koneksi ke Oracle Server

• Server process: terhubung ke Oracle Instance, dimulai pada saat user mulai

terhubungkan dengan Oracle Server

• Background process: dimulai pada saat Oracle Instance di-start.

User Process

User database yang akan mengakses informasi dari database harus

melakukan koneksi dulu ke Oracle server. Ini dapat dilakukan dengan

menggunakan tool, seperti SQL*Plus, dan user process dimulai. User process

tidak berinteraksi langsung dengan Oracle server, tetapi melalui User Program

Interface (UPI) yang meng-create session dan mengaktifkan server process.

Server Process

Ketika user telah terkoneksi, server process dimulai untuk menangani

permintaan dari user process. Server process dapat berupa server process

khusus atau server process yang digunakan bersama (shared server process).

Page 168: Database

Politeknik Telkom Perancangan Basis Data Relasional

154 Perancangan Basis data

Dalam server yang khusus, server process melayani permintaan dari

single user process. Ketika koneksi putus, server process juga selesai. Dalam

shared server, server process melayani permintaan dari beberapa user

process. Server process berkomunikasi dengan Oracle server menggunakan

Oracle Program Interface (OPI).

Background Process

Background process merupakan bagian dari Oracle Instance, yang terdiri

dari beberapa proses. Proses-proses yang sering digunakan adalah:

- Sistem Monitor (SMON): melakukan crash recovery bila instance

gagal di-start.

- Process Monitor (PMON): melakukan process cleanup bila user

process gagal.

- Database Writer (DBWn): menulis blocks yang berubah dari

database buffer cache ke data files dalam disk

- Checkpoint (CKPT): meng-update semua data files dan control

files database untuk memberi tanda checkpoint yang terakhir

- LogWriter (LGWR): menulis redo log ke disk

- Archiver (ARCn): meng-copi redo log files ke tempat penyimpanan

bila log switch terjadi

8.4.6 Oracle Storage Structure

Oracle database mempunyai dua jenis struktur penyimpanan, yaitu

struktur logic dan struktur fisik.

Logical Structure

Struktur logic dapat dilihat pada gambar di bawah ini dimana urutan

terbesar adalah database dan yang terkecil adalah block. Satu database terdiri

dari beberapa tablespace, dan setiap tablespace merupakan gabungan dari

beberapa segment.

Physical Structure Struktur fisik berupa data file, dimana satu atau lebih data file dibuat

untuk setiap tablespace sehingga semua struktur logic akan tersimpan dalam

struktur fisik. Untuk tablespace TEMPORARY, data file nya tersimpan dalam

file temporer.

Page 169: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 155

Struktur fisik juga meliputi file-file yang mendukung berjalannya Oracle

database, yaitu:

- Control files: berisi data tentang informasi struktur fisik database.

File ini sangat penting, karena bila file ini tidak ada, kita tidak bisa

mengakses database.

- Data files: berisi data user atau aplikasi database.

- Online redo log files: digunakan untuk recovery instance database.

- Parameter file: digunakan untuk mendefinisikan bagaimana

konfigurasi instance pada saat start-up

- Password file: mengijinkan user untuk terhubung secara remote ke

database dan untuk melakukan tugas administrasi.

- Backup files: digunakan untuk recovery database.

- Archive log files: berisi urutan perubahan data yang dibuat oleh

instance. Bersama dengan data backup, digunakan untuk merecover

data file yang hilang.

Gambar 8-6 Oracle Storage

Page 170: Database

Politeknik Telkom Perancangan Basis Data Relasional

156 Perancangan Basis data

8.5 Arsitektur Sistem database

Arsitektur suatu database sangat bergantung kepada sistem komputer

dimana database itu dijalankan. Kila tidak bisa membangun sistem database

yang terdistribusi tetapi sistem komputernya tersentralisasi.

Database functionality terdiri dari front-end dan back-end, dimana

front-end terdiri dari tool seperti forms, report-writers, dan fasilitas graphical

user Interface, sedangkan back-end mengatur struktur akses, evaluasi queri

dan optimisasi, kontrol konkurensi dan recovery.

Gambar 8-7 Database Functionality

Antar muka (Interface) antara front-end dan back-end melalui SQL atau

application program Interface(API).

Berdasarkan sistem komputer yang dibangun, maka sistem database

dapat diklasifikasikan sebagai berikut:

- Centralized Sistems

- Client-Server Sistems

- Parallel Sistems

- Distributed Sistems

- Network Types

Page 171: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 157

8.5.1 Centralized Sistems

Gambar 8-8 Centralized Sistem

Centralized Sistem (Sistem terpusat) berjalan pada sistem computer

tunggal dan tidak berinteraksi dengan sistem yang lainnya. Sistem ini terdiri

dari satu CPU dan beberapa device controllers yang dihubungkan melalui

sistem bus, sehingga bisa mengakses shared memory.

Sistem terpusat ini dapat dilakukan dengan single-user sistem atau

multi-user sistem. Contoh dari Single-user sistem adalah personal computer

atau workstation yang terdiri dari unit desk-top, single user, biasanya hanya

mempunyai satu CPU dan satu atau dua hard disks. Sistem Operasinya hanya

melayani satu user saja.

Multi-user sistem didukung oleh beberapa disks, beberapa memory,

multi CPU, dan OSnya bisa melayani multi-user. User terhubungkan ke sistem

melalui terminal. Sistem multi-user ini sering disebut server sistem.

8.5.2 Client-Server Sistems

Gambar 8-9 Client-Server Sistem

Page 172: Database

Politeknik Telkom Perancangan Basis Data Relasional

158 Perancangan Basis data

Dalam sistem Client-Server, client dan server dihubungkan oleh

network dimana server akan memproses permintaan dari client. Database

functionality di client dan server dapat berupa front-end atau back-end.

Server sistems dapat dikatagorikan ke dalam dua jenis, yaitu:

- transaction server atau

- data server

Transaction Server

• Banyak digunakan dalam sistem database relasional

• Disebut juga query server sistems atau SQL server sistems

• clients mengirim permintaan ke sistem server dimana transaksi akan dieksekusi, dan hasilnya dikirim kembali ke client

• Permintaan ditulis dalam SQL, dan dikomunikasikan ke server

melalui mekanisme remote procedure call (RPC)

Data Server

• Digunakan dalam sistem database object-oriented

• Menggunakan LAN dengan koneksi yang sangat cepat antara client dan server

• Data dikirim dari server ke komputer client dimana pemrosesan data

dilakukan, dan hasilnya dikirim kembali ke server

• Arsitektur ini membutuhkan full back-end functionality di komputer client

8.5.3 Parallel Sistems

Sistem database Parallel terdiri dari multiple processors dan multiple

disks yang dihubungkan oleh network yang berinterkoneksi dengan cepat.

Sistem ini dapat diukur performancenya berdasarkan:

- throughput --- jumlah tasks yang bisa diselesaikan dalam interval waktu

yang ditentukan

- response time --- jumlah waktu yang digunakan untuk menyelesaikan

suatu task

Arsitektur sistem parallel ini terdiri dari : - Shared memory -- processors menggunakan satu memori

bersama-sama

- Shared disk -- processors menggunakan satu disk bersama-sama

Page 173: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 159

- Shared nothing -- memory dan disk tidak digunakan bersama-

sama

- Hierarchical – merupakan campuran ketiga arsitektur di atas

dengan shared nothing adalah level tertinggi.

Gambar 8-10 Parallel Sistems

8.5.4 Distributed Sistems

Sistem terdistribusi menyimpan data secara tersebar di beberapa

server database. Server-server ini dihubungkan melalui interkoneksi network.

Data di server-server tersebut digunakan bersama-sama oleh user.

Gambar 8-11 Distributed Sistem

Page 174: Database

Politeknik Telkom Perancangan Basis Data Relasional

160 Perancangan Basis data

8.5.5 Network types

• Local-area networks (LANs) terdiri dari beberapa processors yang tersebar dalam area geografi

yang kecil, seperti dalam suatu gedung atau beberapa gedung yang berdekatan

• Wide-area networks (WANs)

terdiri dari beberapa processors yang tersebar dalam area geografi

yang luas

Page 175: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 161

Rangkuman

1. Database Sistems meliputi Database Management System (DBMS)

yang berupa paket software dan database yang digunakan untuk

menyimpan data.

2. DBMS mempunyai struktur dimana komponen utamanya adalah query processor dan storage manager

3. Oracle Database merupakan nama produk DBMS dimana satu

Oracle server terdiri dari Oracle Instance dan Oracle Database.

4. Arsitektur Oracle Database terdiri dari tiga struktur, yaitu struktur

memori, struktur proses, dan struktur penyimpanan.

5. Berdasarkan sistem komputer yang dibangun, maka sistem database

dapat diklasifikasikan sebagai Centralized Sistems, Client-Server

Sistems, Parallel Sistems, Distributed Sistems, dan Network Types.

Page 176: Database

Politeknik Telkom Perancangan Basis Data Relasional

162 Perancangan Basis data

Kuis Benar Salah

1. DBMS adalah merupakan bagian dari sistem database

2. Server process dalam Oracle Database akan selalu tersedia

selama instance nya berjalan.

3. Yang membedakan SGA dari PGA adalah ukuran(size) nya.

4. Satuan terkecil dalam struktur penyimpanan fisik Oracle adalah

block.

5. Arsitektur sistem database yang membutuhkan full back-end

functionality di komputer client adalah distributed sistems

6. Redo log buffer merupakan bagian dari struktur memori Oracle

7. Throughput ikut menentukan performansi dari parallel sistems.

Page 177: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 163

Pilihan Ganda

1. Manakah pernyataan di bawah ini yang benar:

a. Oracle database terdiri dari Oracle Server dan Oracle Instance

b. Oracle Server terdiri dari Oracle Database dan Oracle Instance

c. Oracle Instance terdiri dari Oracle Server dan Oracle Database

d. Semua benar

e. Semua salah

2. Yang merupakan produk DBMS adalah:

a. Unix

b. MS Window

c. MySQL

d. Linux

3. Yang tidak termasuk dalam struktur memori Oracle adalah:

a. SGA

b. PGA c. Server process

d. Background process

4. Ukuran satuan terkecil tempat penyimpanan fisik pada Oracle

adalah:

a. Segmen

b. Page

c. Block

d. Kbytes

5. Redo Log Buffer merupakan bagian dari:

a. PGA

b. SGA

c. Server Process

d. Background process

Page 178: Database

Politeknik Telkom Perancangan Basis Data Relasional

164 Perancangan Basis data

6. Bila sebuah perusahaan mempunyai kantor-kantor cabang diseluruh

Indonesia, maka arsitektur sistem database yang paling cocok adalah:

a. Centralized sistems

b. Client-server sistems

c. Parallel sistems

d. Network Types

7. Background process akan mulai berjalan bila:

a. Dilakukan start pada Background process

b. Dilakukan start terhadap instance Oracle

c. User mulai terhubung ke database

d. Semua salah

Page 179: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 165

Latihan

1. Jelaskan komponen-komponen apa saja yang terdapat dalam struktur

DBMS.

2. Jelaskan proses yang terjadi bila user mengakses database Oracle.

3. Dalam arsitektur sistem database, sebuntukan jenis-jenis dari sistem

database.

Page 180: Database

Politeknik Telkom Perancangan Basis Data Relasional

166 Perancangan Basis data

9 APLIKASI BASIS DATA

Overview

Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah

banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam

lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan

transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam

bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita

akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak

berkembang.

Tujuan

Mahasiswa mengetahui dan mengerti tentang aplikasi-aplikasi basis data

yang akhir-akhir ini banyak berkembang seperti:

1. Sistem Pendukung Keputusan (Decision Support Sistem/DSS)

2. Basis Data Spasial (Spatial Database)

3. Basis Data untuk Multimedia (Multimedia Database)

4. Basis Data Bergerak (Mobile Database)

5. Sistem Pencarian Informasi (Information-Retrieval Sistem)

6. Sistem Informasi Terdistribusi (Distributed Information Sistem)

7. World Wide Web

Page 181: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 167

9.1 Pendahuluan

Basis Data Relasional telah digunakan selama lebih dari dua dekade. Telah

banyak sekali aplikasi-aplikasi basis data relasional diterapkan dalam

lingkungan komersial, dengan mendukung tugas-tugas seperti pengolahan

transaksi di bank-bank, pasar modal, penjualan dan reservasi untuk beragam

bisnis, inventori dan penggajian untuk hampir semua perusahaan. Kali ini kita

akan membahas lebih jauh aplikasi-aplikasi baru, yang akhir-akhir ini banyak

berkembang. Aplikasi-aplikasi tersebut meliputi Sistem Pendukung Keputusan

(Decision Support System/DSS), aplikasi yang memanfaatkan Basis Data

Spasial (Spatial Database), Basis Data untuk Multimedia (Multimedia Database)

atau. Basis Data Bergerak (Mobile Database), demikian juga dengan Sistem

Pencarian Informasi (Information-Retrieval Sistem) yang berkaitan dengan

dokumen, Sistem Informasi Terdistribusi (Distributed Information Sistem) dan

World Wide Web yang semakin luas pemakaiannya dalam dunia. Internet.

Kesemua itu akan kita bahas satu per satu dalam bab terakhir buku ini.

9.2 Sistem Pendukung Keputusan (Decision-Support Sistem)

Secara umum aplikasi-aplikasi basis data dapat kita bedakan kedalam

dua kelompok, yaitu pemrosesan transaksi (transaction processing) dan

pendukung keputusan (decision support). Berbagai penjelasan sebelumnya di

buku ini, lebih banyak terkonsentrasi pada sistem pemrosesan transaksi,

karena memang saat ini aplikasi demikian lebih luas penggunaannya di berbagai

perusahaan/ organisasi. Aktivitas pemrosesan transaksi banyak sekali

mengelola dan memproduksi data/informasi. Basis data di sebuah perusahaan

perdagangan retail yang berisi data barang, pelanggan dan transaksinya dalam

kurun walau tertentu misalnya, bisa mencapai ukuran gigabyte atau bahkan

terabyte. Data transaksi yang harus dikelola untuk pedagang retail semacam

ini bisa meliputi identifikasi pelanggan (seperti nomor kartu kredit atau

nomor kartu langganan), barang-barang yang dibeli (yang biasanya diwakili

oleh kode barang), jumlah uang yang dibayarkan, dan tanggal transaksi.

Informasi detail tentang satuan barang yang dibeli dapat meliputi jenis barang,

produsennya, nomor model, warna dan ukurannya. Sementara informasi

detail yang berhubungan dengan pelanggan dapat meliputi sejarah kredit,

pendapatan per tahun, tempat tinggal, usia dan bahkan latar belakang

pendidikan.

Basis data yang berukuran besar semacam itu dapat menjadi harta

Page 182: Database

Politeknik Telkom Perancangan Basis Data Relasional

168 Perancangan Basis data

karun informasi yang jika diolah lebih lanjut dapat digunakan untuk membantu

menghasilkan keputusan-keputusan bisnis, seperti item barang apa saja yang

harus disediakan, atau potongan harga seperti apa yang bisa ditawarkan.

Sebagai contoh, pedagang retail bisa memperhatikan serbuan tiba-tiba (yang

menunjukkan adanya sebuah kecenderungan) dalam pembelian baju-baju

model tertentu di tokonya, sehingga baju model tersebut cepat habis dalam

kurun waktu yang singkat. Oleh karena itu pedagang dapat memulai

penyimpanan banyak persediaan (stocking) untuk baju-baju tersebut di

tokonya. Contoh lainnya, sebuah perusahaan asuransi kendaraan menyimpan

data tentang kecelakaan kendaraan milik nasabahnya Serta penanganan

bengkel yang ditunjuk untuk memperbaiki kerusakan yang terjadi. Perusahaan

tersebut juga menanyakan kembali kepada nasabahnya bagaimana tingkat

kepuasan mereka terhadap penanganan bengkel-bengkel yang ditunjuk

tersebut. Selama jangka waktu tertentu, perusahaan asuransi telah memiliki

data/informasi tentang hal itu, yang jika diproses lebih lanjut dapat

dimanfaatkan untuk merekomendasikan bengkel mama saja yang dapat terus

dijadikan partner perusahaan asuransi (berdasarkan tingginya tingkat kepuasan

nasabah dan besarnya tagihan dari bengkel kepada perusahaan asuransi). Pada

kedua kasus, perusahaan telah mengidentifikasi adanya pola dalam perilaku

konsumen, dan menggunakan pola itu untuk membuat keputusan bisnis.

Penyimpanan dan pengambilan data untuk mendukung pengambilan keputusan

menghasilkan sejumlah isu penting sebagai berikut :

Permasalahan yang tidak dapat diselesaikan oleh SQL. Meskipun banyak query yang digunakan untuk mendukung pengambilan keputusan dapat

ditulis dalam SQL, tetapi ada pula. query yang tidak dapat diekspresikan

dengan mudah atau bahkan sama sekali tidak dapat dinyatakan dalam

SQL.

Masalah performansi pengaksesan data. Bahasa-bahasa query basis data

sebenarnya tidak cocok untuk kepentingan performansi dalam analisis

data statistikal yang demikian rinci. Untuk itu, ada sejumlah program

paket yang sudah jadi, seperti SPSS, yang dapat membantu dalam analisis

data statistik. Program paket ini dapat dihubungkan dengan basis data,

sehingga memungkinkan basis data berukuran besar disimpan dalam

media penyimpanan dan diambil dengan efisien untuk kepentingan

analisis.

Penemuan Knowledge. Data yang demikian banyak dapat memberi makna

tertentu (knowledge) bagi pemiliknya. Untuk keperluan itu, teknik-

teknik pencarian makna (knowledge) yang dibangun oleh komunitas

Inteligensia Buatan (Artificial Intelligence) berusaha menemukan secara

Page 183: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 169

otomatis aturan-aturan statistik dan pola-pola. data. Penggalian data

(Data Mining) juga acap digunakan untuk mengkombinasikan gagasan-

gagasan tentang penemuan knowledge tersebut dengan teknik-teknik

implementasi yang efisien yang memungkinkan mereka digunakan pada

basis data yang sangat besar.

Isolasi Data. Perusahaan-perusahaan besar umumnya telah memilah-

milah sumber-sumber data yang mereka perlukan. Sumber-sumber

tersebut dapat menyimpan data dengan skema yang berbeda-beda.

Demi alasan performansi (dan juga untuk alasan sekuriti), sumber-

sumber data umumnya tidak mengijinkan bagian-bagian lain dalam

perusahaan untuk melakukan pengambilan data yang dibutuhkan.

Penggudangan Data (Datawarehouse). Untuk menjalankan query-query secara efisien pada sumber data Yang terpisah-pisah, banyak perusahaan

yang mulai membangun gudang-gudang data (data warehouses). Gudang-

gudang data ini menerima data dari banyak sumber dalam skema yang

unik di sebuah lokasi. Kemudian, mereka menyediakan kepada pemakai,

sebuah antar muka ke data tersebut.

9.2.1 Analisis Data

Meskipun analisis statistikal yang kompleks sebetulnya merupakan

urusan dari program-program paket untuk statistik, namun basis data harus

mendukung bentuk-bentuk analisis data yang sederhana, yang umum

digunakan. Karena data yang disimpan dalam basis data umumnya besar sekali,

mereka perlu disatukan dan disimpulkan lebih dulu (summarizing) dalam

beberapa bentuk jika kita harus menghasilkan informasi yang dapat

dimanfaatkan oleh pemakai. Fungsi-fungsi agregasi umum digunakan untuk

keperluan semacam ini.

Fungsi agregasi dalam SQL relatif terbatas, karena itu sejumlah

perluasan telah diimplementasikan oleh beberapa DBMS. Sebagai contoh,

meskipun SQL hanya mendefinisikan sejumlah fungsi agregasi, banyak DBMS

menyediakan sekumpulan fungsi yang lebih kaya, yang meliputi penentuan

varians, median, modus dan sebagainya yang banyak dimanfaatkan dalam dunia

statistik. Bahkan ada juga sistem Yang membolehkan para pemakainya untuk

menambahkan sendiri fungsi-fungsi baru.

Histogram juga sering digunakan untuk analisis data. Sebuah histogram

membagi nilai-nilai yang diperoleh dari sebuah atribut ke dalam jangkauan-

jangkauan nilai, dan menghitung agregasinya, seperti total nilai untuk setiap

jangkauan/kelompok nilai tersebut. Sebagai contoh, sebuah histogram untuk

nilai-nilai gaji dapat menghitung sejumlah orang yang memiliki gaji untuk

Page 184: Database

Politeknik Telkom Perancangan Basis Data Relasional

170 Perancangan Basis data

jangkauan nilai 2000000, 2000001-4000000, 4000001-6000000 dan di atas

6000000. Dapat dikatakan tidak mungkin menggunakan SQL standar untuk

membentuk sebuah histogram secara efisien. Perluasan sintaks SQL yang

memungkinkan fungsi-fungsi baru digunakan dalam klausa groupby - dapat

memberikan solusi pada keinginan tersebut. Pada contoh pengelompokan gaji

karyawan tersebut, kita dapat menerapkan klausa tersebut sebagai berikut :

select kelompok_gaji, count(gaji)

from karyawan

group by N_tile (gaji, 6) as kelompok_gaji

Pada contoh di atas, N_tile (gaji,6) membagi nilai-nilai dari gaji ke

dalam 6 jangkauan (range) berturutan, dengan nilai jeda yang sama untuk

setiap jangkauan. Dengan begitu, kelompok pertama akan memiliki nilai-nilai

gaji terendah, sementara kelompok ke-6 akan berisis kelompok gaji tertinggi.

Query di atas akan menghitung dan menghasilkan banyaknya karyawan untuk

masing-masing kelompok gaji.

Analisis statistik seringkali membutuhkan agregasi pada banyak atribut.

Perhatikan sebuah aplikasi di mana sebuah toko ingin mengetahui baju jenis

ape yang populer. Mari kita bayangkan bahwa baju dikelompokan berdasarkan

warna dan ukurannya, dan bahwa kita memiliki sebuah tabel Pakaian dengan

skema pakaian(wama, ukuran, jumlah). Untuk menganalisa tabel Pakaian

berdasarkan warna (terang dan gelap) dan ukuran (S, M, L), seorang manajer

dapat menginginkan untuk melihat data secara tabular sebagai berikut :

Tabel 9-1 Contoh Cross-Tab

S M L Total

Terang 8 35 10 53

Gelap 20 10 5 35

Total 28 45 15 88

Bentuk tabel di atas biasa dikenal dengan istilah cross-tabulation (cross-

tab), di mana data disusun dalam due dimensi, karena mereka didasarkan atas

2 atribut berbeda : ukuran dan warna. Secara umum, data dapat

Page 185: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 171

direpresentasikan dalam bentuk array multidimensi (di mana atribut

penentunya lebih dari 1), dengan sebuah nilai untuk tiap elemen dari array.

Data semacam ini disebut data multidimensional.

Data dalam sebuah cross-tab tidak dapat dihasilkan oleh sebuah query

SQL, karena nilai-nilai totalnya diambil dari beberapa level berbeda. Kita juga

dapat melihat dengan mudah bahwa cross-tab tidak sama dengan tabel

relasional, seperti yang kita kenal selama ini. Kita dapat merepresentasikan

data dalam bentuk relasional dengan menggunakan nilai khusus all untuk

menyatakan subtotal, seperti yang ditunjukan di tabel berikut ini :

Tabel 9-2 Tabel Relasional

Warna Ukuran Jumlah

Terang

Terang

Terang

Terang

Gelap

Gelap

Gelap

Gelap

all

all

all

all

S

M

L

all

S

M

L

all

S

M

L

all

8

35

10

53

20

10

5

35

28

45

15

88

Perhatikan pasangan (Terang, all, 53) dan (Gelap, all, 35). Kita bisa

memperoleh pasangan ini dengan menghilangkan pasangan individual dengan

nilai berbeda untuk ukuran, dan dengan mengganti nilai dari jumlah dengan

sebuah agreasi sum. Ekspresi query-nya dapat kita nyatakan sebagai :

select warna, sum(jumlah)

from pakaian

group by warna

Kita dapat melakukan hal yang sama untuk mendapatkan subtotal untuk

masing-masing ukuran. Dan akhirnya total untuk semua ukuran dan warna.

Page 186: Database

Politeknik Telkom Perancangan Basis Data Relasional

172 Perancangan Basis data

Paling tidak, ada 3 ekspresi query berbeda yang harus kita berikan untuk

mendapatkan semua informasi agregrasi yang mungkin. Tentu saja hal ini

menjadi semakin tidak praktis untuk data multidimensional (atribut

penentunya lebih dari 2). Walaupun kita dapat menghasilkan informasi seperti

yang diperlihatkan di Gambar 14.2 dengan menggunakan SQL, tetapi

melakukan hal itu memberikan kerumitan tersendiri. Query akan melibatkan

penggunaan operasi unio, dan dapat menjadi panjang seiring dengan banyaknya

atribut yang terlibat.

Karena itu ada gagasan untuk memperkaya perintah SQL dengan

operator cube. Sebagai contoh, berikut ini adalah query SQL yang akan

menghasilkan tabel di atas.

select warna, ukuran, sum(jumlah)

from pakaian

group by warna, ukuran with cube

9.2.2 Penggalian Data (Data Mining)

Secara sederhana Data Mining merujuk pada upaya pencarian

informasi yang paling terkait, atau "menemukan pengetahuan", dari sejumlah

besar data. Sebagaimana pencarian pengetahuan dalarn bidang Intelijensia

Buatan (Artificial Intellligence), yang biasa disingkat dengan AI), Data Mining

berusaha mendapatkan aturan-aturan dan pola-pola statistikal secara otomatis

dari data. Akan tetapi, Data Mining berbeda dari sistem machine learning dalam

AI karena Data Mining bekerja pada volume data yang besar sekali yang

sebagian besar tersimpan di dalam disk.

Pengetahuan yang ditemukan dari basis data dapat dinyatakan dengan

sekumpulan aturan-aturan. Mula-mula kita menggambarkan struktur aturan-

aturan yang digunakan untuk merepresentasikan pengetahuan. Selanjutnya,

kita pertimbangkan sejumlah klas data-mining, untuk menjelaskan kebutuhan

untuk Data Mining. Kita dapat menemukan aturan-aturan dari basis data

dengan menggunakan salah satu dari dua model berikut :

Pada model pertama, pemakai dilibatkan secara langsung dalam proses pencarian pengetahuan.

Pada model kedua, sistem bertanggung jawab untuk secara otomatis

menemukan pengetahuan dari basis data, dengan mendeteksi pola-

pola dan korelasi-korelasi dalam data.

Page 187: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 173

Sistem pencarian-pengetahuan dapat pula merupakan gabungan dari

kedua model, di mana sistem menemukan banyak aturan secara otomatis,

sementara pemakai memandu proses dalam penemuan aturan.

Dalam Data Mining, yang terpenting dan, sekaligus tersulit dari penjelasan di

atas adalah bagaimana aturan-aturan (yang merepresentasikan pengetahuan)

dari basis data tersebut dapat kita peroleh. Kesulitan ini seringkali

membutuhkan intervensi dari pemakai (manusia). Pembahasan lebih jauh soal

ini tidak akan dibahas dalam buku ini. Bagi yang tertarik lebih lanjut soal ini,

bisa melihat literatur lain yang relevan, di samping juga mempelajari aspek-

aspek AI (Artificial Intelligence).

9.2.3 Penggudangan Data (Data Warehousing)

Perusahaan-perusahaan besar memiliki banyak lokasi, yang masing-

masing dapat menghasilkan volume data yang besar. Sebagai contoh, jaringan

perdagangan ritel yang besar memiliki toko-toko pada ratusan bahkan ribuan

lokasi, begitu pula dengan perusahaan asuransi yang mungkin memiliki data

dari ribuan cabang-cabangnya. Lebih jauh lagi, organisasi-organisasi besar

memiliki struktur organisasi internal yang rumit, sebagai konsekuensi dari

data yang berbeda di berbagai lokasi atau pemakaian beragam sistem operasi,

dan dengan skema basis data yang juga berbeda. Sebagai contoh, data

problem pabtik dan data keluhan pelanggan dapat dikelola dan disimpan

secara berbeda oleh masing-masing cabang. Perbedaan tersebut bisa meliptiti

platform (hardware dan software) yang digunakan, DBMS yang diterapkan

hingga skema basis data yang dibentuk. Pengambil keputusan perusahaan

membutuhkan akses ke informasi dari semua sumber-sumber itu. Mengatur

query ke setiap sumber data secara individual akan menjadi sangat tidak

efisien. sumber-sumber data boleh jadi hanya menyimpan data yang terakhir

saja, padahal pengambil keputusan juga mungkin memerlukan akses ke data

yang lalu (data histori). Sebagai contoh, perubahan pola pembelian dapat

diketahui dengan membandingkan data pembelian tahun ini dengan data

pembelian pada tahun lalu. Upaya Penggudangan Data (atau yang populer

disebut sebagai Data Warehousing) diharapkan dapat memberikan solusi pada

masalah semacam ini. Pada dasarnya Data warehouse merupakan gudang (atau arsip) dari

informasi yang diperoleh dari banyak sumber, disimpan dalam skema basis

data yang tunggal, di satu lokasi saja. Begitu diperoleh, data akan disimpan

dalam waktu yang lama sehingga memungkinkan pengaksesan ke data historis.

Karena itu, Data warehouse memberikan pemakai sebuah akses ke data yang

Page 188: Database

Politeknik Telkom Perancangan Basis Data Relasional

174 Perancangan Basis data

terkonsolidasi, sehingga query untuk pengambilan keputusan menjadi lebih

mudah untuk ditulis. Di sisi lain, dengan mengakses informasi dari sebuah data

warehouse yang nantinya digunakan untuk dukungan pengambilan keputusan,

pemakai dapat menjamin bahwa sistem pengolahan transaksi on-line tidak

dipengaruhi oleh kerja aplikasi pendukung pengambilan keputusan (DSS).

Gambar berikut ini menunjukkan arsitektur dari sebuah data warehouse, yang

mengilustrasikan pengambilan data dan penyimpanan (konsolidasi) data hingga

penggunaannya untuk pencarian (query) dan dukungan pada analisis data.

sumber data

Gambar 9-1 Arsitektur Data warehouse

Ada sejumlah hal penting yang harus dipertimbangkan dalam pembangunan

data warehouse :

Kapan dan Bagaimana mendapatkan data.

Secara umum ada dua pilihan dalam mendapatkan data dari sumber-sumber

data ke data warehouse, yaitu sumber data yang secara aktif mengirimkannya

(dengan memanfaatkan fungsi replikasi) ataupun data warehouse yang

mengajukan permintaan (query ke setiap sumber). Kedua-duanya dapat

dilakukan secara berkala (periodik), atau bisa juga berdasarkan permintaan (on

request).

Mengingat skema dari data warehouse umumnya berbeda dengan skema

sumber data (sehingga diperlukan juga upaya konversi data), maka umumnya

cara yang ditempuh untuk mendapatkan data adalah melalui permintaan (query) dari data warehouse. Frekuensi pengambilan data biasanya juga diatur

secara berkala, di luar waktu sibuk, misalnya pada malam hari, agar tidak

mengganggu pemrosesan transaksi utama di masingmasing sumber data.

Page 189: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 175

Skema Konsolidasi yang digunakan.

Sumber-sumber data yang telah dibentuk secara terpisah biasanya memiliki

skema basis data yang berbeda. Bahkan, mereka bisa menggunakan organisasi

basis data yang juga berbeda. Salah satu tugas dari sebuah warehouse adalah

untuk membentuk skema data konsolidasi (gabungan), dan kemudian

mengkonversi data yang didapat dari sumber ke skema konsolidasi tersebut

sebelum data tersebut disimpan. Konsekuensinya, data yang disimpan dalam.

warehouse bukanlah salinan yang persis dari data yang ada,di sumbernya.

Bagaimana menjalarkan perubahan

Pengubahan data pada sebuah tabel di sumber data harus pula dijalarkan ke

data warehouse. Jika tabel-tabel di data warehouse sama persis dengan yang ada di sumber data, maka penjalaran perubahan bisa dilakukan secara langsung

(bisa memanfaatkan prosedur basis data). Jika tidak sama (dan unaunanya

memang demikian), maka propagasi (penjalaran) perubahan bisa ditunda

hingga periode berikutnya dari pengumpulan data.

Data apa yang direkapitulasi.

Data mentah yang dihasilkan oleh sistem pengolahan transaksi bisa menjadi

teramat besar untuk penyimpanan on-line di data warehouse. Karena itu, kita

dapat memenuhi banyak query dengan hanya memelihara data rekapitulasi

(summary) dengan memanfaatkan fungsi-fungsi agregasi terhadap tabel-tabel

yang ada, ketimbang memelihara keseluruhan data dalam tabel. Namun

demikian, kita harus memastikan bagaimana bentuk data yang akan disimpan

di warehouse, dengan menyesuaikannya dengan peruntukannya nanti.

9.3 Basis Data Spasial (Spatial Databases)

Spasial (dalam bahasa Inggris, Spatial) menunjukkan kata sifat yang

berhubungan dengan ruangan, yang merupakan pengembangan dari kata

benda "space" yang berarti "ruang". Singkatnya, untuk merujuk pada hal-hal

yang berhubungan dengan ruang ataupun tempat, kata "spasial" dapat kita

gunakan. Istilah spasial ini juga mencakup istilah Geografis, yang sudah cukup

sering kita dengar/gunakan, yang merujuk pada hal-hal yang berhubungan

dengan ilmu bumi.

Saat ini cukup banyak aplikasi yang dimanfaatkan secara khusus untuk

menangani hal-hal yang berhubungan dengan ruangan/tempat dan

keilmubumian. Aplikasi ini menyediakan operasi-operasi spesifik sesuai dengan

lingkup pemakaiannya, dan karena itu juga membutuhkan penanganan dan

pengelolaan basis data yang juga spesifik (khusus). Basis Data Spasial ditujukan

bagi penyimpanan data yang berkaitan dengan lokasi-lokasi dan ruang

Page 190: Database

Politeknik Telkom Perancangan Basis Data Relasional

176 Perancangan Basis data

geometric, dan mendukung query dan penggunaan indeks yang efisien

berdasarkan data lokasi/ruang tersebut. Sebagai contoh, kita ingin menyimpan

sekumpulan poligon (bidang 2 dimensi dengan banyak sudut) dalam sebuah

basis data, dan kemudian memberikan query untuk mencari semua poligon

yang bersinggungan / berpotongan dengan poligon yang kita ketahui/berikan.

Kita tidak dapat menggunakan struktur indeks yang baku, seperti B-tree atau

hash, untuk menjawab query tersebut secara efisien. Basis Data Spasial akan

menggunakan struktur indeks yang khusus, seperti R-tree untuk memenuhi

query semacam itu.

Ada dua jenis Basis Data Spasial yang penting diketahui :

Basis Data Perancangan (Design Database) atau Basis Data CAD

(Computer-Aided Design) yang digunakan untuk menyimpan data hasil

perancangan untuk objek-objek yang dibuat manusia seperti

bangunan, mobil, pesawat, dan lain-lain. Contoh lain dalam

pemanfaatan Basis Data CAD adalah untuk menyimpan hasil

rancangan IC (intergrated-circuit) untuk chips dan rancangan

perangkat elektronika.

Basis Data Geografis, yang digunakan untuk menyimpan data geografis seperti peta dan hasil pencitraan satelit. Basis Data Geografis sering

pula disebut GIS (Geographic Information Sistem).

Garis = {( ( }

Segitiga = {( ( ( }

Page 191: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 177

Polygon =

{( ( ( ( ( }

Gambar 9-2 Bentuk-bentuk Geografis. dan Representasinya

9.3.1 Representasi Informasi Geometris

Gambar 14.2 menggambarkan bagaimana berbagai bentuk geometrik dapat

direpresentasikan dalam sebuah basis data. Di sini kita menekankan bahwa

informasi geometrik dapat dinyatakan dalam berbagai cara berbeda, walaupun

hanya sebagian saja yang akan kita bahas.

Sebuah garis lurus dapat dinyatakan dalam koordinat dari kedua ujungnya.

Sedang untuk sebuah garis lengkung, kita dapat membaginya dalam sejumlah

garis lurus (segmen-segmen garis lurus) Yang sambung-menyambung, sehingga

informasi yang disimpan untuk garis lengkung itu nantinya berupa koordinat

dari ujung-ujung segmen garis lurus tersebut. Alternatif lain untuk

merepresentasikan segmen-segmen garis (misalnya dalam sebuah peta) bisa

juga berupa sudut kemiringan dan jarak dengan titik pusatnya (biasa juga

disebut sebagai koordinat ' polar). Selanjutnya untuk sebuah poligon (dengan

banyak rusuk/sudut), dapat kita representasikan dengan menginventarisir

garis-garis rusuknya secara berurut, seperti pada Gambar 14.2. Daftar dari

rusuk poligon tersebut sesungguhnya menunjukkan batas area poligon (dalam

hal.ini, merupakan poligon tertutup, di mana koordinat titik awal rusuk-

rusuknya sama dengan koordinat titik akhirnya).

Yang kita ilustrasikan di atas adalah untuk objek-objek 2 dimensi. Sementara representasi dari titik-titik dan segmen garis dalam ruang 3 dimensi mirip

dengan representasi untuk ruang 2 dimensi, dengan tambahan koordinat

kedalaman/ketinggian, yang biasa disimbolkan dengan koordinat z.

9.3.2 Basis Data Perancangan

CAD (Computer-Aided Design) sudah lama digunakan hingga saat ini. Secara

konvensional, CAD menyimpan data di memori (RAM) selama penyuntingan

(editting) berlangsung, dan merekam datanya kembali ke file pada akhir

pekerjaan penyuntingan tersebut. Problem Yang umum terjadi meliputi biaya

Page 192: Database

Politeknik Telkom Perancangan Basis Data Relasional

178 Perancangan Basis data

(kompleksitas pernrograman -dan waktu) dalam mentransformasikan data

dari satu bentuk ke bentuk lainnya (akibat proses penyalinan, pemotongan,

pemindahan, pembesaran, pengecilan, dan sebagainya), dan kebutuhan

pembacaan kembali keseluruhan file. Untuk perancangan yang berskala besar,

seperti perancangan IC yang rumit, atau bahkan perancangan sebuah pesawat,

adalah tidak mungkin untuk menyimpan seluruh data di dalam memori utama.

Karena itu, ada kebutuhan untuk pembentukan basis data dari sistem CAD.

Komponen-komponen perancangan direpresentasikan sebagai objek dan

hubungan-hubungan di antara objek-objek tersebut, yang kesemuanya

menunjukkan bagaimana perancangan terbentuk.

Objek-objek yang disimpan dalam Basis Data Perancangan umumnya adalah

objek-objek geometris (yang relatif teratur). Objek geometris 2 dimensi yang

sederhana meliputi titik, garis, segitiga, persegi panjang ang dan secara umum.

poligon. Objek-objek 2 dimensi yang lebih kompleks dapat dibentuk dari

objek-objek sederhana tersebut dengan juga melibatkan operasi-operasi

gabungan (unio), potongan (intersection) dan/atau pengurangan (difference).

Sejalan dengan itu, objek-objek 3 dimensi yang kompleks juga dapat dibentuk

dari objekobjek 3 dimensi yang lebih sederhana seperti bola, silinder, kubus,

balok atau polihedron yang kemudian dikenai operasi-operasi yang sama,

sebagaimana yang diilustrasikan di gambar 10.4 berikut ini.

a. 2 silinder dengan Difference b. 2 balok dengan Unio

Gambar 9-3 Objek-objek 3 Dimensi yang Lebih Kompleks

Berbagai operasi-operasi spasial harus dapat dilaksanakan terhadap Basis Data

Spacial. Sebagai contohnya, kita dapat melakukan pengambilan sebagian

(cropping) dari perancangan objek yang berada dalam sebuah area yang

disorot (boundary). Indeks satu dimensi semacam B-'-tree, seperti yang selama

ini digunakan tidak memadai untuk membantu pelaksanaan operasi-operasi

Page 193: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 179

spasial semacam itu. Karena itu, digunakan struktur indeks spasial yang

multidimensi (2 dimensi atau 3 dimensi).

9.3.3 Data Geografis

Data geografis juga memiliki aspek spasial di alam, tetapi berbeda

dengan data perancangan yang telah kita bahas dalam beberapa aspek. Peta

dan hasil pencitraan satelit merupakan contoh-contoh umum dari data

geografis. Peta dapat memberikan tidak hanya data lokasi - seperti batas

wilayah, sungai, danau dan jalan - tetapi lebih jauh lagi memiliki informasi rinci

yang berhubungan dengan tempat, seperti kemiringan, jenis tanah, penggunaan

tanah, tingkat curah hujan dan lain-lain. Data geografis dapat dikelompokkan

dalam 2 jenis:

Data Raster. Pada kelompok ini, setiap objek tidak dilihat bentuk

geometrisnya secara utuh, tetapi dipandang sebagai kumpulan titik (pixel).

Karena itu data raster terdiri atas peta-peta bit atau pixel dalam 2

dimensi atau lebih. Contoh yang umum dari citra raster 2 dimensi adalah

citra satelit untuk awan, di mana setiap pixel (yang berasosiasi dengan

koordinat dan warna tertentu) menyimpan keberadaan titik awan secara

geografis. Data raster dapat pula berwujud 3 dimensi - sebagai contoh,

representasi temperatur pada berbagai ketinggian dalam area berbeda,

yang lagi-lagi diukur dengan bantuan sebuah satelit. Waktu dapat pula

menjadi komponen dimensi - contohnya, pengukuran temperatur di atas

permukaan pada waktu-waktu pengukuran yang berbeda. Basis Data Perancangan umumnya tidak menyimpan data raster, karena besarnya

kebutuhan penyimpanan data.

Data Vektor. Data vektor dibentuk dari objek-objek geometric dasar,

seperti titik, garis, segitiga dan berbagai poligon lainnya untuk objek-

objek 2 dimensi dan silinder, elips, kubus dan polihedron lainnya untuk

objek-objek 3 dimensi.

Data peta sering direpresentasikan dalam format vektor. Sungai dan

jalan dapat diwakili sebagai gabungan dari banyak segmen garis. Provinsi dan

negara dapat dinyatakan sebagai poligon. Informasi topologic, seperti tinggi,

dapat direpresentasikan sebagai sebuah permukaan yang dibagi dalam

sejumlah poligon yang menutupi area dengan tinggi yang sama, dengan nilai

ketinggian yang melekat pada tiap poligon.

Page 194: Database

Politeknik Telkom Perancangan Basis Data Relasional

180 Perancangan Basis data

Gambar 9-4 Objek sebagai Data Raster dan Data Vektor

9.3.4 Representasi Data Geografis

Fitur-fitur geografis, seperti negara bagian atau danau yang besar, dapat

direpresentasikan sebagai poligon yang kompleks (dengan banyak sisi/rusuk).

Fitur-fitur lainnya, seperti sungai, dapat direpresentasikan baik sebagai garis

lengkung (kurva) yang kompleks atau sebagai poligon yang kompleks,

tergantung apakah kedalamannya relevan untuk juga disimpan atau tidak.

Sementara informasi geografis yang berkaitan dengan area, seperti curah

hujan yang berbentuk data raster (menunjukkan titik-titik hujan di berbagai

kawasan), dapat direpresentasikan dalam bentuk array. Demi efisiensi ruang

penyimpanan, array tersebut dapat disimpan dalam bentuk kompresi.

Sebagaimana digambarkan di awal, kita dapat

merepresentasikan informasi sebuah kawasan geografi dalam bentuk vektor,

khususnya dengan menggunakan poligon, di mana setiap poligon mewakili

kawasan yang nilai array-nya sama (ketinggian, curah hujan, temperatur, dan

lain-lain). Representasi vektor lebih kompak daripada representasi raster

untuk sejumlah aplikasi. la juga lebih akurat untuk sejumlah operasi.

Penggambaran jalan misalnya, yang dibagi-bagi ke dalam pixel-pixel seringkali

kurang akurat karena akan ada titik-titik jalan (antar pixel) yang kosong.

Namun demikian, representasi vektor tidak cocok untuk aplikasi-aplikasi di

mana data secara implisit memang sudah berbentuk raster, seperti hasil

pencitraan satelit (foto satelit).

9.3.5 Aplikasi Data Geografis

Basis Data Geografis telah banyak dimanfaatkan, seperti pada sistem

navigasi kendaraan, sistem informasi jaringan distribusi untuk instalasi publik

(telepon kabel, listrik dan air), demikian juga sistem informasi yang banyak

digunakan untuk ahli lingkungan dan perencanaan.

Page 195: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 181

Sistem navigasi kendaraan memiliki informasi tentang jalan dan berbagai

layanan untuk pengemudi. Informasi tentang jalan bisa meliputi bentuk jalan,

batas kecepatan di jalan, kondisi jalan, koneksi antar jalan, juga apakah jalan

search atau dua arch. Pada level yang sederhana, sistem seperti ini dapat

digunakan untuk menghasilkan peta on-line untuk manusia. Dan dengan

informasi-informasi tambahan yang relevan, pemakai dapat menggunakannya

untuk perencanaan rute perjalanan atau untuk mengetahui lokasi-lokasi hotel,

restoran, ATM dan pompa bensin di sekitar jalan/kawasan tertentu.

Sistem navigasi kendaraan biasanya bersifat dinamis dan mobile

(bergerak), dan secara fisik dipasang di dasbor kendaraan. Tambahan yang

juga berguna untuk sistem informasi geografis bergerak ini adalah unit GPS

(Global Positioning Sistem), yang menggunakan informasi pancaran

(broadcast) dari satelit untuk menemukan lokasi objek tertentu dengan

akurasi hingga puluhan meter. Dengan bantuan sistem semacam ini, seorang

pengemudi tak perlu kuatir sampai tersesat, karena dengan bantuan GPS dan

Basis Data Geografis kita dapat mengetahui secara tepat di mana kendaraan

berada dan jalanjalan di sekitar kendaraan.

Basis Data Geografis yang mengelola informasi tentang instalasi publik

(listrik, air dan telepon kabel) menjadi sangat penting dewasa ini sejalan

dengan peningkatan dan kompleksitas jaringan kabel/jaringan pipa di bawah

tanah. Minimnya peta detail untuk masing-masing jaringan, bisa mengakibatkan

pekerjaan untuk sebuah jaringan publik yang satu dapat merusak jaringan yang

lain, yang tentu saja dapat menghasilkan gangguan pelayanan kepada

pelanggan. Basis Data Geografis yang dilengkapi sistem pencarian lokasi, dapat

dimanfaatkan untuk menghindari kemungkinan kerusakan yang tidak disengaja

semacam ini di kemudian hari.

9.4 Basis Data untuk Multimedia (Multimedia Databases)

Saat ini semakin marak pemakaian basis data untuk menyimpan data

multimedia, seperti gambar, audio dan video. Umumnya, data multimedia

tersebut disimpan di luar basis data, yaitu pada file-file terpisah. Dan di saat

jumlah objek multimedia tersebut masih relatif kecil, maka fasilitas-fasilitas

dalam lingkungan basis data menjadi tidak begitu bermanfaat dan relevan.

Fungsionalitas basis data akan menjadi penting pada saat jumlah objek

multimedia yang disimpan tersebut sudah semakin banyak. Isu-isu seperti

perubahan, pencarian dan pengindeksan menjadi penting dan relevan. Objek-

objek multimedia seringkali memiliki atribut-atribut deskriptif, seperti waktu

pembuatan, nama pembuat dan jenis data multimedianya. Salah satu

Page 196: Database

Politeknik Telkom Perancangan Basis Data Relasional

182 Perancangan Basis data

pendekatan dalam pembentukan basis data untuk objek-objek multimedia

adalah dengan memanfaatkan basis data untuk menyimpan atribut-atribut

deskriptif dan untuk menyimpan informasi track dari file di mana objek-objek

multimedia tersebut disimpan secara fisik.

Akan tetapi, menyimpan objek multimedia sendiri (gambar, audio,

video) di luar basis data membuatnya lebih sukar untuk memberikan

fungsionalitas basis data yang optimal, seperti pengindeksan. Hal itu juga dapat

mengarah munculnya inkonsistensi, jika misalnya file-file yang informasi

deskriptif dan lokasinya tersimpan di basis data sudah tidak ada atau telah

dipindahkan. Karena itu sangat beralasan untuk menyimpan objek-objek ini di

dalam basis data yang sama. DBMS Oracle menyediakan tipe data BLOB

(singkatan dari Binary Large Object) dan DBMS Sybase menyediakan tipe data

image untuk menyimpan data multimedia untuk jenis gambar.

Beberapa isu yang harus diketahui jika data multimedia disimpan dalam

sebuah basis data :

Basis data (dan DBMS) harus mendukung penyimpanan objek-objek

yang besar, karena data multimedia seperti video bisa membutuhkan

ruang penyimpanan hingga beberapa GB (gigabyte).

Pencarian dan pengambilan data berdasarkan kesamaan diperlukan dalam aplikasi-aplikasi basis data multimedia. Sebagai contoh, dalam

sebuah basis data yang menyimpan citra sidik jari, sebuah query sidik

jari dapat diberikan, yang menghasilkan daftar sidik jari yang cocok.

Struktur indeks semacam B+-tree atau R-tree tidak cocok digunakan

untuk keperluan ini, karena itu struktur indeks yang khusus untuk itu

perlu dibuat.

Pengambilan sejumlah tipe data, seperti audio dan video, juga

membutuhkan syarat khusus yaitu data yang disimpan harus dapat

diproses dan disajikan dalam kecepatan yang konstan. Data semacam

ini biasa disebut data media kontinu (continuous-media data).

9.4.1 Pengambilan Berbasis Kesamaan (Similarity-Based

Retrieval)

Dalam banyak aplikasi multimedia, data dalam basis data dideskripsikan

hanya Sebagai pendekatan (aproksimasi) dari fakta yang sesungguhnya. Kita

telah mengemukakan contoh sebelumnya tentang data sidik jari. Sangat tidak

efisien dan tidak relevan untuk menyimpan semua fakta dalam sidik jadi. Yang

perlu disimpan hanyalah bagian-bagian sidik jari yang penting yang kelak bisa

menjamin pencarian secara akurat dan cukup cepat. Contoh lainnya adalah :

Data Foto. Dua foto atau citra yang agak berbeda yang kemudian

Page 197: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 183

direpresentasikan dalam basis data dapat dianggap sama oleh pemakai.

Sebagai contoh, sebuah basis data digunakan untuk menyimpan rancangan

merk dagang. Ketika sebuah rancangan merk dagang yang baru ingin

didaftarkan, sistem basis data mula-mula dapat memeriksa semua merk

dagang yang mirip rancangannya yang sebelumnya telah dientri, sehingga

pendaftaran merk dagang yang baru dapat ditolak.

Data Audio. Saat ini telah marak digunakan fasilitas antar muka (Interface)

pemakai yang berbasis suara. Dengan fasilitas ini pemakai dapat

memberikan perintah atau mengidentifikasi item data dengan suaranya.

Masukan dari pemakai harus ditest untuk mencari kecocokan dengan

perintah-perintah yang telah tersimpan di dalam sistem.

Data Tulisan Tangan. Uji kemiripan diperlukan untuk menguji kesamaan tulisan tangan seseorang dengan data tulisan tangan yang telah tersimpan

di basis data yang mungkin berasosiasi dengan perintah atau makna

tertentu.

Kemiripan seringkali bersifat subjektif dan amat tergantung definisi

pemakai. Namun demikian, pengujian kemiripan cukup sukses untuk

pengenalan suara dan tulisan tangan, karena data masukan dapat dibandingkan

dengan data yang telah tersimpan dalam basis data, dan karena himpunan

pilihan yang tersedia juga terbatas.

9.4.2 Data sinambung (Continuous-Media Data)

Tipe data sinambung yang paling penting adalah data video dan audio.

Sistem data sinambung ditandai dengan ukuran data yang sangat besar dan

kebutuhan akan pengiriman data yang real-time.

Data harus dikirim dengan cukup cepat agar tidak ada jeda (yang

mengganggu) dalam penyajian audio dan penayangan video.

Data harus dikirim dalam kecepatan. yang, memadai dan konstan yang

tidak membuat sistem menjadi overflow (yang bisa membauat suara atau

gambar ditayangkan terlalu cepat)

Sinkronisasi antara aliran data yang berbeda harus dijaga. Hal ini

diperlukan ketika misalnya suara dari seseorang (aspek audio) harus

sinkron dengan gerakan bibir dari orang tersebut (aspek video).

9.5 Basis Data Bergerak (Mobility and Personal Databases)

Basis Data komersial yang berukuran besar umumnya disimpan dan

dikelola dalam fasilitas komputasi terpusat. Sementara pada aplikasi basis data

terdistribusi, umumnya tetap ada basis data sentral yang didukung oleh

jaringan yang handal. Namun dua trend teknologi yang berkembang akhir-

Page 198: Database

Politeknik Telkom Perancangan Basis Data Relasional

184 Perancangan Basis data

akhir ini telah bersinergi membentuk aplikasiaplikasi yang membuat asumsi

tentang kontrol dan administrasi terpusat tidak sepenuhnya benar :

1. Peningkatan penggunaan PC, terutama yang berbentuk komputer jinjing

(laptop atau notebook)

2. Pembangunan infrastruktur komunikasi dijital nirkabel (wireless) yang

relatif berbiaya rendah, yang menjadi dasar jaringan lokal nirkabel,

jaringan paket digital dan teknologi lainnya.

Komputasi bergerak (mobile) telah memberi banyak manfaat pada

berbagai aplikasi. Para pebisnis yang banyak bepergian dapat menggunakan

komputer jinjing yang memungkinkan mereka bekerja dan mengakses data

selama perjalanan. Layanan kurir bisa menggunakan komputer bergerak untuk

membantu penelusuran paket. Dan masih banyak lagi aplikasi dari komputer

jinjing/bergerak semacam ini.

Sementara komputasi nirkabel (dalam sebuah jaringan nirkabel)

menciptakan situasi di mana mesin tidak harus memiliki lokasi alamat jaringan

yang tetap. Hal ini memang memperumit pemrosesan query, karena akan

menjadi sukar untuk menentukan lokasi optimal untuk membentuk hasil

query. Dalam banyak kasus, lokasi dari pemakai juga sering menjadi parameter

dari query. Sebagai contoh, sistem informasi perjalanan yang menyediakan data

tentang hotel, panduan perjalanan dan sebagainya. Query terhadap data

semacam itu didasarkan pada lokasi user, arah pergerakan dan bahkan

kecepatannya.

9.5.1 Model Komputasi Bergerak

Lingkungan komputasi bergerak terdiri atas komputer jinjing di satu

sisi, yang bisa juga kita sebut sebagai stasiun bergerak (mobile host), dan

jaringan komputer kabel yang saling terhubung di sisi yang lain. Umumnya

mobile host berkomunikasi dengan jaringan kabel melalui komputer-

komputer yang disebut stasiun pendukung bergerak (mobile support station).

Setiap mobile support station mengelola mobile host dalam sebuah sel (area

geografis di mana host tersebut terpantau). Mobile host dapat berpindah

antar sel, yang ditandai dengan pemindahan (handoff) kontrol dari mobile

support station yang satu ke mobile support station yang lain. Karena terbatasnya daya listrik, sebuah mobil host dapat meninggalkan, sebuah sel

dan tiba-tiba tersambung kembali pada sel yang lainnya. Karena itu,

pergerakan antar sel belum tentu di antara sel-sel yang bertetangga. Dalam

sebuah area yang kecil, seperti dalam bangunan kantor, mobile host dapat

terkoneksi dengan jaringan lokal nirkabel yang memberikan konektivitas yang

Page 199: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 185

lebih hemat daripada dengan jaringan seluler yang berarea lebar.

Dimungkinkan pula bagi mobile host yang berdekatan untuk saling

berkomunikasi tanpa intervensi dari mobile support station.

9.5.2 Routing dan Pemrosesan Query Konsekuensi dari model komputasi bergerak adalah bahwa rute antara

sepasang host dapat berubah-ubah setiap waktu jika satu dari dua host

bersifat mobile. Fakta sederhana ini memberi dampak yang dramatis pada

level jaringan, karena alamat jaringan yang berbasis lokasi tidak dapat

digunakan lagi di dalam sistem.

Konsekuensi lainnya dari model komputasi bergerak secara langsung

mempengaruhi pemrosesan query ke basis data. Sebagaimana yang telah

disebuntukan sebelumnya, strategi pemrosesan query terdistribusi akan tergantung juga pada biaya komunikasi. Pergerakan host tentu saja dapat

mengubah biaya komunikasi ini secara dinamis, dan selanjutnya memperumit

proses optimasi. Hal-hal lain yang juga harus dipertimbangkan adalah :

Waktu pakai (user time), yang merupakan komoditas yang paling mahal

dalam banyak aplikasi bisnis.

Waktu koneksi (connection time), yang merupakan satuan biaya di

mana biaya dibebankan oleh operator jaringan seluler.

Volume data, yang menunjukkan satuan transfer data yang dikenai

biaya oleh operator jaringan.

Biaya berdasarkan waktu pakai, yang besarnya bervariasi tergantung

kapan komunikasi dilangsungkan (biaya pada waktu sibuk dan pada

waktu tidak sibuk berbeda).

Energi host terbatas. Seringkali, daya baterai host harus pula dihemat dan diperhitungkan. Daya yang dibutuhkan untuk pengiriman data dan

penerimaan data besarnya berbeda, seperti yang juga kita temui dalam

komunikasi radio.

9.6 Sistem Pencarian Informasi (Information Retrieval)

Sistem Pencarian Informasi (Information-Retrieval Sistem) merujuk

pada sebuah sistem yang terhubung dengan banyak sumber data (yang

umumnya tersimpan dalam dokumen/file) dan menyediakan sarana pada

pemakai untuk melakukan pencarian informasi dengan menggunakan kata

kunci pencarian (keyword). Sistem semacam ini sering dimanfaatkan oleh

aplikasi pencarian data (search engine) di dunia Internet, seperti yang

Page 200: Database

Politeknik Telkom Perancangan Basis Data Relasional

186 Perancangan Basis data

disediakan oleh yahoo.com, google.com, altavista.com dan lain-lain. Bidang

pencarian informasi (information retrieval) sebenarnya telah dikembangkan

sejalan dengan perkembangan dunia basis data. Karena itulah, pembahasan

tentang Sistem Pencarian Informasi tidak bisa dilepaskan dari Sistem Basis

Data yang menjadi pokok bahasan dalam buku ini.

Dalam Sistem Pencarian Informasi, informasi disimpan dan diorganisasi

dalam berbagai dokumen (file), dan diasumsikan bahwa ada banyak dokumen

yang tercipta/tersedia. Proses pengambilan dokumen (yang diperlukan

pemakai) diawali dengan pencarian dokumen-dokumen yang relevan,

berdasarkan masukan dari user, yang umumnya berupa kata kunci (keyword)

atau contoh dokumen.

Salah satu contoh yang umum dari penerapan sistem semacam ini

adalah katalog perpustakaan on-line. Data dalam sistem seperti ini diorganisasi

sebagai kumpulan dokumen. Setiap entri dalam katalog perpustakaan

merupakan sampel (bagian utama) dari dokumen. Seorang pemakai mungkin

ingin mendapatkan dokumen atau kelompok dokumen tertentu. Dokumen-

dokumen yang dicari tersebut biasanya diidentifikasi dengan menggunakan

kata kunci, sebagai contoh "pemrograman pascal" dapat digunakan untuk

mencari semua buku Yang menyinggung/membahas tentang pemrograman

berbahasa Pascal.

Ada sejumlah perbedaan antara model semacam ini dengan model

yang digunakan dalam sistem basis data tradisional :

Sistem Basis Data terbiasa dengan operasi perubahan (update), Yang diikuti dengan kebutuhan akan kendali konkurensi. Aspek ini dianggap

kurang penting (jarang atau bahkan tidak pernah dilakukan) dalam Sistem

Pencarian Informasi. Mirip dengan itu, Sistem Basis Data berhubungan

dengan informasi terstruktur Yang diorganisasi dengan model data yang

relatif kompleks (seperti dalam model relasional atau model berorientasi

objek), sementara Sistem Pencarian Informasi umumnya menggunakan

model yang lebih sederhana, di mana keseluruhan informasi diorganisasi

sebagai kumpulan dokumen yang tidak terstruktur.

Sistem Pencarian Informasi berhubungan dengan sejumlah isu yang belum

sepenuhnya ditangani dalam Sistem Basis Data, seperti problem

penyimpanan dan pengelolaan dokumen yang tidak terstruktur, pencarian

dengan kata kunci (keyword) dan pengambilan dokumen berdasarkan

tingkat relevansi dokumen terhadap query.

Page 201: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 187

9.7 Pengindeksan Dokumen

Struktur indeks yang efektif menjadi penting untuk mendapatkan

pemrosesan query yang efisien dalam Sistem Pencarian Informasi. Sistem ini

dapat mencari dokumen yang berisi keyword tertentu dengan memanfaatkan

inverted index, yaitu indeks yang memetakan setiap keyword K, ke dalam

himpunan S, yang menjadi pengenal (identifier) dokumen-dokumen yang

mengandung K,. Untuk mendukung urutan relevansi berdasarkan kedekatan

keyword, sebuah indeks dapat memberikan tidak hanya identifikasi dokumen,

tetapi juga daftar lokasi ditemukannya keyword tersebut di dalam dokumen.

Karena indeks demikian harus disimpan di dalam disk, organisasi indeks juga

berusaha meminimalkan banyaknya operasi 1/0 dalam melakukan pengambilan

kumpulan dokumen yang berisi keyword tersebut.

9.7.1 Browsing dan Hypertext

Sistem informasi awalnya dibayangkan sebagai sebuah sistem katalog

perpustakaan (yang hanya berisi data deskriptif dari dokumen), di mana

dokumen-dokumen fisiknya (hardcopy) ditempatkan di luar sistem. Akan

tetapi, sejalan dengan peningkatan kapasitas disk yang semakin besar, maka

saat ini Sistem Pencarian Informasi juga dapat digunakan untuk menyimpan

dokumennya sendiri (softcopy). Sebagai hasilnya, akan lebih banyak dokumen

yang dapat dibuat, disimpan dan diakses secara online. Karena itulah, Sistem

Informasi generasi sekarang memungkinkan pemakai untuk menampilkan dokumen yang tersimpan secara utuh dan real-time.

Seorang anggota perpustakaan biasanya menggunakan katalog untuk

mencari sebuah buku. Ketika dia mendapatkan buku tersebut dari raknya,

bagaimanapun juga dia akan terdorong pula untuk mengamati (browse) buku-

buku yang terletak di sekitar buku yang dicarinya. Perpustakaan biasanya

menempatkan buku-buku yang sejenis berdekatan secara fisik satu sama lain.

Untuk mengatur penempatan buku yang berkaitan tersebut,

perpustakaan biasanya menggunakan pengelompokan (klasifikasi) yang

hirarkis. Dengan cara ini, buku-buku yang berkenaan dengan matematika

misalnya, dikelompokkan dan diletakkan berdekatan satu sama lain, begitu

juga buku-buku yang berkaitan dengan komputer, buku-buku yang

berhubungan dengan hukum, dst. Dalam batas-batas tertentu, topik

matematika dan ilmu komputer juga memiliki hubungan yang cukup dekat,

karena itu kelompok buku matematika dan kelompok buku ilmu komputer

juga diletakkan berdampingan. Menjadi kurang wajar jika kelompok buku ilmu

komputer ditempatkan di sebelah kelompok buku tentang busana. Bersama

dengan kelompok buku-buku biologi, fisika, d1l, kumpulan buku matematika

Page 202: Database

Politeknik Telkom Perancangan Basis Data Relasional

188 Perancangan Basis data

dan ilmu komputer bisa membentuk superklas yang sama, yaitu ilmu

pengetahuan (science). Begitu juga pada level di bawahnya, boleh jadi untuk

ilmu komputer terjadi juga pengelompokan yang lebih kecil (semacam sub

kelompok) untuk buku-buku yang berkaitan dengan sistem operasi,

pemrograman, basis data, dan sebagainya. Gambar 14.5 menunjukan

pengelompokan hirarkis tersebut.

Gambar 9-5 Pengelompokan Buku dalam Perpustakaan

Tidak sebagaimana di perpustakaan, dalam sebuah Sistem Pencarian

Informasi, tidak ada satu kebutuhan dan keuntungan yang signifikan untuk

menempatkan dokumen-dokumen yang berkaitan dekat (secara fisik) satu

sama lain. Kecepatan pengaksesan disk cukup cepat untuk bisa berpindah dari

satu lokasi fisik dokumen yang satu ke lokasi dokumen yang lain. Akan tetapi,

sistem semacam ini memerlukan pengorganisasian dokumen secara lojik yang

memungkinkannya ditelusuri/diamati secara bersamaan. Dengan begitu, sistem

juga dapat menggunakan pengklasifikasian hirarkis sebagaimana yang

diterapkan pada sistem perpustakaan, agar ketika isi sebuah dokumen

ditampilkan, maka deskripsi ringkas dari buku-buku yang berhubungan juga

dapat diperlihatkan.

Dalam sebuah Sistem Pencarian Informasi, tidak ada keharusan untuk

mematuhi hirarki secara ketat. Sebuah buku yang berbicara tentang "analisa

numerik" boleh jadi diklasifikasikan di bawah kelompok ilmu komputer dan

sekaligus juga berada di bawah kelompok matematika. Buku-buku dari sebuah

kelompok ditunjuk oleh sebuah kelompok dengan bantuan pointer, yang

merupakan pengidentifikasi buku (identifier).

Sebagai hasil dari fleksibilitas ini, sebuah buku tidak hanya dapat menjadi

anggota dari dua kelompok berbeda, tapi juga sebuah sub kelompok bisa

berada di bawah dua kelompok yang berbeda. Misalnya,sub kelompok

Page 203: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 189

pernrograman yang berada di bawah kelompok ilmu komputer, juga dapat

dipertimbangkan berada di bawah kelompok rekayasa. Dengan begitu, kita

dapat menyatakan klasifikasi hirarki sebagai graph asiklik berarah (directed

acyclic graph/DAG), seperti yang ditunjukkan pada Gambar 14.6. Pada gambar

ini, kelompok buku Pe?nrograman dapat dicapai dan ditelusuri dari banyak

arah.

Gambar 9-6 Pengelompokan DAC dalam Sistem Pencarian Informasi

Dalam menjawab sebuah query yang diberikan, Sistem Pencarian

Informasi tidak hanya dapat inenarnpilkan dokumen-dokumen yang -

berhubungan, tetapi bahkan juga menampilkan kelompok-kelompok hirarkis

yang berhubungan. Selanjutnya pemakai dapat melihat semua buku (atau sub

kelompok) yang menjadi anggota/bagian dari sebuah kelompok.

9.8 World Wide Web (WWW)

Informasi pada Web disimpan di dalam sebuah dokumen. Dokumen–

dokumen ini yang menjadi unsur utama di dalam Web yang dapat dinyatakan

dalam beberapa tipe. Tipe yang paling populer adalah dokumen hypertext

yang disusun menurut bahasa khusus seperti Hypertext Mark Up Language

(HTML). Dokumen HTML ini terdiri atas teks, spesifikasi jenis huruf dan

instruksi format lainnnya, dan didalamnya juga terdapat link ke dokumen

lainnya atau ke halaman lain pada dokumen yang sama dengan menggunakan

suatu protokol yang disebut dengan Hypertext Transfer Protocol (HTTP).

Dokumen dan lokasi antar dokumen ini diidentifikasi oleh sebuah alamat yang

disebut Uniform Resourcer Locator (URL) .

Page 204: Database

Politeknik Telkom Perancangan Basis Data Relasional

190 Perancangan Basis data

9.8.1 WEB Sebagai Bentuk Aplikasi Basis Data

Ketika banyak vendor DBMS memberikan solusi untuk berbagai

konektifitas basis data, termasuk didalamnya konektifitas ke aplikasi berbasis

web, hal ini membuat beberapa organisasi ingin bergerak untuk menggunakan

aplikasi basis data berbasis web (Web-Based Application).

Web-Based Application merupakan sebuah aplikasi yang memanfaatkan

teknologi World Wide Web sebagai Interface-nya, yang berarti data yang

diinginkan dapat diakses dan diubah dengan menggunakan sebuah Web

Browser. Ini sangat menguntungkan sebuah perusahaan karena aplikasi ini

dapat dijalankan di sembarang komputer, selama komputer tersebut memiliki

Web Browser terpasang di dalamnya.

Beberapa keuntungan lainnya dari Web-Based Applications ialah:

1. Data dapat diakses kapan saja dan dari mana saja asal terhubung

dengan internet (availability tinggi).

2. Interoperability tinggi.

3. Mudah dipakai, pemakai cukup melakukan point & click,

4. Murah karena tools untuk melakukan browsing banyak tersedia dan

gratis.

Proses untuk aplikasi berbasis Web biasanya lebih banyak dilakukan di

server. Hasil proses itulah yang kemudian dikirim ke client melalui HTTP

dalam bentuk halaman-halaman Web. Selain Web server dan browser, aplikasi

berbasis Web tidak jarang melibatkan basis data. Dalam kasus ini Web server

dengan suatu mekanisme dapat mengakses basis data dan kemudian mengolah

data lalu dikirim ke client. Dilihat dari kedekatan program aplikasi dengan

penyimpanan data, sisitem ini dapat dikategorikan sebagai sistem three-tier.

Dalam pemrograman three-tier, aplikasi dipecah menjadi tiga bagian, yaitu

antarmuka pengguna, computational logic, dan penyimpanan data (basis data).

Untuk aplikasi three-tier berbasis Web, browser di client berfungsi sebagai

antarmuka pengguna, Web server akan melakukan computational logic, dan

program basis data, berfungsi sebagai penyimpan data. Secara umum skema aplikasi three-tier berbasis Web dapat dilihat pada Gambar 14.7. Pada gambar

tersebut penomoran tier dihitung dari antarmuka pengguna.

Page 205: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 191

Gambar 9-7 Arsitektur Web

Adanya antar muka antara web dan basis data menjadi penting dikarenakan

dua alasan yaitu :

1. Bersamaan dengan adanya pertumbuhan perdagangan elektronik atau E-

Commerce, pengolahan transaksi harus dapat dihubungkan dengan web.

Para pemakai berinteraksi dengan basis data secara tidak langsung melalui

serangkaian interaksi dokumen HTML yang kemudian dikirim sebagai

reaksi untuk server dan selanjutnya digunakan sebagai parameter oleh

program di server untuk melakukan pengolahan transaksi tertentu pada

basis data.

2. Keterbatasan yang dimiliki oleh dokumen HTML, seperti :

a) Pemakaian dokumen web yang tetap tidak memungkinkan

penampilan disesuaikan dengan keinginan pemakai, misalnya sebuah

perusahaan mungkin menginginkan materi promosinya disesuaikan

dengan keinginan pembeli.

b) Pada saat data di suatu basis data mengalami perubahan, maka

dokumen–dokumen web yang melibatkan data yang sama menjadi

tidak diperbaharui kembali jika tidak segera disesuaikan. Hal ini akan

semakin merepotkan jika dokumen tersebut tersebar di sejumlah

lokasi.

Untuk mengatasi keterbatasan ini maka dibuatlah suatu dokumen web yang

lebih dinamis dengan terlebih dahulu membuat antar muka web dengan

basis data. Sehingga pada saat dokumen diminta oleh pemakai, sebuah

program di web server akan dieksekusi untuk menjalankan operasi queri ke

basis data dan membuat dokumen sesuai dengan hasil queri tersebut.

Dengan mekanisme ini maka informasi yang diinginkan oleh pemakai dapat

terefleksi dengan baik.

Page 206: Database

Politeknik Telkom Perancangan Basis Data Relasional

192 Perancangan Basis data

Rangkuman

1. Secara umum aplikasi-aplikasi basis data dapat kita bedakan kedalam

dua kelompok, yaitu pemrosesan transaksi (transaction processing)

dan pendukung keputusan (decision support). 2. Secara sederhana Data Mining merujuk pada upaya pencarian

informasi yang paling terkait, atau "menemukan pengetahuan", dari

sejumlah besar data.

3. Dalam Data Mining, yang terpenting dan, sekaligus tersulit dari

penjelasan di atas adalah bagaimana aturan-aturan (yang

merepresentasikan pengetahuan) dari basis data tersebut dapat kita

peroleh.

4. Data warehouse memberikan pemakai sebuah akses ke data yang

terkonsolidasi, sehingga query untuk pengambilan keputusan menjadi

lebih mudah untuk ditulis.

5. Basis Data Spasial ditujukan bagi penyimpanan data yang berkaitan

dengan lokasi-lokasi dan ruang geometric, dan mendukung query dan

penggunaan indeks yang efisien berdasarkan data lokasi/ruang

tersebut.

6. Basis Data Geografis telah banyak dimanfaatkan, seperti pada sistem

navigasi kendaraan, sistem informasi jaringan distribusi untuk instalasi

publik (telepon kabel, listrik dan air), demikian juga sistem informasi

yang banyak digunakan untuk ahli lingkungan dan perencanaan.

7. Salah satu pendekatan dalam pembentukan basis data untuk objek-

objek multimedia adalah dengan memanfaatkan basis data untuk

menyimpan atribut-atribut deskriptif dan untuk menyimpan informasi

track dari file di mana objek-objek multimedia tersebut disimpan

secara fisik.

8. Konsekuensi dari model komputasi bergerak adalah bahwa rute

antara sepasang host dapat berubah-ubah setiap waktu jika satu dari

dua host bersifat mobile. Konsekuensi lainnya dari model komputasi

bergerak secara langsung mempengaruhi pemrosesan query ke basis

data.

Page 207: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 193

9. Sistem Pencarian Informasi (Information-Retrieval Sistem) merujuk

pada sebuah sistem yang terhubung dengan banyak sumber data

(yang umumnya tersimpan dalam dokumen/file) dan menyediakan

sarana pada pemakai untuk melakukan pencarian informasi dengan

menggunakan kata kunci pencarian (keyword).

10. Web-Based Application merupakan sebuah aplikasi yang

memanfaatkan teknologi World Wide Web sebagai Interface-nya, yang

berarti data yang diinginkan dapat diakses dan diubah dengan

menggunakan sebuah Web Browser.

Page 208: Database

Politeknik Telkom Perancangan Basis Data Relasional

194 Perancangan Basis data

Kuis Benar Salah

1. Suatu pola dari hasil pengolahan data dapat digunakan sebagai

alat bantu pengambilan keputusan. 2. Bahasa query basis data sangat cocok untuk kepentingan

performansi dalam analisis data statistikal yang rinci.

3. Data yang banyak tidak dapat memberi makna tertentu (knowledge)

bagi pemiliknya.

4. Kita dapat dengan mudah membuat cross tab dengan

menggunakan perintah query. 5. Frekuensi pengambilan data dari data sumber ke dalam

datawarehouse biasanya juga diatur secara berkala, di luar waktu

sibuk, misalnya pada malam hari.

6. Salah satu contoh aplikasi basis data spasial adalah google maps.

7. Fungsionalitas basis data akan menjadi penting pada saat jumlah

objek multimedia yang disimpan tersebut sudah semakin sedikit. 8. Konsekuensi dari model komputasi bergerak adalah bahwa rute

antara sepasang host dapat berubah-ubah setiap waktu jika satu dari

dua host bersifat mobile.

9. Salah satu contoh yang umum dari penerapan sistem pencarian

informasi ini adalah katalog perpustakaan on-line.

10. Dokumen-dokumen yang dikelola oleh sistem pencarian informasi

pada umumnya telah terstruktur dengan baik.

Page 209: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 195

Pilihan Ganda

1.

Berikut ini hal yang benar mengenai Sistem Pendukung Keputusan

(Decision Support Sistem), kecuali…

A.

Selalu membutuhkan data

transaksi yang besar D. Hanya merupakan alat bantu

B. Membutuhkan model E. Salah semua

C.

Memiliki sifat tidak

terstruktur

2. Berikut ini hal yang benar mengenai Data Mining, kecuali…

A.

Bertujuan untuk menemukan

knowledge D.

Tidak pernah membutuhkan

intervensi manusia

B. Menggunakan metode tertentu E. Salah semua

C. Mendeteksi pola

3. Tujuan dari pembangunan data warehouse kecuali…

A. Subject oriented D. Summarized

B. Time series E. Salah semua

C. Kemungkinan redundan

4.

Beberapa hal yang harus dipertimbangkan dalam membangun data

warehouse kecuali...

A. Sumber data D. Jenis data

B. Skema konsolidasi E. Jenis domain

C. Mekanisme perubahan

5. Berikut ini hal yang benar mengenai Basis Data Spasial, kecuali…

A.

Menangani hal-hal yang

berhubungan dengan ruangan/tempat D. Menggunakan indeks R-tree

B. Menggunakan indeks B-tree E. Salah semua

C.

Dapat diimplementasikan untuk

sistem navigasi

Page 210: Database

Politeknik Telkom Perancangan Basis Data Relasional

196 Perancangan Basis data

6 Berikut ini hal yang benar mengenai raster, adalah…

A. Kumpulan data transaksional D. Salah semua

B.

Membutuhkan penyimpanan

besar E. Benar semua

C.

Tidak dapat menyimpan data 3

dimensi

7 Jenis-jenis aplikasi basis data spasial berikut ini kecuali…

A

Sistem informasi jaringan kabel

telepon D Aplikasi perancangan IC

B Peta on line E Global Positioning Sistem

C Search engine

8 Berikut ini hal yang benar mengenai information retrieval, kecuali…

A

Menghubungkan banyak sumber

data D Benar semua

B

Membutuhkan kata kunci untuk

pencarían E Salah semua

C Effective indexing

9 Jenis-jenis aplikasi information retrieval berikut ini adalah…

A Machine learning D TPS

B GIS E DSS

C Search engine

10

Hal-hal yang harus dipertimbangkan dalam model komputasi bergerak

kecuali…

A connection time D Energy

B user time E Salah semua

C cost

Page 211: Database

Politeknik Telkom Perancangan Basis Data Relasional

Perancangan Basis data 197

Latihan

1. Sebuntukan dan jelaskan mengenai sifat-sifat yang dimiliki oleh DSS!

2. Cari dan jelaskan aplikasi yang memanfaatkan basis data spasial!

Page 212: Database

Politeknik Telkom Perancangan Basis Data Relasional

198 Perancangan Basis data

Daftar Pustaka

1. Raghu Ramakrishnan / Johannes Gehrke “Database Management

System” Second edition.

2. Silberschatz-Korth-Sudarshan: Database Sistem Concepts, Fourth

Edition.2001

3. Handbook Telkom Polytechnic : Database Management Systems

4. Oracle Database 10g: Administration Workshop I, volume I: Student

Guide