BAB 2 LANDASAN TEORI 2.1 Teori –Teori Dasar Pada penyusunan skripsi ini penulis menggunakan berbagai teori-teori yang ada. Teori yang diambil antara lain: 2.1.1 Pengertian Basis Data Basis Data adalah sekumpulan koleksi data dengan format standar dan didesain untuk digunakan oleh banyak pengguna(Gerald V Post 2002, p4). Basis data adalah koleksi data yang terhubungan dengan data lainnya secara logis dan memiliki deskripsi untuk data tersebut dan didesain untuk mengolah informasi yang dibutuhkan oleh organisasi(Connoly and Begg.2005, p15). Jadi dapat disimpulkan bahwa basis data adalah serangkaian data yang terhubung dengan data lain dan didesain untuk mengolah informasi yang dapat digunakan oleh banyak pengguna serta bertujuan untuk mengolah informasi yang berguna untuk pengambilan keputusan perusahaan. 2.1.2 Pengertian Sistem Basis Data Sistem basis data adalah komputerisasi sistem penyimpanan data yang bertujuan untuk menyimpan, memelihara data, dan mengijinkan penggunanya untuk mengubah dan mengambil data yang diperlukan(Date,2000,p5). 8 9 Tujuannya adalah agar dapat mempermudah dan mempercepat pengguna dalam proses pengambilan dan melakukan perubahan yang ada. 2.1.3 Pengertian File Based System File-Based system adalah koleksi dari program aplikasi yang menunjukkan pelayanan yang didapat oleh pengguna akhir, seperti laporan produksi. Setiap program yang ada mendeskripsikan dan mengatur data masing-masing(Connoly, 2005,p7). Jadi File-based system adalah sekumpulan pelayanan yang dapat digunakan oleh pengguna dalam mencari, mendeskripsi, dan mengatur data yang tersedia. 2.1.4 DBMS(Database Management System) Sistem Manajemen Basis Data adalah sebuah software yang dirancang untuk sebuah basis data untuk menyimpan data, mendukung query language, membuat laporan, dan membuat data masukan(Gerald V Post 2002, p2). Sistem Manajemen Basis Data adalah sebuah software yang didesain untuk membantu memelihara dan memanfaatkan sejumlah koleksi data dan memerlukan sejumlah sistem untuk membangun dengan lebih cepat (Khrisnan Gerkhee 2000,p4 ). Menurut Connoly dan Begg, DBMS adalah sebuah software yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke dalam basis data. 10 DBMS menyediakan fasilitas sebagai berikut: 1. DDL(Data Definition Language) DDL merupakan DBA(Database bahasa Administrator) yang atau mengizinkan pengguna untuk mendeskripsikan dan memberi nama pada entitas, atribut, dan relasi data yang dibutuhkan dalam aplikasi serta integritas dan batasan keamanan datanya(Connoly Begg, 2005, p40). DDL digunakan untuk mendefinisikan sebuah skema atau untuk memodifikasi data serta tidak dapat digunakan untuk memanipulasi data. DDL juga memungkinkan pengguna untuk menentukan jenis tipe data yang disimpan dalam basis data. Operasi yang disediakan antara lain: a. Create Table, digunakan untuk membuat tabel dengan mengidentifikasikan tipe data untuk setiap kolom. b. Alter Table, digunakan untuk menambah atau membuang atau membuang kolom dari constrain. c. Drop Table, digunakan untuk menghapus tabel beserta semua data yang terkait di dalamnya. d. Create Index, digunakan untuk membuat index pada suatu tabel. e. Drop Index, digunakan untuk membuang menghapus index yang telah dibuat sebelumnya. atau 11 2. DML(Data Manipulation Language) DML merupakan bahasa yang menyediakan serangkaian operasi yang mendukung manipulasi data dasar dalam basis data (Connoly Begg,2005, p40). Operasi manipulasi data yang ada, antara lain: a. Insert, digunakan untuk memasukkan satu atau beberapa data baru ke dalam tabel suatu basis data. b. Update, digunakan untuk mengubah satu atau lebih atribut ke dalam suatu tabel. c. Delete, untuk menghapus sebagian atau seluruh isi tabel yang ada. d. Select, untuk menampilkan sebagian atau seluruh isi tabel dan mampu melakukan kombinasi dengan tabel lain sesuai dengan kebutuhan. 3. Kontrol akses ke basis data Kontrol akses yang disediakan ke dalam basis data, antara lain: a. Security system, dimana dapat membatasi pengguna yang tidak berhak untuk mengakses basis data. b. Integrity system, untuk memelihara konsistensi data yang tersimpan. c. Concurrency control system, untuk mengatur pembagian dalam penggunaan akses bersama dalam basis data. 12 d. Recovery control system, untuk melakukan panggilan kembali menjadi basis data semula ketika terjadi kesalahan pada hardware atau software. e. User-accesible catalog, berfungsi untuk mendeskripsikan data pada basis data. 2.1.5 Komponen-komponen DBMS Terdapat 5 komponen utama dalam DBMS, antara lain: a. Hardware (Perangkat Keras) DBMS memerlukan hardware untuk dijalankan. Perangkat keras yang digunakan mulai dari single personal computer, single mainframe hingga network computer tergantung dari kebutuhan perusahaan dan DBMS yang digunakan. Sebuah DBMS memiliki kebutuhan minimum dari memori dan ruang penyimpanan yang dibutuhkan namun tidak dianjurkan untuk mencapai performa yang lebih baik. b. Software (Perangkat Lunak) Komponen software terdiri dari software DBMS itu sendiri dan aplikasi program yang digunakan bersamaan untuk menjalankan sistem. Termasuk di dalamnya software network yang digunakan dalam DBMS apabila melalui suatu jaringan. c. Data Komponen yang terpenting dalam suatu DBMS dari sudut pandang pengguna akhir adalah data. Data merupakan 13 jembatan penghubung antara komponen mesin dengan komponen manusia. d. Procedures (Prosedur) Prosedur mengacu pada instruksi dan peraturan yang mengatur perancangan dan penggunaan basis data. Pengguna sistem dan karyawan yang mengatur basis data memerlukan prosedur yang terdokumentasi mengenai bagaimana menjalankan sistem. Itu semua berisikan bagaimana cara untuk: a. Masuk ke dalam DBMS. b. Menggunakan bagian dari DBMS atau aplikasi program. c. Menjalankan dan memberhentikan DBMS. d. Membuat duplikat basis data. e. Menangani kegagalan perangkat keras atau lunak. Ini termasuk prosedur komponen yang gagal, komponen yang bagaimana mengidentifikasi bagaimana rusak, dan mengikuti membetulkan petunjuk pembetulan untuk melindungi basis data. f. Merubah tabel dari struktur data, menata kembali basis data, meningkatkan performa, dan menyimpan data di tempat penyimpanan cadangan. e. People (Pengguna) Komponen terakhir adalah orang yang menjalankan sistem. Terdapat 4 tipe orang yang menggunakan DBMS, yaitu 14 Data and Database Administrator(DBA), Database Designer, Application Developer dan End User. 2.1.6 Keuntungan dan Kerugian DBMS DBMS memiliki beberapa keuntungan dan kerugian. Keuntungan 1. Mengontrol data yang berulang Basis data tradisional membuang banyak ruang dengan adanya duplikasi data yang sama di beberapa tempat. Sebaliknya basis data berusaha mengurangi perulangan dengan menyatukan file-file, sehingga tidak terjadi duplikasi. Sistem basis data tidak menghapus perulangan secara keseluruhan tetapi kontrol terhadap perulangan yang di dalam basis data. Terkadang perulangan diperlukan untuk menduplikasi entitas yang ada sehingga membentuk tabel relasionalnya. Di lain waktu, diperlukan juga penduplikasian enitas untuk peningkatan performa. Alasan melakukan pengontrolan duplikasi ini adalah agar kita dapat mengetahui dengan jelas bagian selanjutnya. 2. Konsistensi data Dengan menghapuskan dan mengontrol perulangan, kita dapat meminimalkan resiko akan ketergantungan data. Apabila entitas hanya disimpan sekali dalam basis data, maka apabila ada update yang dilakukan, maka update hanya dilakukan sekali dan digunakan oleh semua pengguna. Apabila 15 data entitas disimpan lebih dari sekali, maka sistem dapat memastikan semua data yang ada akan tetap konsisten. Sayangnya, kebanyakan dari DBMS sekarang ini tidak dapat memastikan konsistensi data secara otomatis. 3. Lebih banyak informasi dari jumlah data yang sama Dengan memungkinkan penyatuan organisasi dari untuk data-data memasukkan operasional informasi tambahan dari data yang sama. Kita bisa mengambil lebih banyak informasi dari data yang sama, sehingga penyimpanan data yang ada dapat dimaksimalkan penggunaannya. 4. Pembagian Data Biasanya file dimiliki oleh pengguna file tersebut, di sisi lain sistem basis data dimiliki oleh seluruh organisasi dan bisa digunakan oleh semua pengguna yang berkepentingan. Dengan cara ini, semakin banyak pengguna yang dapat saling berbagi data. Lebih jauh lagi, aplikasi baru dapat dibangun pada data yang sudah ada dalam basis data dan menambahkan data yang tidak ada daripada harus mendefinisikan semua data-data yang ada lagi. Aplikasi-aplikasi yang baru juga dapat menggunakan fungsi-fungsi yang disediakan oleh DBMS, seperti definisi dan manipulasi data daripada harus menyediakan fungsi-fungsi ini sendiri. 16 5. Peningkatan integritas data Integritas sistem basis data mengacu pada validasi dan konsistensi dari data yang tersimpan. Integrasi biasanya disebut juga constraint, yang merupakan peraturan-peraturan konsistensi bahwa sistem basis data tidak diijinkan untuk hal-hal tertentu. Constraint dapat diaplikasikan untuk entitas yang memiliki laporan tunggal atau bisa juga diaplikasikan pada hubungan antara beberapa penyimpanan data. Sebagai contoh, constraint integritas bisa menyatakan bahwa upah dari anggota staff tidak lebih dari 1.000.000 atau KdCabangnya tersimpan dalam data staff yang mewakili cabang dari staff tersebut bekerja, harus mengkorespon dengan kantor cabang yang ada. Integrasi memungkinkan DBA untuk mendefinisikan dan DBMS untuk melakukan constraint integritas. 6. Peningkatan Keamanan Keamanan sistem basis data adalah perlindungan sistem basis data dari pengguna yang tidak memiliki ijin. Tanpa pengamanan yang tepat, integrasi dapat membuat data menjadi lebih rapuh daripada file-based system. Sehingga DBA digunakan untuk mendefinisikan dan DBMS untuk melakukan pengamanan sistem basis data. Hal ini memerlukan nama user dan password untuk mendefinisikan orang yang memiliki ijin untuk menggunakan sistem basis data tersebut. Akses data yang diperbolehkan untuk pengguna yang memiliki ijin mungkin diperketat dengan tipe operasi(insert, update dan delete). 17 Sebagai contoh, DBA memiliki akses di semua basis data; Seorang manager cabang memiliki akses ke semua data yang berhubungan dengan kantor cabangnya dan seorang asisten penjualan memiliki akses ke semua data yang berhubungan dengan properti, tetapi tidak memiliki akses ke data-data pribadi seperti upah staff. 7. Enforcement of standards Integrasi memungkinkan DBA untuk mendefinisikan standar-standar yang penting. Hal ini mencakup bagian-bagian departemen dan organisasi, nasional atau standar-standar internasional untuk hal-hal seperti format data untuk memfasilitasi pergantian data di antara sistem-sistem, konvensikonvensi, standar-standar dokumentasi, update prosedur, dan peraturan-peraturan akses. 8. Skala Ekonomi Mengkombinasikan seluruh data-data operasional ke dalam satu basis data dan menciptakan suatu set aplikasi yang bekerja dalam sebuah sumber data, dapat berujung pada harga yang tinggi. Dalam kasus ini, budget yang dialokasi ke setiap departemen untuk pengembangan dan maintenance dari sistem file-based-nya bisa dikombinasikan, mungkin menghasilkan harga yang lebih rendah. Budget yang dikombinasikan dapat digunakan untuk membeli sebuah sistem konfigurasi yang lebih tepat untuk kebutuhan organisasi. Hal ini mungkin mencakup 18 sebuah komputer atau jaringan dari komputer-komputer yang lebih kecil dan kuat. 9. Keseimbangan dari syarat-syarat yang bertentangan Masing-masing pengguna atau departemen memiliki kebutuhan yang mungkin bertentangan dengan kebutuhan pengguna yang lain. Sejak basis data berada di bawah kontrol DBA, DBA dapat membuat keputusan tentang desain dan kegunaan operasional dari basis data yang menyediakan penggunaan terbaik dari sumber-sumber untuk sebuah organisasi sebagai suatu kesatuan. Keputusan ini akan menyediakan performa optimal untuk aplikasi-aplikasi yang penting. 10. Peningkatan respons dan aksesibilitas data Sebagai hasil dari integrasi, data yang melalui batasanbatasan departemen dapat diakses secara langsung oleh pengguna. Hal ini menyediakan sistem yang memiliki fungsifungsi yang dapat digunakan untuk menyediakan pelayanan yang lebih baik untuk pengguna atau klien organisasi. Banyak DBMS menyediakan bahasa-bahasa atau penulisan laporan yang memungkinkan pengguna untuk melemparkan pertanyaan ad hoc dan mendapatkan informasi secepat mungkin tanpa membutuhkan seorang programmer yang menulis software untuk mengambil informasi ini dari basis data. Sebagai contoh, seorang manager cabang dapat mendata semua apartemen 19 dengan sewa bulanan lebih dari satu juta rupiah dengan memasukkan perintah-perintah SQL. 11. Peningkatan Produktivitas Telah disebutkan sebelumnya, DBMS menyediakan banyak fungsi standar yang digunakan oleh banyak programmer yang biasanya digunakan untuk menulis dalam file-based application. Pada level standar, DBMS menyediakan semua rutinitas penanganan file low-level yang biasanya terdapat pada program aplikasi. Penyediaan dari fungsi-fungsi ini memungkinkan programmer untuk berkonsentrasi pada fungsi spesifik yang dibutuhkan oleh pengguna tanpa harus mengkhawatirkan implementasi low-level. Banyak DBMS juga menyediakan generasi ke-4, yang menyediakan alat-alat untuk mempermudah pembuatan aplikasi basis data. Hasil ini akan meningkatkan produktivitas programmer dan mengurangi waktu pembangunan. 12. Meningkatkan Perawatan dengan data independen. Dalam file-based system, deskripsi dari data dan logika untuk mengakses data dibuat dalam setiap aplikasi program membuat program tergantung pada data. Sebagai contoh perubahan dalam struktur data, membuat alamat 41 karakter menjadi 40 karakter, atau merubah penyimpanan data dalam disk, dapat membutuhkan perubahan yang substansial pada program yang dipengaruhi oleh perubahan ini. Sebaliknya, DBMS memisahkan deskripsi data dari aplikasi, membuat 20 aplikasi kebal terhadap perubahan dalam deskripsi data. Hal ini diketahui sebagai independensi data. Penyediaan independensi data menyederhanakan perawatan aplikasi basis data. 13. Increased Concurrency Di beberapa file-based system, apabila dua atau lebih pengguna diperbolehkan untuk mengakses file yang sama secara bersamaan, hal ini mungkin bahwa pengaksesan saling mencampuri satu sama lain, yang berujung pada hilangnya informasi atau bahkan hilangnya integritas. Banyak DBMS mengatur akses concurrency sistem basis data dan memastikan permasalahan-permasalahan yang tidak dapat terselesaikan. 14. Meningkatkan servis untuk cadangan dan pemulihan data Banyak sistem file menaruh tanggung jawab kepada pengguna untuk mengukur proteksi data dari kegagalan sistem komputer atau aplikasi program. Ini memerlukan data cadangan. Apabila terjadi kegagalan keesokan harinya, data cadangan akan melakukan pemulihan data dan pekerjaan yang telah dilakukan akan hilang dan data akan kembali ke data hari sebelumnya dan harus dimasukkan kembali. Sebaliknya, DBMS modern menyediakan fasilitas untuk meminimalisasikan jumlah proses yang hilang. 21 Kerugian DBMS 1. Kompleksitas Dengan berbagai fungsi yang kita harapkan dari sebuah DBMS yang baik, DBMS menjadi sebuah bagian yang sangat kompleks dari sebuah perangkat lunak. Perancang dan pembangun sistem basis data, data dan administrator basis data, dan pengguna aplikasi ini harus mengerti fungsi yang ada untuk membuat keuntungan yang bisa dicapai menjadi maksimal. Kegagalan dalam mengerti sistem dapat berakibat pada pengambilan keputusan yang salah, dimana dapat membuat kesalahan yang fatal untuk organisasi. 2. Ukuran Kompleksitas dari fungsi yang ada membuat DBMS menjadi software yang besar, yang memerlukan kapasitas yang besar dan memerlukan memori yang cukup besar untuk dijalankan secara efektif. 3. Biaya untuk DBMS Biaya untuk DBMS sangat bervariasi tergantung dari fungsi-fungsi yang disediakan. Biaya ini juga tidak termasuk biaya perawatan yang harus dikeluarkan. 4. Biaya untuk perangkat keras tambahan DBMS memerlukan kapasitas penyimpanan yang besar dan data yang tersimpan di dalamnya juga memerlukan ruang penyimpanan tambahan. Lebih jauh, untuk mendukung performa yang maksimal, komputer juga memerlukan mesin 22 yang lebih besar. Maka ini juga merupakan biaya tambahan yang harus dipertimbangkan. 5. Biaya konversi Di beberapa situasi, biaya untuk DBMS dan perangkat keras tambahan juga harus dibandingkan dengan biaya untuk konversi aplikasi untuk menjalankan DBMS dan perangkat keras yang baru. Biaya ini juga termasuk biaya pelatihan karyawan yang menggunakan sistem ini dan sebaiknya karyawan juga merupakan tenaga ahli untuk membantu konversi dan menjalankan sistem. Biaya ini juga merupakan masalah utama perusahaan, sehingga perusahaan tetap menggunakan sistem yang lama dan tidak berpindah ke teknologi yang lebih baru. 23 2.1.7 Siklus Hidup Aplikasi Basis Data Database planning System definition Requirements collection and analysis Conceptual database design DBMS selection (optional) Application design Logical database design Physical database design Implementation Prototyping (optional) Data conversion and loading Testing Gambar 2.1 (Siklus Hidup Basis Data) 24 Tahapan-tahapan siklus perkembangan sistem basis data: 1. Database planning: merencanakan bagaimana tahapantahapan dalam siklus tersebut dapat berjalan dengan efisien dan efektif. 2. System definition: menspesifikasikan cakupan dan batasan dari sistem basis data, termasuk pandangan umum pengguna, pengguna, dan area aplikasi. 3. Requirement collection and analysis: kumpulan dan analisis dari kebutuhan-kebutuhan untuk sistem basis data yang baru. 4. Database design: Desain yang konseptual, logis, dan fisik dari basis data. 5. DBMS selection (optional): memilih DBMS yang cocok untuk sistem basis data. 6. Application design: mendesain interface pengguna dan program-program aplikasi yang menggunakan dan memproses basis data. 7. Prototyping (optional): membangun model dari sistem basis data yang memugkinkan perancang atau pengguna untuk memvisualisasikan dan mengevaluasi bagaimana sistem akhir akan berfungsi. 8. Implementation: menciptakan definisi-definisi basis data dan program-program aplikasi. 9. Data conversion and loading: loading data dari sistem yang terdahulu ke sistem yang baru dan apabila mungkin, 25 mengubah aplikasi-aplikasi yang ada agar dapat berfungsi di basis data yang baru. 10. Testing: Sistem basis data dites, apabila ada kesalahan atau apakah sudah memenuhi syarat-syarat yang dispesifikasi oleh pengguna. 11. Operational maintenance: Sistem basis data ditanamkan sepenuhnya. Sistem ini dimonitor dan dipertahankan secara berkelangsungan. Apabila mungkin kebutuhan-kebutuhan baru dihubungkan ke dalam sistem basis data melalui tahapan-tahapan siklus. 2.1.7.1 DATABASE PLANNING Perencanaan basis data: kegiatan-kegiatan terencana yang memungkinkan tahapan-tahapan siklus dalam perkembangan sistem basis data direalisasikan secara efisien dan efektif. Perencanaan basis data harus disatukan dengan keseluruhan strategi IS organisasi. Ada 3 hal utama yang tercakup dalam memformulasikan strategi IS, yaitu: • Identifikasi rencana-rencana dan tujuan-tujuan dengan sistem informasi yang dibutuhkan. 26 • Evaluasi sistem-sistem informasi untuk menentukan kekuatan-kekuatan dan kelemahankelemahan yang ada. • Penghargaan terhadap kesempatan-kesempatan IT yang mungkin menghasilkan keuntungan yang kompetitif. Langkah penting yang pertama dalam perencanaan basis data adalah untuk mendefinisikan pernyataan misi untuk sistem basis data. Pernyataan misi mengemukakan tujuan-tujuan utama dari sistem basis data. Direktur atau pemilik yang biasanya menentukan proyek basis data dalam sebuah organisasi biasanya mendefinisikan sebuah pernyataan misi. Peryataan misi membantu untuk menjelaskan alasan-alasan dari sistem basis data dan menyediakan jalan untuk menciptakan sistem basis data yang efisien dan efektif. Setelah pernyataan misi telah dibuat, maka langkah selanjutnya yaitu, mengidentifikasikan tujuan-tujuan dari misi. Setiap tujuan tersebut harus mengidentifikasi tugas tertentu yang harus didukung oleh sistem basis data. Apabila sistem basis data mendukung tujuan dari misi, maka pernyataan misi akan bertemu. Pernyataan dan tujuan misi harus disertai dengan informasi tambahan yang menspesifikasi tugas-tugas 27 harus dikerjakan, sumber-sumbernya, dan uang untuk membayar itu semua. Perencanaan basis data juga harus mencakup perkembangan standar-standar yang memerintahkan bagaimana data akan dikumpulkan, bagaimana format harus dispesifikasikan, dokumentasi penting apakah yang diperlukan, dan bagaimana harus memproses desain dan implementasi. Standar-standar bisa sangat memakan waktu untuk mengembangkan dan menjaga sumbersumber yang dibutuhkan. Namun demikian, standar yang didesain dengan baik, menyediakan dasar-dasar untuk staff yang dilatih dan mengukur kualitas dari kontrol, dan dapat memastikan kerja sesuai dengan pola. Sebagai contoh, peraturan-peraturan tertentu dapat memerintahkan ketergantungan dan ketidakkonsistenan. Kebutuhan-kebutuhan yang legal yang menyangkut data harus didokumentasikan. 2.1.7.2 SYSTEM DEFINITION Definisi sistem bertujuan menggambarkan cakupan-cakupan dan batasan-batasan dari aplikasi basis data dan pandangan utama dari pengguna. Sebelum mencoba untuk mendesain sistem basis data, sangat penting untuk kita mengidentifikasi 28 terlebih dahulu batasan-batasan sistem yang kita investigasi dan bagaimana hal itu berhubungan dengan bagian-bagian lain dalam sistem informasi organisasi. Kita juga harus memasukkan ke dalam batasanbatasan sistem kita, tidak hanya pengguna-pengguna sekarang dan area aplikasi, namun juga penggunapengguna dan aplikasi-aplikasi yang akan datang. 2.1.7.3 REQUIREMENTS COLLECTION and ANALYSIS Koleksi persyaratan dan analisis: merupakan sebuah proses mengumpulkan dan menganalisis informasi tentang bagian dari organisasi yang akan didukung oleh sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi kebutuhan- kebutuhan untuk sistem yang baru. Ada banyak teknik untuk mengumpulkan informasi ini, yang disebut “teknik mengumpulkan fakta”. Informasi dikumpulkan untuk setiap pandangan utama pengguna, yang meliputi: • Deskripsi dari data yang digunakan • Detail-detail bagaimana data digunakan • Kebutuhan-kebutuhan tambahan untuk sistem basis data yang baru 29 Informasi ini mengidentifikasikan kemudian dianalisis untuk kebutuhan-kebutuhan untuk dimasukkan ke dalam sistem basis data yang baru. Kebutuhan-kebutuhan ini dijelaskan dalam dokumen yang menunjuk kepada spesifikasi kebutuhan untuk sistem basis data yang baru. Kumpulan-kumpulan kebutuhan dan analisis adalah langkah awal dari desain basis data. Jumlah data yang dikumpulkan tergantung dari permasalahan dan peraturan-peraturan perusahaan. Informasi yang dikumpulkan pada tahap ini, mungkin terstruktur secara lemah dan meliputi permintaan-permintaan yang informal, yang harus diubah ke dalam bentuk pernyataan yang lebih terstruktur. Hal ini dicapai dengan menggunakan teknikteknik spesifikasi kebutuhan, yang meliputi SAD, DFD, dan HIPO. Mengidentifikasi fungsionalitas yang diperlukan untuk sistem basis data adalah kegiatan yang berbahaya, sistem-sistem dengan fungsionalitas yang tidak utuh dan tidak memadai akan mengganggu pengguna, dan akhirnya berujung pada penolakan sistem. Kegiatan lain yang penting pada tahap ini, yaitu memutuskan bagaimana menyikapi situasi ketika ada lebih dari satu 30 pandangan pengguna dalam sistem basis data. Ada 3 pendekatan utama untuk mengatur kebutuhan-kebutuhan dari sistem basis data dengan banyak pandangan pengguna: • Dengan pendekatan pemusatan • Dengan pendekatan penyatuan pandangan • Kombinasi dari keduanya 2.1.7.4 DATABASE DESIGN Desain basis data: merupakan sebuah proses menciptakan sebuah desain yang akan mendukung pernyataan dan tujuan misi perusahaan untuk sistem basis data yang dibutuhkan. Ada 2 pendekatan utama dalam desain basis data yaitu “bawah-atas” dan “atas-bawah”. Pendekatan “bawah atas” dimulai dengan level dasar dari atribut, yang melalui analisis, dikelompokkan menjadi hubungan-hubungan yang mewakili tipe tupe dari keberadaan dan hubungan-hubungannya. Pendekatan ini cocok untuk desain basis data yang sederhana dengan jumlah atribut yang kecil. Namun demikian, pendekatan ini menjadi sulit ketika diaplikasikan ke dalam desain basis data yang lebih kompleks dengan jumlah atribut 31 yang lebih besar, dimana sulit untuk membangun ketergantungan fungsional di antara atribut-atribut yang ada. Sebagai model data yang konseptual dan logis untuk basis data kompleks, yang memiliki ratusan bahkan ribuan atribut, sangat penting untuk menggunakan pendekatan yang akan menyederhanakan proses desain, yaitu pendekatan “atas-bawah”. Pendekatan ini diawali dengan perkembangan model data yang memiliki beberapa entitas dan hubungan-hubungan yang berlevel tinggi. Pendekatan ini diilustrasikan dengan menggunakan konsep model Entity-Relationship(ER). Tahap dalam perancangan desain basis data Desain basis data terdiri dari 3 tahapan utama, yaitu desain basis data konseptual, desain basis data logikal dan desain basis data fisikal. a. Desain basis data konseptual Desain basis data konseptual adalah proses perancangan sebuah model data yang digunakan di dalam sebuah perusahaan. Tahapan pertama dari desain basis data konseptual adalah membangun suatu data model dengan menggunakan informasi yang didapat dari permintaan pengguna. Model data konseptual 32 merupakan acuan untuk membuat desain basis data tahap selanjutnya. Berikut ini adalah langkah-langkah dalam menyusun perancangan basis data konseptual adalah: 1. Identifikasi tipe data entitas. 2. Identifikasi tipe relasi. 3. Identifikasi dan Asosiasi attribut dengan tipe entitas dan relasi. 4. Menentukan domain atribut. 5. Menentukan atribut-atribut Candidate Key dan Primary Key. 6. Memeriksa model data terhadap redundancy. 7. Validasi model konseptual lokal terhadap transaksi pengguna. 8. Meninjau ulang kembali model konseptual lokal terhadap transaksi pengguna. b. Desain basis data logikal Desain basis data logikal adalah proses untuk membangun sebuah model data berdasarkan sebuah 33 model data yang spesifik, tetapi bebas dari bagian DBMS dan pertimbangan fisikal lainnya. Model data konseptual yang dibuat di tahapan sebelumnya diperbaiki dan dipetakan pada model data logical. Sebuah model data konseptual bebas dari semua pertimbangan fisikal, sebaliknya model logikal mengetahui asal dari model data adalah target DBMS. Seluruh proses pembuatan sebuah model data logikal, model di uji coba dan disesuaikan terhadap permintaan pengguna. Teknik normalisasi akan digunakan untuk mengetahui kebenaran Normalisasi dari sebuah dimaksudkan model agar data logikal. tidak terjadi perulangan pada model data logikal. Model data logikal merupakan sumber informasi yang akan digunakan sebagai dasar pembuatan desain basis data fisikal. Desain basis data logikal ini akan diperbaiki dan terintegrasi sehingga model data ini mengizinkan perubahan pada tahapan desain basis data fisikal. Beberapa langkah penting dalam merancang basis data secara logikal adalah: • Membangun dan memvalidasikan model data logikal lokal pada setiap bagian, dengan tujuan 34 untuk memastikan bahwa secara struktural benar dan akan mendukung transaksi yang ada. Langkah-langkahnya adalah sebagai berikut: a. Menghilangkan fitur-fitur yang tidak cocok dengan model relasional(langkah ini bersifat optional). b. Mendapatkan relasi untuk model data logikal. c. Validasi relasi dengan menggunakan normalisasi. d. Validasi relasi terhadap transaksi pengguna. e. Mendefinisikan integrity constraint. f. Tinjauan kembali model data logikal lokal bersama dengan pengguna. • Membangun dan memvalidasikan model data logikal global, tujuannya untuk menggambarkan keseluruhan dari perusahaan. Langkah-langkahnya adalah: a. Gabungkan model data logikal lokal dengan model data global(optional). b. Validasi model data logikal global. 35 c. Melakukan pengecekan terhadap pengembangan masa depan. d. Meninjau kembali model dari logikal global bersama dengan pengguna. c. Desain Basis Data Fisikal Desain basis data fisikal adalah proses untuk membuat sebuah deskripsi dari implementasi basis data pada secondary storage. Ini menjelaskan relasi dasar, pengorganisasian file, dan indeks yang digunakan untuk mencapai akses data yang efisien, dan beberapa asosiasi integrity constraints dan kepastian keamanan. Walaupun struktur DBMS ini bebas, ini dibangun berdasarkan sebuah bagian model data, seperti relasi, jaringan, atau hirarki. Karena itu, desain basis data fisikal disesuaikan pada sebuah sistem DBMS yang spesifik. Pada umumnya, tujuan pokok dari desain basis data fisikal adalah untuk menjelaskan bagaimana kita mengimplementasikan desain basis data logikal secara nyata. 36 Pembuatan model relasional melibatkan : • Pembuatan sebuah set dari tabel relasi dan batasannya yang didapat dari informasi yang ada di dalam model basis data logikal. • Mengidentifikasi spesifikasi struktur penyimpanan dan metode akses data untuk mencapai performa yang optimal untuk aplikasi sistem basis data. • Mendesain proteksi keamanan untuk system aplikasi. Beberapa langkah penting dalam merancang basis data fisikal adalah: 1. Merancang relasi dasar. 2. Merancang representasi dari data yang didapat. 3. Merancang enterprise constraints. 4. Menganalisis transaksi. 5. Memilih indeks. 6. Memperkirakan kapasitas penyimpanan. 7. Merancang mekanisme keamanan. kebutuhan 37 2.1.7.5 DBMS SELECTION Merupakan pemilihan DBMS yang sesuai untuk mendukung sistem basis data. Apabila DBMS tidak ada, maka bagian dari siklus yang bertugas memilih antara fase-fase desain basis data yang konseptual dan logis. Meskipun demikian, pemilihan dapat dilakukan kapan saja sebelum desain logis menyediakan informasi yang memadai yang tersedia menurut kebutuhan-kebutuhan sistem seperti performa, menghapuskan struktur ulang, keamanan, dan pemaksaan penyatuan. Meskipun pemilihan DBMS jarang terjadi, saat kebutuhan perusahaan meningkat, dan sistem-sistem yang sudah ada digantikan, sangat penting untuk mengevaluasi produk-produk DBMS yang baru. Pada masalah seperti ini, tujuannya yaitu untuk memilih sebuah sistem yang memadukan kebutuhan-kebutuhan sekarang dan yang akan datang dari sebuah perusahaan. Keseimbangan antara biayabiaya yang meliputi pembelian produk-produk DBMS, software/hardware tambahan dibutuhkan untuk mendukung sistem basis data, dan biaya-biaya yang dihubungkan dengan perubahan dan pelatihan staff. Pendekatan yang sederhana adalah dengan memeriksa fitur-fitur DBMS. Dalam memilih produk DBMS yang baru, ada kesempatan yang memastikan bahwa proses pemilihan 38 direncanakan dengan baik, dan sistem memberikan keuntungan yang nyata bagi perusahaan. 2.1.7.6 APPLICATION DESIGN Merupakan desain hubungan pengguna/user dengan program-program aplikasi yang menggunakan dan memproses basis data. Basis data dan application design adalah kegiatan yang paralel. Tidak mungkin untuk menyelesaikan desain aplikasi hingga desain basis data berlangsung. Pada kesempatan lain, basis data hadir untuk mendukung aplikasiaplikasi, sehingga harus ada aliran informasi antara desain aplikasi dan desain basis data. Kita harus memastikan bahwa semua fungsionalitas yang dinyatakan dalam spesifikasi kebutuhan-kebutuhan pengguna ada dalam desain aplikasi untuk sistem basis data. Hal ini mencakup mendesain program-program aplikasi yang mengakses basis data dan mendesain transaksi-transaksi. Untuk mendesain bagaimana mencapai fungsionalitas yang dibutuhkan, kita harus mendesain hubungan pengguna yang benar untuk sistem basis data. Hubungan ini harus memberikan informasi yang dibutuhkan dengan cara yang ramah. 39 2.1.7.7 PROTOTYPING Membangun model yang bekerja dari sistem basis data. Model ini normalnya tidak memiliki semua fitur-fitur yang dibutuhkan, dan tidak menyediakan seluruh funsionalitas dari sistem final. Tujuan utama dari mengembangkan prototype sistem basis data adalah untuk memungkinkan pengguna untuk menggunakan prototype untuk mengidentifikasi fitur-fitur dari sistem yang berkerja dengan baik. Dengan cara ini, kita dapat memutuskan kebutuhan-kebutuhan pengguna untuk pengguna itu sendiri maupun si pengembang sistem. Prototype memiliki keuntungan-keuntungan utama, yaitu tidak mahal dan cepat dibangun. Ada 2 strategi prototype yang sering digunakan pada masa sekarang, yaitu requirements evolutionary prototyping. menggunakan prototype prototyping Requirements untuk menentukan dan prototyping kebutuhan- kebutuhan dari sistem basis data, setelah kebutuhan-kebutuhan itu selesai, prototype itu akan dihilangkan. Evolutionary prototype digunakan untuk tujuan yang sama, perbedaan yang penting yaitu, prototype tidak dihilangkan tapi dengan perkembangan lebih jauh, akan menjadi sistem basis data. 40 2.1.7.8 IMPLEMENTATION Merupakan realisasi fisik dari basis data dan desaindesain aplikasi. Implementasi basis data dicapai dengan menggunakan Data Definition Language (DDL) dari DBMS yang terpilih atau Graphical User Interface (GUI), yang menyediakan fungsionalitas yang sama ketika menyembunyikan pernyataan DDL dengan level rendah. Pernyataan DDL digunakan untuk menciptakan struktur basis data dan file-file basis data yang kosong. Program-program aplikasi ditanamkan dengan menggunakan 3GL atau 4GL. Bagian-bagian dari programprogram aplikasi ini adalah transaksi-transaksi basis data, yang ditanamkan dengan menggunakan Data Manipulation Language (DML) dari target DBMS. 2.1.7.9 DATA CONVERSION AND LOADING Melakukan transfer semua data yang ada ke dalam basis data yang baru dan merubah aplikasi yang lama agar dapat diajalankan di basis data yang baru. Bagian ini hanya bisa dicapai apabila sebuah sistem basis data baru menggantikan sistem yang lama. Biasanya 41 kemampuan ini didapat dari file awal target basis data dan kemudian dirubah ke dalam file aplikasi yang baru. 2.1.7.10 TESTING Proses dalam menjalankan sistem basis data dengan mencari kesalahan yang ada. Sebelum dijalankan sistem basis data harus melewati tahap percobaan. Ini menggunakan perencanaan dari stategi percobaan dan data yang ada sehingga proses percobaan sangat penting. Dalam kenyataannya, percobaan ini tidak menunjukkan kesalahan yang ada melainkan hanya menunjukkan kesalahan itu ada dalam software yang dibuat. Jika percobaan ini berhasil dilakukan, maka tidak ada kesalahan dalam program aplikasi yang dicoba dan dalam stuktur basis data yang ada. Keuntungan kedua yang didapat adalah percobaan ini menunjukkan basis data dan aplikasi ini akan bekerja sesuai dengan kebutuhan pengguna dan performa yang ada akan sesuai dengan permintaan serta memenuhi kriteria yang dibutuhkan. Dalam kondisi tertentu, koleksi metrik dari percobaan ini menunjukkan ukuran dari software yang sebenarnya dan kualitas software tersebut. Seperti di dalam perancangan basis data, pengguna dari sistem baru ini harus turut serta dalam percobaan ini. 42 Percobaan ini juga harus bisa mencakup seluruh proses yang bisa digunakan dalam sistem basis data. Kriteria yang harus dicapai antara lain: a. Learnability , seberapa lama seorang pengguna baru menjadi produktif dengan sistem. b. Performance, seberapa baik sistem yang ada merespon penggunanya. c. Robustness, seberapa sistem mentoleransi kesalahan pengguna. d. Recoverability, seberapa baiknya sistem menangani kesalahan yang dibuat pengguna. e. Adapatability, seberapa baiknya sistem bekerja dalam pekerjaan tunggal. 2.1.7.11 OPERATIONAL MAINTENANCE Pemeliharaan Operasional adalah sebuah proses memonitor dan memelihara sistem basis data berdasarkan instalasi. Pada tahap sebelumnya, sistem basis data telah dijalankan dan diujicobakan. Sekarang sistem tersebut menuju pada tahap pemeliharaan yang terdiri dari : 43 a. Memonitor performa dari sistem. Jika performa tersebut jauh di bawah tahap yang memungkinkan, maka perlu pengorganisasian ulang dari sistem basis data. b. Pemeliharaan dan peningkatan kualitas dari sistem basis data (ketika diperlukan). Ketika sistem basis data telah dijalankan sepenuhnya, perlu dilakukan pemantauan lebih lanjut mengenai performa sistem tersebut. Sebuah DBMS normalnya memiliki banyak kegunaan untuk mengurangi terjadinya kegagalan sistem basis data tersebut, termasuk untuk memasukkan data ke dalam basis data dan untuk memantau sistem. Kegunaan yang dimiliki sistem tersebut dapat memberikan informasi yang ada seperti kegunaan basis data. Proses pemantauan merupakan proses yang berkelanjutan sepanjang siklus hidup basis data dan terkadang memerlukan perubahan untuk memenuhi performa yang diinginkan. 2.1.8 Entity Relationship Modelling(ERD) 2.1.8.1 Simple Attribute Simple Attribute adalah sebuah atribut yang disusun oleh sebuah komponen tunggal dengan sebuah eksistensi bebas. 44 Atribut sederhana tidak dapat dibagi lebih jauh menjadi komponen yang lebih kecil. Contoh atribut sederhana termasuk posisi dan gaji dari entitas pegawai. Atribut sederhana seringkali disebut atomic attributes. 2.1.8.2 Composite Attribute Composite Attribute adalah sebuah atribut yang disusun oleh komponen yang bermacam–macam, tiap– tiap dengan eksistensi bebas. Beberapa atribut dapat dibagi lebih jauh dan menghasilkan komponen yang lebih kecil dengan eksistensi bebas milik mereka. Sebagai contoh ; atribut alamat dari entitas cabang dengan nilai ( 163 Main St, Glasglow, G11 9QX) dapat dibagi menjadi atribut jalan (163 main St), kota (Glasglow), dan kode pos (G11 9QX). Model akhir dari atribut alamat sebagai atribut sederhana atau membagi atribut menjadi jalan, kota, dan kode pos bergantung pada bagaimana tampilan yang diinginkan oleh pengguna data terhadap atribut alamat, yaitu sebagai unit tunggal atau sebagai komponen individual. 45 2.1.8.3 Single-Valued and Multi-Valued Attributes a. Single-Valued Attributes Single-Valued Attributes adalah sebuah atribut yang berisi nilai tunggal untuk setiap kejadian dari sebuah tipe entitas. Kebanyakan atribut merupakan nlai tunggal. Sebagai contoh, setiap kejadian dari tipe entitas cabang memiliki nilai tunggal untuk atribut nomor cabang(BranchNo), sebagai contoh (B003), dan karena itu atribut BranchNo menunjukkan sebagai nilai tunggal. b. Multi-Valued Attribute Multi-Valued Attribute adalah sebuah atribut yang berisi nilai yang bermacam-macam untuk setiap kejadian dari sebuah tipe entitas. Beberapa atribut memiliki nilai yang bermacam-macam untuk setiap entitas yang terjadi. Sebagai contoh, setiap kejadian dari tipe entitas cabang dapat mempunyai nilai yang bermacammacam untuk atribut telNo (sebagai contoh, cabang nomor B003 memiliki no telepon 0141-339-2178 dan 0141-339-4439) dan karena itu atribut telNo untuk kasus ini memiliki nilai bermacam-macam. Sebuah 46 atribut yang multi-valued dapat memiliki sejumlah nilai dengan batas yang lebih tinggi dan lebih rendah. Sebagai contoh, atribut telNo dari tipe entitas cabang memiliki antara satu dan tiga nilai. Dengan kata lain, sebuah cabang mungkin memiliki seminimalnya sebuah nomor telepon sampai dengan maksimal tiga nomor telepon. 2.1.8.4 Derived Attribute Derived Attribute adalah sebuah atribut yang merepresentasikan sebuah nilai yang dapat diturunkan dari nilai sebuah atribut yang dihubungkan atau sejumlah atribut, tidak perlu di dalam tipe entitas yang sama. Nilai–nilai yang berisi beberapa atribut dapat diturunkan. Sebagai contoh, nilai dari atribut durasi dari entitas penyewaan dihitung dari atribut rentStart dan rentFinish juga dari tipe entitas penyewaan. Kita lebih menunjuk atribut durasi sebagai atribut turunan, yang mana nilainya diturunkan dari atribut rentStart dan rentFinish. Pada beberapa kasus, nilai dari sebuah atribut diturunkan dari entitas yang terjadi di dalam tipe entitas yang sama. Sebagai contoh, jumlah total dari 47 atribut staff (totalStaff) dari tipe entitas staff dapat dikalkulasi dengan menghitung jumlah total dari entitas staff yang ada. Atribut turunan juga mungkin melibatkan asosiasi dari atribut dari tipe entitas yang berbeda. Sebagai contoh, menimbang sebuah atribut yang disebut deposit dari tipe entitas penyewaan. Nilai dari atribut deposit dikalkulasi dua kali dari sebulan menyewa sebuah property. Karena itu, nilai dari atribut deposit dan tipe entitas penyewaan diturunkan dari atribut sewa dari tipe entitas PropertyForRent. 2.1.8.5 Keys a. Candidate Key Candidate Key adalah set minimal dari atribut yang diidentifikasi secara unik dari setiap kejadian dari setiap tipe entitas. Sebuah candidate key adalah jumlah minimal dari atribut, yang mana setiap nilainya diidentifikasi secara unik oleh entitas yang terjadi. Sebagai contoh, atribut nomor cabang (branchNo) adalah candidate key untuk tipe entitas cabang, memiliki nilai yang berbeda 48 untuk setiap entitas cabang yang terjadi. Candidate key harus berisi niai yang unik untuk setiap tipe entitas yang terjadi. Ini berarti sebuah candidate key tidak dapat berisi null. Sebagai contoh, setiap cabang memiliki sebuah nilai cabang yang unik ( sebagai contoh, B003 ) dan itu tidak mungkin lebih dari satu cabang dengan nomor cabang yang sama. b. Primary Key Primary Key adalah candidate key yang diseleksi dengan identifikasi yang unik dari setiap tipe entitas yang terjadi. Sebuah tipe entitas mungkin memiliki lebih dari satu candidate key. Untuk tujuan diskusi menimbang sebuah anggota dari staff memiliki sebuah definisi perusahaan yang untuk untuk nomor staff ( staffNo ) dan juga sebuah National Insurance Number ( NIN ) yang unik yang digunakan oleh pemerintah. Karena itu kita memiliki dua candidate key untuk entitas staff, satu yang mana harus dipilih seagai primary key. Pemilihan untuk primary key untuk sebuah entitas berdasarkan pertimbangan dari 49 panjang atribut, nomor minimal dari atribut yang dikehendaki, dan kepastian masa depan dari keunikan. Sebagai contoh, definisi perusahaan untuk nomor staf berisi maksimal lima karakter ( sebagai contoh, SG14 ) dimana NIN berisi maksimal sembilan karakter ( sebagai contoh, WL220658D ). Karena itu, kita memilih staffNo sebagai primary key dari tipe entitas Staff dan NIN kemudian ditunjuk sebagai alternate key. c. Composite Key Composite Key adalah sebuah candidate key yang berisi dua atau lebih atribut. Di beberapa kasus, kunci dari sebuah tipe entitas disusun oleh berbagai atribut, yang nilainya unik secara bersama-sama untuk setiap entitas yang terjadi tetapi tidak sebagian. Sebagai contoh, menimbang sebuah entitas yang disebut Advert dengan atribut propertyNo(nomor property), newspaperName, dateAdvert, dan cost. Banyak property diiklankan di banyak koran pada tanggal yang ada. Untuk mengidentifikasi secara unik setiap kejadian dari nilai tipe entitas Advert yang 50 dikehendaki untuk atribut propertyNo, newspaperName, dan dateAdvert. Demikianlah , tipe entitas Advert memiliki sebuah composite primary key yang terbuat dari atribut propertyNo, newspaperName, dan dateAdvert. Primary key Staff staffNo(PK) Branch Mengatur Area untuk mendaftarkan atribut name branchNo(PK) position salary address Derived attribute Composite attribute street totalStaff city Memiliki postcode telNo [1…3] Multiâvalued attribute Gambar 2.2 Composite Key 2.1.8.6 Strong and Weak Entity Types Kita dapat mengelompokkan tipe entitas menjadi strong atau weak. 51 a. Strong Entity Types Strong entity types adalah sebuah tipe entitas yang eksistensinya tidak bebas pada beberapa tipe entitas lainnya. Strong entity Client Weak entity States ClientNo (PK) Preference Name prefType fName maxRent lName telNo Gambar 2.3 Strong Entity Sebuah tipe entitas ditunjuk sebagai strong apabila eksistensinya tidak bergantung pada eksistensi dari tipe entitas lainnya. Sebuah karakter dari sebuah tipe entitas yang kuat yaitu setiap entitas yang terjadi dapat diidentifikasi secara unik menggunakan atribut primary key dari tipe entitas itu. Sebagai 52 contoh, kita dapat mengidentifikasi secara unik setiap anggota dari staff menggunakan atribut staffNo, yang mana merupakan primary key untuk tipe entitas Staff. b. Weak Entity Types Weak entitas types adalah sebuah tipe entitas yang eksistensinya bergantung pada beberapa tipe entitas lainnya. Sebuah tipe entitas yang lemah bergantung pada tipe entitas lainnya. Sebuah karakteristik dari entitas yang lemah adalah setiap entitas yang terjadi tidak dapat diidentifikasi secara unik dengan hanya menggunakan atribut yang berhubungan dengan tipe entitas itu. Sebagai contoh, catatan dimana disana tidak terdapat primary key untuk entitas Preference. Ini berarti kita tidak dapat mengidentifikasi setiap kejadian untuk tipe entitas Preference hanya menggunakan atribut dari entitas ini. Kita hanya dapat mengidentifikasi secara unik setiap preference dari hubungan yang mana preference memiliki seorang klien yang 53 mana diidentifikasi secara unik menggunakan primary key untuk tipe entitas Client, dinamakan clientNo. Pada contoh ini, entitas preference didefinisikan memiliki eksistensi yang bergantung pada entitas Client, yang mana ditunjuk sebagai pemilik entitas. Tipe entitas yang lemah seringkali ditunjuk sebagai entitas child, dependent, atau subordinate dan tipe entitas yang kuat sebagai entitas parent, owner, atau dominant. 2.1.8.7 Structural Constraints Sekarang kita mempelajari constraint yang mungkin ditempatkan pada tipe entitas yang ikut serta dalam sebuah hubungan. Constraint harus dapat menggambarkan constraint pada hubungan sebagai pengamatan dalam dunia nyata. Contoh seperti constraint berisi syarat dari sebuah property untuk disewakan adalah memiliki seorang pemilik dan setiap cabang harus memiliki staff. Tipe utama dari constraint pada hubungan dinamakan multiplicity. 54 2.1.8.8 Multiplicity Multiplicity adalah jumlah(atau hasil) dari kejadian yang mungkin dari sebuah tipe entitas yang mungkin berhubungan pada sebuah kejadian tunggal dari sebuah asosiasi tipe entitas melewati sebuah hubungan yang utama. Multiplicity constrains merupakan cara dimana entitas-entitas dihubungkan antara satu sama lain. Itu merupakan gambaran aturan yang diterbitkan oleh pengguna atau perusahaan. Menjamin bahwa semua constrain yang dimiliki telah diidentifikasi dan direpresentasikan adalah sebuah bagian penting dari mendesain sebuah perusahaan. Sebagaimana yang telah kita jelaskan sebelumnya, tingkat yang paling umum dari hubungan adalah binary. Hubungan binary umumnya mennjuk sebagai one-to-one ( 1:1 ), one-to-many ( 1:* ), atau many-to-many ( *:* ), Kita menjelaskan tiga tipe hubungan ini menggunakan integritas constraints berikut ini : • Seorang anggota staff mengatur sebuah cabang ( 1:1 ); 55 • Seorang anggota staff mengamati property untuk disewakan ( 1:* ); • Koran mengiklankan property untuk disewakan ( *:* ); Suatu catatan penting bahwa tidak semua integritas constraints dapat dengan mudah direpresentasikan di dalam sebuah model ER, Sebagai contoh, syarat dari seorang anggota staff penerimaan sebuah tambahan hari libur karyawan untuk setiap tahun dalam perusahaan akan sulit direpresentasikan pada sebuah model ER. a. One-to-One ( 1:1 ) relationships Menimbang pada hubungan mengatur, yang mana menghubungkan tipe entitas staff dan cabang. Setiap hubungan merepresentasikan asosiasi di antara entitas staff tunggal yang terjadi dan sebuah entitas cabang tunggal yang terjadi. Kita merepresentasikan setiap entitas yang terjadi menggunakan nilai untuk atribut primary key dari entitas staff dan cabang yang dinamakan staffNo dan cabangNo. 56 Seorang anggota staff dapat mengatur nol atau satu Setiap staff mengatur nol atau satu cabang Mengatur Cabang Staff staffNo 0..1 1..1 cabangNo Gambar 2.4 One to One relationships b. One-to-Many ( 1:* ) relationships Menimbang pada hubungan mengamati, yang mana menghubungakan tipe entitas Staff dan hubungan PropertiDisewakan. merepresentasikan Setiap asosiasi diantara entitas staff tunggal yang terjadi dengan sebuah entitas PropertiDisewakan tunggal yang terjadi. Kita merepresentasikan setiap entitas yang terjadi menggunakan nilai untuk atribut primary key dari entitas staff dan PropertiDisewakan yang dinamakan staffNo dan propertiNo. 57 Setiap anggota staff mengamati nol atau lebih properti untuk disewakan Setiap properti untuk disewakan diamati oleh nol atau satu orang staff Mengamati Staff PropertiDisewakan staffNo 0..1 0..* propertiNo Gambar 2.5 One-to-Many ( 1:* ) relationships c. Many-to-Many ( *:* ) relationships Menimbang pada hubungan mengiklankan, yang mana menghubungkan tipe entitas Koran dan PropertiDisewakan. Setiap hubungan merepresentasikan asosiasi diantara entitas Koran tunggal yang terjadi dengan sebuah entitas PropertiDisewakan tunggal yang terjadi. Kita merepresentasikan setiap entitas yang terjadi menggunakan nilai untuk atribut primary key dari entitas Koran 58 dan PropertiDisewakan yang dinamakan namaKoran dan propertiNo. Setiap koran mengiklankan satu atau lebih properti untuk disewakan Setiap properti untuk disewakan diiklankan di nol atau lebih koran M engiklankan PropertiDisewakan Koran 1..* namaKoran propertiNo 0..* Gambar 2. 6 Many to Many Relationship 2.1.8.8.1 Cardinality dan Participation Constraints Multiplicity secara nyata terdiri dari dua bagian constraints yang lebih dikenal sebagai cardinality dan participation. a. Cardinality Cardinality menguraikan jumlah maksimal dari hubungan yang mungkin terjadi untuk sebuah peserta entitas di dalam tipe hubungan yang diberikan. 59 Cardinality dari sebuah hubungan binary adalah apa yang kita tunjuk terlebih dahulu sebagai one-toone ( 1:1 ), one-to-many ( 1:* ), atau many-to-many ( *:* ). Cardinality dari sebuah hubungan terlihat sebagai nilai maksimal untuk jarak pada sisi yang sama dari hubungan. b. Participation Participation constrain menggambarkan apakah semua entitas yang terjadi dilibatkan dalam sebuah hubungan perticular (ditunjuk sebagai mandatory participation) atau hanya beberapa (ditunjuk sebagai optional participation optional). Keikutsertaan entitas-entitas dalam sebuah hubungan terlihat sebagai nilai minimum untuk barisan yang banyak pada salah satu sisi dari hubungan. Optional participation digambarkan sebagai sebuah nilai minimum dari 1. Penting untuk diingat bahwa keikutsertaan untuk sebuah entitas yang diberikan dalam sebuah hubungan digambarkan dengan nilai 60 minimun pada sisi lawan dari hubungan tersebut. Itu adalah nilai minimum untuk multiplicity disamping entitas yang berhubungan. 2.1.9 Normalisasi Normalisasi merupakan sebuah teknik formal untuk menganalisis hubungan berdasarkan pada primary key atau candidate key dan fungsi ketergantungan(Codd,1972b). Teknik ini melibatkan sejumlah aturan yang dapat digunakan untuk menguji hubungan individual, jadi sebuah basis data dapat dinormalisasikan ke berbagai tingkatan. Ketika sebuah kebutuhan tidak ditemukan, hubungan yang melanggar kebutuhan harus dipisah-pisahkan menjadi hubungan yang dapat berdiri sendiri bertemu dengan kebutuhan lain untuk proses normalisasi. 3Form normal awal yang diusulkan disebut First Normal Form(1NF), Second Normal Form(2NF) dan Third Normal Form(3NF). Normalisasi sering dieksekusi dalam sejumlah langkah. Setiap langkah menyesuaikan pada form normal yang spesifik dan memiliki properti yang telah diketahui. Sebagai proses normalisasi, relasi menjadi lebih terkait di dalam format dan juga tidak langsung bersinggungan dengan memperbaharui penyimpangan-penyimpangan yang 61 ada. Untuk relasi model data, penting untuk diketahui bahwa hanya First Normal Form(1NF) yang bersifat kritis pada pembuatan relasi, semua form berikutnya adalah pilihan. Normalisasi merupakan jawaban dalam menjawab solusi untuk menyelesaikan masalah dengan tabel yang memiliki bagian yang berulang. Normalisasi memasukkan tabel tersebut ke dalam tabel yang terpisah. Ketika tabel tersebut sudah tidak memiliki tabel yang berulang, maka itu disebut First Normal Form(1NF). Dengan ini, setiap cell yang ada di dalam tabel(1 baris dan 1 kolom) hanya dapat memiliki 1 nilai. Nilai ini harus berupa satuan terkecil yang sudah tidak dapat dipecah menjadi satuan yang lebih kecil lagi. Tujuan dari normalisasi adalah untuk mengidentifikasi sebuah set hubungan yang cocok yang menyediakan data yang dibutuhkan oleh perusahaan. Karakter-karakter set hubungan yang cocok termasuk dibawah ini: a. Jumlah atribut yang minimal diperlukan untuk menyediakan data yang dibutuhkan oleh perusahaan. b. Atribut dengan logical yang dekat (dijelaskan sebagai fungsi ketergantungan) ditemukan pada relasi yang sama. c. Perulangan yang minimal pada setiap atribut direpresentasikan hanya sekali dengan pengecualian penting terhadap atribut yang membentuk seluruh/sebagian foreign key. 62 Keuntungan menggunakan sebuah basis data yang memiliki set hubungan yang cocok dengan basis data adalah pengguna akan lebih mudah mengakses dan memperbaiki data serta meminimalkan tempat penyimpanan pada komputer. 2.1.9.1 First Normal Form(1NF) Sebelum mendiskusikan First Normal Form, kita menyediakan definisi dari tingkatan yang lebih dulu dibandingkan First Normal Form. Unnormalized Form(UNF) adalah sebuah tabel yang berisi satu atau lebih pengulangan. First Normal Form (1NF) adalah sebuah relasi yang mana pemisahan dari setiap baris dan kolom berisi 1 dan hanya 1 nilai. First Normal Form(1NF) hanya mendefinisikan kelompok yang berulang dan memasukkan ke dalam tabel baru yang terhubung dengan tabel utama lewat sebuah initial key. Langkah selanjutnya akan lebih sulit karena harus melihat hubungan antara nilai key dan non key dalam sebuah tabel. Mereka mengidentifikasi dengan tepat relation many to many. Pada bagian ini, kita mulai dengan proses normalisasi dengan memindahkan data dari sumber 63 menjadi format tabel yang berupa baris dan kolom. Pada format ini, tabel dalam unnormalized form dan ditunjuk sebagai unnormalized tabel(tabel yang belum di normalisasi). Untuk mengubah tabel yang belum di normalisasi menjadi First Normal Form, kita harus mengidentifikasi dan menyingkirkan perulangan kelompok yang terjadi dalam tabel. Kelompok yang diulang adalah sebuah atribut atau kelompok atribut dengan sebuah tabel yang memiliki nilai yang banyak untuk kejadian tunggal dari nominasi atribut kunci untuk tabel tersebut. Perlu diketahui, kondisi ’key’ menunjuk pada atribut yang didefinisikan unik pada setiap baris pada tabel yang belum dinormalisasikan. Ada perulangan 2 pendekatan kelompok dari untuk tabel menyingkirkan yang belum dinormalisasikan: a. Dengan memasukkan data ke dalam kolom kosong dari baris yang berisi perulangan data. Dalam kata lain, kita mengisi yang kosong dengan duplikat data yang tidak diulang, yang dikehendaki. Pendekatan ini umumnya ditunjuk sebagai ‘flattening’ pada tabel. 64 b. Dengan menempatkan perulangan data, sepanjang dengan sebuah salinan atribut kunci asli, ke dalam sebuah relasi terpisah. Kadang, tabel yang belum dinormalisasi mungkin berisi lebih dari 1 perulangan kelompok. Pada kasus seperti ini, pendekatan dapat diulang sampai tidak ada lagi perulangan yang terjadi. Sebuah set relasi dapat berada pada 1NF jika tidak terdapat perulangan group Untuk kedua pendekatan, tabel hasil sekarang ditunjuk sebagai hubungan berisi nilai atomic (atau tunggal) pada pemisahan dari setiap baris dan kolom. Walaupun kedua pendekatan itu benar, pendekatan 1 mengenalkan lebih banyak kelebihan menjadi tabel UNF asli sebagai bagian dari proses flattening, padahal pendekatan 2 membuat dua atau lebih relasi dengan perulangan yang lebih sedikit daripada tabel UNF yang asli. Dalam kata lain, pendekatan 2 memindahkan tabel UNF asli lebih jauh sepanjang proses normalisasi daripada proses pendekatan 1. Tetapi pendekatan manapun yang diambil, bukan menjadi masalah karena tabel UNF asli akan dinormalisasi menjadi set yang sama dari relasi 3NF 65 2.1.9.2 Second Normal Form(2NF) Second Normal Form(2NF) berdasarkan pada konsep fungsi ketergantungan penuh. Second Normal Form diterapkan pada relasi dengan composite keys, yang mana relasi dengan sebuah atribut primary key yang disusun oleh 2 atau lebih atribut. Sebuah relasi dengan sebuah atribut primary key tunggal otomatis setidaknya pada 2NF. Sebuah relasi yang tidak terdapat pada 2NF akan terkena penyimpangan pembaharuan. Second Normal Form adalah sebuah relasi yang terdapat pada First Normal Form dan setiap atribut selain primary key sepenuhnya bergantung fungsinya pada primary key. Normalisasi dari hubugan 1NF ke 2NF melibatkan pemindahan sebagian ketergantungan. Jika sebuah ketergantungan sebagian terjadi, maka kita harus menyingkirkan atribut ketergantungan sebagian dari relasi dengan menempatkan mereka pada sepanjang relasi yang baru dengan salinan dari faktor penentu mereka. 2.1.9.3 Third Normal Form(3NF) Walaupun relasi Second Normal Form memiliki ketergantungan lebih sedikit daripada 2NF, 66 mereka masih akan terkena gangguan pembaharuan. Gangguan pembaharuan ini disebabkan oleh sebuah ketergantungan berpelengkap. Third Normal Form adalah sebuah relasi yang terdapat pada First Normal Form dan Second Normal Form dan dimana tidak terdapat atribut yang bukan primary key yang bergantung sepenuhnya pada primary key. Normalisasi dari hubungan 2NF ke 3NF melibatkan ketergantungan secara lengkap. Jika terdapat atribut ketergantungan secara lengkap dari relasi dengan menempatkan atribut pada sepanjang relasi yang baru dari salinan dari faktor penentu mereka. 2.1.10 State Transition Diagram (STD) STD adalah sebuah diagram yang menggambarkan bagaimana proses dihubungkan dengan yang lainnya di dalam waktu. STD menggambarkan keadaan sebuah komponen sistem yang bisa didapatkan dan kejadian yang menyebabkan perubahan dari keadaan yang satu ke yang lainnya.(Jeffrey, p364) Sebuah state dapat dikatakan sebagai sebuah model atau kondisi dari keberadaan sebuah proses atau komponen 67 sistem lainnya, sebagaimana ditentukan oleh keadaan sekarang. Di dalam orientasi objek dikatakan, sebuah state berisi seluruh property objek, yang mana bersifat statis, dan nilai dari property tersebut, bersifat dinamis (Booch, 1994). Transisi dari satu state ke yang lainnya disebabkan oleh stimulasi yang kita kenal sebagai kejadian. Jarak yang lebar dari fenomena dapat dikualifikasikan sebagai kejadian, dari kejadian sebuah transaksi sampai tingkat penyimpanan yang dicapai sebuah reorder point, sampai seorang pengguna menekan sebuah tombol pada mouse pada field layar pemasukkan data, sampai ke perubahan pada waktu dari hari ke hari sampai selanjutnya. Setiap kali sebuah state baru dimasukkan, sebuah aksi yang berhubungan dengan state mengambil alih (Shlaer and Mellor,199). Sebuah kejadian, selanjutnya, memetik sebuah transisi ke sebuah state baru dan menyebabkan sebuah aksi terjadi. Seperti DFD, terdapat beberapa simbol yang digunakan di dalam pembuatan STD. Setiap state digambarkan dengan sebuah segi empat, setiap transisi digambarkan dengan sebuah panah. Sebuah kejadian yang memetik transisi dari satu state ke yang lainnya nampak pada sebuah label setelah dari panah transisi. Aksi yang terjadi ketika sebuah state baru memasuki nampak pada sebuah daftar intruksi yang tertulis di bawah korespondensi state segi empat. Aksi dapat diorder di dalam 68 waktu (Conger, 1994). State kedua mengikuti state pertama, yang ketiga mengikuti yang kedua, dan selanjutnya, berdasarkan diagram. Terdapat banyak jalur di dalam sebuah STD, tapi transisi ke setiap state baru dipetik oleh satu dan hanya satu kejadian. Terdapat dua cara untuk memproses ketika membangun STD. Cara pertama adalah untuk memikirkan seluruh kemungkinan state yang mungkin diasumsikan oleh sistem kemudian menentukan seluruh kemungkinan koneksi di antara state. Cara kedua adalah untuk memulai dengan state pertama, menentukan state mana yang mungkin untuk dimasuki dari setiap state tersebut, sampai jaringan tersebut dapat digambarkan(Yourdon, 1989b). 2.1.11 Data Flow Diagram (DFD) DFD adalah sebuah model proses yang digunakan untuk melukiskan aliran dari data dalam sebuah sistem dan kerja atau proses yang dijalankan oleh sistem(Whitten, p344). Di dalam tingkatan desain, beberapa dari proses bisnis ini mungkin diimplementasikan sebagai software komputer. Jika anda periksa DFD ini, anda akan menemukan ini sangat mudah untuk dibaca, meskipun anda belum selesaikan bagian ini, itu akan selalu menjadi keuntungan dari DFD. Di sini hanya ada 3 simbol dan 1 koneksi : 69 • Segi empat yang dibulatkan menggambarkan proses atau kerja untuk diselesaikan. Perhatikan bahwa mereka diilustrasikan di dalam warna proses dari lembar kerja sistem informasi anda. • Lingkaran menggambarkan external agents–batasan dari sistem. Perhatikan bahwa mereka diilustrasikan di dalam warna tampilan dari lembar kerja sistem informasi anda. • Open-ended boxes menggambarkan penyimpanan data, seringkali file-file disebut atau database–database. Penyimpanan data ini bersesuaian dengan seluruh bagian dari entitas tunggal di dalam sebuah data model. Mereka diilustrasikan dengan warna data dari lembar kerja sistem informasi anda. • Panah menggambarkan aliran data, atau input dan output , untuk dan dari proses. 2.1.12 Context Data Flow Diagram DFD Konteks adalah sebuah model proses yang digunakan untuk mendokumentasikan lingkungan untuk sebuah sistem(Whitten,p372). Ketika kita membuat sebuah proyek, hal pertama yang harus kita lakukan adalah mendokumentasikan lingkungan awal dari proyek. Semua proyek memiliki lingkungan. Lingkungan proyek mendefinisikan aspek apa saja dalam bisnis yang perlu dibantu oleh sebuah sistem atau aplikasi dan 70 bagaimana sistem yang telah dimodelkan harus dapat berinteraksi dengan sistem lain dan bisnis secara keseluruhan. Di dalam lembar kerja sistem informasi, lingkungan didefinisikan sebagai fokus komunikasi dari pengharapan pemilik sistem. Yang mana itu didokumentasikan oleh sebuah context data flow diagram. Context data flow diagram berisi satu dan hanya satu proses. Seringkali proses ini diidentifikasikan dengan angka “0”; meskipun peralatan kami terkadang tidak mengizinkannya. Data flows mendefinisikan interaksi dari sistem anda dengan batasan-batasan dan dengan penyimpanan data eksternal. 2.1.13 Diagram Aliran Dokumen Diagram Aliran Dokumen adalah simbol–simbol standar yang digunakan oleh bagian analisis sistem untuk membuat diagram aliran dokumen yang menggambarkan sistem tertentu (Mulyadi, 1993, p60). Sebenarnya banyak cara untuk mengembangkan diagram aliran dokumen suatu sistem, namun diagram aliran dokumen merupakan alat yang digunakan secara luas untuk menggambarkan aliran dokumen suatu sistem. 71 Adapun simbol yang digunakan dalam diagram aliran dokumen antara lain : 1. Simbol Proses Menunjukkan kegiatan proses dari operasi program komputer. Gambar 2.7 Simbol Proses 2. Simbol Dokumen Menunjukkan dokumen masukkan dan keluaran, baik untuk proses manual, mekanik atau komputer. Gambar 2.8 Simbol Dokumen 3. Simbol Kegiatan Manual Menunjukkan kegiatan manual. Gambar 2.9 Simbol Kegiatan Manual 4. Simbol Penghubung Menunjukkan penghubung ke halaman yang sama dan ke halaman yang lain. Gambar 2.10 Simbol Penghubung 72 5. Simbol Catatan Menunjukkan direkam catatan sebelumnya data di yang dalam dokumen. Gambar 2.11 Simbol Catatan 6. Simbol Garis Alur Menunjukkan arus pada proses. Gambar 2.12 Simbol Garis Alur 7. Simbol Terminal Menunjukkan sumber atau tujuan dari dokumen. Gambar 2.13 Simbol Terminal 8. Simbol Percabangan Simbol ini digunakan untuk melambangkan percabangan, yaitu pemeriksaan terhadap suatu kondisi. Gambar 2.14 Simbol Percabangan 73 2.2 Teori Khusus 2.2.1 Database Security Suatu mekanisme yang menjaga basis data terhadap gangguan yang terjadi baik itu disengaja ataupun tidak disengaja. Security tidak hanya berfungsi pada data yang terdapat di dalam basis data, namun cabang dari security juga mempengaruhi bagian lain dari sistem, yang mana juga mempengaruhi basis data. Secara pasti, database security mempengaruhi perangkat keras, perangkat lunak, orang, dan data. Untuk mengimplementasi keamanan yang efektif diperlukan kontrol yang tepat, yang didefinisikan dalam misi objektif yang spesifik untuk sistem tersebut. Kebutuhan akan keamanan ini dahulu seringkali ditelantarkan atau malah terlalu diperhatikan, sekarang mulai diperhatikan oleh berbagai organisasi. Alasan untuk berbalik arah ini adalah peningkatan jumlah kerawanan hubungan data yang tersimpan di komputer dan penerimaan dari beberapa kehilangan dan ketidaktersediaan dari data ini dapat menyebabkan kehancuran. Sebuah basis data merupakan inti sumber hubungan yang harus dilindungi dengan sebaik-baiknya menggunakan kontrol yang tepat. Kita menggunakan database security di dalam sebuah relasi untuk situasi sebagai berikut ; • Pencurian dan penipuan • Kehilangan kerahasiaan 74 • Kehilangan privasi • Kehilangan integritas • Kehilangan kemampuan Situasi ini dengan luas wilayah yang mewaili organisasi harus mengusahakan pengurangan resiko dengan kemungkinan untuk mengurangi resiko, yaitu kemungkinan dari pengurangan kehilangan atau kerusakan. Pada beberapa situasi, area ini berhubungan erat dengan sebuah aktivitas yang mengakibatkan kehilangan dalam satu area yang juga akan mengakibatkan kehilangan pada area lainnya. Dalam penambahannya, kejadian seperti penipuan atau kehilangan privasi mungkin meningkat dikarenakan oleh perbuatan yang disengaja atau tidak disengaja lainnya, dan jangan membutuhkan hasil dalam perubahan yang terdeteksi pada basis data atau sistem komputer. Pencurian dan penipuan berakibat tidak hanya pada lingkungan basis data tetapi juga pada organisasi yang sudah lalu. Maka dari sebab itu orang–orang yang melakukan aktivitas seperti ini, perhatiannya harus fokus pada pengurangan kemungkinan akan kejadian ini. Pencurian dan penipuan tidak memerlukan pengubah data, seperti kasus untuk aktivitas yang dihasilkan baik itu untuk kasus kehilangan kerahasiaan ataupun kehilangan privasi. Kerahasiaan berhubungan dengan kebutuhan untuk memelihara keamanan data, biasanya hanya pada bagian yang kritis pada organisasi, padahal privasi berhubungan dengan kebutuhan untuk menjaga data secara individual. Pelanggaran keamanan dapat 75 mengakibatkan kehilangan kerahasiaan, sebagai contoh : mengakibatkan kehilangan daya saing dan kehilangan prvasi dapat mengakibatkan aksi yang sah yang diambil untuk menentang organisasi. Kehilangan integritas dari data mengakibatkan data menjadi tidak tepat atau hilanganya sebagian dari data yang mana berakibat serius pada operasi dari sebuah organisasi. Sekarang banyak organisasi mencari operasi virtual yang berkelanjutan, yang mana berarti data atau sistem ataupun kedua–duanya tidak dapat diakses, yang mana dapat berakibat serius pada performa financial organisasi. Pada beberapa kasus, hal tersebut dapat menyebabkan sistem tidak tersedia sehingga menyebabkan hilangnya sebagian data Keamanan basis data ditujukan untuk meminimalisasikan kehilangan yang disebabkan oleh kejadian yang dihindari dalam aturan pengefektifan biaya tanpa memaksa pengguna. Pada baru–baru ini aktivitas kriminal dengan menggunakan komputer telah meningkat dengan pesat dan akan meningkat secara terus-menerus pada beberapa tahun yang akan datang. 2.2.2 Transaksi Transaksi adalah sebuah aksi atau kumpulan aksi yang dilakukan oleh pengguna tunggal atau program aplikasi yang mana membaca atau meng-update isi dari basis data. Sebuah transaksi adalah unit logical dari pekerjaan pada basis data. Hal ini dapat berupa seluruh program, sebuah bagian dari 76 program, atau sebuah command tunggal dan hal itu akan melibatkan beberapa operasi dari basis data di dalam konteks basis data, eksekusi dari program aplikasi dapat berupa satu atau lebih transaksi dengan proses bukan basis data yang mengambil tempat di antara keduanya. Ada beberapa properti yang harus dimiliki oleh semua transaksi, yang sering dikenal dengan empat dasar atau juga disebut ACID, yaitu : • Atomicity Sebuah transaksi adalah sebuah unit yang tidak dapat dibagi performanya pada keseluruhannya, atau tidak ada performanya sama sekali. Hal tersebuat adalah tanggung jawab dari pengembalian subsistem dari DBMS untuk menjamin atomicity. • Consistency Sebuah transaksi harus mengubah basis data dari satu tingkat konsistensi ke tingkat konsistensi lainnya. Hal tersebut merupakan tanggung jawab dari DBMS dan pengembang aplikasi untuk keseluruhan konsistensi. DBMS dapat dikonsistensikan keseluruhannya dengan memaksa seluruh batasan yang telah dispesifikasikan pada skema basis data, seperti integritas dan batasan perusahaan. Seringkali transaksi itu sendiri tidak cukup untuk menjamin konsistensi. • Isolation Eksekusi transaksi terpisah antara satu dengan yang lainnya. Dengan kata lain efek pembagian dari transaksi yang tidak selesai tidak boleh ditunjukkan kepada transaksi lainnya karena 77 merupakan tangung jawab dari kontrol subsistem yang bersamaan untuk menjamin isolasi. • Durability Efek dari sebuah transaksi yang berhasil disalin secara permanen di dalam basis data dan tidak boleh hilang yang terjadi dikarenakan kegagalan yang berturut–turut. Hal ini merupakan tanggung jawab dari pengembalian subsistem untuk menjamin durabilitas. Terdapat 3 tipe pokok transaksi, yaitu : • Retrieval Transaction Digunakan untuk memperoleh data untuk ditampilkan pada layar atau pada laporan produksi. • Update Transaction Digunakan untuk memasukkan record baru, menghapus record lama, atau memodifikasi record yang sudah ada pada basis data. • Mixed Transaction Melibatkan kedua transaksi, baik itu penampilan dan update data. 2.2.2.1 Persediaan Persediaan adalah aktivitas penyimpanan fisik yang menempati posisi cukuppenting dalam suatu perusahaan. Aktiva perusahaan ini dapat terdiri dari bahan yang diterima dengan tujuan untuk diproses lebih lanjut menjadi barang 78 setengah jadi atau bahan jadi, tergantung dari jenis dan proses usaha utama perusahaan. 2.2.2.2 Pembelian Pembelian adalah tanggung jawab untuk memesan persediaan dari berbagai pemasok ketika tingkat persediaan jatuh ke titik pemesanan ulang. Sifat dari pekerjaan ini bervariasi antarperusahaan. Dalam berberapa kondisi, pembelian tidak lebih dari mengirim pesanan pembelian pemasok yang ditunjuk. Di kondisi lainnya, pekerjaan ini melibatkan permintaan penawaran dari berbagai penjual yang saling bersaing. Sifat bisnis serta jenis persediaan menentukan sejauh mana fubgsi suatu bagian pembelian. 2.2.2.3 Penjualan Penjualan adalah proses puncak pertukaran barang atau jasa dengan imbalan sejumlah nominal yang harus dibayar oleh pelanggan untuk barang atau jasa yang telah dijual. Penjualan dimulai dari terjadinya kesepakatan antara penjual atau pemilik barang dengan pembeli dan penyelesaiannya adalah harga atau kewajiban yang harus diberikan atas kompensasi dari barang atau jasa yang diberikan. Pembayaran yang dilakukan dapat berupa pembayaran secara tunai maupun pembayaran secara kredit. 79 2.2.3 Visual Basic Microsoft Visual Basic (VB) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM). Visual Basic merupakan turunan bahasa BASIC dan menawarkan pengembangan aplikasi komputer berbasis grafik dengan cepat, akses ke basis data menggunakan Data Access Objects (DAO), Remote Data Objects (RDO), atau ActiveX Data Object (ADO), serta menawarkan pembuatan kontrol ActiveX dan objek ActiveX. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. 2.2.4 MySQL MySQL adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis di bawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan MySQL, namun tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basis data sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basis data, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara 80 otomatis. Keandalan suatu sistem basis data(DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh pengguna maupun program-program aplikasinya. Sebagai server basis data, MySQL dapat dikatakan lebih unggul dibandingkan server basis data lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh pengguna tunggal, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase .