• Tidak ada hasil yang ditemukan

MENGKONTRUKSI ULANG DATABASE SECARA OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD NORMAL FORM)

N/A
N/A
Protected

Academic year: 2021

Membagikan "MENGKONTRUKSI ULANG DATABASE SECARA OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD NORMAL FORM)"

Copied!
102
0
0

Teks penuh

(1)

MENGKONTRUKSI ULANG

DATABASE

SECARA

OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD

NORMAL FORM)

(Studi Kasus : Database Anggota Ikatan Mahasiswa

Muhammadiyah UIN Malang)

SKRIPSI

Oleh:

M. IQBAL FAHMI NIM. 07650085

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI

MAULANA MALIK IBRAHIM MALANG

(2)

i

OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD

NORMAL FORM)

(Studi Kasus : Database Anggota Ikatan Mahasiswa

Muhammadiyah UIN Malang)

SKRIPSI

Diajukan Kepada: Fakultas Sains dan Teknologi Universitas Islam Negeri (UIN) Malang Untuk Memenuhi Salah Satu Persyaratan Dalam

Memperoleh Gelar Sarjana Komputer (S.Kom)

Oleh:

M. IQBAL FAHMI NIM. 07650085

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI

MAULANA MALIK IBRAHIM MALANG

(3)

ii

(Studi Kasus : Database Anggota Ikatan Mahasiswa

Muhammadiyah UIN Malang)

SKRIPSI

Oleh:

M. IQBAL FAHMI NIM. 07650085

Telah Disetujui untuk Diuji Malang, 11 Januari 2013

Dosen Pembimbing I, Dosen Pembimbing II,

M. Ainul Yaqin, M.Kom Syahiduz Zaman, M,Kom NIP. 197610132006041004 NIP. 197005022005011005

Mengetahui,

Ketua Jurusan Teknik Informatika

Ririen Kusumawati, M.Kom NIP. 197203092005012002

(4)

iii

OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD

NORMAL FORM)

(Studi Kasus : Database Anggota Ikatan Mahasiswa

Muhammadiyah UIN Malang)

SKRIPSI

Oleh:

M. Iqbal Fahmi

NIM. 07650085

Telah Dipertahankan di Depan Dewan Penguji Skripsi dan Dinyatakan Diterima Sebagai Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana Komputer (S.Kom)

Tanggal, 19 Januari 2013

Susunan Dewan Penguji: Tanda Tangan

1. Penguji Utama : ZAINAL ABIDIN, M.KOM

NIP. 197606132005011004 ( ) 2. Ketua Penguji : M. AMIN HARIYADI, M.T

NIP. 196701182005011001 ( ) 3. Sekretaris Penguji : M. AINUL YAQIN, M.KOM

NIP. 197610132006041004 ( ) 4. Anggota Penguji : SYAHIDUZ ZAMAN, M,KOM

NIP. 197005022005011005 ( )

Mengetahui dan Mengesahkan, Ketua Jurusan Teknik Informatika

Ririen Kusumawati, M.Kom NIP. 197203092005012002

(5)

iv

Nama : M. Iqbal Fahmi

NIM : 07650085

Fakultas / Jurusan : Sains Dan Teknologi / Teknik Informatika

Judul Penelitian : MENGKONTRUKSI ULANG DATABASE SECARA OTOMATIS HINGGA DALAM BENTUK 3NF (THIRD NORMAL FORM)

Menyatakan dengan sebenar-benarnya bahwa hasil penelitian saya ini tidak terdapat unsur-unsur penjiplakan karya penelitian atau karya ilmiah yang pernah dilakukan atau dibuat oleh orang lain, kecuali yang secara tertulis dikutip dalam naskah ini dan disebutkan dalam sumber kutipan dan daftar pustaka.

Apabila ternyata hasil penelitian ini terbukti terdapat unsur-unsur jiplakan, maka saya bersedia untuk mempertanggung jawabkan, serta diproses sesuai peraturan yang berlaku.

Malang, 2 Pebruari 2013 Yang Menyatakan,

M. Iqbal Fahmi NIM. 07650085

(6)

v

















”Dan hendaklah ada di antara kamu segolongan umat yang menyeru kepada kebajikan, menyuruh kepada yang ma'ruf dan mencegah dari yang munkar,

merekalah orang-orang yang beruntung

(7)

vi

hamba, ibadah, hidup dan mati hamba berada dalam arungan perahu yang kau ridhoi.

Sungguh syukur ini hanya untuk-Mu ya Allah

Telah menciptakan dan melahirkan hamba dalam keluarga penuh kasih sayang Untukmu Sang Pemegang kunci surgaku nan penuh kasih sayang, Ibu Nashihah

Bagimu Sang Bijaksana dan Penyabar, Ayah Faizin

Peluk kasih dan kecupan sayang Ayah dan Ibu adalah segala-galanya Do’a yang terlantun takkan mampu Ananda membalas sampai kapanpun

Semoga Ananda tak lelah untuk berbakti

Mas ku, Ahmad Rizal & Rosyih Ridlo Saudara seperjuangan, Imam Habibi Indahnya pelukan persaudaraan kita Usapan di kepala ini takkan pernah hilang

Para immawan/i IMM Koms Revivalis, Pelopor dan Reformer UIN Maliki Malang Terimakasih, dukungan kalian merupakan motivasi yang sangat luar biasa

(8)

vii

Alhamdulillahi rabbil „alamin. Puji syukur penulis panjatkan kehadirat

Allah SWT, karena atas segala rahmat dan limpahan hidayahnya Skripsi yang berjudul “Mengkontruksi Ulang Database Secara Otomatis Hingga Dalam

Bentuk 3NF (Third Normal Form)” ini dapat diselesaikan. Dan semoga Allah

melimpahkan rahmat atas Nabi Muhammad SAW yang senantiasa memberikan cahaya petunjuk kepada kita.

Selanjutnya penulis haturkan ucapan terima kasih seiring do’a dan harapan

jazakumullah ahsanal jaza‟ kepada semua pihak yang telah membantu

terselesaikannya skripsi ini. Dalam kesempatan ini penulis ingin mengucapkan terima kasih yang tak terhingga kepada:

1. Bapak M. Ainul Yaqin, M.Kom dan Bapak H. Syahiduz Zaman, M.Kom selaku dosen pembimbing skripsi, yang telah banyak memberikan bimbingan serta memberikan masukan positif kepada penulis dalam menyelesaikan skripsi ini.

2. Prof. Dr. H. Imam Suprayogo selaku Rektor UIN Maulana Malik Ibrahim Malang yang telah banyak memberikan pengetahuan dan pengalaman yang berharga.

3. Prof. Drs. Sutiman Bambang Sumitro, SU., DSc. selaku Dekan Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik Ibrahim Malang. 4. Ibu Ririen Kusumawati, M.Kom selaku ketua jurusan Teknik Informatika

Fakultas Sains dan Teknologi Universitas Islam Negeri Maulana Malik Ibrahim Malang.

5. Seluruh Dosen Teknik Informatika Universitas Islam Negeri Maulana Malik Ibrahim Malang yang telah memberikan ilmu yang tak terbatas sebagai bekal hidup.

6. Seluruh keluarga yang selalu mendoakan, memberikan motivasi dan dorongan dalam penyelesaian skripsi ini.

7. Teman-teman Teknik Informatika angkatan 2007. Terima kasih atas segala bantuan, dukungan, motivasi, dan kebersamaannya selama ini. Semoga Allah

(9)

viii

Semoga penulisan laporan tugas akhir ini bermanfaat bagi pembaca sekalian. Penulis menyadari bahwa tugas akhir ini masih jauh dari kesempurnaan, sehingga dengan segala kerendahan hati penulis mengharapkan kritik dan saran yang membangun.

Malang, 11 Januari 2013

(10)

ix HALAMAN JUDUL

HALAMAN PENGAJUAN ... i

HALAMAN PERSETUJUAN ... ii

HALAMAN PENGESAHAN ... iii

HALAMAN PERNYATAAN ... iv

MOTTO ... v

LEMBAR PERSEMBAHAN ... vi

KATA PENGANTAR ... vii

DAFTAR ISI ... ix

DAFTAR TABEL ... xiii

DAFTAR GAMBAR ... xiv

ABSTRAK ... xvi ABSTRACT ... xvii BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Rumusan Masalah ... 3 1.3 Tujuan Penelitian ... 3 1.4 Manfaat Penelitian ... 3 1.5 Batasan Masalah ... 4 1.6 Metode Penelitian ... 4

(11)

x

2.2 Model Relasional ... 8

2.3 Efisiensi Sistem Basis Data ... 9

2.4 Normalisasi ... 11

2.4.1 Redundansi Data dan Update Anomaly ... 12

