You are on page 1of 58

PANDUAN KULIAH

Panduan Kuliah Basis Data TI-STMIK DCI’09

BASIS DATA

DESKRIPSI MATA KULIAH

Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi / perusahaan senantiasa

berhubungan dengan basis data. Perangkat komputer dalam suatu organisasi/perusahaan biasa digunakan

untuk menjalankan fungsi Pengelolaan Sistem Informasi, yang dewasa ini sudah menjadi suatu keharusan,

demi untuk meningkatkan efesiensi , daya saing, keakuratan, kecepatan operasional organisasi perusahaan.

Dan basis data merupakan salah satu komponen utama dalam setiap system operasi. Tidak ada system

operasi bisa dibuat/dijalankan tanpa adanya basis data. Basis Data merupakan komponen penting dalam

Teknologi Informasi yang dapat mengurangi ketidakpastian dan mempermudah pengambilan keputusan.

TUJUAN UMUM

Memberikan pemahaman kepada mahasiswa bahwa saat ini pemrosesan data menjadi suatu informasi

merupakan suatu keharusan dan bukan merupakan pekerjaan yang gampang. Dengan berbagai macam model

data yang harus diolah dan berbagai harapan ketersediaan informasi yang dapat meningkatkan pelayanan

kepada para pengguna, maka dibutuhkan suatu teknik tersendiri tentang bagaimana merancang dan membuat

model data yang baik. Sampai akhirnya Basis Data yang ada bukan saja mempercepat pemerolehan informasi

tetapi juga dapat meningkatkan pelayanan kepada para pengguna informasi tersebut.

TUJUAN KHUSUS

Agar mahasiswa mendapatkan gambaran lebih rinci tentang pengelolaan data, memahami konsep-konsep yang

mendasari terbentuknya sebuah data base, dapat membuat pola hubungan dan keterkaitan antar data dalam

sebuah tabel. Sampai akhirnya dapat memahami, merancang dan mengimplementasikan basis data tersebut

untuk keperluan ketersediaan informasi yang berkwalitas.

STRATEGI PEMBELAJARAN

Acara Perkuliahan meliputi penyajian materi dan tanya jawab tentang isue terkini tentang teknik-teknik dan

penggunaan Data Base, studi kasus dan penyajian contoh-contoh persoalan yang melibatkan partisipasi aktif

mahasiswa dalam setiap acara perkuliahan. Partisipasi dari mahasiswa meliputi tanya jawab , latihan-latihan

soal dan diskusi baik secara kelompok maupun individu.

TAGIHAN BAGI PESERTA KULIAH :

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
Mahasiswa diharuskan mengikuti perkuliahan pada hari dan waktu yang telah ditentukan. Dan mahasiswa

wajib mengikuti kegiatan-kegiatan evaluasi/review perkulihan yang meliputi Review/Quiz Pra-Kuliah,

Tugas/PR, Paper, Ujian Tengah Semester (UTS) dan Ujian Akhir Semester (UAS) yang merupakan unsur-

unsur untuk mendapatkan Nilai Akhir.

PROSEDUR UNTUK MENDAPATKAN NILAI AKHIR

Pada setiap akhir dari pembahasan modul akan dilakukan evaluasi terhadap kemampuan dan kemajuan belajar

untuk setiap mahasiswa. Hasil evaluasi belajar dinyatakan dalam Quiz, dan nilai dalam setiap Quiz

selanjutnya akan dikomulatifkan sampai terbentuk Nilai Akhir yang terdiri dari unsur-unsur Absen, Quiz

(quiz pra-kuliah & quiz mingguan), Tugas/PR, Paper, Ujian Tengah Semester (UTS) dan Ujian Akhir

Semester (UAS). Kemudian Nilai Akhir yang telah diperoleh oleh masing-masing mahasiswa dikelompokkan

dalam golongan Nilai Huruf mutu yang persentasinnya sebagai berikut :

1. ABSENSI 5% 4. Paper 10 %

2. Quiz 5% 5. U T S 30 %

3. Tugas/PR 5% 6. U A S 45 %

Adapun Pengelompokan dari Nilai Akhir menjadi Nilai Huruf adalah sebagai berikut :

Nilai Akhir Nilai Huruf Bobot Keterangan


80 – 100 A 4 Sangat Baik

67 – 79 B 3 Baik

55 – 66 C 2 Cukup

40 – 54 D 1 Kurang

< 40 E 0 Tidak Lulus

2
Panduan Kuliah Basis Data TI-STMIK DCI’09

GARIS BESAR PROSES PEMBELAJARAN (GBPP)


MATA KULIAH : BASIS DATA

BOBOT SKS : 3 SKS

TUJUAN MATA KULIAH :


Menguji kemampuan mahasiswa tentang berbagai prinsip untuk merancang basis data yang memenuhi
tuntutan fungsi maupun unjuk kerja sesuai dengan yang dimaksud oleh bagian pengolahan informasi.

TUJUAN POKOK BAHASAN

1. Menjelaskan ruang 1.1 Pendahuluan/ overview mata kuliah


lingkup matakuliah a. Pengertian
b. Tujuan
c. Ruang Lingkup
1.2 Aturan-aturan perkuliahan, tugas, kuis dan penilaian
1.3 Kupas buku referensi yang digunakan
2. Menjelaskan 2.1 Konsep dasar basis data
konsep dasar basis a. Pendahuluan
data. b. Definisi-definisi
c. Operasi basis data/ objektif dan penerapan basis data
3. Menjelaskan 3.1 Komponen basis data
komponen a. Hardware (perangkat keras)
komponen basis b. Operating system (sistem operasi)
data. c. Database management system (sistem pengelolaan basis data)
3
Panduan Kuliah Basis Data TI-STMIK DCI’09
d. Aplikasi basis data
e. User basis data (pemakai basis data)
4. Menjelaskan 4.1 Kegunaan basis data/ syarat
kegunaan dan a. Redudansi dan inkonsistensi data
syarat basis data. b. Pengaksesan dan isolasi data
c. Integrasi dan independence data
d. Keamanan data (security)
5. Menjelaskan 5.1 Arsitektur sistem basis data
tentang arsitektur a. Abstraksi data
basis data. b. Bahasa basis data (databse language)
c. Struktur sistem keseluruhan

6. Menjelaskan 6.1 Basis data relasional


tentang konsep a. Definisi
basis data b. Opersai dan bahasa basis data
relasional. c. Relasi antar tabel

7. Menjelaskan 7.1 Model data


tentang model a. Representasi model data
model data. b. Model entity relationship
c. Diagram entity relationship
8. Menjelaskan 8.1 Normalisasi data
tentang konsep a. Atribut tabel
normalisasi data. b. Domain dan tipe data
c. Ketergantungan fungsional
d. Bentuk-bentuk normalisasi
9. Menjelaskan 9.1 Merancang model konseptual basis data
tentang teknik a. Perancangan teknik normalisasi
teknik perancangan ● Bentuk tidak normal (un normalized form)
basis data. ● Bentuk normal ke satu (1 NF/ first normal form)
● Bentuk normal ke dua (2NF/ second normal form)
● Bentuk normal ke satu (3 NF/ third normal form)
● Boyce cood normal form
● Penerapan bentuk normalisasi

b. Perancangan teknik entity relationship


● One to one relationship
● One to many relationship
● Many to many relationship
● Penerapan bentuk entity relationship
c. Model data logika
● Penerapan bentuk model data logika
10. Menjelaskan model 10.1 Model data lanjut
model data tingkat a. variant entitas relasi
lanjut. b. spesialisasi dan generalisasi
c. agregasi
d. key alternatif, pengkodean, dekomposisi dan fleksibilitas
11. Menjelaskan 11.1 Implementasi basis data
4
Panduan Kuliah Basis Data TI-STMIK DCI’09
implementasi basis a. Transformasi model data ke basis data fisik
data. b. DBMS dan struktur tabel
c. Indeks dan struktur penyimpanan

12. Menjelaskan 12.1 SQL (structured query language)


bahasa dalam basis a. Struktur dasar
data. b. Fungsi agregasi
c. Nilai null
d. Anomali basis data
e. Kontrol transaksi
f. Data definitif language
13. Menjelaskan 13.1 Aplikasi basis data
aplikasi aplikasi a. Arsitektur sistem
basis data dan b. Pemilihan perangkat lunak
lingkup c. Pemilihan integrasi basis data
penerapannya. d. Lingkup penerapan basis data

14. Menjelaskan 14.1 Penutup


tentang prespektif a. Prespektif perkembangan aktual dan masa depan mata kuliah
perkembangan b. Review mata kuliah
mata kuliah.

REFERENSI :
1. Atre S, “Database : Structured Techniques for Design, Performance and Management”, John
Wiley and Sons, 1980.
2. CJ Date HM, ”An Introduction to Database System”, Addison Wesley, 6th editions, 1995.
3. Fatansyah, “Basis Data”, CV. Informatika, Bandung, 2002.
4. Harianto Kristanto, “Konsep dan Perancangan Database”, Andi Offset, Yogyakarta, 1994.

5
Panduan Kuliah Basis Data TI-STMIK DCI’09

BAB1

PENDAHULUAN
I. KONSEP DASAR BASIS DATA
A. Definisi

Basis Data terdiri atas 2 (dua) kata yaitu Basis dan Data. Basis dapat diartikan sebagai markas atau

gudang, tempat bersarang atau berkumpul. Sedangkan Data adalah reperesentasi fakta dunia nyata yang

mewakili suatu objek. Basis Data sendiri dapat didefinisikan dalam sejumlah sudut pandang tertentu :

• Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa

