Anda di halaman 1dari 207

Universitas Esa Perancangan Basis Data Relasional

Unggul

PERANCANGAN BASIS DATA RELASIONAL

Penulis

Arief Ichwani, M.T.

Tahun 2018

Perancangan Basis data i


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 Universitas Esa Unggul. Course ware ini ditujukan
bagi mahasiswa program studi sarjana.
Course ware ini terdiri dari sepuluh bab, yaitu Pengenalan Basis
Data, EntityRelationship 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
Universitas Esa Unggul.
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.

Jakarta, November 2018

Penulis,

Perancangan Basis data iii


Perancangan Basis Data Relasional

DAFTAR ISI

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


DAFTAR ISI ..............................................................................iv
Daftar Gambar..........................................................................ix
Daftar Tabel ............................................................................ xii
1 PENGENALAN BASIS DATA ............................... 1
1.1. Data dan Informasi ........................................................... 1
1.2. Siklus Informasi ................................................................. 2
1.3. Pentingnya data dan informasi .......................................... 2
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 .......................................... 5
1.7. Abstraksi Data .................................................................. 6
1.8. Model Basis Data .............................................................. 7
1.9. Basis Data Relasional ........................................................ 9
1.10. Alternative Terminology ................................................ 10
1.11. Perancangan Basis Data Relational ................................. 11
1.12. Faktor penting menyangkut pemodelan data dari dunia
nyata................................................................................ 11
1.13. Metodologi Perancangan Basis Data .............................. 12
1.14. Bahasa Basis Data ........................................................... 14
2 ENTITYRELATIONSHIP MODEL ...........................21
2.1 ER Sebagai Salah Satu Pemodelan Konseptual Basis Data
........................................................................................ 21
2.2 Entitas dan Himpunan Entitas ......................................... 22
2.3 Atribut ............................................................................ 23
2.4 Relasi ............................................................................... 25
2.5 Derajat Himpunan Relasi ................................................ 26
2.6 Kardinalitas Relasi ........................................................... 28
2.7 Key .................................................................................. 30
2.8 Diagram ER ..................................................................... 31
iv Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

2.9 Constraint Cardinalitas .................................................. 31


3 KONVERSI ER KE TABEL ...................................40
3.1 Himpunan Entitas Lemah ................................................ 40
3.2 Spesialisasi ....................................................................... 41
3.3 Generalisasi..................................................................... 42
3.4 Agregasi .......................................................................... 42
3.5 Ringkasan notasi simbol di ER ........................................ 44
3.6 Penurunan skema ER ke Tabel ....................................... 45
3.7 Representasi Atribut sebagai Kolom .............................. 45
3.8 Representasi Himpunan Entitas sebagai Tabel ............... 46
3.9 Representasi Relasi (* pada kardinalitas N to N)........... 47
3.10 Hubungan kardinalitas dengan tabel yang terbentuk...... 47
3.11 Representasi Spesialisasi (IS A)....................................... 48
3.12 Representasi Agregasi .................................................... 49
4 NORMALISASI ......................................................57
4.1 Definisi Normalisasi ........................................................ 57
4.2 Tujuan Normalisasi ......................................................... 57
4.2.1 Update Anomaly ............................................................... 58
4.2.2 Insertion Anomaly .......................................................... 59
4.2.3 Deletion Anomaly........................................................... 59
4.3 The Three Keys .............................................................. 60
4.4 Functional Dependencies ............................................... 62
4.4.1 Partial Funcional Dependency ........................................ 63
4.4.2 Transitive Functional dependency ..................................... 64
4.5 Bentuk Normal dan Langkah-Langkah Normalisasi ....... 65
4.5.1 Bentuk Normal Pertama (1st Normal Form) ................ 65
4.5.2 Bentuk Normal Ke Dua (2nd Normal Form) ................ 67
4.5.3 Bentuk Normal Ke Tiga (3rd Normal Form)................. 69
4.5.4 Bentuk Normal Boyce Codd (BC Normal Form) ......... 71
4.5.5 Bentuk-Bentuk Normal Lainnya ..................................... 71
4.6 Denormalisasi ................................................................. 71
5 ALJABAR RELASIONAL ......................................78

Perancangan Basis data v


Perancangan Basis Data Relasional

5.1 Query dan Aljabar Relasional ......................................... 78


5.2 Operasi Select ................................................................ 80
5.3 Operasi Project .............................................................. 80
5.4 Operasi Cartesian Product ............................................ 81
5.5 Operasi Unio .................................................................. 82
5.6 Operasi Set Difference ................................................... 82
5.7 Operasi Intersection....................................................... 84
5.8 Operasi rename .............................................................. 84
5.9 Join .................................................................................. 84
5.10 Fungsi Agregasi ............................................................... 86
5.11 Operasi Division ............................................................. 86
6 BAHASA BASIS DATA ........................................90
6.1 Pendahuluan .................................................................... 91
6.2 Standarisasi SQL ............................................................. 91
6.3 Membangun Basidata ...................................................... 93
6.3.1 Membuat BasisData ........................................................ 93
6.3.2 Membuat Tabel Data ...................................................... 93
6.3.3 Melakukan Perubahan pada Tabel ................................ 100
6.4 Maintenance Data pada Basisdata ................................ 102
6.4.1 Memasukan Data .......................................................... 102
6.4.2 Merubah Data ............................................................... 104
6.4.3 Menghapus Data ........................................................... 104
6.5 Mengakses Basisdata .................................................... 105
6.5.1 Menganti Judul Kolom .................................................. 106
6.5.2 Function pada SQL ....................................................... 107
6.5.3 Menentukan Kondisi ..................................................... 107
6.5.4 Menguruntukan Data .................................................... 109
7 BAHASA BASIS DATA LANJUTAN ................116
7.1 Fungsi Aggregation........................................................ 116
7.2 Query dari Beberapa Tabel .......................................... 121
7.3 Nama Alias.................................................................... 123
7.4 Bentuk-bentuk Perintah Join ........................................ 124
7.4.1 LEFTJOIN ....................................................................... 125
vi Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

7.4.2 RIGHTJOIN .................................................................... 126


7.4.3 FULLJOIN ....................................................................... 127
7.5 Subquery ....................................................................... 128
8 PENGENALAN ARSITEKTUR BASIS DATA .142
8.1 Pendahuluan .................................................................. 142
8.2 Struktur DBMS ............................................................. 142
8.3 Produk-produk DBMS .................................................. 144
8.4 Database Oracle ........................................................... 144
8.4.1 Arsitektur Database Oracle.......................................... 145
8.4.2 Struktur Database Oracle ............................................. 145
8.4.3 Oracle Instance ............................................................. 146
8.4.4 Oracle MemoryStructure ................................................ 147
8.4.5 Oracle Processes Structure ............................................. 148
8.4.6 Oracle StorageStructure ................................................. 150
8.5 Arsitektur Sistem database........................................... 151
8.5.1 Centralized Sistems ...................................................... 152
8.5.2 Client-Server Sistems .................................................... 153
8.5.3 Parallel Sistems ............................................................. 154
8.5.4 Distributed Sistems ...................................................... 155
8.5.5 Network types ............................................................. 156
9 APLIKASI BASIS DATA .....................................162
9.1 Pendahuluan .................................................................. 162
9.2 Sistem Pendukung Keputusan (Decision-Support Sistem)
...................................................................................... 163
9.2.1 Analisis Data ................................................................. 165
9.2.2 Penggalian Data (Data Mining) ...................................... 168
9.2.3 Penggudangan Data (Data Warehousing) ...................... 169
9.3 Basis Data Spasial (Spatial Databases) .......................... 171
9.3.1 Representasi Informasi Geometris ............................... 173
9.3.2 Basis Data Perancangan ................................................ 173
9.3.3 Data Geografis .............................................................. 174
9.3.4 Representasi Data Geografis ........................................ 176

Perancangan Basis data vii


Perancangan Basis Data Relasional

9.3.5 Aplikasi Data Geografis ................................................ 176


9.4 Basis Data untuk Multimedia (Multimedia Databases) . 177
9.4.1 Pengambilan Berbasis Kesamaan (Similarity-Based
Retrieval) ...................................................................... 178
9.4.2 Data sinambung (Continuous-Media Data) ..................... 179
9.5 Basis Data Bergerak (Mobility and Personal Databases)
...................................................................................... 179
9.5.1 Model Komputasi Bergerak .......................................... 180
9.5.2 Routing dan Pemrosesan Query .................................... 180
9.6 Sistem Pencarian Informasi (Information Retrieval) .... 181
9.7 Pengindeksan Dokumen ............................................... 182
9.7.1 Browsing dan Hypertext ............................................... 183
9.8 World Wide Web (WWW) ........................................ 185
9.8.1 WEB Sebagai Bentuk Aplikasi Basis Data ..................... 185
Daftar Pustaka ..............................................................194