2.4.2 Ketergantungan Fungsional ... 15

2.4.3 Bentuk Normal Pertama (1NF) ... 17

2.4.4 Bentuk Normal Kedua (2NF) ... 21

2.4.5 Bentuk Normal Ketiga (3NF)... 25

2.5 Menampilkan Ketergantungan ... 29

2.5.1 Diagram Ketergantungan Graf ... 29

2.5.2 Ketergantungan Matriks ... 31

2.5.3 Matriks Graf Berarah ... 32

2.6 Perancangan Basis Data ... 35

2.6.1 Perancangan Basis Data Konseptual ... 36

2.6.2 Perancangan Basis Data Logikal ... 40

2.6.3 Perancangan Basis Data Fisikal ... 42

BAB III ANALISIS DAN PERANCANGAN ... 45

3.1 Analisis Sistem ... 45

(12)

xi

3.1.3 Deskripsi Program ... 47

3.1.4 Pembuatan Algoritma Program ... 47

3.2 Perancangan Sistem ... 47

3.2.1 Alur Proses ... 49

3.2.2 Desain Use Case Diagram ... 54

3.2.3 Desain Activity Diagram... 55

3.2.3 Desain Sequence Diagram ... 57

3.3 Perancangan Aplikasi ... 60

3.3.1 Perancangan User Interface... 60

BAB IV HASIL DAN PEMBAHASAN ... 64

4.1 Lingkungan Uji Coba ... 64

4.2 Implementasi Interface ... 65

4.3 Implementasi Sistem ... 69

4.3.1 Pembuatan Matrik DG dan DM ... 70

4.3.2 Ketergantungan Transitif Kunci Penentu ... 72

4.3.3 Dependency Closure ... 73

4.3.4 Circular Dependency ... 74

4.3.5 MenguraikanKetergantungan Parsial ... 74

4.3.6 Menguraikan Ketergantungan Transitif ... 75

4.4 Pengujian dan Analisa ... 76

(13)

xii

(14)

xiii

Tabel 2.1 Istilah penting dalam model relasional ... 8

Tabel 2.2 Relasi Staff dan Branch ... 12

Tabel 2.3 Relasi StaffBranch... 13

Tabel 2.4 Tabel contoh Relasi R ... 16

Tabel 2.5 Tabel inference rule ... 17

Tabel 2.6 Tabel ClientRental yang belum dinormalisasi ... 19

Tabel 2.7 Relasi ClientRental pada bentuk normal pertama (1NF) ... 20

Tabel 2.8 Relasi Client dan PropertyRentalOwner pada 1NF ... 21

Tabel 2.9 Relasi dalam 2NF yang diperoleh dari relasi ClientRental ... 25

Tabel 2.10 Relasi 3NF yang diperoleh dari relasi PropertyOwner ... 27

Tabel 2.11 Relasi keseluruhan 3NF yang diperoleh dari relasi ClientRental ... 29

Tabel 2.12 Menunjukkan Ketergantungan Matrik ... 31

Tabel 3.1 Tabel Penduduk... 49

Tabel 3.2 Tabel Distinct kode_pend dan nama_pend ... 50

Tabel 3.3 Tabel Ketergantungan Fungsional ... 50

Tabel 3.4 Tabel Matrik DM ... 51

Tabel 3.5 Tabel Hasil Pembetulan Matrik DM ... 51

Tabel 3.6 Tabel Matrik DG ... 52

Tabel 3.7 Tabel Dependensi Closure ... 53

(15)

xiv

Gambar 2.2 Dekomposisi relasi ClientRental dari 1NF menjadi 3NF... 28

Gambar 2.3 : Menampilkan graf ... 30

Gambar 2.4: Inisialisasi Matrik DM dan DG ... 32

Gambar 2.5: Matrik DM dan DG ... 33

Gambar 2.6: Kunci Penentu ketergantungan transitif ... 33

Gambar 2.7: E tergantung pada BC melalui AB ... 34

Gambar 2.8: Matrik DM dan DG ... 34

Gambar 2.9: C → B yang asli telah dikembalikan ... 35

Gambar 3.1 Algoritma Pemrograman ... 48

Gambar 3.2 Desain Use Case Diagram ... 54

Gambar 3.3 Activity Diagram (Aktifitas Login) ... 55

Gambar 3.4 Activity Diagram (Aktifitas Normalisasi) ... 56

Gambar 3.5 Activity Diagram (Aktifitas Buka Project) ... 57

Gambar 3.6 Sequence Diagram (Proses Normalisasi) ... 59

Gambar 3.7 Gambar Form Login ... 61

Gambar 3.8 Gambar Halaman Utama ... 61

Gambar 3.9 Gambar Halaman Normalisasi ... 62

Gambar 3.10 Gambar Halaman Hasil ... 63

Gambar 3.11 Gambar Halaman Pesan Kesalahan... 63

Gambar 4.1 Tampilan Login ... 65

(16)

xv

Gambar 4.4 Tampilan Hasil ... 68

Gambar 4.5 Tampilan Pesan Kesalahan... 69

Gambar 4.6 Source Code Pemberian Nilai Matrik DG... 71

Gambar 4.7 Source Code Pemberian Nilai Matrik DM ... 72

Gambar 4.8 Source Code key transitif ... 73

Gambar 4.9 Source Code Dependency Closure ... 73

Gambar 4.10 Source Code Circular dependency ... 74

Gambar 4.11 Source Code Pecah Parsial ... 75

Gambar 4.12 Source Code Pecah Transitif ... 76

Gambar 4.13 Tabel fakultas dan jurusan ... 77

Gambar 4.14 Penambahan Isi Tabel fakultas dan jurusan ... 77

Gambar 4.15 Tabel Anggota ... 78

Gambar 4.16 Hasil Pengujian Aplikasi ... 78

Gambar 4.17 Tabel Anggota Microsoft Access ... 80

(17)

xvi

Maulana Malik Ibrahim Malang. Pembimbing : (I) M. Ainul Yaqin, M.Kom (II) Syahiduz Zaman, M.Kom

Kata Kunci : ketergantungan fungsional, redundansi, anomali

Mengkontruksi ulang database secara otomatis hingga dalam bentuk 3NF adalah suatu sistem terkomputerisasi yang dirancang untuk administrator dalam menormalisasi basis data. Normalisasi merupakan langkah yang sangat penting dilakukan oleh administrator basis data. Langkah ini dilakukan untuk menganalisis relasi basis data yang bertujuan untuk menciptakan suatu kumpulan relasi basis data yang minim akan redundansi dan anomali.

Proses normalisasi basis data secara otomatis sangat memudahkan dan mempercepat proses normalisasi. Pada proses ini, masukkan yang dibutuhkan berupa tabel dari basis data. Masukkan tersebut kemudian diproses oleh sistem untuk mendapatkan ketergantungan fungsional dengan membandingakn data dari tiap attribut kemudian ketergantungan fungsional diubah menjadi matrik ketergantungan fungsional dan kunci penentu. Dari matrik tersebut, dilakukan pencarian ketergantungan parsial dan ketergantungan transitif kumudian jika ditemukan makan tabel diuraikan menjadi tabel-tabel baru yang sudah tidak mengandung ketergantungan parsial dan transitif pada tabel tersebut. Tabel-tabel yang sudah dinormalisasi kemudian diubah menjadi kode-kode query MySql sehingga pengguna tinggal menjalankannya pada sistem MySql.

Dari hasil uji coba aplikasi yang dilakukan pada basis data anggota didapatkan basis data baru yang mampu mengurangi redundansi data dan anomali yang terjadi pada basis data lama sehingga pengguna mendapatkan basis data yang lebih efektif dan efisien.

(18)

xvii

M. Iqbal Fahmi. 2013. 07650085. Repeat Database Automatically constructing Up In Form 3NF (Third Normal Form). Informatic Department Science and Technology Faculty of Islamic State University of Malang Maulana Malik Ibrahim. Supervisor : (I) M. Ainul Yaqin, M.Kom (II) Syahiduz Zaman, M.Kom

Keyword : functional dependency, redundancy, anomaly

Construct the database automatically reset to the form 3NF is a computerized system that is designed for database administrators in normalizing. Normalization is a very important step performed by the database administrator. This step is carried out to analyze the relationship database that aims to create a set of database relationships be minimal redundancy and anomalies.

The process of database normalization is automatically greatly facilitate and accelerate the process of normalization. In this process, enter the required form of tables from the database. Insert is then processed by the system to obtain the functional dependence of the data from each attribute membandingakn then converted into functional dependency matrix functional dependencies and key determinants. From these matrices, to search for partial and transitive dependencies dependency kumudian if found dining table broken down into new tables that are not contained partial and transitive dependencies in the table. The tables are normalized and then converted into MySql query code so users stay MySql running on the system.

