Anda di halaman 1dari 56

NORMALISASI DATA

Oleh : Asri, S.Kom 1


NORMALISASI DATABASE
• Perancangan basis data diperlukan, agar kita
bisa memiliki basis data yang kompak dan
efisien dalam penggunaan ruang penyimpanan,
cepat dalam pengaksesan dan mudah dalam
pemanipulasian (tambah, ubah, hapus) data.
• Dalam merancang basis data, kita dapat
melakukannya dengan :
– Menerapkan normalisasi pada struktur table yang
telah diketahui.
– Menerapkan model ER (Entity Relationship)
Oleh : Asri, S.Kom 2
NORMALISASI DATABASE
• Proses Normalisasi, merupakan proses
pengelompokan data elemen menjadi
table-table yang menunjukkan entity dan
relasinya. Pada proses normalisasi selalu
diuji pada beberapa kondisi,apakah ada
kesulitan pada saat menambah / insert,
menghapus / delete, mengubah / update,
danmembaca / retrieve pada suatu
Database.
Oleh : Asri, S.Kom 3
NORMALISASI DATABASE
• Bila ada kesulitan pada pengujian
tersebut, maka relasi tersebut dipecahkan
menjadi beberapa table lagi, sehingga
diperoleh database yang optimal.

Oleh : Asri, S.Kom 4


Atribut Table
• Normalisasi lebih difokuskan pada tinjauan
komprehensif terhadap setiap kelompok
data (table) secara individual. Lebih jauh
tinjauan tersebut dititikberatkan pada data
di masing – masing kolom pembentuk
tabel. Kita menggunakan istilah baru, yaitu
atribut yang sebenarnya identik dengan
pemakaian istilah kolom data atau field

Oleh : Asri, S.Kom 5