viii Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Daftar Gambar

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


Gambar 1-2 Perkembangan Database .......................................... 4
Gambar 1-3 Komponen DBMS .................................................... 6
Gambar 1-4 Abstraksi Data. ......................................................... 7
Gambar 1-5 Model Database ....................................................... 8
Gambar 1-6 Ilustrasi sebuah relasi ............................................. 10
Gambar 1-7 Terminologi ............................................................ 10
Gambar 1-8 Pendekatan Konvensional ...................................... 13
Gambar 1-9 Pendekatan ER ....................................................... 14
Gambar 2-1 Himpunan Entitas Mahasiswa ................................ 22
Gambar 2-2 Contoh himpunan entitas ........................................ 23
Gambar 2-3 Gambaran Himpunan entitas di Tabel .................... 23
Gambar 2-4 Contoh Atribut Komposit ....................................... 24
Gambar 2-5 Entitas mahasiswa dengan Atribut ......................... 25
Gambar 2-6 Relasi di gambarkan dengan belah ketupat ............ 25
Gambar 2-7 Himpunan Entitas Mahasiwa Ber-Relasi dengan
Himpunan Entitas Organisasi ..................................................... 26
Gambar 2-8 Contoh Derajat Relasi Unary ................................. 26
Gambar 2-9 Contoh Derajat Relasi Binary ................................ 27
Gambar 2-10 Contoh Derajat Relasi Ternary............................. 27
Gambar 2-11 Relasi dengan Kardinalitas 1 ke 1 ........................ 28
Gambar 2-12 Relasi dengan Kardinalitas 1 ke Banyak .............. 29
Gambar 2-13 Relasi dengan Kardinalitas Banyak ke 1 .............. 29
Gambar 2-14 Relasi dengan Kardinalitas Banyak ke Banyak ... 30
Gambar 2-15 Contoh Diagram ER ............................................. 31
Gambar 2-16 Relasi 1 ke 1 ......................................................... 32
Gambar 2-17 Relasi 1 ke banyak ................................................ 32
Gambar 2-18 Relasi Banyak ke 1 ................................................ 32
Gambar 2-19 Relasi Banyak ke Banyak ....................................... 33

Perancangan Basis data ix


Perancangan Basis Data Relasional

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


Gambar 3-2 Contoh Spesialisasi ................................................ 42
Gambar 3-3 Contoh Agregasi ..................................................... 43
Gambar 3-4 Relasi di pandang sebagai Himpunan Entitas ........ 43
Gambar 3-5 Ringkasan Notasi pada Diagram ER ...................... 44
Gambar 3-6 Atribut multivalued di pecah menjadi entitas baru. 45
Gambar 3-7 Atribut himpunan entitas kuat di representasikan
kedalam tabel .............................................................................. 46
Gambar 3-8 Penurunan Himpunan Entitas Lemah ke tabel ....... 46
Gambar 3-9 Penurunan Kardinalitas relasi N to N menjadi Tabel
.................................................................................................... 47
Gambar 3-10 Representasi spesialisasi ke tabel metoda 1 ......... 48
Gambar 3-11 Representasi spesialisasi ke tabel metoda 1 ......... 49
Gambar 3-12 Representasi Agregasi untk tabel mata kuliah,
dosen dan Dosen mengajar mt kul ............................................. 50
Gambar 3-13 Representasi Agregasi untuk tabel Mahasiwa dan
Mahasiwa Mengambil Mtkul ..................................................... 50
Gambar 4-1 Diagram Normalisasi ............................................. 58
Gambar 7-1 Entitas Mahasiswa ................................................... 94
Gambar 7-2 Entitas Kurikulum ................................................... 95
Gambar 7-3 Entitas Mahasiswa dan Jurusan ............................... 96
Gambar 7-4 Relasi Tabel Mahasiswa dan Tabel Jurusan ............ 96
Gambar 9-1 Struktur DBMS secara umum .............................. 143
Gambar 9-2 Struktur Database Oracle .................................... 146
Gambar 9-3 Oracle Instance ..................................................... 147
Gambar 9-4 Oracle Memory ..................................................... 147
Gambar 9-5 Oracle Processes ................................................... 148
Gambar 9-6 Oracle Storage ...................................................... 151
Gambar 9-7 Database Functionality .......................................... 152
Gambar 9-8 Centralized Sistem ............................................... 152
Gambar 9-9 Client-Server Sistem .............................................. 153
Gambar 9-10 Parallel Sistems ................................................... 155
Gambar 9-11 Distributed Sistem .............................................. 155

x Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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


Gambar 10-2 Bentuk-bentuk Geografis. dan Representasinya 172
Gambar 10-3 Objek-objek 3 Dimensi yang Lebih Kompleks .. 174
Gambar 10-4 Objek sebagai Data Raster dan Data Vektor ...... 175
Gambar 10-5 Pengelompokan Buku dalam Perpustakaan ....... 184
Gambar 10-6 Pengelompokan DAC dalam Sistem Pencarian
Informasi .................................................................................. 185
Gambar 10-7 Arsitektur Web ................................................... 186

Perancangan Basis data xi


Perancangan Basis Data Relasional

Daftar Tabel

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


Tabel 4-2 Contoh Insert Anomaly .............................................. 59
Tabel 4-3 Contoh Delete Anomaly............................................. 59
Tabel 4-4 Tabel Mata Kuliah ..................................................... 60
Tabel 4-5 Contoh Tabel .............................................................. 62
Tabel 4-6 Tabel Nilai ................................................................. 64
Tabel 4-7 Tabel Mahasiswa ....................................................... 65
Tabel 4-8 Versi pertama ............................................................. 66
Tabel 4-9 Versi ke dua ............................................................... 66
Tabel 4-10 Contoh Tabel T-1 ..................................................... 67
Tabel 4-11 Contoh Tabel T-2 ..................................................... 67
Tabel 4-12 Contoh T-1hasil ........................................................ 68
Tabel 4-13 Contoh Tabel T-1-1 .................................................. 68
Tabel 4-14 Contoh Tabel T-1-2 .................................................. 69
Tabel 4-15 Contoh Tabel T-1-3 .................................................. 69
Tabel 4-16 Contoh tabel T-1-1 ................................................... 70
Tabel 4-17 Contoh Tabel T-1-1-1............................................... 70
Tabel 4-18 Contoh Tabel T-1-1-2............................................... 70
Tabel 7-1 Tabel Data Mahasiswa................................................ 94
Tabel 7-2 Data Kurikulum .......................................................... 95
Tabel 7-3 Tabel Data Jurusan ..................................................... 96
Tabel 7-4 Tabel Data Mahasiswa ................................................ 96
Tabel 7-10 Jenis Data pada Oracle............................................. 98
Tabel 7-11 Data Jurusan ........................................................... 103
Tabel 7-12 Data Mahasiswa ...................................................... 103
Tabel 7-13 Data Jurusan ........................................................... 105
Tabel 7-14 Data Mahasiswa ...................................................... 105
Tabel 7-15 Output Select Jurusan ............................................ 106
Tabel 7-16 Output Select Jurusan ............................................ 106
Tabel 7-17 Operator Kondisi ..................................................... 108
Tabel 7-18 Output Select Mahasiswa menggunakan Where ... 109
xii Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

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


Tabel 7-20 Contoh Perintah Like ............................................. 109
Tabel 7-21 Output Order By Tabel Mahasiswa ....................... 110
Tabel 7-22 Output Order By DESC Tabel Mahasiswa ............ 110
Tabel 7-23 Output Order By Dua Kolom ............................... 110
Tabel 8-1 Data Kurikulum ........................................................ 118
Tabel 8-2 Hasil Query Jumlah Matakuliah per Semester........... 119
Tabel 8-3 Hasil Query Jumlah Sks per Semester....................... 119
Tabel 8-4 Hasil Query Jumlah matakuliah dan Sks per Semester
.................................................................................................. 119
Tabel 8-5 Hasil Query Kelompok Matakuliah ........................... 120
Tabel 8-6 Perbandingan Perintah SQL untuk Limit .................. 121
Tabel 8-7 Mahasiswa dan tabel Jurusan .................................... 121
Tabel 8-8 Output Relasi antar Tabel ........................................ 122
Tabel 8-9 Pengarang ................................................................. 124
Tabel 8-10 Penerbit .................................................................. 125
Tabel 8-11 Hasil Relasi Left Join ................................................ 126
Tabel 8-12 Hasil Relasi Right Join .............................................. 127
Tabel 8-13 Hasil Relasi Full Join................................................. 128
Tabel 8-14 Data Penerbit ......................................................... 129
Tabel 8-15 Data Buku............................................................... 129
Tabel 8-16 Data Pengarang ...................................................... 130
Tabel 8-17 Hasil Query Operator IN .......................................... 130
Tabel 8-18 Hasil Query Operator Not IN ................................... 131
Tabel 8-19 Hasil Query Operator Exists ..................................... 132
Tabel 8-20 Hasil Query Operator Not Exists .............................. 133
Tabel 8-21 Hasil Query Operator Komparasi.............................. 133
Tabel 8-22 Hasil Query Operator ANY ....................................... 134
Tabel 10-1 Contoh Cross-Tab ................................................. 166
Tabel 10-2 Tabel Relasional ..................................................... 167

