BAB 2 LANDASAN TEORI 2.1 Teori Basis Data 2.1.1 Pengertian Data Menurut Turban (2003, p2), data ialah fakta yang belum diolah atau gambaran dari transaksi yang ditangkap, direkam, disimpan dan diklasifikasikan. 2.1.2 Pengertian Basis Data Menurut Thomas M. Connolly dan Carolyn Begg (2002, p14), basis data adalah kumpulan data yang saling berhubungan secara logis dan dirancang untuk memenuhi kebutuhan informasi dalam suatu organisasi. 2.1.3 Arsitektur Basis Data Menurut Thomas M. Connolly dan Carolyn Begg (2002, p34), ada tiga level arsitektur basis data (Three-Level ANSI-SPARC Architecture) yaitu: • External Level Level ini merupakan view basis data pada user. Setiap user mempunyai view masing-masing tergantung kebutuhan informasi dari user tersebut. 6 7 • Conceptual Level Level ini menggambarkan data apa saja yang disimpan dalam basis data dan hubungan antara data-data tersebut. • Internal Level Level ini merupakan reperesentasi fisik dari basis data yang ada di komputer. Level ini menggambarkan bagaimana data disimpan dalam suatu basis data. 2.1.4 Sistem Basis Data Sistem basis data merupakan kumpulan dari program aplikasi yang berinteraksi dengan basis data (Connolly dan Begg, 2002, p4). Jadi, sistem basis data ialah kombinasi dari beberapa program aplikasi dengan basis data yang telah berjalan sehingga keseluruhan sistem terkomputerisasi tersebut memungkinkan pengguna menelusuri kembali dan mengubah informasi sesuai kebutuhan. 2.1.5 Database Relational Database Relational merupakan database yang dalam gambaran penggunaannya merupakan kumpulan dari tabel-tabel, dimana tabel tersebut terdiri dari baris dan kolom, atau dengan kata lain terdiri dari kumpulan record dan field. Tabel tersebut kemudian dihubungkan dengan satu field di tabel lain yang disebut sebagai key. 8 Pada database relational terdapat dua jenis field yang dapat menggambarkan hubungan, yaitu primary key dan foreign key. • Primary key adalah suatu field yang merupakan kunci utama dari suatu tabel yang menunjukkan bahwa field yang menjadi kunci tersebut tidak dapat diisi dengan data yang sama, menjadikan record memiliki identitas yang membedakan satu sama lainnya. • Foreign key merupakan sebuah field yang digunakan sebagai field tujuan yang dihubungkan dengan field dari tabel pemanggil. Hubungan antar tabel dalam database relational dapat dibagi menjadi tiga, yaitu: • Hubungan one to one, ialah hubungan antar tabel dimana satu isi record pada satu tabel hanya dapat berhubungan dengan satu record pada tabel lainnya. • Hubungan one to many atau many to one, ialah hubungan antar tabel dimana satu isi record pada satu tabel dapat berhubungan dengan beberapa record pada tabel lainnya atau sebaliknya. • Hubungan many to many, ialah hubungan antar tabel dimana satu isi record pada salah satu table dapat berhubungan dengan beberapa record pada tabel tersebut. 9 2.1.6 Normalisasi Menurut Connolly dan Begg (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 : o Meminimalkan jumlah atribut yang diperlukan untuk mendukung kebutuhan data dari suatu perusahaan. o Untuk memperoleh atribut yang bersifat functional dependencies. o Untuk menghilangkan data yang bersifat redundancy pada tiap atribut. Langkah-langkah normalisasi menurut Connolly dan Begg (2010, p430) adalah : • Unnormalized Normal Form (UNF) Unnormalized form (UNF) merupakan sebuah tabel yang mengandung satu atau lebih repeating group • First Normal Form (1NF) 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 mengidentifikasi dan menghilangkan bagian yang mengandung repeating group pada tabel. 10 • Second Normal Form (2NF) 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) didalam 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 merupakan functional dependence dari primary key itu. • Third Normal Form (3NF) 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. 11 2.1.7 Entity Relationship Menurut Connolly dan Begg (2010, p372) salah satu kesulitan dalam perancangan database adalah kenyataan bahwa user dan programmer cenderung berbeda dalam melihat data yang ada. Berikut ini adalah konsep dasar dari ER model : • Entity types, entity types adalah sekelompok obyek dengan sifat yang sama, yang diidentifikasi oleh perusahaan memiliki keberadaan yang bebas. • Relationship type, relationship type adalah sekelompok hubungan yang memiliki satu atau lebih entity. • Attribute, attribute adalah properti dari sebuah entity atau sebuah relationship. • Key, key terdiri dari beberapa jenis, yaitu: o Candidate key Set minimal atribut yang secara unik mengidentifikasi setiap terjadinya suatu tipe entitas. o Primary key Candidate key yang dipilih untuk mengidentifikasi secara unik setiap kejadian atau sebuah tipe entitas. o Composite key Candidate key yang terdiri dari dua atribut atau lebih. Menurut Whitten, Jeffrey L. (2004, p295) entity relationships adalah model data yang menggunakan beberapa notasi untuk menggambarkan data dalam hubugan antara hal Perusahaan, 12 Peserta dan hubungan antara entity dan relationship yang menggambarkan data. • Entity adalah kelompok orang, tempat, benda, peristiwa, atau konsep tentang apa yang dibutuhkan untuk menangkap dan menyimpan data. • Attribute adalah properti deskriptif atau karakteristik dari suatu entitas, meliputi elemen, properti, dan lapangan. • Relationship adalah asosiasi bisnis alami yang ada antara satu atau lebih entitas. • Key merupakan atribut atau kelompok atribut yang mengasumsikan nilai unik untuk tiap contoh entitas. kadangkadang disebut identifier. Beberapa jenis key : o Candidate key Salah satu kunci yang secara unik dapat berfungsi sebagai kunci utama suatu entitas, dan dapat mengenali setiap kejadian didalam tipe entity. Candidate key tidak boleh NULL dan setiap entity mungkin punya lebih dari satu candidate key. o Primary key Candidate key yang akan paling sering digunakan sebagai kunci primer untuk mengenali secara unik dan untuk mengidentifikasi contoh entitas tunggal. Pemilihan primary key untuk sebuah entity berdasarkan pada pertimbangan panjang atribut, jumlah minimal dan kebutuhan atribut serta memiliki keunikan. 13 o Alternate Key Candidate key yang tidak terpilih menjadi primary key, sama dengan secondary key. 2.2 Interaksi Manusia dan Komputer Menurut Shneiderman (2010, p32), dalam mendesain suatu user interface ada 5 faktor manusia terukur yaitu: 1. Waktu belajar, berapa lama waktu yang dibutuhkan oleh user untuk mempelajari cara relevan untuk melakukan suatu tugas? 2. Kecepatan kinerja, berapa lama waktu yang diperlukan untuk mengerjakan suatu tugas? 3. Tingkat kesalahan, berapa banyak kesalahan dan kesalahankesalahan seperti apa yang bisa terjadi saat user mengerjakan tugastugas tersebut. 4. Daya ingat, bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu? 5. Kepuasan subyektif, bagaimana kepuasan user terhadap berbagai aspek dari sistem? 14 2.2.1 Delapan Aturan Emas (8 Golden Rules) Menurut Shneiderman (2010, p88-89), disebutkan bahwa ada delapan aturan emas yang digunakan dalam merancang antar muka, yaitu: 1. Berusaha untuk konsisten, seperti dalam penggunaan warna, layout, jenis huruf, dan sebagainya. 2. Memenuhi kegunaan yang universal. Memenuhi kebutuhan yang berbeda-beda dari setiap user dan design yang fleksibel. 3. Memberikan umpan balik informatif yang memberikan kejelasan dari setiap aksi yang dilakukan. 4. Merancang dialog yang memberikan penutupan (keadaan akhir). 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. 6. Memungkinkan aksi timbal balik yang sederhana. 7. Mendukung pusat kendali internal, dimana sistem hendaknya mampu memberikan user sebagai bagian dari sistem itu sendiri dan memiliki kebebasan sendiri. 8. Mengurangi beban ingatan jangka pendek, dimana user diberikan kemudahan dalam menjelajahi situs dengan petunjuk-petunjuk yang sederhana dan mudah diingat. 15 2.3 Perancangan Web Database. Menurut Eaglestone dan Ridley (2001, p262) pada bagian ini digambarkan sebuah metode untuk merancang sistem web database. Sistem web database adalah sistem dimana dipadukannya teknologi web dan tekonologi database. Pertama yang harus dilakukan 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 (Webdata representation) yaitu mengambil data dari database atau data yang di input user. b. Kumpulan web data (Webdata 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, yaitu: 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 16 cara yang sistematis untuk merancang data. Berikut ini merupakan gambar dari web database design method. Gambar 1.1 Perancangan webdatabase (Eaglestone and Ridley, 2001, p264) 17 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. 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. 4. Logical database design Merupakan proses untuk mentranslasikan atau mendefinisikan model data logikal dan mengimplementasikannya ke dalam model koseptual database. 18 5. Logical Web Database Design Merupakan proses untuk mendefinisikan struktur data dari halaman web yang aktual, termasuk didalamnya 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 halaman web dan menghubungkannya ke dalam database. Menurut Connolly dan Begg (2010), ada beberapa alasan utama suatu software mengalami kesalahan, yaitu : 1. Kurangnya spesifikasi kebutuhan 2. Metodologi perancangan yang kurang baik 3. Komposisi desain komponen yang kurang baik Sebagai solusi atas masalah tersebut, pendekatan terstruktur untuk pengembangan software dibuatlah Siklus Hidup Sistem Informasi / Information Systems Lifecycle (ISLC) atau Siklus Hidup Perangkat Lunak / Software Development Lifecycle (SDLC). Namun, jika software yang sedang dibangun merupakan sistem database, maka disebut Siklus Hidup Sistem Basisdata / Database System Development Lifecycle (DSDLC). 19 Gambar 2.1 Database System Development Lifecycle (DSDLC). (Sumber : Connolly) 20 2.4 Rekayasa Perangkat Lunak 2.4.1 Pengertian Rekayasa Perangkat Lunak Menurut Sommerville (2011, p7), Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak. Mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Pada definisi ini, ada dua istilah kunci: 1. Disiplin Rekayasa Developer membuat suatu alat bekerja. Mereka merupakan teori, metode, dan alat bantu yang sesuai, selain itu mereka menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan, walaupun tidak ada teori atau metode yang mendukung. Developer juga menyadari bahwa mereka harus bekerja dalam batasan organisasi dan keuangan, sehingga mereka berusaha mencari solusi dalam batasan-batasan ini. 2. Semua aspek produski perangkat lunak Rekayasa prianti lunak tidak hanya berhubungan dengan proses teknis dari pengembangan perangkat lunak tetapi juga dengan kegiatan seperti manajemen proyek perangkat lunak, pengembangan alat bantu, metode, dan teori untuk mendukung produksi perangkat lunak. 21 2.4.2 Tahapan Pengembangan P RPL Menurut Sommerville (2011, p29), Waterfall model mengambil kegiatan proses dasar spesifikasi, pengembangan, validasi, evolusi, dan mewakili kegiatan tersebut fase proses terpisah seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian, dan sebagainya. Berikut merupakan tahap-tahap tahap dalam waterfall model: Gambar 2.2 Waterfall Model a. Requirements definition Sistem layanan, kendala, dan tujuan diterapkan melalui konsultasi dengan pengguna sistem, kebutuhan tersebut kemudian ditetapkan secara rinci dan berfungsi sebagai spesifikasi sistem. 22 b. System and software design Proses desain sistem mengalokasikan persyaratan baik untuk sistem perangkat keras atau perangkat lunak dengan mendirikan sebuah arsitektur sistem secara keseluruhan. Desain software melibatkan mengidentifikasikan dan menggambarkan abstraksi sistem perangkat lunak yang mendasar. c. Implementation and unit testing Selama tahap ini, desain perangkat lunak disadari sebagai serangkaian program atau program unit. Unit testing memverifikasi bahwa setiap unit sesuai spesifikasi. d. Integration and system testing Program unit individu atau program diintegrasikan dan diuji sebagai sistem yang lengkap untuk memastikan bahwa persyaratan perangkat lunak telah dipenuhi. Setelah pengujian, sistem software diserahkan kepada pelanggan. e. Operation and maintenance Ini adalah fase yang terpanjang. Sistem ini dipasang dan dimasukkan ke dalam penggunaan praktis. Pemeliharaan melibatkan mengoreksi kesalahan yang tidak ditemukan dalam tahap awal siklus, meningkatkan implementasi unit sistem dan peningkatan sistem sebagai kebutuhan baru ditemukan.