BAB 2 TINJAUAN PUSTAKA Bab ini menjelaskan tentang teori – teori yang berhubungan serta mendukung penulisan skirpsi ini, baik itu teori umum maupun teori khusus. 2.1 Teori Umum Hal – hal umum yang berhubungan dengan basis data. Dalam tinjauan pustaka yang berhubungan dengan basis data akan diuraikan secara ringkas antara lain : data, entitas (entity), basis data (database), kelebihan dan kekurangan database, sistem basis data (database system), sistem basis data management (database management system, DBMS), keuntungan dan kerugian DBMS, daur hidup basis data (database lifecycle, DBLC), dan normalisasi. 2.1.1 Data Indrajani (2011, p48) menjelaskan bahwa data merupakan fakta – fakta mentah yang harus dikelola untuk menghasilkan suatu informasi yang memiliki arti bagi suatu organisasi atau perusahaan. Data terdiri atas fakta – fakta dan angka – angka yang secara relatif tidak berarti bagi pemakai, atau fakta mentah yang belum diolah. 2.1.2 Basis Data Menurut Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, dan Riccardo Torlone (2003, p2), basis data adalah kumpulan data, digunakan untuk mewakili informasi yang menarik bagi sistem informasi. Menurut Jeffrey A. Hoffer, Mary B. Prescott, dan Fred R. McFadden (2005, p4), Sebuah basis data sebagai sebuah koleksi terorganisir dari data yang berhubungan secara logis. Menurut David M. Kroenke (2006, p11), basis data adalah kumpulan tabel terintegrasi yang mendeskripsikan dirinya sendiri. Menurut Connolly dan Begg (2005, p14), basis data merupakan sebuah koleksi data yang terhubung secara logis beserta deskripsinya, dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi. 7 8 2.1.2.1 Kelebihan dan Kekurangan Basis Data Menurut Whitten (2004, p519), kelebihan basis data adalah sebagai berikut : a. Kemampuan untuk berbagai pemakaian data yang sama di banyak aplikasi dan sistem. b. Keuntungan penyimpanan data dalam format yang fleksibel, lingkup basis data bahkan dapat dikembangkan tanpa mengubah program – program yang menggunakan basis data tersebut. c. Menyediakan skalabilitas superior, basis data dan sistem yang menggunakannya dapat ditingkatkan atau dikembangkan untuk menemukan kebutuhan – kebutuhan perubahan pada suatu organisasi. Sedangkan kekurangan basis data adalah sebagai berikut : a. Lebih kompleks dan membutuhkan perangkat lunak khusus yang disebut DBMS. b. Membutuhkan investasi yang cukup besar karena biaya pengembangan basis data cukup tinggi. c. Meningkatnya vulnerabilitas yang melekat pada pengguna data yang berbagi pakai, oleh karena itu backup dan recovery serta keamanan dan privasi menjadi isu penting pada basis data. 2.1.3 Database Management System (DBMS) 2.1.3.1 Pengertian DBMS Menurut Fathansyah (2004, p14), Sebuah Sistem Pengelola Basis Data (Database Management System atau DBMS) terbagi atas modul – modul yang masing – masing memiliki tanggung jawab dalam membentuk struktur sistem basis data secara keseluruhan. Menurut Gerald V. Post (2005, p2), Sebuah Database Management System (DBMS) adalah perangkat lunak yang mendefinisikan basis data, menyimpan data, mendukung bahasa query, menghasilkan laporan, dan membuat layar entri data. Menurut Richard T. Watson (2004, p571), Database Management System (DBMS) adalah alat utama untuk dapat memelihara integritas basis data dan menyediakan data kepada pengguna. Menyediakan data mempunyai arti bahwa data tersebut dapat diakses oleh siapa saja yang membutuhkannya. Menurut Connolly dan Begg (2005, p16), Database Management System (DBMS) adalah sebuah perangkat lunak yang mengizinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. 9 2.1.3.2 Fasilitas DBMS Menurut Connolly dan Begg (2005, p16), beberapa fasilitas yang disediakan dalam DBMS adalah sebagai berikut : 1. DBMS memungkinkan pengguna untuk melakukan suatu basis data, biasanya menggunakan Data Definition Language (DDL). DDL mengizinkan pengguna untuk menspesifikasikan tipe dan struktur data serta batasan – batasan data yang akan disimpan dalam basis data. 2. DBMS memungkinkan pengguna untuk melakukan insert, update, dan retrieve terhadap data – data yang ada di dalam basis data melalui Data Manipulation Language (DML). DML menyediakan suatu fasilitas umum bagi data yang disebut query language. 3. DBMS menyediakan kontrol terhadap pengaksesan suatu basis data, misalnya sebuah sistem keamanan yang tidak berkepentingan mengakses basis data 2.1.3.3 Komponen DBMS Menurut Connolly dan Begg (2005, p18 – p23), komponen – komponen dalam lingkungan DBMS adalah sebagai berikut : 1. Perangkat keras (hardware) DBMS dan aplikasi memerlukan hardware untuk dijalankan. Hardware yang diperlukan dapat berkisar dari sebuah personal komputer, mainframe, sampai pada sebuah jaringan dari komputer. Beberapa hardware bergantung pada kebutuhan organisasi dan DBMS yang digunakan. 2. Perangkat lunak (software) Komponen software terdiri dari software DBMS itu sendiri dan program aplikasi bersama dengan sistem operasi, software jaringan jika DBMS menggunakan jaringan 3. Data Merupakan komponen DBMS yang paling penting. Data berfungsi sebagai jembatan antar komponen mesin dan manusia. 4. Prosedur Merupakan instruksi dan aturan yang memerintah perancangan dan penggunaan basis data. Penggunaan sistem dan petugas yang mengatur basis data memerlukan dokumentasi posedur bagaimana untuk menggunakan dan menjalankan sistem. Instruksi tersebut seperti : 10 a. Bagaimana log in ke dalam basis data. b. Bagaimana menggunakan fasilitas DBMS tertentu. c. Memulai dan menghentikan DBMS. d. Bagaimana menangani kesalahan hardware dan software tertentu. 5. Manusia Merupakan komponen terakhir yang terlibat dalam sistem. Komponen – komponen manusia terdiri dari : a. Database Administrator Menyediakan dukungan teknis untuk implementasi keputusan tersebut dan bertanggung jawab atas kesulurahan kendali sistem pada tingkat teknis. b. Database Designer Pada bagian ini terdiri dari tipe perancangan yaitu : i. Logical database designer Berhubungan dengan mengidentifikasi data, relasi antar data, constraints pada data yang di simpan di basis data. ii. Physical database designer Menentukan bagaimana logical database design dicapai secara fisik. c. Pemrograman Aplikasi Bertanggung jawab untuk membuat aplikasi basis data dengan menggunakan bahasa pemrograman yang ada. d. End User Siapapun yang berinteraksi dengan sistem secara online atau tidak melalui komputer atau jaringan. 11 Gambar 2.1 Komponen DBMS Environment 2.1.3.4 Fungsi DBMS Menurut Connolly dan Begg (2005, p48), fungsi DBMS adalah sebagai berikut : a. Penyimpanan, Pengambilan, dan Pembaruan data Sebuah DBMS harus melengkapi pengguna dengan kemampuan untuk menyimpan, mengambil, dan memperbarui data dalam basis data. b. Katalog User-Accesible Sebuah DBMS harus memberikan katalog yang menyimpan deskripsi tentang data item dan dapat diakses oleh pengguna. c. Mendukung Transaksi Sebuah DBMS harus memberikan mekanisme yang akan memastikan bahwa semua kegiatan update yang dilakukan sesuai dengan transaksi yang terjadi atau tidak ada kegiatan update yang dibuat bagi transaksi tersebut. d. Layanan Kendali Konkurensi Sebuah DBMS harus memberikan mekanisme untuk memastikan bahwa basis data di-update dengan benar ketika banyak pengguna meng-update basis data secara bersama-sama. e. Layanan Pemulihan Sebuah DBMS harus memberikan mekanisme untuk memulihkan basis data disaat basis data dirusak dengan cara apapun. Kerusakan basis data dapat diakibatkan karena kerusakan sistem, kesalahan media, dan kesalahan software atau hardware 12 yang disebabkan karena adanya kesalahan selama proses transaksi dan penyelesaian transaksi yang tidak lengkap. f. Layanan Authorisasi Sebuah DBMS harus menyediakan sebuah mekanisme untuk memstikan bahwa hanya pengguna yang berotoritas dapat mengakses basis data. g. Dukungan Untuk Komunikasi Data Sebuah DBMS harus mampu berintegrasi dengan software komunikasi. h. Layanan Integritas Sebuah DBMS harus dilengkapi sebuah arti untuk memstikan bahwa data didalam basis data dan perubahan pada data mengikuti aturan tertentu. i. Layanan Peningkatan Keterbatasan Data Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur yang sebenarnya dari basis data. Keterbatasan data biasanya dicapai melalui pandangan atau mekanisme sub skema. j. Layanan Utilitas Sebuah DBMS harus menyediakan seperangkat layanan utilitas. Program utilitas membantu DBA mengelola basis data secara efektif. Beberapa utilitas bekerja pada tingkat eksternal, dan konsekuensinya dapat dibuat oleh DBA, yang lainnya bekerja pada tingkat internal dan dapat disediakan hanya dengan vendor DBMS. Contoh dari utilitas tersebut antara lain : i. Fasilitas impor, untuk me-load basis data dari flat file, dan fasilitas ekspor, untuk me-unload basis data dari flat file. ii. Fasilitas pemantau, untuk memantau pengguna dan operasi basis data. iii. Program analisa statistik, untuk memeriksa performa dan penggunaan statistik. iv. Fasilitas penyusunan index, untuk menyusun kembali index dan overflow mereka. v. Penempatan dan pengumpulan sampah, untuk menghilangkan record yang dihapus secara fisik dari alat penyimpanan, untuk menggabungkan ruang yang terlepas, dan untuk menempatkan kembali record tersebut dimana ia dibutuhkan. 13 2.1.3.5 Keuntungan dan Kerugian Database Management System Menurut Connolly dan Begg (2010, p77), keuntungan dari DBMS yaitu : 1. Mengendalikan redudansi data Pendekatan basis data berusaha untuk menghilangkan redudansi dengan mengintegrasikan file - file supaya salinan dari data yang sama tidak disimpan. Bagaimanapun basis data tidak menghapus semua data redudan, tetapi mengawasi jumlah redudansi pada basis data. 2. Konsistensi data Dengan menghilangkan atau mengontrol redundansi, maka akan mengurangi ketidakkonsistenan yang terjadi. Jika data disimpan sekali dalam basis data, perubahan-perubahan terhadap nilai dilakukan sekali, dan nilai baru segera disediakan ke semua user. 3. Lebih banyak informasi dari data yang sama Dengan pengintegrasian data operasional, ini memungkinkan organisasi untuk memperoleh informasi tambahan dari data yang sama. 4. Penggunaan data bersama. Secara khusus, file yang dimiliki orang – orang atau departemen yang menggunakannya. Di sisi lain, basis data dimiliki keseluruhan organisasi dan dapat bersama – sama menggunakannya. Dengan cara ini, pada pemakai berbagi lebih banyak data. 5. Meningkatkan integritas data. Integritas basis data menunjuk pada validitas dan konsistensi data yang tersimpan. Integritas umumnya dinyatakan dalam aturan – aturan yang konsisten. 6. Meningkatkan keamanan Keamanan basis data merupakan perlindungan basis data dari pengguna yang tidak berwenang. Hal ini dilakukan dengan membentuk username dan password untuk mengidentifikasi pengguna yang berwenang menggunakan basis data. 7. Standarisasi Masing – masing pemakai atau departemen mempunyai kebutuhan yang mungkin adalah tidak sesuai dengan kebutuhan pemakai yang lain. Sejak basis data dikendalikan dibawah DBA, DBA dapat membuat keputusan tentang desain 14 dan penggunaan operasional basis data yang menyediakan penggunaan sumber daya organisasi yang terbaik secara keseluruhan. 8. Perbandingan skala ekonomi Kombinasi semua data kedalam satu basis data, dan menciptakan satu set aplikasi yang bekerja pada sumber data, dapat mengakibatkan biaya. Dalam hal ini, anggaran yang akan secara normal dialokasikan untuk masing – masing departemen untuk pengembangan dan pemeliharaan tentang sistem basis data yang dapat dikombinasikan, mungkin menghasilkan total biaya yang lebih rendah, untuk mendorong ke arah suatu skala ekonomi. 9. Keseimbangan dari persyaratan yang bertentangan Setiap user atau departemen memiliki kebutuhan yang mungkin bertentangan dengan kebutuhan pengguna lain. Karena basis data di bawah kendali DBA, DBA dapat membuat keputusan tentang desain dan operasional dari basis data yang menyediakan penggunaan terbaik sumber daya bagi organisasi secara keseluruhan. 10. Meningkatkan tingkat akses dan respon data Menyediakan suatu sistem dengan potensi kemampuannya lebih baik. 11. Meningkatkan produktifitas DBMS menyediakan banyak fungsi standar sehingga memungkinkan programmer berkonsentrasi pada fungsionalitas spesifik yang dibutuhkan oleh pengguna tanpa harus memikirkan tentang rincian implementasi level bawah. Hal ini menghasilkan peningkatan produktivitas programmer dan mengurangi waktu pengembangan. 12. Meningkatkan pemeliharaan dengan indenpedensi data DBMS memisahkan deskripsi data dari aplikasi, dengan membuat aplikasi tahan terhadap perubahan data (data independence). 13. Meningkatkan konkurensi Dalam beberapa file berbasis sistem, jika dua atau lebih user diizinkan untuk mengakses file yang sama secara bersamaan, ada kemungkinan bahwa akses akan saling mengganggu, yang mengakibatkan hilangnya informasi atau bahkan hilangnya integritas. 15 14. Meningkatkan pelayanan backup dan recovery data Untuk melindungi data dari kegagalan sistem komputer atau program aplikasi. Pencegahannya dengan dilakukan backup terhadap data secara teratur. Apabila setelah dilakukan backup terjadi kegagalan, DBMS menyediakan fasilitas untuk meminimalkan jumlah pemrosesan yang hilang. 2.1.4 Database Language Menurut Connolly dan Begg (2010, p91), data sub-language terdiri dari dua bagian : Data Definition Language (DDL) dan Data Manipulation Language (DML). Kabanyakan data sub-language menyediakan perintah atau command yang dapat diinput secara langsung dari suatu terminal. 2.1.4.1 Data Definition Language (DDL) Menurut Connolly dan Begg (2010, p92), Data Definition Language (DDL) adalah bahasa yang memungkinkan DBA atau pengguna untuk mendeskripsikan dan menamai entitas, atribut, dan hubungan yang diperlukan untuk aplikasi, bersama dengan integritas terkait dan kendala keamanan. 2.1.4.2 Data Manipulation Language (DML) Menurut Connolly dan Begg (2010, p92), Data Manipulation Language (DML) adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung operasi manipulasi data dasar yang ada didalam basis data. Menurut Connolly dan Begg (2005, p40), Data Manipulation Language (DML) adalah suatu bahasa yang memungkinkan pengguna untuk memberitahukan sistem, data apa saja yang diperlukan dan bagaimana memperoleh data tersebut. Menurut Jeffery L. Whitten, Lonnie D. Bentley, dan Kevin C. Dittman (2004, p555), Data Manipulation Language (DML) adalah bahasa DBMS yang digunakan untuk membuat, membaca, memperbarui, dan menghapus record – record. Menurut Connolly dan Begg (2010, p92), operasi untuk manipulasi data biasanya meliputi : • Penambahan data baru kedalam basis data. • Modifikasi dari data yang disimpan kedalam basis data. • Pengambilan data yang disimpan kedalam basis data. 16 • Penghapusan data dari basis data. Salah satu fungsi utama dari DBMS untuk mendukung data manipulation language dimana pengguna bisa membuat statement yang dapat menyebabkan manipulasi data terjadi. Manipulasi data dapat diaplikasi pada tingkat eksternal, konseptual, dan internal. Akan tetapi pada tingkat internal harus mendefinisikan prosedur low level yang kompleks yang memungkinkan pengaksesan data yang efisien. Sebaliknya, pada tingkat yang lebih tinggi lebih ditekankan kepada kemudahan dalam penggunaan usaha – usaha yang diarahkan pada efisiensi interaksi pengguna dengan sistem. 2.1.5 Siklus Hidup Sistem Basis Data Menurut Connolly dan Begg (2010, p313), sistem basis data adalah komponen fundamental dari organization-wide sistem informasi, sistem basis data pengembangan siklus hidup secara inheren terkait dengan siklus hidup sistem informasi. Menurut Connolly dan Begg (2010, p314), waktu basis data dianalisis dan dirancang berdasarkan siklus hidup seperti tergambar pada gambar berikut : Gambar 2.2 Database System Development Life Cycle 17 Sumber (Connolly dan Begg, 2010, p314) a. Perencanaan Basis Data (Database Planning) Perencanaan basis data atau database planning adalah perencanaan bagaimana tahapan – tahapan dari siklus hidup basis data dapat direalisasikan dengan cara yang efisien dan efektif (Connoly dan Begg 2010, p313). Perencanaan basis data harus terintegrasi dengan strategi sistem informasi pada sebuah organisasi. Berikut ini adalah 3 hal utama dalam memformulasi sebuah strategi sistem informasi : • Mengidentifikasi rencana dan tujuan perusahaan kemudian menentukan sistem informasi yang dibutuhkan. • Mengevaluasi sistem informasi yang sedang digunakan, kemudian menentukan kelebihan dan kekurangan dari sistem informasi tersebut. • Melihat peluang sistem apa yang mampu mendapatkan keuntungan yang kompetitif. b. Definisi Sistem (System Definition) Definisi sistem atau system definition bertujuan untuk mendeskripsikan batasan dan ruang lingkup sistem basis data serta user view (Connolly dan Begg 2010, p316). Sebelum melakukan desain terhadap sistem basis data, pertama – tama kita harus mengidentifikasi batas – batas dari sistem yang sedang kita investigasi dan bagaimana itu dapat berinteraksi dengan bagian lain dari sistem informasi organisasi tersebut. Sangat penting untuk kita untuk tidak hanya melibatkan user dan aplikasi yang sudah ada, tapi juga user dan aplikasi dimasa yang akan datang. c. Pengumpulan Kebutuhan dan Analisis (Requirement Collection and Analysis) Pengumpulan kebutuhan dan analisis merupakan proses pengumpulan dan analisis informasi tentang bagian dari organisasi yang akan didukung oleh sistem basis data, dan menggunakan informasi tersebut untuk mengidentifikasi kebutuhan untuk sistem baru yang akan dibuat (Connolly dan Begg 2010, p316). Untuk mengumpulkan informasi, terdapat berbagai macam teknik yang disebut fact-finding techniques. Menurut Connolly dan Begg (2010, p318), terdapat tiga pendekatan utama untuk pengaturan kebutuhan sistem basis data dengan multiple user view, yakni: • Pendekatan Centralized 18 Kebutuhan – kebutuhan untuk setiap user view digabung dalam suatu kumpulan kebutuhan tunggal untuk sistem basis data baru. • Pendekatan View Integration Kebutuhan – kebutuhan untuk setiap user view digunakan untuk membangun model data terpisah untuk merepresentasikan pengguna itu sendiri. • 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 yang dinamakan fact-finding. d. Perancangan Basis Data (Database Design) Tahap ini menjelaskan tentang proses menciptakan desain yang akan mendukung pernyataan mission statement dan mission objective untuk sistem basis data yang diperlukan. (Connolly dan Begg 2010, p325) Pada tahap ini di lakukan perancangan basis data secara konseptual, logikal, dan fisikal. e. DBMS Selection (optional) Pada tahap ini dilakukan pemilihan DBMS yang tepat untuk mendukung sistem basis data. Pemilihan DBMS yang tepat sangat mendukung aplikasi basis data. Langkah – langkah dalam memilih DBMS : • Menentukan istilah referensi studi • Membuat daftar semestara dua atau tiga produk • Evaluasi produk • Merekomendasikan pilihan dan memproduksi laporan f. Perancangan Aplikasi (Application Design) Perancangan aplikasi merupakan perancangan user interface dan perancangan program aplikasi yang digunakan dan dilakukan proses terhadap basis data(Connolly dan Begg 2010, p329). Menurut Connolly dan Begg (2010, p330), ada dua aspek dari desain aplikasi yaitu : 1. Perancangan Transaksi (Transaction Design) Transaksi adalah rangkaian aksi yang dilakukan seorang user atau program aplikasi yang mengakses atau mengubah isi dari basis data. 19 Terdapat tiga transaksi : I. Retrieval Transactions, digunakan untuk mendaptkan kembali data untuk ditampilkan dilayar atau dalam laporan. II. Update Transactions, digunakan untuk menambah data, menghapus data lama, atau memodifikasikan data yang ada dalam basis data. III. Mixed Transactions, melibatkan retrieval dan update data atau kombinasi antara keduanya. 2. Perancangan antar muka (User Interface Design) Sebelum mengimplementasikan suatu form atau laporan, yang pertama kali harus dilakukan adalah merancang desain layout. g. Prototyping (Optional) Prototyping adalah proses membangun prototype dari sistem basis data. (Connolly dan Begg 2010, p333) Sebuah prototype adalah model kerja yang biasanya tidak memiliki semua fitur yang diperlukan atau menyediakan semua fungsionalitas dari final sistem. Tujuan dari prototype sistem basis data adalah adalah untuk memungkinkan user mengidentifikasi keistimewaan sistem atau kekurangannya h. Implementasi (Implementation) Implementasi merupakan tahap realisasi fisik dari basis data dan desain aplikasi yang dirancang sebelumnya (Connolly dan Begg 2010, p333). Tahap ini merupakan waktu dimana kita akan mengimplementasikan basis data dan program aplikasi. Pengimplementasian basis data dilakukan dengan menggunakan DDL dari DBMS yang telah dipilih atau dengan GUI yang menyediakan fungsi yang sama ketika menghilangkan DDL statement level rendah. Program aplikasi diimplementasi menggunakan bahasa generasi ketiga atau keempat. i. Perubahan dan Pengambilan Data (Data Convention and Loading) Dalam tahap ini dilakukan perpindahan data ke basis data yang baru dan mengkonversi aplikasi agar dapat berjalan pada basis data yang baru. (Connolly dan Begg 2010, p334) Tahap ini hanya dapat dilakukan ketika sistem basis data yang baru sudah menggantikan sistem basis data yang lama. j. Pengetesan (Testing) 20 Pengetesan merupakan suatu proses eksekusi program aplikasi dengan tujuan menemukan kesalahan dengan skenario tes yang direncanakan dan data sesungguhnya (Connolly dan Begg 2010, p334). Aplikasi basis data yang telah selesai akan diuji coba dengan tujuan untuk mencari error pada aplikasi. Selain itu, dilakukan pula validasi aplikasi atas kebutuhan yang telah dispesifikasikan sebelumnya oleh pengguna. Setelah dilakukan uji coba terhadap sistem, maka akan dilakukan evaluasi terhadap sistem. Berikut ini adalah beberapa kriteria dalam melakukan evaluasi sistem : • Kemudahan untuk dipelajari : berapa lama waktu yang dibutuhkan seseorang untuk menjadi produktif dalam memakai system • Performa : seberapa baik system dapat merespon kebutuhan user. • Kekuatan system : seberapa kuat system dalam mengatasi user error. • Kemudahan untuk pemulihan : seberapa baik system untuk melakukan pemulihan akibat dari user error. • Kemampuan beradaptasi : seberapa mampu system dapat beradaptasi dengan beberapa model kerja. k. Perawatan Operasional (Operational Maintanance) Operational maintanance merupakan proses pengawasan dan pemeliharaan sistem setelah diinstalasi (Connolly dan Begg, 2010, p335). Pada tahap ini implementasi basis data dilakukan secara sepenuhnya. Sistem diawasi dan dipelihara secara berkelanjutan. Jika diperlukan, kebutuhan kebutuhan baru dimasukkan dalam aplikasi basis data melalui tahapan basis data terlebih dahulu. 2.1.6 Entity Relationship Modeling 2.1.6.1 ERD (Entity Relationship Diagram) Menurut David M. Kroenke dan David J. Aver (2010, p575), Entity Relationship Diagram (ERD) adalah grafik yang digunakan untuk mewakili entitas dan hubungan mereka. Menurut Connolly dan Begg (2005, p342), entity relationship diagram adalah ilustrasi dari entitas – entitas dalam bisnis dan relationship antar entitas. ERD memisahkan antara informasi yang dibutuhkan dalam bisnis dari aktivitas – aktivitas yang dilakukan dalam bsinis. 21 Tujuan utama dari penggambaran ERD adalah untuk menunjukkan struktur objek data (entity) dan hubungan (relationship) yang ada pada objek tersebut. ERD berguna bagi sistem, karena ERD memperlihatkan hubungan antara data store pada data flow diagram (DFD). 2.1.6.2 Entity Type Menurut Connolly dan Begg (2010, p372), entity type yaitu sekumpulan objek – objek dengan properti yang sama yang diindentifikasi dengan keberadaan yang independen diperusahaan. Sebuah entitas mempunyai kumpulan properti dan nilai dari properti tersebut mengidentifikasi entitas secara unik. Entity terdiri dari 2 macam, yaitu : 1. Strong Entity, yaitu tipe entitas yang keberadaannya tidak bergantung kepada keberadaan entitas yang lain. 2. Weak Entity, yaitu tipe entitas yang keberadaannya bergantung kepada entitas yang lain. 2.1.6.3 Relationship Type Menurut Connolly dan Begg (2010, p.374), relationship type adalah sebuah relasi yang bermakna antara beberapa jenis entitas. Setiap tipe relationship diberikan nama yang menjelaskan fungsinya. Adapula relationship occurrence, yaitu sebuah relasi unik yang diidentifikasi mencakup satu kejadian dari setiap entitas yang berpartisipasi. 2.1.6.3.1 Degree of Relationship Type Menurut Connolly dan Begg (2010, p376), degree of relationship type adalah jumlah partisipasi tipe entitas dalam suatu hubungan. Entitas yang terlibat dalam jenis hubungan tertentu yang disebut participants dalam hubungan itu. Jumlah participants dalam jenis hubungan disebut dengan degree dalam hubungan itu. Relasi dengan tingkat derajat dua disebut dengan binary. 2.1.6.3.2 Recursive Relationship 22 Menurut Connolly dan Begg (2010, p.378), recursive relationship adalah sebuah tipe relasi dimana ada tipe entitas yang sama berpartisipasi lebih dari satu kali dengan peran yang berbeda. 2.1.6.4 Attributes Menurut Connolly dan Begg (2010, p379), attributes adalah sebuah property khusus pada sebuah entitas atau pada tipe relasi. Sebagai contoh, tipe entitas staff bisa dijelaskan dengan atribut staffNo, name, position, dan salary. Setiap atribut dihubungkan dengan sebuah set nilai yang disebut domain. Jadi, atribut domain adalah sebuah set nilai untuk satu atau lebih atribut. Atribut dapat diklasifikasikan sebagai : 2.1.6.4.1 Simple and Composite Attributes Menurut Connolly dan Begg (2010, p379), simple attribute adalah sebuah atribut atas satu komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi menjadi bagian yang lebih kecil lagi. Contohnya adalah position dan salary. Menurut Connolly dan Begg (2010, p380), composite attribute adalah sebuah atribut yang terdiri dari beberapa komponen, dimana setiap komponen tersebut memiliki keberadaan yang independen. Contohnya atribut alamat yang terdiri dari nama jalan, kota, dan kode pos. 2.1.6.4.2 Single-valued and Multi-valued Attributes Menurut Connolly dan Begg (2010, p380), single-valued attributes adalah sebuah atribut yang memiliki sebuah nilai tunggal untuk setiap kejadian pada tipe entitas. Menurut Connolly dan Begg (2010, p380), multi-valued attributes adalah sebuah atribut yang memiliki banyak nilai untuk setiap kejadian pada tipe entitas. 2.1.6.4.3 Derived Attributes Menurut Connolly dan Begg (2010, p380), derived attributes adalah sebuah atribut yang memiliki nilai yang berasal dari attribute lain yang berhubungan, dan tidak harus berasal dari satu tipe entitas yang sama. 2.1.6.5 Key Menurut Connolly dan Begg (2010, p381), keys dibedakan menjadi 3, yaitu: 23 • Candidate Key Merupakan sebuah kumpulan minimal atribut yang secara unik mengidentifikasi setiap kejadian pada sebuah tipe entitas. • Primary Key Merupakan candidate key yang dipilih untuk secara unik mengidentifikasi setiap kejadian pada sebuah tipe entitas. Pemilihan primary key didasarkan pada panjang attribute, jumlah minimal attribute yang diperlukan dan keunikannya. Semua candidate key yang tidak termasuk didalam primary key adalah alternate key. • Composite Key Merupakan sebuah candidate key yang memiliki dua atau lebih atribut. 2.1.6.6 Structural Constraint Menurut Connolly dan Begg (2010, p385), constraint mungkin diletakkan pada tipe entitas yang berpartisipasi pada sebuah relasi. Constraint harus mencerminkan batasan – batasan pada relasi seperti yang ada pada “dunia nyata”. Tipe utama sebuah constraint pada sebuah relasi disebut multiplicity. Menurut Connolly dan Begg (2010, p380), multiplicity adalah sebuah angka atau jarak kejadian yang terjadi pada tipe entitas yang mungkin terhubung kepada sebuah kejadian dari tipe entitas yang terasosiasi melalui relasi khusus. Hubungan yang paling umum adalah binary relationship yang terdiri atas : a. One-to-One (1:1) Relationships Gambar 2.3 Binary Relationship one to one (1:1) (Sumber : Connolly dan Begg 2010, p386) 24 b. One-to-Many (1:*) Relationships Gambar 2.4 Binary Relationship one to many (1:*) (Sumber : Connolly dan Begg 2010, p387) c. Many-to-Many (*:*) Relationships Gambar 2.5 Binary Relationship many to many (*:*) (Sumber : Connolly dan Begg 2010, p388) 2.1.7 Metodologi Perancangan Basis Data Menurut Connolly dan Begg (2010, p466), metodologi perancangan adalah sebuah pendekatan terstruktur yang menggunakan prosedur, teknik, peralatan, dan dokumentasi untuk mendukung dan memfasilitasi proses perancangan. Metodologi perancangan terdiri dari beberapa fase dimana setiap fase mengandung beberapa langkah yang akan menuntun desainer dalam menggunakan teknik yang sesuai pada setiap tahap dalam proyek. Metode perancangan juga membantu desainer untuk merencanakan, mengelola, mengatur, dan mengevaluasi pengembangan proyek basis data. Menurut Connolly dan Begg (2010, p467), proses perancangan basis data terbagi menjadi tiga tahap utama yaitu perancangan basis data konseptual, logikal, dan fisikal. 25 2.1.7.1 Perancangan Konseptual Basis Data Tujuan dari perancangan konseptual basis data ini adalah untuk membangun sebuah model data konseptual dari kebutuhan data perusahaan. Fase perancangan konseptual database terdiri dari 9 tahap, yaitu : • Mengidentifikasi Tipe Entitas Tujuan dari langkah ini adalah untuk mengidentifikasi tipe entitas apa saja yang dibutuhkan. Langkah pertama dalam membangun data model konseptual adalah dengan menentukan dan mendefinisikan objek utama yang membuat user tertarik, yaitu tipe entitas. Sebuah metode untuk mengidentifikasi entitas adalah dengan memeriksa spesifikasi kebutuhan user. • Mengidentifikasi Tipe Relationship Tujuan utama dari langkah ini adalah untuk mengidentifikasi relasi penting yang ada diantara tipe – tipe entitas. Setelah mengidentifikasi entitas, langkah selanjutnya adalah mengidentifikasi semua relasi yang ada diantara entitas – entitas tersebut. Terdapat beberapa langkah dalam mengidentifikasi tipe relasi, yaitu : a. Menggunakan Entity-Relationship Diagram (ERD) ERD digunakan untuk mempresentasikan entitas – entitas dan bagaimana mereka berelasi satu dengan yang lainnya dengan lebih mudah. b. Menggunakan multiplicity constraint dari tipe relasi Multiplicity digunakan untuk mengecek dan mempertahankan kualitas data. c. Mengecek fan dan chasm traps Setelah mengidentifikasi relasi yang diperlukan, kita harus mengecek setiap relasi yang ada pada ER model adalah representasi dunia nyata yang benar, dan tidak tercipta fan atau chasm traps. Fan traps adalah keadaan dimana model mempresentasikan sebuah relasi diantara beberapa tipe entitas, tapi jalur antara kejadian entitas tertentu bersifat ambigu. Chasm traps adalah keadaan dimana model mengusulkan munculnya relasi diantara tipe entitas, tapi tidak tersedia jalur diantara kejadian entitas tersebut. d. Laporan Tipe Relasi 26 Pada tahap ini, tipe relasi telah teridentifikasi, lalu diberikan nama yang memiliki arti dan jelas untuk user. Jangan lupa untuk mencatat deskripsi relasi dan multiplicity constraint ke dalam kamus data. • Mengidentifikasi dan menghubungkan atribut dengan entitas atau tipe relasi Tujuan dari langkah ini adalah untuk menghubungkan atribut dengan entitas atau tipe relasi yang sesuai. Pada langkah ini kita akan mengidentifikasi tipe fakta mengenai entitas dan relasi yang telah kita pilih untuk direpresentasikan didalam basis data. Cara yang digunakan hampir sama dengan cara kita dalam mengdentifikasi entitas. • Menentukan domain atribut Tujuan dari langkah ini adalah memnetukan domain untuk semua atribut yang ada pada model. Menurut Connolly dan Begg (2010, p478), domain adalah tempat kumpulan nilai dimana satu atau lebih atribut mengambil nilai – nilai mereka. • Menentukan candidate, primary, dan alternate key Tujuan dari langkah ini adalah untuk mengidentifikasi candidate key. Apabila terdapat lebih dari satu candidate key, maka harus dipilih salah satu untuk dijadikan primary key dan yang lainnya akan menjadi alternate key. Berikut ini adalah petunjuk dalam memilih primary key diantara beberapa candidate key : a. Candidate key dengan atribut yang minimal. b. Candidate key yang paling sedikit kemungkinan untuk berubah nilainya. c. Candidate key dengan karakter yang paling sedikit. d. Candidate key dengan nilai maksimum yang paling kecil. e. Candidate key yang paling mudah digunakan dari sudut pandang user. • Mempertimbangkan penggunaan konsep permodelan tingkat tinggi (langkah opsional) Tujuan dari langkah ini adalah untuk mempertimbangkan penggunaan konsep permodelan tingkat tinggi seperti spesialisasi/generalisasi, agregasi, dan komposisi. • Memeriksa redudansi 27 Tujuan dari langkah ini adalah untuk mengecek keberadaan redudansi apapun yang ada didalam model. Terdapat tiga aktfitas pada tahap ini, yaitu : a. Memeriksa kembali one-to-one relationship. b. Menghilangkan relasi yang redundan. c. Mempertimbangkan dimensi waktu. • Memvalidasi model data konseptual terhadap transaksi user Tujuan dari langkah ini adalah untuk memastikan bahwa model data konseptual dapat mendukung kebutuhan transaksi. Pada tahap ini kita sudah memiliki model data konseptual yang merepresentasikan kebutuhan data perusahaan. Menggunakan model tersebut, kita melakukan operasi secara manual. Apabila kita dapat menyelesaikan semua transaksi, kita dapat memastikan bahwa model data konseptual tersebut dapat mendukung kebutuhan transaksi. • Meninjau kembali model data konseptual dengan user Tujuan dari langkah ini adalah agar user dapat memastikan bahwa model tersebut adalah representasi nyata dari data yang dibutuhkan oleh perusahaan. 2.1.7.2 Perancangan Logikal Basis Data Tujuan dari tahap ini adalah untuk menterjemahkan model data konseptual menjadi sebuah model data logikal, lalu memvalidasikan model tersebut untuk memastikan bahwa secara structural sudah tepat dan mampu mendukung kebutuhan transaksi. Tahap perancangan model data logikal memiliki 7 langkah, yaitu : • Menurunkan relasi untuk model data logikal Tujuan dar langkah ini adalah membuat relasi bagi model data logical untuk merepresentasikan entitas, relasi, dan atribut yang telah diindentifikasi. • Memvalidasikan relasi menggunakan normalisasi Tujuan dari langkah ini adalah untuk memvalidasikan relasi yang ada pada model data logikal menggunakan normalisasi. Pada langkah ini kita mengelompokkan atribut – atribut pada setiap relasi menggunakan aturan normalisasi. Tujuan dari normalisasi ini adalah untuk memastikan bahwa setiap relasi memiliki jumlah atribut minimal untuk 28 mendukung kebutuhan data perusahaan. Relasi juga harus memiliki data redundan yang minimal untuk menghindari anomaly update. • Menvalidasi relasi terhadap transaksi user Tujuan dari langkah ini adalah untuk memastikan bahwa relasi pada model data logikal mendukung kebutuhan transaksi. • Memerika integrity constraint Tujuan dari langkah ini adalah untuk memeriksa apakah terdapat integrity constraint pada model data logikal. Menurut Connolly dan Begg (2010, p502), integrity constraint adalah pembatas yang ingin kita paksakan untuk melindungi basis data menjadi tidak lengkap, tidak akurat, atau tidak konsisten. Kita dapat mempertimbangkan jenis integrity constraint berikut : a. Required Data Beberapa atribut harus mengandung nilai yang valid atau tidak boleh mengandung NULL. b. Attribute Domain Constraints Setiap atribut memiliki domain, yaitu, seperangkat nilai-nilai yang legal. c. Multipicity Multipicity merupakan constraints yang ditempatkan pada hubungan antara data dalam basis data. d. Entity Integrity Primary key dari suatu entitas tidak bisa NULLS. e. Referential Integrity Memastikan bahwa seluruh nilai foreign key cocok dengan nilai primary key yang dihubungkan. f. General Constarits Merupakan kebijakan yang ditentukan oleh perusahaan. • Review model data logikal dengan user Tujuan dari langkah ini adalah meninjau kembali model data logikal dengan user untuk memastikan bahwa model data tersebut telah menjadi representasi nyata dari kebutuhan data perusahaan. Pada tahap ini model data logikal seharusnya telah selesai, dan telah didokumentasikan secara penuh. Tapi, untuk lebih memastikan bahwa ini sudah direpresentasikan kebutuhan perusahaan, maka user diminta untuk melakukan 29 review. Apabila user tidak puas dengan model data tersebut, maka harus dilakukan pengulangan kembali dari langkah awal menggunakan metodelogi yang sama. • Menggabungkan model data logikal kedalam model global (langkah opsional) Tujuan dari langkah ini adalah untuk menggabungkan model data logikal ke dalam sebuah model data logikal global yang mewakili semua sudut pandang user terhadap basis data. Pada langkah ini terdapat beberapa aktifitas, yaitu : a. Menggabungkan model data logikal ke dalam model data logical global. b. Memvalidasi model data logical global. c. Meninjau kembali model data logical global dengan user. • Memeriksa pertumbuhan di masa depan Tujuan dari langkah ini adalah untuk menentukan apakah ada kemungkinan perubahan yang signifikan dan untuk menilai apakah model data logikal dapat mengakomodasi perubahan tersebut. Dalam perancangan logikal basis data kita juga harus memikirkan apakah model data logikal mampu untuk diperluas untuk mendukung kemungkinan perkembangan di masa depan. 2.1.7.3 Perancangan Fisikal Basis Data Menurut Connolly dan Begg (2010, p523), perancangan fisikal basis data adalah proses menghasilkan deskripsi dari pengimplementasian basis data ke dalam tempat penyimpanan sekunder. Proses ini mendeskripsikan relasi dasar, organisasi file, dan index yang digunakan untuk mencapai keefisienan dalam mengakses data, dan setiap integritas data terkait, dan langkah – langkah keamanan. Terdapat beberapa langkap pada tahap perancangan basis data fisikal, yaitu : • Menerjemahkan data model logikal ke DBMS yang dituju Tujuan dari langkah ini adalah untuk menghasilkan skema database relasional dari model data logikal yang akan diimplementasikan ke dalam DBMS yang dituju. Pada tahap ini terdapat 3 aktifitas, yaitu : a. Perancangan relasi dasar 30 Tujuan dari langkah ini adalah untuk menentukan bagaimana cara untuk merepresentasikan relasi dasar yang telah teridentifikasi yang ada pada model data logikal ke dalam DBMS yang dituju. b. Perancangan representasi dari derived data Tujuan dari langkah ini adalah untuk mengetahui bagaimana cara merepresentasikan derived data apapun yang terdapat dimodel data logikal ke dalam DBMS yang dituju. c. Perancangan General Constraint Tujuan dari langkah ini adalah merancang general constraint atau batasan umum untuk DBMS yang dituju. General constraint merupakan kebijakan yang ditetapkan oleh perusahaan. • Perancangan organisasi file dan index Tujuan dari langkah ini adalah menentukan organisasi file untuk menyimpan relasi dasar dan index yang dibutuhkan untuk mencapai performa yang dapat diterima, ini merupakan cara dimana relasi dan tuples juga akan disimpan di dalam tempat penyimpanan sekunder. Pada langkah ini terdapat 4 aktifitas, yaitu : a. Menganalisa transaksi Tujuan dari langkah ini adalah untuk mengenali fungsi dari transaksi yang berjalan pada basis data dan untuk menganalisa transaksi apa saja yang penting. Dalam menganalisa transaksi, harus melihat beberapa kriteria, yaitu : i. Transaksi tersebut dapat sering berjalan dan akan memberikan dampak yang signifikan dalam performa. ii. Transaksi tersebut sangat penting pada operasi bisnis. iii. Ada waktu dimana akan terjadi permintaan yang tinggi dibuat dalam basis data. b. Memilih organisasi file Tujuan dari langkah ini adalah untuk menentukan organisasi file yang efisien untuk setiap relasi dasar. c. Memilih index Tujuan dari langkah ini adalah untuk memastikan apakah dengan menambah index maka performa sistem juga akan meningkat. d. Memperkirakan ruang penyimpanan yang dibutuhkan 31 Tujuan dari langkah ini adalah untuk memperkirakan jumlah ruang penyimpanan yang akan dibutuhkan oleh basis data. • Perancangan user view Tujuan dari langkah ini aadalah untuk merancang user views yang telah diperoleh pada waktu pengumpulan kebutuhan dan tahap analisa pada siklus pengembangan sistem basis data. • Perancangan mekanisme keamanan Tujuan dari langkah ini adalah untuk merancang mekanisme keamanan untuk basis data seperti yang diinginkan oleh user pada tahap pengumpulan kebutuhan pada siklus pengembangan sistem basis data. 2.1.8 Normalisasi Menurut Connolly dan Begg (2010, p416), normalisasi adalah sebuah teknik untuk menghasilkan sebuah set relasi dengan property yang diinginkan, dengan diberikan data perusahaan yang dibutuhkan. Tujuan dari normalisasi adalah untuk mendapatkan sebuah set relasi yang cocok dan dapat mendukung kebutuhan data perusahaan. Karakteristik dari set relasi yang cocok, yaitu : • Jumlah atribut yang diperlukan dengan jumlah yang paling sedikit dalam mendukung kebutuhan data perusahaan. • Atribut dengan relasi logikal yang dekat ditemukan pada relasi yang sama. • Redundansi yang minimal. Beberapa bentuk proses normalisasi dapat dijelaskan sebagai berikut : 2.1.8.1 First Normal Form (1NF) Menurut Connolly dan Begg (2010, p430), Unnormalized Form (UNF) adalah suatu tabel yang berisikan satu atau lebih grup yang berulang. Menurut Connolly dan Begg (2010, p430), First Normal Form (1NF) adalah sebuah relasi dimana pada persimpangan di setiap baris dan kolom mengandung satu dan hanya satu nilai 32 Pada awal tahap ini, tabel masih dalam bentuk yang tidak normal, yang sering disebut unnormalized table. Untuk merubah unnormalized table menjadi bentuk 1NF, kita mengidentifikasi dan menghilangkan kelompok yang mengalami pengulangan yang terdapat pada tabel. Terdapat dua macam pendekatan umum dalam menghilangkan kelompok yang berulang pada tabel yang tidak normal (unnormalized table), yaitu : • Dengan memasukkan data yang sesuai ke dalam baris serta kolom kosong dengan data berulang. • Dengan meletakkan data yang berulang, bersama dengan salinan dari key atribut yang asli, ke dalam relasi yang berbeda. Dengan kedua pendekatan tersebut, maka tabel yang dihasilakan akan menjadi 1NF. 2.1.8.2 Second Normal Form (2NF) Menurut Connolly dan Begg (2010, p434), Second Normal Form (2NF) adalah keadaan sebuah relasi telah pada bentuk 1NF, dan setiap atribut non-primary key fungsinya secara penuh bergantung pada primary key. Pada proses normalisasi dari bentuk 1NF menuju 2NF, kita harus menghilangkan ketergantungan parsial. Apabila terdapat ketergantungan parsial, kita harus menghilangkan atribut yang memiliki ketergantungan parsial tersebut dari relasi dengan meletakkannya ke dalam relasi yang baru bersama dengan salinan dari faktor penentunya. 2.1.8.3 Third Normal Form (3NF) Menurut Connolly dan Begg (2010, p436), Third Normal Form (3NF) adalah keadaan dimana relasi sudah pada bentuk 1NF dan 2NF dan dimana tidak ada atribut non-primary key yang memiliki ketergantungan transitif kepada primary key. Pada proses normalisasi dari bentuk 2NF menjadi 3NF, kita harus menghilangkan ketergantungan transitif. Apabila terdapat ketergantungan transitif, kita hilangkan atribut yang memiliki ketergantungan tersebut ke dalam sebuah relasi baru bersama dengan salinan dari faktor penentunya. 33 2.1.8.4 Boyce – Codd Normal Form (BCNF) Menurut Connolly dan Begg (2010, p 447), Boyce – Codd Normal Form (BCNF) ialah relasi dalam BCNF jika dan hanya jika setiap determinan adalah candidate key. BCNF berdasarkan dependensi fungsional yang memperhitungkan semua candidate key adalah relasi, namun BCNF juga memiliki kendala tambahan dibandingkan dengan definisi umum dari 3NF. Untuk menguji suatu relasi dalam BCNF, kita mengidentifikasi semua determinan dan memastika mereka adalah candidate key. Ingatlah bahwa determinan adalah atribut, atau kelompok atribut, dimana beberapa atribut lainnya sepenuhnya bergantung fungsional. Perbedaan antara 3NF dan BCNF adalah bahwa untuk dependensi fungsional A->B, 3NF memungkinkan ketergantungan ini dalam relasional jika B adalah atribut primary key dan A bukan merupakan candidate key, sedangkan BCNF menegaskan bahwa untuk ketergantungan ini tetap dalam relasi, A harus menjadi candidate key. Oleh karena itu, BCNF adalah bentuk yang lebih kuat dari 3NF, sehingga setiap relasi dalam BCNF juga ada dalam 3NF. Namun, relasi dalam 3NF belum tentu pada BCNF. 2.1.8.5 Forth Normal Form (4NF) Menurut Connolly dan Begg (2010, p457), Forth Normal Form (4NF) adalah relasi dalam 4NF jika dan hanya jika untuk setiap trivial ketergantungan multi-valued dependency (MVD) A->>, A adalah sebuah candidate key dari suatu relasi. Menurut Connolly dan Begg (2010, p 456), Multi Valued Dependency (MVD) adalah merupakan ketergantungan antara atribut (misalnya, A, B, dan C) pada suatu relasi, sehingga untuk setiap nilai A ada satu set nilai untuk B dan satu set nilai C. Namun, set nilai untuk B dan C adalah independen satu sama lain. Forth Normal Form (4NF) mencegah relasi dari nontrivial MVD tanpa deteminan terkait menjadi candidate key untuk relasi. Ketika aturan dilanggar 4NF, ada potensi redudansi data. Normalisasi dari sebuah relasi yang memecahkan aturan 4NF memerlukan penghapusan MVD yang salah dari relasi dengan menempatkan multi-valued attribute (s) dalam sebuah relasi baru 2.1.8.6 Fifth Normal Form (5NF) 34 Menurut Connolly dan Begg (2010, p458), Fifth Normal Form (5NF), relasi dalam 5NF jika dan hanya jika untuk setiap join dependency (R1, R2, ..., Rn) dalam relasi R, masing – masing proyeksi mencakup candidate key dari original relation. Fifth Normal Form (5NF) mencegah sebuah relasi dari ketergantungan nontrivial join dependency (JD) tanpa proyeksi terkait termasuk candidate key dari original key. Nontrival JD tidak berhubungan dengan candidate key yang sangat langka, sehingga relasi – relasi 4NF biasanya juga ada dalam 5NF. Menurut Connolly dan Beg (2010, p459), Join Dependency (JD) mengggambarkan jenis ketergantungan. Untuk contoh, untuk sebuah relasi R sengan subset dari atribut - atribut R adalah sebagai A, B, ..., Z, sebuah relasi R memenuhi join dependency jika dan hanya jika setiap nilai legal dari R adalah sama dengan gabungan proyeksi pada A, B, ..., Z. 2.2 Teori Khusus Hal – hal khusus yang berhubungan dengan topik skripsi dan alat bantu analisis dan perancangan basis data. Dalam tinjauan pustaka yang berhubungan dengan hal – hal khusus tentang topik skripsi, alat bantu analisis, dan perancangan basis data akan diuraikan secara singkat. Antara lain perpustakaan, Visual Basic, Microsoft SQL Server, Flow Chart, Diagram Konteks, STD. 2.2.1 Perpustakaan 2.2.1.1 Pengertian Perpustakaan Menurut Undang Sudarsana dan Bastiano (2007,p1.5), perpustakaan berasal dari kata “pustaka” yang berarti buku atau kitab. Dalam bahasa Inggris perpustakaan disebut library, bahasa Belanda bibliotheek, bahasa Perancis bibliotheque, bahasa Spanyol dan Portugis bibliotheca. Kalau kita telusuri library bermula dari kata Latin liber artinya buku, sedangkan akar kata bibliotheek adalah biblos dari bahasa Yunani artinya tentang buku. Kata biblos ini kemudian berkembang menjadi bible artinya alkitab. 35 Berdasarkan pernyataan-pernyataan di atas, perpustakaan merupakan suatu tempat untuk mengumpulkan, memilih, menyimpan, memelihara, serta menyebarluaskan semua ilmu pengetahuan manusia. Menurut Perpustakaan Nasional Republik Indonesia (2010,p7), perpustakaan adalah sebagai unit kerja yang memiliki tugas, fungsi, visi, dan misi tertentu, bila ditinjau dari sudut filosofi dan organisasi. 2.2.1.2 Tugas dan Fungsi Perpustakaan Menurut Undang Sudarsana dan Bastiano (2007,p1.8), tugas pokok perpustakaan adalah menyediakan, mengolah, memelihara dan mendayagunakan koleksi bahan pustaka, menyediakan sarana pemanfaatannya dan melayani masyarakat pengguna yang membutuhkan informasi dan bahan bacaan. Dan fungsi perpustakaan dapat dijabarkan sebagai berikut : Fungsi Umum 1. Fungsi Pendidikan Fungsi pendidikan artinya perpustakaan merupana tempat belajar seumur hidup, terutama bagi mereka yang telah meninggalkan bangku sekolah. 2. Fungsi Informatif Fungsi informatif artinya perpustakaan menyediakan informasi yang diperlukan oleh pemakai perpustakaan. 3. Fungsi Penelitian Fungsi penelitian di sini bukanlah berarti perpustakaan sama dengan laboratorium, tetapi perpustakaan melalui koneksi yang disediakannya dan melalui pelayanan yang diselenggarakannya membantu dan memberikan dukungan kepada masyarakat yang akan melakukan penelitian berupa penyediaan atau pemberian informasi tentang data. 4. Fungsi Rekreatif Fungsi rekreasi di sini, adalah perpustakaan berusaha menyajikan bahan-bahan pustaka yang dapat memberikan kesegaran para pemakai perpustakaan. Fungsi Khusus 1. Perpustakaan sebagai pusat sumber belajar (learning resources center). 2. Perpustakaan sebagai pusat bahan pengajaran (instructional material center). 3. Perpustakaan sebagai pusat kegiatan social dan pusat kebudayaan bangsa. 36 4. Perpustakaan sebagai clearing house, yaitu perpustakaan bertugas untuk menyaring dan menghimpun semua karya cetak yang berasal dari daerah setempat. 5. Perpustakaan sebagai pusat informasi dan sistem jaringan. 2.2.1.3 Tujuan Perpustakaan Menurut Undang Sudarsana dan Bastiano (2007,p1.11), Perpustakaan sebagai sarana penunjang semua unsure pendidika, sudah tentu harus terus-menerus melengkapi dirinya dengan koleksi yang up to date, karena isi datri tiap-tiap perpustkaan harus mengembangkan kemajuan manusia di segala bidang dengan tingkat kebutuhan masyarakat pemakainya. Oleh karena itu, tujuan perpustakaan adalah 1. Memberi kesempatan pada masyarakat untuk mengingkatkan kesempatan untuk membaca melalui sumber-sumber bacaan yang sehat; 2. Agar masyarakat memiliki sumber-sumber yang representative dalam upaya untuk menambah ilmu pengetahuan serta pengembangan pribadinya melalui bahanbahan yang dipertanggungjawabkan; 3. Menghidupkan dan memelihara minat serta hasrat masyarakat untuk membaca dan belajar mandiri; 4. Mempertinggi dan memperluas pengetahuan, kecerdasan, keterampilan, dan kesadaran masyarakat; 5. Meningkatkan kemampuan masyarakat untuk berpartisipasi aktif kepada usaha pembangunan. 2.2.1.4 Jenis Perpustakaan Menurut Undang Sudarsana dan Bastiano (2007,p1.20), adapun jenis-jenis perpustakaan dewasa ini adalah sebagai berikut : 1. Perpustakaan Internasioal Perpustakaan internasional adalah perpustakaan yang didirikan oleh dua negara atau lebih atau perpustakaan yang merupakan bagian sebuah organisasi internasional. 2. Perpustakaan Nasional Perpustakaan nasional merupakan perpustakaan utama dan paling komperhensif yang melayani keperluan informasi dari penduduk suatu negara. 3. Perpustakaan Umum 37 Perpustakaan umum adalah lembaga layanan informasi dan bahan bacaan kepada masyarakat umum yang tidak membedakan lapisan, golongan, lapangan pekerjaan, dan lain-lain yang akan menggunakan dan menjadi sasaran layanan perpustakaan. 4. Perpustakaan Khusus Perpustakaan khusus adalah perpustakaan yang diselenggarakan oleh instansi atau lembaga, baik pemerintah maupun swasta yang berfungsi sebagai pusat penelitian dan referensi serta sarana untuk memperlancar pelaksanaan tugas instansi atau lembaga yang bersangkuta. 5. Perpustakaan Sekolah Kehadiran perpustakaan sekolah pada dasarnya adalah bersamaan dengan berdirinya sekolah tesebut. Hal ini disebabkan karena dalam proses pendidikan selalu terjadi adanya komunikasi nformasi anatar pendidik denngan terdidik (siswa). Pepustakaan sekolah merupakan salah satu komponen dalam pengajaran di suatu sekolah, yang merupakan sumber bagi kegiatan belajar mengajar baik guru maupun bagi siswa. Selain itu, perpustakaan sekolah merupakan sarana pendidikan yang bertugas mengumpulkan secara selektif teaching materials yang akan dipakai dalam proses belajar mengajar di setiap sekolah di mana pun ia berada. 6. Perpustakaan Perguruan Tinggi Perpustakaan di perguruan tinggi diselenggarakan untuk membantu studi mahasiswa, hal ini dikarenakan perpustakaan perguruan tinggi berperan sebaga unit sarana kelengkapan pusat suatu perguruan tinggi yang bersifat akademis dalam menunjang pelaksanaan tridharma perguruan tinggi. 2.2.1.5 Istilah Berkaitan Dengan Perpustakaan Sekolah 2.2.1.5.1 Koleksi Perpustakaan Menurut Perpustakaan Nasional Republik Indonesia (2010, p1), koleksi perpustakaan adalah semua materi perpustakaan yang dikumpulkan, diolah, disimpan, ditemukembali, dan didayagunakan bagi pengguna untuk memenuhi kebutuhan informasi untuk pemebelajaran. 2.2.1.5.2 Layanan Perpustakaan 38 Menurut Perpustkaan Nasional Republik Indonesia (2010, p1), layanan perpustakaan adalah kegiatan pendayagunaan koleksi materi perpustakaan kepada pengguna, yaitu sirkulasi, referensi, penelusuran, pendidikan pengguna, pinjam antarperpustakaan. 2.2.1.5.3 Katalog Menurut Abdul Rahman Saleh dan Badollahi Mustafa (2009, p1.25), adalah daftar yang berisi informasi tentang bahan pustaka atau dokumen yang terdapat pada perpustakaan, toko buku maupun penerbit tertentu. Pengertian katalog dapat lebih luas dari batasan tersebut. Dalam pembahasan ini, katalog hanya akan dibatasi berupa daftar, baik berbentuk kartu, lembaran, buku atau bentuk lain yanng memuat informasi mengenai bahan pustaka atau kepustakaan yang terdapat pada suatu tempat, yakni perpustakaan atau unit informasi. Dua hal penting yang perlu dipahami dari isi katalog adalah : a. Merupakan daftar buku atau dokumen. b. Buku atau dokumen yang didaftar harus terdapat pada suatu tempat. 2.2.1.5.4 Layanan Referensi Menurut Perpustkaan Nasional Republik Indonesia (2010, p1), layanan referensi adalah jasa perpustakaan dalam menjawab pertanyaan, menelusur dan menyediakan materi perpustakaan dan informasi sesuai dengan permintaan pengguna dengan mendayagunakan koleksi referensi. 2.2.1.5.5 Layanan Sirkulasi Menurut Perpustkaan Nasional Republik Indonesia (2010, p2), layanan referensi adalah jasa perpustakaan untuk meminjamkan materi perpustakaan bagi pengguna sesuai dengan ketentuan yang berlaku. Menurut Perpustakaan Nasional Republik Indonesia (2010, p42), jasa – jasa yang termasuk dalam layanan sirkulasi : a. Sistem layanan bahan pustaka Sistem layanan bahan pustaka dapat dilaksanakan dengan sistem layanan terbuka atau sistem layanan tertutup. • Sistem layanan terbuka 39 Sistem ini memberikan kebebasan kepada pengguna perpustakaan untuk memilih dan mengambil sendiri bahan pustaka yang diinginkan dari ruang koleksi. • Sistem tertutup Sistem ini tidak memberi kebebasan pengguna, karena pengguna perpustakaan tidak dapat mengambil sendiri bahan pustaka dari ruang koleksi. Pengambilan bahan pustaka dilakukan oleh petugas perpustakaan. Sistem ini ditujukan untuk koleksi khusus yang keberadaannya perlu memperoleh pengamanan. b. Peminjaman Layanan peminjaman merupakan kegiatan pencatatan bahan pustaka yang dipinjam oleh pengguna. Menurut Undang Sudarsana dan Bastiano (2007, p3.25), beberapa sistem pelayanan peminjaman dapat dikemukakan antara lain sebagai berikut : • Mempergunakan buku catatan Didalam buku catatan sudah tercantum kolom untuk nomor urut, nomor anggota, nama peminjam, pengarang, judul, nomor pokok koleksi, klasifikasi, tanggal kembali. Petugas mencatat pustaka yang akan dipinjam pada kolom yang sudah disediakan. • Mempergunakan tiket (Browne System) Browne Charging System ini mula – mula digunakan di Inggris. Setiap anggota perpustakaan memperoleh tiket pembaca, jumlahnya sama dengan jumlah buku yang boleh dipinjam oleh anggota perpustakaan. • Photocharging Cara ini dapat dikatakan cara peminjaman mekanis. Alat yang dipakai adalah microfilmer. Kalau akan meminjam, data buku dan data peminjam ditaruh dalam alat tersebut, lalu tombol tertentu ditekan. Dalam waktu beberapa detik sudah tercatat dalam bentuk negative film. • Komputer Cara peminjaman dengan menggunakan komputer adalah cara yang paling mutakhir. Jumlah tenaga yang diperlukan jauh lebih sedikit jika dibandingkan dengan cara lain. 40 Kalau pustaka akan dipinjam, data peminjam dalam data pustaka yang dipinjam dimasukkan ke dalam komputer. Dalam waktu yang singkat data sudah di proses. • New Ark Charging System Sistem pelayanan yang banyak dipergunakan di perpustakaan sekolah dan perpustakaan perguruan tinggi di Indonesia adalah New Ark Charging System. Pada sistem ini, anggota perpustakaan memperoleh kartu peminjaman. Kartu peminjaman berisi nama, alamat, nomor pendaftaran, tanggal berakhirnya kartu anggota, tanda tangan anggota serta kolom tanggal pinjam, dan tanggal haru kembali. c. Pengembalian Pengembalian adalah kegiatan pencatatan bahan pustaka yang dikembalikan oleh pengguna. d. Pemberian sanksi Apabila pengguna yang meminjam bahan pustaka melakukan pelanggaran, perpustakaan dapat memberikan sanksi kepada peminjam. 2.2.1.5.6 Materi Perpustakaan Menurut Perpustkaan Nasional Republik Indonesia (2010, p2), materi perpustakaan berupa semua hasil karya tulis, tercetak, dan non cetak termasuk media audiovisual dan elektronik. 2.2.1.5.7 Materi Perpustakaan Referensi Buku yang disusun untuk memberikan informasi berbagai macam hal dan dimaksudkan sebagai acuan bukan untuk dibaca secara keseluruhan, seperti atlas, bibliografi, buku tahunan, ensiklopedi, direktori, indeks, kamus. 2.2.1.5.8 Pengguna Menurut Perpustkaan Nasional Republik Indonesia (2010, p2), pengguna yaitu pendidik, tenaga kependidikan, peserta didik, dan komunitas sekolah. 2.2.1.5.9 Pengolahan Materi Perpustakaan Menurut Perpustkaan Nasional Republik Indonesia (2010, p2), pengolahan materi perpustakaan merupakan proses di dalam menyiapkan suatu materi perpustakaan untuk dimanfaatkan pengguna. Pengolahan materi perpustakaan 41 mencakup kegiatan registrasi, pengatalogan, klasifikasi, dan penyelesaian fisik materi perpustakaan. 2.2.1.5.10 Tenaga Perpustakaan Sekolah Tenaga kependidikan yang diberi tugas teknis serta tanggung jawab, wewenang, dan hak secara penuh untuk melakukan kegiatan kepustakawanan di sekolah. 2.2.2 Waterfall Model Menurut Sommerville (2011, p30), waterfall model adalah contoh dari rencana. Didorong dengan proses, harus merencanakan dan menjadwalkan semua kegiatan proses sebelum bekerja. Tahapan dari waterfall model merefleksikan pokok – pokok dari aktivitas pengembangan : 1. Requirement Ananlysis and Definition Layanan yang diberikan oleh sistem, batasan sistem, dan tujuan ditetapkan setelah melakukan konsultasi dengan pengguna sistem. Semua didefinisikan secara rinci dan dibuat sebagai spesifikasi dari sistem. 2. System and Software Design Proses perancangan sistem menyediakan kebutuhan hardware atau software dengan menyediakan arsitektur dari keseluruhan sistem. Perancangan sistem melibatkan pengidentifikasian dan penjelasan dari abstraksi sistem dan hubungannya. 3. Implementation and Unit Testing Pada tahap ini, perancangan sistem direalisasikan menjadi sebua program atau unit program. Pengujian unit melibatkan verifikasi untuk memastikan apakah setiap unit memenuhi spesifikasi sistem. 4. Integration and System Testing Setiap unit program dan program – program yang sudah ada diintegrasikan dan diuji sebagai satu keutuhan sistem untuk memastikan apakah kebutuhan sistem sudah terpenuhi. Setelah melakukan pengujian, sistem baru disebarkan ke pengguna. 5. Operation Maintanance Dilakukan instalasi terhadap sistem dan digunakan dalam prakteknya. Maintanance melibatkan koreksi terhadap error yang tidak ditemukan pada tahap 42 sebelumnya, memperbaiki implementasi dari unit sistem dan meningkatkan layanan yang diberikan oleh sistem sebagai kebutuhan baru yang ditemukan. G a m b a r Gambar 2.6 Waterfall Model 2.2.3 Diagram Air (Flowchart) Menurut Hall (2011, p239), sistem flowchart adalah repesentatik grafik dari relasi fisik diantara elemen – elemen sistem. Elemen – elemen tersebut termasuk departemen organisasi, aktifitas manual, program komputer, hard – copy, soft – copy. Sebagai representasi dari sebuah program, flowchart maupun algoritma dapat menjadi alat bantu untuk memudahkan perancangan alur urutan logika suatu program, memudahkan pelacakan sumber kesalahan program, dan alat untuk menerangkan logika program. Simbol – simbol flowchart : Gambar Simbol Keterangan Titik Terminasi Awal atau akhir program Input/Output Input atau output data Proses Pelaksanaan tugas fungsi Keputusan Penyeleksian kondisi Garis Alir Menunjukkan arus Tabel 2.1 Simbol Program Flowchart proses 43 (Sumber : Hall 2011, p249) 2.2.4 Data Flow Diagram (DFD) Menurut John Satzinger, Robert Jackson, dan Stephen Burd (2009, p206), Data Flow Diagram (DFD) adalah model sistem grafis yang menunjukkan semua syarat utama untuk sistem informasi dalam satu diagram: input dan output, proses, dan penyimpanan data. Menurut Indrajani (2011, p11), Data Flow Diagram (DFD) adalah sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai, dan kerja atau proses dilakukan dalam sistem tersebut. Dalam DFD ini terdapat 4 komponen utama, yaitu : a. External Agents Agen eksternal mendefinisikan orang atau sebuah unit organisai, sistem lain, atau organisasi yang berada di luar sistem proyek tapi dapat mempengaruhi kerja sistem. b. Process Proses adalah penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya. c. Data Stores Data Stores adalah penyimpanan data. d. Data Flow Data Flow merepresentasikan sebuah input data ke dalam sebuah proses atau output dari data (atau informasi) pada sebuah proses. De Marco and Yourdan Symbols KETERANGAN Source Proses Data Flow Gane and Sarson Symbols 44 (Arus Data) Data Store (Simpanan Data) Tabel 2.2 Komponen DFD (Sumber : Indrajani 2011, p12) Jenis – jenis DFD adalah sebagai berikut a. Level 0 (Diagram Konteks) Level ini merupakan sebuah proses yang berada di posisi pusat. b. Level 1 (Diagram Nol) Level ini merupakan sebuah proses yang terdapat di level 0 yang dipecahkan menjadi beberapa proses lainnya. Sebaiknya maksimum 7 proses untuk sebuah program diagram konteks. c. Level 2 (Diagram Rinci) • Pada level ini merupakan diagram yang merincikan diagram level 1. • Tanda * digunakan hanya jika proses tersebut tidak dapat dirincikan lagi. 2.0* artinya proses level rendah yang tidak dapat dirincikan lagi. • Penomoran yang dilakukan berdasarkan urutan proses. 2.2.5 STD (State Transaction Diagram) Menurut Indrajani (2011, p17), State Transaction Diagram (STD) adalah suatu kondisi yang menunjukkan keadaan tertentu, dimana suatu sistem dapat dan transisi menghasilkan keadaan tertentu yang baru. Biasanya digunakan dalam sistem yang real time. Hal – hal yang terdapat dalam STD, antara lan : • System State Setiap empat persegi panjang menggambarkan satu keadaan sistem dari sistem secara keseluruhan. • Change of State 45 State1 State2 State3 Gambar 2.7 Changes of State (Sumber : Indrajani 2011, p18) • Conditions and Actions 46 State1 Condition Action State2 Gambar 2.8 Conditions and Actions (Sumber : Indrajani 2011, p18) 2.2.6 Visual Basic Menurut Dulaney (2000, p.xv) Visual basic merupakan pengimplementasian secara grafis dari bahasa yang mulai diperluas ke dunia Windows. Visual basic dirilis pada tahun 1991, dan menjadi sebuah sistem operasi berbasis event dimana respon dibangun di sekitar event tersebut. 2.2.7 Microsoft SQL Server Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar. 2.2.8 IMK 2.2.8.1 Delapan Aturan Emas 47 Menurut Shneiderman (2005, p.74), ada delapan aturan emas yang digunakan dalam merancang interface, yaitu: a. Mencoba untuk konsisten Konsistensi merupakan aturan yang sering dilanggar karena memiliki banyak bentuk konsistensi, antara lain urutan aksi, istilah yang digunakan, warna, layout, kapitalisasi, huruf, dan lain-lain. Dengan tampilan yang konsisten maka user akan merasa tetap berada dalam aplikasi yang sama walaupun telah berpindah halaman. b. Memenuhi kebutuhan universal Memahami kebutuhan user yang bermacam-macam dan membuat desain yang fleksibel yang mendukung perubahan dalam konten. Perbedaan Novice – Expert user, jarak umur, kecacatan fisik, serta beragam teknologi masing-masing merupakan syarat yang harus menjadi pertimbangan dalam desain. Dengan menambahkan beberapa fitur untuk novice user seperti shortcut, akan menambah kualitas dari sistem. c. Memberikan umpan balik yang informatif Umpan balik dari sistem harus ada pada setiap aksi yang dilakukan user. Untuk aksi kecil yang sering dilakukan, tanggapan dapat dibuat dengan sederhana, sedangkan untuk aksi besar dan jarang dilakukan, respon hendaknya dibuat lebih tegas dan jelas agar user dapat mengerti dengan jelas. d. Dialog untuk keadaan akhir Urutan aksi hendaknya disusun menjadi kategori awal, tengah, dan akhir. Untuk memberikan kepuasan pencapaian, kelegaan, dan sebagai tanda untuk mempersiapkan diri memasuki kategori aksi selanjutnya, dibuatlah umpan balik yang informatif pada penyelesaian salah satu kategori aksi. e. Pencegah kesalahan Sedapat mungkin rancanglah sistem agar user tidak dapat membuat kesalahan yang fatal. Contohnya tidak memperbolehkan karakter 48 alfabet pada kotak entry nomor. Interface harus mendeteksi kesalahan dan memberikan instruksi yang mudah dimengerti, membangun, dan jelas untuk memperbaikinya, jika user membuat kesalahan. f. Pembalikan aksi yang sederhana Dalam suatu aplikasi, pada setiap aksi harus terdapat pembalikan aksi. Fitur ini dapat memperkecil kesalahan, karena user tahu bahwa aksi bisa dibatalkan. Pembalikan bisa saja atas satu aksi seperti saat memasukkan data, atau serangkaian aksi seperti pada waktu pengisian nama dan alamat. g. Mendukung pusat kendali internal User yang udah terbiasa dengan suatu aplikasi, biasanya ingin memiliki kendali atas interface dan tanggapan pada aksinya. Aksi interface yang tidak seperti biasanya, rangkaian pemasukan data yang membosankan, tidak bisa atau sulit mendapatkan informasi yang diperlukan, dan tidak bisa menghasilkan aksi yang diinginkan dapat menimbulkan keresahan dan ketidakpuasan pada user. h. Mengurangi beban ingatan jangka pendek Dikarenakan oleh keterbatasan manusia dalam memproses informasi dalam jangka pendek, dibutuhkan tampilan yang ringan, penggabungan halaman-halaman, pengurangan frekuensi windowmotion, pemberian waktu latihan yang cukup untuk kode-kode, hafalan, dan rangkaian atas aksi. Oleh karena itu, dalam setiap perancangan aplikasi dibutuhkan alur aplikasi yang mudah diingat oleh user.