From the test results conducted on the application of database members obtained a new database that can reduce data redundancy and anomalies that occur in the old database so that users get the database more effectively and efficiently.

(19)

1 1.1 Latar Belakang

Basis data (database) merupakan komponen utama sistem informasi, karena semua informasi untuk pengambilan keputusan berasal dari data di basis data. Pengelolaan basis data yang buruk dapat mengakibatkan ketidaktersediaan data penting yang digunakan untuk menghasilkan informasi yang diperlukan dalam pengambilan keputusan agar data dapat dikelola dengan baik maka diperlukan satu sistem manajemen dalam pengelolaan data yang disebut sistem manajemen basis data atau DBMS (Basis data Management System), yaitu perangkat lunak untuk mendefinisikan, menciptakan, mengelola dan mengendalikan pengaksesan basis data. Tujuan utama sistem manajemen basis data adalah menyediakan lingkungan yang nyaman dan efisien untuk penyimpanan dan pengambilan data dari basis data.

Dalam ajaran Islam juga dianjurkan tentang pentingnya efisiensi dalam kehidupan manusia. Efisiensi dalam hal bekerja, keuangan, perkataan dan perbuatan dalam setiap aktifitas dilakukan oleh manusia dalam menjalankan kehidupan sehari-harinya. Setiap manusia dianjurkan untuk membiasakan diri selalu efektif, artinya dalam menjalankan kehidupannya janganlah melakukan perbuatan yang sia-sia. Dalam tafsir al-Qurthubi dijelaskan bahwa perbuatan yang sia-sia adalah perbuatan yang tiada manfaat dan juga tidak ada keburukan dalam perbuatan tersebut. (Tafsir al-Qurthubi:2008). Dalam Firman Allah yang dijelaskan dalam Surat al-Israa’ ayat 29 yang berbunyi:

(20)







Artinya: “Dan janganlah kamu jadikan tanganmu terbelenggu pada lehermu dan

janganlah kamu terlalu mengulurkannya karena itu kamu menjadi tercela dan

menyesal.”(Q.S Al-Israa’ 17:29)

Dalam ayat ini dijelaskan bahwa dalam melaksanakan aktifitas sehari-hari dalam kehidupan di dunia hendaklah harus mempertimbangkan asas manfaatnya. Efisiensi yang dimaksudkan dalam ayat ini adalah di dalam proses pengambilan keputusan, berkata dan berbuat dalam kehidupan haruslah memperhitungkan asas manfaat dari hal tersebut, janganlah kemudian apa yang dilakukan nantinya akan mendatangkan keburukan dan menjadikanya hal yang sia-sia belaka. Dalam manajemen basis data langkah ini sangatlah berguna karena di dalam membangun sistem diperlukan perancangan basis data yang efektif dan efisien sehingga memudahkan dalam proses penyimpanan dan pengambilan data dan menghasilkan sistem basis data yang baik.

Untuk menghasilkan sebuah sistem basis data yang baik maka diperlukan suatu proses analisa yang tidak mudah bagi kebanyakan orang. Hal ini membutuhkan pengetahuan yang kuat tentang dasar-dasar sistem manajemen basis data. Terkadang proses ini membutuhkan waktu yang lama dan dokumen yang lengkap tentang sistem yang akan dibuat tergantung pada tingkat kompleksitas sistem tersebut. Salah satu bagian yang sering menjadi kendala adalah redundansi data (Ramakrishnan, 2004). Redundansi pada basis data dapat mengakibatkan penumpukan informasi yang berulang dan ketidakkonsistenan data sehingga basis data menjadi kurang efisien dalam penggunaan ruang penyimpanan

(21)

dan memperlambat pengaksesan data maka dari itu, untuk mengatasi masalah tersebut dibutuhkan proses normalisasi basis data.

Normalisasi dalam basis data merupakan langkah penting dalam pembuatan basis data. Proses melakukan hal itu secara manual sangat sulit, perlu mendatangkan orang-orang terampil dan membutuhkan waktu yang cukup banyak, selain itu manusia dapat membuat kesalahan dan tentunya akan mengeluarkan biaya yang cukup banyak dalam melakukan normalisasi. Maka dari itu, untuk mengatasi permasalahan-permasalahan di atas peneliti merasa perlu membangun suatu aplikasi yang bisa digunakan sebagai alat yang dapat mengkontruksi ulang tabel dengan cepat dan akurat secara otomatis.

1.2Rumusan Masalah

Berdasarkan penjelasan pada latar belakang di atas, maka rumusan masalah dalam penelitian ini yaitu, Bagaimana mengotomatiskan kontruksi ulang basis data sehingga berbentuk 3NF?

1.3Tujuan Penelitian

Penelitian ini bertujuan untuk membuat aplikasi atau tool yang dapat mengkontruksi ulang basis data secara otomatis sehingga berbentuk 3NF.

1.4Manfaat Penelitian

Adapun penelitian ini diharapkan memberikan manfaat berupa kemudahan kepada perancang basis data untuk mengambil keputusan dalam proses perancangan basis data.

(22)

1.5Batasan Masalah

Batasan masalah yang diberikan dalam dalam pembuatan aplikasi ini adalah sebagai berikut:

1. Aplikasi dibangun dengan menggunakan bahasa pemrograman Java. 2. Basis data yang digunakan untuk uji coba adalah basis data MySQL. 3. Basis data yang dinormalisasi minimal dalam bentuk normal pertama

(1NF).

4. Aplikasi ini diuji menggunakan basis data anggota Ikatan Mahasiswa Muhammadiyah UIN Malang.

1.6Metode Penelitian

Metode yang digunakan dalam penelitian ini adalah sebagai berikut: 1. Studi Literatur

Pada tahap ini dilakukan pencarian dan pemahaman literatur yang berhubungan dengan permasalahan pembuatan aplikasi Kontruksi Ulang Basis Data yang bisa diperoleh dalam bentuk paper, textbook, dan hasil browsing di internet yang terkait dengan penelitian ini.

2. Perumusan masalah dan penyelesaiannya

Tahap ini meliputi perumusan masalah, batasan-batasan masalah, dan penyelesaiannya serta penentuan parameter untuk mengukur hasilnya.

3. Perancangan Perangkat Lunak

Pada tahap ini dilakukan perancangan perangkat lunak untuk menerapkan permasalahan dan penyelesaiannya pada tahap sebelumnya.

(23)

4. Pembuatan Perangkat Lunak

Pada tahap ini dilakukan pembuatan perangkat lunak sesuai dengan perancangan perangkat lunak yang telah dilakukan, dengan melakukan konversi algoritma menjadi kode program yang siap dieksekusi.

5. Uji Coba dan Evaluasi Hasil

Tahap ini meliputi uji coba terhadap sistem yang telah dirancang untuk pembuatan aplikasi ini serta kesesuaian dengan program jadinya, dan evaluasi dari setiap percobaan.

6. Penyusunan laporan penelitian

Pada tahap ini dilakukan penulisan laporan penelitian yang merupakan dokumentasi dari konsep atau teori penunjang, perancangan perangkat lunak, pembuatan perangkat lunak dan dokumentasi dari uji coba dan analisis, serta kesimpulan dan saran.

1.7Sistematika Penyusunan Skripsi

Sistematika dalam penulisan skripsi ini akan dibagi menjadi beberapa bab sebagai berikut :

BAB I PENDAHULUAN

Pendahuluan adalah bab pertama dari skripsi yang memuat tentang berbagai latar belakang tentang pentingnya dilakukan penelitian ini, untuk apa penelitian tersebut dan mengapa penelitian itu harus dilakukan. Oleh karena itu, bab pendahuluan terdiri atas : Latar belakang masalah, tujuan penelitian, manfaat penelitian, rumusan masalah, batasan masalah, metode penelitian dan sistematika penyusunan skripsi.

(24)

BAB II KAJIAN PUSTAKA

Bab dua berisi tentang argumentasi ilmiah yang dipakai sebagai referensi. Bahan pustaka yang digunakan diperoleh dari berbagai sumber seperti : Jurnal penelitian, laporan penelitian, buku teks, diskusi ilmiah, maupun temuan-temuan hasil browsing di internet. Berikutnya mengkaji hasil temuan pustaka yang berhubungan dengan konsep-konsep yang dipermasalahkan dan akan dipakai dalam analisis, termasuk mengkaji tentang teori-teori keislaman yang berkaitan dengan penelitian ini.

BAB III ANALISIS DAN PERANCANGAN

Bab tiga berisi analisis dan perancangan sistem secara terstruktur, yang dilengkapi dengan beberapa diagram. Selain itu akan dilakukan pembuatan aplikasi yang dibangun sesuai dengan permasalahan dan batasannya yang telah dijabarkan pada bab pertama.

