MAKALAH NORMALISASI

BAB I
PENDAHULUAN

1.1  Latar Belakang
Normalisasi adalah suatu proses memperbaiki/membangun data dengan model data relasional dan secara umum lebih tepat di koneksikan dengan data model logikal
Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka, sehingga terwujud satu bentuk basis data yang mudah untuk di modifikasi
Normalisasi adalah suatu proses untuk mengidentifikasi tabel kelompok atribut yang memiliki ketergantungan sangat tinggi antara satu atribut dengan aribut lainnya.
Normalisasi bisa di sebut juga sebagai proses pengolompokan atribut-atribut dari suatu relasi sehingga membentuk “Well Stuructured Relation”.
Well Stuructured Relation adalah sebuah relasi yang kerangkapan datanya sedikit (Minimum Amount Of Redudancy), serta memberikan kemungkinan bagi pemakai untuk melakukan  insert, Delete, Modify terhadap baris-baris data pada relasi tersebu,yang tidak berakibat terjadinya error atau inconsistency data yang disebabkan oleh operasi-operasiyang di berikan oleh pemakai.
1.2  Rumusan Masalah
1.      Tujuan Normalisasi
2.      Efek Normalisasi
3.      Domain dan Tipe data
4.      Bentuk-bentuk Normalisasi
5.      Contoh penerapan Normalisasi
1.3  Tujuan dan Manfaat
1.      Untuk Mengetahui Tujuan Normalisasi
2.      Untuk Mengetahi Efek Normalisasi
3.      Untuk Mengetahui Domain dan Tipe data
4.      Untuk Mengetahui Bentuk-bentuk Normalisasi
5.      Untuk Mengetahui Contoh Penerapan Normalisasi

BAB II
PEMBAHASAN

2.1 Tujuan Nomalisasi
·        Mengatur data dalam kelompok-kelompok sehingga mempermudah dalam penanganan data.
·        Menjamin perawatan data
·        Untuk menghilangkan kerangkapan data
·        Untuk mengurangi kompleksitas
·        Untuk mempermudah pemodifikasian data dll.

2.2 Efek Normalisasi
Sebagaimana terjadi pada hampir semua usaha pemecahan permasalahan, efek samping yang negative muncul. Pada kenyataannya, penerapan normalisasi juga mengakibatkan efek samping yang tidak diharapkan, yaitu:
1.Proses dekomposisi relasi mengakibatkan munculnya duplikasi rinci data pada atribut kunci penghubung.
2. Dekomposisi relasi membuka kemungkinan tidak terpenuhinya integritas   referensial dalam basis data.
3. Dekomposisi relasi menghasilkan semakin banyak jumlah relasi baru sehingga mengakibatkan inefisiensi proses menampilkan kembali data-data dari dalam basis data.
4. Adanya batasan penerapan pada beberapa DBMS untuk ukuran komputer pribadi/PC, terutama berkaitan dengan batas maksimal relasi yang dapat dibuka secara bersamaan
Efek duplikasi rinci data pada atribut kunci penghubung salah satunya dapat diatasi dengan pemanfaatan field berupa memo.




2.3 Domain dan Tipe data
Domain adalah himpunan nilai yang diijinkan pada suatu atribut. Aetiap atribut di basis datarelasional didefinisikan pada suatu domain. Domain-domain dapat berbeda untuk measing-masing atribut. Dua atribut atau lebih dapat mempunyai domain yang sama. Domain tidak hanyasekedar tipe data, tetapi domain adalah tipe data yang memiliki batasan-batasan nilai tertentu.Contoh : domain umur tidak sama dengan domain harga meskipun keduanya memiliki tipe bilangan bulat.
    
Tipe data
Domain
Character
Alpha Numeric (A-Z, 0-9, specialcharacter)
Number :
 Integer
 Real float

-32.768 s/d 32.767Pecahan
Boolean
True/false
Date
Tanggal
Memo
Text
Ole Object
Object (Image, File, Resource)