pengulangan (redudansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

• Kumpulan file-file yang saling berelasi dan relasi tersebut biasanya ditunjukan dengan kunci dari tiap

file yang ada, yang disimpan dalam media penyimpanan elektronis. Satu basis data menunjukan satu

kumpulan data yang dipakai dalam lingkup perusahaan, instansi.

File File
Mahasiswa disk Matakuliah

File File
Dosen Kuliah/Nilai

Basis Data di Sebuah Harddisk.

Hampir disemua aspek pemanfaatan perangkat komputer dalam sebuah organisasi atau perusahaan

senantiasa berhubungan dengan basis data. Perangkat komputer ini biasanya digunakan untuk

menjalankan fungsi Pengolahan Sistem Informasi, yang dewasa ini sudah menjadi suatu keharusan, untuk

meningkatkan efisiensi, daya saing, keakuratan, kecepatan operasional perusahaan. Dan basis data

merupakan salah satu komponen utama dalam setiap sistem informasi, tidak ada sistem informasi yang

bisa buat atau dijalankan tanpa adanya basis data.

6
Panduan Kuliah Basis Data TI-STMIK DCI’09

B. Istilah – Istilah

 Entity

Entity adalah orang, tempat, kejadian atau konsep yang informasinya direkam. Misalnya pada sekolah

terdapat entity mahasiswa, matakuliah, dosen, nilai test dan lain-lain.

 Atribute

Setiap entity mempunyai atribute atau sebutan untuk mewakili suatu entity. Seorang mahasiswa dapat

dilihat dari atributenya, misalnya nim, nama, alamat, jenis kelamin dan lain-lain. Atribute juga disebut

sebagai data elemen, data field, data item.

 Data value (nilai atau isi data)

Adalah data actual atau informasi yang disimpan pada tiap data elemen atau atribute. Atribute nama

mahasiswa menunjukan tempat dimana informasi nama mahasiswa disimpan, sedang data value adalah

Pita, Respati, merupakan isi data nama mahasiswa tersebut.

 Record (tupel)

Yaitu kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entity secara

lengkap. Satu record mewakili satu data atau informasi tentang seseorang misalnya, nomor induk

mahasiswa, nama, alamat, jenis kelamin dan seterusnya.

 File

Kumpulan record-record sejenis yang mempunyai panjang elemen yang sama, atribute yang sama, namun

berbeda-beda data valuenya.

 Database

Kumpulan file-file yang mempunyai kaitan antara satu file dengan file yang lain sehingga membentuk satu

bangunan data untuk menginformasikan satu perusahaan, instansi dalam batasan tertentu.

 Database Management System (DBMS)

Kumpulan file yang saling berkaitan bersama dengan program untuk pengelolaannya disebut DBMS.

Database adalah kumpulan datanya, sedangkan program pengelolanya berdiri sendiri dalam satu paket

program yang berfungsi untuk membaca data, mengisi data, menghapus data serta melaporkan data

dalam database.

C. Operasi Dasar Basis Data

Operasi dasar yang dapat dilakukan oleh basis data meliputi :

 Pembuatan basis data baru (create database)

7
Panduan Kuliah Basis Data TI-STMIK DCI’09
 Penghapusan basis data (drop database)

 Pembuatan file/table baru ke dalam basis data (create table)

 Penghapusan file/table dari suatu basis data (drop table)

 Penambahan data baru ke sebuah file di sebuah basis data (insert)

 Pengambilan data dari sebuah file (retrieve/search)

 Pengubahan data dari dari sebuah file (update)

 Penghapusan data dari sebuah file (delete)

D. Objektif dan Penerapan Basis Data

Pemanfaatan basis data dilakukan untuk memenuhi sejumlah tujuan (objektif) seperti berikut :

 Kecepatan dan kemudahan (Speed)

 Efisiensi ruang penyimpanan (Space)

 Keakuratan (Accurate)

 Ketersediaan (Availability)

 Kelengkapan (Completeness)

 Keamanan (Security)

 Kebersamaan pemakai (Sharability)

Secara lebih nyata bidang-bidang fungsional yang telah umum memanfaatkan basis data antara lain :

 Kepegawaian

 Pergudangan (inventori)

 Akuntansi

 Layanan pelanggan (customer care)

 Dan lain-lain

Bentuk-bentuk organisasi/perusahaan yang memanfaatkan basis data (sebagai komponen sistem

informasi) dapat berupa: Perbankan, Asuransi, Rumah Sakit, Produsen Barang, Industri Manufaktur,

Pendidikan/ Sekolah, Telekomunikasi dan lain-lain.

II. SISTEM BASIS DATA

a. Definisi

Basis data hanyalah sebuah objek yang pasif. Ia tidak akan pernah berguna jika tidak ada pengelola atau

penggeraknya, yang menjadi pengelola atau penggerak secara langsung adalah program atau aplikasi

(software). Gabungan dari keduanya (basis data dan pengelolanya) menghasilkan sebuah sistem. Secara

umum sebuah sistem basis data merupakan sistem yang terdiri dari atas kumpulan file (tabel) yang saling

berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan program (DBMS)

8
Panduan Kuliah Basis Data TI-STMIK DCI’09
yang memungkinkan beberapa pemakai dan atau program lain untuk mengakses dan memanipulasi file-file

(table-tabel) tersebut.

Data Base Management System (DBMS)

User
Basis Data
File1 File3
User

File2 File4 User

Sistem Basis Data.

b. Komponen Sistem Basis Data

⇒ Perangkat Keras (Hardware)

Perangkat keras yang terdapat dalam sebuah system basis data adalah Komputer (stand alone atau

lebih dari satu/ networking), Memory sekunder (online dan offline) dan media/ perangkat komunikasi.

⇒ Sistem Operasi (Operating System)

Program pengelola basis data hanya dapat aktif (running) jika system operasi telah aktif. Sejumlah

Sistem Opersai yang banyak digunakan misalnya : MS-DOS, MS-Windows v.XX (untuk komputer

stand alone atau client dalam jaringan), Novel Netware, MS-Windows NT/2000, Unix (untuk

komputer server dalam jaringan).

⇒ Basis Data

Basis data dapat berisi : File/table, indeks dll. Disamping berisi dan menyimpan data, basis data juga

mengandung/ menyimpan definisi struktur.

⇒ Database Management System (Sistem Pengelola Basis Data)

DBMS merupakan sebuah perangkat lunak khusus yang akan menentukan bagaimana data

diorganisasikan, disimpan, diubah dan diambil.

DBMS juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, keakuratan/

konsistensi data dsb. Perangkat lunak DBMS antara lain : dBAse III+, dBase IV, FoxBase, Rbase,

MS Acess dan Borland Paradox, Borland Interbase, MS SQL Server, CA Open Ingres, Oracle,

Informix, Sybase, dll.

⇒ Pengguna Basis Data

a. Database Manager

9
Panduan Kuliah Basis Data TI-STMIK DCI’09
Suatu modul program yang menyediakan interface antara penyimpanan data dengan suatu aplikasi

program. Tugas dan tanggung jawab : interaksi dengan file manager, integrasi, keamanan, kontrol,

backup dan recovery.

b. Database Administrator (DBA).

Oarng yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh system baik data

maupun program yang mengakses data. Funsi DBA :

- mendefinisikan pola struktur database

- mendefinisikan struktur penyimpanan dan metode akses.

- mampu memodifikasi pola dan organisasi phisik.

- memberikan kekuasaan pada user untuk mengakses data.

- menspesifikasikan keharusan integritas data.

c. Database User

Ada 4 macam pemakai basis data yang berbeda keperluan dan cara aksesnya :

- Programmer Aplikasi.

Pemakai yang berinteraksi dengan basis data melalui DML (data manipulation language), yang

disertakan dalam program yang ditulis dalam bahasa pemrograman induk (C, Pascal, Basic,

Cobol, dll)

- User Mahir (Casual User)

Pemakai yang berinteraksi dengan system tanpa menulis modul program, mereka menyatakan

query dengan bahasa query yang telah disediakan DBMS.

- User Umum (End User Naïve User)

Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi

permanen (executableprogram) yang telah ditulis/ disediakan sebelumnya oleh programmer.

- User Khusus (Specialized User)

Pemakai khusus yang menuliskan aplikasi database tidak dalam kerangka data processing yang

tradisional, aplikasi tersebut diantaranya : CAD, Knowledge Base, Expert System, system yang

menyimpan data dalam bentuk data yang komplek misalnya data grafik, audio,dll.

⇒ Aplikasi Basis Data

Aplikasi (perangkat lunak) ini bersifat opsional, artinya ada tidaknya tergantung dari kebutuhan.

Program ini ada yang sudah disediakan bersama dengan DBMS nya, ada juga yang harus dibuat sendiri

dengan menggunakan aplikasi lain yang khusus (development tools). Artinya aplikasi ini ada yang

terpisah atau menyatu dengan DBMS.

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
Aplikasi yang menyatu dengan DBMS implementasinya akan lebih cocok untuk pemakaian sendiri

(stand alone) yang bebannya lebih ringan, perangkat lunak ini adalah : dBase III+, FoxBase dan MS-

Access.

Aplikasi yang terpisah dengan DBMS implementasinya akan lebih cocok untuk pemakaian berat oleh

banyak pemakai (multi user), perangkat lunak ini diantaranya : MS SQL Server, Oracle, CA

OpenIngres, Sysbase, Informix, IBM DB2, dll Perangkat lunak ini memang dirancang sejak awal

berdiri sendiri dan terpisah dari aplikasi basis datanya dan banyak sekali fasilitas (feature) yang

ditangani oleh DBMS ini.

III Syarat Basis Data

Penyusunan suatu basis data digunakan untuk mengatasi maslah maslah pada penyusunan data, yaitu :

 Redudansi dan Inkonsistensi Data

Redudansi adalah penyimpanan dibeberapa tempat untuk datayang sama dan mengakibatkan

pemborosan ruang penyimpanan dan juga biaya pengaksesan akan lebih tinggi. Akibat penyimpanan

yang berulang-ulang dibeberapa file dapat mengakibatkan juga inkonsistensi (tidak konsisten).

 Kesulitan pengaksesan data.

Belum adanya fasilitas tertentu untuk memenuhi permintaan user tentang pengaksesan data,

penyelesaian dan solusi untuk hal ini adalah ke arah DBMS yang mampu mengakses data secara

langsung dengan bahasa yang familiar dan user friendly.

 Isolasi Data untuk Standarisasi

Jika data tersebar dalam beberapa file dalam bentuk format yang tidak sama, misalnya bilamana data

dibuat dari format text file Pascal, Basic, dan juga dalam format C++ dan lainnya, ini akan

menyulitkan dalam menulis program aplikasi untuk mengambil dan menyimpan data. Maka haruslah

data dalam satu basis data dibuat satu format sehingga mudah dalam pembuatan program aplikasinya.

 Multiple User (Banyak pemakai)

Basis data dibangun karena nantinya data tersebut digunakan oleh banyak orang dalam waktu yang

berbeda, diakses oleh program yang sama tapi berbeda orang dan waktu, karena data yang diolah

tidaklah tergantung dan menyatu dalam program tapi terlepas dalam satu kelompok data.

 Masalah keamanan (security)

Tidak setiap pemakai sistem basis data diperbolehkan untuk mengakses semua data (pengaturan hak

akses), misalnya disesuaikan dengan jabatan dan kapasitas pemakai tersebut di sebuah perusahaan.

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
Keamanan ini dapat diatur lewat program yang dibuat oleh pemrogram atau fasilitas keamanan dari

sistem operasi.

 Masalah Integritas (kesatuan)

Database berisi file-file yang saling berkaitan, secara teknis maka ada field kunci yang mengkaitkan

file-file tersebut.

 Masalah Data Independence (kebebasan data)

Bahasa yang diciptakan dari DBMS apapun yang terjadi pada struktur file misalnya melihat atau

menambah data cukuplah dengan utility yang disediakan, ini berarti perintah-perintah dalam paket

DBMS bebas terhadap basis data. Apapun perubahan dalam basis data semua perintah akan

mengalami kestabilan tanpa perlu ada yang diubah. Berbeda dengan sistem pemrosesan file dengan

suatu bahasa tertentu yang sudah dibuat, kemudian terjadi perubahan struktur file maka program

tersebut haruslah diubah, dan ini tidak bebas terhadap database yang ada.

IV. Abstraksi Data

Abstraksi data merupakan tingkatan/ level dalam bagaimana melihat data dalam sebuah basis data . Ada

3 level abstraksi data :

View 1 View 2 View 3

Level Konseptual

Level Fisik

Level Abstraksi Data

Keterangan :

• Level Fisik (Physical Level)

Adalah level terendah dalam abstraksi data, menggambarkan bagaimana sesungguhnya suatu data

disimpan dalam kondisi sebenarnya. Data dilihat sebagai gabungan dari struktur dan datanya sendiri,

level ini berurusan dengan data sebagai teks, angka atau bahkan melihatnya sebagai himpunan bit

data.

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
• Level Konseptual (Conceptual Level)

Adalah level yang menggambarkan data apa yang sebenarnya disimpan dalam basis data dan

hubungannya dengan data yang lain. Data disimpan/ direpresentasikan dalam beberapa file/table

yang saling berhubungan.

• Level Pandang Pemakai (View Level)

Adalah level tertinggi dari abstraksi data, level ini sangat dekat dengan user yang hanya menunjukan

sebagian dari basis data. Level ini yang mengkonversikan data asli/fisik menjadi data bermakna/lojik

pada pemakai.

V. Bahasa Basis Data

DBMS merupakan perantara bagi pemakai dengan basis data dalam disk, cara berkomunikasinya diatur

dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Contoh-contoh bahasa

basis data diantaranya adalah SQL, dBase, Ouel dan sebagainya. Sebuah Bahasa Basis Data biasanya

dapat dipilah kedalam 2 bentuk, yaitu :

a. DDL (Data Definition Language)

b. DML (Data Manipulation Language)

• DDL

Struktur/ skema basis data yang menggambarkan/ mewakili desain basis data, dengan bahasa ini

dapat membuat table baru, membuat indeks, mengubah table, menentukan struktur penyimpanan

table dsb. Hasil kompilasi perintah DDL adalah kumpulan tabel yang disimpan dalam file khusus yang

disebut kamus data.

• DML

Bahasa basis data yang berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis

data, manipulasi dapat berupa penyisipan, penghapusan dan pengubahan data di suatu basis data. DML

ini bertujuan memudahkan pemakai untuk mengakses data.

VI. Struktur Sistem Basis Data

Naïve user Programmer Casual User DBA


Aplikasi

Program System Query Skema


aplikasi calls basis data

1
Panduan Kuliah Basis Data TI-STMIK DCI’09

DML Query DDL


precompiler processor compiler

Kode objek Database


program Manager
aplikasi

File
Manager

Data files Data


dictionary

Disk

Struktur Sistem Basis Data Keseluruhan

1
Panduan Kuliah Basis Data TI-STMIK DCI’09

BAB II

MODEL DATA
 Definisi

Model data adalah kumpulan perangkat konseptual untuk menggambarkan data,

hubungan data, makna data dan batasan data. Model data ini lebih tepat jika

disebut Model Data Lojik. Ada sejumlah cara dalam merepresentasikan model

data dalam perancangan basis data, yaitu secara umum dapat dibagi dalam 2 (dua)

kelompok :

1. Model Lojik Data Berbasis Objek


(Object Based Logical Models), terdiri dari :
• Model Keterhubungan Entitas (Entity Relationship Model)
• Model Berorientasi Objek (Object Oriented Model)
• Model Data Semantik (Semantic Data model)
• Model Data Fungsional (Functional Data Model)
2. Model Lojik Data Berbasis Record
(Record Base Logical Models), terdiri dari :
• Model Relasional (Relational Model)
• Model Hirarkis (Hierarchical Model)
• Model Jaringan (Network Model)
 Model Keterhubungan Entitas (Entity Relationship

Model)

ER-Model dapat didefinisikan suatu model untuk menjelaskan hubungan antara

data dalam basis data, didasarkan pada persepsi bahwa “real world” terdiri dari

objek-objek dasar yang memiliki relasi / hubungan antar objek. Pada ER-Model,

semesta data yang ada di dunia nyata diterjemahkan/ ditransformasikan dengan

1
Panduan Kuliah Basis Data TI-STMIK DCI’09

memanfaatkan sejumlah perangkat konseptual menjadi sebuah diagram data, yang

umum disebut “Entity Relationship Diagram (ER-D)”.

Komponen-komponen pembentuk ER-Model :

a. Entitas : individu yang mewakili sesuatu yang nyata dan dapat dibedakan dari

sesuatu yang lain.

b. Atribut : yang mendeskripsikan karakteristik (properti) dari entitas.

c. Relasi : menunjukan adanya hubungan diantara sejumlah entitas.

d. Kardinalitas : menunjukan jumlah maksimum entitas yang dapat berelasi dengan

entitas pada himpunan entitas yang lain, dapat berupa :

- Satu ke Satu (One to One)

- Satu ke Banyak (One to Many) / Banyak ke Satu (Many to One)

- Banyak ke Banyak (Many to Many)

Satu ke satu (One to One) : entitas pada himpunan entitas A berhubungan

dengan paling banyak dengan satu entitas pada himpunan entitas B, dan

sebaliknya.

A B

Entitas 1 Entitas 1

Entitas 2 Entitas 2

Entitas 3 Entitas 3

Satu ke Banyak (One to Many)/ Banyak ke Satu (Many to One) : entitas

pada himpunan entitas A dapat berhubungan dengan banyak entitas pada

1
Panduan Kuliah Basis Data TI-STMIK DCI’09

himpunan entitas B, tetapi tidak sebaliknya untuk setiap entitas pada himpunan

entitas B berhubungan paling banyak dengan satu entitas pada himpunan

entitas B.

A B

Entitas 1
Entitas 1

Entitas 2

Entitas 3
Entitas 2

Entitas 4

Untuk derajat relasi Banyak ke Satu (Many to One) sebaliknya dari pernyataan

diatas atau kondisi gambar diatas.

Banyak ke Banyak (Many to Many) : entitas pada himpunan entitas A dapat

berhubungan dengan banyak entitas pada himpunan entitas B, juga sebaliknya.

A B

Entitas 1 Entitas 1

Entitas 2 Entitas 2

Entitas 3 Entitas 3

Entitas 4 Entitas 4

 Entity Relationship Diagram (ER-D)

Model Entity-Relationship berisi komponen-komponen himpunan entitas dan

himpunan relasi yang masing-masing dilengkapi dengan atribut-atribut yang


1
Panduan Kuliah Basis Data TI-STMIK DCI’09

merepresentasikan seluruh fakta dari ‘dunia nyata’, dapat digambarkan dengan

lebih sistematis dengan menggunakan Entity Relationship Diagram (ER-D). Notasi

simbolik yang digunakan di dalam ER Diagram adalah :

Persegi Panjang Menyatakan himpunan entitas


E

Lingkaran atau Elip Menyatakan atribut, atribut yang


a berfungsi sebagai key diberi garis bawah

Belah Ketupat Menyatakan himpunan relasi

Garis Sebagai penghubung antara himpunan


relasi dengan himpunan entitas dan
himpunan entitas dengan atributnya

Kardinalitas Relasi Menyatakan jumlah maksimum entitas


yang dapat berelasi dengan entitas pada
1 dan 1 (satu ke satu) himpunan entitas yang lain.
1 dan N (satu ke
banyak)
N dan N (banyak ke
banyak)

Berikut contoh penggambaran relasi antar himpunan entitas lengkap dengan

kardinalitas relasi dan atribut-atributnya :

• Relasi satu ke satu (One-to-One)

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
nama dosen alamat_dosen nama dosen kode jurusan kode jurusan nama_jurusan

1 1
Dosen Mengepalai Jurusan

Pada relasi ini, setiap dosen paling banyak mengepalai satu jurusan dan setiap

jurusan pasti dikepalai oleh paling banyak satu orang dosen. Pada himpunan

entitas Dosen dan himpunan entitas Jurusan memiliki dua atribut, yang salah

satunya (memakai garis bawah) berfungsi sebagai kunci (key). Sementara pada

himpunan Relasi juga terdapat dua atribut, yang keduanya sebetulnya berasal

dari atribut key masing-masing himpunan entitas, maka kedua atribut tersebut

digolongkan sebagai kunci tamu (foreign key), yang berfungsi sebagai

penghubung antar himpunan entitas.

• Relasi satu ke banyak (One to Many)


nama dosen alamat_dosen nama dosen kode kuliah kode kuliah nama_kuliah

1 N
Dosen Mengajar Kuliah

waktu tempat sks semester

Pada relasi ini, setiap dosen dapat dapat mengajar lebih dari satu mata kuliah,

sedangkan setiap matakuliah dipegang hanya paling banyak oleh satu orang

dosen. Pada himpunan relasi terdapat dua foreign key yang berasal dari

himpunan entitas, tetapi ada pula dua atribut tambahan yang tidak berasal dari

himpunan entitas. Hal ini memang dimungkinkuan dan bahkan umum terjadi.

• Relasi banyak ke banyak (Many to Many)

1
Panduan Kuliah Basis Data TI-STMIK DCI’09
nim nama_mhs nim kode kuliah kode kuliah nama_kuliah

N N
Mahasiswa Mempelajari Kuliah

alamat_mhs tgl_lahir indeks_nilai sks semester

Pada relasi ini setiap mahasiswa dapat mempelajari lebih dari satu mata kuliah,

demikian juga sebaliknya setiap mata kuliah dapat dipelajari oleh lebih dari

satu orang mahasiswa.

Pembuatan Diagram E-R


Diagram E-R selalu dibuat secara bertahap, langkah-langkah teknis yang dapat

dilakukan untuk menghasilkan Diagram E-R, adalah sebagai berikut :

• Mengidentifikasi dan menetapkan seluruh himpunan entitas yang akan terlibat.

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

• Mengidentifikasi dan menetapkan seluruh himpunan relasi diantara himpunan

entitas-himpunan entitas yang ada beserta foreign key nya.

• Menentukan derajat atau kardinalitas relasi untuk setiap himpunan relasi.

• Melengkapi himpunan entitas dan himpunan relasi dengan atribut deskripsi

(nonkey).

Diagram E-R dengan Kamus Data


Pendeklarasian atribut-atribut pada Diagram E-R dapat dipisahkan dan dinyatakan

dalam sebuah kamus data. Ini diperbolehkan jika sebuah sistem yang ruang

lingkupnya lebar dan kompleks. Kamus data berisi atribut yang diapit kurung

kurawal dan atribut yang berfungsi sebagai key juga dibedakan dengan atribut

yang bukan key, dengan menggaris bawahi atribut tersebut. Berikut contoh

Diagram E-R dengan Kamus Data :

2
Panduan Kuliah Basis Data TI-STMIK DCI’09

N N N 1
Mahasiswa Mempelajari Kuliah Mengajar Dosen

Kamus Data :

• Mahasiswa = { nim, nama_mhs, alamat_mhs, tgl_lahir }

• Kuliah = { kode kuliah, nama_kuliah, sks, semester }

• Dosen = { nama dosen, alamat_dosen }

• Mempelajari = { nim, kode kuliah, indeks_nilai }

• Mengajar = { kode kuliah, nama dosen, waktu, tempat }

 Model Jaringan (Network Model)

Model jaringan akan terdiri atas sekumpulan record yang dihubungkan satu sama

lain melalui link (yang berupa pointer), sebuah record setara dengan dengan

sebuah entitas dalam ER Model. Sebuah record adalah sekumpulan field yang

masing-masing hanya berisi sebuah nilai data. Sebagai contoh ada dua tipe record

yaitu dosen dan mata kuliah yang dapat dideklarasikan sebagai berikut :

type dosen = record type kuliah = record


kode_dos : kode_kul :
integer ; string ;
nama_dos : nama_kul :
string ; string ;
alamat_dos : sks : integer;
string; semester :
end integer;
end

2
Panduan Kuliah Basis Data

Dengan struktur record seperti itu, berikut diagram struktur

data :

nama dos alamat dos kode kul nama_kul sks semester

Dosen Mengajar Kuliah

Diagram struktur data merupakan skema yang menyatakan

desain basis data jaringan, diagram tersebut terdiri dari dua

komponen yaitu kotak yang menunjukan tipe record dan garis

yang menunjukan link.

Berikut data dan link yang terjadi antara record dosen dan

record kuliah :

IF-249 Perancangan Sistem 2 5


Yogaswara, MT Jl. Kaliurang

IF-976 Organisasi Komputer 3 3

Respati, MSc Jl. Edelwis MI-707 Basis Data 3 3

Rusi, Ir Jl. Mawar MI-774 Analisis Sistem 3 4

Cara diatas hanya layak diterapkan pada basis data dengan link

yang berderajat satu ke satu atau satu ke banyak, dan cara

diatas akan sulit jika diterapkan untuk link yang berderajat

banyak ke banyak. Model jaringan ini secara umum sukar untuk

diimplementasikan dan sangat komplek. Kelebihna dari model

jaringan ini adalah efisiensi ruang penyimpanan akibat ketiadaan


Panduan Kuliah Basis Data

redudansi data dan akses data yang cepat karena langsung

memanfaatkan pointer ke alamat fisik data. Saat ini dapat

dikatakan model jaringan sudah tidak dimanfaatkan lagi, kecuali

untuk aktivitas-aktivitas penelitian.

 Model Hirarkis (Hierarchical Model)

Model hirarkis akan terdiri atas sekumpulan record yang

dihubungkan satu sama lain melalui link (yang berupa pointer)

yang membentuk suatu struktur hirarkis, pengertian record dan

link sama seperti pada model jaringan. Berikut contoh diagram

struktur pohon yang mengilustrasikan hubungan record dosen

dan mata kuliah :

nama dos alamat dos


Dosen

kode kul nama_kul sks semester


Kuliah

Diagram struktur pohon merupakan skema yang digunakan untuk

basis data hirarkis. Diagram tersebut terdiri dari dua komponen

yaitu kotak yang menunjukan tipe record dan garis yang

menunjukan link. Berikut himpunan record-record dosen dan

kuliah diorganisasikan dalam sebuah struktur pohon:

Kuliah
Panduan Kuliah Basis Data

Yogaswara, MT Jalan Respati, MSc Jalan Rusi, Ir Jalan


Kliurng Edelwis Mawar

IF-249 P S I 2 5 MI-707 DBMS 3 3 MI-774 ANSI 3 4

IF-976 ORKOM 3 3

Dari sruktur pohon tersebut dapat disimpulkan bahwa tipe

record kuliah berada dibawah tipe record dosen secara hirarkis.

Maka disebutkan tipe record kuliah merupakan child dan tipe

record dosen merupakan parent dalam struktur pohon tersebut.

Penggunaan struktur pohon sejauh ini tidak ada yang aneh, hanya

jika digunakan untuk relasi dengan derajat banyak ke banyak

akan menghasilkan banyak sekali redudansi data, kesulitan juga

terjadi pada operasi query dan manipulasi data tertentu.

Keunggulan dari model ini terletak pada keteraturan struktur

yang ditunjukan dan sangat cocok diterapkan pada sebuah

system/ persoalan yang keterkaitan antara objek-objek di

dalamnya mengikuti struktur hirarkis tertentu. Karena

keterbatasan pemakainya dan kelemahan yang cukup mendasar,

seiring dengan semakin sempurnanya “model relasional”, model

hirarkis ini juga jarang untuk dimanfaatkan.


Panduan Kuliah Basis Data

BAB III

PERANCANGAN BASIS DATA


 Definisi

Perancangan basis data merupkan suatu hal yang sangat penting, kesulitan utama
dalam merancang basis adalah bagaimana merancang basis data sehingga dapat
memuaskan/ memenuhi keperluan saat ini dan masa mendatang. Dalam merancang
basis data dapat dilakukan dengan dua buah teknik/ pendekatan yaitu :
1. Menerapkan Normalisasi terhadap struktur table yang telah diketahui, atau

dengan

2. Langsung membuat model Entity-Relationship.

Perancangan basis data seringkali diasosiasikan dengan pembuatan model Entity-

Relationship (ER-Model), dimana kelompok-kelompok data dan relasinya

diwujudkan dalam bentuk diagram, hal itu tidak salah karena model memang

merupakan representasi nyata dari sebuah perancangan.

Normalisasi merupakan cara pendekatan lain dalam membangun desain lojik basis

data relasional yang tidak secara langsung berkaitan dengan model data, tetapi

dengan menerapkan sejumlah aturan dan kriteria standar untuk menghasilkan

struktur table yang yang normal. Namun dalam pelaksanaannya desain lojik basis
Panduan Kuliah Basis Data

data relasional yang didasari baik oleh prinsip normalisasi maupun model ER akan

menghasilkan hasil yang mirip.

Dalam pendekatan Normalisasi :

• Perancang basis data bertitik tolak dari situasi yang nyata.

• Perancang basis data telah memiliki item-item yang siap ditempatkan dalam

baris dan kolom pada table.

• Demikian juga dengan sejumlah aturan tentang keterhubungan antara item

data.

Dalam pendekatan model Entity Relationship :

• Langsung membuat model data lebih tepat dilakukan jika yang telah diketahui

baru prinsip-prinsip sistem secara keseluruhan.

Kedua pendekatan ini cukup sering terjadi dilakukan bersama-sama, berganti-

ganti. Dari fakta yang telah dimiliki dilakukan normalisasi, untuk kepentingan

evaluasi dan dokumentasi hasil normalisasi tersebut diwujudkan dalm bentuk

sebuah model data. Model data yang sudah jadi tersebut bisa saja dimodifikasi

dengan pertimbangan tertentu. Hasil modifikasi itu kemudian diimplementasikan

dalam bentuk sejumlah struktur table dalam sebuah basis data. Struktur ini bisa

diuji kembali dengan menerapkan aturan-aturan normalisasi, sehingga akhirnya

dapat diperoleh sebuah struktur basis data yang benar-benar efektif dan efisien.

Begitulah kedua pendekatan ini dapat saling memperkuat satu sama lain.

Normalisasi

Normalisasi merupakan proses pengelompokan data elemen menjadi tabel-tabel

yang menunjukan entity dan relasinya atau lebih difokuskan pada tinjauan

komprehensif terhadap setiap kelompok dan (tabel) secara individual.

Sebelum mengenal lebih jauh mengenai normalisasi ada beberapa konsep yang

harus diketahui terlebih dahulu :

• Field/ Atribut kunci (Key)

• Ketergantungan Fungsional (Functional Depedency)

Field/ Atribut kunci (Key)


Panduan Kuliah Basis Data

Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan

semua baris data (row) dalam tabel secara unik. Terdapat beberapa macam key

yang dapat diterapkan pada suatu tabel, yaitu:

1. Super Key

Satu atau lebih atribut (kunmpulan atribut) yang dapat membedakan setiap

baris data dalam sebuah table secara unik. Bisa terjadi ada lebih dari satu

kumpulan atribut yang bersifat seperti itu dalam sebuah tabel, misalnya:

Pada tabel nasabah terdapat atribut-atribut sebagai berikut :

no_rek, nama, no_ktp, tempat_lahir, tgl_lahir, alamat

Super Key : no_rek : karena unik tidak mungkin ganda

no_ktp : karena unik tidak mungkin ganda

nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini.

2. Candidate Key

Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data

dalam sebuah tabel secara unik. Jika satu kunci kandidat berisi lebih dari satu

atribut, maka biasanya disebut sebagai composite key (kunci campuran/

gabungan). Pada tabel nasabah misalnya :

Candidate Key :

no_rek : karena unik tidak mungkin ganda

nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini.

nama + tgl_lahir : mungkin dapat dipakai sebagai kunci karena kemungkinan sangat

kecil seseorang punya nama sama yang lahir pada hari yang sama. (composite key)

3. Primary Key

Pada sebuah tabel dimungkinkan adanya lebih dari satu candidate key, salah

satu dari candidate key (jika memang ada lebih dari satu) dapat dijadikan

sebagai primary key. Pemilihan primary key dari sejumlah candidate key

tersebut didasari oleh :


Panduan Kuliah Basis Data

• Dapat mengidentifikasi secara unik suatu kejadian dan dapat mewakili

setiap kejadian dari suatu entity (bersifat unik).

• Lebih sering (lebih natural) untuk dijadikan sebagai acuan.

• Lebih ringkas dan jaminan keunikan key tersebut lebih baik.

• Tidak boleh “null” (tidak ada datanya) dan Harus bisa menjamin setiap

nilai primary key pada sebuah table, harus dimiliki pula oleh table

lainnya.

Dengan pertimbangan-pertimbangan tersebut, maka yang paling cocok

digunakan sebagai primary key pada tabel nasabah adalah “no_rek”.

4. Alternate Key

Adalah candidate key yang tidak menjadi/ tidak dipakai sebagai primary key.

Terkadang alternate key ini dipakai sebagai kunci pengurutan dalam laporan

misalnya.

5. Foreign Key

Foreign key (kunci tamu) adalah satu atribut yang melengkapi satu relationship

yang menunjukan ke induknya. Kunci tamu ditempatkan pada entity anak dan

sama dengan kunci utama (primary key) induk relasinya. Contoh

Tabel Dosen :

sandi_dose nama no_ktp alamat gender


n
24001 Yogaswara, 117624 Jl. Kaliurang no.24 Laki-laki
MT
24005 Respati, ST 110282 Jl. Pasanggrahan no.6 Laki-laki
24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan
sandi_dosen = primary key

Tabel Mata kuliah

kode_mtku mata_kuliah semeste sks sandi_dosen


l r
IF-2424 Basis Data 4 3 24001
IF-0707 Analisis Sistem Informasi 5 2 24077
IF-0583 Organisasi Komputer 3 2 24005
IF-7683 Arsitektur Komputer 4 3 24001
kode_mtkul = primary key
sandi_dosen = foreign key
Panduan Kuliah Basis Data

Field sandi_dosen pada tabel dosen sebagai primary keysedangkan field

sandi_dosen pada tabel mata kuliah sebagai foreign key, karena tabel mata

kuliah ini berhubungan dengan tabel dosen sebgai induknya.

Ketergantungan Fungsional (Functional Depedency)

Definisi dari functional depedence adalah :

“ Diberikan sebuah relasi R, atribut Y dari R adalah bergantung fungsi

pada atribut X dari R jika dab hanya jika setiap nilai X dalam R punya

hubungan dengan tetap satu nilai Y dalam R (dalam setiap satu

waktu)”.

Pada tabel dosen berisi atribut :

sandi_dose nama no_ktp alamat gender


n
24001 Yogaswara, MT 117624 Jl. Kaliurang no.24 Laki-laki
24005 Respati, ST 110282 Jl. Pasanggrahan no.6 Laki-laki
24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan

Isi dari atribut nama bergantung pada sandi_dosen. Jadi dapat dikatakan bahwa

atribut nama bergantung secara fungsi pada sandi_dosen dan sandi_dosen

menunjukan secara fungsi nama. Jika ingin mengetahui sandi_dosen seorang dosen,

maka dapat menentukan nama dosen tersebut. Notasi untuk ketergantungan fungsi

ini adalah :

sandi_dosen nama

atau

nama = f (sandi_dosen)

 Bentuk Bentuk Normalisai

Pada proses normalisasi terdapat tahapan-tahapan (bentuk) normalisasi, yaitu :

• Bentuk Tidak Normal (Un normalized Form)

Merupakan bentuk kumpulan data yang akan direkam, tidak ada keharusan

mengikuti suatu format tertentu, dapat saja data tidak lengkap atau

terduplikasi. Data dikumpulkan apa adanya sesuai kedatangannya.


Panduan Kuliah Basis Data

• Bentuk Normal Pertama (1NF/ First Normal Form)

Jika semua atribut mempunyai nilai data yang atomic (tidak dapat dipecah

lagi), tetapi masih terdapat beberapa atribut yang muncul secara berulang.

• Bentuk Normal Kedua (2NF/ Second Normal Form)

Relasi telah berada/ memenuhi bentuk normal pertama dan semua atribut

yang bukan kunci hanya bergantung secara fungsi pada kunci utama/

primary key. Pada bentuk normal kedua haruslah sudah ditentukan kunci

kunci field.

• Bentuk Normal Ketiga (3NF/Third Normal Form)

Relasi telah berada/ memenuhi bentuk normal kedua dan semua atribut

yang bukan kunci adalah non transitive dependency (ketergantungan

transitif = bila menjadi atribut biasa pada suatu relasi, tetapi menjadi

kunci pada relasi lainnya)

• Boyce-Codd Normal Form (BCNF)

Relasi harus sudah dalam bentuk ketiga dan setiap atribut harus

bergantung fungsi pada atribut super key/ semua determinannya

merupakan candidate key.

Contoh Kasus :

Sebuah Relasi “ Rawat Pasien “

• Bentuk Tidak Normal (Un normalized Form)

no_pasien nama jenis_perawatan jenis_kamar Biaya_kamar


P0001 Bati Gawat Darurat KM001 Rp.100.000
P0002 Totti Rawat Inap KM002 Rp.75.000
P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000
P0004 Maldini Rawat Jalan KM004 Rp.25.000
P0005 Cana Rawat Inap
P0006 Ihlam Rawat Inap Sehari
P0007 Nuno Gawat Darurat
P0008 Gomes Rawat Jalan
• Bentuk Normal Pertama (1NF/ First Normal Form)

no_pasien nama jenis_perawatan jenis_kamar biaya_kamar


P0001 Bati Gawat Darurat KM001 Rp.100.000
P0002 Totti Rawat Inap KM002 Rp.75.000
Panduan Kuliah Basis Data

P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000


P0004 Maldini Rawat Jalan KM004 Rp.25.000
P0005 Cana Rawat Inap KM002 Rp.75.000
P0006 Ihlam Rawat Inap Sehari KM003 Rp.50.000
P0007 Nuno Gawat Darurat KM001 Rp.100.000
P0008 Gomes Rawat Jalan KM004 Rp.25.000
• Bentuk Normal Kedua (2NF/ Second Normal Form)

Menjadi : Relasi “Pasien” dan “Biaya_Rawat”

Relasi “Pasien”

no_pasien nama jenis_perawatan


P0001 Bati Gawat Darurat
P0002 Totti Rawat Inap
P0003 Nesta Rawat Inap Sehari
P0004 Maldini Rawat Jalan
P0005 Cana Rawat Inap
P0006 Ihlam Rawat Inap Sehari
P0007 Nuno Gawat Darurat
P0008 Gomes Rawat Jalan

Relasi “Biaya_Rawat”

jenis_perawatan jenis_kamar biaya_kamar


Gawat Darurat KM001 Rp.100.000
Rawat Inap KM002 Rp.75.000
Rawat Inap Sehari KM003 Rp.50.000
Rawat Jalan KM004 Rp.25.000

• Bentuk Normal Ketiga (3NF/Third Normal Form)

Menjadi : Relasi “Pasien”, “Kamar_Rawat” dan “Biaya_Rawat”

Relasi “Pasien”

no_pasien nama jenis_perawatan


P0001 Bati Gawat Darurat
P0002 Totti Rawat Inap
P0003 Nesta Rawat Inap Sehari
P0004 Maldini Rawat Jalan
P0005 Cana Rawat Inap
P0006 Ihlam Rawat Inap Sehari
Panduan Kuliah Basis Data

P0007 Nuno Gawat Darurat


P0008 Gomes Rawat Jalan

Relasi “Kamar_Rawat”

jenis_perawatan jenis_kamar
Gawat Darurat KM001
Rawat Inap KM002
Rawat Inap Sehari KM003
Rawat Jalan KM004

Relasi “Biaya_Rawat”

jenis_kamar biaya_kamar
KM001 Rp.100.000
KM002 Rp.75.000
KM003 Rp.50.000
KM004 Rp.25.000

Relasi Antar Tabel

Pasien Biaya_Rawat
no_pasien * jenis_kamar *
nama biaya_kamar
jenis_perawatan **

Keterangan :
Kamar_Rawat * = primary key
jenis_perawatan * ** = foreign key
jenis_kamar **

• Boyce-Codd Normal Form (BCNF)


Panduan Kuliah Basis Data

Misalnya : Relasi “Seminar”

no_peser seminar Instruktur


ta
240100 7783 Rusi, Ir
240101 7783 Respati, ST
240102 7776 Pita, Ir
240101 7776 Yogaswara, MT
240109 7776 Yogaswara, MT
Menjadi : Relasi “Pengajar” dan “Peserta-Instruktur”

Relasi “Pengajar”

Seminar Instruktur
7783 Rusi, Ir
7783 Respati, ST
7776 Pita, Ir
7776 Yogaswara, MT
Relasi “Peserta-Instruktur”
no_peser Instruktur
ta
240100 Rusi, Ir
240101 Respati, ST
240102 Pita, Ir
240101 Yogaswara, MT
240109 Yogaswara, MT
 Soal-Soal Latihan :

Latihan I :

Misalnya diketahui relasi “Karyawan” sebagai berikut :

Nip Nama tgl_lahir alamat tgl_sk no_sk gol gaji tun status
j
1230 Rusi 1/2/70 Jl.Edelwi 1/3/84 3/sk/8 2A 50 25 Aktif
s 4
1230 Rusi 1/2/70 Jl.Edelwi 5/6/87 6/sk/8 2B 65 40 Aktif
s 7
1231 Resa 8/1/68 Jl.Elang 15/7/7 7/sk/7 3A 80 35 Aktif
5 5
1231 Resa 8/1/68 Jl.Elang 7/2/78 2/sk/7 3B 100 65 Aktif
8
1231 Resa 8/1/68 Jl.Elang 21/12/8 12/sk/8 3C 120 75 Aktif
1 1
1231 Resa 8/1/68 Jl.Elang 1/2/82 1/sk/82 3C 120 75 Keluar
1232 Pita 4/3/72 Jl.Dahlia 5/4/89 4/sk/8 2A 50 35 Aktif
Panduan Kuliah Basis Data

9
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

Latihan II :

Misalnya diketahui relasi “Pemesanan Tiket Kereta” sebagai berikut :

n nam almt Kd_kr Nm_krta tujua tar tgl_ps jam jm Jml_b


o a ta n if n l yr
1 Resa Jl.Edelw A Parahiyanga Bdg 50 1/9/0 08:0 2 100
is n 3 0
1 Resa Jl.Edelw B Sawunggali Pwkt 100 2/9/0 10:0 2 200
is h 3 0
2 Yoga Jl.Xurg C SenjaExpre Yogy 150 3/9/0 12:0 2 300
s a 3 0
2 Yoga Jl.Xurg D ArgoBromo Sby 20 4/9/0 14:0 2 400
0 3 0
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

Latihan III :

Misalnya diketahui relasi “Pembelian Barang” sebagai berikut :

No kode nama kode nama tgl jatuh qty harg jml total
Fa supp supp brg barang temp a
c o
79 S02 Swa R02 Plooter 2/2/ 9/3/ 10 150 1500 1500
9 04 04
99 G01 Ara A01 Hd 7/2/ 9/3/ 10 1350 1350 33500
8 Segeat 04 04 0
99 G01 Ara A02 Hd 7/2/ 9/3/ 10 200 2000 33500
8 Quntm 04 04 0 0

Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?

BAB IV

IMPLEMENTASI BASIS DATA


 Definisi
Panduan Kuliah Basis Data

Implementasi basis data merupkan upaya untuk membangun basis data fisik yang
ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS, tahap
implementasi basis data diawali dengan melakukan transformasi dari model data
yang telah selesai dibuat skema/ struktur basis data sesuai dengan DBMS yang
dipilih. Secara umum sebuah Diagram ER akan direpresentasikan menjadi sebuah
basis data fisik, sedangkan komponennya berupa himpunan entitas dan himpunan
relasi akan ditransformasikan menjadi table-tabel (file-file data) dan atribut akan
dinyatakan sebagai field-field dari tabel-tabel yang sesuai.
Faktor-faktor yang mempengaruhi performansi sistem basis data :
• Kualitas dan bentuk perancangan basis data yaitu struktur basis data dan cara

akses (algoritma aplikasi)

• Kualitas mesin

• Sistem Operasi

• DBMS (Data Base Management System)

 Transformasi Model Data ke Basis Data Fisik

Aturan umum dalam pemetaan model data yang digambarkan dengan Diagram ER
menjadi Basis Data Fisik adalah sebagai berikut :
1. Setiap himpunan entitas akan diimplementasikan sebagai sebuah tabel (file

data).

nim nama_mhs

Mahasiswa

alamat_mhs tgl_lahir

Tabel Mahasiswa :
nim nama_mhs alamat_mhs tgl_lahir

2. Relasi dengan derajat relasi 1 – 1 (satu ke satu)

kode dosen nama alamat kode dosen kode jurusan kode jurusan nama_jurusan

1 1
Dosen Mengepalai Jurusan
Panduan Kuliah Basis Data

Direperesentasikan dalam bentuk penambahan/ penyertaan atribut-atribut


relasi ke table yang mewakili salah satu dari kedua himpunan entitas.

Tabel Dosen : Tabel Jurusan :


kode_dos Nama Alamat kode_juru nama_jur kode_dos
en san usan en

3. Relasi dengan derajat relasi 1 – N (satu ke banyak)

nama alamat kode dosen kode kuliah kode kuliah nama_kuliah

1 N
Dosen Mengajar Kuliah

kode dosen waktu tempat sks semester

Juga direpresentasikan dalam bentuk pemberian/ pencantuman atribut key


dari himpunan entitas pertama (yang berderajat 1) ke tabel yang mewakili
himpunan entitas ke dua (yang berderajat N).
Tabel Dosen :
kode_dosen nama alamat

Tabel Kuliah :
kode_kulia nama_kulia sks semest kode_dose tempat waktu
h h er n

Dari hasil transformasi diatas jika kemudian ternyata bahwa atribut waktu
pada table kuliah merupakan atribut bernilai banyak, maka table tersebut
tidak memenuhi bentuk normal tahap pertama (1 NF). Maka table ini dapat
didekomposisikan lagi menjadi sebagai berikut.
Tabel Kuliah :
Kode_kulia nama_kulia sks semest Kode_dose
h h er n

Tabel Jadwal :
Panduan Kuliah Basis Data

Kode_kulia tempat waktu


h

4. Relasi dengan derajat relasi N – N (banyak ke banyak)

nim nama_mhs nim kode kuliah kode kuliah nama_kuliah

N N
Mahasiswa Mempelajari Kuliah

alamat_mhs tgl_lahir indeks_nilai sks semester

Direpresentasikan dalam bentuk tabel (file data) khusus yang memiliki field
(foreign key) yang berasal dari key-key dari himpunan entitas yang
menghubungkannya.
Tabel Mahasiswa :
nim Nama_mhs alamat_mhs tgl_lahir

Tabel Memepelajari/ Nilai (Tabel Khusus) :


nim kode_kuliah indeks_nilai

Tabel Kuliah :
kode_kuliah nama_kuliah sks Semester

 Model Data Lanjutan

Pada bab sebelumnya sudah dikenalkan komponen-komponen model data dasar


dalam kegiatan perancangan serta langkah-langkah teknis dalam
mentransformasikan fakta dilapangan ke sebuah model data, berikut dibahas
sejumlah varian komponen-komponen perancangan basis data serta proses-proses
lanjutannya.
1. Himpunan Entitas Lemah (Weak Entity Sets)

Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung


pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity =
sebaliknya dari entitas lemah), himpunan entitas lemah biasanya tidak memiliki
key yang dapat menjamin keunikan entitas didalamnya.
Panduan Kuliah Basis Data