BAB IV HASIL DAN PEMBAHASAN

Bab empat membahas tentang implementasi dari aplikasi yang dibuat secara keseluruhan. Serta melakukan pengujian terhadap aplikasi yang dibuat untuk mengetahui apakah aplikasi tersebut telah berjalan sesuai dengan yang diharapkan, termasuk relevansi dalam kajian keislamannya.

BAB V PENUTUP

Penutup berisi kesimpulan dan saran dari hasil penelitian. Kesimpulan merupakan pernyataan singkat yang dijabarkan dari hasil penelitian dan pembahasan, untuk membuktikan kebenaran dari temuan

(25)

pustaka yang diperoleh sekaligus menjawab tujuan penelitian. Sedangkan saran adalah rekomendasi untuk penelitian selanjutnya, yang didasarkan atas pengalaman dan pertimbangan dari hasil penelitian yang dilakukan.

(26)

8

TINJAUAN PUSTAKA

2.1 Pengertian Basis Data

Menurut Connolly (2002), basis data adalah kumpulan data yang saling terhubung secara logis, yang dapat digunakan secara bersama, dan deskripsi dari data ini dirancang untuk memenuhi kebutuhan. Menurut Date (2000), basis data adalah sebuah koleksi dari data yang tahan lama yang digunakan oleh sistem aplikasi dari perusahaan tertentu.

Jadi basis data adalah kumpulan data tetap yang tersimpan dan saling terhubung secara logis yang digunakan oleh beberapa sistem aplikasi untuk memenuhi kebutuhan informasi sebuah perusahaan atau organisasi.

2.2 Model Relasional

Model relasional adalah model data yang didasarkan pada konsep matematika dari relasi, yang secara fisik direpresentasikan sebagai tabel. Codd menggunakan terminologi yang diambil dari matematika, terutama teori set dan logika predikat.

Dalam model relasional, semua data terstruktur secara logis dalam sejumlah relasi. Setiap relasi memiliki nama, dan terdiri dari sejumlah atribut data. Kelebihan dari model relasional adalah struktur logis datanya yang sederhana. Tabel 2.1 Istilah penting dalam model relasional

Jenis Deskripsi

Relasi sebuah tabel dengan kolom dan baris. Atribut/Field nama kolom dalam sebuah relasi.

Domain sekumpulan nilai yang diijinkan untuk satu atau lebih atribut.

Tuple/Record baris dari sebuah relasi.

Degree jumlah atribut pada sebuah relasi. Cardinality jumlah tuple pada sebuah relasi.

(27)

Basis data relasional kumpulan relasi yang telah dinormalisasi dengan nama relasi yang berbeda.

Skema relasi set terbatas dari kumpulan atribut. Contoh: skema relasi R memiliki atribut-atribut: A, B, dan C,maka ditulis R = A B C.

Skema basis data relasional

kumpulan skema relasi yang masing-masing memiliki nama yang berbeda.

Superkey sebuah atribut atau serangkaian atribut yang secara unik mengidentifikasi tuple-tuple pada suatu relasi.

Candidate key sebuah superkey sedemikian sehingga tidak ada subsetyang merupakan superkey dalam relasi tersebut.

Primary key candidate key yang dipilih untuk mengidentifikasi tuple-tuple secara unik dalam sebuah relasi.

Foreign key sebuah atribut atau serangkaian atribut dalam satu relasi yang sama dengan candidate key pada relasi yang lain.

Null representasi nilai sebuah atribut yang tidak diketahui nilainya atau tidak dapat dipakai untuk sebuah tuple.

2.3 Efisiensi Sistem Basis Data

Tujuan utama sistem manajemen basis data adalah menyediakan lingkungan yang nyaman dan efisien untuk penyimpanan dan pengambilan data dari basis data. Efisiensi merupakan suatu ukuran keberhasilan yang dinilai dari besarnya sumber atau biaya untuk mencapai hasil dari kegiatan yang dijalankan. Efisiensi juga bisa dimaknai suatu ukuran dalam membandingkan rencana penggunaan masukan dengan penggunaan yang direalisasikan.

Dalam Islam, efisiensi sendiri diartikan sebagai sebuah aktifitas yang tidak sia-sia, yang mempunyai asas manfaat di dalamnya. Sebagaimana Firman Allah SWT dalam surat al-Mu’minuun ayat 3, yang berbunyi:









Artinya : “ Dan orang-orang yang menjauhkan diri dari (perbuatan dan

perkataan) yang tiada berguna.” (Q.S al-Mu’minuun 23 : 3)

Dalam ayat di atas dijelaskan bahwa setiap manusia dianjurkan untuk membiasakan diri selalu efektif, artinya dalam menjalankan kehidupannya

(28)

janganlah melakukan perbuatan yang sia-sia. Dalam tafsir al-Qurthubi dijelaskan bahwa perbuatan yang sia-sia adalah perbuatan yang tiada manfaat dan juga tidak ada keburukan dalam perbuatan tersebut. (Tafsir al-Qurthubi:2008).

Dalam membangun sistem basis data, efisiensi sangatlah diperlukan agar tidak dikategorikan berlebihan dalam alokasi memori dan media penyimpan data. Sesuatu yang berlebih-lebihan dilarang dalam Islam sebagaimana Firman Allah SWT dalam surat al-Israa’ ayat 26-27 yang berbunyi :









































Artinya : “Dan berikanlah kepada keluarga-keluarga yang dekat akan haknya,

kepada orang miskin dan orang yang dalam perjalanan dan janganlah kamu menghambur-hamburkan (hartamu) secara boros. Sesungguhnya pemboros-pemboros itu adalah saudara-saudara syaitan dan syaitan itu adalah sangat

ingkar kepada Tuhannya”. (Q.S al-Israa’ 17: 26-27)

Dalam ayat di atas dijelaskan bahwa umat manusia diperintahkan oleh Allah SWT agar tidak melakukan sesuatu hal secara berlebihan-lebihan karena sifat berlebih-lebihan itu adalah sebagian dari sifat syetan. Sifat berlebih-lebihan dapat membuat kehancuran sebagaimana para syetan dan kelak syetan akan menemaninya di dalam neraka. (Tafsir al-Qurthubi:2008).

Dalam proses membangun sistem basis data jika tidak diikuti dengan analisis yang cermat dalam penyusunanya nanti akan mengakibatkan adanya redudansi data (menyimpan data yang sama di beberapa tabel). Sehingga untuk menghilangkan redudansi data ini dan memastikan ketergantungan data yang ada sudah benar (hanya menyimpan data yang berhubungan ke dalam sebuah tabel), Maka diperlukan proses normalisasi basis data.

(29)

2.4 Normalisasi

Normalisasi adalah suatu teknik formal untuk menganalisis relasi berdasarkan

primary key (candidate key) dan ketergantungan fungsional (Connolly, 2002).

Teknik tersebut mencakup serangkaian aturan yang dapat digunakan untuk menguji relasi individu sehingga basis data dapat dinormalisasi pada derajat tertentu. Ketika syarat tidak terpenuhi, relasi yang tidak sesuai syarat harus diuraikan ke dalam beberapa relasi dimana secara individu memenuhi syarat-syarat normalisasi. Proses normalisasi merupakan metode formal yang mengidentifikasi beberapa relasi berdasarkan primary atau candidate key dan ketergantungan fungsional pada atribut-atributnya (Connolly, 2002). Tujuan dari proses normalisasi adalah untuk menghilangkan redundansi data (menyimpan data yang sama di beberapa tabel) dan memastikan ketergantungan data yang ada sudah benar (hanya menyimpan data yang berhubungan ke dalam sebuah tabel).

Normalisasi mendukung para perancang basis data dengan memberikan serangkaian percobaan yang dapat digunakan dalam relasi individual sehingga skema relasi tersebut dapat dinormalisasi ke dalam bentuk yang lebih spesifik untuk menghindari kejadian yang memungkinkan terjadinya update anomaly

(Connolly, 2002). Normalisasi biasanya dilakukan dalam beberapa tahap. Masing-masing tahap berkaitan dengan bentuk normal tertentu yang telah diketahui sifat-sifatnya. Dalam pemodelan data, sangatlah penting untuk mengenal bentuk normal pertama (1NF) yang merupakan kondisi kritis untuk membuat relasi-relasi yang diperlukan. Bagian bentuk normal yang lain hanya merupakan pilihan

(30)

dalam proses normalisasi setidaknya harus sampai pada bentuk normal ketiga (3NF) (Connolly, 2002). Kemudian, oleh R. Boyce dan E. F. Codd memperkenalkan definisi yang lebih kuat dari bentuk normal ketiga yaitu Boyce-Codd Normal Form (BCNF). Bentuk normal form yang lebih tinggi lagi diperkenalkan kemudian sebagai bentuk normal keempat (4NF) dan kelima (5NF). Namun, bentuk normal ini jarang digunakan pada beberapa situasi sekarang ini (Connolly, 2002).

