BAB 2 LANDASAN TEORI 2.1 Teori-teori Umum 2.1.1 Data Menurut Turban Rainer Potter (2003, p352), Data adalah fakta mentah yang belum terorganisir untuk menjelaskan arti yang spesifik. Menurut Laudon(2003, p8), data merupakan aliran fakta yang mewakili kejadian yang terjadi dalam organisasi atau dalam lingkungan fisik sebelum mereka diatur menjadi sebuah bentuk yang dapat dimengerti dan digunakan oleh pengguna. Jadi, dapat disimpulkan bahwa data adalah fakta yang telah terjadi, memiliki arti, dan dapat disimpan serta dapat diatur sedemikian rupa sehingga dapat digunakan untuk berbagai tujuan. 2.1.2 Pengertian Basis Data Basis data (database) menurut Connolly dan Begg (2005,p15), basis data adalah sekumpulan data yang saling berhubungan dimana dirancang untuk mencapai informasi yang di perlukan dalam suatu organisasi. Artinya basis data adalah tempat penyimpanan data yang besar dimana bisa digunakan secara simultan atau secara bersamaan oleh banyak departemen dan pemakai lainnya (user). Di dalam basis data semua item data diintegrasikan untuk menghindarkan duplikasi data. Basis data tidak hanya mengandung data operasional organisasi, tetapi juga deskripsi dari data tersebut. 7 8 Basis data adalah kumpulan file yang saling terkait. File adalah kumpulan record yang serupa. Record merupakan kumpulan field yang disusun dalam format yang telah ditetapkan sebelumnya. Field adalah unit terkecil dari data yang disimpan pada sebuah file atau basis data (Whitten, 2004, p518). 2.1.3 Sistem Manajemen Basis Data Menurut Connoly dan Begg (2005,p16), sistem manajemen basis data (Database Management System) disingkat menjadi DBMS adalah sistem perangkat lunak yang dapat memungkinkan pemakai untuk mendefinisikan, membuat, dan memelihara basis data dan menyediakan control akses untuk basis data tersebut. DBMS berinteraksi dengan program aplikasi pemakai dan basis data. 2.1.3.1 Komponen DBMS Adapun komponen-komponen DBMS menurut Connoly (2005, p18), terdiri atas : 1. Hardware Untuk menjalankan DBMS dan aplikasi. Berupa personal computer, mainframe, dan jaringan komputer. Untuk menjalankan DBMS memerlukan kecepatan memory dan kapasitas harddisk tertentu. 2. Software Software mencakup DBMS, program aplikasi, dan sistem operasi. 9 3. Data Penghubung antar komponen mesin (hardware dan software) dengan komponen manusia (prosedur dan orang). 4. Prosedur Instruksi dan aturan yang mengatur perancangan dan penggunaan basis data. Berikut adalah kemungkinan-kemungkinan instruksi untuk : a. Log on ke database. b. Menggunakan sistem basis data tertentu. c. Start dan Stop DBMS. d. Membuat bacuk-up basis data. e. Menangani kesalahan-kesalahan perangkat keras dan perangkat lunak. f. Mengubah struktur tabel, mengatur kembali basis data, meningkatkan performa, atau menyimpan data. 5. Pengguna Semua orang yang terlibat sistem. Antara lain : a. DBA (Database Administrator) b. Database Designer. c. Application developer. d. End User. 10 DBMS menghasilkan fasilitas sebagai berikut : a. Mengijinkan pemakai untuk mendefinisikan basis data biasanya melalui Data Definition Language (DDL). DDL mengizinkan user untuk menspesifikasikan tipe data dan struktur serta batasan data yang dapat disimpan di basis data. b. Mengizinkan pemakai untuk melakukan insert, update, delete, dan retrieve data dari basis data biasanya melalui Data Manipulation Language (DML). c. Structured Query Language (SQL) Query Language yang saat ini digunakan sebagai standar umum pemakai basis data adalah SQL. d. Menghasilkan akses pengendalian basis data seperti : 1. Security system untuk membatasi penggunaan basis data. 2. Integrity system untuk menangani konsistensi penyimpanan data. 3. Control concurrency system untuk menangani penggunaan bersama basis data. 4. Control recovery system untuk menyimpan kembali basis data saat terjadi kesalahan pada perangkat keras maupun perangkat lunak. 5. User accessible catalog berisi deskripsi data di dalam basis data. 11 Selain itu menurut Connolly dan Begg (2005, p18), suatu DBMS menyediakan fasilitas lainnya yang dikenal sebagai suatu view mechanism. View mechanism memperbolehkan setiap pemakai (user) mempunyai view nya sendiri dari basis data (suatu view adalah didalam pokok suatu subset dari basis data). View mempunyai beberapa keuntungan lainnya, yaitu : a. View menyediakan suatu tingkatan (level) dari keamanan (security). View dapat dibentuk untuk meniadakan data dari beberapa pemakai yang sebaiknya tidak dilihat. b. View menyediakan suatu mekanisme untuk mengatur apa yang ditampilkan dari basis data. c. Suatu view dapat menghadirkan sebuah konsistensi, gambaran yang tidak berubah dari struktur basis data, bahkan dengan kondisi jika yang mendasari basis data diubah (sebagai contoh, fields dari data yang ditambah atau dihapus, hubungan yang berubah, file-file yang di-split, restrukturisasi, atau penamaan ulang). 2.1.3.2 Keuntungan dan Kerugian DBMS Menurut McLeod (2004, p152), keuntungan DBMS adalah sebagai berikut : 1. Mengurangi pengulangan data. Dalam suatu DBMS tidak ada duplikasi data. 12 2. Independenis data. Spesifikasi data disimpan dalam skema daripada dalam tiap program aplikasi sehingga perubahan dapat pada struktur data tanpa mempengaruhi data yang lain. 3. Mengintegrasi data dari beberapa file. Adanya gabungan data yang terkumpul dalam suatu file. 4. Pengambilan data dan informasinya cepat. Hubungan logis dan DML serta query language memungkinkan pengguna untuk mengambilkan data dalam hitungan detik atau menit. 5. Meningkatkan keamanan. Baik DBMS mainframe maupun komputer mikro dapat menyertakan beberapa lapisan keamanan seperti kata sandi (password), direktori pemakai, dan bahasa sandi (encryption). Data yang disimpan dan dikelola dalam DBMS juga lebih aman daripada data lain dalam perusahaan. Sedangkan kerugian DBMS adalah sebagai berikut : a. Piranti lunak yang mahal DBMS mainframe masih sangat mahal. b. Konfigurasi perangkat keras yang besar DBMS memerlukan kapasitas penyimpanan primer dan sekunder yang lebih besar. c. Mempekerjakan dan mempertahankan staff DBA (Database 13 Administrator) DBMS memerlukan pengetahuan yang khusus agar dapat memanfaatkan kemampuannya sacara penuh. 2.1.3.3 Karakteristik dari DBMS dan Basis Data Menurut Atzeni (2003,p4), DBMS dan basis data memiliki karakteristik sebagai berikut : a. Basis data dapat berukuran besar Basis data dapat mengandung ribuan hingga jutaan bytes, secara umum, lebih besar daripada memori utama yang tersedia. Sebagai hasilnya, DBMS harus mengatur data dalam secondary memory. b. Basis data dapat digunakan bersama-sama Berbagai aplikasi dan user harus bisa mendapatkan akses ke data yang bersifat umum. c. Database are persistent Basis data memiliki waktu hidup yang tidak terbatas untuk menjalankan sebuah program yang digunakan. d. DBMSs ensure reliability Kapasitas dari sistem berguna untuk melestarikan isi dari basis data. Dalam kasus ini kegagalan perangkat keras dan lunak. e. DBMS menjamin kerahasiaan data Setiap user yang mengatur dengan menggunakan user name 14 yang spesifik, pengguna tersebut dapat mengakses ke DBMS. f. DBMS memperhatikan keefisienan Kapasitas untuk membawa dengan menggunakan operasional yang sesuai dengan sumbernya untuk setiap user. g. DBMS meningkatkan keefektifan Kapasitas dari basis data dapat membuat aktifitas user lebih produktif disetiap waktu. 2.1.4 Database Languages Menurut Connolly (2005, p39) Sebuah data sublanguage, yang tidak menyertakan conditional dan iterative statements, terbagi menjadi dua bagian: Sebuah Data Definition Languages (DDL) dan Data Manipulation Languages. 2.1.4.1 Data Definition Languages (DDL) Data Definition Language (DDL) merupakan sebuah bahasa yang memungkinkan Database Administrator (DBA) maupun pengguna untuk menggambarkan dan menamai entity, atribut dan hubungan yang dibutuhkan pada aplikasi bersamaan dengan beberapa associated integrity dan batasan keamanan (Connolly, 2005, p40). Hasil dari kompilasi perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut Kamus Data (Data Dictionary). Beberapa statement DDL (Connolly, 2005, p169) : 1. Create Table 15 Untuk membuat table dengan mengidentifikasi tipe data tiap kolom. 2. Alter Table Untuk menambah atau membuang kolom dan constraint. 3. Drop Table Untuk membuang atau menghapus tabel beserta semua data yang terkait di dalamnya. 4. Create Index Untuk membuat indeks pada suatu tabel. 5. Drop Index Untuk membuang atau menghapus indeks yang telah dibuat sebelumnya. 2.1.4.2 Data Manipulation Languages (DML) Menurut Connolly (2005, p41), DML (Data Manipulation Languages) adalah suatu bahasa yang menyediakan kumpulan operasi yang akan diinginkan untuk mendukung operasi manipulasi data utama pada data yang diperoleh dalam basis data. Menyediakan operasi dasar manipulasi data pada data yang ada dalam basis data, yaitu : a. Penyisipan data baru ke dalam basis data (insertion). b. Mengubah atau modifikasi data yang disimpan di dalam basis data (modify). c. Pemanggilan data yang ada dalam basis data (retrieve). 16 d. Menghapus data dari basis data (delete). Menurut Connolly (2005, p41), kita dapat membedakan DML menjadi dua tipe yang berbeda yaitu : 1. Procedural DML Procedural DML adalah suatu bahasa yang memungkinkan pengguna (umumnya programmer) untuk memberi instruksi ke sistem mengenai data apa yang dibutuhkan dan bagaimana cara pemanggilannya (retrieve). Artinya pengguna harus menjelaskan operasi pengaksesan data yang akan digunakan dengan menggunakan prosedur yang ada untuk mendapatkan informasi yang dibutuhkan. 2. Non-Procedural DML Non-Procedural DML adalah bahasa yang memungkinkan pengguna untuk menentukan data apa yang dibutuhkan dengan menyebutkan spesifikasinya tanpa menspesifikasikan bagaiman cara mendapatkannya. 2.1.4.3 Fourth Generation Languages Menurut Connolly (2005, p42), Fourth-Generation Languages (4GLs) adalah bahasa pemrograman non-procedural yang lebih sederhana dibandingkan bahasa pemrograman generasi ke tiga (3GL). Beberapa jenis 4GLs (Connolly, 2005, p42) : a. Forms Generators 17 Merupakan fasilitas interaktif untuk membuat form input data dan tampilannya. Mendefinisikan desain tampilan, informasi apa yang akan disajikan, komponen warna pada layar dan karakteristik lainnya. b. Report Generators Membuat laporan (report) yang datanya diambil dari database. Memungkinkan user untuk mengambil data yang diperlukan untuk laporan. Lebih menekankan pada rancangan output, yaitu bagaiman suatu laporan disajikan. c. Graphic Generators Digunakan untuk mengambil data dari database, dan menampilkannya dalam bentuk grafik seperti bar, chart, pie chart, line chart dan lain-lain. d. Application Generators Fasilitas untuk menghasilkan program yang berhubungan dengan data, menentukan bagaimana menampilkan fungsifungsi. 2.1.5 Siklus Hidup Aplikasi Database Untuk merancang aplikasi sistem basis data diperlukan beberapa tahapan terstruktur yang harus diikuti dan dinamakan dengan Siklus Hidup Aplikasi Basis Data (Database Application Lifecycle). Dikarenakan sistem basis data adalah komponen dasar dalam sistem informasi organisasi yang lebih besar dan luas, daur hidup aplikasi basis 18 data berkembang terhubung dengan daur hidup sistem informasi. Adalah penting untuk mengetahui bahwa tahapan daur hidup sistem informasi tidaklah harus berurutan, tetapi melibatkan beberapa jumlah pengulangan tahap sebelumnya melalui feed-back loops. Berikut ini akan ditunjukkan tahapan daur hidup aplikasi basis data pada gambar dibawah ini : Gambar 2.1 Tahap-Tahap Siklus Hidup Aplikasi Basis Data (Sumber : Connolly, 2005, p284) 19 2.1.5.1 Perencanaan Basis Data Perencanaan Basis Data (Database Planning) merupakan aktivitas-aktivitas manajemen yang memungkinkan tahap-tahap dalam aplikasi basis data direalisasikan seefisien dan seefektif mungkin (Connolly, 2005, p285). 2.1.5.2 Pendefinisian Sistem Pendefenisian sistem (System Definition) menjelaskan bidang dan batasan aplikasi basis data serta pandangan pengguna (user view) secara umum (Connolly, 2005, p286). Pandangan pengguna meggambarkan apa yang dibutuhkan oleh aplikasi basis data dari sudut pandang jabatan tertentu, seperti manajer atau pengawas, atau pengawasan persediaan, dalam hubungannya dengan data yang akan disimpan dan transaksi yang akan dijalankan terhadap data itu (Connolly, 2005, p288). 2.1.5.3 Pengumpulan Kebutuhan dan Analisa Pada tahap ini dilakukan proses pengumpulan dan analisa informasi mengenai bagian organisasi yang harus dilakukan oleh aplikasi basis data, dan penggunaan informasi ini berguna untuk mengidentifikasi persyaratan pengguna terhadap sistem yang baru (Connolly, 2005, p288). Tahap ini meliputi pengumpulan dan analisis informasi mengenai bagian perusahaan yang harus dilayani oleh basis data. 20 Ada 3 (tiga) pendekatan utama untuk pengaturan kebutuhan aplikasi basis data dengan multiple user views, yaitu : 1. Pendekatan centralized Kebutuhan-kebutuhan untuk setiap user view digabungkan dalam suatu kumpulan kebutuhan tunggal untuk aplikasi basis data baru. 2. Pendekatan view integration Kebutuhan-kebutuhan untuk setiap user view digunakan untuk membangun sebuah model data yang terpisah untuk merepresentasikan pengguna itu sendiri. Hasil dari model data akan digabungkan pada tahap perancangan basis data. 3. Kombinasi antara centralized dan view integration Ada banyak cara untuk mengumpulkan informasi pada suatu proses resmi dalam menggunakan teknik-teknik seperti wawancara atau kuesioner untuk mengumpulkan fakta-fakta tentang sistem dan kebutuhan-kebutuhannya dinamakan dengan teknik fact-finding (Connolly, 2005, p314). 2.1.5.4 Perancangan Basis Data Perancangan basis data merupakan proses menciptakan perancangan untuk basis data yang akan mendukung operasi dan tujuan perusahaan (Connolly, 2005, p291). Terdapat 2 (dua) pendekatan dalam perancangan basis data (Connolly, 2005, p291), yaitu : 21 a. Bottom-up Pendekatan ini dimulai dari tingkat paling dasar dari atribut (yakni property dari entity dan hubungan relasional) dimana melalui analisis gabungan antara atribut-atribut, dikelompokkan ke dalam relasi-relasi yang merepresentasikan tipe-tipe entity dan hubungan antara entity. Pendekatan ini lebih cocok untuk perancangan basis data yang sederhana dengan jumlah atribut yang relatif kecil. b. Top-down Pendekatan ini dimulai dari pengembangan model data yang terdiri dari beberapa hubungan relasional dan entity tingkat tinggi. Perancangan basis data terdiri 3 (tiga) tahap utama (Connolly, 2005, p293), yaitu : 1. Perancangan Basis Data Konseptual (Conceptual Database Design) Perancangan Basis Data Konseptual adalah proses membangun suatu model informasi yang digunakan oleh perusahaan atau organisasi yang tidak tergantung dari pertimbangan fisik (Connolly, 2005, p293). 2. Perancangan Basis Data Logikal (Logical Database Design) Logical Database Design adalah proses pembuatan suatu model informasi yang digunakan pada perusahaan 22 berdasarkan pada model data yang spesifik, tetapi tidak tergantung dari Database Management System (DBMS) yang khusus dan pertimbangan fisik lain (Connolly, 2005, p294). 3. Perancangan Basis Data Fisikal (Physical Database Design) Physical Database Design adalah suatu proses untuk menghasilkan gambaran dari implementasi basis data pada tempat penyimpanan, menjelaskan dasar dari relasi, organisasi file dan indeks yang digunakan untuk efisiensi data dan menghubungkan beberapa integrity constraints dan tindakan keamanan (Connolly, 2005, p294). 2.1.5.5 Pemilihan DBMS Merupakan pemelihan dari suatu DBMS yang tepat untuk mendukung aplikasi basis data (Connolly, 2005, p295). Tahap-tahap pemilihan DBMS : 1. Menentukan istilah referensi studi Dibuat dengan menyatakan tujuan dan ruang lingkup pembelajaran dan tugas-tugas yang akan dikerjakan. 2. Membuat daftar sementara dua atau tiga produk Kriteria yang dianggap penting dalam keberhasilan implementasi dapat digunakan untuk membuat daftar produk-produk DBMS dalam evaluasi, seperti dana yang tersedia, tingkat dukungan vendor, kecocokan dengan 23 perangkat lunak lainnya, dan apakah produk hanya berjalan pada perangkat keras tertentu. 3. Mengevaluasi produk Fitur-fitur yang digunakan untuk evaluasi produk DBMS dikelompokkan berdasarkan data definition (defenisi data), physical definition (definisi fisik), accessibility (kemampuan mengakses), transaction handling (penanganan transaksi), utilities (peralatan), development (pengembangan). 4. Merekomendasikan pilihan dan memproduksi laporan Langkah terakhir dari pemilihan DBMS adalah mendokumentasikan prosesnya dan membuat pernyataan dalam penemuan dan rekomendasi atas produk DBMS tertentu. 2.1.5.6 Perancangan Aplikasi Desain interface dan program aplikasi yang menggunakan dan memproses basis data (Connolly, 2005, p299). Desain basis data dan aplikasi merupakan aktivitas parallel yang meliputi dua aktivitas penting, yaitu : a. Perancangan Transaksi (Transaction Design) Transaksi adalah satu aksi atau serangkaian aksi yang dilakukan oleh user tunggal atau program aplikasi, yang mengakses atau merubah isi dari basis data. Kegunaan dari desain 24 transaksi adalah untuk menetapkan dan memuat keterangan karakteristik high-level dari suatu transaksi yang dibutuhkan pada basis data. Terdapat 3 (tiga) tipe transaksi, yaitu : 1. Retrieval transaction, digunakan untuk pemanggilan (retrieve) data untuk ditampilkan di layar atau menghasilkan suatu laporan. 2. Update transaction, digunakan untuk menambah record baru, menghapus record lama, atau memodifikasi record yang sudah ada dalam basis data. 3. Mixed transaction, meliputi pemanggilan dan perubahan data. b. Perancangan Antarmuka (User Interface Design) Beberapa aturan pokok dalam pembuatan user interface, yaitu : 1. Penetapan judul yang bermakna. 2. Instruksi-instruksi yang dapat dipahami. 3. Pengelompokkan logika dan pengurutan kolom. 4. Bentuk form yang menarik secara visual. 5. Judul kolom yang dikenal. 6. Penggunaan istilah dan singkatan yang konsisten. 7. Penggunaan warna yang konsisten. 8. Ruang dan batasan yang terlihat untuk menginput kolom 9. Pergerakan kursor yang mudah 25 10. Perbaikan kesalahan untuk satu huruf dan semua kolom. 11. Menampilkan pesan kesalahan pada nilai yang tidak sesuai. 12. Pemberian tanda terhadap kolom yang berupa pilihan. 13. Pesan-pesan yang bersifat penjelasan untuk suatu kolom. 14. Pemberian tanda penyelesaian. 2.1.5.7 Prototipe Prototipe adalah proses membangun sebuah model kerja dari aplikasi basis data (Connolly, 2005, p304). Tujuan utama prototipe adalah untuk mengidentifikasi fitur-fitur yang bekerja dengan baik pada sistem, atau kekurangannya dan memberikan saran bagi peningkatan kerja sistem atau bahkan memberikan masukan terhadap pengembangan bahkan fitur-fitur baru ke dalam sistem basis data. 2.1.5.8 Implementasi Implementasi adalah realisasi fisikal dari design basis data dan desig aplikasi (Connolly, 2005, p304). Dalam tahap ini juga akan diimplementasikan komponen lain dari aplikasi basi data seperti menu layar, pemasukan data, security, dan kontrol integritas. 2.1.5.9 Data Conversion and Loading Pemindahan data yang ada kedalam basis data baru dan mengkonversikan aplikasi yang ada agar dapat digunakan pada 26 basis data yang baru (Connolly, 2005, p305). Tahapan ini dibutuhkan ketika sistem basis data baru menggantikan sistem yang lama. 2.1.5.10.Pengetesan Merupakan proses pengeksekusian program aplikasi dengan maksud pencarian kesalahan-kesalahan (Connolly, 2005, p305). 2.1.5.11.Perawatan Operational (Operation Maintenance) Suatu proses pengawasan dan pemeliharaan sistem setelah instalansi, meliputi (Connolly, 2005, p306) : a. Pengawasan performa sistem, jika performa menurun maka memerlukan perbaikan atau pengaturan ulang basis data. b. Pemeliharaan dan pembaharuan aplikasi basis data (jika dibutuhkan). c. Penggabungan kebutuhan baru kedalam aplikasi basis data. 2.1.6 Data Flow Diagram (DFD) Pengertian dari DFD adalah teknik grafis yang menggambarkan aliran data melalui sebuah sistem dan merubah data yang bergerak dari input ke output. DFD dapat juga disebut dengan Bubble chart, Data Flow Graph (Roger, 2001, p309). 27 Simbol-simbol yang terdapat dalam DFD : 1. Menggambarkan external entity (terminal dari sistem). 2. Menggambarkan proses atau pekerjaan yang harus diselesaikan. 3. Objek data, menggambarkan aliran data atau input/output dari dan menuju proses. 4. Menggambarkan penyimpanan data atau biasa disebut basis data(data store). Penyimpanan data dapat disamakan dengan seluruh bagian dari entity tunggal dalam model data. Tingkatan pada DFD : a. Diagram konteks Menggambarkan seluruh input ke atau output ke sistem. Diagram konteks ini merupakan level tertinggi dari DFD. b. Diagram nol Merupakan rincian dari diagram konteks dan memperlihatkan data store juga digunakan. c. Diagram rinci Merupakan rincian diagram diatasnya. 28 Keuntungan pangguna DFD : 1. Proses dalam DFD dapat beroperasi secara parallel. Maksudnya beberapa proses dapat bekerja secara bersamaan sesuai dengan cara kerja bisnis. 2. DFD menunjukkan aliran data yang melalui sistem. Panahnya mewakili arah dimana data tersebut mengalir. Perulangan dan percabangan biasanya tidak diperlihatkan. Flowchart menunjukkan tahap-tahap dari proses atau operasi dalam algoritma/program. 3. DFD menunjukkan proses yang memiliki perbedaan waktu yang dramatis. Misalnya suatu DFD tunggal mungkin akan memasukkan proses yang terjadi perjam, perhari, perminggu, pertahun, dan sesuai permintaan. 2.1.7 Entity Relationship Modelling (ER-Modelling) a. Entity Type Entity type adalah sekumpulan objek yang memiliki properti yang sama yang diidentifikasi dalam perusahaan serta keberadaannya independen (Connolly, 2005, p343). Setiap objek yang diidentifikasikan secara unik disebut entity occurrence (Connolly, 2005, p333). 29 Gambar 2.2 Representasi Diagram Dari Entity Type Staff dan Branch (Sumber Connolly, 2005, p345) b. Relationship Type Relationship Type ialah sekumpulan entity yang mempunyai hubungan dan memiliki arti (Connoly, 2005, p346). Gambar 2.3 Relationship Type c. Attributes Attributes ialah properti dari sebuah entity atau relationship type. Sedangkan attribute domain adalah sekumpulan 30 nilai yang dibolehkan untuk satu atau lebih atribut (Connoly, 2005, p350). Atribut dapat diklasifikasikan sebagai : 1. Simple dan Composite Atribut Simple attribute adalah sebuah atribut yang disusun oleh sebuah komponen tunggal dengan keberadaan yang independen. Simple attribute tidak dapat dipecah menjadi komponen yang lebih kecil lagi (Connoly, 2005, p351). Sebuah contoh simple attribute ialah atribut position dan salary pada entity Staff. Sedangkan Composite attribute adalah sebuah atribut yang disusun oleh banyak komponen yang independen. Atribut ini bisa dipecah menjadi atribut yang lebih kecil. Contohnya atribut address dalam entity Branch dengan nilai (163 Main St, Blasgow, G11 9QX) dapat dipecah menjadi street (163 Main St), city (Glasgow), dan postcode (G11 9QX). 2. Single-valued dan Multi-Valued Attribute Single-valued attribute adalah sebuah atribut yang mempunyai nilai tunggal untuk setiap kejadian dalam sebuah entity (Connoly, 2005, p351). Contohnya pada entity Branch mempunyai nilai tunggal pada masing-masing atribut branchNo. Multi-valued attribute adalah sebuah atribut yang mempunyai nilai lebih dari satu untuk setiap kejadian pada entity (Connoly, 2005, p353). Contoh setiap atribut pada entity Branch 31 dapat mempunyai telNo lebih dari satu (Misalnya cabang dengan branchNo B003 mempunyai telNo 0141-339-2178 dan 0141-3394439). 3. Derived Attributes Derived Attributes adalah atribut yang merepresentasikan sebuah nilai yang biasa diperoleh dari nilai dan atribut yang berkaitan (Connoly, 2005, p352). d. Keys Candidate Key adalah himpunan atribut yang minimal yang secara unik mengidentifikasi setiap occurance dari sebuah tipe entitas (Connoly, 2005, p352). Primary Key adalah candidate key yang terpilih untuk mengidentifikasikan secara unik setiap occurance dari sebuah tipe entitas (Connoly, 2005, p353). Composite Key adalah sebuah candidate key yang terdiri atas dua atau lebih atribut (Connoly, 2005, p353). Pada sebuah tipe entitas biasanya terdapat lebih dari satu candidate key yang salah satunya harus dipilih untuk menjadi primary key. Pemilihan primary key didasarkan pada panjang atribut, jumlah minimal atribut yang diperlukan, dan keunikannya. Alternate key adalah setiap candidate key yang tidak terpilih menjadi primary key, atau biasa disebut dengan secondary key (Whitten, 2004, p298). Foreign key adalah sebuah primary key pada sebuah entitas yang digunakan pada entitas lainnya untuk 32 mengidentifikasikan sebuah relationship (Whitten, 2004, p301). 2.1.8 Normalisasi Normalisasi adalah sebuah teknik untuk menghasilkan relasi dengan properti-properti yang diinginkan, memberikan kebutuhan data dari sebuah perusahaan. Tujuan normalisasi adalah terjaminnya struktur yang konsisten, kerangkapan yang minimal, dan stabilitas struktur data yang maksimal (Connolly, 2005, p388). Manfaat normalisasi adalah sebagai berikut : 1. Meminimalkan jumlah kapasitas penyimpanan yang diperlukan untuk menyimpan data. 2. Meminimalkan resiko data yang tidak konsisten dalam suatu basis data. 3. Meminimalkan kemungkinan update dan delete anomally. 4. Memaksimalkan stabilitas dari struktur data. Proses normalisasi tabel secara umum dibagi menjadi tiga tahap sehingga dikenal bentuk-bentuk tabel normal sesuai dengan tahapan normalisasi yang telah dilakukan yaitu bentuk normal pertama, kedua, dan ketiga. 1. First Normal Form (1NF) First normal form adalah relasi dimana pertemuan antar setiap baris dan kolom terdiri 1 (satu) dan hanya 1 (satu) nilai. Bentuk normal pertama dicapai bila tiap nilai atribut adalah tunggal. Kondisi ini dapat diperoleh dengan melakukan eliminasi terjadinya data ganda 33 (repeating groups). Pada kondisi normal pertama ini kemungkinan masih terjadi adanya data rangkap (Connolly, 2005, p403). 2. Second Normal Form (2NF) Second normal form (2NF) adalah merupakan sebuah relasi dalam 1NF dan setiap atribut non-primary key bersifat Full Function Dependency pada primary key dari relasi tersebut. Dalam normalisasi kedua ini, atribut yang tergantung pada sebagian dari suatu composite key sebuah tabel dipindahkan ke sebuah tabel yang terpisah (Connolly, 2005, p407). 3. Third Normal Form (3NF) Third normal form (3NF) adalah sebuah atribut relasi yang memenuhi normal kedua dimana tidak terdapat atribut non primary key yang bersifat transitively dependent dari primary key-nya. Dalam normalisasi ketiga ini, atribut yang tidak memberikan kontribusi terhadap penjelasan karakteristik primary key, akan dipindahkan ke sebuah tabel yang terpisah. Keuntungan dari tabel relasional dalam 3NF adalah menghilangkan data yang berulang-ulang dengan tujuan menghemat tempat dan mengurangi keanehan manipulasi (Connolly, 2005, p409). 2.2 Teori-teori Khusus 2.2.1 Pengertian Internet Internet adalah jaringan computer yang saling terhubung ke seluruh dunia tanpa mengenal batas territorial, hokum dan budaya. Secara 34 fisik dianalogikan sebagai jaringan laba-laba (The Web) yang menyelimuti bola dunia dan terdiri dari titik-titik (node) yang saling berhubungan. Internet juga merupakan sumber daya informasi yang menjangkau seluruh dunia, sumber daya informasi ini sangat luas dan sangat besar sehingga tidak ada satu orang, satu organisasi atau satu negara yang menanganinya sendiri. Menurut Thomas (1997), internet adalah sebuah world wide, bentuk jaringan bebas menggunakan jaringan line telepon, terdiri dari jutaan pengguna diseluruh dunia yang membuat koneksi melalui modem dan dapat berkomunikasi satu sama lain. 2.2.1.1 Istilah-istilah Internet a. HTML HTML (Hypertext Markup Language) digunakan untuk membangun suatu halaman web. Sekalipun banyak orang menyebutnya sebagai suatu bahasa pemrograman, HTML sebenarnya sama sekali bukan bahasa pemrograman, karena seperti tercermin dari namanya, HTML adalah suatu bahasa mark-up. HTML digunakan untuk melekukan markup (penandaan) terhadap sebuah dokumen teks. Tanda tersebut digunakan untuk menentukan format atau style dari teks yang ditandai. b. HTTP HTTP (Hypertext Transfer Protocol) adalah suatu 35 protocol yang diikuti oleh web browser dalam meminta atau mengambil suatu dokumen yang disediakan di web server. Protokol ini merupakan protocol standar yang digunakan untuk mengakses web pages. Selain HTTP terdapat pula Secure HTTP yang dikembangkan oleh Enterprise Integration Technology (EIT), National Centre for Supercomputing Application (NCSA), dan RSA Data Secutity. Secure HTTP ini adalah HTTP yang aman dimana antara user dan server menggunakan suatu form entry data. User dapat mengklik pada sebuah tombol persetujuan yang aman, dan program klien akan menjalankan kunci keamanan bagi sesi tersebut dengan form tersebut. HTTP merupakan serangkaian aturan untuk pertukaran file (teks, grafik, gambar, suara, video, dan file multimedia yang lain) di dalam world wide web, berhubungan dengan protokol TCP/IP yang merupakan protokol utama dalam pertukaran informasi di internet, HTTP adalah sebuah protokol aplikasi. Konsep dasar yang merupakan bagian dari HTTP termasuk ide bahwa di dalam file bisa terdapat referensi ke file lain dimana pemilihan file tersebut akan memicu terjadinya trasnfer request. Beberapa web server dalam memenuhi layanan akan HTML dan file-file lain yang dapat dilayaninya, menambahkan sebuah HTTP daemon, yaitu program yang didesain untuk menunggu HTTP request dan melayani request bilamana terjadi. HTTP request ini berasal dari 36 HTTP client seperti web browser. 2.2.2 Pengertian Web World Wide Web merupakan jaringan dokumentasi yang sangat besar yang saling berhubungan satu dengan yang lainnya. Satu set protokol yang mendefinisikan bagaimana sistem bekerja dan mentransfer data, dan sebuah software yang membuatnya bekerja dengan mulus. Web merupakan sistem yang menyebabkan pertukaran data di internet menjadi mudah dan efisien. Web terdiri atas dua komponen dasar : a. Server web : sebuah komputer dan software yang menyimpan dan mendistribusikan data ke komputer lainnya melalui internet. b. Browser web : software yang dijalankan pada komputer pemakai atau klien yang meminta informasi dari server web yang menampilkannya sesuai dengan file data itu sendiri. Web juga merupakan salah satu sumber daya yang disediakan oleh internet, berupa suatu jaringan server web yang berbasiskan hiperteks, tempat situs-situs yang diakses melalui web browser saling terkoneksi dengan menggunakaan protokol HTTP. Koneksi web ini menggunakan arsitektur client server. Web menjadi pandangan yang sangat penting terhadap internet. Pertama, workd wide web ini menyediakan akses terhadap huruf, 37 ukuran, gaya huruf, dan termasuk gambar dari layar dengan perawatan yang tidak khusus. Mungkin suara dan gambar juga walaupun terlalu besar untuk di download dan di dengar atau pun dilihat. Web merupakan perangkat yang cepat sekali populer, hal ini dikarenakan hal-hal rumit dapat diotomatisasi oleh web sehnigga user tidak dipusingkan oleh proses-proses yang sesungguhnya terjadi dan kemampuannya untuk menampilkan kata-kata, tipografi, dan gambar di layar komputer, bahkan suara. Contoh web browser yang terkenal antara lain Internet Explorer dan netscape Communicator. 2.2.2.1 Pengertian Web Server Web server berfungsi untuk menyimpan dokumen yang disebut web pages (halaman web) dalam format HTML dan mengirimkannya ke web klien berdasarkan permintaan klien, yang disebut browser. Meminta dokumen dari server dengan mengirimkan URL dokumen ke server. Bila sebuah browser mengirimkan sebuah URL yang hanya menamai web server dan bukan sebuah hal tertentu, maka server mengirimkan sebuah hal default, yang dikenal sebagai homepage ke browser. Server mengirim hal-hal ke browser atau mengirim sebuah tanggapan bila halaman tidak tersedia dengan menggunakan protokol HTTP. 38 2.2.2.2 Pengertian Web Database System Menurut Eaglestone (2001, p38) “Web Database System are systems in which both Web and database technologies are used”. Dapat dikatakan web database system adalah sistem dimana dipadukannya teknologi web dan database. Oleh karena itu web database menyediakan akses yang lebih luas ke dalam sistem database, cara untuk mendistribusikan sistem dan banyak lagi servis melalui integrasinya sistem. 2.2.2.3 Perancangan Web Database Menurut Eaglestone (2001, p262), perancangan Web Database mirip seperti konvensional database namun terdapat dua hal yang perlu ditambahkan : 1. Web Page Design, hal ini meliputi : a. Web data representation b. Web data association c. Web interface design 2. Perancangan koneksi antara Web Pages dan database, meliputi : a. Web database logical mapping b. Web database physical mapping 2.2.3 Teori PHP PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP banyak dipakai untuk memprogram situ web 39 dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakaian lain. Contoh terkenal dari aplikasi PHP adalah phpBB dan MediaWiki (software di belakang Wikipedia). PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion Macromedia, JSP/Java Sun Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS yang dibangun menggunakan PHP adalah Mambo, Jommla!, Postnuke, Xaraya, dan lain-lain. 2.2.3.1 Kelebihan PHP 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. 2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan apache, dengan konfigurasi yang lebih mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 4. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena referensi yang banyak. 2.2.4 MySQL MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan bersifat free (anda tidak perlu 40 membayar untuk menggunakannya) pada berbagai platform (kecuali pada windows, yang bersifat software atau anda perlu membayar setelah melakukan evaluasi dan memutuskan untuk digunakan untuk keperluan produksi). Perangkat lunak MySQL sendiri dapat di download dari http : // www.mysql.org atau http : // www.mysql.com. MySQL termasuk jenis RDMS (Relational Database Management System). Itulah sebabnya istilah seperti tabel, baris, dan kolom digunakan pada MySQL. Pada MySQL, sebuah database mengandung satu atau jumlah tabel. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom. Menurut Luke Welling dan Laura Thomson (2001, p1), MySQL adalah sebuah relational database management systems yang sangat cepat dan kuat. MySQL adalah sebuah perangkat lunak sistem management basis data SQL atau DBMS yang multithread, multiuser, dengan sekitar 6 juta instalasi diseluruh dunia. MySQL dimiliki dan disponsori oleh sebuah perusahaan komersil Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah : David Axmark, Allan Larson, dan Michael “Monty” Widenius. Tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunannya tidak cocok dengan pengguna GPL. 41 Untuk melakukan administrasi dalam basis data MySQL, dapat menggunakan modul yang sudah termasuk yaitu command-line (perintah : mysql dan mysqladmin). Juga dapat diunduh dari situs MySQL yaitu sebuah modul berbasis grafik (GUI) : MySQL Administrator dan MySQL Query Browser. Selain itu juga terdapat sebuah perangkat lunak gratis untuk administrasi basis data MySQL berbasis web yang sangat populer yaitu phpMyAdmin. 2.2.5 Pengertian Materi Materi adalah sesuatu yang menjadi bahan (untuk diujikan, dipikirkan, dibicarakan) (www.pusatbahasa.diknas.go.id/kbbi/index.php). 2.2.6 Pengertian Soal Soal adalah apa yang menuntut jawaban (www.pusatbahasa.diknas.go.id/kbbi/index.php). 2.2.7 Pengertian Forum Forum adalah wadah, tempat membicarakan kepentingan bersama (www.pusatbahasa.diknas.go.id/kbbi/index.php). 2.2.8 Pengertian Diskusi Diskusi adalah pertemuan ilmiah untuk bertukar pikiran mengenai suatu masalah (www.pusatbahasa.diknas.go.id/kbbi/index.php)