nim nama_ortu nama_ortu

1
Memiliki Orang Tua
nim nama_mhs

1 alamat_ortu

Mahasiswa

1 hobbi
nim hobbi

alamat_mhs tgl_lahir
N
Mempelajari Hobbi

Data orang tua dan hobbi dapat digolongkan sebagai entitas lemah (dalam ER-D
dinyatakan dengan kotak garis ganda), karena kemunculannya sangat
tergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas
mahasiswa. Atribut nama_ortu dan hobbi diberi garis bawah putus-putus untuk
menunjukan atribut key yang tidak meyakinkan.
Entitas lemah dapat ditransformasikan menjadi sebuah table dengan
menyertakan key yang ada pada entitas kuat, sebagai berikut :

Tabel Mahasiswa :
nim nama_mhs alamat_mhs tgl_lahir

Tabel Orang Tua : Tabel Hobbi :


nim nama_ort alamat_ortu nim hobbi
u

2. Spesialisasi dan Generalisasi

Himpunan entitas dimungkinkan adanya pengelompokan entitas-entitas yang


menjadi anggotanya, dan terkadang ditemui atribut yang tidak sepenuhnya
sama.
Jika dimulai dari sebuah himpunan entitas lalu kemudian melakukan
pengelompokan yang melahirkan entitas baru (top-down) dan adanya
pembedaan atribut menyebabkan entitas-entitas tersebut tidak mungkin
disatukan dalam sebuah himpunan entitas saja, maka ini adalah Spesialisasi.
Adanya spesialisasi dan generalisasi diwujudkan dalam notasi relasi yang
khusus, yang disebut ‘ISA’ (yang berasal dari ‘Is A’) sebagai berikut :
Panduan Kuliah Basis Data