Perancangan Basis data xiii


Universitas Esa Perancangan Basis Data Relasional
Unggul

1 PENGENALAN BASIS DATA

Overview

Dalam kehidupan sehari-hari kita sering membahas mengenai data dan


informasi. Informasi berasal darikumpulan 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.

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.

Perancangan Basis data 1


Perancangan Basis Data Relasional

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-1Siklus informasi

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

2 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 3


Perancangan Basis Data Relasional

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

Gambar 1-2 Perkembangan Database

4 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 5


Perancangan Basis Data Relasional

 Pemakai
 Aplikasi lain

Gambar 1-3Komponen 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:

6 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.
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-4Abstraksi 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.

Perancangan Basis data 7


Perancangan Basis Data Relasional

 Network
Relationship dibuat menggunakan linked list (pointer). Berbeda dengan
model hierarchical satu anak dapat memiliki beberapa induk. Model
ini memiliki fleksibilitas yang tinggi.
 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 Databaseadalah 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++.

Gambar 1-5 Model Database

8 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 MySQLAB.
 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.

Perancangan Basis data 9


Perancangan Basis Data Relasional

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.Terminologi yang terakhir adalah pandangan berorientasi record (record-

10 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 11


Perancangan Basis Data Relasional

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.

12 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Implementasi
Pembuatan melalui DBMS
Normalisasi
REAL Model Skema Basis
WORLD Data Basis Data
Model
Relasi Data
relasi

Gambar 1-8Pendekatan 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

Perancangan Basis data 13


Perancangan Basis Data Relasional

 Transformasi menjadi model relasi


 Nomalisasi
 Implementasi dengan menggunakan DBMS tertentu (Access, SQL,
dsb.). Struktur tabel, atribut kunci, aturan integritas, relasi antar tabel
Imple-
mentasi
Normalisasi melalui
Pembuatan
Model Model Skema DBMS
REAL Data Data Basis Basis
WORLD E-R Relasi Data Data
Model
Kon-
septual

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

14 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 15


Perancangan Basis Data Relasional

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

16 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 17


Perancangan Basis Data Relasional

Pilihan Ganda

1. Berikut ini merupakan hasil pengolahan data, kecuali…


D
A. Informasi . DBMS
B. Pengetahuan E. Wisdom
C. Kebijakan

Penyimpanan data menggunakan file memiliki permasalahan sebagai berikut


2. kecuali…
A. Data redundancydan inconsistency D. Security
B. Isolation E. Integrity
C. Simplicity

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


3. sebagai berikut kecuali…
A. Pendefinisian masalah D. Identifikasi entitas dan relasi
B. Businessprocess 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
B. Heuristik E. Object oriented

18 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

C. Network

7 Berikut ini termasuk komponen basis data, kecuali…


A Hardware D Tupperware
B Operating sistema E Software
C Brainware

8 Hal yang benar mengenai level view pada abstraksi data adalah…
Merupakan level terendah
A abstraksi D Berhubungan langsung dengan user
Dapat direpresentasikan dengan Salah satu level konseptual
B diagram ER. E abstraksi data
Berhubungan dengan indexing,
C 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

Perancangan Basis data 19


Perancangan Basis Data Relasional

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?

20 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

2 ENTITYRELATIONSHIP 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.

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.

Perancangan Basis data 21


Perancangan Basis Data Relasional

2.2 Entitas dan Himpunan Entitas


Definisi entitas adalah objek yang dirasa penting di sistem tersebut, yg
bisa berupa :
– Objek Konkrit konkrit = fisik
Contoh : Orang, Buku
– Objek Abstrak abstrak = tidak fisik
Contoh : Jadwal, Pinjaman, Tabungan

Bambangadalah salah satu contoh dari entitas. Sedangkan bambang,


susi, sumarno merupakan himpunan entitas orang. Dapat kita katakan
bahwaHimpunan 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.

Entitas orang
Bambang
Susi

Sumarno
entitas orang

Mahasiswa
Himpunan entitas orang yang mempunyai kesamaan karakteristik yaitu nim, prodi,
dsb membentuk himpunan entitas ‘mahasiswa’

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.

22 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Atribut Entitas

Entitas 1
Entitas 2
Entitas 3
MAHASISWA

Gambar 2-3 Gambaran Himpunan entitas di Tabel

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 yangtidak bisa dibagi menjadi
bagian yg lebih kecil lagi. Contoh atribut simple adalah Jenis Kelamin.
Atribut Compositeyaitu suatu atribut yangdapat di bagi menjadi
beberapa bagian. Contohatribut compositeNama dapat di bagi
menjadi nama depan dan nama belakang.

Perancangan Basis data 23


Perancangan Basis Data Relasional

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

– Derived attribute
Derived Attribute yaitu suatu atribut yang nilainya didapatkan dari
hasil pengolahan atribut lain. Contoh atribut derivedadalah 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 gambarelips.Atribut kunci biasa


di beri tanda # atau garis bawah.Contoh himpunan entitas mahasiswa
mempunyai atribut nim sebagai key, prodi, nama, ipk, dsb

24 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

ipk
prodi

nama #nim

Mahasiswa

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.

Relasi mahasiswa mempunyai organisasi

Mahasiswa mempunyai Organisasi

memp
Gambar 2-6 Relasi di gambarkan dengan belah ketupat
unyai
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,
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

Perancangan Basis data 25


Perancangan Basis Data Relasional

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 trackrecordorganisasi mahasiwa tersebut selama belajar di kampus dari
semester ke semester berikutnya.

Berikut merupakan contoh gambaran antara entitas mahasiwa dan


entitas organisasi.
Susi Organisai LINUX
Sumarno

Bambang
Organisai Pecinta Satwa

Sumarno
Mempunyai organisasi Pecinta Satwa
Di semester 1 tahun ajaran 2008/2009

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)

Gambar 2-8 Contoh Derajat Relasi Unary

26 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

 Ternary (Me-relasi-kan 3 entitas)

Gambar 2-10 Contoh Derajat Relasi Ternary

Perancangan Basis data 27


Perancangan Basis Data Relasional

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

28 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

 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-13Relasi dengan Kardinalitas Banyak ke 1

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

Perancangan Basis data 29


Perancangan Basis Data Relasional

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-14Relasi 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
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

30 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

 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.
#kd_org
nama kota nama
#nim

Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
yai ER
Gambar 2-15 Contoh Diagram

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

2.9 Constraint Cardinalitas


Dalam menggambarkam kardinalitas pada Diagram ER, digunakan
garis panah (->) yang menunjukkan “Satu” atau garis biasa (—) yang
menunjukkan “Banyak”.

Perancangan Basis data 31


Perancangan Basis Data Relasional

#kd_org
nama kota nama
#nim

Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun1 ke 1
Gambar 2-16Relasi
yai
1 Mahasiswa hanya boleh menjabat 1 jabatandalam 1 periode tertentu.
1 Jabatan hanya boleh di jabat oleh 1 mahasiswadalam 1 periode tertentu.

#kd_org
nama kota nama
#nim

Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
Gambar 2-17Relasi 1 ke banyak
yai
1 Jabatan hanya boleh dijabat oleh 1 mahasiswadalam 1 periode
tertentu dan 1 organisasi tertentu.
1 Mahasiswa boleh menjabat 1 jabatandalam1 periode tertentu di
organisasi yang berbeda.

#kd_org
nama kota nama
#nim

Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
mpun
Gambar 2-18Relasi Banyak ke 1
yai
32 Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

1 Jenis Beasiswa boleh diberikan untuk banyak mahasiwa


1 Mahasiwa hanya boleh mendapatkan 1 Jenis beasiwa