2.4.1 Redundansi Data dan Update Anomaly

Tujuan utama perancangan basis data relasional adalah untuk mengelompokkan atribut-atribut ke dalam relasi agar supaya redundansi data minimal sehingga dapat mengurangi kapasitas penyimpanan file yang dibutuhkan oleh relasi yang diimplementasikan. Relasi yang mempunyai redundansi data akan menimbulkan masalah yang disebut update anomaly, yang dikelompokkan menjadi insertion, deletion, dan modification anomaly (Connolly, 2002).

Tabel 2.2 Relasi Staff dan Branch

a. Staff

staffNo sName position salary branchNo

SL21 John White Manager 30000 B005 SG37 Ann Beach Assistant 12000 B003 SG14 David Ford Supervisor 18000 B003 SA9 Mary Howe Assistant 9000 B007 SG5 Susan Brand Manager 24000 B003 SL41 Julie Lee Assistant 9000 B005

b. Branch branchNo bAddress B005 22 Deer Rd, London B007 16 Argyll St, Aberdeen B003 163 Main St, Glasgow

(31)

Tabel 2.3 Relasi StaffBranch

staffNo sName Position salary branchNo bAddress

SL21 John White Manager 30000 B005 22 Deer Rd, London SG37 Ann Beach Assistant 12000 B003 163 Main St, Glasgow SG14 David Ford Supervisor 18000 B003 163 Main St, Glasgow SA9 Mary Howe Assistant 9000 B007 16 Argyll St, Aberdeen SG5 Susan Brand Manager 24000 B003 163 Main St, Glasgow SL41 Julie Lee Assistant 9000 B005 22 Deer Rd, London a. Insertion Anomaly

Menurut Connolly (2002), ada 2 jenis utama insertion anomaly, dimana dapat digambarkan dengan menggunakan relasi StaffBranch pada Tabel 2.3. 1) Memasukkan anggota baru staf ke dalam relasi StaffBranch, perincian

cabang dimana staf ditempatkan perlu dimasukkan. Sebagai contoh, memasukkan rincian staf baru yang akan ditempatkan pada cabang nomor B007, perincian cabang nomor B007 perlu dimasukkan dengan benar, sehingga perincian cabang konsisten dengan nilai cabang B007 di tuple

lain dalam relasi StaffBranch. Relasi yang ditunjukkan pada tabel 2.2 tidak mengalami data yang tidak konsisten, sebab hanya memasukkan nomor cabang dengan tepat untuk masing-masing staf dalam relasi Staff. Sedangkan rincian cabang nomor B007 disimpan dalam basis data sebagai

single tuple dalam relasi Branch.

2) Memasukkan rincian cabang baru yang tidak memiliki nomor anggota staf ke dalam relasi StaffBranch, perlu memasukkan nilai null ke dalam atribut staf, seperti staffNo. Akan tetapi, staffNo adalah primary key dari relasi

StaffBranch, sehingga dengan memasukkan nilai null pada staffNo akan

melanggar konsep integritas data, dan hal ini tidak dibolehkan. Oleh karena itu, nilai null tidak bisa dimasukkan pada stafNo ke dalam cabang

(32)

baru pada relasi StaffBranch. Perancangan yang ditunjukkan pada tabel 2.2 mencegah masalah ini karena rincian cabang yang dimasukkan pada relasi

Branch terpisah dari perincian staf.

b. Deletion Anomaly

Jika menghapus sebuah tuple dari relasi StaffBranch yang merepresentasikan anggota lama staf yang dilokasikan pada sebuah cabang, perincian mengenai cabang juga akan terhapus dari basis data. Sebagai contoh, jika menghapus tuple dari staf dengan nomor SA9 (Mary Howe) dari relasi

StaffBranch, perincian yang berhubungan dengan nomor cabang B007 juga

akan terhapus dari basis data. Perancangan pada relasi yang ditunjukkan pada tabel 2.2 mencegah masalah ini, sebab tuple cabang disimpan secara terpisah dari tuple staf dan hanya atribut branchNo yang berhubungan dengan kedua relasi tersebut. Jika menghapus tuple nomor staf SA9 dari relasi Staff, perincian pada nomor cabang B007 tetap tidak berdampak dalam relasi

Branch (Connolly, 2002).

c. Modification Anomaly

Jika ingin mengubah nilai dari satu atribut untuk cabang tertentu pada relasi StaffBranch, sebagai contoh alamat untuk nomor cabang B003, tuple

dari semua staf yang ditempatkan pada cabang tersebut perlu diubah (update). Jika perubahan ini tidak mengubah semua tuple pada relasi StaffBranch

dengan tepat, maka basis data akan menjadi tidak konsisten. Pada contoh ini, cabang nomor B003 akan mempunyai alamat yang berbeda untuk tuple staf yang berbeda (Connolly, 2002).

(33)

2.4.2 Ketergantungan Fungsional

Salah satu konsep utama dalam normalisasi adalah functional dependency

(ketergantungan fungsional), yang menggambarkan hubungan antara atribut-atributnya.

a. Definisi Ketergantungan Fungsional

Menurut Silberschatz (2002), ketergantungan fungsional memegang peranan penting dalam membedakan perancangan basis data yang baik dengan basis data yang buruk. Ketergantungan fungsional merupakan sebuah jenis batasan yang menggeneralisasikan key.

Menurut Connolly (2002), ketergantungan fungsional mendeskripsikan hubungan antar atribut dalam sebuah relasi. Sebagai contoh, jika A dan B adalah atribut dari relasi R, maka B secara fungsional tergantung pada A (ditulis A B), jika masing-masing nilai dari A diasosiasikan dengan tepat satu nilai dari B (di mana A dan B masing-masing terdiri dari satu atau lebih atribut).

Ketergantungan fungsional merupakan semantik dari atribut dalam sebuah relasi.Semantik menunjukkan bagaimana atribut-atribut berelasi satu sama lain, dan menspesifikasikan saling ketergantungan antar atribut. Ketika ketergantungan fungsional dilakukan, maka ketergantungan dikenal sebagai

constraint/ batasan di antara atribut. Relasi dengan atribut A dan B di mana

atribut B tergantung dengan atribut A dapat ditulis A → B.

Jika ingin mengetahui nilai A dan mengamati relasi tersebut, maka hanya akan ditemukan satu nilai B pada semua tuple dari nilai A yang diberikan.

(34)

Oleh karena itu ketika dua tuple mempunyai nilai yang sama pada A, B juga mempunyai nilai yang sama. Pada contoh di atas A merupakan determinant

dari B. Determinant menunjukkan atribut atau kumpulan atribut yang berada di sebelah kiri tanda panah dalam ketergantungan fungsional.

Contoh relasi R sebagai berikut (Silberschatz, 2002): Tabel 2.4 Tabel contoh Relasi R

A B C D a1 b1 c1 d1 a1 b2 c1 d2 a2 b2 c2 d2 a2 b2 c2 d3 a3 b3 c2 d4

Dapat dilihat ketergantungan fungsional mana saja yang memenuhi relasi r tersebut. Ketergantungan fungsional A → C terpenuhi, di mana dua tuple yang mempunyai nilai a1 pada A mempunyai nilai C yang sama yaitu c1, dua tuple yang mempunyai nilai a2 pada A mempunyai nilai C yang sama juga yaitu c2 dan tidak terdapat pasangan lain dari tuple berbeda yang mempunyai nilai A yang sama. Sedangkan ketergantungan fungsional C → A tidak terpenuhi, di mana dua tuple yang mempunyai nilai C yang sama (c2) mempunyai nilai A yang berbeda yaitu a2 dan a3. Dengan demikian, telah ditemukan dua tuple t1 dan t2 dengan t1[C] = t2[C] tetapi t1[A] ≠ t2[A] (Mata-Toledo, 2007).

b. Inference Rule untuk Ketergantungan Fungsional

Dalam mengidentifikasi ketergantungan fungsional pada suatu relasi, biasanya perancang basis data memulai dengan menspesifikasikan saling ketergantungan tersebut secara nyata, namun ada banyak ketergantungan fungsional lainnya. Akhirnya, untuk menspesifikasi semua ketergantungan

(35)

yang mungkin untuk proyek basis data merupakan hal yang tidak praktis. Oleh karena itu, ada sebuah pendekatan yang membantu mengidentifikasi ketergantungan fungsional secara menyeluruh dalam suatu relasi, yang dikenal dengan sejumlah inference rule yang dapat digunakan untuk mengambil ketergantungan baru dari sejumlah ketergantungan yang diberikan. Tujuh aturan yang dikenal sebagai inference rule untuk ketergantungan fungsional adalah sebagai berikut (Connolly, 2002):