top-down
kode_dos nama_dos alamat_dos

Dosen

ISA

nik nama_kantor

Dosen Tidak
Dosen Tetap
Tetap

pangkat tgl_masuk alamat_kantor

Sub Entitas hasil Spesialisasi diimplementasikan sebagai berikut :


Tabel Dosen :
kode_dos nama_dos alamat_dos

Tabel Dosen Tetap : Tabel Dosen Tidak Tetap :


kode_d nik pangkat tgl_masuk kode_d nama_kant alamat_kan
os os or tor

Jika yang dilakukan adalah sebaliknya, sebuah himpunan entitas yang


sebenarnya dibagi menjadi dalam kelompok tertentu dan pengelompokan ini
tidak dipertegas dengan adanya perbedaan atribut, malah kelompok-kelompok
tersebut disatukan dalam sebuah himpunan dengan atribut yang sama. Jadi
pendekatannya bersifat bottom-up mula-mula terpisah kemudian menjadi satu,
proses yang demikian disebut Generalisasi. Sebagai berikut :

bottom-up
Panduan Kuliah Basis Data

nim nama_mhs alamat_mhs

Mahasiswa

ISA

Mahasiswa D3 Mahasiswa S1

Spesialisasi dan generalisasi merupakan dua proses yang berlawanan, yang