#kd_org
nama kota nama
#nim

Mahasiswa Organisasi
alamat mem
prodipuny
ipk jenis
umur aime
Gambar 2-19Relasi mpun
Banyak ke Banyak
yai
1 Mahasiswa boleh mengambil banyak mata kuliah
1 Mata kuliah boleh diambil banyak mahasiwa

Perancangan Basis data 33


Perancangan Basis Data Relasional

Rangkuman

1. ER adalah salah satu pemodelan basis datake 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

34 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 valueantara 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. NotasiElips dengan garis terputus : Menunjukkan atribut turunan
15. Notasi garis bawah menunjukkan bahwa atribut tersebut adalah primary
key.

Perancangan Basis data 35


Perancangan Basis Data Relasional

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

Berikut ini merupakan domain value set bagi sebuah atribut didalam konse
3. EntityRelationship, kecuali _________
A. Simple D. Multivalued
B. Composit E. Surrogate key
C. Single value
Dibawah ini merupakan alasan yang benar tentang makna Atribut
4. deskriptif ________
Muncul hanya jika 2 entitas
A. bertemu di sebuah relasi D. Atribut yang dipercaya sebagai key
B. Dibolehkan di konsep ER E. Pernyataan di atas salah semua
Atribut yang di turunkan dari
C. atribut lain

36 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 ______


Relasi di atas berkardinalitas
A. satu ke banyak D. B adalah himpunan Entitas Orang
Relasi di atas berkardinalitas Relasi di atas di petakan kedalam
B. banyak ke banyak E. 3 tabel
C. A adalah himpunan Entitas Hari

7 Pernyataan yang benar dari gambar di atas _________

Perancangan Basis data 37


Perancangan Basis Data Relasional

Himpunan relasi berderajat


A Ternary D A dan B benar
Merupakan kardinalitas relasi
B banyak ke banyak E B dan C benar
Terdapat 3 tabel, yaitu
himpunan entitas orang,
C himpunan entitas hari dan relasi

8 Notasi di atas menggambarkan ________


1 Mahasiswa bisa aktif di banyak 1 Organisasi bisa di ikuti oleh
A organisasi D banyak mahasiwa
1 Mahasiswa hanya bisa aktif di
B 1 organisasi E B dan D benar
1 Organisasi hanya bisa di ikuti
C 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

Dari himpunan atribut StaffNo, StaffAddress, Skill, mana yang


10 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

38 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 39


Perancangan Basis Data Relasional

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 weakentity, spesialisasi, agregasi dan penurunan Diagram ER
ke bentuk tabel. Penekanan pada bab ini adalah kapan dan bagaimana kita
menggunakan weakentity, spesilisasi dan agregasi dan bagaimana menurunkan
konseptual ER kedalam tabel.

Tujuan

1. Mahasiswa memahami konsep WeakEntity, Spesialisasi dan Agregasi


2. Mahasiswa memahami konsep penurunan dari Diagram ER ke Tabel

3.1 Himpunan Entitas Lemah


Secara umum, Himpunan Entitas Lemah tidak memiliki primary key dan
selalu bergantung pada entitas lain. Notasi entitas lemah digambarkan
dengandouble persegi panjang, sedangkan relasi untuk himpunan entitas
lemah digambarkan dengandouble diamond.Diskriminator / key
parsialadalah 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 keypada 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.

40 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Nama penerima
#nip tunjangan
Nomor
nama
penerima
Pegawai tunjangan
Tunjangan

jabatan Besar tunjangan

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

Perancangan Basis data 41


Perancangan Basis Data Relasional

nama #Id_pegawai

Pegawai

Gaji Per Bulan


Upah Per Jam
IS A
Besar Jumlah Jam Kerja
tunjangan

Pegawai Tetap Pegawai Honorer

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
subgroupsubgroup yang berbeda kemudian di cari entitas umum yang mewakili
2 himpunan entitas tersebut.

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

42 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 43


Perancangan Basis Data Relasional

3.5 Ringkasan notasi simbol di ER

Gambar 3-5Ringkasan Notasi pada Diagram ER

44 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 EntityRelationship 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 atributmenjadi 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 danderived direpresentasikan
sama persis seperti diagram ER. Tetapi untuk atribut komposit dan
multivaluedmempunyai 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

Perancangan Basis data 45


Perancangan Basis Data Relasional

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

46 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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-9Penurunan 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.

Perancangan Basis data 47


Perancangan Basis Data Relasional

 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-10Representasi 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.

48 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Gambar 3-11Representasi 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

Perancangan Basis data 49


Perancangan Basis Data Relasional

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


Dosen mengajar mt kul

Gambar 3-13Representasi Agregasi untuk tabel Mahasiwa dan


Mahasiwa Mengambil Mtkul

50 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
diskriminatordipakai 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 WeakEntity akan menjadi tabel tersendiri yang didalamnya
ada kolom primary key yang merupakan identifikasi dari strongentity.
11. Kardinalitas relasi menentukan berapa banyak tabel yang terbentuk.

Perancangan Basis data 51


Perancangan Basis Data Relasional

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.

52 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Pilihan Ganda

Petunjuk: Pilihlah jawaban yang paling tepat!

Perhatikan relasi berikut

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

2 Entitas dengan kardinalitas relasi 1 ke banyak akan menghasilkan


3. __________ tabel
A. 1 Tabel D. Bisa 2 atau 3 tergantung situasi
B. 2 Tabel E. Bisa 1 atau 2 tergantung situasi
C. 3 Tabel
Perhatikan relasi berikut

4.

Perancangan Basis data 53


Perancangan Basis Data Relasional

Relasi di atas merupakan contoh dari relasi _________


A. Agregasi D. WeakEntity
B. Spesialisasi E. Salah semua
C. Generalisasi

Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah
5. _________
A. 3 Tabel D. 6 Tabel
B. 4 Tabel E. 7 Tabel
C. 5 Tabel

Gambar himpunan entitas berikut menggambarkan _______

6
A. Himpunan Entitas D. Relasi
B. Himpunan Entitas Lemah E. Atribut
C. Himpunan Entitas Kuat

Banyak tabel yang bisa di hasilkan dari relasi di soal nomor 4 di atas adalah
7. _________
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
Membuat banyak kolom untuk
C mengatasi multivalued tersebut

54 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
Mutlak salah karena hanya ada 1
C ER yang benar

Perancangan Basis data 55


Perancangan Basis Data Relasional

Latihan

1. Turunkan Diagram ER berikut kedalam tabel!

56 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

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

Perancangan Basis data 57


Perancangan Basis Data Relasional

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-1Contoh 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
English dengan 3 sks) . Kondisi seperti inilah yang disebut dengan update
anomaly.

58 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
adalah konsep mengenai super key, candidate key, primary key, functional
dependency dan tentu saja bentuk-bentuk normal yang menjadi acuan kita

Perancangan Basis data 59


Perancangan Basis Data Relasional

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)
Dari 6 baris data yang ada pada tabel di atas tak ada satupun yang
memiliki kode_mk yang sama.

60 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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)
4. (kode_mk,nama_mk, sks)
5. (kode_mk,nama_mk, semester, jml_temu)

Perancangan Basis data 61


Perancangan Basis Data Relasional

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

62 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 63


Perancangan Basis Data Relasional

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-6Tabel 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:

64 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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:

Perancangan Basis data 65


Perancangan Basis Data Relasional

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


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-8Versi 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-9Versi ke dua


NIM Nama_Mhs Telepon Kd_Jur Nama_Jur Kode_MK Nama_MK SKS Nilai

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


022xxx
2-01 Jamilah 0812xx, IF Informatika IF-001 Algoritma 3 B
021xxx
2-02 Maemunah 0852xx, IF Informatika IF-002 Database 2 A
031xxx

Tabel T versi ke dua ini juga belum memenuhi sayarat 1 st 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:
66 Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

Tabel 4-10Contoh 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

Perancangan Basis data 67


Perancangan Basis Data Relasional

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

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-13Contoh 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

68 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

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

Perancangan Basis data 69


Perancangan Basis Data Relasional

• Tidak ada Transitive Functional dependency


Transitive functional dependency terjadi bila AB dan BC

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

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

70 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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:

• 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 3 rd 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.

Perancangan Basis data 71


Perancangan Basis Data Relasional

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).
Salah satu contoh teknik Denormalisasi adalah Materialized Viewpada
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.

72 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 73


Perancangan Basis Data Relasional

15. Denormalisasi tidak sama dengan tidak melakukan normalisasi, tujuannya


