8 BAB 2 LANDASAN TEORI 2.1 Pengertian Database Menurut Connolly (2010, p65), database adalah kumpulan data dan deskripsi data yang terhubung secara logika serta dirancang untuk memenuhi kebutuhan informasi untuk suatu organisasi. 2.2 Perancangan Database Menurut Connolly (2010, p466), perancangan database adalah proses untuk menciptakan desain database yang akan mendukung kebutuhan dan tujuan suatu perusahaan. Perancangan database dibagi dalam tiga jenis fase, yaitu : 1. Conceptual Database Design. 2. Logical Database Design. 3. Physical Database Design. Menurut Elmasri dan Navathe (2004, p366), perancangan database adalah merancang struktur logis dan fisik dari satu atau lebih database untuk mengakomodasi kebutuhan informasi pengguna dalam sebuah organisasi untuk satu aplikasi. 2.3 Functional Dependencies Menurut Elmasrie dan Navathe (2004, p304), functional dependencies ialah pembatas antara dua set atribut dari database, 9 functional dependencies dibagi menjadi 3, yaitu full functional dependency, partial dependency dan transitive dependency. a. Full Functional Dependency Atribut yang bergantung seluruhnya kepada atribut yang merupakan primary key. b. Partial Dependency Atribut yang bergantung sebagian kepada atribut yang merupakan primary key. c. Transitive Dependency Atribut yang bergantung kepada atribut yang bukan merupakan primary key. 2.4 Normalisasi Menurut Connolly (2010, p428), normalisasi merupakan suatu teknik untuk menghasilkan sekumpulan hubungan dengan properti yang diinginkan, yang memberikan kebutuhan data terhadap suatu perusahaan. Tujuan dari normalisasi adalah sebagai berikut : a. Meminimalkan jumlah atribut yang diperlukan untuk mendukung kebutuhan data dari suatu perusahaan. b. Untuk memperoleh atribut yang bersifat functional dependencies. c. Untuk menghilangkan data yang bersifat redundancy pada tiap atribut. 10 2.4.1 Unnormalized Normal Form (UNF) Menurut Connolly (2010, p430), unnormalized form (UNF) merupakan sebuah tabel yang mengandung satu atau lebih repeating group. Tabel 2. 1 Contoh Normalisasi UNF Mul STATUS KAWIN B JENIS KELAMIN L TANGGAL LAHIR 1990 1301020343 Adi S L 1992 3 1301065414 Vieta S P 1990 4 1301065976 Sanjaya S L 1991 TPS KELURAHAN KECAMATAN KOTA NO NIK NAMA L0033001 Kebon Jeruk Kebon Jeruk Jakarta Barat 1 1301020353 2 L0055001 Joglo Kembangan L0172002 Pulo Gadung Pulo Gadung 2.4.2 Jakarta Barat Jakarta Timur First Normal Form (1NF) Menurut Connolly (2010, p430), First Normal Form (1NF) merupakan sebuah relasi dimana setiap potongan baris dan kolom mengandung satu dan mungkin hanya satu nilai, dan proses untuk mengubah tabel UNF ke dalam First Normal Form (1NF) adalah dengan cara harus diidentifikasi dan menghilangkan bagian yang mengandung repeating group pada tabel. Tabel 2. 2 Contoh Normalisasi 1NF Mul STATUS KAWIN B JENIS KELAMIN L TANGGAL LAHIR 1990 1301020343 Adi S L 1992 3 1301065414 Vieta S P 1990 4 1301065976 Sanjaya S L 1991 TPS KELURAHAN KECAMATAN KOTA NO NIK NAMA L0033001 Kebon Jeruk Kebon Jeruk 1 1301020353 L0033001 Kebon Jeruk Kebon Jeruk 2 L0055001 Joglo Kembangan L0172002 Pulo Gadung Pulo Gadung Jakarta Barat Jakarta Barat Jakarta Barat Jakarta Timur 11 2.4.3 Second Normal Form (2NF) Menurut Connolly (2010, p430), Second Normal Form (2NF) dapat dihasilkan dengan cara melihat apakah ada atribut yang bukan merupakan primary key dapat merupakan fungsi dari sebagian primary key (partial dependence). Dalam bentuk normal kedua setiap atribut yang yang bergantung secara parsial harus dipisahkan. Bentuk normal akan diperoleh bila setiap atribut yang bukan merupakan primary key dari suatu tabel secara penuh yang merupakan functional dependence dari primary key itu. Tabel 2. 3 Contoh Normalisasi 2NF TPS KELURAHAN KECAMATAN KOTA NIK NAMA STATUS KAWIN JENIS KELAMIN TANGGAL LAHIR L0033001 Kebon Jeruk Kebon Jeruk 1301020353 Mul B L 1990 L0033001 Kebon Jeruk Kebon Jeruk 1301020343 Adi S L 1992 L0055001 Joglo Kembangan Jakarta Barat Jakarta Barat Jakarta Barat 1301065414 Vieta S P 1990 L0172002 Pulo Gadung Pulo Gadung Jakarta Timur 1301065976 Sanjaya S L 1991 2.4.4 Third Normal Form (3NF) Menurut Connolly (2010, p430) didalam Third Normal Form (3NF) akan secara langsung dilakukan pengujian dengan cara melihat apakah terdapat atribut bukan key yang bergantung fungsional terhadap atribut yang bukan key yang lain atau disebut (transitive dependence). Dengan cara yang sama, maka setiap transitive dependence harus dipisahkan. Third Normal Form (3NF) dapat dikatakan sudah normal apabila anomali yang ada didalamnya sudah tidak ada, pada kasus tertentu normalisasi dilakukan sampai BCNF. 12 Tabel 2. 4 Contoh Normalisasi 3NF TPS NIK L0033001 L0033001 L0055001 L0172002 1301020353 1301020343 1301025414 1301065976 TPS KELURAHAN KECAMATAN KOTA L0033001 L0033001 L0055001 L0172002 Kebon Jeruk Kebon Jeruk Joglo Pulo Gadung Kebon Jeruk Kebon Jeruk Kembangan Pulo Gadung Jakarta Barat Jakarta Barat Jakarta Barat Jakarta Timur NIK NAMA STATUS KAWIN JENIS KELAMIN TANGGAL LAHIR 1301020353 1301020343 1301065414 1301065976 Mul Adi Vieta Sanjaya B S S S L L P L 1990 1992 1990 1991 KODE STATUS KAWIN STATUS KAWIN KODE JENIS KELAMIN JENIS KELAMIN B S P Belum Sudah Pernah L P - Laki-laki Perempuan - 2.5 Entity relationship Menurut Connolly (2010, p372), entity relationships model ialah pendekatan topdown untuk merancang database yang diawali dengan melakukan identifikasi data penting yang disebut entitas dan relasi antar data yang harus diwakili dalam model itu. Menurut Whitten (2004, p295), entity relationships adalah model data yang menggunakan beberapa notasi untuk menggambarkan data dalam hubugan antara hal 13 perusahaan, peserta dan hubungan antara entity dan relationship yang menggambarkan data. 2.5.1 Pengertian Entity Menurut Connolly (2010, p372), entity types adalah sekelompok obyek dengan sifat yang sama, yang diidentifikasi oleh perusahaan memiliki keberadaan yang bebas. Menurut Whitten (2004, p295), entity adalah kelompok orang, tempat, benda, peristiwa, atau konsep tentang apa yang kita butuhkan untuk menangkap dan menyimpan data. Gambar 2. 1 Contoh Entitas 2.5.2 Pengertian Relationships Menurut Connolly (2010, p374), relationship type adalah sekelompok hubungan yang memiliki satu atau lebih entity. Menurut Whitten (2004, p295), relationship adalah asosiasi bisnis alami yang ada antara satu atau lebih entitas. 14 Gambar 2. 2 Contoh Relationship 2.5.3 Pengertian Attribute Menurut Connolly (2010, p379), attribute adalah properti dari sebuah entity atau sebuah relationship. Atribut dapat diklasifikasikan menjadi beberapa jenis, yaitu : 2.5.3.1 Simple and Composite Attributes Menurut Connolly (2010, p379), sebuah atribut yang terdiri dari komponen tunggal dengan keberadaan yang independen. 2.5.3.2 Single-Valued and Multi-Valued Attributes Menurut Connolly (2010, p380), sebuah atribut yang memegang nilai tunggal untuk setiap kemunculan suatu entitas. 2.5.4 Pengertian Key Menurut Connolly (2010, p381), key terdiri dari beberapa jenis, yaitu: 2.5.4.1 Candidate key Set minimal atribut yang secara unik mengidentifikasi setiap terjadinya suatu tipe entitas, dan dapat mengenali setiap kejadian didalam tipe entity. Candidate key tidak boleh NULL dan setiap entity mungkin punya lebih dari satu candidate key. 15 2.5.4.2 Primary key Candidate key yang dipilih untuk mengidentifikasi secara unik setiap kejadian atau sebuah tipe entitas. 2.5.4.3 Composite key Candidate key yang terdiri dari dua atribut atau lebih. 2.5.4.4 Alternate key Candidate key yang tidak terpilih menjadi primary key, sama dengan secondary key. 2.5.4.5 Strong and Weak Entity Menurut Connolly (2010, p383), entitas dapat dibedakan berdasarkan jenisnya, yaitu entitas dengan tipe kuat dan entitas dengan tipe yang lemah. 1. Strong Entity Type, adalah sebuah tipe entitas yang tidak tergantung pada keberadaan beberapa jenis entitas lain. 2. Weak Entity Type, adalah sebuah tipe entitas yang bergantung pada keberadaan beberapa jenis entitas lain. 2.5.4.8 Structural Constraints Menurut Connolly (2010, p385), tipe utama dari constraint pada relasi disebut multiplicity. Multiplicity adalah jumlah atau batas dari kejadian yang mungkin dari suatu entitas yang berelasi dengan suatu kejadian tunggal sebuah entitas dan terkait suatu relasi tertentu. Derajat binary merupakan derajat yang paling sering digunakan dalam menentukan relasi. Relasi biner secara umum merujuk pada one-to-one (1:1), one-tomany (1:*), atau many-to-many (*:*). 16 Gambar 2. 3 Contoh ERD 2.6 Conceptual Database Design Menurut Connolly (2010, p467) conceptual database design adalah proses membangun model data yang digunakan di dalam suatu perusahaan, bersifat independent dari semua pertimbangan fisikal. Tahap desain konseptual database yang dimulai dengan membuat model data konseptual dari perusahaan dengan rincian implementasi seperti target DBMS, program aplikasi, bahasa pemrograman, hardware platform, performance pertimbangan fisikal lain nya. Tahapan-tahapan conceptual database design adalah : 1. Mengidentifikasi tipe entitas. 2. Mengidentifikasi tipe relationship. 3. Mengasosiasikan atribut-atribut dengan tipe relationship. 4. Menentukan atribut domain nya. dan segala 17 5. Menentukan candidate key, primary key, dan alternate key. 6. Sebaiknya menggunakan konsep model yang ditingkatkan. 7. Memeriksa model untuk redundancy. 8. Memvalidasikan konseptual data model terhadap transaksi pengguna. 9. Melakukan review konseptual data model dengan pengguna. Gambar 2. 4 Contoh Konseptual Database Design 2.7 Logical Database Design Menurut Connolly (2010, p467), perancangan basis data logikal adalah proses membangun model data yang digunakan di dalam suatu perusahaan, bersifat independent terhadap DBMS tertentu dan segala pertimbangan fisik lainnya. Tahap desain logikal database yang dimulai dengan membuat maps konseptual database design pada model data logikal, model data logikal merupakan sumber informasi untuk tahapan desain fisikal. Tahapan-tahapan logical database design adalah : 1. Menghilangkan fitur-fitur yang tidak kompatibel dengan model data relasional. 2. Melakukan relasi untuk model data logikal. 18 3. Melakukan validasi relasi dengan menggunakan normalisasi. 4. Melakukan validasi terhadap transaksi user. 5. Memeriksa kendala integritas. 6. Melakukan review logikal data model dengan user. Gambar 2. 5 Contoh Logikal Database Design 2.8 Physical Database Design Menurut Connolly (2010, p467) perancangan basis data fisikal adalah proses untuk menghasilkan deskripsi implementasi database pada penyimpanan sekunder (secondary storage) menggambarkan hubungan dasar, organisasi file, dan indeks yang digunakan untuk mendapatkan akses yang cepat terhadap data dan setiap integrity constraints terkait dan langkah-langkah keamanan yang ada. Tahapan-tahapan physical database design adalah : 1. Menerjemahkan model data logikal global sesuai dengan DBMS yang digunakan. 19 2. Mendesain repsresentasi atau gambaran dari penurunan data. Contoh query physical database design : CREATE TABLE Pemilih( ID_KTP CHAR(19) PRIMARY KEY NOT NULL, Nama VARCHAR(50) NOT NULL, Tempat_lahir VARCHAR(20), Tanggal_lahir DATE, Jenis_Kelamin VARCHAR(6) NOT NULL, RT INT NOT NULL, RW INT NOT NULL, Kelurahan VARCHAR(20) NOT NULL, Kecamatan VARCHAR(20) NOT NULL, CONSTRAINT cs1 CHECK (LEN(ID_KTP)=19), CONSTRAINT cs2 CHECK (ID_KTP like '[0-9][0-9].[0-9][0-9][0-9][0-9]. [0-9][0-9][0-9][0-9][0-9][0-9]. [0-9][0-9][0-9][0-9]'), ) CREATE TABLE Pemilihan( ID_Pemilihan CHAR(3) PRIMARY KEY NOT NULL, ID_KTP CHAR(19) NOT NULL, ID_calon_kepala_daerah CHAR(3) NOT NULL, Tanggal_voting DATE, Waktu_Voting TIME, FOREIGN KEY ID_KTP REFERENCES Masyarakat ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY ID_calon_kepala_daerah REFERENCES calon_kepala_daerah ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT cs7 CHECK (LEN(ID_Voting)=3), CONSTRAINT cs8 CHECK (ID_Voting like 'V.[0-9][0-9].[09][0-9].[0-9][0-9][0-9][0-9]'), ) CREATE TABLE calon_kepala_daerah_dan_calon_wakil_ Kepala_daerah( ID_calon_kepala_daerah CHAR(3) PRIMARY KEY NOT NULL, Nama_calon_kepala_daerah VARCHAR(50) NOT NULL, Nama_calon_wakil_kepala_daerah VARCHAR(50) NOT NULL, Tingkat_Pendidikan VARCHAR(10) NOT NULL, Visi VARCHAR(100) NOT NULL, Misi VARCHAR(100) NOT NULL, Foto IMAGE NOT NULL, CONSTRAINT cs3 CHECK (LEN(ID_Calon_Gubernur)=3), CONSTRAINT cs4 CHECK (ID_calon_kepala_daerah like 'G[09][0-9]'), ) Aplikasi web harus dibangun dalam arsiektur client-server, ada dua macam jenis arsitektur client-server, yaitu : 20 1. Two Tier Client Server Architecture Dalam model client/server, pemrosesan pada sebuah aplikasi terjadi pada client dan server. Client atau server adalah sebuah aplikasi two-tier dengan banyak client dan sebuah server yang dihubungkan melalui sebuah jaringan. Gambar 2. 6 Contoh Two Tier Client Server 2. Three Tier Client Server Architecture Model three-tier dikembangkan untuk menjawab keterbatasan pada arsitektur client/server. Dalam model ini, pemrosesan disebarkan di dalam tiga lapisan. Keuntungan dari Three Tier Architecture ialah : • Pemeliharaan aplikasinya terpusat. 21 • Mudah untuk diganti atau dimodifikasi salah satu tier nya tanpa mempengaruhi yang lainnya. • Memisahkan logika bisnis dengan fungsi dari database. Gambar 2. 7 Contoh Three Tier Client Server 2.9 Perancangan Web Database Menurut Eaglestone (2001, p262) pada bagian ini kita menggambarkaan sebuah metode untuk merancang sistem web database. Sistem web database adalah sistem dimana dipadukannya teknologi web dan tekonologi database. 22 Pertama yang harus kita lakukan adalah menggambarkan tahap desain database konvensional, namun terdapat dua hal yang harus ditambahkan, yaitu : 1. Web Page Design, hal ini meliputi : a. Menampilkan web data (Web data representation) yaitu mengambil data dari database atau data yang di input user. b. Kumpulan web data (Web data association) yaitu rancangan yang dibuat sedemikian rupa untuk digunakan sebagai petunjuk didalam maupun antara halaman web. c. Desain web antarmuka (Web interface design) yaitu fitur-fitur yang ada dihalam web, termasuk didalamnya penggunaan grafik dan animasi. 2. Perancangan hubungan antara Web Pages dan database a. Web database logical mapping Definisi antara mapping dengan data yang ditampilkan dalam halaman web dan data yang disimpan di dalam basis data. b. Web database physical mapping. Merupakan implementasi dari mekanisme dimana data melewati halaman web dan database. Web database design method merupakan serangkaian model yang menampilkan data yang disimpan kedalam halaman web dengan menambahkan data ke dalam database dengan tujuan untuk menyediakan cara yang sistematis untuk merancang data. Berikut ini merupakan gambar dari web database design method. 23 Gambar 2. 8 Contoh Web Database Design (Eaglestone and Ridley, 2001, p264) Tahapan-tahapan dalam web database design yaitu : 1. Requirement Analysis Merupakan proses mengumpulkan dan menganalisis informasi mengenai bagian dari organisasi yang didukung oleh database yang terintegrasi dengan baik dan informasi ini digunakan untuk mengidentifikasi syarat-syarat untuk sistem baru. 24 2. Data Analysis Merupakan proses yang menggambarkan kegiatan organisasi yang dalam kaitannya dengan kejadian yang dapat di representasikan dan yang harus disimpan dalam database. 3. Web Data Analysis Merupakan proses mendefinisikan model konseptual dari informasi yang digambarkan didalam halaman web yang berasal dari database, Tujuan dari web data analysis adalah sebagai berikut : • Untuk mapping antara informasi yang digambarkan di halaman web dan disimpan ke dalam database. • Untuk memeriksa valid atau tidaknya database. • Untuk memverifikasi kedetailan suatu design dan implementasi. • Untuk menghindari kompleksitas suatu data. Gambar 2. 9 Contoh Konseptual Web Database Design 4. Logical database design Merupakan proses untuk mentranslasikan atau mendefinisikan model data logikal dan mengimplementasikannya ke dalam model konseptual database. 25 5. Logical Web Database Design Merupakan proses untuk mendefinisikan struktur data dari halaman web yang aktual, termasuk link didalam suatu halaman web ke halaman yang lain. 6. Physical Database Design. Merupakan fase yang ada didalam proses design, dimana desainer dapat memutuskan bagaimana database dapat disimpan kedalam database management system (DBMS). 7. Physical Web Database design. Merupakan proses pengimplementasian menghubungkannya ke dalam database. halaman web dan 26 Gambar 2. 10 Contoh Daftar Pilihan Kandidat Prototyping 2.10 Menurut Connolly (2010, p333) prototyping adalah membangun sebuah model kerja dari aplikasi database, adapun tujuan utama dari prototipe ini adalah untuk mengidentifikasi fitur-fitur yang ada pada sistem agar dapat bekerja dengan baik, atau kekurangan yang ada pada sistem serta memberikan saran untuk peningkatan kerja sistem. Ada dua macam strategi yang ada saat ini, yaitu : 1. Requirements prototyping 27 Menggunakan sebuah prototype untuk menentukan kebutuhan-kebutuhan dari aplikasi database yang diusulkan dan ketika persyaratan tersebut dapat dipenuhi, prototype tersebut tidak digunakan lagi. 2. Evolutionary prototype Digunakan untuk tujuan yang sama, namun perbedaan yang signifikan ialah prototipe dapat dikembangkan menjadi suatu aplikasi database.