Contoh Tipe data dapat ditulisakan sebagai berikut :
Atribut
Tipe
Lebar
NIM
Character
10
NAMA MHS
Character
20
ALAMAT
Character
30
TGL LAHIR
Date
-


Penentuan lebar berdasarkan pada perkiraan jumlah minimal karakter yang diperlukan padaatribut tersebut. Pada contoh di atas, atribut NAMA_MHS mempunyai tipe Character danmempunyai lebar 20, dengan alasan karena nama orang kurang dari 20 karakter. Penggunaanlebar yang kurang tepat akan berakibat pada pemborosan dan mengakibatkan file database akanmembesar dengan cepat.Pada beberapa tipe data, seperti Date dan Boolean lebar tidak perlu dicantumkankarena sudah diatur oleh DBMS.
2.4 Bentuk-bentuk Normalisasi
1.      Bentuk tidak normal
adalah kumpulan data yang tidak disimpan tidak mempunyai format tertentu, data disimpan apa adanya sesuai masukan yang diperoleh dalam bentuk ini data mungkin saja tidak lengkap tidak konsisten / terduplikasi.
2.      Bentuk normalisasi pertama (1NF)
NIP
Nama
Jabatan
Keahlian
Lama Kerja
107
Ilham
Analis Senior
Cobol
6



Oracle
1
109
Ryan
Analis Junior
Cobol
2



C++
2
120
Fika
Programmer
Dbase
3



Sybase
1



Cobol
1
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :












           Pada contoh di atas, keahlian mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
NIP
Nama
Jabatan
Keahlian
Lama Kerja
107
Ilham
Analis Senior
Cobol
6
107
Ilham
Analis Senior
Oracle
1
109
Ryan
Analis Junior
Cobol
2
109
Ryan
Analis Junior
C++
2
120
Fika
Programmer
Dbase
3
120
Fika
Programmer
Sybase
1
120
Fika
Programmer
Cobol
1

3.      Bentuk Normal 2NF
Bentuk ini didefinisikan berdasarkan dependensi fungsional dengan syarat adalah :
·        Berada pada bentuk normal pertama
·        Semua atribut bukan kunci memiliki dependensi sepenuhnya terhadap kunci primer
Contoh :
·        Nama  dan jabatan mempunyai dependensi fungsional terhadap NIP
·        Lama mempunyai dependensi fungsional terhadap NIP dan keahlian
·        Bentuk tabelnya adalah : NNJ (NIP, Nama, Jabatan) dan NKL (NIP, Keahlian, Lama Kerja)

NIP
Nama
Jabatan
107
Ilham
Analis Senior
109
Ryan
Analis Junior
120
Fika
Programmer
   