Tabel 2.5 Tabel inference rule

1. Reflektif jika B bagian dari A, maka A → B 2. Augmentasi jika A → B, maka A,C → B,C 3. Transitif jika A → B dan B → C, maka A → C 4. Self-Determination A → A

5. Dekomposisi jika A → B,C, maka A → B dan A → C 6. Union jika A → B dan A → C, maka A → B,C 7. Composisi jika A → B dan C → D, maka A,C → B,D

c. Minimal Set dari Ketergantungan Fungsional

Sejumlah ketergantungan fungsional X minimal jika memenuhi kondisi berikut (Connolly, 2002):

1) Setiap ketergantungan X mempunyai atribut tunggal dari right-hand side. 2) Ketergantungan A → B pada X tidak dapat diganti dengan ketergantungan

C → B, di mana C adalah bagian dari A dan masih mempunyai sejumlah ketergantungan yang ekuivalendengan X.

3) Tidak dapat menghilangkan ketergantungan X dan masih mempunyai sejumlah ketergantungan yang ekuivalen dengan X.

(36)

2.4.3 Bentuk Normal Pertama (1NF)

Menurut Connolly (2002), bentuk normal pertama (1NF) adalah sebuah relasi dimana irisan tiap baris dan kolom mengandung satu dan hanya satu nilai. Proses normalisasi awalnya dimulai dari memindahkan data ke dalam tabel dengan baris dan kolom, dimana tabel tersebut masih dalam bentuk tidak normal (UNF). Tujuan bentuk normal pertama (1NF) adalah untuk menghilangkan bentuk tidak normal (UNF) dengan mengidentifikasi dan menghilangkan grup yang berulang (repeating groups) di dalam tabel. Grup yang berulang (repeating

groups)merupakan sebuah atribut atau sekumpulan atribut dalam tabel yang

mengandung beberapa nilai untuk satu kejadian.

Menurut Connolly (2002), ada dua pendekatan umum untuk menghilangkan grup yang berulang dari tabel yang tidak normal:

a. Pendekatan yang pertama, menghilangkan grup yang berulang dengan memasukkan data yang tepat pada kolom kosong dari baris yang mengandung data yang berulang. Dengan kata lain, kolom yang kosong diisi dengan menggandakan data yang tidak berulang, jika diperlukan. Tabel yang dihasilkan, merupakan suatu relasi yang mengandung nilai tunggal pada irisan dari tiap baris dan kolom dan tabel ini sudah dalam bentuk normal pertama. b. Pendekatan yang kedua, menghilangkan grup yang berulang dengan

menempatkan data yang berulang bersamaan dengan salinan atribut key yang asli. Primary key diidentifikasikan untuk relasi yang baru. Terkadang tabel yang tidak normal mengandung lebih dari satu grup yang berulang, atau grup berulang di dalam grup yang berulang juga. Dalam kasus tersebut, pendekatan

(37)

ini digunakan berulang kali sampai tidak ada grup yang berulang lagi. Apabila sudah tidak ada grup yang berulang lagi, maka sudah berada dalam bentuk normal pertama.

Tabel 2.6 Tabel ClientRental yang belum dinormalisasi

clientNo cName propertyNo pAddress rentStart rentFinish rent ownerNo oName

CR76 John Kay PG4 6 Lawrence St, Glasgow 1-Jul-00 31–Aug - 01 350 C O40 Tina Murphy PG 16 ovar Dr, 5 N

Glasgow 1-Sep-01 1-Sep-02 450 CO93

Tony Shaw CR65 Aline Stewart PG4 6 Lawrence St, Glasgow 1-Jul-00 31 – Aug - 01 350 C O40 Tina Murphy PG 36 anor Rd 2 M Glasgow 10-Oct-00 1-Dec-01 375 CO93 Tony Shaw PG 16 ovar Dr, 5 N

Glasgow 1-Sep-01 1-Sep-02 450 CO93

Tony Shaw

clientNo dalam tabel ClientRental diidentifikasi sebagai atribut key. Struktur dari grup yang berulang yaitu (propertyNo, pAddress, rentStart,

rentFinish, rent, ownerNo, oName).

Akibatnya, terdapat beberapa nilai pada irisan untuk baris dan kolom tertentu. Sebagai contoh, ada dua nilai untuk propertyNo (PG4 dan PG16) untuk klien yang bernama John Kay. Untuk mengubah tabel yang tidak normal ke dalam 1NF, dipastikan hanya ada nilai tunggal pada irisan tiap baris dan kolom. Oleh karena itu grup yang berulang harus dihilangkan.

Dengan menggunakan pendekatan pertama, grup yang berulang dihilangkan dengan memasukkan data klien yang tepat ke dalam masing-masing baris. Hasil dari bentuk normal pertama dari relasi ClientRental dapat dilihat pada tabel 2.7. Candidate key untuk relasi ClientRental diidentifikasi sebagai key

