BAB II LANDASAN TEORI 2.1 2.1.1 Teori Dasar Sistem Menurut McLeod dan Schell (2007:11) sistem merupakan sekelompok elemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan Sedangkan menurut O’Brien dan Marakas (2011:60) sistem merupakan sekumpulan komponen yang berhubungan yang mempunyai batasan yang jelas, dan yang saling bekerja sama untuk mencapai suatu tujuan tertentu dengan cara menerima input dan menghasilkan output dari proses transformasi yang terorganisasi. O’Brien dan Marakas (2011:60) menyatakan bahwa sistem terdiri dari 3 fungsi dasar yang terdiri dari: - Input, merupakan kumpulan elemen yang akan dimasukkan ke dalam sistem untuk di proses, sebagai contoh adalah bahan mentah, energi, data, dan lainnya. - Process, merupakan kegiatan untuk merubah input menjadi output. - Output, merupakan elemen yang dihasilkan setelah melalui proses perubahan, sebagai contoh adalah hasil jadi produk dan jasa manusia. 2.1.2 Informasi Menurut O’Brien dan Marakas (2011:68), informasi merupakan data yang telah diubah menjadi suatu konteks yang mempunyai makna dan berguna bagi para end-user tertentu. Sedangkan menurut McLeod dan Schell (2007:11) informasi adalah data hasil pemrosesan yang mempunyai makna, dan biasanya menceritakan suatu hal yang belum diketahui kepada pengguna. Dengan demikian dapat disimpulkan bahwa informasi adalah data yang telah diolah sehingga memiliki suatu makna tertentu. 2.1.3 Sistem Informasi Menurut McLeod dan Schell (2007:11), sistem informasi dinyatakan sebagai sistem virtual yang memungkinkan manajemen untuk mengendalikan operasi sistem fisik perusahaan. 5 6 Menurut O’Brien dan Marakas (2011:38) sistem informasi merupakan kombinasi dari manusia, hardware, software, jaringan komunikasi, sumber data, prosedur dan kebijakan yang menyimpan, mengambil, mengubah, dan menyebarkan informasi dalam organisasi. 2.1.4 Data Menurut O’Brien dan Marakas (2011:68), datum atau yang dalam bentuk jamak disebut juga sebagai data dapat didefinisikan sebagai fakta mentah atau hasil observasi yang biasanya berupa fenomena fisik atau transaksi bisnis. Dengan demikian dapat disimpulkan bahwa data merupakan fakta tentang suatu kejadian, ataupun kegiatan yang direkam atau disimpan. 2.1.5 Database Menurut Connolly dan Begg (2010:65), database dapat dinyatakan sebagai kumpulan dari data yang terkait secara logikal dan dideskripsikan, serta didesain untuk memenuhi kebutuhan informasi di suatu organisasi. Kemudian menurut Honny, Marcelino, dan Yohanes Radjali (2011:403), basis data merupakan kumpulan data atau rangkaian file yang telah terstandarisasi dan dapat dimanipulasi untuk memenuhi kebutuhan informasi suatu perusahaan. Menurut Haiyang dan Guolong (2012:830) Database merupakan istilah dari tempat penyimpanan di komputer yang terorganisasi, dapat disebar, dan merupakan manajemen pengkoleksian data yang terpusat. Database merupakan komponen yang sangat penting dalam sistem terkomputerisasi. Hal ini didukung oleh pernyataan Murray (2010:62) yang menyatakan bahwa teknologi basis data merupakan komponen inti dari banyak computing system. Karena database merupakan unsur yang penting, maka database membutuhkan penanganan keamanan yang tinggi. Murray (2010:63) menyatakan bahwa database security (keamanan database) itu dibangun berdasarkan framework yang melibatkan tiga bagian, yaitu kerahasiaan, keintegrasian, dan ketersediaan. Dari tiga bagian tersebut, disimpulkan bahwa database security di bagian manapun harus mendukung aspek-aspek access control, application access, vulnerability, inference, dan auditing mechanism. 7 2.1.6 Database Management System (DBMS) Menurut O’Brien dan Marakas (2011:238) Database Management System adalah software utama dari pendekatan manajemen basis data yang mengontrol pembuatan, pemeliharaan, dan penggunaan database dari suatu organisasi termasuk end-user nya. Sedangkan menurut Connolly dan Begg (2010:66), pengertian dari database management system adalah suatu sistem software yang memungkinkan user untuk mendefinisinikan, menciptakan, memelihara, dan mengontrol akses ke database. Gelogo dan Lee (2012:72) menyatakan database management system sebagai suatu paket perangkat lunak beserta program komputernya yang mengontrol pembuatan, pemeliharaan, dan penggunaan dari database. Sedangkan menurut Rusli (2010:51) database management system merupakan suatu software yang dirancang untuk membantu dalam hal pemeliharaan dan utilitas kumpulan data dalam jumlah besar. Dengan melihat beberapa pengertian diatas dapat disimpulkan bahwa database management system adalah suatu perangkat lunak yang didesain khusus untuk pengelolaan basis data yang meliputi kontrol proses pembuatan, pemeliharaan dan pemakaiannya. 2.1.6.1 Fungsi DBMS Menurut Connolly dan Begg (2010:100) fungsi-fungsi yang layak terdapat dalam suatu DBMS adalah sebagai berikut: Data storage, retrieval, dan update Merupakan fungsi dasar dari DBMS. Suatu DBMS harus bisa menyediakan kemampuan untuk menyimpan, mengambil, dan update data dalam database kepada user. Dalam menyajikan kemampuan ini, suatu DBMS harus menyembunyikan detil internal implementasi fisik seperti file organisasi ataupun struktur penyimpanan dari user. User-accessible catalog DBMS harus menyediakan suatu katalog yang di dalamnya terdapat deskripsi dari data items dan dapat diakses oleh user. Menurut Connolly dan Begg (2010:100) suatu katalog sistem merupakan tempat penyimpanan informasi yang menjelaskan data dalam database, yang disebut juga sebagai metadata atau data tentang data. Katalog sistem DBMS merupakan salah satu 8 komponen yang penting dalam sistem. Beberapa keuntungan dari katalog sistem adalah: - Informasi tentang data dapat dikumpulkan dan disimpan secara terpusat. Hal ini akan membantu untuk mempertahankan kontrol terhadap data yang digunakan sebagai sumber. - Makna dari data dapat dijelaskan sehingga dapat membantu user lain mengerti tujuan dari adanya data tersebut. - Komunikasi menjadi lebih sederhana karena pengertian pasti telah disimpan. Dalam sistem katalog bisa terdapat identifikasi atas user siapa saja yang mempunyai atau dapat mengakses data. - Redudansi dan inkonsistensi dapat diidentifikasi lebih mudah karena data di sentralisasi. - Perubahan terhadap database dapat dicatat. - Dampak dari perubahan dapat ditentukan sebelum sistem di implementasi karena katalog sistem mencatat tiap data item yang ada, seluruh relationship yang ada, dan seluruh user yang ada. - Integritas dapat dijamin. - Informasi audit dapat disediakan. - Pengamanan dapat dilakukan. Transaction Support Suatu DBMS harus dapat menyediakan mekanisme yang dapat memastikan bahwa seluruh update yang terjadi yang berhubungan dari transaksi yang dilakukan itu benar telah terubah semuanya atau jika ada yang tidak dapat berubah, maka semua yang lain juga tidak berubah. Jika suatu waktu terdapat kegagalan ketika transaksi dilakukan, perubahan terhadap database yang telah terjadi sebagian akan menyebabkan database berada dalam kondisi tidak konsisten, oleh karena itu sebagian perubahan yang telah terjadi tersebut harus dikembalikan ke kondisi seperti saat sebelum transaksi dilakukan untuk mengembalikan database ke kondisi yang konsisten. Concurrency control service Suatu DBMS harus dapat menyediakan mekanisme yang memastikan bahwa database di update dengan benar bahkan ketika banyak user melakukan update di waktu yang bersamaan. 9 Recovery services Suatu DBMS harus menyajikan mekanisme untuk menyelamatkan database jika suatu waktu terdapat kejadian yang menyebabkan database menjadi rusak atau error. Salah satu sebab yang dapat menyebabkan DBMS menjadi error adalah jika terdapat kegagalan transaksi entah dikarenakan oleh system crash, hardware error, atau software error sehingga transaksi dihentikan sebelum transaksi tersebut selesai. DBMS harus menyediakan mekanisme yang dapat mengembalikannya ke kondisi konsisten terakhir sebelum error tersebut terjadi. Authorization services Suatu DBMS harus menyediakan mekanisme untuk memastikan bahwa hanya user yang mempunyai otorisasi yang dapat mengakses database. DBMS harus dapat menyediakan fungsi ini untuk menjaga agar data tetap aman. Support for data communication Suatu DBMS harus mampu berintegrasi dengan perangkat lunak komunikasi atau jaringan. Kebanyakan user mengakses database dari workstation, baik menggunakan workstation yang langsung terhubung dengan komputer yang menyimpan DBMS ataupun menggunakan workstation yang terhubung dengan komputer yang menyimpan DBMS melalui jaringan. Umumnya, DBMS akan menerima permintaan dalam bentuk pesan komunikasi dan akan merespon dengan cara yang sama juga. Transmisi yang dilakukan akan diurus oleh Data Communication Manager (DCM) dan walau DCM bukan merupakan bagian dari DBMS, DBMS tetap memerlukannya agar dapat terintegrasi dengan berbagai jenis DCM supaya user tetap dapat mengakses centralized database dari lokasi yang jauh sekalipun. Integrity services Suatu DBMS harus menyediakan cara untuk menjamin bahwa data yang ada di dalam database dan perubahan yang terjadi benar mengikuti suatu aturan tertentu. Integritas dari suatu database merujuk kepada kebenaran dan konsistensi dari data yang disimpan. Integritas biasanya di representasikan dalam bentuk constraints, yakni aturan konsistensi yang tidak boleh dilanggar database. 10 Services to promote data independence Suatu DBMS harus memasukkan fasilitas yang mendukung independensi program dari struktur aktual database tersebut. Data independensi biasanya dicapai melalui view atau mekanisme subschema. Independensi dari data fisik lebih mudah dicapai melalui beberapa perubahan yang dapat dilakukan terhadap karakteristik fisik dari database tanpa mempengaruhi views. Utility services Suatu DBMS harus menyediakan berbagai macam layanan utilitas. Suatu program utilitas akan membantu Database Administrator untuk mengelola database secara efektif. Contoh dari jenis layanan utilitas adalah: - Fasilitias untuk import, yaitu untuk mengisi database dari flat files. - Fasilitas untuk export, yaitu untuk membongkar database menjadi flat files. - Fasilitas pengawasan, untuk mengawasi pemakaian database dan pekerjaannya. - Program analisis statistik, untuk memeriksa statistik peforma atau pemakaiannya. - Fasilitas pengorganisasian index, untuk mengorganisasi index yang ada beserta alurnya. - Pengkoleksian sampah dan alokasinya, untuk menghilangkan deleted records dari tempat penyimpanan, mengkonsolidasikan ruang yang tersisa dan mengalokasikannya ke tempat yang membutuhkan 2.1.6.2 Komponen Lingkungan DBMS Gambar 2.1 Database Management System Environment (Connolly dan Begg, 2010:68) Menurut Connolly dan Begg (2010:68), Database Management System (DBMS) memiliki 5 komponen penting, yaitu: 1. Hardware (Perangkat keras) 11 Untuk menjalankan suatu DBMS dan aplikasinya dibutuhkan hardware. Hardware yang digunakan dapat beragam mulai dari satu komputer, satu mainframe, atau dari kumpulan komputer. Penentuan hardware yang digunakan bergantung dari persyaratan organisasi dan DBMS yang digunakan. Beberapa DBMS hanya dapat berjalan di suatu spesifikasi hardware atau Operating System (OS) tertentu namun ada juga DBMS yang dapat berjalan di banyak variasi OS atau spesifikasi hardware. 2. Software (Perangkat lunak) Komponen perangkat lunak meliputi software DBMS untuk pengelolaan basis data, kemudian program aplikasi yang mengakses basis data, beserta sistem operasi untuk menyediakan lingkungan kerja bagi sistem basis data agar dapat beroperasi. Termasuk pula perangkat lunak pengelola jaringan untuk menghubungkan komputer-komputer yang terlibat dalam network. Program aplikasi biasanya ditulis menggunakan bahasa pemrograman generasi ke 3 seperti C, C++, Java, Visual Basic dan bahasa pemrograman generasi ke 4 seperti SQL. 3. Data Komponen terpenting dalam sebuah DBMS. Data merupakan penghubung antara mesin dengan manusia atau user yang mengakses mesin. User yang mengakses aplikasi dan melakukan transaksi di dalamnya akan menghasilkan output berupa data yang akan dicatat oleh mesin. Selain itu, terdapat juga metadata, yakni ‘data mengenai data’. Setiap data memiliki ciri-ciri atau identitas, contohnya seperti kapan user menginput data yang bersangkutan. 4. Prosedur Prosedur berkaitan dengan tata cara bagaimana user menggunakan basis data. Baik user maupun staff yang mengelola basis data memerlukan SOP (Standard Operating Procedure) untuk memandu user maupun staff agar data yang dimiliki perusahaan tetap konsisten dan terjaga dengan benar, sesuai dengan apa yang direncanakan pada saat perancangan. Prosedur – prosedur diantaranya seperti cara log on kedalam DBMS, menggunakan suatu fasilitas DBMS, membuat backup atau cadangan data. 5. Manusia Komponen terakhir yakni manusia selaku pengguna yang terlibat dalam sistem. Peran manusia ini dapat dibagi – bagi menjadi data dan database administrator, database designer, application developer, hingga end user. 12 2.1.6.3 Keuntungan dan Kekurangan DBMS Menurut Connolly dan Begg (2010:77) keuntungan dari pemanfataan Database Management System (DBMS) adalah: Pengendalian redudansi data Dengan mengintegrasi database maka data yang sama tidak akan disimpan dalam database dan sekaligus akan menghilangkan redudansi data. Namun pendekatan database ini tidak menghilangkan seluruh redudansi yang ada, dan sebagai gantinya dilakukan pengontrolan jumlah redudansi yang melekat dalam database karena pada beberapa kasus, memang dibutuhkan untuk menduplikasi key data items ataupun menduplikasi beberapa data items untuk meningkatkan peforma. Konsistensi data Dengan mengeliminasi atau mengontrol redudansi akan mengurangi resiko dari terjadinya ketidak konsistenan dalam database. Memperkaya nilai informasi Dengan adanya integrasi data operasional, bukan menjadi hal yang tidak mungkin bagi perusahaan untuk mendapatkan informasi tambahan dari jumlah data yang sama. Data dapat digunakan bersama Secara tipikal, suatu files biasanya dimiliki oleh orang atau departemen yang menggunakannya. Di lain hal database tergolong milik seluruh organisasi dan dapat dibagikan kepada seluruh pengguna yang mempunyai izin. Dengan cara ini seluruh data dapat dibagikan ke seluruh pengguna yang mempunyai hak akses. Meningkatkan integritas data Integritas suatu basis data merujuk kepada validasi dan konsistensi data yang disimpan. Integritas biasanya diekspresikan dalam istilah constraint yang berupa aturan konsistensi yang tidak boleh dilanggar oleh database. Integrasi memungkinkan DBA untuk menjelaskan batasan integritas dan DBMS harus dapat melaksanakannya. 13 Meningkatkan keamanan Dengan adanya integritas data, data akan lebih rentan digunakan oleh banyak user. Akan tetapi dengan adanya integritas juga membuat seorang DBA dapat menetapkan keamanan database dan membuat DBMS melaksanakannya. Bentuk keamanan biasanya berupa username dan password untuk mengidentifikasi user yang masuk mendapat akses ke bagian mana dan tipe aksi apa saja yang dapat dilakukan terhadap database. Pelaksanaan standar Dengan adanya integrasi, DBA dapat menetapkan standar yang dibutuhkan dan membuat DBMS untuk melaksanakannya. Standar yang ditetapkan bisa untuk skala departemen, organisasi, nasional, atau internasional terhadap sesuatu seperti format data untuk memfasilitasi pertukaran data antar sistem, penamaan data, dokumentasi standar, update prosedur, dan aturan akses. Ekonomis Dengan mengkombinasikan seluruh data operasional ke dalam satu database dan membuat set aplikasi yang dapat berjalan memanfaatkan satu sumber data ini dapat meminimalisasi biaya yang dikeluarkan. Biaya yang seharusnya dikeluarkan untuk tiap departemen untuk membangun dan memelihara file-based system dapat digabungkan dan menghasilkan biaya yang lebih rendah, sehingga lebih ekonomis. Menyeimbangkan persyaratan yang konflik Database Administrator dapat membuat keputusan akan kebutuhankebutuhan antar departemen yang saling konflik, dengan membuat keputusan akan desain dan penggunaan operasional dari database yang menyediakan sumber terbaik bagi organisasi secara keseluruhan. Keputusan ini akan meningkatkan peforma yang optimal terhadap aplikasi yang penting. Meningkatkan kemampuan akses dan respon Dengan adanya integrasi, data yang melintasi batasan departemen dapat secara langsung diakses oleh end user. Hal ini dapat menyediakan sebuah sistem dengan lebih banyak fungsinya seperti fungsi untuk menyediakan layanan yang lebih baik pada pengguna akhir atau iklan organisasi. Banyak 14 DBMS menyediakan query language yang memungkinkan pengguna untuk menanyakan pertanyaan ad hoc dan memperoleh informasi yang diperlukan dengan segera pada terminal mereka, tanpa memerlukan programmer menuliskan beberapa software untuk mengubah informasi tersebut dari database. Meningkatkan produktifitas DBMS menyediakan kemampuan dalam menangani file rutin tingkat rendah yang tipikal terdapat dalam program aplikasi sehingga programmer dapat fokus ke fungsi spesifik yang dibutuhkan. Meningkatkan pemeliharaan melalui data yang independen DBMS menyediakan pendekatan yang membuat perubahan dalam data tidak membuat program harus diubah. DBMS memisahkan deskripsi data dari aplikasi sehingga aplikasi tidak akan terpengaruh jika terdapat perubahan di deskripsi data. Hal ini yang disebut sebagai independensi data. Meningkatkan konkurensi Dalam sistem file-based, dua atau lebih user diperbolehkan untuk mengakses file yang sama dalam satu waktu, dan akses yang dilakukan bersamaan mempunyai kemungkinan untuk saling mengganggu dan mengakibatkan hilangnya informasi atau bahkan integritasnya. Dengan DBMS akan mengatur konkurensi akses ke database dan memastikan masalah tersebut tidak akan terjadi. Meningkatkan layanan backup dan recovery DBMS melindungi user dari efek kegagalan sistem. Jika suatu waktu terdapat kegagalan, DBMS dapat mengembalikan data sebagaimana kondisi saat sebelum terjadi kegagalan melalui fasilitas backup dan recovery database. Sedangkan kekurangan dari penggunaan DBMS ini menurut Connolly dan Begg (2010:80) adalah sebagai berikut : Kompleksitas Ketentuan dari fungsi-fungsi yang diharapkan ada dalam DBMS yang membuat DBMS menjadi software yang kompleks. Kegagalan dalam 15 memahami sistem dapat mengarah kepada keputusan desain yang buruk dan akan berdampak serius bagi sistem. Ukuran Tingkat kompleksitas dan keluasan fungsi dari DBMS akan memakan banyak tempat penyimpanan serta membutuhkan jumlah memory yang cukup besar jika ingin bekerja lebih efisien. Biaya Biaya dari DBMS bervariasi tergantung dari lingkungan dan fungsi yang harus disediakan. Perbedaan harga bisa menjadi sangat besar tergantung fungsi yang ada. Selain itu terdapat biaya pemeliharaan tahunan yang juga harus dipikirkan. Biaya tambahan untuk hardware Adanya persyaratan besar tempat penyimpanan DBMS dan database mungkin akan mengarah kepada pembelian tempat penyimpanan tambahan. Bahkan mungkin mesin baru yang didedikasikan untuk menjalankan DBMS. Biaya perubahan / konversi Dalam beberapa kasus, biaya DBMS dan hardware tambahan mungkin lebih murah daripada biaya mengkonversi aplikasi yang ada agar dapat dijalankan di hardware dan DBMS yang baru. Biaya ini juga meliputi biaya pelatihan karyawan tentang sistem yang baru dan mungkin juga biaya memperkerjakan orang spesialis untuk membantu dalam perubahan dan menjalankan sistem. Biaya yang tinggi ini merupakan salah satu alasan utama mengapa organisasi bertahan dengan sistem yang lama dan tidak mau berubah ke teknologi database yang lebih modern. Performa DBMS dirancang untuk lebih ke umum, dibuat untuk memenuhi banyak aplikasi tidak cuma satu, dan sebagai hasilnya kecepatan menjalankan aplikasi tidak sebagus dengan kecepatan menjalankan aplikasi yang dilakukan oleh sistem file-based yang terfokuskan untuk spesifik bagian tertentu. Dampak kegagalan besar 16 Basis data yang tersentralisasi berarti kerentanan sistem terhadap kerusakan juga besar, karena berdampak pada seluruh data. Dikarenakan DBMS sebagai sumber utama untuk mengakses database itu tersentralisasi, sehingga seluruh user dan aplikasi sangat bergantung pada kehadiran DBMS, oleh karena itu jika terdapat kegagalan di salah satu komponennya dapat memberhentikan seluruh operasi. 2.1.7 The Three Level ANSI-SPARC Gambar 2.2 The ANSI-SPARC three-level architecture (Connolly dan Begg, 2010:87) Menurut Connolly dan Begg (2010:86) arsitektur dari the three level ANSISPARC terdiri dari 3 bagian yaitu: 1. External Level Level ini berupa pandangan pengguna terhadap basis data. Tingkatan ini menjelaskan suatu bagian dari basis data yang berhubungan dengan user. Tingkatan ini mencakupi entitas, atribut, dan hubungan menurut pandangan masing-masing user. 2. Conceptual Level Level ini berupa pandangan suatu komunitas terhadap basis data. Tingkatan ini mendeskripsikan data apa saja yang tersimpan di dalam basis data dan hubungan antar data. Tingkatan ini merupakan pandangan 17 keseluruhan kebutuhan basis data organisasi yang bersifat independen dari pertimbangan penyimpanan data secara fisik. Tingkat konseptual merepresentasikan keseluruhan entitas, atribut dan hubungannya, batasan dari data, informasi semantik suatu data, dan informasi akan keamanan dan integritas. 3. Internal Level Level ini berupa representasi fisik basis data di dalam komputer. Tingkatan ini menjelaskan bagaimana cara data disimpan di dalam basis data meliputi alokasi kapasitas tempat penyimpanan data dan index, deskripsi record suatu tempat penyimpanan data, penempatan record, teknik enkripsi dan teknik kompresi. Arsitektur ANSI-SPARC ini memiliki tujuan untuk memisahkan setiap pandangan user terhadap basis data dengan cara fisik suatu basis data direpresentasikan. 2.1.8 Database Language Menurut Connolly dan Begg (2010:91-93), bahasa basis data yang disebut data sublanguage meliputi dua bagian, yaitu: Data Definition Language (DDL) Connolly dan Begg (2010:91) menyatakan DDL sebagai bahasa yang mengizinkan database administrator atau user untuk mendeskripsikan dan membuat penamaan pada suatu entitas, atribut, dan hubungan yang dibutuhkan aplikasi, bersamaan dengan batasan integritas dan batasan keamanan yang terasosiasi. DDL digunakan untuk mendefinisikan atau mengubah skema. Rusli (2010:51) juga menyatakan bahwa DDL digunakan untuk mendefinisikan skema eksternal dan konseptual. Berikut merupakan beberapa statement DDL menurut pendapat Connolly dan Begg (2010:236), yaitu : a. Create Database Merupakan statement untuk membuat struktur database. b. Create Table Merupakan statement untuk membuat mengidentifikasikan tipe data untuk tiap kolom. tabel dengan 18 c. Alter Table Merupakan statement untuk mengganti atau mengubah struktur dari tabel yang sudah dibuat sebelumnya. d. Drop Table Merupakan statement untuk membuang atau menghapus tabel beserta semua data yang terkait didalamnya. e. Create Index Merupakan statement untuk membuat index pada suatu tabel. Index ialah struktur yang menyediakan kecepatan akses terhadap suatu baris tabel berdasarkan nilai satu kolom atau lebih. f. Drop Index Merupakan statement untuk membuang atau menghapus index yang sudah dibuat sebelumnya. Data Manipulation Language (DML) DML merupakan suatu bahasa yang menyediakan sekumpulan operasi untuk mendukung kegiatan memanipulasi data yang tersimpan di dalam basis data. Operasi manipulasi data meliputi pemasukan data baru ke dalam basis data, modifikasi, pengambilan, dan penghapusan data yang tersimpan di basis data. DML dibagi menjadi 2 jenis, yaitu : a. Procedural DML Bahasa yang mengizinkan user memberitahukan kepada sistem tentang apa saja data yang dibutuhkan dan bagaimana cara untuk mengambil data. b. Non-procedural DML Bahasa yang mengizinkan user untuk menyatakan data apa saja yang digunakan bukan bagaimana data tersebut didapatkan. Menurut Connolly dan Begg (2010:188) Statements DML meliputi : - SELECT Pernyataan untuk mengambil dan menampilkan data dari satu atau banyak tabel. - INSERT Pernyataan untuk menambah baris baru ke dalam tabel. 19 - UPDATE Pernyataan untuk mengubah data yang sudah ada di dalam tabel. - DELETE Pernyataan untuk menghapus baris data di dalam tabel. 2.1.9 Fact-Finding Techniques Untuk dapat membangun suatu sistem basis data harus dilakukan pengumpulan fakta-fakta yang dibutuhkan dalam proyek pembangunan basis data tersebut. Menurut Connolly dan Begg (2010:344) seorang pengembang basis data umumnya menggunakan teknik pencarian fakta di bawah ini: Examining Documentation Pemeriksaan dokumentasi merupakan teknik untuk mengumpulkan informasi dengan memeriksa dokumentasi yang ada. Pemeriksaan dokumentasi dapat bermanfaat untuk mendapatkan wawasan tentang apa saja kebutuhan yang diperlukan untuk membangun basis data. Dengan memeriksa dokumen, formulir, laporan, dan files yang terasosiasi dengan sistem yang berjalan dapat memberikan pengertian tentang sistem tersebut. Contoh dokumen yang dapat diperiksa bisa berupa memos, e-mails, keluhan pelanggan atau karyawan, struktur organisasi, kamus data, invoice, dan sebagainya. Interviewing Wawancara merupakan teknik untuk mendapatkan informasi dan fakta dari individu dengan bertatap muka dengan mereka dan bertanya untuk mencari tahu akan fakta, mengklarifikasi fakta, mengidentifikasi persyaratan, menghasilkan entusiasme, serta mengumpulkan ide dan opini. Terdapat dua tipe dalam wawancara, wawancara terstruktur dan wawancara tidak terstruktur. Dalam wawancara terstruktur, pewawancara sudah mempunyai kumpulan pertanyaan yang akan ditanyakan kepada pihak yang diwawancarai. Jenis pertanyaan dapat berupa pertanyaan terbuka yang membutuhkan klarifikasi atau ekspansi suatu jawaban dan pertanyaan tertutup yang merupakan pertanyaan yang membutuhkan jawaban langsung Sedangkan untuk wawancara tidak terstruktur, pewawancara hanya mempunyai gambaran akan topik yang akan ditanya kepada orang yang di wawancarai. 20 Pertanyaan spesifiknya akan berkembang sendiri saat wawancara dilakukan. Berikut adalah keuntungan dan kerugian dari melakukan wawancara menurut Connolly dan Begg (2010:345): Keuntungan : - Mengijinkan orang yang di wawancarai untuk merespon secara bebas dan terbuka terhadap pertanyaan. - Memungkinkan orang yang di wawancarai untuk merasa terlibat dalam proyek. - Mengijinkan pewawancara untuk mengetahui lebih lanjut akan komentar menarik yang disebutkan oleh pihak yang di wawancara. - Mengijinkan pewawancara untuk menyesuaikan pertanyaan saat wawancara. - Mengijinkan pewawancara untuk mengobservasi gerakan tubuh pihak yang di wawancara. Kerugian : - Memakan banyak waktu dan biaya - Keberhasilan bergantung pada ketrampilan komunikasi sang pewawancara - Keberhasilan juga bergantung pada kesediaan pihak yang di wawancara untuk dilakukan wawancara. Observing the Enterprise in Operation Observasi merupakan suatu teknik untuk mengumpulkan informasi yang dibutuhkan dengan cara mengobservasi seseorang saat menjalankan aktifitasnya atau turut berpartisipasi dalam aktifitas tersebut supaya dapat memahami tentang sistem yang berjalan. Teknik ini sangat berguna ketika validasi data yang dikumpulkan melalui metode lain menjadi pertanyaan atau kompleksitas suatu aspek sulit dideskripsikan dengan jelas oleh pengguna. Menurut Connolly dan Begg (2010:346), keuntungan dan kerugian dari penggunaan observasi adalah sebagai berikut : Keuntungan : - Mengijinkan validitas data dan fakta untuk di cek. - Observer dapat mengetahui dengan pasti hal-hal yang dilakukan. 21 - Observer dapat mendapatkan data yang mendeskripsikan lingkungan fisik dari pekerjaan. - Tidak mahal. - Observer dapat mengukur pekerjaan yang harus dilakukan. Kerugian : - Orang dapat secara sadar atau tidak sadar bekerja beda dengan biasanya ketika diobservasi. - Beberapa pekerjaan mungkin tidak dilakukan ketika sedang diobservasi. - Kemungkinan tidak dapat dipraktekkan. - Kemungkinan lalai dalam observasi terhadap tugas yang melibatkan tingkat kesulitan yang berbeda atau jumlah yang berbeda dari yang biasanya dilakukan. Research Penelitian merupakan suatu teknik pengumpulan fakta dengan melakukan penelitian terhadap suatu masalah atau aplikasi dengan cara mengidentifikasi penyelesaian suatu masalah yang sama melalui jurnal, buku referensi, dan internet. Menurut Connolly dan Begg (2010:346), keuntungan dan kerugian dari penelitian adalah sebagai berikut : Keuntungan : - Menghemat waktu jika solusi sudah tersedia. - Peneliti dapat melihat bagaimana orang lain telah menyelesaikan masalah yang mirip atau bertemu dengan persyaratan yang mirip. - Peneliti akan update dengan proses pengembangan terkini. Kerugian : - Membutuhkan akses kepada sumber yang tepat. - Memungkinkan pada tidak membantu dalam memecahkan masalah karena problem tidak terdokumentasi dimana-mana. Questionnaires Kuisioner merupakan suatu teknik pengumpulan fakta dengan melakukan survey dan pencarian informasi dalam menghadapi audience dengan jumlah yang banyak. Jenis pertanyaan kuisioner dibagi menjadi dua, yaitu freeformat questions, dimana responden mempunyai kebebasan dalam mengisi 22 jawaban dan fixed-format questions yang membutuhkan jawaban spesifik dari suatu pertanyaan. Menurut Connolly dan Begg (2010:347), keuntungan dan kerugian dari kuisioner adalah sebagai berikut : Keuntungan : - Responden dapat menyelesaikan dan mengembalikan kuisioner sesuai kemauan mereka. - Biaya cenderung murah untuk teknik mengumpulkan data dari banyak orang. - Responden cenderung mengatakan fakta karena data responden dirahasiakan. - Respon dapat disusun sebagai tabel dan dianalisis dengan cepat. Kerugian : - Jumlah responden bisa hanya sedikit, sekitar 5% atau 10% - Kuisioner bisa dikembalikan dalam keadaan tidak selesai. - Pertanyaan memungkinkan disalahpahami dan tidak ada kemungkinan untuk menyesuaikan pertanyaan yang sudah disalahpahami. - Tidak dapat mengobservasi dan menganalisis bahasa tubuh dari responden. 2.1.10 Database System Development Lifecycle Menurut Connolly dan Begg (2010:313) dalam membangun suatu sistem database terdapat siklus yang terdiri dari sebagai berikut: 23 Gambar 2.3 Database System Development Lifecycle (Connolly dan Begg, 2010:314) Database Planning Untuk membangun suatu sistem basis data, diperlukan perencanaan yang matang terlebih dahulu. Database Planning merupakan aktifitas manajemen yang memungkinkan tahap dalam Database System Development LifeCycle bisa direalisasikan secara efisien dan efektif. Suatu sistem basis data yang akan dibangun harus bisa mendukung strategi informasi, oleh karena itu tahap pertama yang penting dalam database planning adalah menentukan dengan 24 jelas mission statement untuk sistem basis data tersebut. Dengan adanya mission statement akan membantu mengklarifikasikan tujuan dari dibentuknya sistem basis data dan membantu menyediakan alur yang jelas untuk mencapai efektifitas dan efisiensi dari pembuatan sistem basis data yang dibutuhkan. Setelah menentukan mission statement, selanjutnya adalah menentukan mission objectives. Suatu mission objectives harus mendefinisikan suatu tugas tertentu yang akan didukung oleh sistem basis data. Dalam mission statement dan mission objectives dapat juga disertai informasi tambahan yang memperjelas pekerjaan yang harus dilakukan, sumber yang dibutuhkan, dan biaya yang dibutuhkan untuk membayar semuanya. Dalam database planning juga harus menyertakan pembangunan standar yang menentukan: - Bagaimana data dikumpulkan - Format spesifikasi - Dokumen apa saja yang dibutuhkan - Bagaimana proses desain dan implementasi yang harus dilakukan. System Definition Merupakan suatu tahap untuk mendeskripsikan cakupan dan batasan dari aplikasi basis data dan sudut pandang pengguna (user view) yang utama. Suatu sistem basis data dapat mempunyai satu atau lebih user views. User Views mendefinisikan apa yang dibutuhkan sistem basis data dari perspektif peran tertentu (seperti Manager atau Supervisor) atau area dari Enterprise Application ( seperti marketing, personnel, atau stock control). Identifikasi user views merupakan aspek penting dalam membangun suatu sistem basis data karena dapat membantu dalam memastikan bahwa tidak ada para pengguna database utama yang terlupakan ketika membangun persyaratan sistem basis data tersebut. Requirement Collection and Analysis Dalam tahap ini terdapat proses pengkoleksian dan menganalisis informasi mengenai bagian-bagian dari organisasi yang akan menggunakan sistem basis data. Informasi yang didapat akan dianalisis untuk mengidentifikasi persyaratan atau fitur yang harus ada dalam sistem basis data. Informasi yang dikumpulkan untuk setiap user view utama meliputi : 25 - Deskripsi data yang digunakan atau dihasilkan - Detil mengenai bagaimana data dihasilkan - Kebutuhan tambahan untuk sistem basis data yang baru Jumlah data yang dikumpulkan untuk dianalisis bergantung dari kompleksitas masalah dan kebijakan organisasi. Informasi yang didapat di tahap ini bisa jadi tidak terstruktur dan terdapat permintaan informal, dimana dua hal tersebut nantinya harus diubah menjadi pernyataan persyaratan yang terstruktur. Hal ini dicapai dengan memanfaatkan requirements specification techniques seperti Analysis and Design (SAD) techniques, Data Flow Diagrams (DFD), dan Hierarchical Input Process Output (HIPO) charts yang didukung dokumentasi. Terdapat 3 pendekatan yang dapat digunakan untuk mengatur persyaratan dari suatu sistem basis data dengan banyak user views, yaitu: 1) Centralized Approach Dalam Centralized Approach, persyaratan tiap user views akan disatukan menjadi satu kumpulan persyaratan untuk sistem basis data. Suatu data model yang merepresentasikan seluruh user views dibuat di tahap desain basis data. 2) View Integration Approach Dalam view integration approach, persyaratan untuk tiap user view tetap berada di list yang terpisah. Data model yang dibuat yang merepresentasikan user views akan digabung belakangan di tahap desain basis data. Data model untuk satu user views disebut sebagai local data models, dan penggabungan seluruh local data models akan menghasilkan global data model. 3) Combination of Both Approach Dalam pendekatan kombinasi yang biasa digunakan untuk sistem basis data yang kompleks, pendekatan centralized dan view integration sama-sama digunakan untuk mengatur benyak user views. Sebagai contoh dua peryaratan user views digabung menjadi satu menggunakan centralized approach untuk membentuk local data model, dan kemudian baru memanfaatkan view integration approach dengan cara local data models dikumpulkan dan digabung menjadi satu global data model. 26 Database Design Database design merupakan tahap dimana terdapat proses untuk membuat suatu desain yang akan mendukung mission statements dan mission objectives organisasi untuk sistem basis data yang akan dibuat. Terdapat beberapa pendekatan dalam mendesain suatu database, yaitu: - Top-Down Approach Top-Down approach dimulai dari pembentukan model data yang berisi beberapa entitas high-level dan relationship, yang kemudian menggunakan pendekatan top-down secara berturut-turut untuk mengidentifikasi entitas lower level, relationship dan atribut lainnya. - Bottom-Up Approach Bottom-Up approach dimulai dari atribut dasar seperti sifat-sifat entitas dan relationship, dengan analisis dari penggabungan antar atribut, yang dikelompokan ke dalam suatu relasi yang merepresentasikan tipe dari entitas dan relationship antar entitas. Pendekatan ini cocok dilakukan dalam mendesain basis data yang simple dan relatif mengandung atribut yang sedikit. - Inside-Out Approach Pendekatan ini berhubungan dengan pendekatan bottom-up akan tetapi mempunyai sedikit perbedaan dengan identifikasi awal entitas utama dan kemudian menyebar kelainnnya seperti entitas, relationship, dan atribut lainnya yang terkait dengan entitas yang terlebih dulu di identifikasi. - Mixed Strategy Approach Dalam pendekatan ini menggunakan pendekatan top-down approach dan bottom-up approach pada berbagai macam bagian dari model yang kemudian seluruh bagian akan digabungkan menjadi satu. Dalam mendesain basis data, terdapat tiga tahapan yang harus dilalui menurut Connolly dan Begg (2010:322-324), yaitu: - Conceptual Database Design Fase pertama dalam database design yang melibatkan suatu proses untuk membangun suatu model dari data yang digunakan dalam perusahaan yang berdiri sendiri dan terpisah dari segala pertimbangan aspek fisik. 27 - Logical Database Design Fase kedua dalam database design yang melibatkan proses untuk membangun model data dari data yang digunakan perusahaan dengan berbasiskan suatu model data spesifik, namun berdiri sendiri, terpisah dari pertimbangan aspek fisik maupun DBMS. - Physical Database Design Fase ketiga dalam database design yang melibatkan proses untuk memproduksi suatu deskripsi dari implementasi database dalam secondary storage yang menjelaskan dasar suatu relasi, file atau organisasi, penggunaan index untuk mencapai efisiensi akses terhadap data, asosiasi integrity constraints dan pertimbangan keamanan. DBMS Selection DBMS Selection merupakan suatu proses pemilihan DBMS yang sesuai untuk mendukung sistem basis data yang akan dibuat. Langkah utama dalam melakukan pemilihan DBMS adalah sebagai berikut: - Define Terms of Reference of study Penentuan terms of references dilakukan dengan menyatakan objektif dan ruang lingkup dan tugas yang harus dilakukan berbasiskan dari persyaratan user. - Shortlist two or three products Merupakan proses untuk melakukan evaluasi perbandingan dua atau tiga produk DBMS. - Evaluate products Merupakan proses mengevaluasi produk DBMS yang akan digunakan. Pengevaluasian dikelompokkan menjadi data definition, physical definition, accessibility, transaction handling, utilities, development, dan other features - Recommend selection and produce report Tahap terakhir dalam pemilihan DBMS yang melibatkan dokumentasi proses dan menyajikan statement dari penemuan yang didapat serta rekomendasi produk DBMS tertentu. 28 Application Design Application Design melibatkan proses perancangan User Interface dan program aplikasi yang akan digunakan untuk memproses database. Desain suatu user interface harus dapat memenuhi seluruh fungsi-fungsi yang telah dinyatakan dalam spesifikasi persyaratan user untuk sistem basis data. Aktifitas antara database design dengan application design terjadi secara paralel, namun desain aplikasi tidak dapat dibentuk sampai perancangan basis data yang dibuat untuk mendukung aplikasi dan juga alur informasi antara application design dan database design terancang dengan jelas. Desain user interface merupakan salah satu tahap penting dan user interface yang didesain sebisa mungkin harus mudah dimengerti, mudah digunakan, bersifat langsung, dan toleran. Jika user interface yang dirancang tidak mengandung karakteristik diatas, maka sistem yang dibuat pasti akan menimbulkan masalah. Terdapat dua aspek dalam mendesain suatu aplikasi, yaitu: 1) Transaction Design Dalam mendesain suatu aplikasi basis data untuk perusahaan, kita harus meneliti transaksi apa saja yang ada dalam alur kegiatan perusahaan yang akan didukung oleh sistem basis data. Pengertian transaksi menurut Connolly dan Begg (2010:339) adalah suatu aksi atau kumpulan aksi yang dilakukan oleh satu user atau program aplikasi, yang mengakses atau merubah data dalam database. Suatu DBMS harus menjamin konsistensi dari database bahkan jika terdapat kesalahan sekalipun. Oleh karena itu DBMS harus menjamin transaksi yang telah lengkap dilakukan, perubahan yang terjadi terhadap database dari transaksi tersebut harus tersimpan secara permanent di database tersebut, dan sebaliknya jika terdapat transaksi yang gagal, perubahan yang sempat terjadi harus bisa dikembalikan ke awal kondisi seperti saat transaksi belum dilakukan. Tujuan dari mendesain transaksi adalah untuk mendefinisikan dan mendokumentasikan karakteristik dari transaksi yang dibutuhkan dalam database, meliputi: - Data yang dibutuhkan dalam transaksi - Karakteristik fungsional dari transaksi - Hasil dari transaksi - Kepentingan untuk user 29 - Rata-rata yang diharapkan dari pemakaian Terdapat tiga jenis utama transaksi, yaitu : Retrieval Transaction : Digunakan untuk mengambil data untuk ditampilkan pada layar atau didalam hasil laporan Update Transaction : Digunakan untuk memasukkan record baru, menghapus record lama, atau memodifikasi record yang ada didalam database. Mixed Transaction : Melibatkan pengambilan dan proses update data 2) User Interface Design Guidelines Dalam tahap ini terdapat proses untuk untuk mendesain layout dari user interface aplikasi yang akan dibuat. Dibawah ini adalah petunjuk yang kirakira bermanfaat dalam mendesain forms atau laporan menurut Connolly dan Begg (2010:331), yaitu: o Judul yang bermakna o Instruksi yang mudah dimengerti o Pengelompokkan secara logis dan mengurutkan fields o Desain layout dari form atau laporan yang memikat secara visual o Label fields yang dikenal o Istilah dan singkatan yang konsisten o Konsisten dalam penggunaan warna o Ruang dan batasan yang jelas pada tempat untuk mengisi data o Pergerakan cursor mudah o Pembenaran kesalahan terhadap suatu kata dan atau keseluruhan fields o Terdapat pesan jika terdapat nilai yang tidak dapat diterima sistem o Fields opsional harus ditandai dengan jelas o Ada pesan penjelasan untuk fields o Terdapat sinyal atau tanda pada penyelesaian Prototyping Dalam tahap mendesain sistem basis data, terdapat pilihan untuk membuat prototype dari sistem basis data tersebut. Menurut Connolly dan Begg (2010:333) Prototyping merupakan proses membangun model sistem 30 basis data yang dapat dijalankan namun biasanya model prototype hanya mengandung sebagian dari seluruh fitur yang dibutuhkan. Tujuan dari pembuatan prototype adalah untuk memungkinkan user menggunakan hasil prototype untuk mengidentifikasi fitur dari sistem apakah berjalan dengan baik atau terdapat hal yang tidak memadai, dan jika bisa menyarankan perbaikan yang diperlukan atau penambahan fitur baru ke dalam sistem. Prototype yang dibuat harus mempunyai keuntungan utama yaitu tidak mahal dan cenderung cepat dibuat. Dua strategi umum dalam melakukan prototyping adalah requirements prototyping dan evolutionary prototyping. Strategi requirement prototyping adalah menggunakan prototype untuk menentukan persyaratan dari sistem basis data yang diajukan dan ketika semua persyaratan sudah komplit, prototype akan dibuang. Sedangkan strategi evolutionary prototyping mirip dengan requirement prototyping hanya saja yang membedakan adalah setelah persyaratan sudah komplit, prototype tidak dibuang melainkan dikembangkan lebih lanjut untuk menjadi suatu sistem basis data yang berjalan. Implementation Menurut Connolly dan Begg (2010:333) implementasi adalah realisasi fisik dari basis data dan desain aplikasinya. Proses implementasi database dicapai dengan memanfaatkan Data Definition Language (DDL) dari DBMS dan atau Graphical User Interface (GUI) yang dipilih, yang menyediakan fungsi yang sama sambil menyembunyikan low-level DDL statements. DDL statements digunakan untuk menciptakan struktur basis data dan menghilangkan file yang terdapat dalam basis data tersebut. User view juga diterapkan pada tahap ini. Program aplikasi diimplementasikan dengan menggunakan bahasa generasi ke 3 atau generasi ke 4 yang dipilih. Bagian dari program aplikasi ini adalah transaksi basis data yang diterapkan dengan menggunakan Data Manipulation Language dari target DBMS yang terdapat dalam bahasa pemprograman seperti Visual Basic (VB), VB.NET, Phyton, Delphi, C, C++, C#, Java. Selain itu juga mengimplementasikan komponenkomponen yang lain dari desain aplikasi seperti layar menu, form pengisian data, dan laporan. Pengendalian keamanan dan integritas untuk aplikasi juga diimplementasikan. Sebagian dari kendali ini telah diterapkan dengan 31 menggunakan DDL tetapi yang lain mungkin perlu untuk digambarkan diluar dari DDL sebagai contoh kegunaan yang disediakan DBMS atau kendali sistem operasi. Data Conversion and Loading Dalam membangun sistem basis data, tahap ini hanya digunakan saat sistem basis data yang baru dibangun akan menggantikan sistem basis data yang sedang digunakan. Data conversion and loading merupakan tahap mentransfer data yang ada ke dalam sistem basis data yang baru dan mengubah aplikasi yang sudah ada agar dapat digunakan ke dalam basis data yang baru. Di masa sekarang, sudah menjadi hal yang biasa bagi sebuah DBMS untuk mempunyai utilitas yang dapat memuat keseluruhan file yang ada kedalam basis data yang baru. Utilitas biasanya membutuhkan spesifikasi dari sumber dan tujuannya, sehingga mengubah data sesuai dengan format basis data yang baru. Testing Tahap testing merupakan tahap dimana dilakukan proses untuk menjalankan sistem basis data dengan tujuan untuk mencari kesalahan yang ada. Hal ini dicapai menggunakan strategi testing yang direncanakan dengan hati-hati dan data realistik supaya seluruh proses testing dijalankan dengan ketat dan sesuai metode. Situasi yang ideal untuk pengujian sistem adalah mempunyai suatu pengujian basis data pada suatu sistem perangkat keras yang terpisah tetapi ini sering tidak tersedia. Jika data asli yang akan digunakan maka back-up penting untuk dilakukan. Setelah pengujian diselesaikan, maka sistem aplikasi dan basis data ini siap digunakan dan diberikan pada user. Operational Maintenance Setelah sistem basis data diimplementasikan dan dilakukan testing, maka sistem akan masuk ke tahap selanjutnya yaitu tahap pemeliharaan. Menurut Connolly dan Begg (2010:335) pengertian dari Operational Maintenance adalah suatu proses untuk mengawasi dan memelihara sistem basis data setelah dilakukan proses instalasi. Dalam tahap pemeliharaan, terdapat aktifitas sebagai berikut: 32 1) Mengawasi peforma dari sistem Jika peforma jatuh dibawah level yang dapat diterima, reorganisasi basis data mungkin perlu dilakukan. 2) Memelihara dan meningkatkan sistem database saat diperlukan Persyaratan baru akan dimasukkan ke dalam sistem basis data melalui tahap-tahap sebelumnya yang terdapat dalam lifecycle. Ketika aplikasi basis data sedang beroperasi, perlu dilakukan proses pengawasan secara dekat untuk memastikan bahwa peforma sistem berada dalam tingkatan yang bisa diterima. Proses pengawasan akan terus berlanjut sepanjang seluruh hidup suatu aplikasi basis data tersebut dan ada waktu tertentu boleh melakukan reorganisasi basis data untuk mencukupi kebutuhan dari sistem. Perubahan ini menyediakan informasi pada evolusi sistem dan sumber daya yang pada masa akan datang mungkin diperlukan. Hal ini memungkinkan Database Administrator dapat mengembangkan kegunaan yang diperlukan atau membeli peralatan tambahan jika diperlukan. 2.1.11 Database Design Methodology Menurut Connolly dan Begg (2010:466) database design methodology adalah suatu pendekatan terstruktur yang memanfaatkan prosedur, teknik, alat, dan bantuan dokumentasi untuk mendukung dan memfasilitasi proses desain. Metodologi desain basis data terdiri dari fase-fase dimana tiap fase mengandung sejumlah langkah yang memandu designer untuk membuat rencana, mengatur, mengontrol, dan mengevaluasi proyek pengembangan basis data. Fase database design methodology terdiri dari tiga fase utama, yaitu fase konseptual, fase logical, dan fase physical. 2.1.11.1 Fase Konseptual Fase konseptual dari database design meliputi pembangunan suatu model data konseptual perusahaan yang sepenuhnya independen dari detil implementasi seperti program aplikasi, DBMS yang dipilih, bahasa pemrograman, hardware yang digunakan, dan segala pertimbangan fisik lainnya. Connolly dan Begg (2010:468) membagi langkah-langkah dalam membangun model data konseptual menjadi dibawah ini: 1. Identifikasi Tipe Entitas 2. Identifikasi Tipe Hubungan 33 3. Identifikasi dan asosiasi atribut dengan entitas atau relationship types 4. Menentukan atribut domain 5. Menentukan atribut yang menjadi candidate keys, primary key, dan alternate keys 6. Pertimbangan untuk menggunakan enchanced modeling concepts (merupakan tahap opsional) 7. Memeriksa model untuk mencari redudansi 8. Validasi model data konseptual terhadap user transactions 9. Review model data konseptual dengan user 2.1.11.2 Fase Logical Database Design untuk Model Relasional Dalam tahap ini, Connolly dan Begg (2010:490) menyatakan bahwa tujuan utama dilakukannya pembangunan logical data model adalah untuk menterjemahkan model data konseptual menjadi suatu logical data model dan kemudian menvalidasi model tersebut apakah sudah terstruktur secara benar dan mampu untuk mendukung transaksi. Langkah-langkah yang terdapat dalam fase membangun logical data model ini menurut Connolly dan Begg (2010:490) terdiri dari sebagai berikut: 1. Mengambil relations untuk logical data model 2. Validasi relations dengan menggunakan normalisasi 3. Validasi relations dengan user transactions 4. Cek integrity constraints 5. Review logical data model dengan user 6. Menggabungkan logical data model menjadi suatu global data model (langkah opsional) 7. Cek perkembangan untuk ke depannya 2.1.11.3 Fase Physical Database Design untuk Basis Data Relasional Dalam tahap ini, Connolly dan Begg (2010:523) menyatakan bahwa pada fase physical database design merupakan fase dimana terdapat proses untuk menghasilkan deskripsi dari implementasi basis data di dalam secondary storage, dimana dalam deskripsi tersebut terdapat deskripsi tentang dasar relations, file organisasi, indeks yang digunakan untuk mencapai akses terhadap data yang efisien, dan segala batasan integritas serta ukuran sekuritas yang terasosiasi. Langkah- 34 langkah yang terdapat dalam fase ini menurut Connolly dan Begg (2010:523) adalah sebagai berikut: 1. Menterjemahkan logical data model untuk DBMS tujuan 1.1 Desain dasar relations 1.2 Desain representasi dari data yang akan diambil 1.3 Desain general constraints 2. Desain file organisasi dan indeksnya 2.1 Analisis transaksi 2.2 Memilih file organisasi 2.3 Memilih indeks 2.4 Memperkirakan besar tempat penyimpanan yang dibutuhkan 3. Desain user views 4. Desain mekanisme untuk pengamanan 5. Mempertimbangkan pengontrolan redudansi 6. Mengawasi dan menyesuaikan sistem operasional 2.1.12 Entity Relationship Diagram Menurut Connolly dan Begg (2010:371), entity relationship modelling merupakan pendekatan top-down untuk database design yang dimulai dari mengidentifikasi data penting yang dinamakan entitas, serta hubungan antar datanya yang direpresentasikan di dalam model. Menurut Connolly dan Begg (2010:371-396), Konsep dasar dari ER model terdiri dari beberapa bagian, yaitu: Entity Type Connoly dan Begg (2010:372) menyebutkan entity type sebagai kumpulan objek-objek yang memiliki sifat yang sama, dimana sifat tersebut diidentifikasi oleh perusahaan memiliki keberadaan yang independen. Tipe entitas merupakan salah satu konsep dasar dari model ER yang merepresentasikan kumpulan dari objek yang memiliki sifat yang sama. Contoh dari tipe entitas misalnya mahasiswa dimana merupakan representasi dari sekumpulan orang yang mempunyai ciri-ciri belajar di suatu universitas tertentu. 35 Gambar 2.4 Representasi diagram dari tipe entitas Staff dan Branch (Connolly dan Begg, 2010:374) Relationship Types Menurut Connoly dan Begg (2010: 374), Relationship Type merupakan sekumpulan hubungan antara satu atau lebih tipe-tipe entitas dimana tiap tipe entitas diberikan nama yang menjelaskan fungsinya. Sedangkan relationship occurrence adalah asosiasi yang teridentifikasi secara unik, dimana setiap tipe entitas yang berpartisipasi terlibat satu kejadian. Suatu relationship direpresentasikan sebagai garis yang menghubungkan antara satu tipe entitas dengan entitas lainnya. Garis tersebut diberi nama sesuai dengan hubungannya dan diberi tanda panah satu arah disamping nama hubungannya. Gambar 2.5 Contoh relationship types Branch has Staff (Connolly dan Begg, 2010:376) Setiap entitas yang terlibat di relationship type tertentu dinamakan participant, dan jumlah partisipan di dalam relationship type dinamakan degree di dalam hubungan tersebut. Sebuah relationship berderajat dua disebut binary, relationship, sedangkan berderajat tiga disebut dengan ternary; dan relationship berderajat empat disebut dengan quartenary. Attribute 36 Gambar 2.6 Contoh Atribut dalam entitas Staff dan Branch (Connolly dan Begg, 2010:382) Menurut Connolly dan Begg (2010: 379), atribut merupakan suatu sifat dari sebuah entitas atau sebuah relationship type. Attribute domain merupakan kumpulan nilai yang diijinkan untuk satu atau lebih atribut dan setiap atribut mempunyai attribute domain. Klasifikasi dari atribut terdiri dari dibawah ini: 1. Simple Attribute, yaitu atribut yang terdiri dari suatu komponen tunggal dengan keberadaan yang independent. Simple Attribute tidak dapat dibagi menjadi lebih kecil lagi dan disebut juga sebagai atomic attribute. 2. Composite Attribute, yaitu atribut yang terdiri dari banyak komponen, dimana masing – masing komponen mempunyai keberadaan yang independent. Sebagai contoh atribut alamat dapat dibagi menjadi kota, jalan, dan kode pos. 3. Single-Valued Attribute, yaitu atribut yang hanya mempunyai nilai tunggal untuk setiap kejadian dari tipe entitas. Sebagai contoh untuk tipe entitas mahasiswa hanya mempunyai satu atribut nomor induk. 4. Multi-Valued Attribute, yaitu atribut yang memiliki beberapa nilai dari setiap kejadian. Sebagai contoh untuk tipe entitas mahasiswa dapat mempunyai atribut nomor telepon lebih dari satu. 5. Derived-Attribute, yaitu atribut yang memiliki nilai yang dihasilkan dari satu atau beberapa atribut – atribut lainnya, dan tidak harus berasal dari satu entitas. 6. Keys, yang terdiri dari tiga jenis yaitu candidate keys, primary keys, dan composite keys. Candidate keys merupakan sekumpulan atribut yang masing-masing nilai mengidentifikasi secara unik setiap kejadian 37 entitas. Primary keys adalah key unik yang dipilih untuk mengidentifikasikan suatu entitas. Composite keys adalah key yang terdiri dari dua atau lebih atribut. Strong Entity and Weak Entity Menurut Connolly dan Begg (2010:383), suatu entitas dapat dikategorikan menjadi strong entity dan weak entity. Strong Entity adalah suatu entitas yang keberadaannya tidak bergantung dengan entitas lainnya. Sedangkan Weak Entity adalah entitas yang keberadaannya bergantung pada entitas yang lain. Contoh dari strong entity misalnya entitas Staff yang dapat berdiri sendiri tidak bergantung dengan entitas lainnya sedangkan contoh dari weak entity misalnya entitas purchase order detail dimana entitas tersebut bergantung kepada entitas purchase order dan entitas item. Attributes on relationships Relationship type yang terasosiasi dengan entitas dapat mempunyai suatu atribut. Cara untuk membedakan atribut relasi dengan atribut entitas adalah dari kotak dibuat yang dihubungkan dengan garis putus-putus dan kemudian disambungkan diantara hubungan entitas. Structural constraints Merupakan batasan yang mencerminkan kejadian sebenarnya dari setiap entitas. Tipe utama batasan dalam hubungan disebut sebagai multiplicity. Multiplicity adalah kemungkinan jumlah atau jarak dari kejadian suatu entitas yang berhubungan dengan kejadian entitas yang terasosiasi melalui relasi tertentu. Multiplicity dibagi menjadi dua bagian yang dikenal sebagai cardinality dan participation. Cardinality menunjukkan angka atau jarak maksimal dari kemungkinan kejadian hubungan dari entitas yang berpartisipasi sedangkan participation menentukan jumlah kejadian entitas di dalam suatu hubungan. Suatu multiplicity dapat dibagi menjadi tiga jenis, yaitu: - One-to-one 1:1 relationship 38 Gambar 2.7 Contoh hubungan one-to-one 1:1 (Connolly dan Begg, 2010:386) - One-to-many 1:* relationship Gambar 2.8 Contoh hubungan one-to-many 1:* (Connolly dan Begg, 2010:388) - Many-to-many *:* relationship Gambar 2.9 Contoh hubungan many-to-many *:* (Connolly dan Begg, 2010:389) 2.1.13 Normalisasi Menurut Connoly dan Begg (2010:416) normalisasi merupakan suatu teknik untuk menghasilkan sejumlah relasi table dengan properties yang diinginkan yang sesuai dengan persyaratan data dari perusahaan. Normalisasi dapat juga disebut teknik dalam perancangan logical sebuah basis data, yakni teknik pengelompokan 39 atribut dari suatu relasi sehingga membentuk struktur relasi yang baik (tanpa redundansi). Dengan kata lain normalisasi merupakan proses mengubah suatu relasi yang memiliki masalah tertentu ke dalam dua relasi atau lebih yang tidak memiliki masalah tersebut. Masalah yang dimaksud tersebut itu sering disebut dengan istilah anomali. Anomali merupakan kejadian yang tidak diharapkan yang menyebabkan ketidak konsistenan data dan muncul dalam proses perancangan database. 2.1.13.1 Tujuan Normalisasi Menurut Connolly dan Begg (2010:416) tujuan dari dilakukannya normalisasi adalah untuk mengidentifikasi kumpulan dari relations yang mendukung persyaratan data dari suatu perusahaan. Karakteristik dari kumpulan relations yang cocok digunakan meliputi hal-hal berikut ini: - Jumlah minimal dari atribut yang dibutuhkan untuk mendukung persyaratan data perusahaan. - Atribut dengan hubungan logical yang dekat diletakkan dalam satu relations yang sama - Redudansi yang minimal, dimana tiap atribut hanya direpresentasikan sekali, kecuali atribut yang digunakan sebagai foreign keys. 2.1.13.2 Proses Normalisasi Connolly dan Begg (2010: 428-438) menyatakan bahwa proses normalisasi dapat dibagi menjadi beberapa tingkatan, yang biasanya terdiri dari tingkatantingkatan dibawah ini : 1. Unnormalized Form (UNF) Unnormalize Form (UNF) adalah sebuah tabel yang mengandung satu atau lebih kelompok data yang berulang. 2. First Normal Form (1NF) First normal form (1NF) adalah suatu relasi dimana persimpangan dari setiap baris dan kolom hanya mengandung satu nilai. Terdapat dua pendekatan umum untuk mengubah tabel UNF ke 1NF, antara lain : - Pendekatan pertama dimulai dari menempatkan data yang tidak berulang ke dalam suatu kolom dan baris yang kosong sehingga menghasilkan tabel dengan nilai tunggal. 40 - Pendekatan kedua dengan cara menempatkan data yang berulang bersamaan dengan copy dari key attributes aslinya di suatu relasi yang terpisah karena terkadang unnormalized table mengandung kumpulan pengulangan dalam grup pengulangan, sehingga penempatan data harus dilakukan berulang-ulang sampai tidak ada kumpulan data berulang yang tersisa. Hasil dari normalisasi 1NF masih bisa menyebabkan update anomalies, sehingga diperlukan normalisasi bentuk kedua (2NF). 3. Second Normal Form (2NF) Second Normal Form / 2NF dilakukan berdasarkan konsep ketergantungan fungsional penuh (full function dependency) dimana setiap atribut non primary key bergantung secara penuh ke atribut primary key. Full function dependency dinyatakan dengan jika A dan B adalah atribut dari suatu relasi, B adalah fungsional ketergantungan penuh (fully functional dependency) pada A jika B secara fungsional bergantung pada A akan tetapi bukan merupakan himpunan bagian dari A. Dengan kata lain bentuk 2NF merupakan sebuah relasi didalam 1NF dan setiap atribut yang bukan primary key adalah fungsional tergantung pada primary key. Proses normalisasi dari relasi 1NF ke 2NF melibatkan penghilangan dari bagian ketergantungan (partial dependency). 4. Third Normal Form (3NF) Third Normal Form / 3NF dilakukan berdasarkan konsep ketergantungan transitif (Transitive Dependency). Transitive dependency adalah sebuah kondisi dimana A, B, dan C merupakan suatu atribut dari sebuah relasi yang jika A -> B dan B -> C, maka C secara transitif bergantung pada A melewati B (menyatakan bahwa A tidak secara fungsional bergantung kepada B atau C). Pada 3NF, sebuah relasi pada bentuk 1NF dan 2NF tidak ada non primary key secara transitif bergantung pada primary key. Proses nomalisasi dari 2NF ke 3NF melibatkan penghilangan dari transitive dependency. Jika sebuah transitive dependency antara attribute nya dengan menempatkan attribute tersebut ke dalam relasi baru, selanjutnya dengan sebuah salinan dari determinannya. Teknik ini menghasilkan kumpulan relasi dengan properties yang diinginkan berdasarkan kebutuhan data dalam organisasi. Tujuannya adalah untuk menghilangkan redudansi data, mengurangi kompleksitas, dan memodifikasi data. 41 2.2 Teori Khusus 2.2.1 Pembelian Pooler, Pooler dan Farney (2004:3) menyatakan pembelian sebagai aktifitas yang rumit dan kompleks yang mempertemukan penjual dengan pembeli dimana transaksi permintaan terjadi di antara keduanya. 2.2.2 Persediaan Menurut Warren, Reeve, dan Fess (2008:398), Persediaan merupakan barang dagang yang disimpan untuk kemudian dijual dalam operasi bisnis perusahaan, dan untuk kebutuhan bahan yang digunakan dalam proses produksi yang disimpan untuk tujuan itu (produksi). 2.2.3 Manajemen Aset Menurut Weygandt, Kimmel, Kieso (2010:12), Aset merupakan sumber daya yang dimiliki sebuah bisnis. Sedangkan Menurut Hastings (2010:4) manajemen aset merupakan serangkaian himpunan yang saling terkait dengan (1) mengidentifikasi apa saja aset yang dibutuhkan, (2) mengidentifikasi kebutuhan biaya, (3) mengakuisisi aset, (4) menyediakan dukungan untuk sistem logistik dan pemeliharaan untuk aset, (5) menghapus atau memperbaharui aset sehingga secara efektif dan efisien dapat memenuhi tujuan yang diinginkan. 2.2.4 PHP Menurut Welling dan Thomson (2005:2-7), PHP merupakan bahasa pemrograman yang didesain untuk pengembangan web dan dieksekusi di dalam web server dan selanjutnya ditampilkan di halaman website. PHP yang merupakan produk open-source mempunyai kelebihan sebagai berikut : - Performa PHP dapat melayani akses sampai berjuta-juta dalam sehari walaupun menggunakan server yang relative murah. PHP memberikan solusi yang efisien dalam menanggapi performa yang dihasilkan. - Integrasi database PHP dapat dikoneksikan ke berbagai macam database seperti MySQL, postgreSQL, Oracle, Microsoft SQL Server dan lainnya. 42 - Biaya Penggunaan PHP tidak memungut biaya dikarenakan PHP merupakan produk open-source. - Mendukung pemrograman berbasis objek PHP menyediakan fasilitas atau metode pemrograman berbasis objek seperti inheritance, methods, constructor, dan sebagainya. - Portabilitas PHP dapat berjalan di banyak sistem operasi, sehingga pengguna dapat mengakses dari mana saja. 2.2.5 MySQL MySQL merupakan sebuah database management system yang bersifat relational dan merupakan perangkat lunak yang “open source”. MySQL bisa didapatkan secara gratis dan bayar dimana perangkat lunak MySQL yang gratis berada dibawah lisensi General Public License (GPL) dan yang bayar berada dibawah lisensi komersial. MySQL saat ini dikembangkan oleh Oracle yang sebelumnya MySQL dikembangkan oleh Sun Microsystem dan MySQL AB. Menurut Pachev (2003:4), terdapat beberapa kelebihan dan kekurangan MySQL, yaitu: Kelebihan : 1. Speed (Kecepatan) 2. Reliability (Dapat diandalkan) 3. Low system Resource requirements (Persyaratan sumber sistem rendah) 4. Scalability (Skalabilitas) 5. Platform diversity (Keragaman Platform) 6. Support for a large number of host languages (Mendukung banyak ‘Host Languages’) 7. ODBC support (Mendukung ODBC) 8. Free or low-cost licensing (Bebas biaya atau murah biaya lisensi) 9. Inexpensive commercial support (Dukungan komersil dengan harga yang tidak mahal) 10. Availability of the source code (Ketersediaan kode sumber) Kekurangan: 1. Lack of certain SQL features (Kurangnya fitur SQL) 43 2. Lack of thorough testing on certain platforms (Kurangnya pengujian lanjut untuk platform tertentu) 3. Difficulty of working with the source code (Susah bekerja dengan sumber kode yang ada) 44 Halaman ini sengaja dikosongkan