bab 3 analisis dan perancangan 3.1 analisis kebutuhan...
TRANSCRIPT
48
BAB 3
ANALISIS DAN PERANCANGAN
3.1 Analisis Kebutuhan Sistem
Hal pertama yang perlu dilakukan dalam analisis kebutuhan sistem adalah
menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi
dua yaitu kebutuhan sistem fungsional dan kebutuhan sistem non-fungsional, yang
diperlukan untuk menemukan tujuan yang hendak dicapai. (Whitten, 2004, p212)
3.1.1 Kebutuhan Fungsional
• Sistem menerima masukan data secara manual atau dari disk.
• Sistem dapat menentukan Candidate Key.
• Sistem menerima penentuan Primary Key oleh user untuk beberapa Candidate Key.
• Sistem dapat menentukan Functional Dependency.
• Sistem menyediakan pilihan Functional Dependency untuk ditentukan oleh user.
• Sistem menyediakan pilihan algoritma dekomposisi dan sintesis untuk dipilih oleh
user.
• Sistem dapat melakukan proses normalisasi bentuk pertama, kedua dan ketiga.
• Sistem dapat menggambarkan diagram hubungan atau relasi antar entiti.
• Sistem dapat menghasilkan kode SQL untuk tabel-tabel yang terbentuk.
• Sistem dapat mengintegrasikan kode SQL langsung ke SQL Server.
49
Database Normalization Tool
Open Project
User
Create Project
Entry Data
InputTable Manual
Selecting Primary Key
Selecting FD
Import Table
SelectingNormalization
Algorithms
Create NormalForm
Create ERD
Create SQL Code
ViewNormal Form
Generate to SQLServer
Gambar 3.1 Representasi Kebutuhan Fungsional dalam Diagram Use Case
50
Spesifikasi Use case
• Use case Create Project
Use case ini menggambarkan proses user menggunakan sistem untuk membuat
proyek baru.
1. User memilih menu New Project.
2. Sistem menampilkan layar Create Project.
3. User memasukkan nama proyek, deskripsi proyek dan pembuat proyek.
4. Sistem menampilkan pilihan input tabel.
• Use case Open Project
Use case ini menggambarkan proses user menggunakan sistem untuk membuka
proyek yang pernah dibuat sebelumnya.
1. User memilih menu Open Project.
2. User memilih proyek mana yang akan dibuka.
3. Sistem menjalankan use case view.
• Use case Import Table
1. User memilih basis data yang akan diimport.
2. Sistem menggunakan use case Entry Data.
3. Sistem menampilkan layar Entry Data.
• Use case Input Table Manual
1. User membuat tabel secara manual.
2. Sistem menggunakan use case Entry Data.
3. Sistem menampilkan layar Entry Data.
51
• Use case Entry Data
Use case ini menggambarkan proses user menggunakan sistem untuk memasukkan
data dalam tabel.
1. Sistem menampilkan data yang diimport dari disk atau user memasukkan data
secara manual ke dalam tabel yang pernah dibuat sebelumnya.
2. Sistem menampilkan layar Primary Key.
• Use case Selecting Primary Key
1. Sistem menampilkan pilihan PK.
2. User memilih PK yang disediakan oleh sistem.
• Use case Selecting Functional Dependency
1. Sistem mendapatkan FD berdasarkan use case PK dan use case entry data.
2. User memilih FD yang sesuai.
3. Sistem menampilkan pilihan FD.
• Use case Selecting Normalization Algorithms
1. User memilih algoritma yang diinginkan.
2. Sistem akan menampilkan layar Normal Form.
• Use case Create Normal Form
1. Sistem mendapatkan tabel dalam bentuk normal berdasarkan use case FD.
2. Sistem menampilkan tabel normal 1NF, 2 NF, dan 3NF.
• Use case Create ERD
1. Sistem mendapatkan diagram antar tabel berdasarkan use case Create Normal
Form.
2. Sistem menampilkan diagram antar tabelnya.
52
• Use case Create SQL Code
1. Sistem membuat kode SQL berdasarkan use case Create Normal Form.
2. Sistem menampilkan kode SQL untuk membuat tabel yang sudah normal.
• Use case Generate to SQL Server
1. Sistem menampilkan pilihan bagi user
2. User memilih untuk menggeneralisasi kode SQL ke dalam SQL Server
• Use case View Normal Form
1. Sistem menampilkan tabel normal berdasarkan use case Create NF
2. Sistem menampilkan ERD berdasarkan use case Create ERD
3. Sistem menampilkan kode SQL berdasarkan use case Create SQL
4. User dapat memilih tampilan yang diinginkan.
3.1.2 Kebutuhan non fungsional
• Sistem dikembangkan dengan platform desktop menggunakan Microsoft Visual
Basic 6.0 dengan database Microsoft Access.
• Sistem memiliki respon time yang relatif cepat.
• Sistem memiliki tampilan layar yang user friendly.
53
3.2 Perancangan
3.2.1 Perancangan Basis Data
Salah satu tahap utama dalam siklus hidup aplikasi basis data adalah
perancangan basis data, yang dilakukan setelah menyelesaikan tahap analisa kebutuhan
sistem. Proses perancangan basis data terbagi dalam tiga tahap yaitu:
3.2.1.1 Rancangan Basis Data Konseptual
Rancangan basis data konseptual dibuat berdasarkan kebutuhan sistem yang telah
dianalisis sebelumnya. Rancangan ini tidak tergantung pada detil-detil implementasi
program. Rancangan basis data konseptual pada sistem normalisasi ini dapat dilihat pada
gambar 3.2.
Gambar 3.2 Rancangan Basis Data Konseptual
54
3.2.1.2 Rancangan Basis Data Logikal
Rancangan basis data logikal dirancang berdasarkan rancangan basis data tahap
sebelumnya, yaitu rancangan konseptual. Rancangan logikal ini merupakan sumber
informasi untuk tahap rancangan selanjutnya (rancangan fisikal) dan mempunyai
peranan penting dalam proses maintenance suatu aplikasi basis data. Rancangan basis
data logikal pada sistem normalisasi ini dapat dilihat pada gambar 3.3.
Gambar 3.3 Rancangan Basis Data Logikal
55
3.2.1.3 Rancangan Basis Data Fisikal
Rancangan basis data fisikal dirancang berdasarkan detil-detil implementasi
sehingga menghasilkan deskripsi implementasi basis data pada penyimpanan sekunder.
Nama Tabel = Project
Primary Key = prjID
Tabel Project digunakan setiap kali user membuat sebuah proyek baru untuk
menyimpan kode proyek, nama proyek beserta keterangannya, nama pembuat proyek
dan tanggal pembuatan proyek.
Nama Kolom Tipe Data Panjang Keterangan prjID Long Int - Kode proyek prjName Text 20 Nama proyek prjDesc Text 50 Keterangan prjAuthor Text 20 Nama pembuat prjCreateDate Date/Time - Tanggal pembuatan
Nama Tabel = Entity
Primary Key = entID
Foreign Key = prjID
Tabel Entity digunakan untuk menyimpan kode dan nama tabel yang dibuat dan
memberikan tanda apakah tabel tersebut berada dalam 1NF, 2NF maupun 3NF.
Nama Kolom Tipe Data Panjang Keterangan entID Long Int - Kode entiti prjID Long Int - Kode proyek entName Text 20 Nama entiti 1NF Yes/No - Entiti termasuk 1NF 2NF Yes/No - Entiti termasuk 2NF 3NF Yes/No - Entiti termasuk 3NF
56
Nama Tabel = Attribute
Primary Key = attrID
Tabel Attribute digunakan untuk menyimpan semua atribut yang digunakan
beserta tipe datanya, jumlah variasi data untuk setiap atribut dan memberi tanda apakah
atribut tersebut terdapat nilai null.
Nama Kolom Tipe Data Panjang Keterangan attrID Long Int - Kode atribut attrName Text 20 Nama atribut attrTotalVar Long Int - Jumlah variasi data NULLValue Yes/No - Terdapat nilai NULL dataType Text 20 Tipe data maxLength Integer - Panjang Maximum untuk
tipe data Text
Nama Tabel = AttrEntity
Primary Key = entID, attrID
Foreign Key = entID, attrID
Tabel AttrEntity digunakan untuk menghubungkan tabel Entity dan tabel
Attribute, dan memberikan tanda apakah atribut dari entiti yang bersangkutan
merupakan primary key atau bukan.
Nama Kolom Tipe Data Panjang Keterangan entID Long Int - Kode entiti attrID Long Int - Kode atribut primaryKey Yes/No - Merupakan primary key
atau bukan
Nama Tabel = FD
Primary Key = fdID
Foreign Key = entID
57
Tabel FD digunakan untuk menyimpan kode ketergantungan fungsional dan
kode entiti.
Nama Kolom Tipe Data Panjang Keterangan fdID Long Int - Kode ketergantungan
fungsional entID Long Int - Kode entiti
Nama Tabel = DependentFD
Primary Key = fdID, attrID
Foreign Key = fdID, attrID
Tabel DependentFD digunakan untuk menyimpan kode ketergantungan
fungsional dan kode atribut agar dapat mengetahui atribut-atribut yang menjadi
dependent dari masing-masing ketergantungan fungsional.
Nama Kolom Tipe Data Panjang Keterangan fdID Long Int - Kode ketergantungan
fungsional attrID Long Int - Kode atribut
Nama Tabel = DeterminantFD
Primary Key = fdID, attrID
Foreign Key = fdID, attrID
Tabel DeterminantFD digunakan untuk menyimpan kode ketergantungan
fungsional dan kode atribut agar dapat mengetahui atribut-atribut yang menjadi
determinant dari masing-masing ketergantungan fungsional.
Nama Kolom Tipe Data Panjang Keterangan fdID Long Int -
Kode ketergantungan fungsional
attrID Long Int - Kode atribut
58
Nama Tabel = Data
Primary Key = DataID
Foreign Key = entID, attrID
Tabel Data digunakan untuk menyimpan semua data (Value) secara perbaris
(rowNumber) untuk masing-masing atribut (attrID) dari tiap entiti (entID).
Nama Kolom Tipe Data Panjang Keterangan DataID Long Int - Kode data entID Long Int - Kode entiti attrID Long Int - Kode atribut rowNumber Long Int - Urutan baris Value Memo - Nilai data
3.2.2 Perancangan Proses
Perancangan proses ini menggunakan pseudocode dan diagram alir (flowchart).
Proses yang dirancang meliputi proses pembentukan UNF menjadi 3NF, pencarian
candidate key dan ketergantungan fungsional, bentuk normal kedua dan ketiga pada
dekomposisi serta bentuk normal ketiga pada sintesis, diagram hubungan antar tabel dan
kode SQL.
59
3.2.2.1 Rancangan Proses UNF menjadi 3NF
Start
Input data /import data
UnormalizedForm (UNF)
Search forcandidate key
SynthesisAlgorithm
DecompositionAlgorithm
Normal Form(3NF)
Search for FunctionalDependency
Synthesis orDecomposition?
Stop Gambar 3.4 Diagram alir proses UNF menjadi 3NF
60
3.2.2.2 Rancangan Proses Import Table
Modul import table
Minta input database name
Minta input database username
Minta input database password
Lakukan koneksi ke database
Query untuk mengambil schema tabel dari database
Lakukan perulangan sebanyak tabel yang ada
Jika tipe tabel = tabel maka
Masukkan nama tabel kedalam list
Akhir jika
Akhir perulangan
Jika list tidak kosong maka
Tombol next di aktifkan
Selain itu
Tombol next di nonaktifkan
Akhir jika
Akhir modul
61
Start
Enter database name,username, and
password
Connect toDatabase
End ofTable ?
Input table tolistbox
No
Yes
List = empty ? Button NextActive
No
Button Nextnon-Active
Yes
Stop
Gambar 3.5 Diagram Alir Import Table
62
3.2.2.3 Rancangan Proses Pencarian Candidate Key
Modul candidate key
Inisialisasi field candidate key
Minta input minimum kombinasi
Minta input maksimum kombinasi
Lakukan perulangan dari minimum kombinasi sampai dengan maksimum kombinasi
Lakukan kombinasi
Lakukan perulangan sebanyak jumlah kombinasi yang dihasilkan
Baca field ke i hasil kombinasi
Jika jumlah variasi record = jumlah record maka
Field ke i = candidate key
Selain itu
Field ke i bukan candidate key
Akhir jika
Akhir perulangan
Akhir perulangan
Akhir modul
63
Gambar 3.6 Diagram alir pencarian candidate key
64
3.2.2.4 Rancangan Proses Pencarian Functional Dependency
Modul functional dependency
Inisialisasi field dependent
Lakukan perulangan sebanyak jumlah field dependent
Baca field dependent
Inisialisasi field determinant untuk 1 field
Jika jumlah variasi nilai field > 1 untuk setiap nilai field determinant maka
Field dependent tidak mempunyai ketergantungan fungsional terhadap field
determinant
Selain itu
Field dependent mempunyai ketergantungan fungsional terhadap field
determinant
Akhir jika
Akhir perulangan
Jika jumlah field PK > 1 maka
Inisialisasi field determinant
Lakukan perulangan sebanyak jumlah field dependent
Baca field dependent
Lakukan kombinasi sebanyak jumlah field PK - 1
Lakukan perulangan sebanyak jumlah hasil kombinasi
Jika ada jumlah variasi nilai field dependent > 1 untuk setiap nilai
field determinant maka
65
Field dependent tidak mempunyai ketergantungan fungsional
terhadap field determinant
Selain itu
Field dependent mempunyai ketergantungan fungsional terhadap
field determinant
Akhir jika
Akhir perulangan
Akhir perulangan
Akhir jika
Akhir modul
66
Gambar 3.7 Diagram Alir pencarian Functional Dependency
67
3.2.2.5 Rancangan Proses Bentuk Normal Kedua pada Dekomposisi
Awal modul 2NF
Baca tabel 1NF
Cari FD yang determinant = PK atau bagian PK
Jika jumlah FD = 1 maka
tabel = tabel 2NF
Selain itu
Lakukan perulangan sebanyak jumlah FD
Buat tabel baru
Lakukan perulangan sebanyak jumlah field determinant
Masukkan determinant jadi field tabel baru sebagai PK
Akhir perulangan
Lakukan perulangan sebanyak jumlah field dependent
Baca field dependent
Masukkan dependent jadi field tabel baru
Lakukan perulangan selama field dependent = determinant
Ambil dependent untuk dijadikan field tabel baru
Akhir perulangan
Akhir perulangan
Akhir perulangan
Akhir jika
Akhir modul
68
Gambar 3.8 Diagram Alir Bentuk Normal Kedua Pada Dekomposisi
69
3.2.2.6 Rancangan Proses Bentuk Normal Ketiga pada Dekomposisi
Awal modul 3NF
Baca tabel 2NF
Lakukan perulangan sebanyak jumlah tabel
Cari FD yang terdapat dalam tabel ke i
Jika jumlah FD = 1 maka
Tabel = tabel 3NF
Selain itu
Lakukan perulangan sebanyak jumlah FD
Buat tabel baru
Ambil semua field determinant untuk dijadikan field tabel baru
sebagai PK
Ambil semua field dependent untuk dijadikan field tabel baru
Akhir perulangan
Akhir jika
Akhir perulangan
Akhir modul
70
Gambar 3.9 Diagram Alir Bentuk Normal Ketiga Pada Dekomposisi
71
3.2.2.7 Rancangan Proses Bentuk Normal Ketiga pada Sintesis
Awal modul 3NF
Baca tabel 1NF
Baca FD dari tabel 1NF
Lakukan perulangan sebanyak jumlah FD
Baca field determinantFD = PK
If jumlah determinantFD > 0 maka
Lakukan perulangan sebanyak jumlah field determinantFD
Ambil semua field determinant untuk dijadikan field tabel baru sebagai PK
Akhir perulangan
Baca field dependentFD
If jumlah dependentFD > 0 maka
Lakukan perulangan sebanyak jumlah field dependentFD
Ambil semua field dependent untuk dijadikan field berikutnya pada tabel
tersebut
Akhir perulangan
Akhir jika
Akhir jika
Akhir perulangan
Akhir modul
72
Start
Read table 1NF
Read FD fromtable 1NF
Read DeterminantFD= PKAmount FD > = 1
Get all determinant asfield of new table as
PK
Amount DeterminantFD > 0 ?
Yes
End of fielddeterminant ?
Stop
Yes
No
No
ReadDependentFD
Amount DependentFD > 0 ?
Yes
End of fielddependent ?
Yes
No Get all dependent asfield of new table
Yes
Gambar 3.10 Diagram Alir Bentuk Normal Ketiga Pada Sintesis
73
3.2.2.8 Rancangan Proses Diagram Hubungan antar Entiti (ERD)
Awal modul ERD
Jika ada tabel pada 3NF maka
Ambil semua tabel 3NF
Selain itu ada tabel pada 2NF maka
Ambil semua tabel 2NF
Selain itu Ambil tabel 1NF
Akhir jika
Lakukan perulangan sebanyak jumlah tabel
Baca semua field
Buat node
Akhir perulangan
Lakukan perulangan sebanyak jumlah node
Jika field pada node berada pada tabel lain sebagai PK maka
hubungkan node tersebut
Akhir jika
Akhir perulangan
Akhir modul
74
Gambar 3.11 Diagram Alir ERD
3.2.2.9 Rancangan Proses Kode SQL
Awal modul kodeSQL
Jika ada tabel pada 3NF maka
Ambil semua tabel 3NF
Selain itu ada tabel pada 2NF maka
Ambil semua tabel 2NF
Selain itu
Ambil tabel 1NF
Akhir jika
Lakukan perulangan sebanyak jumlah tabel
sql = ””
75
sql_PK = “PRIMARY KEY”
Tambahkan “CREATE TABLE” ke dalam sql
Lakukan perulangan sebanyak jumlah field
Tambahkan field dan tipe data ke dalam sql
Jika tipe data = “TEXT” tambahkan panjang maksimal tipe data ke dalam sql
Jika tidak ada field yang bernilai NULL maka
Tambahkan “NOT NULL” ke dalam sql
Akhir jika
Jika field = PK maka
Tambahkan field ke dalam sql_PK
Akhir jika
Jika field sebagai foreign key maka
Tambahkan “REFERENCE” ke dalam sql
Tambahkan nama tabel referensi ke dalam sql
Akhir jika
Akhir perulangan
Cetak sql dan sql_PK
Akhir perulangan
Akhir modul
76
Gambar 3.12 Diagram Alir Kode SQL
77
3.2.3 Perancangan Layar
3.2.3.1 Rancangan Layar pada Menu Utama
Gambar 3.13 Rancangan Layar Menu Utama
Rancangan ini berjudul Database Normalization Tool. Layar ini terdiri dari layar
yang masih kosong dengan dua pilihan menu yaitu menu File dan Help.
78
3.2.3.2 Rancangan Layar pada Menu File
Gambar 3.14 Rancangan Layar Menu File
Rancangan ini berjudul Database Normalization Tool untuk pilihan menu File
yang terdiri dari empat pilihan menu drop-down yaitu New Project, Open Project, Close
Project dan Exit.
79
3.2.3.3 Rancangan Layar pada Menu Help
Gambar 3.15 Rancangan Layar Menu Help
Rancangan ini berjudul Database Normalization Tool untuk pilihan menu Help
yang terdiri dari dua pilihan menu drop-down yaitu Help dan About.
80
3.2.3.4 Rancangan Layar pada Create Project
Gambar 3.16 Rancangan Layar Create Project
Rancangan ini berjudul Create Project. Layar ini terdiri atas lima text box
dimana text box untuk project ID otomatis terisi dan user hanya memasukkan Project
Name, Project Description, Project Author, dan Project Date setelah itu tekan tombol
OK atau Cancel.
81
3.2.3.5 Rancangan Layar pada Input Table
Gambar 3.17 Rancangan Layar Input Table
Rancangan ini berjudul Input Table. Layar ini terdiri dari dua pilihan yaitu Input
Table Manually dan Import Table serta tombol OK dan Cancel.
82
3.2.3.6 Rancangan Layar pada Menu Import Data
Gambar 3.18 Rancangan Layar Menu Import Data
Rancangan ini berjudul Import Data. Layar ini terdiri atas empat masukan untuk
Data Source, Database Name, User Name dan Password serta tombol Connect dan
Next.
83
3.2.3.7 Rancangan Layar pada Menu Create Table
Gambar 3.19 Rancangan Layar Menu Create Table
Rancangan ini berjudul Create Table. Layar ini terdiri atas text box untuk
masukan Table Name dan Number of fields. Tombol OK akan menampilkan field-field
sebanyak jumlah number of. Tombol Prev Fields untuk menampilkan field-field
sebelumnya yang telah diinput, tombol Next Fields untuk menampilkan field-field
selanjutnya dan tombol Next Step akan melanjutkan ke layar Input Table.
84
3.2.3.8 Rancangan Layar pada Menu Input Data
Gambar 3.20 Rancangan Layar Menu Input Data
Rancangan ini berjudul Input Data. Layar ini terdiri atas tabel untuk
memasukkan data. Tombol Next Step akan melanjutkan ke layar Primary Key.
85
3.2.3.9 Rancangan Layar pada Menu Primary Key
Gambar 3.21 Rancangan Layar Menu Primary Key
Rancangan ini berjudul Primary Key. Layar ini terdiri dari text box untuk
masukan nilai maksimum dan minimum kombinasi candidate key yang diinginkan user.
Tombol Analyze menjalankan proses analisa data. List Box untuk menampilkan hasil
candidate key. Tombol next untuk melanjutkan ke layar Functional Dependency.
86
3.2.3.10 Rancangan Layar pada Menu Functional Dependency
Gambar 3.22 Rancangan Layar Menu Functional Dependency
Rancangan ini berjudul Functional Dependency. Layar ini terdiri dari tab-tab
yang didalamnya terdiri atas list box untuk menampilkan functional dependency yang
telah dianalisa. Pada layar ini juga terdapat dua pilihan algoritma yaitu Dekomposisi dan
Sintesis yang dapat dipilih oleh user. Tombol Next Step akan melanjutkan ke layar
Normal Form.
87
3.2.3.11 Rancangan Layar pada Menu Normal Form dengan Algoritma
Dekomposisi
Gambar 3.23 Rancangan Layar Menu Normal Form dengan Dekomposisi
Rancangan ini berjudul Normal Form. Layar ini terdiri dari tab-tab yang
didalamnya terdapat combo box untuk memilih entiti normal form dan text box untuk
menampilkan primary key serta tabel-tabel untuk normal form. Tombol Next Step
melanjutkan ke layar ERD.
88
3.2.3.12 Rancangan Layar pada Menu Normal Form dengan Algoritma Sintesis
Gambar 3.24 Rancangan Layar Menu Normal Form dengan Sintesis
Rancangan ini berjudul Normal Form. Layar ini terdiri dari dua tab saja yang
didalamnya terdapat combo box untuk memilih entiti normal form yakni 1NF dan 3NF
serta text box untuk menampilkan primary key serta tabel-tabel untuk normal form.
Tombol Next Step melanjutkan ke layar ERD.
89
3.2.3.13 Rancangan Layar pada Menu ERD
Gambar 3.25 Rancangan Layar Menu ERD
Rancangan ini berjudul ERD. Layar ini menampilkan diagram hubungan antar
entity. Tombol Next akan melanjutkan ke layar SQL Code.
90
3.2.3.14 Rancangan Layar pada Menu SQL Code
Gambar 3.26 Rancangan Layar Menu SQL Code
Rancangan ini berjudul SQL Code. Layar ini terdiri dari list box untuk
menampilkan kode–kode SQL, tombol Generate untuk menghasilkan kode-kode SQL
serta tombol Save untuk menyimpan hasil analisa.
91
3.2.4 Perancangan Algoritma
Untuk menilai dua algoritma yang berbeda dapat diukur dengan menghitung
kompleksitas waktu yang dibutuhkan komputer untuk mengeksekusi algoritma. Proses
untuk menghitung kompleksitas algoritma ini terbagi dalam beberapa tahap, antara lain:
3.2.4.1 Perancangan Algoritma pada Pencarian Candidate Key
Frequency Total steps Statement s/e
n = 0 n >0 n = 0 n > 0 Modul candidate key
Inisialisasi field candidate key
Minta input minimum kombinasi
Minta input maksimum kombinasi
Lakukan perulangan dari
minimum kombinasi sampai
dengan maksimum kombinasi
Lakukan kombinasi
Lakukan perulangan sebanyak
jumlah kombinasi yang dihasilkan
Baca field ke i hasil kombinasi
Jika jumlah variasi record =
jumlah record maka
Field ke i = candidate key
Selain itu
Field ke i bukan candidate key
Akhir jika
Akhir perulangan
Akhir perulangan
Akhir modul
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
n+1
n
n(n+1)
n2
n2
n2
0
0
0
0
0
0
1
1
1
n+1
n
n(n+1)
n2
n2
0
n2
0
0
0
0
O(0)
O(1)
O(1)
O(1)
O(n)
O(n)
O(n2)
O(n2)
O(n2)
O(n2)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(1)
O(1)
O(1)
O(n)
O(n)
O(n2)
O(n2)
O(n2)
O(0)
O(n2)
O(0)
O(0)
O(0)
O(0)
Total 4n2 + 3n
+ 4
4n2 + 3n
+ 4
O(n2) O(n2)
Tabel 3.1 Tabel Perancangan Algoritma Pada Pencarian Candidate Key
92
3.2.4.2 Perancangan Algoritma pada Pencarian Functional Dependency
Frequency Total steps Statement s/e
n = 0 n >0 n = 0 n > 0
Modul functional dependency
Inisialisasi field dependent
Lakukan perulangan sebanyak jumlah field
dependent
Baca field dependent
Inisialisasi field determinant untuk 1 Field
Jika jumlah variasi nilai field > 1 untuk
setiap nilai field determinant maka
Field dependent tidak
mempunyai ketergantungan
fungsional terhadap field
determinant
Selain itu
Field dependent mempunyai
ketergantungan fungsional terhadap
field determinant
Akhir jika
Akhir perulangan
Jika jumlah field PK > 1 maka
Inisialisasi field determinant
Lakukan perulangan sebanyak
jumlah field dependent
Baca field dependent
Lakukan kombinasi sebanyak
jumlah field PK – 1
Lakukan perulangan sebanyak
jumlah hasil kombinasi
Jika ada jumlah variasi nilai
field dependent > 1 untuk
setiap nilai field determinant maka
Field dependent tidak
Mempunyai ketergantungan
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
n + 1
n
n
n
n
0
0
0
1
1
n + 1
n
n
n(n+1)
n2
n2
0
1
n + 1
n
n
n
0
n
0
0
1
1
n + 1
n
n
n(n+1)
n2
0
O(0)
O(n)
O(n)
O(n)
O(n)
O(n)
O(n)
O(0)
O(0)
O(0)
O(1)
O(1)
O(n)
O(n)
O(n)
O(n2)
O(n2)
O(n2)
O(0)
O(n)
O(n)
O(n)
O(n)
O(n)
O(0)
O(n)
O(0)
O(0)
O(1)
O(1)
O(n)
O(n)
O(n)
O(n2)
O(n2)
O(0)
93
fungsional terhadap field
determinant
Selain itu
Field dependent mempunyai
ketergantungan fungsional
terhadap field determinant
Akhir jika
Akhir perulangan
Akhir perulangan
Akhir jika
Akhir modul
1
0
0
0
0
0
0
0
0
0
0
0
n2
0
0
0
0
0
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(n2)
O(0)
O(0)
O(0)
O(0)
O(0)
Total 3n2 + 9n
+ 5
3n2 + 9n
+ 5
O(n2) O(n2)
Tabel 3.2 Tabel Perancangan Algoritma Pada Pencarian Functional Dependency
94
3.2.4.3 Perancangan Algoritma pada Bentuk Normal Kedua (Dekomposisi)
Frequency Total steps Statement s/e
N =
0
n >0 n = 0 n > 0
Awal modul 2NF
Baca tabel 1NF
Cari FD yang determinant = PK atau bagian PK
Jika jumlah FD = 1 maka
tabel = tabel 2NF
Selain itu
Lakukan perulangan sebanyak jumlah FD
Buat tabel baru
Lakukan perulangan sebanyak jumlah field
determinan
Masukkan determinant jadi field tabel baru
sebagai PK Akhir perulangan
Lakukan perulangan sebanyak jumlah field
dependent
Baca field dependent
Masukkan dependent jadi field tabel baru
Lakukan perulangan selama field dependent =
determinan
Ambil dependent untuk dijadikan field tabel
baru
Akhir perulangan
Akhir perulangan
Akhir perulangan
Akhir jika
Akhir modul
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
n + 1
n
n(n+1)
n2
0
n(n+1)
n2
n2
n2(n+1)
n3
0
0
0
0
0
O(0)
O(1)
O(1)
O(1)
O(1)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(1)
O(n)
O(n)
O(0)
O(n)
O(n)
O(n2)
O(n2)
O(n2)
O(n2)
O(n2)
O(n3)
O(n3)
O(0)
O(0)
O(0)
O(0)
O(0)
Total 4 2n3 +6n2 +
4n + 3
O(1) O(n3)
Tabel 3.3 Tabel Perancangan Algoritma Bentuk Normal Kedua dengan Dekomposisi
95
3.2.4.4 Perancangan Algoritma pada Bentuk Normal Ketiga (Dekomposisi)
Frequency Total steps Statement s/e
n = 0 n >0 n = 0 n > 0 Awal modul 3NF
Baca tabel 2NF
Lakukan perulangan sebanyak jumlah tabel
Cari FD yang terdapat dalam tabel ke i
Jika jumlah FD = 1 maka
Tabel = tabel 3NF
Selain itu
Lakukan perulangan sebanyak jumlah FD
Buat tabel baru
Ambil semua field determinan untuk
dijadikan field tabel baru sebagai PK
Ambil semua field dependent untuk
dijadikan field tabel baru
Akhir perulangan
Akhir jika
Akhir perulangan
Akhir modul
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
n+1
n
n
n
0
0
0
0
0
0
0
0
0
1
n+1
n
0
0
n(n+1)
n2
n2
n2
0
0
0
0
O(0)
O(1)
O(n)
O(n)
O(n)
O(n)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(0)
O(1)
O(n)
O(n)
O(0)
O(0)
O(n2)
O(n2)
O(n2)
O(n2)
O(0)
O(0)
O(0)
O(0)
Total 4n+2 4n2+3n+2 O(n) O(n2)
Tabel 3.4 Tabel Perancangan Algoritma Bentuk Normal Ketiga dengan Dekomposisi
96
3.2.4.5 Perancangan Algoritma pada Bentuk Normal Ketiga (Sintesis)
Statement s/e Frequency Total
steps Awal modul 3 NF
Baca Tabel 1 NF
Baca FD dari Tabel 1NF
Lakukan perulangan sebanyak FN
Baca Field determinant FD = PK
If jumlah determinan FD > 0 maka
Lakukan perulangan sebanyak jumlah jumlah field
determinanFD
Ambil semua field determinan untuk dijadikan field tabel
baru sebagai PK
Akhir perulangan
Baca field dependentFD
If jumlah dependentFD > 0 maka
Lakukan perulangan sebanyak jumlah field dependentFD
Ambil semua field dependent untuk dijadikan field
berikutnya pada tabel tersebut
Akhir perulangan
Akhir jika
Akhir jika
Akhir perulangan
Akhir modul
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
n+1
n
n
n(n+1)
n(n)
0
n
n
n(n+1)
n
0
0
0
0
0
O(0)
O(1)
O(n)
O(n)
O(n)
O(n)
O(n2)
O(n2)
O(0)
O(n)
O(n)
O(n)
O(n)
O(0)
O(0)
O(0)
O(0)
O(0)
Total 3n2+8n+3 O(n2)
Tabel 3.5 Tabel Perancangan Algoritma Bentuk Normal Ketiga dengan Sintesis
97
Big O yang didapat dari kedua algoritma yakni :
Dekomposisi = O(n3)
Sintesis = O(n2)
Time Complexity :
Dekomposisi = (4n2 + 3n + 4) + (3n2 + 9n + 5) + (2n3 + 6n2 + 4n + 3) + (4n2 + 3n + 2)
= 2n3 + 17n2 + 19n + 14
Sintesis = (4n2 + 3n + 4) + (3n2 + 9n + 5) + (3n2+8n+3)
= 10n2 + 20n + 12
Jadi algoritma sintesis membutuhkan waktu O(n2), maka itu lebih cepat daripada
waktu yang dibutuhkan oleh algoritma dekomposisi O(n3).