UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006
Perancangan Alat Bantu Normalisasi BCNF dan 4NF R.Bg.AdhiPrakoso Susilo
0600614971
Ie Siong Fat
0600619493
Wilson Lesmana
0600668835
Abstrak Tujuan dari penelitian ini adalah merancang sebuah alat bantu yang mempunyai kemampuan untuk menentukan candidate key yang akan dijadikan primary key, dapat menentukan ketergantungan fungsional dari relasi yang dimasukkan, dapat menentukan tabel atau relasi berada pada bentuk normal apa (1NF, 2NF, 3NF, BCNF atau 4NF), dapat melakukan dekomposisi ke dalam bentuk normal berikutnya, menghasilkan kode SQL untuk membuat tabel, dan dapat menggambarkan diagram hubungan atau relasi antar entiti. Metodologi yang digunakan dalam penelitian ini adalah metode analisis dan perancangan. Kebutuhan sistem yang terkumpul dari berbagai sumber dianalisis dan dibuat perancangan yang sesuai dengan hasil analisis. Penelitian ini telah menghasilkan sebuah alat bantu normalisasi BCNF dan 4NF. Dari penelitian ini dapat disimpulkan bahwa perancangan alat bantu normalisasi ini telah mencapai tujuan dasarnya yaitu melakukan proses normalisasi BCNF dan 4NF. Alat bantu ini bisa digunakan oleh mahasiswa dalam mempelajari pemodelan data dengan normalisasi. Kata Kunci : Alat bantu, normalisasi, pemodelan data, BCNF, 4NF
vii
PRAKATA Dengan segala kerendahan hati, penulis memanjatkan puji syukur kepada Tuhan Yang Maha Esa yang telah melimpahkan berkat dan kemurahan-Nya sehingga penulis dapat menyelesaikan penyusunan skripsi ini yang berjudul “Perancangan Alat Bantu Normalisasi BCNF dan 4NF”. Penyusunan skripsi ini dimaksudkan untuk memenuhi sebagian dari persyaratan guna mencapai gelar Sarjana Komputer Jurusan Teknik Informatika pada Fakultas Ilmu Komputer Bina Nusantara. Semoga skripsi ini nantinya dapat memberikan manfaat bagi perkembangan teknologi informasi di Indonesia dan dapat dijadikan sebagai suatu sumbangan, baik untuk dunia pendidikan umumnya dan Universitas Bina Nusantara khususnya. Dalam kesempatan ini penulis juga ingin menyampaikan rasa terima kasih kepada semua pihak yang telah banyak membantu penulis, baik secara langsung maupun tidak langsung, terutama kepada : 1. Orang tua, serta saudara yang telah memberikan dukungan materiil dan moril kepada penulis dalam menyelesaikan skripsi ini. 2. Prof. Dr. Geraldus Polla M.App, Sc, selaku Rektor Universitas Bina Nusantara. 3. Bapak H. Mohammad Subekti selaku Ketua Jurusan Teknik Informatika. 4. Bapak Fredy Purnomo, S.Kom., M.Kom selaku Sekretaris Jurusan Teknik Informatika. 5. Bapak Ashari, S.Kom, M.Kom, selaku dosen pembimbing yag telah menyediakan waktu, memberikan saran, bantuan, bimbingan, pengarahan, dorongan, kepercayaan dan kesempatan kepada penulis dalam menyelesaikan masalah-masalah yang dihadapi penulis selama penyusunan skripsi ini.
viii
6. Seluruh dosen Universitas Bina Nusantara yang telah membekali penulis dengan ilmu pengetahuan. 7. Seluruh staf dan asisten UPT Lab Perangkat Lunak Bina Nusantara yang telah memberikan dukungan tempat dan sarana untuk penyelesaian skripsi ini. 8. Segenap teman-teman yang telah memberikan bantuan, dorongan dan motivasi. Akhir kata, penulis mengharapkan saran, kritik dan masukan dari berbagai pihak terhadap skripsi ini. Karena dengan adanya kritikan, saran dan masukan Anda akan semakin memperkaya diri penulis dan karya ilmiah ini.
Jakarta, Januari 2006
Penulis
ix
DAFTAR ISI HALAMAN JUDUL LUAR...............................................................................................i HALAMAN JUDUL DALAM ......................................................................................... ii HALAMAN PERSETUJUAN HARDCOVER............................................................... iii HALAMAN KESIAPAN SKRIPSI..................................................................................iv HALAMAN KESIAPAN SKRIPSI...................................................................................v HALAMAN KESIAPAN SKRIPSI..................................................................................vi HALAMAN ABSTRAK................................................................................................. vii PRAKATA..................................................................................................................... viii DAFTAR ISI......................................................................................................................x DAFTAR GAMBAR ..................................................................................................... xiii DAFTAR TABEL...........................................................................................................xvi DAFTAR TABEL...........................................................................................................xvi DAFTAR LAMPIRAN................................................................................................. xvii DAFTAR LAMPIRAN................................................................................................. xvii BAB 1 PENDAHULUAN .................................................................................................1 1.1 Latar Belakang .......................................................................................................1 1.2 Ruang Lingkup.......................................................................................................3 1.3 Tujuan dan Manfaat ...............................................................................................3 1.4 Metodologi .............................................................................................................4 1.5 Sistematika Penulisan ............................................................................................5 BAB 2 LANDASAN TEORI.............................................................................................7 2.1 Database .................................................................................................................7 2.1.1 Basis Data ......................................................................................................7 2.1.2 Model Relasional ...........................................................................................7 2.1.3 Kunci Relasional ............................................................................................8 2.1.4 Struktur Data Relasional ................................................................................9 2.1.5 Tahapan Perancangan Basis Data ................................................................10 2.1.6 Entity-Relational Diagram (ERD) ...............................................................11 2.2 Normalisasi ..........................................................................................................12 2.2.1 Pengertian Normalisasi ................................................................................12 2.2.2 Pengertian Anomali......................................................................................13 2.2.3 Dependensi (Ketergantungan)......................................................................16 2.2.6 Proses Normalisasi .......................................................................................19
x
2.2.7 Overnormalisasi ...........................................................................................28 2.3 Algoritma Normalisasi BCNF dan 4NF...............................................................29 2.3.1 Algoritma Normalisasi BCNF......................................................................29 2.3.2 Algoritma Normalisasi 4NF.........................................................................30 2.4 Perancangan Piranti Lunak ..................................................................................31 2.5 Alat Bantu Perancangan Sistem ...........................................................................33 2.2.1 Use Case Diagram........................................................................................33 2.2.1.1 Use Case...................................................................................................33 2.2.1.2 Actor.........................................................................................................34 2.2.1.3 Relationship .............................................................................................34 2.2.2 Diagram Alir (flowchart) .............................................................................35 BAB 3 ANALISIS DAN PERANCANGAN SISTEM ...................................................37 3.1 Analisis Kebutuhan Sistem ..................................................................................37 3.1.1 Kebutuhan Fungsional .................................................................................37 3.1.2 Kebutuhan Non Fungsional .........................................................................41 3.2 Perancangan .........................................................................................................41 3.2.1 Perancangan Basis Data ...............................................................................41 3.2.1.1 Rancangan Basis Data Konseptual ..............................................................41 3.2.1.2 Rancangan Basis Data Logikal ....................................................................42 3.2.1.3 Rancangan Basis Data Fisikal......................................................................43 3.2.2 Perancangan Proses......................................................................................49 3.2.2.1 Rancangan Proses Keseluruhan ...................................................................49 3.2.2.2 Rancangan Proses Pencarian Candidate Key...............................................50 3.2.2.3 Rancangan Proses Pencarian Functional Dependency.................................51 3.2.2.4 Rancangan Proses Bentuk Normal Kedua ...................................................53 3.2.2.5 Rancangan Proses Bentuk Normal Ketiga ...................................................55 3.2.2.6 Rancangan Proses Bentuk BCNF ................................................................57 3.2.2.7 Rancangan Proses Bentuk 4NF....................................................................59 3.2.2.8 Rancangan Proses Kode SQL ......................................................................62 3.2.3 Perancangan Layar .......................................................................................65 3.2.3.1 Rancangan Layar pada Menu Utama .......................................................65 3.2.3.2 Rancangan Layar pada Menu File............................................................66 3.2.3.3 Rancangan Layar pada Menu Help ..........................................................67 3.2.3.4 Rancangan Layar pada Create Project .....................................................68 3.2.3.5 Rancangan Layar pada Menu Input Table ...................................................69 3.2.3.6 Rancangan Layar pada Menu Import Data ..................................................70 xi
3.2.3.7 Rancangan Layar pada Menu Create Table .................................................71 3.2.3.8 Rancangan Layar pada Menu Input Data................................................72 3.2.3.9 Rancangan Layar pada Menu Primary Key .................................................73 3.2.3.10 Rancangan Layar pada Menu Functional Dependency..............................74 3.2.3.11 Rancangan Layar pada Menu Normal Form..............................................75 3.2.3.12 Rancangan Layar pada Menu ERD............................................................76 3.2.3.13 Rancangan Layar pada Menu SQL Code...................................................77 BAB 4 IMPLEMENTASI DAN EVALUASI ................................................................78 4.1 Implementasi ........................................................................................................78 4.1.1 Spesifikasi Sistem ........................................................................................78 4.1.2 Tata Cara Penggunaan..................................................................................79 4.1.2.1 Layar Menu Utama ..................................................................................79 4.1.2.2 Layar Menu File.......................................................................................79 4.1.2.3 Layar Menu Help .....................................................................................80 4.1.2.4 Layar Open Project ..................................................................................81 4.1.2.5 Layar Create Project.................................................................................82 4.1.2.6 Layar Input Table.....................................................................................83 4.1.2.7 Layar Import Table ..................................................................................84 4.1.2.8 Layar Input Table Manually.....................................................................85 4.1.2.9 Layar Primary Key...................................................................................87 4.1.2.10 Layar Functional Dependency ...................................................................88 4.1.2.11 Layar Normal Form ...................................................................................88 4.1.2.12 Layar Analisis BCNF.................................................................................91 4.1.2.13 Layar Analisis 4NF ....................................................................................91 4.1.2.14 Layar Create ERD ......................................................................................92 4.1.2.16 Layar Create SQL Code .............................................................................94 4.2 Evaluasi ................................................................................................................95 4.2.1 Evaluasi Hasil Pengujian .............................................................................95 4.2.2 Evaluasi Pemenuhan Aplikasi terhadap Kebutuhan Sistem ........................99 BAB 5 SIMPULAN DAN SARAN..............................................................................101 5.1 Simpulan ............................................................................................................101 5.2 Saran...................................................................................................................101 DAFTAR PUSTAKA ....................................................................................................103 DAFTAR RIWAYAT HIDUP......................................................................................104 LAMPIRAN...................................................................................................................107
xii
DAFTAR GAMBAR Gambar 2.3 contoh Functional Dependency....................................................................24 Gambar 2.2 Model linear sekuensial................................................................................31 Gambar 2.3 Konsep Diagram Alir ...................................................................................36 Gambar 3.1 Rancangan Use Case Sistem ........................................................................38 Gambar 3.2 Rancangan Basis Data Konseptual...............................................................42 Gambar 3.3 Rancangan Basis Data Logical.....................................................................43 Gambar 3.4 Diagram Alir Proses Keseluruhan..............................................................50 Gambar 3.5 Diagram Alir Pencarian Candidate Key.....................................................51 Gambar 3.6 Diagram Alir Pencarian Functional Dependency.......................................53 Gambar 3.7 Diagram Alir Bentuk Normal Kedua ...........................................................55 Gambar 3.8 Diagram Alir Bentuk Normal Ketiga ...........................................................57 Gambar 3.9 Diagram Alir Bentuk Normal BCNF ...........................................................59 Gambar 3.10 Diagram Alir Bentuk Normal 4NF ............................................................61 Gambar 3.11 Diagram Alir Proses Kode SQL.................................................................64 Gambar 3.12 Rancangan Layar Menu Utama..................................................................65 Gambar 3.13 Rancangan Layar Menu File ......................................................................66 Gambar 3.14 Rancangan Layar Menu Help.....................................................................67 Gambar 3.15 Rancangan Layar Create Project ...............................................................68 Gambar 3.16 Rancangan Layar Input Table ....................................................................69 Gambar 3.17 Rancangan Layar Import Data ...................................................................70 Gambar 3.18 Rancangan Layar Create Table..................................................................71 Gambar 3.19 Rancangan Layar Input Data .....................................................................72
xiii
Gambar 3.20 Rancangan Layar Primary Key ..................................................................73 Gambar 3.21 Rancangan Layar Functional Dependency ................................................74 Gambar 3.22 Rancangan Layar Normal Form.................................................................75 Gambar 3.23 Rancangan Layar ERD ...............................................................................76 Gambar 3.24 Rancangan Layar SQL Code ......................................................................77 Gambar 4.1 Layar Menu Utama.......................................................................................79 Gambar 4.2 Layar Menu File ...........................................................................................80 Gambar 4.3 Layar Menu Help .........................................................................................81 Gambar 4.4 Layar Open Project ......................................................................................82 Gambar 4.5 Layar Create Project....................................................................................83 Gambar 4.6 Layar Input Table .........................................................................................84 Gambar 4.7 Layar Import Table.......................................................................................85 Gambar 4.8 Layar Input Table Manually (Create Table) ................................................86 Gambar 4.9 Layar Input Table Manually (Input Data)....................................................86 Gambar 4.10 Layar Primary Key .....................................................................................87 Gambar 4.11 Layar Functional Dependency ...................................................................88 Gambar 4.12 Layar Normal Form ...................................................................................89 Gambar 4.13 Layar Normal Form untuk BCNF ..............................................................89 Gambar 4.14 Layar Normal Form untuk 4NF .................................................................90 Gambar 4.15 Layar Analisis BCNF .................................................................................91 Gambar 4.16 Layar Analisis 4NF ....................................................................................92 Gambar 4.17 Layar Create ERD......................................................................................93 Gambar 4.16 Layar Create SQL Code .............................................................................95 Gambar 4.19 Grafik evaluasi jumlah record terhadap waktu analisis BCNF..................96 xiv
Gambar 4.20 Grafik evaluasi jumlah field terhadap waktu analisis BCNF .....................97 Gambar 4.21 Grafik evaluasi jumlah record terhadap waktu analisis MVD...................98 Gambar 4.22 Grafik evaluasi jumlah field terhadap waktu analisis MVD ......................99
xv
DAFTAR TABEL Tabel 2.1 Relasi Staf dan Cabang ....................................................................................13 Tabel 2.2 Relasi StafCabang ............................................................................................14 Tabel 2.3 Tabel SewaKlien yang belum dinormalisasi....................................................20 Tabel 2.4 Relasi SewaKlien pada bentuk normal pertama ..............................................21 Tabel 2.5 Relasi Klien dan PemilikPropertiSewa pada 1NF ...........................................23 Tabel 2.6 Relasi Teach.....................................................................................................25 Tabel 2.7 Relasi Teach setelah didekomposisi ................................................................26 Tabel 2.8 Relasi BranchStaffOwner.................................................................................27 Tabel 2.9 Relasi BranchStaffOwner setelah didekomposisi ............................................27
xvi
DAFTAR LAMPIRAN
Tabel perbandingan jumlah field terhadap waktu pencarian BCNF..............................107 Tabel perbandingan jumlah field terhadap waktu pencarian Multi Valued Dependency. ................................................................................................................................108 Tabel perbandingan jumlah record terhadap waktu pencarian BCNF...........................109 Tabel perbandingan jumlah record terhadap waktu pencarian Multi Valued Dependency ................................................................................................................................111 CONTOH KUISIONER.................................................................................................113 HASIL KUESIONER ....................................................................................................115
xvii