adalah untuk meningkatkan performa database sebagai imbalan dari
munculnya redundansi (pengulangan data) pada database.

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’

74 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 75


Perancangan Basis Data Relasional

B. Tabel harus memiliki candidate key


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 transitivefunctional 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

76 Perancangan Basis data


Id_Ang Nama_An Kd_Buk Jdl_Buku Jns_Buk No_Ra Tgl_Pinja Tgl_Kemba
g u u k m li
Unggul

A-01 Jamal B-01 Buku Ini Fiksi R-01 23-Feb-09 1-Mar-09

A-01 Jamal B-02 Buku Itu Non R-02 31-Jan-09 23-Feb-09


Fiksi
Universitas Esa

A-02 Jawilem B-03 Buku Fiksi R-01 31-Jan-09 14-Feb-09


Anu
A-02 Jawilem B-02 Buku Itu Non R-02 14-Feb-09 23-Feb-09

Perancangan Basis data


Fiksi
A-02 Jawilem B-02 Buku Itu Non R-02 23-Feb-09 1-Mar-09
Fiksi
A-03 Juminten B-01 Buku Ini Fiksi R-01 31-Jan-09 23-Feb-09

A-03 Juminten B-03 Buku Fiksi R-01 31-Jan-09 23-Feb-09


Anu
Lakukan normalisasi untuk tabel berikut ini sampai mencapai BCNF
Latihan
Perancangan Basis Data Relasional

77
Perancangan Basis Data Relasional

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.

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

78 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

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

Perancangan Basis data 79


Perancangan Basis Data Relasional

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

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

80 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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)

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:

Perancangan Basis data 81


Perancangan Basis Data Relasional

π<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 UT2

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)

Untuk melakukan suatu operasi uniotabel-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 :

82 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

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:

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

Perancangan Basis data 83


Perancangan Basis Data Relasional

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.

OperasiRename () 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:

 ( R(( F ), ( E )))
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 joinMemungkinkan kita untuk
mengkom- binasikan informasi dari dua tabel atau lebih. JOIN memiliki
kemampuan nyata untuk mendukung basis data relasional, memungkinkan

84 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
Naturaljoin dimana NaturalJOIN 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.

Pada OuterJOIN pasangan data yang tidak cocok akan tetap dipertahankan dan
nilai untuk tabel lainnya yang tidak cocok akan dibiarkan kosong.Outerjoin
sendiri terdiri dari tiga jenis, yaitu leftouterjoin, rightouterjoin, dan fullouterjoin.

Leftouterjoin 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 rightouterjoin merupakan kebalikan dari operasi leftouterjoin.


Sedangakan operasi fullouterjoin meriupakan gabungan dari operasi leftouterjoin

Perancangan Basis data 85


Perancangan Basis Data Relasional

dan rightouterjoin. 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:
A, B (T1) B (T1)

A B B

a1 b1 b1

a2 b1 b2

a2 b2

a3 b2
B (B = b1 (T1)) A, B (T1) / B (T1)

86 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

A
B
a2
b1

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

a1

a2

Perancangan Basis data 87


Perancangan Basis Data Relasional

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 naturaljoin, equiJoin,outerjoin


h. Outer oin dibagi menjadi leftouterjoin, rightouterjoin dan
fullouterjoin yang merupakan kombinasi dari left dan
rightouterjoin.
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”

88 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Latihan

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


alajabar relasional yang bisa dikenakan terhadap tabel-tabel tersebut.

Perancangan Basis data 89


Perancangan Basis Data Relasional

6 BAHASA BASIS DATA

Overview

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

90 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

StructureQuery 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 AmericanNationalStandardInstitute
(ANSI) dan InternationalStandardOrganization (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.

Perancangan Basis data 91


Perancangan Basis Data Relasional

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 ObjectOrientedDatabase
Management System

SQL92 membagi secara nyata perintah-perintah SQL ini dalam tiga


kategori besar yang diberi nama kelompok : DataManipulationlanguage (DML),
DataDefinitionLanguage (DDL) dan DataControlLanguage (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 layeruser 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
ExtendedMarkupLanguange (XML) dan auto-genertorcolumnvalues. Tahun 2006

92 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

muncul 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
CREATEDATABASE 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 CREATEDATABASE 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 Foreignkey).
Struktur umum penulisan perintah untuk membuat tabel yaitu :

CREATE TABLE nama_tabel ( [kolom_data] )

nama_tabel = nama yang diberikan untuk


basisdata tersebut

Perancangan Basis data 93


Perancangan Basis Data Relasional

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:


Nim Nama Alamat

Mahasiswa

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

94 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Contoh lain akan dibuat tabel kurikulum yang mempunyai primary key
KodeMK dan KodeKur.
KodeMK KodeJur MamaMK
Sks

Status
Kurikulum

Gambar 6-2Entitas Kurikulum

Tabel 6-2Data 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:

Perancangan Basis data 95


Perancangan Basis Data Relasional

Nim Nama Alamat

KodeJur

Mahasiswa

Memilih

Jurusan

KodeJur NamaJur
Gambar 6-3 Entitas Mahasiswa dan Jurusan

Tabel Mahasiswa
Nim Nama Alamat KodeJur

Tabel Jurusan
KodeJur NamaJur
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
96 Perancangan Basis data
Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 97


Perancangan Basis Data Relasional

Berikut akan ditampilkan tabel jenis data untuk Oracle sbb:

Jenis Data
Tabel 6-5Jenis 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 -

98 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

2147483647 sampai 2147483647.


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.

Perancangan Basis data 99


Perancangan Basis Data Relasional

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, foreignkey)

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

100 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 ForeignKey
Penghapusan foreignkey berarti memutus hubungan antar tabel yang sudah
saling terkait. Perintah SQL yang dibuat hampir sama dengan penghapusan
primary key. Perintah SQL untuk melakukan penghapusan foreignkey adalah
sbb:

ALTER TABLE Mahasiswa


DROP CONSTRAINT fk_mhs_jur

Perancangan Basis data 101


Perancangan Basis Data Relasional

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 ForeignKey
Akan ditambahkan foreignkey 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 ManipulationLanguage (DML) yaitu : INSERTUPDATE,
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)

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 NOTNull harus diisi

102 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perintah perintah SQLnya sbb untuk menambahkan data pada tabel


mahasiswa:
INSERT INTO Mahasiswa (Nim, Nama, Alamat, KodeJur)

Perancangan Basis data 103


Perancangan Basis Data Relasional

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';

6.4.3 Menghapus Data


Struktur umum penulisan perintah untuk menghapus data adalah sbb:

DELETE FROM nama_tabel WHERE condition

104 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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-9Data 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

Perancangan Basis data 105


Perancangan Basis Data Relasional

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, NamaJur AS Jurusan


FROM Jurusan
Sehingga hasil yang didapat adalah sbb:

Tabel 6-11Output Select Jurusan


Kode Jurusan
12 Teknik Informatika
22 Komputer Akuntansi
32 Manajemen Informatika

106 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Penulisan alias pada kolom dapat juga dituliskan tanpa keyword AS,
sehingga perintah SQL nya menjadi sbb:
SELECT KodeJur Kode, NamaJur 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

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:

Perancangan Basis data 107


Perancangan Basis Data Relasional

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’

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

108 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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-14Output 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

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:

Perancangan Basis data 109


Perancangan Basis Data Relasional

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

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

110 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Rangkuman