ditekankan dalam spesialisasi adalah perbedaan antar kelompok entitas,
sedangkan dalam generalisasi yang ditekankan adalah persamaannya.
Implementasi pada generalisasi berlawanan dengan spesialisasi yaitu akan
menyusutkan jumlah himpunan entitas menjadi hanya sebuah tabel, pada table
tersebut ditambahkan sebuah atribut yang nantinya akan diisi dengan kode
khusus yang menyatakan perbedaan tersebut, sebagai berikut :
Tabel Mahasiswa :
nim nama_mhs alamat_mhs prog_studi

prog_studi = atribut tambahan untuk mengakomodasi perbedaan kelompok


entitas.
Adanya spesialisasi dalam perancangan basis data, umumnya akan terlihat
secara eksplisit pada akhir Diagram-ER, sedangkan proses generalisasi
seringkali ditiadakan. Peniadaan generalisasi ini direperesentasikan dengan
adanya atribut baru pada himpunan entitas akhir.

3. Agregasi

Menggambar sebuah himpunan relasi yang secara langsung menghubungkan


sebuah himpunan entitas dengan sebuah himpunan relasi dalam Diagram-ER/
sebuah relasi terbentuk tidak hanya dari himpunan entitas tapi juga
mengandung unsur dari relasi lain. Sebenarnya kondisi ini tidak tepat bahkan
ada yang dengan tegas tidak memperbolehkan, sebagai jalan tengah digunakan
notasi khusus untuk menunjukan adanya agregasi semacam itu. Berikut contoh
dari agregasi :
Panduan Kuliah Basis Data

