Post on 17-Aug-2019
transcript
PERANCANGAN ALGORITMA OTOMATISASI NORMALISASI DATA
(Skripsi)
Oleh
Said Achmad
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
BANDAR LAMPUNG
2018
ABSTRACT
ALGORITHM DESIGN FOR DATA NORMALIZATION AUTOMATION
By
SAID ACHMAD
Normalization is a technique to design database structure by grouping the attributes of
a relation to avoid the set of relationships that cause data duplication, data
inconsistency, and null value. Automation normalization can simplify a database
design has a normal form, several recent works have been done to do normalization
automatically through various approaches. In this paper, database design and some data
records used as an alternative approach to find the candidate key and do normalization.
Normalization steps are written in algorithms to possibly the computer to run them.
The algorithm can accept the first uniform database design as an input and provide the
output of the second normal form database design and possible to achieve the third
normal form.
Keywords: Database, Normalization, Automatic Normalization
ABSTRAK
PERANCANGAN ALGORITMA OTOMATISASI NORMALISASI DATA
Oleh
SAID ACHMAD
Normalisasi merupakan suatu teknik untuk membentuk struktur basis data dengan
mengelompokkan atribut suatu relasi untuk menghindari terbentuknya relasi yang
menimbulkan duplikasi data, inkonsistensi data, dan null value. Otomatisasi
normalisasi dapat mempermudah suatu rancangan basis data memiliki bentuk yang
normal, beberapa penelitian telah dilakukan untuk melakukan normalisasi secara
otomatis melalui berbagai pendekatan. Penelitian ini menggunakan rancangan basis
data dan beberapa record data sebagai pendekatan alternatif untuk menemukan
candidate key dan melakukan normalisasi. Langkah-langkah normalisasi dituliskan
dalam bentuk algoritma, sehingga memungkinkan komputer untuk menjalankannya.
Algortima yang dirancang dapat menerima masukan rancangan basis data bentuk
normal kesatu dan memberikan keluaran rancangan basis data bentuk normal kedua
dan jika memungkinkan akan mencapai bentuk normal ketiga.
Kata kunci: Basis Data, Normalisasi, Normalisasi otomatis
PERANCANGAN ALGORITMA OTOMATISASI NORMALISASI DATA
Oleh
Said Achmad
Skripsi
Sebagai Salah Satu Syarat untuk Memperoleh Gelar SARJANA KOMPUTER
Pada Jurusan Ilmu Komputer
Fakultas Matematika dan Ilmu Pengetahuan Alam
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS LAMPUNG
BANDAR LAMPUNG
2018
RIWAYAT HIDUP
Penulis dilahirkan pada 7 April 1996 di Jakrta sebagai anak
ketiga dari tiga besaudara dengan Ayah bernama Achmad dan
Ibu bernama Ratna Susilowati.
Penulis menyelesaikan Pendidikan Sekolah Dasar (SD) di SD
Negeri 06 Cileungsi tahun 2008, menyelesaikan Sekolah
Menegah Pertama (SMP) di SMP Negeri 1 Cileungsi tahun 2011, kemudian
menyelesaikan Sekolah Menegah Atas (SMA) di SMA Negeri 7 Bekasi tahun 2014.
Penulis mendapat peringkat pertama lomba komputer tingkat Kecamatan Cileungsi
tahun 2007, mendapat peringkat pertama lomba komputer tingkat Kabupaten Bogor
tahun 2007, dan menjadi siswa prestasi SMA Negeri 7 Bekasi tahun 2012.
Penulis melanjutkan jengjang Pendidikan dengan terdaftar sebagai mahasiswa
Jurusan Ilmu Komputer Universitas Lampung tahun 2014. Penulis melakukan
Kerja Praktik di PT. Rekayasa Industri pada bulan Februari tahun 2017 dan
melaksanakan Kuliah Kerja Nyata di Desa Sukabaru, Kecamatan Penengahan
Kabupaten Lampung Selatan pada bulan Agustus tahun 2017
SANWACANA
Segala puji dan syukur penulis panjatkan kehadirat Allah SWT, atas berkat rahmat
dan hidayah-Nya yang diberikan kepada penulis, sehingga penulis dapat
menyelesaikan penulisan skripsi yang berjudul “Perancangan Algoritma
Otomatisasi Normalisasi Data” dengan baik. Tidak lupa sholawat serta salam
semoga selalu tercurahkan kepada Nabi Besar Muhammad SAW beserta
keluarganya, para sahabatnya dan pengikutnya.
Pada kesempatan ini penuils mengucapkan terima kasih kepada pihak-pihak yang
berdedikasi tinggi membantu dalam menyelesaikan skripsi ini. Oleh karena itu
ucapan terima kasih disampaikan kepada:
1. Kedua orang tua, Achmad dan Ratna Susilowati yang tanpa kenal lelah
selalu memberikan doa dan dukungan.
2. Kedua kakak, Zaki Achmad dan Zakiah Achmad yang selalu memberikan
semangat dan doa.
3. Bapak Wahyudin Zakie, Bapak Zuhri An, Bapak Kris Nur Akbar, serta
rekan-rekan System Development dan ICT Development PT. Rekyasa
Indutri, yang telah banyak memberikan pelajaran serta motivasi hingga
penulis bisa sampai ditahap ini..
4. Bapak Didik Kurniawan, S.Si., M.T. sebagai pembimbing utama, yang
senantiasa meluangkan waktunya di tengah-tengah kesibukan untuk
membimbing dan memberikan arahan dalam penyusunan skripsi ini.
5. Bapak Rico Andrian, S.Si., M.Kom. sebagai pembimbing II, yang telah
membimbing, memberikan komentar dan masukan selama penyusunan
skripsi ini.
6. Bapak Aristoteles, S.Si., M.Si. sebagai pembahas, yang telah memberikan
kritik dan masukan yang bermanfaat untuk perbaikan penyusunan skripsi
ini.
7. Bapak Dr. rer. nat. Akmal Junaidi, M.Sc selaku Dosen Jurusan Ilmu
Komputer yang senantiasa memberikan motivasi, ide, dan saran sehingga
penulis bisa melakukan penyusunan skripsi ini.
8. Bapak Dr. Ir. Kurnia Muludi, M.S. Sc. selaku Ketua Jurusan Ilmu Komputer
Universitas Lampung.
9. Bapak Didik Kurniawan, S.Si., M.T. selaku Sekretaris Jurusan Ilmu
Komputer Universitas Lampung.
10. Anri Dicky Septiawan dan Tanti Oktaviani yang senantiasa sabar dan selalu
memberikan dukungan, doa, dan menjadi pribadi yang menginspirasi
penulis hingga penulis bisa sampai ditahap ini.
11. Keluarga KKN Periode II tahun 2017 Desa Sukabaru: Aditya Mancini,
Erika Sempana Br. Ginting, Indri Komalasari, dan Nabila Prastika Putri
yang telah memberikan arti kebersamaan, semangat dan kenangan berharga
selama ini.
12. Rekan-rekan satu angkatan Ilmu Komputer 2014 yang telah memberikan
dukungan dan motivasi serta menjadi tempat berbagi keluh dan kesah
selama menempuh perkuliahan.
Bandar Lampung, 21 September 2018
Said Achmad
DAFTAR ISI
DAFTAR ISI ........................................................................................................... i
DAFTAR TABEL ................................................................................................ iii
DAFTAR GAMBAR ............................................................................................ iv
BAB I PENDAHULUAN
1.1 Latar Belakang ............................................................................................. 1
1.2 Rumusan Masalah ........................................................................................ 4
1.3 Batasan Masalah........................................................................................... 5
1.4 Tujuan .......................................................................................................... 5
1.5 Manfaat ........................................................................................................ 5
BAB II TINJAUAN PUSTAKA
2.1 Algoritma ..................................................................................................... 6
2.2 Basis Data .................................................................................................... 7
2.3 Key, Candidate Key, Primary Key dan Foreign Key ................................... 7
2.4 Normalisasi .................................................................................................. 9
2.5 Normalisasi Berbasiskan Matrix ................................................................ 15
2.6 Normalisasi Berbasiskan Candidate Key ................................................... 17
ii
BAB III MTODOLOGI PENELITIAN
3.1 Waktu dan Tempat Penelitian .................................................................... 21
3.2 Alat Pendukung .......................................................................................... 21
3.3 Metodologi Penelitian ................................................................................ 22
3.4 Metode Pengumpulan Data ........................................................................ 25
BAB IV PEMBAHASAN
4.1 Inisialisasi Record Data.............................................................................. 26
4.2 Identifikasi Key .......................................................................................... 28
4.3 Analisis Dependencies ............................................................................... 31
4.4 Analisis Primary Key ................................................................................. 34
4.5 Normalisasi Otomatis ................................................................................. 37
4.6 Pengujian .................................................................................................... 41
4.7 Pengujian White Box .................................................................................. 48
BAB V KESIMPULAN
5.1 Kesimpulan ................................................................................................ 60
5.2 Saran ........................................................................................................... 60
DAFTAR PUSTAKA
LAMPIRAN
DAFTAR TABEL
Tabel 1 Hasil Pengujian Berdasarkan Jumlah Record Data ..................................44
Tabel 2 Hasil Perbandingan Dengan Tools Sejenis...............................................47
Tabel 3 Test Case Algoritma Inisialisasi Record Data..........................................49
Tabel 4 Test Case Algoritma Identifikasi Key.......................................................51
Tabel 5 Test Case Algoritma Analisis Dependencies ...........................................54
Tabel 6 Test Case Algoritma Analisis Key............................................................56
DAFTAR GAMBAR
Gambar 1 Contoh Candidate Key...........................................................................7
Gambar 2 Contoh Primary Key dan Foreign Key.................................................9
Gambar 3 Non-Atomic Value................................................................................12
Gambar 4 Bentuk Normal Pertama.......................................................................13
Gambar 5 Normal Pertama ke Normal Kedua......................................................13
Gambar 6 Bentuk Normal Ketiga .........................................................................14
Gambar 7 Algoritma Directed Graph Matrix.......................................................15
Gambar 8 Algoritma Dependency Closure...........................................................16
Gambar 9 A;goritma Circular Dependency .........................................................16
Gambar 10 Algoritma A1 .....................................................................................18
Gambar 11 Algoritma A2 .....................................................................................18
Gambar 12 Algoritma A3 .....................................................................................19
Gambar 13 Algoritma A4 .....................................................................................19
Gambar 14 Algoritma A5 .....................................................................................20
Gambar 15 Algoritma A6 .....................................................................................20
Gambar 16 Diagram Metodologi Penelitian.........................................................22
Gambar 17 Inisialisasi Record Data .....................................................................38
Gambar 18 Identifikasi Key ..................................................................................39
Gambar 19 Analisis Dependencies .......................................................................39
Gambar 20 Analisisi Primary Key........................................................................40
Gambar 21 Hasil Normalisasi...............................................................................40
Gambar 22 Pengujian Pertama .............................................................................41
Gambar 23 Pengujian Kedua ................................................................................42
Gambar 24 Masukan Tools Normalisasi...............................................................44
Gambar 24 Masukan Tools Normalisasi...............................................................44
v
Gambar 25 Masukan Normalisasi Menggunakan Record Data ...........................44
Gambar 26 Keluaran Tools Normalisasi...............................................................45
Gambar 27 Keluaran Normalisasi Menggunakan Record Data ...........................46
Gambar 28 Rumus Cyclomatic Complexity..........................................................48
Gambar 29 Flowgraph Algoritma Inisialisasi Record Data .................................49
Gambar 30 Hasil Tahap Inisialisasi Record Data.................................................50
Gambar 31 Flowgraph Algoritma Identifikasi Key ..............................................50
Gambar 32 Hasil Tahap Identifikasi Key..............................................................53
Gambar 33 Flowgraph Algoritma Analisis Dependencies ...................................53
Gambar 34 Hasil Tahap Analisis Dependencies ..................................................55
Gambar 35 Flowgraph Algoritma Analisis Primary Key .....................................55
Gambar 36 Hasil Tahap Analisis Primary Key ....................................................59
BAB I
PENDAHULUAN
1.1 Latar Belakang
Basis data merupakan tempat penyimpanan data dalam sistem informasi yang kini
menjadi pendukung proses bisnis suatu instansi atau organisasi. Basis data
mendukung sebuah sistem untuk memiliki kemudahan dalam menyimpan data,
memperbarui data, dan mengolah data menjadi informasi. Basis data memberikan
kemudahan dalam menyimpan, mengambil, memanipulasi, dan mencari data
dengan cepat. Basis data merupakan media penyimpanan yang memberikan
kemudahan bagi penggunanya untuk dapat merancang bagaimana data akan
disimpan sesuai dengan kebutuhan. Rancangan basis data merupakan hal yang
menentukan mudahnya suatu data disimpan, diambil, dimanipulasi dan dicari
dengan cepat, perancangan basis data harus dilakukan dengan benar untuk
menghindari kemungkinan terjadinya kegagalan dalam proses penyimpanan data,
kehilangan data penting yang masih dibutuhkan, serta adanya data yang tidak
konsisten setelah terjadinya pembaharuan data.
Teknik yang dapat digunakan untuk menangani kendala yang dihadapi saat
melakukan perancangan basis data adalah teknik normalisasi basis data.
Normalisasi merupakan suatu cara untuk membentuk rancangan basis data dengan
2
mengelompokkan atribut suatu relasi sehingga terbentuk relasi yang tidak
menimbulkan duplikasi data, inkonsistensi data, dan null value. Normalisasi
memiliki beberapa macam bentuk yang sering digunakan yaitu bentuk normal
pertama (1NF), bentuk normal kedua (2NF), dan bentuk normal ketiga (3NF).
Bentuk-bentuk normal pada teknik normalisasi memiliki syarat yang harus
dipenuhi untuk sebuah rancangan dapat mencapai bentuk tersebut.
Otomatisasi normalisasi dapat mempermudah suatu rancangan basis data memiliki
bentuk yang normal, beberapa penelitian telah dilakukan untuk melakukan
normalisasi secara otomatis melalui berbagai pendekatan. M. Naghibzadeh, Amir
H Bahamani dan Behnam Bahmani melakukan penelitian normalisasi otomatis
dengan membentuk matrix berdasarkan pendefinisian ketergantugan yang ada pada
semua atribut sebagai basis dari proses normalisasi otomatis. Langkah-langkah
pembentukan matrix hingga normalisasi dituliskan dalam bentuk algoritma.
Penelitian M. Naghibzadeh menghasilkan algoritma yang dapat melakukan
normalisasi mencapai bentuk normal Boyce-Codd beserta pembentukan primary
key yang dimiliki tiap tabel (Naghibzadeh, 2008).
G. Sunitha dan DR. A. Jaya juga melakukan penelitian untuk melakukan
normalisasi otomatis melalui pendekatan knowledge based. G. Sunitha menerapkan
pengetahuan yang dimiliki manusia kepada sistem untuk melakukan proses
normalisasi, namun G. Sunitha tidak menampilkan scara spesifik bagaimana proses
normalisasi otomatis berjalan pada penelitiannya. Normalisasi otomatis pada
penelitian yang dilakukan oleh G. Sunitha menghasilkan rancangan basis data
mencapai bentuk normal ketiga (Sunitha, 2013).
3
Penelitian untuk melakukan normalisasi otomatis juga dilakukan oleh Moussa
Demba. Moussa Demba melakukan normalisasi otomatis dengan
memperhitungkan semua candidatee key, berbeda dengan penelitian lain yang
menggunakan web-based tool dan hanya memperhitungkan primary key.
Candidatee key yang ada dianalisis berdasarkan himpunan atribut dan pendefinisian
ketergantugan tiap atribut sebagai masukan dari proses normalisasi otomatis.
Langkah-langkah normalisasi yang memperhitungkan semua candidatee keys
dituliskan dalam bentuk algoritma. Penelitian Moussa Demba menghasilkan
algoritma yang dapat melakukan normalisasi mencapai bentuk normal ketiga
(Demba, 2013). Penelitian yang dilakukan M. Naghibzadeh dan Moussa Demba
memiliki kesamaan yaitu menggunakan himpunan atribut serta pendefinisian
ketergantungan fungsional sebagai masukan meskipun keduanya memiliki
pendekatan yang berbeda.
Normalisasi otomatis pada penelitian ini merupakan pengembangan dari penelitian
yang dilakukan oleh Moussa Demba, dengan memperhitungkan semua candidate
key untuk melakukan normalisasi, dan menghasilkan algoritma yang dapat
melakukan normalisasi otomatis. Penelitian ini menggunakan rancangan basis data
dan beberapa record data sebagai pendekatan alternatif untuk menemukan
candidate key. Langkah-langkah normalisasi pada penelitian ini dituliskan dalam
bentuk algoritma.
Algoritma memungkinkan suatu komputer dapat menjalankan perintah untuk
menyelesaikan tugas tertentu, sehingga algoritma berperan pada setiap hal yang
terjadi di dalam komputer. Algoritma pada komputer merupakan sekumpulan
langkah untuk menyelesaikan pekerjaan yang dideskripsikan dengan tepat sehingga
4
komputer dapat menjalankannya (Cormen, 2013). Langkah-langkah normalisasi
yang dituliskan dalam bentuk algoritma, memungkinkan komputer untuk
menjalankannya dan memberikan solusi rancangan basis data dalam bentuk normal,
sehingga otomatisasi normalisasi dapat dilakukan.
Algoritma pada penelitian ini berisi urutan normalisasi otomatis menggunakan
rancangan basis data dan record data sebagai masukan, kemudian diproses untuk
memenuhi aturan-aturan normalisasi, dan menghasilkan rancangan basis data
dalam bentuk yang normal. Algoritma yang dibentuk dapat menerima masukan
rancangan basis data bentuk normal pertama, kemudian memberikan keluaran yang
dapat mencapai rancangan basis data dalam bentuk normal kedua, atau normal
ketiga. Algoritma akan diterapkan menjadi kode program, sehingga kemampuan
record data sebagai pendekatan alternatif dapat dikaji dan dievaluasi dengan
mudah.
1.2 Rumusan Masalah
Rumusan masalah dalam penelitian ini, antara lain :
1. Bagaimana membentuk algoritma yang dapat mengidentifikasi candidate
key melalui record data?
2. Bagaimana membentuk algoritma otomatisasi yang dapat melakukan
normalisasi menggunakan rancangan basis data dan beberapa record
data?
3. Bagaimana kemampuan record data sebagai pendekatan alternatif untuk
mengidentifikasi candidate key pada suatu rancangan basis data?
5
1.3 Batasan Masalah
Batasan masalah dalam penelitian ini adalah sebagai berikut :
1. Algoritma pada penelitian ini memiliki masukan berupa rancangan basis
data dalam bentuk normal pertama.
2. Algoritma pada penelitian ini memiliki masukan minimal empat record
data dan maksimal sepuluh record data. Semakin banyak jumlah atribut
dari rancangan basis data, maka jumlah record data yang harus dijadikan
masukan juga semakin banyak dan bervariasi.
3. Algoritma pada penelitian ini menghasilkan keluaran yang berupa
rancangan basis data yang mencapai bentuk normal kedua atau normal
ketiga.
1.4 Tujuan
Tujuan dari penelitian ini adalah membentuk algoritma otomatisasi yang dapat
melakukan normalisasi basis data menggunakan rancangan basis data dan beberapa
record data.
1.5 Manfaat
Manfaat dari penelitian ini adalah sebagai berikut :
1. Memberikan tambahan pendekatan alternatif dalam bidang normalisasi
otomatis.
2. Menjadi referensi untuk penelitian sejenis dan sebagai bahan
pertimbangan untuk dikembangkan lebih lanjut.
BAB II
TINJAUAN PUSTAKA
2.1 Algoritma
Algoritma merupakan prosedur atau urutan langkah-langkah untuk memecahkan
suatu masalah. Algoritma adalah skema dimana langkah-langkah suatu proses
dikerjakan secara berurutan, sebuah algoritma harus benar, setiap langkah harus
didefinisikan dengan tepat dan tidak ambigu, setiap langkah dalam algoritma harus
sederhana sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
Algoritma dapat memiliki nol atau lebih masukan, dan mempunyai nol atau lebih
keluaran. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas,
jika suatu program yang merupakan implementasi dari suatu algoritma tidak pernah
berhenti maka dapat mengindikasikan bahwa program tersebut berisi algoritma
yang salah.
Algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Langkah-
langkah penyelesaian tersebut dapat dituliskan dalam notasi algoritmik. Notasi
algoritmik tidak seperti pada notasi bahasa pemrograman, tidak ada notasi yang
standar atau aturan baku unuk menuliskan algoritma, setiap orang dapat
mendefinisikan notasi algoritmik sendiri. Notasi algoritmik yang baik adalah notasi
yang mudah dibaca dan mudah pula ditranslasikan ke dalam notasi bahasa
pemrograman. Notasi algoritmik yang diimplementasikan kedalam notasi bahasa
7
pemrograman tertentu disebut sebagai program komputer (Munir, 2011).
Algoritma merupakan alur pikiran yang dituangkan dalam bentuk tertulis untuk
menyelesaikan suatu pekerjaan tertentu dan dapat dimengerti oleh orang lain. Alur
pikiran yang dituangkan dapat berbeda meskipun memiliki tujuan menyelesaikan
pekerjaan yang sama dengan hasil yang sama, pekerjaan tersebut dapat diselesaikan
dengan berbagai langkah yang tersusun secara logis sehingga pekerjaan dapat
diselesaikan dengan benar. Langkah-langkah untuk menyelesaikan pekerjaan
dituangkan dalam bentuk tertulis berupa kalimat, gambar atau bagan, kemudian
diberikan kepada komputer dalam bentuk kumpulan instruksi yang disebut program
untuk melaksanakan langkah-langkah yang ada dan menyelesaikan pekerjaan
(Sjukani, 2014).
2.2 Basis Data
Basis data merupakan kumpulan data yang dapat terintegrasi dan diatur sedemikian
rupa sehingga data tersebut dapat dimanipulasi, diambil, dan dicari secara cepat.
Data pada basis data akan diklasifikasikan berdasarkan jenis dan disimpan didalam
wadah yang disebut dengan tabel. Tabel tersusun atas kolom dan baris, dalam dunia
basis data kolom disebut dengan field yang merupakan atribut dari suatu tabel, dan
baris disebut dengan record yang merupakan baris data yang disimpan (Raharjo,
2011).
2.3 Key, Candidate Key, Primary Key dan Foreign Key
Basis data relasional merupakan model basis data yang memiliki sekumpulan tabel-
tabel yang saling berhubungan (memiliki relasi). Tabel-tabel dalam basis data
8
model relasional diwujudkan dengan adanya pendefinisian primary key dan foreign
key. Key merupakan satu atau gabungan dari beberapa atribut yang bersifat unik,
sehingga nilai yang ada dalam atribut tersebut dapat menjadi pembeda tiap baris
data dan dapat digunakan untuk menemukan nilai tertentu didalam tabel.
Candidate Key merupakan satu atau sekumpulan minimal atribut yang dapat
menjadi key didalam suatu tabel. Gambar 1 merupakan contoh rancangan basis data
yang memiliki candidate key. Atribut Name dan Event merupakan candidate key
karena atribut tersebut merupakan kumpulan minimal atribut yang memiliki sifat
unik karena tidak ada record data yang memiliki nilai Name dan Event yang sama
(Stephens, 2009).
Gambar 1. Contoh Candidate Key (Stephens, 2009)
Primary key merupakan sebuah aturan yang memastikan bahwa pada setiap baris
data dalam kolom yang didefinisikan sebagai primary key bersifat unik (berbeda
9
antara baris data satu dengan yang lainnnya), primary key diterapkan pada kolom-
kolom yang akan dijadikan sebagai pembeda.
Foreign key dapat dikatakan sebagai nilai turunan dari primary key. Atribut yang
didefinisikan sebagai foreign key, nilainya harus diacu atau diambil dari atribut
yang didefinisikan sebagai primary key, sehingga jika data yang dimasukkan
kedalam kolom foreign key tidak ada dalam kolom primary key, maka data akan
gagal disimpan. Primary key dan foreign key menjadikan tabel-tabel dalam suatu
basis data dapat saling terhubung dan memiliki relasi. Gambar 2 merupakan contoh
primary key dan foreign key (Raharjo, 2011).
Gambar 2. Contoh primary key dan foreign key (Raharjo, 2011)
2.4 Normalisasi
Normalisasi merupakan suatu teknik dalam perancangan basis data untuk
menghindari adanya duplikasi data, inkonsistensi data, dan munculnya null value.
10
Normalisasi memiliki tujuan mengidentifikasi kesesuaian relasi yang mendukung
data yang memenuhi kebutuhan pengguna. Relasi tersebut memiliki karakteristik
mencakup atribut dengan hubungan logika yang menjelaskan mengenai functional
dependencies dan minimal duplikasi untuk tiap atribut. Relasi yang terbentuk dari
hasil normalisasi menjadikan pembaruan data yang disimpan dalam basis data dapat
dilakukan dengan operasi yang lebih sedikit, data yang tidak konsisten dapat
dikurangi, dan resiko kehilangan data dapat diminimalisir.
Functional dependencies atau ketergantungan fungsional merupakan istilah yang
digunakan untuk mengidentifikasi kesesuaian relasi. Functional dependencies
merupakan suatu konsep dasar pada tahap normalisasi untuk mengidentifikasi
apakah nilai pada suatu atribut menentukan nilai pada atribut lainnya, dengan kata
lain jika dalam suatu atribut X memiliki nilai yang bergantung pada nilai dalam
atribut Y maka dapat dikatakan X memiliki ketergantungan fungsional pada Y
(Connolly & Begg, 2015).
Functional dependencies menjelaskan hubungan yang dimiliki antar atribut dalam
relasi, sehingga functional dependencies merupakan konsep inti terkait dengan
normalisasi. Relasi dengan variabel R memiliki atribut A dan B kemudian setiap
nilai A memiliki hubungan dengan tepat satu kali nilai B maka B dapat dinyatakan
functional dependencies terhadap A dengan notasi A→B. Tipe functional
dependencies dapat diidentifikasi melalui relasi yang ada antar atribut, sebagai
contoh suatu tabel memiliki beberapa atribut yang dinyatakan sebagai berikut,
SiswaBelajar(IDSiswa, NamaSiswa, IPK, IDRuang, TanggalBelajar). Atribut
IDRuang dimisalkan sebagai B, dan IDSiswa dimisalkan sebagai A, maka
NamaSiswa merupakan subset dari A. Dependencies antar atibut IDSiswa, dan
11
IDRuang dinyatakan IDSiswa→IDRuang maka dapat dikategorikan sebagai tipe
fully functionally dependencies, hal ini ditunjukkan oleh B yang memiliki
ketergantungan fungsional secara penuh terhadap A bukan pada subset A.
Dependencies antar atibut IDSiswa, NamaSiswa, dan IDRuang dinyatakan
IDSiswa, NamaSiswa→IDRuang, maka dikategorikan sebagai tipe partially
dependencies, dikarenakan jika NamaSiswa dihilangkan maka ketergantungan tetap
ada antara B terhadap A. Tipe lain dari functional dependencies adalah transitive
dependency dengan relasi sebuah atribut A, B, C dinyatakan A→B dan B→C maka
melalui B, C transitive dependency terhadap A tetapi A tidak functional
dependencies terhadap B atau C (Indrajani, 2014).
Normalisasi dilakukan dalam beberapa langkah dengan menganalisis primary key
dan functional dependencies yang dimiliki antar atribut. Langkah-langkah
normalisasi mengacu pada bentuk normal tertenu sesuai dengan kondisi yang
dimilikinya, dalam normalisasi terdapat beberpa kondisi dan bentuk tertentu untuk
mengklasifikasikan tabel, diantaranya sebagai berikut,
a. Bentuk tidak normal
Suatu tabel dikatakan dalam bentuk tidak normal jika masih memiliki grup
yang berulang (repeating group). Repeating group merupakan himpunan
atribut didalam tabel yang memiliki lebih dari satu nilai unutuk sebuah
nominated key attributes (Connolly & Begg, 2015).
12
b. Bentuk normal pertama (1NF)
Tabel pada suatu rancangan dikatakan dalam bentuk normal pertama jika
telah memiliki atribut yang akan dijadikan primary key, tidak ada set
atribut yang berulang, dan titik potong setiap baris (record) dan kolom
(atribut) hanya mengandung satu nilai (bersifat atomic). Gambar 3
menunjukkan baris yang tidak bersifat atomic yaitu pada atribut
Dlocation.
Gambar 3. Non-Atomic Value (Elmasri & Navathe, 2016)
Syarat yang ada pada bentuk normal pertama dapat dipenuhi dengan
menentukan satu atau beberapa atribut untuk dijadikan sebagai key,
kemudian melengkapi data yang kosong pada baris yang berisikan data
yang berulang, kemudian memastikan setiap baris dan kolom hanya
mengandung satu nilai. Gambar 3 merupakan contoh dari nilai tidak
atomic, pisahkan nilai tidak atomic yang ada pada baris pertama atribut
Dlocation, namun hal ini menyebabkan redundancy pada atribut Dname,
Dnumber, dan Dmgr_ssn, untuk menangani hal tersebut atribut primary
key perlu ditambah sehingga primary key tabel Department merupakan
gabungan dari dua atribut yaitu Dnumber dan Dlocation. Gambar 4
merupakan contoh tabel dalam bentuk normal pertama.
13
Gambar 4. Bentuk Normal Pertama (Elmasri & Navathe, 2016)
c. Bentuk normal kedua (2NF)
Tabel pada suatu rancangan basis data dapat dikatakan dalam bentuk
normal kedua jika partially dependencies pada setiap atribut non-key,
kepada atribut yang primary key telah dikelompokkan dalam bentuk tabel
terpisah. Syarat yang ada pada bentuk normal kedua dapat dipenuhi jika
suatu tabel sudah dalam bentuk normal pertama, kemudian
mengidentifikasi partially dependencies terhadap atribut primary key, dan
menghilangkan partially dependencies dengan membentuk relasi baru.
Gambar 5 merupakan normalisasi dari bentuk normal pertama ke normal
kedua.
Gambar 5. Normal Pertama ke Normal Kedua (Elmasri & Navathe, 2016)
14
d. Bentuk normal ketiga (3NF)
Tabel pada rancangan basis data telah dikatakan dalam bentuk normal
ketiga, bila tidak ditemukan lagi atribut yang bukan primary key memiliki
transitive dependency pada atribut primary key, dengan kata lain tidak ada
atribut non-key yang memiliki ketergantungan fungsional pada atribut
non-key lainnya, atribut non-key hanya boleh memiliki ketergantungan
fungsional pada primary key. Syarat yang ada pada bentuk normal ketiga
dapat dipenuhi jika suatu tabel sudah dalam bentuk normal kedua,
kemudian mengidentifikasi transitive dependency yang ada pada bentuk
normal kedua, kemudian menghilangkan transitive dependencies dengan
membentuk relasi baru. Gambar 6 merupakan normalisasi dari bentuk
normal kedua ke normal ketiga. (Elmasri & Navathe, 2016).
Gambar 6. Bentuk Normal Ketiga (Elmasri & Navathe, 2016)
15
2.5 Normalisasi Berbasiskan Matrix
M. Nagibzadeh bersama Amir Hassan Bahmani, dan Behnam Bahmani melakukan
penelitian mengenai normalisasi otomatis pada tahun 2008 dengan judul Automatc
Database Normalization And Primary Key Generation. M. Nagibzadeh melakukan
penelitian otomatisasi normalisasi dengan menggunakan skema tabel beserta atribut
dan himpunan ketergantungan fungsional sebagai masukan. Skema tabel yang
dijadikan masukan dalam bentuk normal pertama.
Tahap pertama adalah membentuk dependency graph berdasarkan himpunan
ketergantungan fungsional yang diberikan. Tahap kedua adalah membentuk
dependency matrix dengan menganalisis semua ketergantungan yang ada diantara
determinan keys, melalui dependency matrix ketergantungan yang ada pada setiap
atribut dapat diketahui. Tahap ketiga adalah membentuk directed graph matrix,
pada tahap ini directed graph matrix dibentuk dengan menganalisis tiap baris yang
ada pada dependency matrix untuk menemukan kemungkinan ketergantungan
langsung (direct) yang ada diantara determinant keys. Gambar 7 merupakan
algoritma untuk membentuk directed graph matrix.
Gambar 7. Algoritma Directed Graph Matrix (Nagibzadeh, 2008)
16
Tahap keempat adalah membentuk determinan key transirtive dependencies matrix
dengan menganalisis jalur yang ada diantara semua pasangan atribut, jika
ditemukan jalur dari node x ke node y dapat dikatakah bahwa y transitively depends
terhadap x. Transirtive dependencies dianalisis melalui algoritma dependency
closure pada gambar 8. Tahap kelima adalah memeriksa apabila suatu atribut A
dinyatakan bergantung pada C melalui B, terdapat kemungkinan bahwa atribut A
bergantung pada C melalui atribut yang lain, untuk menangani hal ini maka
dependency matrix perlu diperbarui. Gambar 9 merupakan algotima untuk
memperbarui dependency matrix.
Gambar 8. Algoritma Dependency Closure (Nagibzadeh, 2008)
Gambar 9. Algoritma Circular Dependency (Nagibzadeh, 2008)
17
Dependency matrix, directed graph matrix, dan determinan key transirtive
dependencied matrix merupakan basis utama dalam normalisasi otomatis pada
penelitian yang dilakukan oleh M. Nagibzadeh dan rekan. Normalisasi dilakukan
dengan menganalisis tiap tiap matriks untuk mencapai bentuk normal kedua (1NF),
normal ketiga (3NF), hingga bentuk normal boyce code atau BCNF (Nagibzadeh,
2008).
2.6 Normalisasi Berbasiskan Candidate Key
Moussa Demba memperkenalkan algoritma untuk melakukan normalisasi up to
3NF melalui penelitiannya pada tahun 2013 dengan judul Algorithm For Relational
Database Normalization Up To 3NF. Moussa Demba menggunakan pendekatan
algoritma untuk normalisasi dengan memperhatikan semua candidate key termasuk
primary key. Normalisasi dilakukan menggunakan sekma tabel beserta atribut
dalam bentuk 1NF dan himpunan ketergantungan fungsional sebagai masukan.
Tahap pertama adalah menganalisis himpunan ketergantungan fungsional yang
diberikan, kemudian menghitung X+ dimana X merupakan sekumpulan atribut, dan
X+ merupakan sekumpulan atribut yang bergantung pada subset dari X, melalui X+
maka dapat dilihat apakah sebuah ketergantungan fungsional Y → A terdapat dalam
himpunan ketergantungan fungsional, sehingga redundant dependencies dapat
ditemukan. Gambar 10 merupakan algoritma untuk menghitung X+.
18
Gambar 10. Algoritma A1 (Demba, 2013)
Tahap kedua adalah menghilanghkan atribut asing yang tersirat (implied extraneous
attributes) dalam suatu ketergantungan fungsional yang ada. Implied extraneous
attributes dihilangkan dengan menganalisis atribut dan himpunan ketergantungan
fungsional yang diberikan, sehingga terbentuk himpunan ketergantungan
fungsional yang tidak terdapat implied extraneous attributes didalamnya, atau
disebut dengan partially-left reduced dependencies. Algoritma yang digunakan
pada tahap kedua ditunjukkan oleh gambar 11.
Gambar 11. Algoritma A2 (Demba, 2013)
Tahap ketiga adalah menghilangkan redundant dependencies yang ada, dengan
menganalisis himpunan ketergantungan fungsional yang diberikan, dan himpunan
partially-left reduced dependencies, sehingga dihasilkan himpunan yang tidak
19
memiliki ketergantungan fungsional rangkap. Algoritma yang digunakan pada
tahap ketiga ditunjukkan oleh gambar 12.
Gambar 12. Algoritma A3 (Demba, 2013)
Tahap keempat adalah menemukan full dependencies dan partial dependencies
yang ada pada himpunan ketergantungan fungsional. Algoritma yang digunakan
pada tahap keempat ditunjukkan oleh gambar 13. Tahap kelima adalah membentuk
skema dalam bentuk 2NF, melalui skema atribut dan himpunan ketergantungan
fungsional hasil dari proses sebelumnya. Algoritma yang digunakan pada tahap
kelima ditunjukkan oleh gambar 14.
Gambar 13. Algoritma A4 (Demba, 2013)
20
Gambar 14. Algoritma A5 (Demba, 2013)
Tahap keenam adalah membentuk skema dalam bentuk 3NF, melalui skema atribut
dan himpunan ketergantungan fungsional hasil dari proses sebelumnya, sehingga
skema basis data dalam bentu normal ketiga telah tercapai. Algoritma yang
digunakan pada tahap keenam ditunjukkan oleh gambar 15.
Gambar 15. Algoritma A6 (Demba, 2013)
BAB III
METODOLOGI PENELITIAN
3.1 Waktu dan Tempat Penelitian
Penelitian dilaksanakan di Laboratorium Komputasi Dasar Universitas Lampung
yang berada di jalan Soemantri Brojonegoro No.1 Gedung Meneng, Bandar
Lampung. Penelitian ini dilaksanakan mulai bulan Maret 2018 sampai dengan Juni
2018.
3.2 Alat Pendukung
Peralatan pendukung yang digunakan dalam penelitian ini yaitu,
1. Perangkat Keras (Hardware)
Perangkat keras yang digunakan dalam penelitian ini adalah laptop
dengan spesifikasi,
Processor : Intel Core i5 2430M CPU 2.40 GHz.
RAM : 8.00 GB
System Type : 64-bit operating system, x64-based processor
22
2. Perangkat Lunak (Software)
Perangkat lunak yang digunakan dalam penelitian ini adalah,
Sistem Operasi Windows 10 Home Pro 64-bit
Apache Web Server
Brackets Text Editor
3.3 Metodologi Penelitian
Penelitian dilakukan berdasarkan diagram metodologi penelitian pada gambar 16
berikut.
Gambar 16. Diagram Metodologi Penelitian
a. Inisialisasi Record Data
Tahap inisialisasi record data merupakan tahapan awal dalam algoritma
normalisasi pada penelitian ini. Tahap ini menggunakan skema tabel dan
23
beberapa record data yang menjadi basis untuk memperhitungan semua
candidate key, kemudian melalui proses selanjutnya untuk melakukan
normalisasi. Tahap inisialisasi record data dijalankan dengan melakukan
inisialisasi dari tabel masukan yang telah berisi beberapa record data dengan
format teks terstruktur tab delimited ke array multidimensi untuk diproses
pada tahap berikutnya. Berkas teks terstruktur yang dijadikan masukan berisi
atribut pada baris pertama, dan beberapa record data pada baris berikutnya,
kemudian menggunakan tab delimited sebagai pemisah antar kolom. Proses
dijalankan dengan melakukan inisialisasi satu demi satu baris yang ada pada
berkas masukan kedalam array. Hasil yang diberikan dari tahap inisialisasi
record data adalah data dalam bentuk array multidimensi untuk kemudian
dilakukan identifikasi pada proses beriktunya.
b. Identifikasi Key
Tahap identifikasi key merupakan proses tiap tiap kolom pada array
multidimensi diidentifikasi untuk menemukan candidate key. Langkah-
langkah identifikasi key dilakukan dengan membaca panjang nilai dari record
data yang diberikan, proses pembacaan dilakukan pada tiap-tiap kolom yang
ada pada array multidimensi, apabila panjang nilai dari record data yang ada
pada kolom tersebut konsisten maka akan dilanjutkan ke langkah berikutnya
yaitu mengidentifikasi redundansi data, jika tidak ditemukan redundansi data
maka indeks dari atribut pada kolom yang sedang diidentifikasi dapat
digunakan sebagai primary key, dan akan disimpan kedalam array baru,
24
kemudian diproses melalui tahap analisis primary key, namun jika ditemukan
adanya redundansi data maka indeks dari atribut pada kolom yang sedang
diidentifikasi akan disimpan kedalam array lain untuk kemudian diproses
melalui tahap analisis dependencies. Hasil yang diberikan dari tahap
identifikasi key adalah dua buah array yang menyimpan candidate key untuk
kemudian diproses pada tahap berikutnya.
c. Analisis Dependencies
Analisis dependencies merupakan tahap menganalisis atribut-atribut yang
tersimpan didalam array dari proses sebelumnya. Proses analisis dilakukan
dengan melihat ketergantungan yang ada pada atribut melalui nilai yang ada
pada record data. Analisis dilakukan pada tiap kolom yang ada, jika suatu
kolom pada baris-baris tertentu memiliki kesamaan, maka akan dicocokkan
pada atribut (kolom) berikutnya apakah memiliki nilai yang sama atau tidak,
jika memiliki banyak kesamaan nilai, maka dapat dikatakan atribut tersebut
memiliki ketergantungan, kemudian dipisahkan menjadi tabel baru. Hasil dari
proses analisis dependencies adalah terbentuknya rancangan tabel baru yang
antar atributnya memiliki ketergantungan.
d. Analisis Primary Key
Tahap analisis primary key merupakan tahap pemisahan atribut-atribut
menjadi tabel baru berdasarkan indeks atribut yang tersimpan dalam array
25
hasil dari proses identifikasi key. Langkah-langkah yang dilakukan adalah
dengan melihat posisi atribut dari indeks yang tersimpan didalam array, jika
letaknya bersebelahan (selisish antara indeks ke n+1 dengan indeks ke n
adalah 1) maka kedua atribut tersebut merupakan himpunan atribut primary
key yang akan berada pada satu tabel yang sama, jika letak atribut dari indeks
berikutnya berjauhan (selisih antara indeks ke n+1 dengan indeks ke n lebih
dari 1) maka atribut yang berada diantara indeks ke n dengan indeks ke n+1
akan dipisahkan menjadi tabel baru, namun jika indeks ke n merupakan
elemen terakhir yang ada pada array hasil dari proses identifikasi, maka
atribut yang dimulai dari indeks ke n tersebut hingga atribut terakhir akan
dipisahkan menjadi tabel baru. Hasil dari proses analisis primary key adalah
terbentuknya rancangan tabel baru.
Keluaran yang dihasilkan dari proses analisis dependencies dan analisis
primary key yaitu berupa rancangan tabel baru yang mencapai bentuk normal
kedua atau normal ketiga.
3.4 Metode Pengumpulan Data
Metode pengumpulan data yang digunakan pada penelitian ini adalah metode studi
literatur. Studi literatur yang digunakan yaitu buku-buku, jurnal, dan situs internet yang
menyajikan informasi tentang algoritma, perancangan basis data, dan normalisasi basis
data.
BAB V
KESIMPULAN
5.1 Kesimpulan
Kesimpulan yang diperoleh berdasarkan penelitian otomatisasi normalisasi data
adalah sebagai berikut:
1. Algoritma yang dapat melakukan normalisasi otomatis telah dibentuk.
2. Algoritma yang dibentuk dapat melakukan identifikasi candidate key melalui
beberapa record data.
3. Algoritma yang dibentuk dapat melakukan normalisasi.
4. Record data dapat dijadikan pendekatan alternatif untuk mengidentifikasi
candidate key.
5.2 Saran
Saran yang dapat diberikan untuk pengembangan penelitian normalisasi otomatis
adalah sebagai berikut:
1. Algoritma sebaiknya dikembangkan hingga dapat melakukan normalisasi
yang mencapai bentuk normal keempat.
61
2. Langkah-langkah untuk mengidentifikasi primary key berdasarkan record
data berupa nomor urut, sebaiknya ditambahkan untuk meningkatkan
keakuratan algoritma dalam mengidentifikasi primary key
3. Algoritma sebaiknya diimplementasikan menggunakan complier sehingga
alokasi memori lebih maksimal.
DAFTAR PUSTAKA
Connolly, Thomas and Begg, Carolyn. 2015. Database Systems: A Practical
Approach to Design, implementation and management. Sixth Edition.
Boston: Pearson Education.
Cormen, Thomas H. 2013. Algorithm Unlocked. Cambridge: MIT Press.
Demba, Moussa. 2013. Algorithm For Relational Database Normalization Up To
3NF. International Journal of Database Management System.
Elmasri, Ramez and Navathe, Shamkant B. 2016. Fundamentals Of Database
Systems Seventh Edition. New Jersey: Pearson Education.
Indrajani. 2014. Penganter Sistem Basis Data Case Study All In One. Jakarta:
Elex Media Komputindo.
Jaya, A and Sunitha, G. 2013. A Knowledge Based Approach For Automatic
Database Normalization. International Journal of Edvanced Research in
Computer Engineering & Technology.
Munir, Rinaldi 2011. Algoritma dan Pemrograman Dalam Bahasa Pascal dan C.
Edisi Revisi. Bandung: Informatika.
Naghibzadeh, M and Bahmani, Amir H and Bahmani, Behnam. 2008. Automatic
Database Normalization and Primary Key Generation. International Journal
of Database Management System.
Raharjo, Budi. 2011. Membuat Database Menggunakan MySql. Bandung :
Informatika.
Sjukani, Moh. 2014. Algoritma(Algoritma dan Struktur Data 1) dengan
C,C++,dan Java—Teknik-Teknik Dasar Pemrograman Komputer. Jakarta:
Mitra Wacana Media.
Stephens, Rod. 2009. Beginning Database Design Solutions. Indianapolis: Wiley
Publishing.
Sunitha, G and Jaya, A. 2013. A Knowledge Based Approach For Automatic
Database Normalization. International Journal of Database Management
System.