gabungan (composite key) yang terdiri dari (clientNo, propertyNo), (clientNo,

(38)

adalah (clientNo, propertyNo) dan agar lebih jelas atribut yang dipilih sebagai

primary key diletakkan di sebelah kiri pada relasi. Atribut rentFinish tidak tepat

sebagai sebuah komponen dari candidate key karena mengandung nilai null. Tabel 2.7 Relasi ClientRental pada bentuk normal pertama (1NF)

clientNo propertyNo cName pAddress rentStart rentFinish rent ownerNo oName

CR76 PG4 John Kay 6 Lawrence St, Glasgow 1-Jul-00 31 – Aug - 01 350 C O40 Tina Murphy CR76 PG16 John Kay 5 Novar Dr,

Glasgow 1-Sep-01 1-Sep-02 450 CO93

Tony Shaw CR65 PG4 Aline Stewart 6 Lawrence St, Glasgow 1-Jul-00 31 – Aug - 01 350 C O40 Tina Murphy CR65 PG36 Aline Stewart 2 Manor Rd Glasgow 10-Oct-00 1-Dec-01 375 CO93 Tony Shaw CR65 PG16 Aline Stewart 5 Novar Dr,

Glasgow 1-Sep-01 1-Sep-02 450 CO93

Tony Shaw

Relasi ClientRental dapat didefinisikan sebagai berikut : ClientRental

(clientNo, propertyNo, cName, pAddress, rentStart, rentFinish, rent, ownerNo,

oName). Relasi ClientRental berada dalam bentuk normal pertama bila terdapat

nilai tunggal pada irisan untuk tiap baris dan kolom. Relasi mengandung data yang menggambarkan klien, properti yang disewakan, dan pemilik properti, dimana diulang beberapa kali. Sebagai hasil, relasi ClientRental mengandung redundansi data yang signifikan. Jika diimplementasikan, maka relasi 1NF tersebut akan terjadi update anomaly. Untuk mengatasi hal tersebut, maka relasi harus diubah ke dalam bentuk normal kedua.

Dengan menggunakan pendekatan kedua, grup yang berulang dihilangkan dengan menempatkan data yang berulang bersamaan dengan salinan atribut key

yang asli (clientNo) dalam relasi yang terpisah, seperti yang ditunjukkan pada tabel 2.8. Primary key diidentifikasi untuk relasi yang baru, dan hasil dari relasi 1NF adalah sebagai berikut:

(39)

Client (clientNo, cName)

PropertyRentalOwner (clientNo, propertyNo, pAddress,rentStart, rentFinish, rent,

ownerNo, oName)

Kedua relasi Client dan PropertyRentalOwner berada dalam bentuk 1NF bila terdapat nilai tunggal pada irisan untuk tiap baris dan kolom. Relasi Client

mengandung data yang menggambarkan klien dan relasi PropertyRentalOwner

mengandung data yang menggambarkan properti yang disewa oleh klien dan pemilik properti. Akan tetapi, relasi yang ditunjukkan pada tabel 2.8 mengandung beberapa redundansi data yang menyebabkan update anomaly (Connolly, 2002). Tabel 2.8 Relasi Client dan PropertyRentalOwner pada 1NF

a. Client

clientNo cName

CR76 John Kay CR56 Aline Stewart

b. PropertyRentalOwner

clientNo propertyNo pAddress rentStart rentFinish rent ownerNo oName

CR76 PG4 6 Lawrence St, Glasgow 1-Jul-00 31 – Aug – 01 350 CO40 Tina Murphy CR76 PG16 5 Novar Dr,

Glasgow 1-Sep-01 1-Sep-02 450 CO93 Tony Shaw CR65 PG4 6 Lawrence St, Glasgow 1-Jul-00 31 – Aug – 01 350 CO40 Tina Murphy CR65 PG36 2 Manor Rd,

Glasgow 10-Oct-00 1-Dec-01 375 CO93 Tony Shaw CR65 PG16 5 Novar Dr,

Glasgow 1-Sep-01 1-Sep-02 450 CO93 Tony Shaw

2.4.4 Bentuk Normal Kedua (2NF)

Menurut Connolly (2002), bentuk normal kedua (2NF) adalah sebuah relasi yang berada dalam bentuk normal pertama dimana setiap atribut

(40)

ketergantungan fungsional A → B dikatakan bergantung fungsional secara penuh apabila pemindahan beberapa atribut dari A menyebabkan tidak adanya ketergantungan lagi. Sebuah ketergantungan fungsional A → B dikatakan tergantung sebagian (partial dependent) jika terdapat beberapa atribut yang bisa dihilangkan dari A dan ketergantungan.yang ada masih terjaga. Sebagai contoh, ketergantungan fungsional berikut:

staffNo, sName branchNo

Ketergantungan fungsional dikatakan benar bila tiap nilai (staffNo, sName) dihubungkan dengan nilai tunggal dari branchNo. Akan tetapi, tidak bisa dikatakan mempunyai ketergantungan fungsional secara penuh, karena branchNo

juga mempunyai ketergantungan fungsional terhadap bagian dari (staffNo,

sName), yaitu staffNo.

Jika masih ada ketergantungan sebagian, atribut yang bergantung fungsional dari suatu relasi dihilangkan dengan menempatkan atribut tersebut ke dalam relasi yang baru bersamaan dengan salinan determinant atribut-atributnya. Proses normalisasi dari relasi bentuk normal pertama ke bentuk normal kedua dapat dilihat pada contoh berikut dengan menggunakan relasi ClientRental pada tabel 2.8.

Pada gambar 2.1 ditunjukkan ketergantungan fungsional (fd1 sampai fd6) dari relasi ClientRental dengan (clientNo, propertyNo) sebagai primary key. Walaupun relasi ClientRental mempunyai tiga candidate key, namun yang diperhatikan adalah hubungan di antara ketergantungan tertentu terhadap primary key, karena definisi bentuk normal kedua hanya menyatakan hubungan terhadap

(41)

primary key dari sebuah relasi.

Gambar 2.1 Ketergantungan Fungsional pada relasi ClientRental (Connolly, 2002)

Relasi ClientRental mempunyai ketergantungan fungsional sebagai berikut:

fd1 clientNo, propertyNo rentStart, rentFinish (Primary Key)

fd2 clientNocName (Partial dependency)

fd3 propertyNopAddress, rent, ownerNo, oName (Partial dependency)

fd4 ownerNooName (Transitive dependency)

fd5 clientNo, rentStartpropertyNo, pAddress,

rentFinish, rent, ownerNo, oName (Candidate key)

fd6 propertyNo, rentStartclientNo, cName, rentFinish (Candidate key) Proses normalisasi pada relasi ClientRental dimulai dengan mengecek apakah relasi tersebut berada dalam bentuk normal kedua dengan mengidentifikasi keberadaan ketergantungan sebagian terhadap primary key. Atribut Klien (cName) bergantung sebagian pada primary key, yaitu hanya pada atribut clientNo

(42)

bergantung sebagian pada primary key, yaitu hanya pada atribut propertyNo

(ditunjukkan pada fd3). Atribut sewa properti (rentStart dan rentFinish) bergantung penuh pada semua primary key, yaitu atribut clientNo dan propertyNo

(ditunjukkan pada fd1).

Gambar 2.1 menunjukkan adanya ketergantungan transitif pada primary key (ditunjukkan pada fd4). Walaupun ketergantungan transitif dapat juga menyebabkan update anomaly, tetapi keberadaanya tidak mempengaruhi sebuah relasi dalam 2NF. Ketergantungan seperti ini akan dihilangkan pada bentuk normal ketiga (3NF).

Identifikasi ketergantungan sebagian dalam relasi ClientRental

menunjukkan bahwa relasi tersebut tidak berada dalam bentuk normal kedua. Untuk mengubah relasi ClientRental ke bentuk normal kedua perlu dibuat relasi baru dimana atribut non-primary key dihilangkan bersamaan dengan salinan dari bagian primary key yang memiliki ketergantungan fungsional secara penuh. Hasil dari pembuatan relasi baru adalah Client, Rental, dan PropertyOwner, seperti yang ditunjukkan pada tabel 2.9. Ketiga relasi ini sudah dalam bentuk normal kedua dimana setiap atribut non-primary key bergantung fungsional secara penuh terhadap primary key pada relasi tersebut. Relasi yang dibentuk adalah sebagai berikut:

Client (clientNo, cName)

Rental (clientNo, propertyNo, rentStart, rentFinish)

(43)

Tabel 2.9 Relasi dalam 2NF yang diperoleh dari relasi ClientRental a. Client clienNo cName CR76 John Kay CR56 Aline Stewart b. Rental

clientNo propertyNo rentStart rentFinish

CR76 PG4 1-Jul-00 31- Aug - 01 CR76 PG16 1-Sep-01 1-Sep-02 CR65 PG4 1-Jul-00 31- Aug - 01 CR65 PG36 10-Oct-00 1-Dec-01 CR65 PG16 1-Sep-01 1-Sep-02 c. PropertyOwner

propertyNo pAddress rent ownerNo oName

PG4 6 Lawrence St, Glasgow 350 CO40 Tina Murphy

PG16 5 Novar Dr, Glasgow 450 CO93 Tony Shaw

PG4 6 Lawrence St, Glasgow 350 CO40 Tina Murphy

PG36 2 Manor Rd, Glasgow 375 CO93 Tony Shaw

PG16 5 Novar Dr, Glasgow 450 CO93 Tony Shaw

2.4.5 Bentuk Normal Ketiga (3NF)

Menurut Connolly (2002), bentuk normal ketiga (3NF) adalah sebuah relasi yang berada dalam bentuk pertama dan kedua dimana tidak ada atribut

non-primary key yang bergantung secara transitif terhadap primary key atau candidate

key. Meskipun relasi bentuk normal kedua memiliki redundansi yang lebih sedikit dibanding dengan bentuk normal pertama, namun masih memungkinkan terjadinya update anomaly. Update anomaly disebabkan karena sebuah ketergantungan transitif, oleh sebab itu perlu dihilangkan ketergantungan tersebut dengan bentuk normal ketiga. Ketergantungan transitif adalah suatu kondisi dimana A, B, C merupakan atribut-atribut dari sebuah relasi yang bila A → B dan B → C, sehingga C bergantung transitif terhadap A melalui B (dengan syarat A tidak bergantung fungsional terhadap B atau C).

(44)

Proses normalisasi dari 2NF ke 3NF adalah untuk menghilangkan ketergantungan transitif. Apabila ketergantungan transitif masih ada, perlu dihilangkan atribut sebuah relasi yang memiliki ketergantungan transitif dengan menempatkan atribut tersebut pada sebuah relasi baru bersama dengan salinan

determinant. Untuk lebih jelasnya dapat dilihat pada contoh berikut.

Ketergantungan fungsional untuk relasi Client, Rental, dan PropertyOwner

diperoleh dari contoh sebelumnya (seperti yang ditunjukkan pada tabel 2.7):

Client

fd2 clientNo cName (primary key)

Rental

fd1 clientNo, propertyNo rentStart, rentFinish (primary key)

fd5’ clientNo, rentStart propertyNo, rentFinish (candidate key) fd6’ propertyNo, rentStart clientNo, rentFinish (candidate key)

PropertyOwner

fd3 propertyNo pAddress, rent, ownerNo, oName (partial dependency) fd4 ownerNo oName (transitive dependency)

Semua atribut non-primary key dalam relasi Client dan Rental memiliki ketergantungan fungsional hanya pada primary key dan kedua relasi ini tidak memiliki ketergantungan transitif, sehingga kedua relasi ini sudah berada dalam bentuk normal ketiga (3NF). Ketergantungan fungsional (fd) yang diberi tanda petik (seperti fd5’), menunjukkan bahwa ketergantungan tersebut telah diubah dengan membandingkan ketergantungan fungsional yang aslinya. Semua atribut

(45)

primary key, kecuali oName, yang juga tergantung pada ownerNo (seperti ditunjukkan pada fd4). Hal ini merupakan salah satu contoh ketergantungan transitif, yang terjadi ketika atribut non-primary key (oName) tergantung pada satu atau lebih atribut non-primary key (ownerNo). Ketergantungan transitif telah diidentifikasi sebelumnya pada gambar 2.1. Untuk mengubah relasi

PropertyOwner ke bentuk normal ketiga, perlu dihilangkan ketergantungan

transitif ini dengan membuat dua relasi baru yaitu PropertyForRent dan Owner, seperti yang ditunjukkan pada tabel 2.8. Relasi baru yang terbentuk tersebut adalah:

PropertyForRent (propertyNo, pAddress, rent, ownerNo)

Owner (ownerNo, oName)

Tabel 2.10 Relasi 3NF yang diperoleh dari relasi PropertyOwner

a. PropertyForRent

propertyNo pAddress rent ownerNo

PG4 6 Lawrence St, Glasgow 350 CO40 PG16 5 Novar Dr, Glasgow 450 CO93 PG36 2 Manor Rd, Glasgow 375 CO93

b. Owner

ownerNo oName

CO40 Tina Murphy CO93 Tony Shaw

Relasi PropertyForRent dan Owner sudah dalam bentuk normal ketiga dimana sudah tidak ada lagi ketergantungan transitif terhadap primary key. Relasi

ClientRental pada tabel 2.6 telah diubah dengan proses normalisasi menjadi empat

relasi dalam bentuk normal ketiga. Gambar 2.2 menunjukkan proses dimana relasi asli 1NF didekomposisikan menjadi relasi 3NF. Hasil dari relasi 3NF yang terbentuk adalah:

(46)

Gambar 2.2 Dekomposisi relasi ClientRental (Connolly, 2002)

Relasi asli ClientRental ditunjukkan pada tabel 2.6 dapat dibuat kembali dengan menggabungkan relasi Client, Rental, PropertyForRent, dan Owner. Hal ini dapat dilakukan dengan mekanisme primary key atau foreign key. Sebagai contoh, atribut ownerNo adalah primary key pada relasi Owner, dan juga ada pada relasi PropertyForRent sebagai foreign key. Atribut ownerNo bertindak sebagai

primary key atau foreign key mengijinkan penggabungan antara relasi

PropertyForRent dan Owner untuk mengidentifikasi nama dari PropertyOwner.

Atribut clientNo adalah primary key dari relasi Client dan juga ada pada relasi Rental sebagai foreign key. Perlu diketahui, atribut clientNo pada relasi

Rental memiliki dua peran sebagai foreign key dan sebagai bagian primary key

dari relasi ini. Sama halnya dengan atribut propertyNo adalah primary key dari relasi PropertyForRent, dan juga berada pada relasi Rental yang bertindak sebagai

foreign key dan bagian primary key untuk relasi ini. Relasi Client, Rental,

(47)

Tabel 2.11 Relasi keseluruhan 3NF yang diperoleh dari relasi ClientRental a. Client clientNo cName CR76 John Kay CR56 Aline Stewart b. Rental

clientNo propertyNo rentStart rentFinish

CR76 PG4 1-Jul-00 31- Aug – 01 CR76 PG16 1-Sep-01 1-Sep-02 CR65 PG4 1-Jul-00 31- Aug – 01 CR65 PG36 10-Oct-00 1-Dec-01 CR65 PG16 1-Sep-01 1-Sep-02 c. PropertyForRent

PropertyNo pAddress rent ownerNo

PG4 6 Lawrence St, Glasgow 350 CO40

PG16 5 Novar Dr, Glasgow 450 CO93

PG36 2 Manor Rd, Glasgow 375 CO93

d. Owner

ownerN ame

CO40 Tina Murphy

CO93 Tony Shaw

2.5 Menampilkan Ketergantungan

Untuk menampilkan ketergantungan menggunakan tiga struktur, Ketergantungan Graf/ Dependency Graph, Ketergantungan Matriks/ Dependency Matrix (DM), dan Matriks Graf Berarah/Directed Graph Matrix(DG) untuk menunjukkan dan memanipulasi ketergantungan antara atribut dari relasi (Bahmani, 2008).

2.5.1 Diagram Ketergantungan Graf

Dengan ketergantungan fungsional kita bisa memantau semua hubungan antara atribut yang berbeda dari tabel. Kita dapat menunjukkan grafik ketergantungan dengan menggunakan satu set simbol-simbol sederhana. Dalam

(48)

grafik, panah adalah simbol yang paling penting yang digunakan. Selain itu, dalam cara kita menunjukkan grafik relasi, garis (putus-putus) horisontal memisahkan key sederhana (yaitu, atribut) dari kunci komposit (yaitu, kunci terdiri dari lebih dari satu atribut). Sebuah grafik ketergantungan yang dihasilkan menggunakan aturan berikut.

a. Setiap atribut dari tabel dikelilingi dan semua atribut dari tabel dibuat pada tingkat terendah (yaitu, bawah) dari grafik.

b. Sebuah garis horizontal digambarkan di atas semua atribut.

c. Setiap kunci komposit (jika ada) dikelilingi dan semua tombol komposit tenggelam di atas garis horizontal.

d. Semua panah ketergantungan fungsional diambil.

e. Semua aturan ketergantungan refleksivitas yang digambar menggunakan panah putus-putus (misalnya AB → A, AB → B).

Pertimbangkan sekumpulan ketergantungan fungsional pada Contoh 2 untuk relasi r.

Contoh 2: FD = {A → BCD, C → DE, EF → DG, D →G}

Gambar 2.3 : Menampilkan Graf (Bahmani, 2008).

Jika kita dapat memperoleh semua ketergantungan antara kunci penentu kita dapat memproduksi semua ketergantungan antara semua atribut dari relasi.

(49)

Ketergantungan ini diwakili dengan menggunakan Ketergantungan Matriks (DM). Menggunakan algoritma path finding dan aturan transitivitas Armstrong ketergantungan baru ditemukan dari kumpulan ketergantungan yang ada. Ini adalah dasar dari algoritma normalisasi yang akan dibahas di bawah ini (Bahmani, 2008).

2.5.2 Ketergantungan Matriks

Menurut Bahmani (2008) Dari Ketergantungan Graf, Ketergantungan Matrix (DM) yang sesuai dihasilkan sebagai berikut:

i. Mendefinisikan matriks DM [n] [m], di mana n = jumlah Kunci Penentu.

m = jumlah Kunci Sederhana. ii. Anggaplah bahwa β ⊆ α, α ⊄ γ dan

β, γ ∈ {kumpulan kunci Sederhana} α ∈ {kumpulan Kunci Penentu}

iii. Menetapkan elemen DM sebagai berikut: Jika α → β  DM[α][β] = 2,

jika α → γ  DM[α][γ] = 1, jika tidak  DM[α][γ] = 0,

DM untuk Contoh 1 ditunjukkan pada Tabel 2.12. Tabel 2.12 Menunjukkan Ketergantungan Matrik

A B C D E F G A 2 1 1 1 0 0 0

C 0 0 2 1 1 0 0

D 0 0 0 2 0 0 1

Gambar

Gambar 2.1 Ketergantungan Fungsional pada relasi ClientRental   (Connolly, 2002)
Tabel 2.9 Relasi dalam 2NF yang diperoleh dari relasi ClientRental  a.  Client   clienNo  cName  CR76   John Kay   CR56   Aline Stewart   b
Tabel 2.10 Relasi 3NF yang diperoleh dari relasi PropertyOwner a.  PropertyForRent
Tabel 2.11 Relasi keseluruhan 3NF yang diperoleh dari relasi ClientRental  a.  Client   clientNo   cName   CR76   John Kay   CR56   Aline Stewart      b
+7

Referensi

Garis besar

Dokumen terkait

inframerah thermal yang dapat mendeteksi suhu permukaan. Penelitian ini dilakukan di Kabupaten Pati. Adapun data yang digunakan adalah data Landsat 7 dan Landsat 8. Tujuan

Kebutuhan system pencahayaan alami (matahari) dan buatan pada suatu ruangan harus di pertimbangkan karena berkaitan erat dengan kegiatan yang di

Geometry and Building Flat (GBF) yang dapat digunakan sebagai media pendukung belajar siswa dalam pelajaran matematika khususnya pada materi bangun ruang dan

Perkembangan sistem pembayaran secara umum masih tetap dapat memenuhi kebutuhan kegiatan ekonomi di Jawa Tengah meskipun mengalami penurunan bila dibandingkan

prevalensi hipertensi di RSUD Sukoharjo sebanyak 9,4% dan mengalami peningkatan sebanyak 84% selama 3 tahun terakhir antara tahun 2012-2014.Tujuan dari penelitian ini

35 Akuntansi Pemerintahan Nur Hidayat Fatwa Arif, SE., M.Si.. Ihsan Said Ahmad,

Pada Bab ini berisi tentang latar belakang penulisan laporan Tugas Akhir, identifikasi masalah-masalah yang muncul di tempat pengamatan, pencarian permasalahan yang terkait

Data ini juga sangat sinkron dengan data lain yang menyatakan bahwa tujuan utama dari mayoritas responden menggunakan Internet adalah untuk mendapatkan informasi ilmiah..