N N
Mahasiswa Mempelajari Matakuliah

N
nim kode_kul

Mengikuti

kode_pra nilai

Praktikum

kode_pra nama_pra jumlah_pra

Pengimplementasian harus dilakukan setelah relasi prasyarat tersebut


terimplementasikan, selanjutnya tinggal meninjau derajat relasi dari
agregasinya. Relasi mengikuti merupakan bentuk agregasi relasi mempelajari
dan entitas praktikum. Karena semua derajat relasi yang ada pada Diagram-ER
diatas adalah N-N, maka baik relasi mempelajari maupun mengikuti masing-
masing direpresentasikan dalam table khusus/terpisah, sebagai berikut :
Tabel Mempelajari : Tabel Praktikum :
nim kode_kul indeks_nilai kode_pra nama_pra jumlah_p
ra

Tabel Mengikuti:
nim kode_kul kode_pra nilai

 Pengkodean Internal

Cara yang digunakan untuk menyatakan suatu data (atribut) dalam bentuk lain
adalah untuk efisiensi ruang penyimpanan disebut dengan pengkodean (data
coding). Dari pemakaiannya bias dibedakan adanya pengkodean :
• Pengkodean eksternal (user define coding) : mewakili pengkodean yang

telah digunakan secara terbuka dan dikenal oleh orang awam (ada pada

fakta/ dunia nyata), contohnya : npm, kode_mtkul.