Aturan Penulisan Nama File dan
Field (PENTING SEKALI)
• Harus berisi Huruf dan angka
• Tidak boleh mengandung spasi
• Tidak boleh mengandung tanda baca
(, . ! ? Dll)
• Tidak boleh menggunakan tanda
matematis (*, -, +, =, / dll)
• Tidak boleh menggunakan karakter
khusus (#, $, ^, &, dll)
Oleh : Asri, S.Kom 6
Panjang Field (Atribut)
• Panjang dari field (atribut) harus diisi sesuai dengan
kebutuhan, jangan selalu mengisi dengan default.

Oleh : Asri, S.Kom 7


CONTOH
• Table Dosen, memiliki 9 buah field / atribut, yaitu
:
– Nid
– nama_d
– tempat_lhr
– tgl_lahir
– Jkelamin
– Alamat
– Kota
– Kodepos
– gajipokok
Oleh : Asri, S.Kom 8
CONTOH
• Table Matakuliah, memiliki 4 buah atribut,
yaitu :
– Kdmk
– nama_mk
– Sks
– semester

Oleh : Asri, S.Kom 9


CONTOH
• Table Jurusan, memiliki 4 buah atribut,
yaitu :
– kode_jur
– nama_jur
– Jenjang
– nama_kajur

Oleh : Asri, S.Kom 10


CONTOH
• Table Mengajar, memiliki 9 buah atribut, yaitu :
– Nid
– thn_akademik
– Smt
– Hari
– jam_ke
– Kdmk
– Waktu
– Kelas
– kode_jur
Oleh : Asri, S.Kom 11
CONTOH
• Dari 4 table di atas, masing-masing table
memiliki field / atribut sebagai key, dan
field / atribut lainnya sebagai atribut
deskriptif. Ada pula atribut yang tergolong
atribut sederhana atau komposit dan
lainnya.

Oleh : Asri, S.Kom 12


Key dan Atribut Deskriptif
• Key, adalah satu atau gabungan beberapa
atribut yang dapat membedakan semua
baris data (row) dalam tabel secara unik.
Artinya adalah apabila suatu field / atribut
dijadikan key, maka tidak boleh ada dua
atau lebih baris data dengan nilai yang
sama untuk field / atribut tersebut.

Oleh : Asri, S.Kom 13


Key dan Atribut Deskriptif
• Sehubungan dengan pernyataan tersebut,
maka kita dapat membedakan 3 (tiga)
macam key
• yang dapat diterapkan pada suatu tabel :
• 1. Candidate-Key.
• 2. Key Primer (Primary-Key).
• 3. Kunci tamu (Foreign Key)

Oleh : Asri, S.Kom 14


Candidate-Key
• Candidate_key adalah merupakan
kumpulan field / atribut minimal yang
dapat membedakan setiap baris data
dalam sebuah table secara unik.Sebuah
Candidate-key tidak boleh berisi atribut
atau kumpulan atribut yang telah menjadi
superkey yang lain. Jadi sebuah
Candidate-key pasti superkey, tapi belum
tentu sebaliknya.
Oleh : Asri, S.Kom 15
Candidate-Key
• Pada table Dosen tersebut diatas, yang
dapat menjadi Candidate-key adalah :
– (nid).
– (nama_d), jika kita bisa menjamin tidak ada
nilai yang sama untuk atribut ini.

Oleh : Asri, S.Kom 16


Candidate-Key
• Pada sebuah table dimungkinkan ada
lebih dari satu Candidate-key, seperti
contoh diatas.
• Salah satu dari Candidate–key ini (jika
memang lebih dari satu) dapat dijadikan
sebagai Key Primer (Primary key).

Oleh : Asri, S.Kom 17


Primary-Key
• Primary_key adalah candidate-key yang
dipilih untuk mengidentifikasi tupel secara
unik pada suatu relasi. Kunci utama dapat
terbentuk dari satu atribut atau lebih.

Oleh : Asri, S.Kom 18


Primary-Key
• Pemilihan Key Primer dari sejumlah
Candidate-key pada suatu table didasari
pada ketiga hal berikut ini:
– Key tersebut lebih sering (natural) untuk
dijadikan acuan.
– Key tersebut lebih ringkas.
– Jaminan keunikan Key tersebut lebih baik.

Oleh : Asri, S.Kom 19


Primary-Key
• Dengan pertimbangan tersebut, kedua
Candidate-key pada table dosen, yaitu nid dan
nama_d, yang lebih cocok sebagai Key Primer
adalah (nid). Hal ini dikarenakan bahwa jaminan
keunikan daripada nid (nomor induk dosen)
akan terjamin karena karena setiap nid pada
suatu perguruan tinggi pastinya tidak akan sama
nilainya, sedangkan kenapa tidak memilih
nama_d, karena nama_d kemungkinan ada
yang sama nilainya.
Oleh : Asri, S.Kom 20
Foreign-Key
• Kunci tamu adalah satu atribut (satu set
atribut) yang melengkapi satu relationship
(hubungan) yang menunjukkan ke
induknya. Kunci tamu ditempatkan pada
relasi anak dan sama dengan kunci primer
induk direlasikan.

Oleh : Asri, S.Kom 21


Hubungan antara relasi induk dengan anak adalah satu lawan
banyak (one to many relationship).

Gambar 4.1.
Oleh :Relasi one to many
Asri, S.Kom 22
KUNCI TAMU
• Kunci tamu dari table / relasi mengajar
adalah : nid, kdmk dan kode_jur karena
dalam table ini membutuhkan data – data
yang ada dalam table dosen, matakuliah
dan jurusan
• Kunci primer untuk table / relasi
mengajar adalah id, thn_akademik, smt,
hari, jam_ke, karena unik dan mewakili
entity.

Oleh : Asri, S.Kom 23


KUNCI TAMU
• Dalam hal hubungan 2 buah relasi yang
mempunyai relation banyak ke banyak
(many to many), maka terdapat 2 buah
kunci tamu pada relasi konektornya.

Oleh : Asri, S.Kom 24


KUNCI TAMU
• Contoh:

• Gambar 4.2. Relasi many to many

Oleh : Asri, S.Kom 25


KUNCI TAMU
• Hubungan relasi proyek dengan pegawai
adalah many to many, dengan pengertian
bahwa satu pegawai mengerjakan lebih
dari 1 proyek dan 1 proyek dikerjakan oleh
beberapa pegawai.
• Untuk menunjukkan hubungan tersebut,
maka dipakai relasi konektor yang berisi
kunci tamu dari kedua relasi (proyek dan
pegawai).

Oleh : Asri, S.Kom 26


KUNCI TAMU
• Pada relasi proyek_pegawai tersebut
atribut nik dan no_proyek merupakan
kunci tamu (FK) dan keduanya juga
menjadi primay key, dan keduanya
merupakan kunci primer (primary key)
pada relasi induknya.

Oleh : Asri, S.Kom 27


BENTUK NORMAL DATABASE
Btk Normal Kelima (5NF)
Bentuk tidak Normal (UNF)
Mengatasi dependensi gabungan
Hilangkan atribut bernilai ganda

Btk Normal Pertama (1NF) Btk Normal Keempat (4NF)


Hilangkan >1 dependensi bernilai ganda
Hilangkan dependensi parsial

Btk Normal Boyce-Codd (BCNF)


Btk Normal Kedua (2NF)

Btk Normal Ketiga (3NF) Hilangkan ketergantungan


kepada yg bukan
Hilangkan dependensi transitif kunci kandidat

Oleh : Asri, S.Kom 28


ANOMALI
• Anomali adalah masalah yang timbul
ketika terjadi pemutakhiran data dalam
relasi, diantaranya :
– Anomali penyisipan
– Anomali perubahan
– Anomali penghapusan

Oleh : Asri, S.Kom 29


ANOMALI
Kode_barangNama_brg Hrg_jual Kode_pemas Nm_Pemasok Kota
ok

T-001 TV ABC 14" 600000P22 PT Citra Jaya Bogor

T-002 TV ABC 21" 950000P22 PT Citra Jaya Bogor

T-003 TV ABC 14" 450000P11 PT Amerta Bandung

T-004 TV Rhino 29" 1750000P33 PT Kartika Yogya

T-005 TV Rhino 14" 475000P44 PT Nindya Tangerang

Oleh : Asri, S.Kom 30


ANOMALI PENYISIPAN
• Adalah masalah yang timbul akibat
terjadinya penyisipan data.
• Contoh pada relasi diatas, jika ada
pemasok baru yang akan memasok
barang, data pemasok tidak bisa
dimasukkan karena yang menjadi primery
key adalah kode barang, sampai si
pemasok memasukkan barang ke
perusahaan diatas.

Oleh : Asri, S.Kom 31


ANOMALI PENYISIPAN
• Masalah kedua, misalnya pemasok P33
akan memasukkan barang lain berupa TV
Rhino 14”, maka data P33 harus diinput
lagi, berikut, jika data kotanya bukan
Yogya, tetapi Yogyakarta, maka terjadi
ketidak konsistenan data, karena kedua
nama tersebut menunjukkan satu kota.

Oleh : Asri, S.Kom 32


Anomali Perubahan
• Adalah masalah yang timbul ketika data
dalam relasi dirubah.
• Contoh, jika pemasok P22 yang semula
berlokasi di Bogor dan sekarang pindah ke
Bekasi, jika datanya lebih dari 1 buah
maka harus dilakukan perubahan
terhadap seluruh data yang ada, jika
hanya dirubah 1 data saja, maka datanya
menjadi tidak konsisten

Oleh : Asri, S.Kom 33


Anomali Penghapusan
• Adalah masalah yang timbul akibat suatu
baris dalam relasi dihapus.
• Misalnya adalah jika kode barang T004
akan dihapus, data tersebut hanya
dipasok oleh pemasok P33, akibatnya
data pemasok P33 menjadi hilang.

Oleh : Asri, S.Kom 34


Dependensi
• Dependensi adalah kekangan yang terjadi
antara atribut-atribut dalam suatu tabel
data, terdiri dari :
– Dependensi fungsional (disebut Dependensi)
– Dependensi Sepenuhnya
– Dependensi Parsial
– Dependensi Total
– Dependensi Transitif

Oleh : Asri, S.Kom 35


Dependensi Fungsional
• Adalah kekangan antara dua buah atribut atau
antara dua buah himpunan atribut, misalnya
dalam relasi R dengan atribut X dan Y biasanya
dinotasikan
XY
Dibaca dengan
X menentukan Y , atau
Y tergantung secara fungsional pada X
X disebut Determinan
Y disebut dependen
Oleh : Asri, S.Kom 36
Dependensi Fungsional
• Contoh:
Kode_barang  harga_jual
Bisa diuji dengan satu kode barang hanya memiliki 1 harga
jual, sekarang coba kita balik apakah 1 harga jual
memiliki hanya 1 kode barang, tentu saja tidak, jadi
harga jual tidak menentukan kode barang, jadi
dependensinya dirubah menjadi

{X, Y}  Z

Dimana Z mempunyai dependensi terhadap pasangan X


dan Y (Z=harga jual, X=kode barang, Y=Nama Barang)
Oleh : Asri, S.Kom 37
Database Contoh
Dosen_Pendidikan

No_Dosen Nama_Dosen Je_Kel Pendidikan Lulus_tahun


D41 Fahmi Pria S1 1987
D41 Fahmi Pria S2 1990
D42 Sita Dewi Wanita S1 1988
D42 Sita Dewi Wanita S2 1990
D42 Sita Dewi Wanita S3 1999
D43 Rio Febian Pria S1 1994

Oleh : Asri, S.Kom 38


Dependensi Sepenuhnya
• Suatu atribut Y dikatakan memiliki
dependensi sepenuhnya terhadap X
apabila memenuhi dua kondisi berikut :
– Y mempunyai dependensi fungsional
terhadap X
– Y tidak memiliki dependensi terhadap bagian
dari X

Oleh : Asri, S.Kom 39


Dependensi Sepenuhnya
• Contoh :
{No_Dosen, Pendidikan}  Tahun_lulus
Pada dependensi fungsional, Tahun_Lulus bergantung
pada gabungan No_Dosen dan pendidikan, perhatikan
bahwa no_dosen D41, memiliki 2 tahun lulus, dan
pendidikan S1 memiliki 3 tahun lulus, artinya tahun lulus
bergantung pada gabungan no_dosen dan pendidikan,
jadi dikatakan bahwa Tahun_lulus memiliki dependensi
sepenuhnya terhadap {No_dosen , pendidikan}

Oleh : Asri, S.Kom 40


Dependensi Parsial
• Suatu atribut Y dikatakan memiliki
dependensi parsial terhadap X apabila
memenuhi dua kondisi, yaitu
– Y adalah atribut non-kunci primer dan X
adalah kunci primer
– Y memiliki dependensi terhadap bagian dari X
(tetapi tidak terhadap keseluruhan dari X)

Oleh : Asri, S.Kom 41


Dependensi Parsial
• Contoh : relasi Dosen_Pendidikan

Atribut Jen_Kel memiliki dependensi


terhadap No_Dosen (bagian dari kunci
primer yaitu {No_Dosen, pendidikan}

Oleh : Asri, S.Kom 42


Dependensi Total
• Atribut Y dikatakan memiliki dependensi
total terhadap X jika memenuhi dua
kondisi berikut :
– Y memiliki dependensi fungsional terhadap X
– X memiliki dependensi fungsional terhadap Y

Dependensi seperti ini dinotasikan


sebagai berikut :
X  Y
Oleh : Asri, S.Kom 43
Dependensi Total
• Contoh :

- kode_pemasok  nama_pemasok
- nama_pemasok  kode_pemasok

Oleh : Asri, S.Kom 44


Dependensi Transitif
• Suatu atribut Z dikatakan memiliki
dependensi transitif terhadap X apabila
memenuhi dua kondisi berikut :
– Z memiliki dependensi fungsional terhadap Y
– Y memiliki dependensi fungsional terhadap X
Dinotasikan sebagai berikut :
XYZ

Oleh : Asri, S.Kom 45


Dependensi Transitif
• Contoh :
kode_barang  nama_pemasok
Dimana sesungguhnya :

kode_barang  kode_pemasok
kode_pemasok  nama_pemasok

Oleh : Asri, S.Kom 46


Bentuk Tidak Normal
• Berupa data yang diterima, tanpa
membaginya kedalam tabel-tabel yang
ditentukan, contoh :
Seorang pegawai memiliki
nomor_pegawai, nama_pegawai,
nomor_klien, nama_klien, alamat_klien,
keperluan_klien
Satu orang pegawai mungkin akan melayani
lebih dari 1 orang klien.
Oleh : Asri, S.Kom 47
Bentuk Tidak Normal
no_pegawa nama_pegawai no_klien nama_klien
i
P27 Amir Udinsah K01 Rini Suwandi
K02 Edi Damhudi

K04 Fatwa Sari

P28 Kartika Amelia K03 Robert Irwandi


K07 Veronica Suci

P29 Barkah K05 Gabriela Febrianti


P30 Mahendra K06 Siti Amiarti
Oleh : Asri, S.Kom 48
K08 Sandi Sunardi
Bentuk Normal Pertama (1NF)
• Adalah suatu keadaan yang membuat
setiap perpotongan baris dan kolom dalam
relasi hanya berisi satu nilai
• Untuk membentuk 1NF perlu dilakukan
langkah-langkah menghilangkan atribut-
atribut yang memiliki nilai ganda.

Oleh : Asri, S.Kom 49


Bentuk Normal Pertama (1NF)
no_pegawa nama_pegawai no_klien nama_klien
i
P27 Amir Udinsah K01 Rini Suwandi
P27 Amir Udinsah K02 Edi Damhudi
P27 Amir Udinsah K04 Fatwa Sari
P28 Kartika Amelia K03 Robert Irwandi
P28 Kartika Amelia K07 Veronica Suci
P29 Barkah K05 Gabriela Febrianti
P30 Mahendra K06 Siti Amiarti
P30 Mahendra K08 Sandi Sunardi
Oleh : Asri, S.Kom 50
Bentuk Normal Kedua (2NF)
• Adalah bentuk yang mensyaratkan bahwa relasi
harus sudah dalam bentuk 1NF dan tidak
mengandung dependensi parsial.
• Cara untuk menghilangkan dependensi parsial
adalah :
– Ubahlah setiap dependensi parsial menjadi sebuah
relasi, dengan kunci primernya adalah
determinannya.
– Ubahlah dependensi yang terkait langsung dengan
kunci primer sebagai relasi tersendiri dan kunci
primernya adalah kunci primer dalam relasi semula

Oleh : Asri, S.Kom 51


Bentuk Normal ketiga (3NF)
• Bentuk 3NF adalah dengan syarat, sudah
berada dalam bentuk normal kedua dan
tidak mengandung dependensi transitif
• Dependensi transitif didekomposisi
relasinya dengan cara sebagai berikut :
– Bentuk relasi yang mewakili dependensi
fungsional yang tidak melibatkan kunci primer
dalam relasi semula, determinannya menjadi
kunci primer relasi yang dibentuk.
Oleh : Asri, S.Kom 52
Bentuk Normal ketiga (3NF) Con’t
– Bentuk relasi yang berisi kunci primer relasi
semula, kemudian pindahkan semua atribut
bukan kunci primer yang bergantung pada
kunci primer tetapi tidak bergantung pada
determinan lain ke relasi tersebut. Jadikan
atribut yang menjadi kunci primer relasi
semula sebagai kunci primer relasi baru.
Adapun atribut yang berasal dari determinan
yang menjadi perantara dalam dependensi
transitif akan bertindak sebagai kunci asing.
Oleh : Asri, S.Kom 53
Bentuk Normal Boyce-Codd
(BCNF)
• Bentuk BCNF ini melibatkan kunci
kandidat, dikatakan tabel sudah dalam
bentuk normal Boyce-Codd jika
– Tabel tersebut sudah dalam bentuk 3NF
– Tidak ada dependensi fungsional yang
determinannya merupakan bukan kunci
kandidat

Oleh : Asri, S.Kom 54


Bentuk Normal Boyce-Codd
(BCNF) Con’t
• Untuk membentuk BCNF, maka bentuk
3NF yang memiliki dependensi yang
melibatkan determinan bukan kunci
kandidat harus dinyatakan dalam relasi
tersendiri dan atribut yang berkedudukan
sebagai dependen dikeluarkan dari relasi
semula.

Oleh : Asri, S.Kom 55


Bahan Bacaan :

• Kadir, Abdul; Dasar Perancangan &


Implementasi Database Relasional,
Penerbit Andi Yogyakarta.
• Kristanto, Harianto, Ir, Konsep &
Perancangan Database, Penerbit Andi
Yogyakarta

Oleh : Asri, S.Kom 56