1. StructureQueryLanguage (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. AmericanNationalStandardInstitute (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. DataDefinitionLanguage (DDL)
b. DataManipulationLanguange (DML)
c. DataControlLanguange (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 layeruser dalam basidata.

Perancangan Basis data 111


Perancangan Basis Data Relasional

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

112 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Kuis Benar Salah

1. StructureQuery 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

Perancangan Basis data 113


Perancangan Basis Data Relasional

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

114 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 E. Alter Table Mahasiswa Alter
Hobby 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 E. Tampilkan daftar nim dari
mahasiswa mahasiswa
C. Tampilkan jumlah mahasiswa

Perancangan Basis data 115


Perancangan Basis Data Relasional

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 INNERJOIN dan OUTERJOIN.
Subquery menjadi bagian penting sebagai alternatif dalam menghasilkan
informasi dari basisata selain menggunakan join tersebut. Dalam subquery ini
digunakan operator IN, NotIN, Exists, NotExists, 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 (INNERJOIN dan OUTERJOIN)
3. Mahasiswa memahami dan mengerti serta mampu menuliskan
querySubQuery untuk kasus-kasus tertentu

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:

1. AVG() – mengembalikan nilai rata


2. COUNT() – mengembalikan jumlah data

116 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

3. FIRST() – mengembalikan nilai awal data


4. LAST() – mengembalikan nilai terakhir dari data
5. MAX() – mengembalikan nilai terbesar dari data
6. MIN() – mengembalikan nilai terkecil dari data
7. 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

Jadi perintah SQL untuk menampilkan jumlah mahasiswa per jurusan


adalah sbb:
SELECT KodeJur, COUNT(Nim) as JumlahMhs
FROM Mahasiswa GROUP BY KodeJur;

Perancangan Basis data 117


Perancangan Basis Data Relasional

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 3
Data
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

1. Tampilkan jumlah matakuliah per semester


SELECT Semester, Count(KodeMk) as JmlMK
FROM Kurikulum
GROUP BY Semester;

118 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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;

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


Semester JmlMK JmlSks
1 6 20
2 8 21
3 7 20
4 7 21

Perancangan Basis data 119


Perancangan Basis Data Relasional

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.

120 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 <= Oracle (mulai dari Oracle8i)
10
SELECT FIRST 10 * from T Ingres
SELECT FIRST 10 * FROM T order by a Informix
SELECT * FROM T FETCH FIRST 10 DB2
ROWS ONLY
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


Tabel Mahasiswa
Nim Nama Alamat KodeJur

Tabel Jurusan
KodeJur NamaJur

Perancangan Basis data 121


Perancangan Basis Data Relasional

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 INNERJOIN dengan menggunakan masalah


diatas

SELECT Nim, Nama, NamaJur


FROM Mahasiswa
INNER JOIN Jurusan
ON Mahasiswa.kodeJur = Jurusan.KodeJur

122 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 keywordAS 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

Perancangan Basis data 123


Perancangan Basis Data Relasional

7.4 Bentuk-bentuk Perintah Join


Perintah JOIN ini terdiri dari berbagai variasi, sebelumnya telah dibahas
JOIN dengan INNERJOIN. INNERJOIN 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 OUTERJOIN, 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 OUTERJOIN ini dibentuk menjadi 3 bagian sbb:
1. LEFTJOIN
2. RIGHTJOIN
3. FULLJOIN

Untuk menjalankan perintah OUTHERJOIN 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

124 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Tabel 7-10Penerbit
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 LEFTJOIN
Bentuk umum penulisan LEFTJOIN adalah sbb:

SELECT nama_kolom
FROM nama_tabel_1
LEFTJOIN nama_tabel_2
ON relasi_tabel

Perintah LEFTJOIN 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 LEFTJOIN yang akan menampilkan data pengarang
yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota


FROM Pengarang p
LEFTJOIN Penerbit t
ON p.KotaTinggal=t.Kota

Perancangan Basis data 125


Perancangan Basis Data Relasional

Tabel 7-11Hasil Relasi LeftJoin


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 LEFTJOIN dapat juga dituliskan


LEFTOUTERJOINsehingga perintah SQL nya sbb:

SELECT KodePeng, NamaPeng, Kota


FROM Pengarang p
LEFTOUTERJOIN Penerbit t
ON p.KotaTinggal=t.Kota

7.4.2 RIGHTJOIN
Bentuk umum penulisan RIGHTJOIN adalah sbb:

SELECT nama_kolom
FROM nama_tabel_1
RIGHTJOIN nama_tabel_2
ON relasi_tabel

Perintah RIGHTJOIN 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.

126 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Berikut perintah RIGHTJOIN yang akan menampilkan data pengarang


yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota


FROM Pengarang p
RIGHTJOIN Penerbit t
ON p.KotaTinggal=t.Kota

Tabel 7-12Hasil Relasi RightJoin


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 RIGHTJOIN dapat juga dituliskan RIGHTOUTERJOIN
sehingga perintah SQL nya sbb:

SELECT KodePeng, NamaPeng, Kota


FROM Pengarang p
RIGHTOUTERJOIN Penerbit t
ON p.KotaTinggal=t.Kota

7.4.3 FULLJOIN
Bentuk umum penulisan FULLJOIN adalah sbb:

SELECT nama_kolom
FROM nama_tabel_1
FULLJOIN nama_tabel_2
ON relasi_tabel

Perintah FULLJOIN ini akan menghasilkan seluruh baris data pada


nama_tabel_1 (yang ada disebalah kiri) dan akan menampilkan seluruh baris

Perancangan Basis data 127


Perancangan Basis Data Relasional

nama_tabel_1 (disebelah kanan) walaupun ada tidak singkron diantara


keduanya.
Ketika data tidak ditemukan pada nama_tabel_1 dan nama_tabel_2,
maka akan diberikan nilai NULL pada data tersebut.

Berikut perintah FULLJOIN yang akan menampilkan data pengarang


yang nama kotanya sesuai dengan kota penerbit

SELECT KodePeng, NamaPeng, Kota


FROM Pengarang p
FULLJOIN Penerbit t
ON p.KotaTinggal=t.Kota

Tabel 7-13Hasil Relasi FullJoin


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.

128 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Subquery merupakan alternative dalam membuat perintah SQL yang


menggunakan JOIN, dimana hal ini dibuat untuk meningkatkan
performanceterhadap 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, GroupBY dan Having. Umumnya perintah sub Query ini
mengikuti format sebagai berikut:
 WHEREekspresi [NOT] IN(subquery)
 WHEREekspresioperator 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-14Data 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-15Data Buku


Kode
Kode JudulBuku Jenis
Pen
BU1032 The Busy Executive's Database Guide business 1389
BU1111 Cooking with Computers: business 1389
Surreptitious Balance Sheets
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 UNDECIDED 0877
Cooking

Perancangan Basis data 129


Perancangan Basis Data Relasional

PC1035 But Is It User Friendly? popular_comp 1389


PC8888 Secrets of Silicon Valley popular_comp 1389
PC9999 Net Etiquette popular_comp 1389

Tabel 7-16Data 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 operatorIN 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 operatorIN

SELECT NamaPen
FROM Penerbit
WHERE kodePen IN
(SELECT kodePen
FROM Buku
WHERE jenis='business')

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-17Hasil Query Operator IN


NamaPen
New Moon Books
Algodata Infosistems

130 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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-18Hasil Query Operator Not IN
NamaPen
Binnet & Hardley
Five Lakes Publishing
Ramona Publishers
GGG&G
Scootney Books
Lucerne Publishing

Perancangan Basis data 131


Perancangan Basis Data Relasional

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-19Hasil Query Operator Exists


NamaPen
New Moon Books
Algodata Infosistems

Jika operator EXISTS ditambahkan operator NOT maka akan menjadi


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

132 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Output yang dihasilkan dari perintah Query tersebut adalah:

Tabel 7-20Hasil 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-21Hasil Query Operator Komparasi


NamaPeng
Cheryl Carson
Abraham Bennet

Perancangan Basis data 133


Perancangan Basis Data Relasional

Operator ANY dan ALL


Penggunaan operator ini dipadukan dengan operator relasi sehingga
nanti akan terbentuk >ANY, =ANY , <>ANY, >ALL dan <>ALL
>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 NOTIN, hal ini berbeda karena <>ANY
menghasilkan not = a or not = b , sementara NOTIN menghasilkan not = a
and not = b. <>ALL pengertianya sama dengan NOTIN

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

134 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Rangkuman

1. StructureQueryLanguage (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 GROUPBY
untuk membuat kelompok data jika terdapat kolom yang tidak
diagregasi akan ditampilkan sebagai hasil query
3. Klausa GROUPBY 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. InnerJoin
b. OutherJoin
i. LeftJoin
ii. RightJoin
iii. FullJoin
7. INNERJOIN ini mensyaratkan data di kedua belah tabel singkon, Data
yang tidak singkron tidak akan ditampilkan sebagai hasil query
tersebut
8. Perintah LEFTJOIN 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 RIGHTJOIN 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 FULLJOIN 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.

Perancangan Basis data 135


Perancangan Basis Data Relasional

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. WHEREekspresi [NOT] IN(subquery)
b. WHEREekspresioperator perbandingan [ANY | ALL] (subquery)
c. WHERE [NOT] EXISTS(subquery)

12. Subquery menggunakan operator IN, NotIN, Exists, NotExists, 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

136 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Latihan

1. Jelaskan kegunaan dari masing-masing fungsi agregasi


2. Berikan contoh perintah query yang menggunakan GROUPBY untuk
menghitung jumlah mahasiswa laki-laki atau perempuan per angkatan
3. Jelaskan dan berikan contoh untuk klausa HAVING
4. Jelaskan perbedaan dari INNERJOIN dan OUTERJOIN dan berikan
contohnya
5. Untuk kasus-kasus seperti apakah LeftJoin dan RightJoin 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

Perancangan Basis data 137


Perancangan Basis Data Relasional

Kuis Benar Salah

1. Fungsi-fungsi aggregation tidak dapt digunakan untuk kondisi pencarian


dalam Where
2. Hasil dari perintah select dengan menggunakan fungsifungsi
aggregationakan mengembalikan hanya satu baris data saja
3. Merelasikan antar tabel hanya dapat dilakukan dengan perintah InnerJoin
saja
4. Pengertian penulisan LeftJoin sama dengan LeftOuterJoin
5. Perintah LEFTJOIN 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. Fulljoin 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

138 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 139


Perancangan Basis Data Relasional

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. FullJoin
B. LeftJoin E. tidak ada jawaban
C. RightJoin

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 = D. kodeJur
jurusan.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

140 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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. RightJoin
B. LeftJoin E. fullJoin
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

Perancangan Basis data 141


Perancangan Basis Data Relasional

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.

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.

142 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Struktur logic terkecil pada Oracle adalah block, sedangkan pada MS SQL
Server adalah page.

Gambar 8-1Struktur DBMS secara umum

Dua bagian utama dalam struktur DBMS ini adalah queryprocessor dan
storagemanager.

Queryprocessor merupakan bagian yang merubah queri level tinggi


menjadi instruksi level rendah. Komponen-komponen QueryProcessor adalah :

• DML compiler, menerjemahkan perintah DML pada suatu query ke


dalam instruksi level rendah yang dimengerti oleh query evaluation
engine.

Perancangan Basis data 143


Perancangan Basis Data Relasional

• 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.
• Query evaluation engine, mengeksekusi instruksi level rendah
yang dihasilkan oleh DML compiler.

Storagemanagermenyediakan antarmuka antara data level rendah


yang tersimpan dalam basis data dan program aplikasi sertaquery 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.

144 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

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 databasemenggunakan struktur memorydan struktur proses


untuk mengatur dan mengakses database. Semua struktur memory berada
dalam main memorydari 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.

Perancangan Basis data 145


Perancangan Basis Data Relasional

Gambar 8-2Struktur 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 Backgroundprocesses. Kombinasi
dari SGA dan Oracle processes disebut Oracle instance.

Bila instance telah di start, softwareOracle akan menghubungkan


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

146 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

SGA
Shared pool Streams pool Large pool

Java pool Database Redo log


buffer cache buffer

SystemProcess
Database LogWriterArchive
MonitorMonitor Writer(LGWR) log files
(SMON)
Checkpoint(PMON)(DBWn)
Control
Control Archiver
files
(CKPT) files Data Redo log
(ARCn)
files files
Gambar 8-3Oracle Instance

8.4.4 Oracle MemoryStructure


Struktur memori dalam Oracle terdiri dari dua, yaitu:
• Sistem Global Area (SGA) : di-share oleh semua server dan
Backgroundprocess
• Program Global area (PGA) : Private untuk masing-masing
server dan Backgroundprocess. Satu PGA untuk masing-masing
proses.

Server Serv backgr


PG P P
Proc A er ound
ess 1 G Proces G
Proc A A
ess s
SGA
2

Gambar 8-4 Oracle Memory

Perancangan Basis data 147


Perancangan Basis Data Relasional

SGA
SGA merupakan area memori yang berisi data dan control information
untuk instance, dimana struktur datanya meliputi :
- Databasebuffer cache: Cache block data yang diambil dari
database
- Redo logbuffer: Cache informasi redo, digunakan untuk
recoveryinstance,sampai informasi ini ditulis ke penyimpanan fisik redo
logfiles dalam disk
- Shared pool: Cache beberapa program yang dapat di share oleh
user
- Largepool:merupakan area opsionalyang 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 ProcessGlobal 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.

8.4.5 Oracle Processes Structure

PGA Instance
SG
Userpr Server
A
ocess process Background
processes

Gambar 8-5 Oracle Processes

148 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Oracle processes structure terdiri dari:


• Userprocess :
dimulai pada saat user meminta koneksi ke Oracle Server
• Server process:
terhubung ke Oracle Instance, dimulai pada saat user mulai
terhubungkan dengan Oracle Server
• Backgroundprocess:
dimulai pada saat Oracle Instance di-start.

UserProcess
Userdatabaseyang akan mengakses informasi dari database harus
melakukan koneksi dulu ke Oracle server. Ini dapat dilakukan dengan
menggunakan tool, seperti SQL*Plus, dan userprocess dimulai.Userprocesstidak
berinteraksi langsung dengan Oracle server, tetapi melalui UserProgram
Interface (UPI) yang meng-create session dan mengaktifkan server process.

Server Process
Ketika user telah terkoneksi, server process dimulai untuk menangani
permintaan dari userprocess. Server processdapat berupa server process khusus
atau server process yang digunakan bersama (shared server process).

Dalam server yang khusus, server processmelayani permintaan dari


single userprocess. Ketika koneksi putus, server processjuga selesai. Dalam
shared server, server processmelayani permintaan dari beberapa userprocess.
Server processberkomunikasi dengan Oracle server menggunakan Oracle
Program Interface (OPI).

BackgroundProcess
Backgroundprocess merupakan bagian dari Oracle Instance, yang terdiri
dari beberapa proses. Proses-proses yang sering digunakan adalah:
- Sistem Monitor (SMON):melakukan crash recoverybila instance
gagal di-start.
- Process Monitor (PMON):melakukan process cleanup bila
userprocess gagal.
- Database Writer (DBWn):menulis blocks yang berubah dari
databasebuffer cache ke data files dalam disk
- Checkpoint (CKPT): meng-updatesemua data files dan controlfiles
databaseuntuk memberi tanda checkpoint yang terakhir

Perancangan Basis data 149


Perancangan Basis Data Relasional

- LogWriter (LGWR):menulis redologke disk


- Archiver (ARCn):meng-copi redo logfiles ke tempat penyimpanan
bila log switchterjadi

8.4.6 Oracle StorageStructure


Oracle databasemempunyai 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.

Struktur fisik juga meliputi file-file yang mendukung berjalannya Oracle


database, yaitu:
- Controlfiles: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 logfiles:digunakan untuk recoveryinstancedatabase.
- Parameter file:digunakan untuk mendefinisikan bagaimana
konfigurasi instancepada saat start-up
- Passwordfile:mengijinkan user untuk terhubung secara remote ke
database dan untuk melakukan tugas administrasi.
- Backupfiles: digunakan untuk recoverydatabase.
- Archivelogfiles: berisi urutan perubahan data yang dibuat oleh
instance. Bersama dengan data backup, digunakan untuk merecover
data file yang hilang.

150 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Logical Physical

Datab
ase

Sche Tablesp Data


ma ace file

Segm
ent

Exte
nt

OS
Oracle data
block
block

Gambar 8-6Oracle Storage

8.5 Arsitektur Sistem database


Arsitektur suatu database sangat bergantung kepada sistem komputer
dimana database itu dijalankan. Kila tidak bisa membangun sistemdatabase
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
userInterface, sedangkan back-end mengatur struktur akses, evaluasi queri dan
optimisasi, kontrol konkurensi dan recovery.

Perancangan Basis data 151


Perancangan Basis Data Relasional

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 sistemdatabase


dapat diklasifikasikan sebagai berikut:
- Centralized Sistems
- Client-Server Sistems
- Parallel Sistems
- Distributed Sistems
- Network Types

8.5.1 Centralized Sistems

Gambar 8-8 Centralized Sistem

152 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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-usersistem atau


multi-usersistem. Contoh dari Single-usersistem 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-usersistem 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-9Client-Server Sistem


Dalam sistemClient-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)

Perancangan Basis data 153


Perancangan Basis Data Relasional

Data Server
• Digunakan dalam sistem databaseobject-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
- Shared nothing -- memorydan disk tidak digunakan bersama-
sama
- Hierarchical –merupakan campuran ketiga arsitektur di atas
dengan shared nothing adalah level tertinggi.

154 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Gambar 8-10Parallel 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-11Distributed Sistem

Perancangan Basis data 155


Perancangan Basis Data Relasional

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

156 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Rangkuman

1. DatabaseSistems meliputi Database Management System (DBMS)


yang berupa paket software dan database yang digunakan untuk
menyimpan data.
2. DBMS mempunyai struktur dimana komponen utamanya adalah
queryprocessor dan storagemanager
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 sistemdatabase
dapat diklasifikasikan sebagai Centralized Sistems, Client-Server
Sistems, ParallelSistems, DistributedSistems, dan Network Types.

Perancangan Basis data 157


Perancangan Basis Data Relasional

Kuis Benar Salah

1. DBMS adalah merupakan bagian dari sistemdatabase


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 sistemdatabase yang membutuhkan full back-end
functionality di komputer client adalah distributed sistems
6. Redo logbuffer merupakan bagian dari struktur memori Oracle
7. Throughput ikut menentukan performansi dari parallel sistems.

158 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

4. Ukuran satuan terkecil tempat penyimpanan fisik pada Oracle


adalah:
a. Segmen
b. Page
c. Block
d. Kbytes

5. Redo LogBuffer merupakan bagian dari:


a. PGA
b. SGA
c. Server Process
d. Backgroundprocess

Perancangan Basis data 159


Perancangan Basis Data Relasional

6. Bila sebuah perusahaan mempunyai kantor-kantor cabang diseluruh


Indonesia, maka arsitektur sistemdatabase yang paling cocok adalah:
a. Centralized sistems
b. Client-server sistems
c. Parallel sistems
d. Network Types

7. Backgroundprocess akan mulai berjalan bila:


a. Dilakukan start pada Backgroundprocess
b. Dilakukan start terhadap instance Oracle
c. User mulai terhubung ke database
d. Semua salah

160 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 sistemdatabase, sebuntukan jenis-jenis dari
sistemdatabase.

Perancangan Basis data 161


Perancangan Basis Data Relasional

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 (SpatialDatabase)
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

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

162 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

(Decision Support System/DSS), aplikasi yang memanfaatkan Basis Data


Spasial (SpatialDatabase), 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 Webyang 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
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

Perancangan Basis data 163


Perancangan Basis Data Relasional

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

164 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
jangkauan nilai 2000000, 2000001-4000000, 4000001-6000000 dan di atas
6000000. Dapat dikatakan tidak mungkin menggunakan SQL standar untuk
membentuk sebuahhistogram 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 :

Perancangan Basis data 165


Perancangan Basis Data Relasional

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

166 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

data dalam bentuk relasional dengan menggunakan nilai khusus all untuk
menyatakan subtotal, seperti yang ditunjukan di tabel berikut ini :

Tabel 9-2Tabel Relasional

Warna Ukuran Jumlah


Terang S 8
Terang M 35
Terang L 10
Terang all 53
Gelap S 20
Gelap M 10
Gelap L 5
Gelap all 35
all S 28
all M 45
all L 15
all all 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.
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

Perancangan Basis data 167


Perancangan Basis Data Relasional

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

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

168 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
queryke 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 yangpopuler disebut sebagai Data
Warehousing) diharapkan dapat memberikan solusi pada masalah semacam ini.

Pada dasarnya Data warehousemerupakan 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 warehousememberikan pemakai sebuah akses ke data yang
terkonsolidasi, sehingga queryuntuk pengambilan keputusan menjadi lebih
mudah untuk ditulis. Di sisi lain, dengan mengakses informasi dari sebuah data
warehouseyang nantinya digunakan untuk dukungan pengambilan keputusan,
pemakai dapat menjamin bahwa sistem pengolahan transaksi on-line tidak
dipengaruhi oleh kerja aplikasi pendukung pengambilan keputusan

Perancangan Basis data 169


Perancangan Basis Data Relasional

(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


pembangunandata 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 warehouseyang
mengajukan permintaan (queryke setiap sumber). Kedua-duanya dapat
dilakukan secara berkala (periodik), atau bisa juga berdasarkan permintaan (on
request).
Mengingat skema dari data warehouseumumnya 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.

 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

170 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 warehousesama 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 querydengan 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 (SpatialDatabases)


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

Perancangan Basis data 171


Perancangan Basis Data Relasional

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
querysemacam 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 = {(𝑥𝑙, 𝑦𝑙 ), ( 𝑥2, 𝑦2)}

Segitiga = {(𝑥𝑙, 𝑦𝑙 ), ( 𝑥2, 𝑦2), (𝑥3, 𝑦3)}

Polygon =
{(𝑥𝑙, 𝑦𝑙 ), ( 𝑥2, 𝑦2), (𝑥3, 𝑦3), (𝑥4, 𝑦4), (𝑥5, 𝑦5)}

Gambar 9-2 Bentuk-bentuk Geografis. dan Representasinya

172 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 173


Perancangan Basis Data Relasional

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

174 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Gambar 9-4Objek sebagai Data Raster dan Data Vektor

Perancangan Basis data 175


Perancangan Basis Data Relasional

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

176 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

(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 sebuahjaringan 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
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

Perancangan Basis data 177


Perancangan Basis Data Relasional

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
untukkeperluan 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
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

178 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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 masukandapat 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-
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

Perancangan Basis data 179


Perancangan Basis Data Relasional

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

180 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 181


Perancangan Basis Data Relasional

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.

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.

182 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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
dan ilmukomputer 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.

Perancangan Basis data 183


Perancangan Basis Data Relasional

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

184 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

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

Perancangan Basis data 185


Perancangan Basis Data Relasional

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
diserver. Hasil proses itulah yang kemudian dikirim ke client melalui HTTP
dalambentuk halaman-halaman Web. Selain Web server dan browser, aplikasi
berbasisWeb tidak jarang melibatkan basis data. Dalam kasus ini Web server
dengan suatumekanisme dapat mengakses basis data dan kemudian mengolah
data lalu dikirimke client. Dilihat dari kedekatan program aplikasi dengan
penyimpanan data,sisitem ini dapat dikategorikan sebagai sistem three-tier.
Dalam pemrogramanthree-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
sebagaiantarmuka pengguna, Web server akan melakukan computational logic,
danprogram basis data, berfungsi sebagai penyimpan data. Secara umum
skemaaplikasi three-tier berbasis Web dapat dilihat pada Gambar 14.7. Pada
gambartersebut penomoran tier dihitung dari antarmuka pengguna.

Gambar 9-7Arsitektur Web

186 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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

Perancangan Basis data 187


Perancangan Basis Data Relasional

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 warehousememberikan pemakai sebuah akses ke data yang
terkonsolidasi, sehingga queryuntuk 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.

188 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

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.

Perancangan Basis data 189


Perancangan Basis Data Relasional

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.

190 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Pilihan Ganda

Berikut ini hal yang benar mengenai Sistem Pendukung Keputusan


1. (Decision Support Sistem), kecuali…
Selalu membutuhkan data
A. transaksi yang besar D. Hanya merupakan alat bantu
B. Membutuhkan model E. Salah semua
Memiliki sifat tidak
C. terstruktur

2. Berikut ini hal yang benar mengenai Data Mining, kecuali…


Bertujuan untuk menemukan Tidak pernah membutuhkan
A. knowledge D. 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
Beberapa hal yang harus dipertimbangkan dalam membangun data
4. 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…
Menangani hal-hal yang
berhubungan dengan
A. ruangan/tempat D. Menggunakan indeks R-tree
B. Menggunakan indeks B-tree E. Salah semua
Dapat diimplementasikan untuk
C. sistem navigasi

Perancangan Basis data 191


Perancangan Basis Data Relasional

6 Berikut ini hal yang benar mengenai raster, adalah…


A. Kumpulan data transaksional D. Salah semua
Membutuhkan penyimpanan
B. besar E. Benar semua
Tidak dapat menyimpan data 3
C. dimensi

7 Jenis-jenis aplikasi basis data spasial berikut ini kecuali…


Sistem informasi jaringan kabel
A 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…


Menghubungkan banyak sumber
A data D Benar semua
Membutuhkan kata kunci untuk
B 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

Hal-hal yang harus dipertimbangkan dalam model komputasi bergerak


10 kecuali…
A connection time D Energy
B user time E Salah semua
C cost

192 Perancangan Basis data


Universitas Esa Perancangan Basis Data Relasional
Unggul

Latihan

1. Sebutkan dan jelaskan mengenai sifat-sifat yang dimiliki oleh DSS!


2. Cari dan jelaskan aplikasi yang memanfaatkan basis data spasial!

Perancangan Basis data 193


Perancangan Basis Data Relasional

Daftar Pustaka

1. Raghu Ramakrishnan / Johannes Gehrke “Database Management


System” Second edition.

2. Silberschatz-Korth-Sudarshan: DatabaseSistem Concepts, Fourth


Edition.2001

3. Handbook Telkom Polytechnic : Database Management Systems

4. Oracle Database 10g: Administration Workshop I, volume I: Student


Guide

194 Perancangan Basis data

Anda mungkin juga menyukai