Panduan Kuliah Basis Data

• Pengkodean internal (system coding) : kondisi sebaliknya dari pengkodean

eksternal, contohnya : kode_dosen sebagai key alternatif. Pengkodean

internal tidak hanya diterapkan pada pembuatan key alternatif, tapi juga

dapat diterapkan pada atribut data lain (non key) yang memang kita kelola.

Ada tiga bentuk pengkodean yang dapat dipilih :


1. Sekuensial

Mengasosiasikan data dengan kode terurut, misalnya : (Sempurna, Baik, Cukup,


Kurang, Buruk) dikodekan dengan : “A, B, C, D dan E“.
2. Mnemonic

Membentuk suatu singkatan dari data yang ingin dikodekan, misalnya : jenis
kelamin (Laki-Laki dan Perempuan) dikodekan dengan “L dan P “.
3. Blok

Pengkodean dinyatakan dalam format tertentu, misalnya No.Induk Mahasiswa


dengan format XXYYYY
XX = dua digit terakhir angka tahun masuk
YYYY = nomor urut mahasiswa
Format ini harus dibentuk dengan pemilihan domain atribut yang lebih luas,
tetapi harus dipertimbangkan juga dari sisi efisiensi ruang penyimpanan.
 DBMS dan Struktur Tabel

Pembuatan berbagai tabel basis data adalah sebagai pekerjaan utama dalam tahap
implementasi juga penetuan struktur dari tabel-tabel tersebut. Penentuan pilihan
tipe data dan featur-featur tambahan untuk struktur table sangat bergantung
pada DBMS yang dipilih. Namun dalam penentuan struktur table khususnya
penetapan tipe data dan featur tambahan untuk setiap field akan sering
dihadapkan pada pilihan-pilihan seperti :
1. Data Angka

a. Numerik : nilai angka dari tipe data ini menunjukan suatu jumlah

misalnya : field sks, field semester, dll. Data numerik berupa :

• Bilangan bulat (integer) terdiri dari Byte (1 byte), Small Integer (2

byte) dan Long Integer (4 byte).

• Bilangan Nyata (real) terdiri dari Single (4 byte) bisa menampung

hingga 7 digit pecahan dan Double (8 byte) hingga 15 digit pecahan.

Dalam penetuan tipe data numerik ukuran data disesuaikan dengan


kebutuhan data masukan.
Panduan Kuliah Basis Data

b. Alfanumerik : nilai angka dari tipe data ini tidak menunjukan suatu

jumlah misalnya : field npm berisi data angka tapi tidak menunjukan suatu

jumlah (bertipe teks).

2. Data Teks (Character)

Data teks ini dapat berupa abjad/ huruf, angka, karakter khusus atau gabungan

dari ketiganya. Tipe ini tidak dapat melakukan operasi matematika.berupa :

a. Ukuran tetap (fixed character) : data teks yang ukurannya pasti dan

pendek, misalnya untuk field npm ukuran datanya selalu tetap.

b. Ukuran dinamis (variable character) : data teks yang ukuran panjang

pendeknya sangat bervariasi, misalnya untuk field nama_mhs dan alamat.

3. Data Uang

Jika DBMS yang digunakan menyediakan tipe data khusus untuk menyimpan
data uang, misalnya bertipe money atau currency (8 byte). Tipe data ini cocok
untuk diterapkan dan akan sangat membantu terutama dalam mengatur
tampilan datanya, yang dinyatakan dengan pemisahan ribuan/jutaan/milyaran
dan pemakaian tanda mata uang.
4. Date/Tanggal

Berupa gabungan angka dengan format tanggal tertentu (8 byte). Formatnya

terdapat dua pilihan, diantaranya:

day/month/year atau Hari/Bulan/Tahun

month/day/year atau Bulan/Hari/Tahun


5. Feature tambahan pada DBMS

Sejumlah DBMS menyediakan feature tambahan seperti : mandatory (harus


diisi atau boleh kosong), default, variant (dalam VB) bila data yang akan
dimasukan belum tahu tipenya maka secara otomatis mendeteksi, variant ada
dua jenis yaitu untuk number (16 byte) dan character (22 byte).
Menentukan tipe data bagi setiap field, pertimbangan pertama DBMS yang dipilih,
kecukupan domain, efisiensi ruang penyimpanan, kecepatan pengolahan data dan
harus dapat menjamin bahwa tipe data yang dipilih pada setiap field akan dapat
mengakomodasi semua nilai yang akan diisikan ke dalam field tersebut.
Penetuan struktur dari tabel-tabel basis data dapat disajikan sebagai berikut :
Misalnya :
Nama Tabel : Mahasiswa
Primary Key : npm
N Nama Field Tipe Ukura Kunci Keterangan
o n
Panduan Kuliah Basis Data

1 npm C 8 * nomor pokok mahasiswa


2 nama_mhs C 30 nama setiap mahasiswa
3 alamat_mhs C 50 alamat setiap mahasiswa
4 tgl_lahir D 8 tanggal lahir setiap mahasiswa
5 photo G - photo mahasiswa

Nama Tabel : Matakuliah


Primary Key : kd_mtkul
N Nama Field Tipe Ukura Kunci Keterangan
o n
1 kd_mtkul C 5 * kode matakuliah
2 nama_mtkul C 30 nama matakuliah
3 sks N 1 jumlah bobot satuan kredit
semester
4 semester N 1 semester diselenggarakan
perkuliahan

Nama Tabel : Nilai


Foreign Key : npm + kd_mtkul
N Nama Field Tipe Ukura Kunci Keterangan
o n
1 npm C 8 ** nomor pokok mahasiswa
2 kd_mtkul C 5 ** kode matakuliah
3 Indeks_nilai C 1 indeks nilai matakuliah mahasiswa

Keterangan :
C : Character
N : Numeric
D : Date
G : Graphic (untuk menyimpan data berupa gambar atau grafik /feature DBMS)
Panduan Kuliah Basis Data

BAB V

ALJABAR RELASIONAL
 Definisi

Basis data dipahami oleh pengguna sebagai kumpulan tabel-tabel yang saling ber

relasi, konsep untuk akses pada basis data model relasi dapat diterapkan

berdasarkan matematika aljabar relasional. Operasi pada aljabar relasional

operator-operatornya antara lain adalah sebagai berikut :

• Selection (γ = sigma)

• Projection (π = phi)

• Joint (× = cross)

• Union (∪ = gabungan)

• Intersection (∩ = irisan)

• Set different (− = minus)

• Dan lain-lain
Panduan Kuliah Basis Data

 Operator Aljabar Relasional

a. Selection (γ = sigma) adalah memilih tupel (baris) dalam relasi yang memenuhi
predikat yang diberikan.

Contoh : Relasi Nasabah

Nama alamat no_rek


Respati Jl. RE Marthadinata 111.111
Yoga Jl. Merdeka 222.222
Rusi Jl. Pataruman 444.444
Swaraspati Jl. Tentara Pelajar 555.555
Misal : γ nama = “Yoga” (Nasabah)

Hasil : Yoga Jl.Merdeka 111.111

b. Projection (π = phi) adalah operasi semacam selection tetapi mengambil atau


memilih beberapa atribut (kolom) dalam relasi.

Misal : π no_rek (Nasabah)

Hasil : no_rek
111.111
222.222
444.444
555.555
Misal : π nama,no_rek (Nasabah)

Hasil : nama no_rek


Respati 111.111
Yoga 222.222
Rusi 444.444
Swaraspati 555.555
c. Joint (× = cross) adalah tupel t adalah hasil operasi joint antara r dan s jika t
memenuhi beberapa tupel di r dalam skema r dan beberapa tupel dalam skema

s.

Contoh:

Relasi Dosen (s) Relasi Ambil_Kuliah (r)


Panduan Kuliah Basis Data

nama_dose kode_mtkul nama_mhs kode_mtkul indeks_nilai


n
Yogaswara TI-3000 Bati TI-5000 B
Respati TI-4000 Totti TI-7000 A
Rusi TI-5000 Nesta TI-3000 C
Pitaloka TI-6000 Kana TI-4000 A
Swaraspati TI-7000 Maldini TI-7000 D
Misal : Dosen × Ambil_Kuliah

Hasil : (t)

nama_dosen nama_mhs kode_mtkul indeks_nilai


Rusi Bati TI-5000 B
Swaraspati Totti TI-7000 A
Yogaswara Nesta TI-3000 C
Respati Kana TI-4000 A
Swaraspati Maldini TI-7000 D
Dalam query terhadap basis data operator-operator aljabar relasional dapat

diekspresikan dengan gabungan, misalnya :

π nama_mhs(γ nama_dosen = “Swaraspati”(Dosen × Ambil_Kuliah))

d. Union (∪ = gabungan) adalah menghasilkan semua tupel yang berada di kedua


relasi. Contoh :

Relasi Mtkul_diinginkan Relasi Mtkul_tersedia

kode_mtkul nama_mhs nama_mhs kode_mtkul


TI-3000 Bati Bati TI-3000
TI-4000 Bati Totti TI-5000
TI-5000 Totti Nesta TI-4000
TI-3000 Totti Nesta TI-6000
TI-4000 Nesta
Misal : Mtkul_diinginkan ∪ Mtkul_tersedia

Hasil :

nama_mhs kode_mtkul
Bati TI-3000
Bati TI-4000
Totti TI-5000
Totti TI-3000
Nesta TI-4000
Nesta TI-6000
e. Intersection (∩ = irisan) adalah menghasilkan relasi dengan tupel-tupel yang
berada pada kedua relasi.
Panduan Kuliah Basis Data

Misal : Mtkul_diinginkan ∪ Mtkul_tersedia

Hasil :

nama_mhs kode_mtkul
Bati TI-3000
Totti TI-5000
Nesta TI-4000

f. Set different (− = minus) adalah menghasilkan relasi dengan tupel-tupel yang


berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua.

Misal : Mtkul_diinginkan − Mtkul_tersedia

Hasil :

nama_mhs kode_mtkul
Bati TI-4000
Totti TI-3000

Misal : Mtkul_ tersedia − Mtkul_ diinginkan

Hasil :

nama_mhs kode_mtkul
Nesta TI-6000
Panduan Kuliah Basis Data

BAB VI

STRUCTURED QUERY LANGUAGE

(SQL)
 Definisi
Panduan Kuliah Basis Data

