BAB 2 TINJAUAN PUSTAKA Pada tinjauan pustaka akan dibahas secara ringkas hal-hal umum yang berhubungan dengan basis data dan hal-hal khusus yang berhubungan dengan topik skripsi dan alat bantu analisis dan perancangan basis data. 2.1 Definisi Data Menurut Hoffer, Prescott dan McFadden (2005, p5), data merupakan gambaran objek dan peristiwa yang mempunyai arti dan kepentingan di lingkungan pemakai. Sedangkan informasi merupakan data yang telah diproses sedemikian rupa sehingga dapat meningkatkan pengetahuan seseorang yang menggunakan data tersebut. 2.2 Definisi Basis Data Menurut Connoly dan Begg (2010,p65), basis data merupakan kumpulan data yang terhubung secara logika dan deskripsi dari suatu data yang dirancang sebagai informasi yang dibutuhkan oleh organisasi. Menurut Capron dan Johnson (2010, p176), basis data adalah kumpulan data yang terhubung yang disimpan dengan pengulangan yang sedikit. 2.3 DBMS Menurut Hoffer, Prescott dan McFadden (2005,p7), DBMS merupakan sebuah sistem piranti lunak yang digunakan untuk membuat, memelihara dan menyediakan akses kontrol kepada pengguna basis data. Sebuah DBMS menyediakan metode yang sistematis untuk menciptakan, memperbaharui, menyimpan dan mengambil kembali data didalam basis data. 7 8 Menurut Connoly and Begg (2005,p16), DBMS merupakan sistem piranti lunak dimana pemakainya dapat mendefinisikan, menciptakan, memelihara dan mengontrol akses ke basis data. DBMS menyediakan beberapa fasilitas : 1. Mengizinkan pengguna untuk menentukan basis data, biasanya melalui Data Definition Language (DDL). DDL menyediakan fasilitas bagi Basis data Administrator (DBA) dan pemakai untuk menentukan tipe data, entitas, atribut dan relasi yang diperlukan aplikasi serta batasan integritas dan keamanan yang bisa disimpan di basis data. 2. Mengizinkan pengguna untuk melakukan pengoperasian data seperti memasukkan, memperbaharui, menghapus dan mengambil data dari basis data. 3. DBMS juga menyediakan akses kontrol terhadap basis data. Contoh akses kontrol yang disediakan : a. Security System, yang mana dapat mencegah pengguna tidak berwenang untuk mengakses basis data. b. Integrity System, yang mana dapat mengatur ketetapan data yang disimpan. c. Concurrency Control System, yang mana dapat memungkinkan berbagi akses ke basis data. d. Recovery Control System, yang mana dapat mengembalikan basis data ke keadaan awal apabila terjadi kesalahan pada piranti lunak atau keras. e. User-Accessible Catalog, yang mana dapat mengandung gambaran data yang ada dalam basis data. 9 2.3.1 Komponen–komponen DBMS Menurut Connoly dan Begg (2005,p18), DBMS memiliki lima komponen penting yaitu : A. Hardware (perangkat keras) Suatu DBMS dan aplikasi yang menggunakan hardware (perangkat keras) untuk menjalankan aplikasi. Hardware (perangkat keras) dapat disusun dari suatu komputer tunggal, suatu mainframe (server) tunggal, suatu jaringan komputer. B. Software (perangkat lunak) Komponen perangkat lunak terdiri dari DBMS Software (perangkat lunak) dan aplikasi program beserta sistem operasi, termasuk perangkat lunak tentang jaringan bila DBMS digunakan dalam jaringan. C. Data Data merupakan komponen terpenting dalam DBMS khususnya sudut pandang dari pengguna mengenai data, dimana data berfungsi sebagai jembatan antara komponen mesin dengan komponen manusia. D. Procedures Prosedur merupakan instruksi dan aturan-aturan dalam membuat rancangan dan menggunakan basis data. Pengguna sistem dan staff yang mengatur kebutuhan basis data dan didokumentasikan dalam prosedur yang berupa petunjuk pengguna sistem atau petunjuk menjalankan sistem. Berikut ini terdiri dari : 1. Log on ke DBMS. 2. Menggunakan sebagian fasilitas DBMS atau aplikasi program. 3. Menjalankan dan menghentikan DBMS. 4. Membuat duplikat backup basis data. 5. Menangani kesalahan pada hardware atau software. 10 6. Mengubah struktur suatu table, mengatur ulang basis data melalui multiple disks, meningkatkan kinerja, atau menyimpan data ke secondary storage. E. People Pengguna yang menjalankan dan terkait dengan sistem. 1. DA (Data Administrator), pihak yang berwenang untuk membuat keputusan strategis dan kebijakan mengenai data yang ada, DBA (Database Administrator), menyediakan dukungan teknis untuk implementasi keputusan tersebut, dan bertanggung jawab atas keseluruhan kontrol sistem pada tingkatan teknis. 2. Database Designer (Basis data Desainer), dalam sebuah proyek basis data yang besar, seharusnya terdapat dua tipe designer yaitu logical database designer dan physical databse designer. Dimana, Logical Database Designer bertugas untuk mengindentifikasi data (entitas dan atribut), hubungan antar data dan hambatan penyimpanan data kedalam basis data. Sedangkan Physical Database Designer menentukan bagaimana basis data logikal untuk dijadikan bentuk fisik. 3. Application Developer (Pengembang Aplikasi), mempunyai tanggung jawab untuk menerima, memasukkan, mengubah, dan menghapus data. 4. End-Users (Konsumen), pihak yang berinteraksi dengan sistem melalui workstation atau terminal. Gambar 2.1 Komponen DBMS 11 2.3.2 Keuntungan dan Kerugian DBMS Menurut Connoly dan Begg (2005,p26), keuntungan DBMS adalah sebagai berikut : 1. Kontrol terhadap data redudancy (pengulangan data). 2. Data yang tetap. 3. Mendapatkan informasi lebih dari jumlah data yang sama. 4. Data digunakan bersama-sama. 5. Meningkatkan integritas data. 6. Meningkatkan keamanan data. 7. Penetapan standarisasi. 8. Pengurangan biaya. 9. Mempermudah pengoperasian data. 10. Memudahan akses dan respon data. 11. Meningkatkan produktifitas. 12. Memudahkan pemeliharaan data mandiri. 13. Menambah konkurensi data. 14. Meningkatkan pelayanan cadangan dan pemulihan. Menurut Connoly dan Begg (2005,p26), kerugian DBMS adalah sebagai berikut : 1. Memiliki sistem yang rumit. 2. Ukuran yang besar. 3. Biaya yang tinggi. 4. Penambahan biaya untuk perangkat keras yang dibutuhkan. 12 5. Penambahan biaya perubahan. 6. Kemampuan yang tidak maksimal. 7. Kegagalan yang ditimbulkan lebih besar. 2.4 Arsitektur Basis Data Gambar 2.2 Tingkat Arsitektur Basis Data Tiga tingkat arsitektur terdiri dari : 1. Tingkat Eksternal Tingkat dimana terdapat tampilan basis data untuk pengguna. Tingkat ini menjelaskan bahwa ada bagian dari basis data yang relevan ke setiap pengguna. Pada tampilan ini terdapat : a. Lebih dari satu entity (entitas). b. Lebih dari satu attribute (atribut). c. Lebih dari satu relationship (hubungan). 13 2. Tingkat Konseptual Tingkat dimana terdapat tampilan basis data untuk komunitas. Tingkat ini menjelaskan data apa yang disimpan di basis data dan juga menjelaskan hubungan antar data. Tingkat ini mewakili : a) Semua entity (entitas), attribute (atribut) dari entity (entitas) tersebut, dan relationship-nya. 3. b) Kendala yang ada pada data. c) Informasi semantik tentang data. d) Keamanan dan integritas informasi. Tingkat Internal Tingkat dimana representasi fisik dari basis data dalam komputer. Tingkat ini menjelaskan bagaimana data disimpan dalam basis data. Tingkat internal ini berkaitan dengan beberapa hal dibawah ini : a) Alokasi ruang penyimpanan untuk data dan indeks. b) Pencatatan data untuk penyimpanan. c) Perbandingan data dan teknik enkripsi data. d) Penempatan pencatatan. Dibawah tingkat internal terdapat tingkat fisik yang mengatur sistem operasi dibawah arahan dari DBMS. Fungsi dari DBMS dari sistem informasi pada tingkat ini tindak jelas dan berbeda dari sistem ke sistem. (Connolly,2005,p35) 14 2.5 Data Independence Sasaran utama dari tiga tingkat arsitektur adalah untuk menyediakan data independence atau kemandirian data, dalam arti tingkat atas tidak akan berubah dengan perubahan ketingkat bawah. Terdapat dua tipe dari kemandirian data : 2.5.1 Logical Data Independence (Data Mandiri Logis) Merujuk kepada imunitas dari skema eksternal untuk perubahan dalam skema konseptual. 2.5.2 Physical Data Independence (Data Mandiri Fisik) Merujuk kepada imunitas dari skema konsptual untuk perubahan dalam skema internal. (Connolly,2005,p38-39) 2.6 The Database System Development Lifecycle Sebagai sistem basis data komponen mendasar bagi perusahaan besar yang memiliki sistem informasi yang luas, sistem basis data mengembangkan siklus hidup yang secara lazim terkait dengan siklus hidup dari sistem informasi. Penting untuk mengetahui tahapan-tahapan dari pengembangan siklus hidup sistem basis data tersebut. Erikut tahapan-tahapannya : 15 Gambar 2.3 Database System Development Lifecycle 2.6.1 Database Planning (Perencanaan Basis data) Aktivitas manajemen yang memperkenankan tahapan database application lifecycle (siklus aplikasi basis data) direalisasikan seefisien dan seefektif mungkin. Perencanaan basis data harus diintegrasikan dengan semua strategi sistem informasi organisasi. Ada tiga isu pokok yang terlibat dalam perumusan strategi sistem informasi, diantaranya : 1. Identifikasi rencana dan tujuan perusahaan, kemudian menentukan kebutuhan sistem informasi. 2. Evaluasi sistem informasi yanh ada untuk menentukan kelebihan dan kelemahan yang ada. 16 3. Penafsiran kesempatan teknologi informasi yang dapat menghasilkan kekuatan kompetitif. (Connolly,2005,p285). 2.6.2 System Definition (Pendefinisian Sistem) Mendeskripsikan lingkup dan batasan-batasan dari aplikasi basis data dan pandangan pengguna utama. Pendangan pengguna adalah apa saja yang termasuk dalam sistem basis data dari perspektif peran kerja tertentu seperti manajer atau supervisor (pengawas), atau area aplikasi perusahaan seperti personal marketing (pemasaran perorangan) atau kontrol saham (Connolly,2005,p286). 2.6.3 Requirement Collection and Analysis (Pengumpulan dan Analisis Data) Proses pengumpulan dan analisa data tentang bagian dari organiasasi yang akan didukung oleh aplikasi basis data, dan menggunakan data ini untuk mengidentifikasi persyaratan-persyaratan pangguna dari sistem yang baru (Connolly,2005,p288). 2.6.4 Database Design (Perancangan Basis data) Proses menciptakan rancangan untuk suatu basis data yang akan mendukung operasi dan sasaran perusahaan (Connolly,2005,p291). Terdapat dua pendekatan perancangan basis data yaitu : a) Bottom-up Pendekatan ini sesuai untuk rancangan basis data yang sederhana dengan jumlah attribute yang relatif sedikit (Connolly,2005,p291). b) Top-Down Pendekatan ini lebih sesuai untuk strategi rancangan basis data yang rumit (Connolly,2005,p292). 17 Perancangan basis data terdiri data tiga tahap, yaitu : 1. Perancangan Basis data Konseptual Proses membangun sebuah model dari data yang digunakan dalam suatu perusahaan, independen dari semua pertimbangan fisik (Connolly,2005,p293). Berikut langkah dalam perancangan basis data konseptual : Langkah 1 Membangun model data konseptual : a. Identifikasi tipe entity. b. Identifikasi tipe relationship. c. Identifikasi dan mengumpulkan attribute dengan tipe entity atau tipe relationship. d. Menentukan domain attibute. e. Menentukan attribute candidate key, primary key, dan alternate key. f. Mempertimbangkan penggunaan konsep model enhanced(pilihan). g. Memerika redudansi dari model. h. Memvalidasi model data konseptual terhadap transaksi penguna. i. Meninjau kembali model data konseptual terhadap pengguna. (Connolly,2005,p440). 2. Perancangan Basis data Logikal Proses membangun sebuah model dari data yang digunakan dalam suatu perusahaan berdasarkan pada model data yang spesifik, tetapi independen terhadap DBMS tertentu dan pertimbangan fisik lainnya (Connolly,2005,p294). Langkah 2 membangun dan memvalidasi model data logika : a. Derivasi relationship untuk model data logika. 18 b. Validasi relationship dengan normalisasi. c. Validasi relationship terhadap relationship transaksi. d. Memeriksa integrity constraint. e. Meninjau model data logika dengan pengguna. f. Menggabungkan model data logika kedalam model global (pilihan). g. Meninjau untuk perkembangan di masa yang akan datang. (Connolly,2005,p440) 3. Perancangan Basis data Fisikal Proses memproduksi sebuah deskripsi dari implementasi basis data dalam tempat penyimpanan kedia, hal ini menjelaskan relationship dasar berkas organisasi, dan indeks uang digunakan untuk mencapai keefisienan akses ke data, dan apapun integrity constraint yang terkait dan langkah-langkah security (Connolly,2005,p294). Langkah 3 menerjemahkan model data logika untuk target DBMS : a. Merancang relationship dasar. b. Merancang representasi dari data derivasi. c. Merancang general constraint. Langkah 4 merancang berkas organisasi dan indeks : a. Menganalisa transaksi. b. Memilih berkas organisasi. c. Memilih indeks. d. Estimasi kapasitas disk yang dibutuhkan. e. Merancang views pengguna. 19 f. Merancang mekanisme security. g. Mempertimbangkan oengenalan dalam mengontrol redudansi. h. Memonitor dan mengaktifkan sistem operasional. 2.6.5 DBMS Selection (Pemilihan DBMS) Pemilihan dari suatu DBMS yang sesuai untuk mendukung aplikasi basis data (Connolly,2005,p295). Langkah-langkah dalam pemilihan DBMS : 1. Mendefinisikan syarat-syarat sebagai referensi. 2. Daftar singkat dua atau tiga produk. 3. Evaluasi produk. 4. Merekomendasikan pilihan dan menghasilkan laporan. 2.6.6 Application Design (Perancangan Aplikasi) Menurut Connolly(2005,p299), perancangan aplikasi (application design) adalah perancangan antarmuka pengguna dan program aplikasi yang menggunakan dan memproses basis data. Ada dua ospek penting dalam perancangan aplikasi, yaitu : 1. Transaction Design (Perancangan Transaksi) Transaksi merupakan satu atau serangkaian transaksi yang dilakukan oleh pengguna atau program aplikasi yang mengakses atau mengubah isi dari basis data. Tujuan dari perancangan transaksi adalah menetapkan dan mendokumentasikan katakteristik tingkat tinggi dan transaksi yang dibutuhkan pada basis data, diantaranya : 20 a) Data yang digunakan dalam transaksi. b) Karakteristik fungsional dari transaksi. c) Keluaran (output) dari transaksi. d) Kepentingan pengguna. e) Nilai yang diharapkan dari pengguna. Ada tiga jenis transaksi : a. Retrieval Transaction Digunakan untuk mendapatkan kembali data untuk ditampilkan dalam laporan. b. Update Transaction Digunakan untuk menambah data, menghapus data lama, atau mengubah data yang sudah ada dalam basis data. c. Mixed Transaction Merupakan kombinasi antara Retrieval Transaction dan Update Transaction. 2. User Interface Design (Perancangan Antarmuka) Sebelum mengimplementasikan sebuah form atau laporan perlu dirancang tampilannya terlebih dahulu. Ada beberapa pedomannya dalam perancangan pelaporan, yaitu : a. Judul yang bermakna. b. Instruksi yang mudah dipahami. c. Pengelompokkan yang logis dan kolom yang berurutan. d. Visualisasi tata letak yang menarik dari laporan. 21 e. Nama field yang akrab. f. Terminologi dan singkatan yang konsisten. g. Warna yang digunakan konsisten. h. Ruang dan batas-batas untuk field memasukkan data jelas. i. Pergerakkan kursor yang mudah. j. Perbaikan kesalahan untuk karakter individu dan seluruh field. k. Pesan kesalahan untuk nilai yang tidak dapat diterima. l. Field pilihan ditadai dengan jelas. m. Pesan yang jelas untuk field. n. Adanya sinyal selesai, ketika pengguna selesai mengisi field dari suatu formulir. (Connolly,2005,p299) 2.6.7 Prototype (Permodelan) Membangun suatu model kerja dari suatu aplikasi basis data. Tujuan utama dari pengembangan protoype aplikasi basis data adalah untuk memungkinkan pengguna memakai prototype tersebut dalam mengidentifikasikan kelebihan atau kekurangan sistem, dan memungkinkan perancang untuk memperbaiki atau melengkapi fitur-fitur aplikasi basis data yang baru. Ada dua strategi prototyping yang umum digunakan, yaitu : 1. Requirement Prototyping Menggunakan prototype untuk menetapkan tujuan dari aplikasi basis data dan ketika tujuan sudah terpenuhi, prototype tidak digunakan lagi atau dibuang. 22 2. Evolutionary Prototyping Digunakan untuk tujuan yang sama. Perbedaannya adalah prototype yang sudah dipakai tidak dibuang, tetapi dikembangkan lebih jauh menjadi aplikasi basis data yang baru. (Connolly,2005,p303-304) 2.6.8 Implementation (Pelaksanaan) Realisasi secara fisik dari basis data dan perancangan aplikasi. Implementasi basis data dapat dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang dipilih atau Graphical User Interface(GUI). (Connolly,2005,p304). 2.6.9 Data Conversion and Loading (Konversi Data dan Pemuatan) Menurut Connolly(2005,p305), data conversion and loading adalah memindahkan data yang sudah ada kedalam basis data yang baru dan mengubah aplikasi yang sudah ada kedalam basis data yang baru dan mengubah aplikasi yang sudah ada untuk dijalankan pada basis data yang baru. Tahapan ini diperlukan ketika sistem basis data yang baru akan menggantikan sistem basis data yang lama. Pada masa sekatang, DBMS umumnya memiliki fungsinya untuk memasukkan file ke dalam basis data yang baru. Fungsi ini memungkinkan pengembang untuk mengkonversi dan menggunakan program aplikasi yang lama dalam sistem yang baru. 2.6.10 Testing (Pengujian) Proses melaksanakan program aplikasi dengan tujuan untuk menemukan kesalahan. Berikut adalah contoh kriteria yang dapat digunakan untuk melaksanakan evaluasi : 1. Learnability Berapa lama waktu yang diperlukan untuk seorang pengguna baru menjadi produktif dengan sistem? (Conolly,2005,p305). 23 2. Performance Seberapa baik sistem dalam menanggapi kesesuaian praktek kerja pengguna? (Connolly,2005,p305). 3. Robustness Setoleransi apa sistem pada kesalahan pengguna? (Connolly,2005,p305). 4. Recoverbility Seberapa baik sistem saat pemulihan kesalahan pengguna? (Connolly,2005,p306) 5. Adaptibility Seberapa dekat sistem terkait ke satu model kerja? (Connolly,2005,p306) 2.6.11 Operational Maintenance (Pemeliharaan Operasional) Proses pemantapan dan memelihara sistem dengan mengikuti instalasi. Tahap ini melibatkan dua kegiatan, yakni : 1. Memantau kinerja sistem. 2. Memelihara dan memperbaharui sistem basis data (jika diperlukan) (Connolly,2005,p306). 2.7 Normalisasi Normalisasi adalah sebuah teknik untuk menghasilkan suatu paket relationship (hubungan) dengan properti yang diinginkan, dan memberikan persyaratan data dari sebuah perusahaan (Connolly,2005,p388). 24 2.7.1 Redudansi Data dan Update Anomalis Tujuan utama dari desain basis data relasi adalah untuk mengelompokkan attribute (atribut) kedalam relationship (hubungan) untuk meminimalisasi data yang redundan. Jika tujuan ini tercapai, keuntungan potensial bagi implementasi basis data mencakup beberapa hal, yaitu : A. Pembaruan data yang tersimpan dalam basis data yang dicapai dengan minimal jumlah operasi dengan demikian akan mengurangi kesempatan dalam ketidakkonsistenan data yang terjadi dalam basis data (Connolly,2005,p390). B. Pengurangan kapasitas di berkas penyimpanan diperlukan oleh relationship (hubungan) dasar dengan demikian dapat meminimalisasi biaya (Connolly,2005,p390). Relationship yang berulang memungkinkan memiliki beberapa masalah yang disebut update anomalies. Update anomalies diklasifikasikan sebagai insertion, deletion atau modification anomalies (Connolly,2005,p391). 2.7.2 Functional Depedencies Menjelaskan relationship antara attribute dalam setiap relationship. Sebagai contoh, jika A dan B adalah attribute dari relationship R, fungsi B tergantung dari A (ditandai AB), jika setiap nilai dari A berasosiasi dengan nilai dari B. (A dan B masing-masing terdiri dari satu atau lebih attribute) (Connolly,2005,p392). 2.7.3 Proses Normalisasi 1. Unnormalized Form (UNF) Suatu tabel yang terdiri dari satu atau lebih kelompok yang berulang (repeating group). Repeating group adalah sebuah attribute atau himpunan attribute di dalam 25 tabel yang memiliki lebih dari satu nilai (multiple value) untuk sebuah primary key pada tabel tersebut (Connolly,2005,p403). 2. First Normal Form (1NF) Sebuah relationship dimana titik temu antara baris dan kolomnya mengandung hanya satu nilai. Sebuah relationship akan berada dalam 1NF jika repeating grup tersebut telah hilang. Ada dua pendekatan umum untuk menghilangkan repeating group dari tabel yang tidak normal, yaitu : a. Memasukkan data yang tepat di kolom yang kosong dari baris yang mengandung data berulang. b. Menempatkan data berulang bersama salinan attribute kunci pada relationship yang terpisah. Sebuah primary key diidentifikasikan ke relationship yang baru. (Connolly,2005,p403). 3. Second Normal Form (2NF) Sebuah relationship yang berada pada 1NF dan setiap attribute yang bykan merupakan primary key berfungsi secara penuh bergantung pada primary key-nya (Connolly,2005,p407). 4. Third Normal Form (3NF) Sebuah relationship yang berada pada 1NF dan 2NF, dan tidak ada attribute yang bukan primary key yang secara langsung bergantung pada primary key-nya (Connolly,2005,p408). 2.8 Entity Relationship Diagram Entity Relationship Diagram (ERD) adalah model data yang menggunakan beberapa notasi untuk menggambarkan hubungan antara satu entitas dengan entitas yang lain. (Whitten dan Bentley, 2007, p271) 26 2.8.1 Entitas (Entity) Entity adalah sekumpulan objek dengan properti yang sama, yang diidentifikasikan di dalam perusahaan perusahaan karena keberadaannya yang mandiri. Sedangkan kejadian entity adalah sebuah objek dari satu tipe entity yang dapat diidentifikasikan secara unik (Connolly,2005,p343). Keberadaan objek-objeknya secara nyata, seperti PTN dan KOPERTIS, atau secara abstrak seperti penjualan. Tipe entity dapat dikelompokkan menjadi : A. Tipe Entity Kuat Tipe Entity kuat adalah tipe entity yang keberadaannya tidak bergantung pada tipe entity lainnya (Connolly,2005, p354). B. Tipe Entity Lemah Tipe Entity lemah adalah tipe entity yang keberadaannya bergantung pada tipe entity lainnya (Connolly,2005,p355). 2.8.2 Relationship Types (Tipe Hubungan) Tipe relationship adalah gabungan antara tipe entity. Setiap jenis relationship diberikan nama yang menjelaskan fungsinya. Sdangkan kejadian relationship adalah hubungan yang dapat diidentifikasikan scara unik, yang meliputi sebuah kejadian dari setiap tipe entity didalam relationship (Connolly,2005,p346). A. Derajat dari Tipe Relationship Derajat dari tipe relationship adalah banyaknya tipe entity yangberpartisipasi dalam sebuah relationship (Connolly,2005,p347). Tipe relationship kompleks adalah sebuah relationship antara tiga atau lebih entity(Connlly,2005,p348). 27 B. Recursive Relationship Relationship recursive adalah sebuah tipe relationship dimana ada entity yang sama yang diikutsertakan lebih dari satu fungsi (Connolly,2005,p349). 2.8.3 Attribute Attribute adalah properti dari sebuah entity atau relationship (Connolly,2005,p350). Attribute juga diartikan sebagai properti deskriptif atau karakteristik dari sebuah entity. Attribute menampung nilai yang menjelaskan setiap kejadian entity dan menggambarkan bagian utama dari data yang disimpan dalam basis data (Whitten,2004,p295). A. Attribute Domain Attribute Domain adalah sejumlah nilai yang diizinkan untuk nilai lebih dari satu atau lebih attribute. Domain menetepkan bahwa sebuah attribute mungkin menahan dan serupa dengan konsep domain pada model relationship (Connolly,2005,p350). B. Attribute Simpel Attribute Simple yang disusun dari komponen tunggal dengan keberadaan yang mandiri. Attribute Simpel tidak bisa dibagi lebih jauh lagi ke komponen yang lebih kecil. Sperti contoh posisi entity dan gaji karyawan. Attribute simpel dapat disebut juga atomic attribute (Connolly,2005,p351). C. Attribute Composite Sebuah attribute yang disusun dari komponen berlipat ganda, masing-masing dengan sebuah keberadaan yang bebas. Beberapa attribute dapat dibagi lebih jauh lagi ke hasil komponen yang lebih kecil dengan keberadaan mandiri yang dimiliki attribute itu sendiri (Connolly,2005,p351). 28 D. Attribute Single-Valued Attribute yang mempunyai njilai tunggal untuk setiap kejadian pada sebuah tipe entity (Connolly,2005,p351). E. Attribute Multi-Valued Attribute yang mempunyai beberapa nilai untuk setiap kejadian pada sebuah entity. F. Attribute Derivation Sebuah attribute yang mewakili sebuah nilai yang dapat diturunkan dari attribute lain yang berhubugnan atau kumpulan dari beberapa attribute, dan tidak harus berasal dari entity yang sama (Connolly,2005,p352). 2.8.4 Keys A. Candidate Key Sejumlah kecil attribute yang secara unik mengidentifikasikan kejadian dari setiap tipe entity (Connolly,2005,p352). B. Primary Key Candidate Key yang terpilih untuk mendefinisikan secara unik pada setiap kejadian dari sebuah entity (Connolly,2005,p353). C. Composite Key Sebuah candidate key yang terdiri dari dua atau banyak attribute (Connolly,2005,p353). D. Foreign Key Himpunan attribute dalam suatu relationship yang cocok dengan candidate key dari beberapa relationship lainnya (Connolly,2005,p79). 29 E. Alternate Key Candidate Key yang tidak terpilih menjadi primary key, atau biasa disebut secondary key. 2.9 ER Model (Entity-Relationship Model) Entity-Relationship Model merupakan salah satu model yang dapat memastikan pemahaman yang tepat terhadap data dan bagaimana penggunaannya di dalam suatu organisasi (Connolly,2005,p342). Model ini menggunakan pendekatan Top-down dalam merancangan basis data, dimulai dengan mengidentifikasikan data yang disebut entity dan relationship antara data harus direpresentasikan ke dalam model, kemudian ditambahkan beberapa attribute dan constraint pada entity, attribute dan relationship. 2.10 Cardinality and Participation Constrains Multiplicity sebenarnya terdiri atas dua batasa yang berbeda, yaitu : 1. Cardinality Cardinality adalah nilai maksimun dari kejadian relationship yang mungkin terjadi untuk sebuah entity yang ikut serta pada suatu relationship (Connolly,2005,p363). 2. Participation Participation menentukan apakah semua atau hanya beberapa kejadian entity yang ikut serta dalam sebuah relationship (Connolly,2005,p363). Participation constraint dibagi menjadi : a. Mandatory Participation Participation mandatory melibatkan semua kejadian entity pada relationship tertentu (Connolly,2005,p351). 30 b. Optional Participation Optional participation melibatkan beberapa kejadian entity pada relationship tertentu (Connolly,2005,p351). 2.11 Structural Constrains Constraint harus menggambarkan pembatasan di dalam relationship seperti halnya di ‘dunia nyata’. Jenis utama dari constraint pada suatu dinamakan multiplicity. Multiplicity adalah banyaknya kejadian yang mungkin pada suatu tipe entity yang mungkin hubungan dengan suatu kejadian dari tipe entity lain pada suatu relationship (Connolly,2005,p363). Derajat yang paling umum pada suatu relationship adalah biner. Relationship biner terdiri dari : A. One-to-one Relationship (1:1) Gambar 2.4 One-to-one Relationship Pada gambar 2.4 bisa dilihat bahwa table Person hanya tehubung one-to-one (1:1) dengan Table Passport, karena satu orang hanya boleh mempunyai satu passport. Berdasarkan gambar diatas dapat ditulis multiplicity-nya seperti gambar di bawah ini (Connolly,2005,p357). 31 1..1 Relate to 1..1 Group 2 Group 1 Multiplicity Gambar 2.5 Notasi One-to-one Relationship B. One-to-many Relationship (1:*) Gambar 2.6 One-to-many Relationship Pada gambar 2.6 bisa dilihat bahwa table Product hanya terhubung one-to-many (1:*) dengan table Supplier, karena satu product bisa didapat dari satu atau lebih supplier. Berdasarkan dari gambar diatas dapat ditulis multiplicity-nya seperti gambar di bawah ini (Connolly,2005,p358). 32 1..1 Relate to 0..* Group 2 Group 1 Multiplicity Gambar 2.7 Notasi One-to-many Relationship C. Many-to-many Relationship (*:*) Gambar 2.8 Many-to-many Relationship Pada gambar 2.8 dapat dilihat bahwa table Video terhubung many-to-many (*:*) dengan table Customer, karena satu video dapat ditonton oleh banyak customer, begitu juga sebaliknya. Berdasarkan gambar di atas dapat ditulis multiplicity-nya seperti gambar di bawah ini (Connolly,2005,p358). 33 0..* Relate to 1..* Group 2 Group 1 Multiplicity Gambar 2.9 Notasi Many-to-many Relationship 2.12 Enhanced Entity-Relationship Model (EER Model) Model EER memiliki tiga konsep tambahan yang sangat berguna dan penting yaitu spesialisasi/generalisasi, agregasi, dan komposisi. 2.12.1 Spesialisasi/Generalisasi Spesialisasi merupakan suatu proses memaksimalkan perbedaan-perbedaan antara anggota sebuah entity dengan cara mengidentifikasi karakteristik yang membedakan entity tersebut (Connolly,2005,p374). Sedangkan, generalisasi merupakan suatu proses yang meminimalkan perbedaanperbedaan antara entity dengan cara mengidentifikasi sifat umum entity (Connolly,2005,p357). 2.12.2 Agregasi Agregasi menggambarkan relationship ‘mempunyai sebuah’ atau ‘bagian dari’ antara tipe entity dimana salah satunya mewakili ‘seluruh’ dan salah satunya lagi mewakili ‘bagian’ (Connolly,2005,p383). 34 2.12.3 Komposisi Komposisi adalah sebuah bentuk spesifik dari agregasi yang merepresentasikan sebuah kumpulan antar entity. Dimana terdapat sebuah kepemilikan yang kuat dari kebetulan antara ‘seluruh’ dan ‘bagian’ (Connolly,2005,p384). 2.13 Flowchart Menurut Indrajani (2011, p22) Flowchart merupakan penggambaran secara grafik dari langkah-langkah dan urutan suatu prosedur dari program. Biasanya mempermudah penyelesaian masalah, khususnya yang perlu dipelajari dan dievaluasi lebih lanjut. Jenis-jenis Flowchart terdiri atas : System Flowchart Docyment Flowchart Schematic Flowchart Program Flowchart Process Flowchart Tabel 2.1 Notasi Flowchart No. Bentuk 1. Deskripsi Logical Proses 2. Decision 3. Terminal Start or End Operation 35 4. Input / Output Operation 5. Off-Page Connector 6. Source Document or Report 7. Flow 2.14 DFD (Data Flow Diagram) Menurut McLeod (2008, p167) Data Flow Diagram adalah penyajian grafis dari sebuah sistem yang mempergunakan 4 (empat) bentuk symbol untuk mengilustrasikan bagaimana data mengalir melalui proses-proses yang saling tersambung. Dimana simbol-simbol tersebut mencerminkan : 1. Unsur-unsur lingkungan dengan mana sistem berinteraksi 2. Proses 3. Arus data 4. Penyimpanan data Berdasarkan pengertian di atas, Data Flow Diagram (DFD) adalah penggambaran grafis yang menampilkan aliran data dari sumber ke dalam objek, dengan melewati proses yang mentransformasikannya ke tujuan yang ada pada objek. 2.14.1 Diagram Konteks Menurut McLeod (2008, p168) Diagram konteks adalah sebuah diagram yang menempatkan sistem dalam suatu konteks lingkungan. Diagram ini terdiri atas satu symbol proses tunggal yang melambaikan keseluruhan sistem. Diagram ini juga menunjukkan arus data yang mengarah dan keluar dari terminator. 36 2.14.2 Diagram Nol Merupakan level tertinggi dari fungsi yang ada di dalam sistem. Selain itu, pada diagram ini memberikan lebih banyak detail dibandingkan dengan diagram konteks. Proses ini diperoleh dari pemecahan diagram konteks. Tabel 2.2 Penjelasan Diagram Nol Simbol Keterangan Proses adalah sesuatu untuk mengubah input dan output. Proses dapat digambarkan dengan sebuah lingkaran, sebuah persegi panjang horizontal, atau sebuah persegi panjang tegak bersudut melingkar. Setiap simbol proses diidentifikasikan dengan label Aliran data terdiri dari sekelompok unsur-unsur data yang berhubungan secara logis, yang bergerak dari satu titik atau proses ke titik atau proses lain. Aliran data menggambarkan perpindahan informasi dari satu bagian ke bagian lain dari sistem. Penyimpanan data (data store) adalah suatu tempat penyimpanan data. Proses dapat memasukkan atau mengambil data dari data store. 37 Terminator digunakan unsur-unsur menunjukkan (external untuk entities) menyatakan lingkungan titik-titik yang dimana sistem berakhir, dan dapat berupa orang, organisasi dan sistem lain yang memiliki antarmuka dengan sistem. 2.15 STD (State Transition Diagram) Menurut Indrajani (2011, p17), State transition diagram adalah suatu kondisi yang menunjukkan keadaan tertentu, dimana suatu sistem dapat dan transisi menghasilkan keadaan tertentu yang baru. Biasanya digunakan pada sistem yang real time. Hal-hal yang terdapat pada STD antara lain : A. System State Setiap empat persegi panjang menggambarkan satu keadaan dari sistem ke sistem secara keseluruhan. 38 B. Change State State 1 State 2 State 3 Gambar 2.10 Change of State C. Condition and Actions State 1 Condition Action State 2 Gambar 2.11 Condition and Actions 39 2.16 Teori Khusus Pada bagian ini merupakan teori yang berkaitan pada aplikasi tersebut, seperti software-software yang dipakai dan lain-lain. 2.16.1 Intranet Menurut Connoly and Begg (2005, p996) Intranet adalah sebuah atau sekumpulan situs yang dimiliki oleh suatu organisasi, yang hanya dapat diakses oleh anggota dari organisasi tersebut. 2.16.2 Hypertext Markup Language (HTML) HTML adalah dokumen yang mengatur bahasa-bahasa yang digunakan untuk mendesain kebanyakan halaman web. HTML adalah suatu sistem untuk marking-up, tagging, sehingga dokumen tersbut dapat dipublikasikan ke web (Connolly,2005,p1001) 2.16.3 Web Server Menurut James dan Ross (2003, p90) Web Server adalah objek web yang masingmasing memiliki alamat dari URL, serve web juga menerapkan sisi server HTTP. Beberapa server web yang populer yaitu Apache dan Microsoft Internet Information Server. HTTP mendefinisikan bagaimana web klien (misalnya browser) melakukan requst halaman web dari web server dan bagaimana cara mentransfer halaman web tersebut ke klien. 2.16.4 Web Browser Menurut William dan Sawyer (2010, p64), web browser adalah perangkat lunak yang memungkinkan anda mencari dan mengakses beragam komponen web. 40 2.16.5 PHP (PHP Hypertext Preprpcessor) Menurut Blake Schwedndiman (2001,pXV), PHP adalah bahasa pemrograman yang dibuat untuk mengizinkan pengembang web untuk dapat membuat aplikasi web dinamis dengan cepat. PHP sebenarnya singkatan dari “PHP: Hypertext Preprocessor.” Yang mana adalah bahasa pemrograman HTML-embedded yang sintaksnya sama dengan C, Perl, dan Java. 2.16.6 Interaksi Manusia dan Komputer (IMK) Menurut Shneriderman (2005,p74-75), sebuah sistem berbasis komputer selalu mempunyai elemen manusia yang terkait didalamnya. Elemen mausia ini berinteraksi langsung dengan perangkat keras dan perangkat lunak melaui sebuah antarmuka (interface). Penggunaan delapan aturan emas berasal dari prinsip-prinsip yang didapatkan dari pengalaman-pengalaman, dan diperbaiki selama lebih dari 2 dekade. Delapan aturan emas tersebut adalah : 1. Berusah untuk konsisten Urutan aksis yang konsisten diperlukan pada situasi yang sama. Konsitensi juga harus digunakan pada prompt, menu, layar bantu. Warna tampilan, kapitalisasi, huruf dan sebagainya juga harus konsisten. 2. Memungkinkan pengunaan shortcut Menambahkan feature untuk oemakai yang sudah ahli bisa memperkaya design interface dan meningkatkan kualitas sistem. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan yang dilakukan pemakai, diharapkan adanya respon dari sistem. Untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, 41 respon yang ada bisa dibuat secara sederhana, sedangkan tindakan yang jarang dilakukan dan membutuhkan banyak aksi harus lebih ditonjolkan. 4. Merancang dialog yang memberikan penutupan (keadaan akhir) Urutan aksi harus disusun ke dalam kelompok awal, tengah dan akhir. Suatu umpan balik yang informatif pada akhir pekerjaan sebaiknya dibuat untuk mengindikasikan bahwa pekerjaan telah selesai dan siap untuk melanjutkan ke aksi berikutnya. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. Sebisa mungkin dibuat sistem yang tidak akan menghasilkan kesalahan yang serius jika digunakan oleh pemakai. Jika pemakai membuat kesalahan, sistem tersebut harus dapat mendeteksi kesalahan dan menawarkan instruksi yang sederhana, konstruktif, dan spesifik untuk perbaikan. 6. Memungkinkan pembalikan aksi yang mudah. Aksi yang telah dilakukan harus dapat dikembalikan ke keadaan awal. 7. Mendukung pusat kendali internal (internal locus of control). Menjadikan pemakai sebagai pemberi aksi, bukan sebagai orang yang merespon aksi. 8. Mengurangi beban ingatan jangka pendek. Karena keterbatasan manusia dalam pemrosesan informasi pada ingatan jangka pendek, sebaiknya tampilan dibuat sederhana, beberapa galaman dijadikan satu, frekuensi pergerakan window dikurangi, dan harus ada waktu yang cukup untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaiknya juga tersedia. 2.16.7 TCP/IP Menurut James A. O’Brien (2005, p131), TCP/IP terdiri dari lima lapis protokol yang berhubungan dengan tujuh lapis dari arsitektur OSI. TCP/IP digunakan oleh internet dan seluruh intranet dan extranet. Banyak perusahaan dan organisasi yang 42 mengubah jaringan klien atau server mereka ke teknologi TCP/IP, yang sekarang sering disebut jaringan IP. 2.16.8 Local Area Network (LAN) Menurut Jonathan (2006,p12), Local Area Network adalah jaringan yang menyediakan hubungan komunikasi berbagai peralatan, sehingga peralatan yang ada dalam jaringan mampu memberi dan menerima informasi dari peralatan lainnya yang ada didalam jaringan. 2.16.9 MySQL Menurut Luke W. dan Laura T. (2009, p3) MySQL adalah relational database management system (RDBMS) yang sangat cepat dankuat, MySQL server mengontrol akses ke data anda untuk memastikan banyak pengguna bisa bekerja secara bersamaan, memberikan akses yang cepat, dan memastikan hanya pengguna yang berwenang dapat mengakses. Oleh karena itu, MySQL adalah banyak pengguna (multi-user) dan multi thread server sehingga dapat digunakan pada serveryang memiliki multi-CPU, MySQL menggunakan SQL (Structured Query Language) yang meupakan standar bahasa query basis data. Keunggulan MySQL adalah : 1. High Performance 2. Low Cost 3. Ease of Configuration and Learning 4. Portability 5. Availabilty of Source Code 6. Availability of Support 43 2.17 Hasil Penelitian atau Produk Sebelumnya Dalam penulisan sebuah skripsi sangat perlu mencari referensi dari sebuah teori-teori atau temuan-temuan yang sudah ada yang dapat dijadikan sebagai data pendukung. Penulis menemukan beberapa data pendukung yang mendukung dan berkaitan langsung dengan hasil penelitian sebelumnya yang relevan dengan permasalahan yang sedang dibahas dalam penulisan skripsi ini. Dalam hal ini, penelitian terdahulu yang dijadikan acuan adalah penelitian yang terkait dengan masalah sistem basis data pengelolaan data pada sebuah puskesmas. Oleh karena itu, kami melakukan langkah kajian terhadap beberapa hasil penelitian yang berasal dari beberapa jurnal elektronik. Penelitian yang dilakukan oleh Hery Harjono Mulyo, Johan Setiawan dan Heru Darmadi (2008) dengan judul Sistem Informasi Pelayanan Puskesmas Terpadu, Artikel menganalisis sistem informasi puskesmas yang berjalan, mengidentifikasi setiap kelemahan yang terjadi, mengidentifikasi setiap kebutuhan informasi yang diperlukan, mengembangkan dan merancang sistem informasi puskesmas secara terpadu. Hasil akhir penelitian berupa aplikasi sistem informasi yang dibagi menjadi tiga, yaitu front office, bagian poli, dan bagian apotek. Simpulannya, sistem ini dibuat secara terintegrasi sehingga waktu yang digunakan untuk memproses data lebih cepat, mengurangi pemakaian kertas, meminimalkan pekerjaan yang dilakukan berulang-ulang, banyak input yang sudah di-generate oleh sistem, dan membantu sekali dalam pengambilan keputusan. Sedangkan penelitian yang dilakukan oleh Indrajani (2010) dengan judul Analisis Dan Perancangan Sistem Basis Data Pada Rumah Sakit, dengan tujuan penelitian ini adalah menganalisis dan merancang basis data untuk mendukung kebutuhan informasi rumah sakit khususnya pada Customer Relationship Management (CRM). Metode yang digunakan adalah metode pengumpulan data dengan menggunakan teknik pencarian data yang meliputi wawancara, mempelajari dokumen, observasi, dan studi kepustakaan. Kemudian penelitian ini juga menggunakan metode analisis dan perancangan basis data yang mencakup perancangan basis data secara konseptual, logikal, dan fisikal. Hasil yang dicapai adalah sistem basis data yang mampu menyimpan data terintegrasi, memenuhi kebutuhan informasi rumah sakit, dan meningkatkan pelayanan kesehatan terhadap pelanggan dalam hal ini pasien 44 khususnya dan masyarakat umumnya. Simpulan yang dapat diperoleh dari penelitian ini adalah dengan adanya sistem basis data ini, maka rumah sakit dapat mengelola data pelanggan dan traksaksi yang dilakukan pelanggan, meningkatkan efektifitas dalam mendapatkan kepuasan dan loyalitas pelanggan di mana pelanggan tersebut dapat mempromosikan pengalamannya terhadap pelanggan baru, dan menjadi rumah sakit pilihan melalui peningkatan pelayanan kesehatan terhadap masyarakat. Dari jurnal diatas didapatkan kesimpulan bahwa sistem Customer Relationship Management (CRM) merupakan solusi yang terbaik dengan tujuan menghemat uang, beban kerja dan lebih efektif. Selain itu, Customer Relationship Management (CRM) bisa membantu organisasi untuk pengadaan macam-macam barang secara langsung maupun tidak langsung. Selain itu peran database sangatlah penting untuk membangun suatu sistem pengadaan barang. Adapun penelitian yang berkaitan dengan sistem tersebut dan diambil dari jurnal internasional yang berjudul MySQL Database Provides Full Transactional Support oleh Oracle Corp. Dari hasil penelitiannya menyebutkan bahwa MySQL termasuk InnoDB storage engine transaksional ACID - compliant, yang dirancang untuk kinerja yang sangat tinggi dan skalabilitas saat memproses volume data yang besar dan di bawah concurrency tinggi. Selain itu MySQL menyediakan berbagai fitur pendukung untuk aplikasi database berbasis transaksi, seperti : 1. Dukungan penuh transaksi, dengan komit, rollback dan kecelakaan kemampuan pemulihan untuk memastikan konsistensi data penuh, bahkan jika perangkat keras gagal. 2. Penguncian tingkat-baris Lanjutan tanpa memerlukan eskalasi kunci untuk maksimum membaca / menulis concurrency tanpa mengorbankan integritas kunci. 3. Multi-versioning memberikan concurrency tetap menjaga integritas data maksimum. 4. Non-locking berbunyi, konsisten dengan gaya Oracle, untuk memungkinkan cepat membaca bahkan ketika database terlibat dalam update berat. 45 Oleh sebab itu suatu proses transaksi sangat tertolong dengan adanya database khususnya MySQL ini guna mempermudah dan menjaga keseluruan suatu proses transaksi.