BAB 2 LANDASAN TEORI 2.1 Teori Dasar 2.1.1 Database Menurut Connolly dan Begg (2005: 15), database atau basis data merupakan sekumpulan data yang berhubungan secara logika, beserta deskripsi akan data tersebut, yang dirancang untuk memenuhi kebutuhan informasi yang dibutuhkan oleh organisasi. Menurut Rainer, Turban dan Potter (2007: 22), basis data merupakan koleksi dari berbagai file, tabel, dan relasi yang menyimpan data dan hubungan asosiasi antar data. Menurut Whitten, Bentley, dan Dittman (2004: 518), basis data merupakan suatu kumpulan file yang saling terkait dan tidak hanya sekumpulan file tetapi record pada setiap file yang harus memperbolehkan hubunganhubungan untuk menyimpan file lain. 2.1.2 Database Management System (DMBS) Menurut Connolly dan Begg (2005: 16), database management system ialah suatu sistem perangkat lunak yang memungkinkan user mendefinisi, membentuk, memelihara dan mengendalikan akses suatu basis data. Menurut Hall (2008: 433), DBMS merupakan perantara antara aplikasi user dengan basis data fisikal yang bertujuan untuk menyediakan pengendalian akses basis data. DBMS adalah sistem perangkat lunak khusus yang diprogram untuk mengetahui elemen data yang dapat diakses oleh authorized user. 7 8 Menurut Rainer, Turban dan Potter (2007: 105), DBMS adalah program yang menyediakan pengguna suatu alat untuk menambah, menghapus, mengakses, dan menganalisis data yang terletak di satu lokasi. 2.1.2.1 Fungsi DBMS Connolly dan Begg (2005: 48) menyebutkan beberapa fungsi DBMS, yaitu: Data storage, retrieval and update DBMS harus melengkapi pengguna dengan kemampuan menyimpan, mengambil, dan mengubah data di dalam basis data. User accessible catalog DBMS harus menyediakan sebuah katalog dimana deskripsi dari berbagai data item yang tersimpan dapat diakses oleh user. Transaction support DBMS harus menyediakan suatu mekanisme yang menjamin bahwa semua kegiatan update sesuai dengan transaksi yang dilakukan atau tidak sama sekali dilakukan. Concurrency control services DBMS harus menyediakan mekanisme yang menjamin bahwa basis data di-update dengan benar ketika lebih dari satu user meng-update basis data secara bersamaan. Recovery service DBMS harus menyediakan mekanisme untuk memperbaiki basis data disaat mengalami kerusakan dalam berbagai bentuk. Authorization services 9 DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya user yang memiliki hak akses untuk dapat mengakses basis data. Support for data communication DBMS harus mampu berintegrasi dengan perangkat lunak komunikasi atau jaringan. Integrity services DBMS harus menyediakan cara untuk menjamin bahwa data dalam basis data dan perubahan pada data mengikuti aturan yang telah ditetapkan sebelumnya. Service to promote database independence DBMS harus mencakup fasilitas yang mendukung independensi suatu program dari struktur aktual basis data. Utility service DBMS harus menyediakan berbagai macam layanan utilitas. Program utilitas membantu Database Administrator mengelola basis data secara efektif. 2.1.2.2 Keuntungan dan kekurangan DBMS Menurut Connolly dan Begg (2005: 26-29), Keuntungan dari penggunaan DBMS ialah : Mengendalikan data yang redundan Mengurangi resiko data yang tidak konsisten Integrasi dari seluruh data operasional yang memungkinkan penyaluran informasi secara keseluruhan Meningkatkan integritas data 10 Meningkatkan keamanan data dari user yang tidak mempunyai hak akses Sedangkan kekurangan atau kelemahan dari DBMS menurut Connolly dan Begg (2005: 29-30) ialah : Kompleksitas Biaya yang relatif mahal Kapasitas yang relatif besar Penambahan biaya untuk tambahan perangkat keras Sentralisasi sumber data didalam DBMS dapat menghambat suatu sistem apabila terdapat komponen yang rusak 2.1.2.3 Komponen dari Lingkungan DBMS Komponen-komponen dari lingkungan DBMS menurut Connolly dan Begg (2005: 18-21) meliputi : Gambar 2.1 Lingkungan DBMS Sumber: Connoly dan Begg (2005: 19) Hardware DBMS dan aplikasi membutuhkan perangkat keras untuk dapat beroperasi. Perangkat keras dapat berupa komputer personal, single mainframe, atau jaringan dari berbagai komputer. Beberapa DBMS membutuhkan spesifikasi perangkat keras tertentu agar dapat berjalan. Software 11 Komponen dari perangkat lunak terdiri dari perangkat lunak DBMS itu sendiri dan program aplikasi, bersamaan dengan sistem operasi termasuk jaringan perangkat lunak apabila DBMS digunakan di dalam suatu jaringan. Program aplikasi biasanya ditulis menggunakan bahasa pemrograman generasi ke 3 seperti C, C++, Java, Visual Basic dan bahasa pemrograman generasi ke 4 seperti SQL. Data Data merupakan komponen DBMS yang berperan sebagai penghubung antara komponen mesin dengan manusia. Isi dari basis data mencakupi data operasional dan data yang menjelaskan tentang data(metadata). Pengertian data menurut O’Brien (2004: 38), data merupakan suatu fakta atau hasil dari sebuah observasi, yang biasanya berisikan fenomena fisik yang merupakan sebuah pengukuran terhadap atribut dari suatu entitas. Sedangkan menurut McLeod dan Schell (2004: 12), data adalah fakta-fakta yang disimpan didalam basis data yang terdiri atas fakta-fakta yang umumnya tidak dapat digunakan karena belum terproses dan tidak memiliki makna atau arti. Procedures Prosedur merujuk kepada instruksi dan peraturan yang mengatur rancangan dan penggunaan basis data. Pengguna atau karyawan yang bertugas untuk mengatur basis data 12 membutuhkan dokumentasi suatu prosedur dalam penggunaan sistem basis data. People Komponen terakhir dari lingkungan basis data ialah manusia yang berhubungan dengan sistem. Manusia yang terhubung dengan sistem dapat dibagi menjadi 4 jenis, yaitu: Data dan Database Administrator, Database Designers, Application Developers, End-users. 2.1.2.4 Multi-User DBMS Architectures Untuk mengimplementasi DBMS dengan pengguna lebih dari satu, Connolly dan Begg (2005: 56-63) menyebutkan 5 jenis arsitektur, yaitu : - Teleprocessing Merupakan arsitektur tradisional untuk pengguna lebih dari satu, dimana proses aplikasi dan DBMS dijalankan di dalam satu komputer yang sama. - File-Server Architecture Di dalam lingkungan ini, proses didistribusikan melalui jaringan yang disebut Local Area Network (LAN). Fileserver menyimpan data yang dibutuhkan aplikasi dan DBMS. Aplikasi dan DBMS berjalan di setiap workstation yang meminta data di dalam file-server ketika dibutuhkan. - Traditional Two-Tier Client-Server Architecture Arsitektur ini menunjukkan bahwa DBMS terletak pada server dan aplikasi/suatu proses terletak pada client. Client 13 bertanggung jawab dalam merepresentasikan data kepada user, dan server bertanggung jawab dalam menyediakan data yang diminta oleh client. - Three-Tier Client-Server Architecture Arsitektur ini terdiri dari 3 bagian, dimana bagian pertama ialah client, bagian kedua ialah application server, dan bagian ketiga ialah database server. Client bertanggung jawab terhadap user interface yang digunakan user dan proses logika yang sederhana. Logika bisnis yang terdapat di dalam aplikasi mempunyai server terpisah yang terhubung dengan client dan database server melalui jaringan. - Transaction Processing Monitors (TPM) Merupakan program yang mengendalikan pengiriman data antara clients dan servers dengan tujuan menyediakan lingkungan yang konsisten, terutama untuk online transaction processing (OLTP). TPM berada di tengah arsitektur three-tier client-server yang berfungsi untuk menyediakan berbagai akses manajemen sumber dan interface untuk programmers dalam membuat aplikasi transaksi. 14 2.1.3 The Three Level ANSI-SPARC Gambar 2.2 Arsitektur The Tree Level ANSI-SPARC Sumber: Connoly dan Begg (2005: 35) Menurut Connolly dan Begg (2005: 35-37), arsitektur ANSI-SPARC meliputi 3 tingkatan, yaitu : 1. External Level Merupakan 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 Merupakan 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 organisasi yang keseluruhan bersifat kebutuhan independen dari basis data pertimbangan 15 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 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. Tujuan dari arsitektur ini ialah, untuk memisahkan setiap pandangan user terhadap basis data dengan cara fisik suatu basis data direpresentasikan. 2.1.4 Database Language Menurut Connolly dan Begg (2005: 39-42), bahasa basis data yang disebut data sublanguage meliputi dua bagian, yaitu: Data Definition Language (DDL) DDL merupakan bahasa yang mengizinkan database administrator atau user untuk menjelaskan dan membuat penamaan suatu entitas, atribut, dan hubungan yang dibutuhkan aplikasi, bersamaan dengan batasan integritas dan batasan keamanan yang terasosiasi. DDL digunakan untuk mendefinisikan atau mengubah skema. Beberapa statement DDL berdasarkan pendapat Connolly dan Begg (2005: 168-176) adalah : a. Create Table 16 Untuk membuat tabel dengan mengidentifikasikan tipe data untuk tiap kolom. b. Alter Table Pernyataan untuk mengganti atau mengubah struktur dari tabel yang sudah dibuat sebelumnya. c. Drop Table Untuk membuang atau menghapus tabel beserta semua data yang terkait didalamnya. d. Create Index Untuk membuat index pada suatu table. Index ialah struktur yang menyediakan kecepatan akses terhadap suatu baris tabel berdasarkan nilai satu kolom atau lebih. e. Drop Index Untuk membuang atau menghapus index yang sudah dibuat sebelumnya. Data Manipulation Language (DML) DML ialah 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 data yang dibutuhkan dan cara untuk mengambil data. b. Non-procedural DML 17 Bahasa yang mengizinkan user untuk menentukan kondisi data yang akan digunakan Statements DML menurut Connolly dan Begg (2005: 117-118) mencakupi : - SELECT Pernyataan untuk mengambil dan menampilkan data dari satu atau banyak tabel. - INSERT Pernyataan untuk menambah baris baru ke dalam tabel. - UPDATE Pernyataan untuk mengubah data yang sudah ada di dalam tabel. - DELETE Pernyataan untuk menghapus baris data di dalam tabel. 2.1.5 Database System Development Lifecycle Berdasarkan pendapat Connolly dan Begg (2005: 284-306) Tahapan Database Application Lifecycle meliputi hal berikut ini : 18 Gambar 2.3 Database System Development Lifecycle Sumber: Connoly dan Begg (2005: 284) Database Planning Merupakan aktivitas manajemen yang memungkinkan tahapan database application lifecycle dapat direalisasikan secara efektif dan efisien. Perencanaan basis data harus terintegrasi dengan keseluruhan strategi sistem informasi dari organisasi. Langkah pertama yang paling penting dalam perencanaan basis data ialah menentukan dengan jelas mission statement untuk mendefinisikan tujuan utama dari sistem basis data. Mission statement dapat membantu mengklarifikasikan tujuan dari sistem basis data juga menyediakan alur yang jelas untuk mencapai 19 efektifitas dan efisiensi pembuatan suatu sistem basis data yang dibutuhkan. Langkah kedua setelah menentukan mission statement ialah, mengidentifikasi mission objectives. Ketika mission statement telah didefinisikan, maka mission objective didefinisikan. Setiap mission objective atau tujuan harus mengidentifikasikan tugas khusus yang harus didukung oleh basis data. Dapat juga disertai dengan beberapa informasi tambahan yang menspesifikasikan pekerjaan yang harus diselesaikan, sumber daya yang digunakan dan biaya untuk membayar kesemuannya itu. Database planning juga harus menyertakan pengembangan standar yang menentukan: - Bagaimana data akan dikumpulkan. - Bagaimana menspesifikasi format atau bentuk data. - Dokumentasi penting apakah yang akan diperlukan. - Bagaimana desain dan implementasi harus dilakukan. System Definition Merupakan suatu kegiatan yang menjelaskan batasan-batasan dan cakupan dari aplikasi basis data dari sudut pandang pengguna (user view) yang utama. User view mendefinisikan apa yang diwajibkan dari suatu sistem basis data dari perspektif aturan kerja khusus (seperti manajer atau supervisor) atau area aplikasi enterprise (seperti Marketing, Personel, atau Stock Control). Aplikasi basis data dapat memiliki satu atau lebih user view. Indentifikasi user view, membantu memastikan bahwa tidak ada user utama dari suatu basis data yang terlupakan ketika pembuatan aplikasi baru yang 20 dibutuhkan. User view juga membantu dalam pengembangan aplikasi basis data yang rumit dan memungkinkan permintaanpermintaan dipecah kedalam bagian-bagian yang lebih sederhana. Requirement Collections and Analysis Merupakan suatu proses pengumpulan dan analisis informasi mengenai bagian organisasi yang didukung oleh sistem basis data, dan menggunakan informasi tersebut untuk mengidentifikasikan kebutuhan pengguna akan sistem yang baru. Informasi yang dikumpulkan untuk setiap user view utama meliputi : - Deskripsi data yang digunakan atau dihasilkan - Detail mengenai bagaimana data dihasilkan - Kebutuhan tambahan untuk sistem basis data yang baru Dalam tahapan ini, jumlah data yang diperoleh tergantung pada masalah dan kebijakan perusahaan. Informasi yang terkumpul pada tahapan ini mungkin tidak terstruktur dan melibatkan beberapa permintaan informasi yang harus diubah kedalam kebutuhan yang lebih terstruktur. Terdapat dua pendekatan dalam tahapan ini yaitu: - Centralized approach Kebutuhan dari setiap user view digabungkan menjadi satu perangkat kebutuhan untuk sistem basis data yang baru. - View integration approach Kebutuhan dari setiap user view tetap berada di dalam bentuk list yang terpisah. Model data yang merepresentasikan setiap user view dibuat, dan nantinya digabungkan di dalam tahap perancangan desain basis data 21 Untuk sistem basis data yang rumit, kombinasi penggunaan dua pendekatan tersebut dapat dilakukan untuk mengatur berbagai user view. Database Design Desain basis data merupakan suatu proses pembuatan perancangan basis data yang akan mendukung pernyataan misi dan tujuan dan operasi basis data suatu perusahaan. Terdapat empat pendekatan dalam mendesain basis data, yaitu: 1. Top-Down Diawali dengan 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. 2. Bottom-up Dimulai dari atribut dasar (yaitu, 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. 3. Inside-out Berhubungan dengan pendekatan bottom-up akan tetapi mempunyai sedikit perbedaan dengan identifikasi awal entitas utama dan kemudian menyebar kelainnnya seperti 22 entitas, relationship, dan atribut terkait lainnya yang terlebih dulu diidentifikasi. Tahap dalam mendesain basis data terdiri dari tiga bagian, yaitu: - Conceptual Database Design Merupakan proses pembentukan model data dari data yang digunakan perusahaan, yang tidak bergantung pada pertimbangan aspek fisik. - Logical Database Design Merupakan proses pembentukan model data dari data yang digunakan perusahaan berdasarkan model data tertentu, namun tidak bergantung kepada pertimbangan aspek fisik maupun DBMS. - Physical Database Design Merupakan proses dalam menghasilkan deskripsi dari implementasi suatu basis data di 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 Pemilihan DBMS dilakukan untuk memilih DBMS yang sesuai untuk mendukung sistem basis data. Pemilihan DBMS amatlah diperlukan ketika sebuah perusahaan ingin mengembangkan atau mengganti sistem yang sudah ada, proses ini digunakan untuk mengevaluasi produk DBMS. Tujuan dari pemilihan DBMS adalah untuk memilih 23 sebuah sistem yang sesuai dengan kebutuhan saat ini dan yang akan datang pada perusahaan, menyeimbangkan biaya pembelian produk DBMS, berbagai software / hardware tambahan yang diperlukan untuk mendukung sistem basis data, dan biaya yang berhubungan dengan perubahan dan pelatihan karyawan. Langkah-langkah utama dalam pemilihan DBMS ialah : - Menentukan referensi dan kriteria berdasarkan kebutuhan user. - Membuat perbandingan mengenai dua atau tiga produk DBMS. - Evaluasi produk-produk DBMS - Merekomendasikan pemilihan DBMS dan membuat laporan hasil dari evaluasi produk DBMS tersebut. Application Design Desain aplikasi adalah rancangan dari user interface dan program aplikasi yang digunakan untuk memproses 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. Seluruh fungsi yang tercantum dalam spesifikasi kebutuhan pengguna harus berada di dalam perancangan aplikasi. Perancangan user interface yang tepat ke dalam sistem basis data menjadi kebutuhan tambahan agar fungsi yang dibutuhkan dapat tercapai. Perancangan user interface terkadang tidak diperhatikan atau ditinggalkan selama tahapan perancangan. Program aplikasi yang mudah dipelajari, dan juga sederhana dalam penggunaan, maka 24 pengguna cenderung dapat memanfaatkan atau mengolah informasi dengan baik. Prototyping Prototype adalah pembuatan kerangka kerja dari sistem basis data. Pada kondisi tertentu kita dapat memilih apakah akan membuat prototype atau langsung mengimplementasikan sistem basis data. Prototype merupakan suatu model aplikasi basis data yang mempunyai semua pola yang diperlukan dan menyediakan semua kemampuan sistem. Tujuan utama prototype adalah mengizinkan pada pemakai untuk menggunakan prototype tersebut untuk menguji apakah fitur-fitur pada sistem telah bekerja sesuai dengan spesifikasi pengguna. Dengan cara ini, kita dapat memperjelas kebutuhan pemakai dan pengembangan sistem dan mengevaluasi kelayakan desain sistem tersebut. Ada 2 cara strategi membuat prototype yaitu requirements prototyping dan evolutionary prototyping (Connolly dan Begg, 2005: 304) untuk requirements prototyping digunakan prototype untuk menentukan kebutuhan suatu aplikasi basis data yang diusulkan dan ketika kebutuhan dirasakan sudah lengkap maka prototype tersebut tidak digunakan lagi. Prototype evolusioner digunakan untuk tujuan yang sama, perbedaannya adalah bahwa prototype tidaklah dibuang tetapi dikembangkan lebih lanjut sehingga aplikasi basis data tersebut. Implementation Merupakan perwujudan fisik dari basis data dan desain aplikasi. Setelah menyelesaikan tahap desain (dengan atau tanpa prototype), 25 kini berada pada tahap implementasi basis data dan program aplikasi, implementasi basis data dicapai dengan menggunakan DDL dari DBMS yang telah dipilih atau dengan menggunakan Graphical User Interface (GUI), masing-masing menyediakan fungsi ketika menyembunyikan pernyataan DDL tingkat rendah (low-level). Pernyataan DDL digunakan untuk menciptakan struktur basis data dan menghilangkan file yang terdapat dalam basis data tersebut. User view juga diterapkan pada langkah implementasi. 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 Languange dari DBMS target, yang terdapat dalam bahasa pemprograman seperti Visual Basic (VB), VB.NET, Phyton, Delphi, C, C++, C#, Java. Dan juga mengimplementasikan komponen-komponen 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 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 Konversi data dan loading ialah proses pemindahan data yang ada kedalam basis data yang baru dan mengubah aplikasi yang sudah ada agar dapat digunakan kedalam basis data yang baru. Tahapan ini dibutuhkan hanya ketika sistem basis data yang baru menggantikan 26 sistem yang lama. Sekarang ini, 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 Merupakan suatu proses pelaksanakan program aplikasi dengan tujuan untuk menemukan kesalahan. Dalam melakukan testing para pemakai sistem yang baru harus dilibatkan untuk menguji proses aplikasi dan basisi data tersebut. 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 riil diharapkan untuk digunakan maka adalah penting untuk mempunyai back-up. Setelah pengujuan diselesaikan, maka sistem aplikasi dan basis data ini telah siap digunakan. Operational Maintenance Pemeliharan operasional adalah sebuah proses pemantauan dan pemeliharaan sistem berikut instalasi. Setelah melalui tahap-tahap sebelumnya maka sistem sekarang telah pada tahap pemeliharaan yang melibatkan aktifitas berikut : - Mengawasi kinerja dari sistem. Jika performance jauh dibawah suatu tingkatan yang bisa diterima, penyusuan basis data mungkin diperlukan. - Menjaga dan meningkatkan mutu aplikasi basis data. Kebutuhan baru disatukan kedalam aplikasi basis data yang mengikuti 27 langkah-langkah sebelumnya yang terdapat dalam siklus basis data. - Ketika aplikasi basis data sedang beroperasi, perlu dilakukan monitoring secara dekat untuk memastikan bahwa performance dalam tingkatan yang bisa diterima. - Monitoring proses 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 pembeli peralatan tambahan jika diperlukan. 2.1.6 Fact Finding Techniques Menurut Connolly dan Begg (2005: 314), teknik-teknik pencarian fakta ialah, proses formal dalam penggunaan teknik seperti wawancara dan kuisioner untuk mengetahui fakta suatu sistem, kebutuhan dan preferensi. Teknik-teknik tersebut digunakan di tahap database lifecycle. Database developer biasanya menggunakan sebagian teknik di suatu proyek basis data, Connolly dan Begg (2005: 317-321) menyebutkan lima teknik yang biasa digunakan, yaitu: - Examining documentation Dengan memeriksa dokumen, formulir, laporan dan files yang berhubungan dengan sistem, kita dapat memahami suatu proses sebuah sistem. Contoh dokumen dapat berupa memos, e-mails, 28 keluhan pelanggan atau karyawan, struktur organisasi, kamus data, invoice, dan sebagainya. - Interviewing Merupakan teknik pengumpulan informasi dengan bertanya langsung ke individu secara bertatap muka. Terdapat dua jenis wawancara, yaitu: - Wawancara tidak terstruktur, dimana yang orang yang melakukan wawancara bergantung pada jawaban subjek wawancara untuk membentuk kerangka dan mengarahkan alur wawancara. - Wawancara terstruktur, dimana orang yang melakukan wawancara mempunyai pertanyaan khusus yang akan ditanyakan kepada subjek wawancara. Jenis pertanyaan dapat berupa pertanyaan terbuka yang membutuhkan klarifikasi atau ekspansi suatu jawaban dan pertanyaan tertutup merupakan pertanyaan yang membutuhkan jawaban langsung. - Observing the enterprise in operation Observasi merupakan teknik pengumpulan informasi dengan berpartisipasi atau melihat langsung ke dalam aktivitas sistem perusahaan. Teknik ini sangat berguna dalam validasi data yang dikumpulkan melalui metode lain atau kompleksitas suatu aspek sulit dideskripsikan dengan jelas oleh pengguna. - Research 29 Penelitian merupakan teknik pengumpulan fakta dengan mengidentifikasi penyelesaian suatu masalah yang sama melalui jurnal, buku referensi, dan internet. - Questionnaires Kuisioner merupakan proses pengumpulan fakta untuk melakukan survey dan pencarian informasi dalam menghadapi audience dengan jumlah yang banyak. Jenis pertanyaan kuisioner dibagi menjadi dua, yaitu free-format questions, dimana responden mempunyai kebebasan dalam mengisi jawaban dan fixed-format questions yang membutuhkan jawaban spesifik dari suatu pertanyaan. 2.1.7 Entity Relationship Modelling Menurut Connolly dan Begg (2005: 342), entity relationship modelling merupakan pendekatan top-down suatu desain basis data yang memulai identifikasi data penting yang dinamakan entitas, serta hubungan antar datanya yang direpresentasikan di dalam model. Menurut Connolly dan Begg (2005: 343-367), Konsep dari ER model terdiri dari beberapa bagian, yaitu: Entity type Tipe entitas merupakan sekumpulan objek dengan sifat yang sama, dimana diidentifikasi oleh perusahaan sebagai eksistensi yang independen. Setiap objek tipe entitas yang diidentifikasi secara unik dinamakan entity occurrence. 30 Gambar 2.4 Contoh entitas Sumber: Connoly dan Begg (2005: 345) Relationship types Merupakan sekumpulan asosiasi antara satu atau lebih entitas yang berpartisipasi, dan setiap jenis hubungan diberi nama yang unik untuk menjelaskan fungsinya. Sedangkan relationship occurrence ialah asosiasi yang teridentifikasi secara unik, dimana setiap tipe entitas yang berpartisipasi terlibat satu kejadian. Gambar 2.5 Relationship type Sumber: Connoly dan Begg (2005: 347) Setiap entitas yang terlibat di relationship type tertentu dinamakan participant, dan jumlah partisipan di dalam relationship type dinamakan degree di dalam hubungan tersebut. Degree suatu hubungan terdapat 3 jenis, yaitu binary, ternary, dan quaternary. Attributes 31 Gambar 2.6 Contoh jenis atribut Sumber: Connoly dan Begg (2005: 354) Atribut merupakan suatu properti atau nilai yang menjelaskan setiap entitas atau relationship type. Setiap atribut yang terasosiasi dengan berbagai nilai disebut dengan domain. Atribut dapat diklasifikasikan menjadi : - Simple attributes Atribut yang dibentuk dari satu komponen dengan eksistensi yang independen dan tidak dapat dipecah menjadi komponen yang lebih kecil. - Composite attributes Atribut yang dibentuk dari berbagai komponen, yang setiap kompononennya memiliki eksistensi yang independen. - Single-valued attributes Merupakan atribut yang menyimpan satu nilai dari setiap kejadian di suatu tipe entitas. - Multi-valued attributes Merupakan atribut yang menyimpan beberapa nilai dari setiap kejadian si suatu tipe entitas. 32 - Derived attributes Atribut yang merepresentasikan nilai yang dapat diambil dari suatu atribut yang berhubungan satu sama lain. - Keys Keys terdiri dari tiga jenis yaitu candidate keys, primary keys, dan composite keys. Candidate keys merupakan sekumpulan kecil dari atribut, dimana masing-masing nilai mengidentifikasi secara unik setiap kejadian entitas. Primary keys ialah key unik yang dipilih untuk mengidentifikasikan suatu entitas. Composite keys adalah key yang terdiri dari dua atau lebih atribut. Strong and weak entity types Suatu entitas dapat dikategorikan entitas yang kuat apabila tidak bergantung dengan entitas lainnya. Sedangkan tipe entitas yang lemah ialah, entitas yang eksistensinya bergantung pada entitas lain. Attributes on relationships Gambar 2.7 Contoh atribut di dalam relasi Sumber: Connoly dan Begg (2005: 356) Tipe hubungan yang terasosiasi dengan entitas dapat memiliki atribut. Namun untuk membedakan atribut relasi dengan atribut entitas, suatu 33 kotak dibuat yang dihubungkan dengan garis putus-putus kemudian disambungkan diantara hubungan entitas. Structural constraints Merupakan batasan yang merefleksikan kejadian sebenarnya dari setiap entitas. Tipe utama batasan dalam hubungan dinamakan multiplicity. Multiplicity ialah jumlah angka atau jarak dari setiap kejadian suatu entitas yang berhubungan dengan kejadian entitas yang terasosiasi melalui relasi tertentu. Multiplicity dipisah menjadi dua bagian yang dikenal sebagai cardinality dan participation. Gambar 2.8 Cardinality dan participation Sumber: Connoly dan Begg (2005: 363) Cardinality menunjukkan angka atau jarak maksimal tentang kemungkinan kejadian hubungan dari entitas yang berpartisipasi sedangkan participation menentukan jumlah kejadian entitas di dalam suatu hubungan. Multiplicity dalam bentuk hubungan pada umumnya, yaitu binary relationship, terdiri dari tiga jenis: - One-to-one 1:1 relationship 34 Gambar 2.9 Contoh hubungan 1:1 Sumber: Connoly dan Begg (2005: 358) - One-to-many 1:* relationship Gambar 2.10 Contoh hubungan 1:* Sumber: Connoly dan Begg (2005: 359) - Many-to-many *:* relationship Gambar 2.11 Contoh hubungan *:* Sumber: Connoly dan Begg (2005: 360) Problems with ER models Masalah dalam pembuatan ER model terdapat dua bentuk, yaitu : - Fan traps 35 Merupakan masalah dimana model merepresentasikan hubungan dengan entitas, namun jalur entity occurrence-nya tidak jelas atau ambigu. Masalah ini dapat timbul disaat entitas yang sama memiliki dua atau lebih hubungan 1:*. Gambar 2.12 Contoh fan traps Sumber: Connoly dan Begg (2005: 364) Masalah ini dapat diselesaikan dengan restrukturisasi asosiasi antar entitas. Gambar 2.13 Contoh solusi fan traps Sumber: Connoly dan Begg (2005: 365) - Chasm traps 36 Merupakan masalah dimana suatu model menyarankan hubungan masing-masing entitas, namun tidak terdapat jalur entity occurrence-nya. Masalah ini dapat timbul ketika terdapat satu atau lebih multiplicity dengan nilai minimum nol membentuk bagian di jalur antar entitas. Gambar 2.14 Contoh chasm trap Sumber: Connoly dan Begg (2005: 366) Untuk menyelesaikan masalah ini, kita harus mengidentifikasi hubungan yang hilang dan membuat hubungan baru untuk menyambungkan jalur yang hilang tersebut. 37 Gambar 2.15 Contoh solusi chasm trap Sumber: Connoly dan Begg (2005: 367) 2.1.8 Normalisasi Berdasarkan Connolly dan Begg (2005: 388), normalisasi adalah teknik untuk mengorganisasi data kedalam tabel-table untuk memenuhi kebutuhan pemakai didalam sebuah organisasi. Tujuannya adalah untuk menghilangkan kerangkapan data, mengurangi kompleksitas, dan memodifikasi data. Proses yang terdapat dalam normalisasi berdasarkan Connolly dan Begg (2005: 403) terbagi menjadi beberapa tahap, yaitu: 1. Unnormalized Form / UNF UNF adalah sebuah tabel yang mengandung lebih dari satu bagian yang berulang. 2. First Normal Form / 1NF Bentuk 1NF adalah hubungan dimana irisan (intersection) dari setiap baris dan kolom hanya mengandung satu nilai. Untuk mengubah table UNF ke 1NF harus mengidentifikasi dan menghilangkan bagian yang berulang pada UNF, antara lain : a) Pendekatan pertama, hilangkan repetition group dengan memasukkan data yang berlebihan kedalam kolom dan baris 38 kosong sehingga hasil dari tabel nantinya hanya mengandung nilai atomik (tunggal). b) Pedekatan kedua, dengan menempatkan data yang berlebihan, selanjutnya dengan meng-copy atributnya yang asli dalam sebuah relasi yang dipisahkan. Kedua pendekatan ini benar. Tetapi, pendekatan kedua awalnya menghasilkan relasi yang paling sedikit pada 1NF dengan mengurangi redudancy. Jika menggunakan pendekatan pertama, relasi 1NF adalah buruk. Selanjutnya selama langkah normalisasi berikutnya akan menghasilkan relasi yang sama sehingga dihasilkan oleh pendekatan kedua. Akan tetapi hasil dari normalisasi 1NF masih bisa menyebabkan update anomalies, sehingga diperlukan normalisasi bentuk kedua (2NF). 3. Second Normal Form / 2NF Second Normal Form / 2NF adalah berdasarkan konsep ketergantungan fungsional penuh (full function dependency). Full function dependency dinyatakan dengan jika A dan B adalah attribute dari suatu relasi, B adalah fungsional ketergantungan penuh (fully functional dependency) pada A jika B adalah secara fungsional bergantung pada A tetapi bukan merupakan himpunan bagian dari A. Jelasnya bentuk 2NF adalah 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. 4. Third Normal Form / 3NF 39 3NF berdasarkan pada konsep peralihan ketergantungan (transitive dependency). Transitive dependency adalah sebuah kondisi dimana A, B, dan C adalah atribut dari sebuah relasi bahwa 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. Suatu teknik yang menghasilkan kumpulan relasi dengan property yang diinginkan berdasarkan suatu kebutuhan data dalam organisasi atau perusahaan Tujuannya adalah untuk menghilangkan kerangkapan data, mengurangi kompleksitas, dan memodifikasi data. 2.1.9 Database Design Methodology Connolly dan Begg (2005: 438) menyatakan bahwa design methodology ialah pendekatan terstruktur yang menggunakan prosedur, teknik, alat, dan dukungan dokumentasi untuk membantu dan memfasilitasi suatu proses perancangan. Seperti yang sudah disebutkan di dalam database lifecycle, proses desain mencakupi tiga fase, yaitu: conceptual database design, logical database design, dan physical database design. 2.1.9.1 Faktor penting dalam database design methodology 40 Suksesnya suatu perancangan basis data ditentukan dari berbagai faktor berikut ini: - Bekerja secara interaktif dengan pengguna - Mengikuti struktur metodologi melalui proses data modeling - Penerapan pendekatan data-driven - Pembentukan konsiderasi struktur dan integritas ke dalam model data - Mengkombinasikan teknik validasi konseptualisasi, normalisasi, dan transaksi ke dalam metodologi data modeling - Menggunakan diagram untuk merepresentasikan data model - Menggunakan database design language (DBDL) untuk merepresentasikan tambahan data semantik yang sukar direpresentasikan di dalam diagram - Membuat kamus data untuk menyediakan diagram model data dan DBDL - Mempunyai kemauan untuk pengulangan langkah 2.1.9.2 Fase Konseptual Dalam perancangan basis data, fase konseptual menurut Connolly dan Begg (2005: 440) meliputi hal berikut ini: o Identifikasi tipe entitas o Identifikasi tipe hubungan o Identifikasi dan asosiasi atribut dengan entitas atau tipe hubungan o Menentukan domain atribut o Menentukan atribut candidate, primary, dan alternate key 41 o Pertimbangkan penggunaan konsep enhanced modeling (opsi tambahan) o Cek redudansi suatu model o Validasi model konseptual dengan transaksi pengguna o Review model data konseptual dengan pengguna 2.1.9.3 Fase logikal untuk model relasional Dalam perancangan basis data, fase logikal menurut Connolly dan Begg (2005: 440-441) meliputi hal berikut ini: Membuat dan validasi model data logikal. Proses ini mencakupi mengambil relasi dari model data logikal, validasi relasi menggunakan normalisasi, validasi relasi terhadap transaksi pengguna, melihat batasan integritas, dan review model data logikal dengan pengguna. Menggabungkan model data logikal ke dalam model global (opsi tambahan) Cek perkembangan kedepan 2.1.9.4 Fase fisikal untuk basis data relasional Dalam perancangan basis data, fase fisikal menurut Connolly dan Begg (2005: 441) meliputi hal berikut ini: - Menerjemahkan model data logikal ke DBMS tujuan. Proses ini mencakupi perancangan relasi dasar, perancangan representasi dari data yang diambil, perancangan batasanbatasan umum. 42 - Merancang file organizations dan indexes. Proses ini mencakupi analisis transaksi, memilih file organization, memilih index, estimasi kebutuhan tempat penyimpanan. - Merancang user view - Merancang mekanisme keamanan - Mempertimbangkan pengenalan redudansi terkontrol - Memantau dan menyesuaikan sistem operasi 2.2 Teori Khusus 2.2.1 Pembelian Menurut Pooler, Pooler dan Farney (2004: 3), pembelian merupakan aktifitas rumit dan kompleks yang mempertemukan penjual dengan pembeli dimana transaksi permintaan terjadi di antara keduanya. Menurut Warren, Reeve, dan Fess (2005: 223), pembelian merupakan sejumlah pembayaran kas kepada pemasok, apabila berupa tunai dicatat di dalam jurnal kas pembayaran. 2.2.2 Penjualan Menurut Kotler dan Keller (2006: 457), penjualan merupakan proses dimana kebutuhan pembeli dan kebutuhan penjualan saling terpenuhi melalui pertukaran informasi dan kepentingan. Menurut Warren, Reeve, dan Fess (2005: 529), penjualan merupakan jumlah total yang dibebankan kepada pelanggan atas barang yang terjual, termasuk penjualan tunai atau kredit. 2.2.3 Service Mengutip dari Fitzsimmons (2006: 4), servis ialah wujud dari pengalaman yang dilakukan kepada pelanggan yang berperan sebagai co- 43 producer. Servis merupakan aktifitas antara pelanggan dengan penyedia servis sebagai solusi atas masalah-masalah pelanggan. 2.2.4 PHP: Hypertext Preprocessor Menurut Welling dan Thomson (2005: 2-7), PHP ialah bahasa pemrograman yang didesain untuk pengembangan web dan dieksekusi di dalam web server yang kemudian ditampilkan di halaman website. PHP merupakan produk open-source, yang berarti pengguna dapat mengakses sumber kode dan mendistribusikannya tanpa dikenai biaya. Keunggulan PHP meliputi hal berikut ini : - Performa Dengan hanya menggunakan server yang relatif murah, PHP dapat melayani akses sampai berjuta-juta dalam sehari. PHP memberikan solusi yang efisien dalam menanggapi performa yang dihasilkan. - Integrasi basis data PHP mempunyai variasi koneksi ke berbagai macam basis data seperti MySQL, postgreSQL, Oracle, Microsoft SQL Server dan sebagainya. - Biaya Dalam penggunaan PHP, pengguna tidak dikenakan biaya sama sekali. Dikarenakan PHP dibawah naungan lisensi open-source. - Mendukung pemrograman berbasis objek PHP menyediakan fasilitas atau metode pemrograman berbasis objek seperti inheritance, methods, constructor, dan sebagainya. - Portabilitas 44 PHP dapat dijalankan di berbagai macam sistem operasi, sehingga pengguna dapat mengakses dari mana saja. 2.2.5 MySQL Menurut Welling dan Thomson (2005: 2-7), MySQL ialah suatu produk Relational Database Management System (RDBMS) yang mempunyai dua tipe lisensi, yaitu lisensi open-source dan lisensi komersial. Keunggulan MySQL antara lain meliputi hal berikut: - Performa MySQL merupakan salah satu produk RDBMS yang mempunyai performa yang dapat diandalkan, yang dapat menyaingi DBMS berbayar seperti Oracle. - Biaya MySQL mempunyai dua tipe lisensi, yaitu open-source dan komersial. Dimana lisensi open-source, pengguna tidak dikenakan biaya sama sekali dalam memakainya namun terikat dengan perjanjian bahwa aplikasi pengguna harus dinyatakan sebagai freesoftware atau pengguna tidak mendistribusikannya. Sedangkan lisensi komersil, jika pengguna ingin mendapatkan fitur yang lebih atau pengguna ingin mendistribusikannya. - Portabilitas MySQL dapat dijalankan di berbagai macam sistem operasi. 2.2.6 Asynchronous Javascript and XML (AJAX) Menurut McClure, Cate, Glavich, dan Shoemaker (2006: 5-7), AJAX merupakan sekumpulan teknologi yang digunakan untuk client untuk 45 menyediakan komunikasi antara client user interface dengan web server secara asynchronous atau tidak bersamaan. Keuntungan dalam menggunakan AJAX antara lain: - AJAX menyediakan kemampuan untuk memanggil data tertentu dari web server secara terpisah. Sehingga dapat mengurangi waktu yang dibutuhkan client browser untuk mengambil data secara keseluruhan - Dengan tidak melakukan pemanggilan data atau mengirim form data secara keseluruhan ke dalam web server, maka utilisasi jaringan dapat diminimalisir sehingga tercapai efisiensi. - Dikarenakan aplikasi AJAX terletak didalam client, respon yang diberikan lebih responsif karena hanya mengambil data tertentu dibanding aplikasi yang diproses di server secara keseluruhan. - Dengan melakukan pemanggilan data secara keseluruhan, pengguna dapat kehilangan konteks lokasi pengguna di halaman website. Dengan AJAX, konteks user dapat dipertahankan untuk mengefisiensikan waktu sehingga dapat mengurangi tindakan berulang-ulang seperti scrolling dari halaman atas ke bawah.