SQL adalah sebuah bahasa yang dijadikan bahasa standar untuk bahasa basis

data. Sebagai sebuah bahasa standar, sejalan dengan perkembangan teknologi

basis data dan teknologi komputer pada umumnya, SQL sendiri mengalami

beberapa perubahan (penyempurnaan). SQL mula-mula dibuat pada tahun 1970

dengan “Sequel”. Standarisasi yang pertama dibuat pada tahun 1986 oleh ANSI

(American National Standards Institute) dan ISO (International Standards

Organization), yang disebut sebagai SQL-86. SQL-86 ini diperbaharui pada tahun

1986 menjadi SQL-89. Standar terakhir yang dibuat dan digunakan hingga saat ini

adalah SQL-92 yang dikeluarkan pada tahun 1992. Bahasa basis data terdiri dari

atas :

• DDL (Data Definition Language)

• DML (Data Manipulation Language)

 Struktur Dasar

Sebuah ekspresi SQL dasar terdiri dari atas 3 klausa :

• Select : Bersesuaian dengan operasi proyeksi pada aljabar relasi/

memilih

atribut (field) yang diinginkan.

• From : Relasi yang dipilih atau terkena operasi proyeksi/ table atau

gabungan table.

• Where : Bersesuaian dengan pilihan predikat pada aljabar relasi/ yang

sifatnya opsional/ sebuah keadaan.

Sintaks dari ekspresi SQL dasar :

Select F1,F2…Fn

Form T1,T2…Tn

Where P

Keterangan : A : daftar atribut (field)

T : daftar relasi (tabel)

P : merupakan predikat query

Tabel nasabah Tabel simpanan

no_rek nama alamat cabang no_rek jumlah


Panduan Kuliah Basis Data

10924 Angie Jl. Mawar CBCihideu 10606 700.000


ng
10606 Ari Jl. Dahlia CBIndihia 12476 1.500.000
ng
12476 Armand Jl.Ros CBCilemb 10924 2.000.000
ang
10678 Alanis Jl.Melati CBTawang 10678 500.000
18987 Aras Jl.Awan CBEmpang 10924 700.000
CBMerde 12476 1.000.000
ka
Klausa Select dan Form

Misal : Select nama

From nasabah

Hasil : nama
Angie
Ari
Armand
Alanis
Aras

Misal : Select nama, no_rek

From simpanan

Hasil : Menampilkan seluruh isi atribut nama dan no_rek dari tabel simpanan

Misal : Select no_rek as Rekening

From simpanan

Hasil : klausa as untuk mengganti tampilan header no_rek menjadi Rekening

tanpa menggangu prosesnya.

Misal : Select *

From nasabah

Hasil : notasi * menampilkan semua atribut yang ada pada tabel nasabah
Panduan Kuliah Basis Data

Klausa Where

Klausa ini boleh tidak digunakan, klausa untuk predikat ini dapat menerapkan

operator relasi (<, >, <=, >=, =, <>) dan operator logika (and, or dan not). Untuk nilai

predikat yang bertipe string harus diapit dengan tanda kutip tunggal (‘ ’).

Misal : Select nama Hasil : Angie

From nasabah

Whereno_rek = ‘10924’

Misal : Select * Misal : Select no_rek,cabang

From nasabah From simpanan

Whereno_rek = ‘10924’ Wherejumlah <= 700.000

Hasil : 10924 Angie Jl.Mawar Hasil : 10606 CBCihideung


10678 CBTawang
10924 CBEmpang
Misal : Select no_rek

From simpanan

Wherejumlah between 450.000 and 800.000

Hasil : Kalusa between kriteria yang berbentuk range nilai tertentu.

10606
10678
10924

Misal : Jika dalam query tabel yang dilibatkan lebih dari satu tabel maka table-

tabel

tersebut harus memiliki relasi.

Select nasabah.nama, nasabah.alamat, simpanan.cabang

From nasabah, simpanan

Wherenasabah.no_rek = simpanan.no_rek

Hasil : Menampilkan nama, alamat dan cabang dari kedua table dimana no_rek

nasabah pada table nasabah sama dengan no_rek pada table simpanan.

Latihan :

1. Buat contoh lain untuk penggunaan klausa select, from dan where seperti

pada contoh diatas.

2. Pada kedua tabel nasabah dan simpanan, cari isi record data no_rek 10924

dengan jumlah simpanannya lebih dari 800.000

3. Pada kedua tabel nasabah dan simpanan, cari semua nasabah dan cabangnya

yang mempunyai jumlah simpanan sebesar 700.000

4. Pada kedua tabel nasabah dan simpanan, cari semua nama, alamat dan

cabangnya yang mempunyai simpanan dibawah 1000.000

5. Pada kedua tabel nasabah dan simpanan, cari no_rek, nama dan alamat

nasabah yang memiliki simpanan dicabang CBIndihiang dan CBMerdeka.

6. Pada kedua tabel nasabah dan simpanan, cari semua nasabah yang memiliki

simpanan di cabang CBTawang.

6
Karakter Khusus

Khusus untuk atribut yang bertipe string, dapat dilakukan pencarian dengan pola

tertentu, memanfaatkan karakter :

• % (percent) : berarti cocok untuk semua substring.

• _ (underscore) : berarti cocok untuk semua karakter pada posisi yang sesuai.

• Ditambah klausa like

Misal : Select *

From nasabah

Where nama like ‘A%’

Hasil : menampilkan record-record nasabah yang namanya diawali dengan huruf

Misal : Select *

From nasabah

Where nama like ‘_a%’

Hasil : menampilkan nasabah yang huruf/karakter kedua dan namanya adalah a.

Pengurutan Hasil Query

Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur penyimpanan,

jika ingin menampilkan dengan urutan tertentu dengan menambahkan klausa order

by.

Misal : Select *

From nasabah

Order by nama

Hasil : menampilkan nama nasabah dari abjad terkecil hingga terbesar

(ascending).

Misal : Select *

From nasabah

Order by tgl_lahir desc

Hasil : menampilkan nasabah termuda hingga tertua (descending).

 Anomali Basis Data

6
SQL juga dilengkapi dengan sejumlah perintah untuk melakukan manipulasi data

seperti penambahan record baru, pengubahan nilai atribut dan penghapusan

record.

Ada tiga Anomali :

• Insert Anomali

• Delete Anomali

• Update Anomali

a. Insert Anomali

Sintaks SQL : Insert Into NamaTabel(field1, field2,…)

values (ekspresi1, ekspresi2,…)

Misal : insert into nasabah (no_rek, nama, alamat)

values (‘12085’,’Roma’,’Jl.Edelwis’)

Hasil : Fields no_rek, nama, alamat pada table nasabah akan di isi dengan nilai

12085, Roma, Jl.Edelwis.

b. Delete Anomali

Sintaks SQL : delete from NamaTabel

where Kondisi

Misal : delete from nasabah

where no_rek = ‘12085’

Hasil : Record dengan no_rek 12085 akan dihapus

Misal : delete from nasabah

Hasil : Akan menghapus semua record dari table nasabah

c. Update Anomali

Sintaks SQL : update NamaTabel

set Ekspresi

where Kondisi

Misal : update nasabah

set alamat = ‘Jl.Edelwis’

where no_rek = ‘10606’

Hasil : Record alamat untuk no_rek 10606 akan di update dengan Jl.Edelwis

6
Misal : update simpanan

set jumlah = jumlah + 500.000

where no_rek = ‘12476’

Hasil : Field jumlah pada table simpanan akan ditambah 500.000 untuk no_rek

= 12476

Misal : update nasabah

set nama = ‘ Prof. ’ + nama

where no_rek = ‘12476’

Hasil : Nama dengan no_rek 12476 akan ditambahakan gelar Prof.

Misal : update simpanan

set jumlah = null

Hasil : Pengosongan untuk semua field jumlah. (Jika tanpa klausa where maka

berlaku untuk semua record).

 Pendefinisian Objek Basis Data

Data Definitif Language (DDL) berkaitan dengan perintah - perintah untuk

pendefinisian objek-objek basis data.

Misalnya pembuatan tabel, sintaks SQL :

create table t (A1 D1, A2 D2,…)

t = nama table yang akan dibuat

A = nama-nama atribut yang akan terdapat dalam table t.

D = domain nilai masing-masing atribut yang ditentukan berdasarkan tipe data.

Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30),

alamat_mhs

Varchar(60), tgl_lahir date)

Misalnya penghapusan tabel, sintaks SQL :

drop table t

Misal : drop table mahasiswa

Misalnya pembuatan table mahasiswa sekaligus pendefinisian Indeks Primer

berdasarkan npm :

7
Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30),

alamat_mhs

Varchar(60), tgl_lahir date, primary key (npm))

Sintaks SQL untuk perubahan struktur tabel dapat berupa penambahan atribut

atau pengurangan/ penghapusan atribut tertentu.

Penambahan atribut ke tabel t :

alter table t add A D

t = nama table

A = nama atribut

D = tipe data untuk atribut A

Penghapusan atribut dari tabel t :

alter table t drop A

Penambahan atribut baru bernama ip di tabel mahasiswa :

alter table mahasiswa add ip numeric (5, 2)

Jika atribut ip dihapus dari tabel mahasiswa :

alter table mahasiswa drop ip

 Fungsi Agregasi

Untuk menampilkan data-data agregasi seperti banyak record, total nilai suatu

atribut, rata-rata nilai suatu atribut, nilai atribut terbesar ataupun terkecil dapat

diperoleh dengan fungsi-fungsi berikut :

• count : menghitung jumlah baris suatu field.

• sum : menjumlahkan data-data numerik pada suatu field.

• avg: menghitung nilai rata-rata suatu atribut numerik.

• max : mengambil nilai maksimum

• min : mangambil nilai minimum

Contoh : Tabel karyawan

nama umur golongan gaji


Arti 27 A Rp. 500.000
Bunda 32 A Rp. 750.000
Citra 29 B Rp. 474.000
Diva 24 A Rp. 575.000

7
Elsa 25 B Rp. 800.000

Misal : select count (*)

from karyawan

Hasil : 5

Misal : select count (*)

from karyawan

where golongan = ‘A’

Hasil : 3

Misal : select sum (gaji)

from karyawan

Hasil : 3.100.000

Misal : select avg (umur)

from karyawan

Hasil : 27,4

Misal : select max (gaji)

from karyawan

Hasil : 800.000

Misal : select min (umur)

from karyawan

Hasil : 24

Misal : select max (gaji)

from karyawan

where golongan = ‘A’

Hasil : 750.000

Misal : select min (gaji)

from karyawan

where golongan = ‘B’ Hasil :


475.000

You might also like