P. 1
Modul Database

Modul Database

|Views: 4,669|Likes:

More info:

Published by: Alyunikyu Arlunerz satriapanerz on Jul 28, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

06/24/2013

pdf

text

original

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
n

nama

no_ktp

alamat

gender

24001

Yogaswara,
MT

117624

Jl. Kaliurang no.24

Laki-laki

24005

Respati, ST

110282

Jl. Pasanggrahan no.6Laki-laki

24077

Rusi, Ir

110707

Jl. Edelwis no.7

Perempuan

sandi_dosen = primary key
Tabel Mata kuliah
kode_mtku
l

mata_kuliah

semeste
r

sks

sandi_dosen

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
n

nama

no_ktp

alamat

gender

24001

Yogaswara, MT

117624

Jl. Kaliurang no.24

Laki-laki

24005

Respati, ST

110282

Jl. Pasanggrahan no.6Laki-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

•Boyce-Codd Normal Form (BCNF)

Relasi Antar Tabel

Keterangan :

* = primary key
** = foreign key

Pasien
no_pasien *
nama
jenis_perawatan **

Kamar_Rawat
jenis_perawatan *
jenis_kamar **

Biaya_Rawat
jenis_kamar *
biaya_kamar

Panduan Kuliah Basis Data

Misalnya : Relasi “Seminar”
no_peser
ta

seminar

Instruktur

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
ta

Instruktur

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

Namatgl_lahiralamat

tgl_sk

no_sk

gol

gajitun
j

status

1230

Rusi

1/2/70

Jl.Edelwi
s

1/3/84

3/sk/8
4

2A

50

25

Aktif

1230

Rusi

1/2/70

Jl.Edelwi
s

5/6/87

6/sk/8
7

2B

65

40

Aktif

1231

Resa

8/1/68

Jl.Elang

15/7/7
5

7/sk/7
5

3A

80

35

Aktif

1231

Resa

8/1/68

Jl.Elang

7/2/78

2/sk/7
8

3B

100

65

Aktif

1231

Resa

8/1/68

Jl.Elang

21/12/8
1

12/sk/8
1

3C

120

75

Aktif

1231

Resa

8/1/68

Jl.Elang

1/2/82

1/sk/823C

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
o

nam
a

almt

Kd_kr
ta

Nm_krta

tujua
n

tar
if

tgl_ps
n

jam

jm
l

Jml_b
yr

1ResaJl.Edelw
is

A

Parahiyanga
n

Bdg

50

1/9/0
3

08:0
0

2

100

1ResaJl.Edelw
is

B

Sawunggali
h

Pwkt1002/9/0
3

10:0
0

2

200

2YogaJl.Xurg

C

SenjaExpre
s

Yogy
a

1503/9/0
3

12:0
0

2

300

2YogaJl.Xurg

D

ArgoBromoSby

20
0

4/9/0
3

14:0
0

2

400

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

Latihan III :

Misalnya diketahui relasi “Pembelian Barang” sebagai berikut :

No
Fa
c

kode
supp

nama
supp

kode
brg

nama
barang

tgl

jatuh
temp
o

qty

harg
a

jml

total

79
9

S02Swa

R02

Plooter

2/2/
04

9/3/
04

10

150

1500

1500

99
8

G01Ara

A01

Hd
Segeat

7/2/
04

9/3/
04

10

13501350
0

33500

99
8

G01Ara

A02

Hd
Quntm

7/2/
04

9/3/
04

10

200
0

2000
0

33500

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->