NIP
Keahlian
Lama Kerja
107
Cobol
6
107
Oracle
1
109
Cobol
2
109
C++
2
120
Dbase
3
120
Sybase
1
120
Cobol
1
  







                           
4.      Bentuk Normal 3NF
·        Berada dalam bentuk normal 2 NF
·        Setiap atribut bukan kunci tidak memiliki dependensi transitif terhadap kunci primer
Contoh di atas sudah memenuhi normal 3NF karena : Tidak memiliki dependensi transitif, yaitu
NIP                  {Nama, Jabatan}
{NIP, Keahlian}                Lama Kerja
Bentuk Normal boyce-codd (BCNF)
Bentuk ini dilakukan jika dan hanya jika semua penentu (determinan) adalah kunci kandidat (atribut yang bersifat unik). BCNF merupakan perbaikan dari 3NF. Relasi yang memenuhi BCNF pasti memenuhi 3NF tetapi tidak sebaliknya. Contoh : Tabel SKT
Siswa
Kursus
Tutor
Anwar
Bhs. Perancis
Pierre
Anwar
Bhs. Inggris
Richard
Budi
Bhs. Perancis
Pierre
Cecep
Bhs. Inggris
Suzanne
Tabel di atas adalah suatu relasi yang memenuhi 3NF tetapi tidak memenuhi BCNF. Relasi diatas didasarkan oleh fakta :
·        Seorang siswa dapat mengambil sejumlah kursus
·        Setiap tutor hanya mengajar satu kursus bahasa
·        Setiap siswa dalam satu kursus diajar oleh satu tutor
·        Suatu kursus bis dipegang oleh beberapa tutor
Pada keadaan tersebut di atas dapat digambarkan sebagai berikut : Siswa & Kursus  dan Siswa & Tutor.
Memenuhi bentuk 3NF karena tidak ada dependensi transitif pada relasi tersebut. Tetapi tidak memenuhi BCNF karena adanya determinan Tutor yang berdiri sebagai kunci kandidat. Realsi SKT menyebabkan anomali karena baris Cecep dihapus maka Suzane sebagai tutor jug akan terhapus. Cara konversi dari 3NF ke BCNF adalah :
·        Carilah semua penentu
·        Bila terdapat penentu yang bukan kunci kandidat, maka :
·        Pisahkan relasi tersebut
·        Buat penentu sebagai kunci primer
·        Dekomposisi berupa : ST (Siswa, Tutor) dan TK (Tutor, Kursus)
Siswa
Tutor
Anwar
Pierre
Anwar
Richard
Budi
Pierre
Cece
Suzanne
Tutor
Kursus
Pierre
Bhs.Perancis
Richard
Bhs. Inggris
Suzanne
Bhs. Inggris
         



2.5  Contoh Penerapan Normalisasi
 Penerapan Normalisasi dan Implementasi ke Database SQL Server
 tahap-tahap penerapan normalisasi hingga menjadi sebuah ERD pada SQL server.

                        BON PEMBELIAN.
     

1. Bentuk Normal Pertama (1NF)
dari manual bon pembelian diatas kita dapat menjadi bentuk normal pertama dengan memisah-misahkan data pada atribut-atribut yang tepat dan bernilai atomik, juga seluruh record / baris harus lengkap adanya.


  2. Bentuk Normal Kedua (2NF).
Bentuk normal kedua dengan melakukan dekomposisi tabel diatas menjadi beberapa tabel dan mencari kunci primer dari tiap-tiap tabel tersebut dan atribut kunci haruslah unik.




    3. Bentuk Normal Ketiga (3NF)
         Bentuk normal ketiga mempunyai syarat, setiap relasi tidak mempunyai atribut yang bergantung transitif, harus bergantung penuh pada kunci utama dan harus memenuhi bentuk normal kedua (2 NF).
Implementasi ERD (entity relationship diagram) pada contoh diatas, bisa dituangkan kedalam database MS SQL Server 2005, seperti terlihat pada gambar beikut ini :


Implementasi ERD (entity relationship diagram) pada contoh diatas, bisa dituangkan kedalam database MS SQL Server 2005, seperti terlihat pada gambar beikut ini :


   Record Fisik database 

           
 
  pemakaian script sql server dalam membuat tabel-tabel diatas dan relasi yang terbentuk.
    1
   create database pembelian
Membuat database Pembelian 

    2

use  pembelian




           
  Membuat table     
01
create table kendaraan (

02
no_polisi char(10),

03
warna char(20),

04
merek char(30),

05
tahun char(5),

06
primary key (no_polisi)

07
)

08
sp_help kendaraan

09


10
create table mekanik (

11
mekanik_id char(5),

12
nama_mekanik varchar(50),

13
primary key (mekanik_id)

14
)

15
sp_help mekanik

16


17
create table parts (

18
kode_parts char(20),

19
nama_parts varchar(50),

20
harga int,

21
primary key (kode_parts)

22
)

23
sp_help parts

24


25
create table bon_pembelian (

26
no_faktur char(10),

27
tanggal datetime,

28
no_polisi char(10),

29
mekanik_id char(5),

30
potongan int,

31
primary key (no_faktur),

32
constraint FK_nopolisi foreign key (no_polisi) references kendaraan(no_polisi),

33
constraint FK_mekanik foreign key (mekanik_id) references mekanik(mekanik_id)

34
)

35
sp_help bon_pembelian

36


37
create table transaksi_parts (

38
no_faktur char(10),

39
kode_parts char(20),

40
qty int,

41
harga int,

42
discount int,

43
primary key (no_faktur,kode_parts),

44
constraint FK_nofaktur foreign key (no_faktur) references bon_pembelian(no_faktur),

45
constraint FK_kodeparts foreign key (kode_parts) references parts(kode_parts)

46
)

47
sp_help transaksi_parts

Mengisi data pada table

              
01
/*jawaban no.3 */

02
/** Isi data table kendaraan **/

03
INSERT INTO kendaraan VALUES('B3117LB','Biru','Supra X','2005')

04
INSERT INTO kendaraan VALUES('B2121AA','Merah','Supra X','2005')

05
/** isi data table mekanik **/

06
INSERT INTO mekanik VALUES('DDE','Djoko Dewanto')

07
/** isi data table  parts **/

08
INSERT INTO parts VALUES('20W501000CC','Oli Top 1 000cc',27000)

09
INSERT INTO parts VALUES('SERV001','Engine Tune Up',25000)

10
/** isi data table  bon_pembelian **/

11
INSERT INTO bon_pembelian VALUES('05103214',GETDATE(),'B3117LB','DDE',2000)

12
INSERT INTO bon_pembelian VALUES('05103215',GETDATE(),'B2121AA','DDE',0)

13
/** isi data table  transkasi_parts **/

14
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)

15
select '05103214','20W501000CC',2,harga,1000 FROM parts where kode_parts='20W501000CC'

16
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)

17
select '05103214','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'

18
INSERT INTO transaksi_parts (no_faktur,kode_parts,qty,harga,discount)

19
select '05103215','SERV001',1,harga,2000 FROM parts where kode_parts='SERV001'

                Menampilkan data dari table yang telah kita isi   
01
/*jawaban no.3 */

02
select * from kendaraan

03
select * from mekanik

04
select * from parts

05
select * from bon_pembelian

06
select * from transaksi_parts

07


08
/** Relasi antar table hingga terbentuk 1NF **/

09
select a.no_faktur, a.tanggal,a.no_polisi,e.warna,e.merek,e.tahun,a.mekanik_id,d.nama_mekanik,

10
b.kode_parts,c.nama_parts,b.qty,b.harga,b.discount,(b.qty*b.harga)-(b.qty*b.discount) as jumlah,a.potongan,

11
(select sum((qty*harga)-(qty*discount))-a.potongan from transaksi_parts where no_faktur=a.no_faktur) as total

12
from bon_pembelian as a

13
join transaksi_parts  as b ON a.no_faktur=b.no_faktur

14
join parts as c ON b.kode_parts=c.kode_parts

15
join mekanik as d ON a.mekanik_id=d.mekanik_id

16
join kendaraan as e ON a.no_polisi=e.no_polisi



BAB III
PENUTUP
3.1 Kesimpulan
       Normalisasi adalah suatu proses memperbaiki/membangun data dengan model data relasional dan secara umum lebih tepat di koneksikan dengan data model logikal
Normalisasi adalah proses pengelompokan data ke dalam bentuk tabel atau relasi atau file untuk menyatakan entitas dan hubungan mereka, sehingga terwujud satu bentuk basis data yang mudah untuk di modifikasi

                                                          BAB IV
                                          DAFTAR PUSTAKA

·        Dedy Rusdiansyah. “Penerapan Normalisasi dan Implementasi’.26 oktober 2015.
·        Apipfuddin.”Normalisasi Database”.25 oktober 2015.
·        Dewi Rahmawati. “Normalisasi”. 25 oktober 2015.











  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 komentar:

Posting Komentar