BAB 1 PENDAHULUAN
1.1
Latar Belakang Di era globalisasi ini, perkembangan teknologi informasi sudah merupakan satu hal yang sangat dominan dan terjadi dengan sangat pesat. Informasi merupakan suatu kebutuhan yang penting bagi semua orang. Untuk menyimpan semua data perusahaan yang sangat besar, banyak perusahaan akan membutuhkan database. Bahkan perusahaan kecil pun akan membutuhkan database untuk menyimpan data mereka. Sebelum
berkembangnya
teknologi
komputer,
banyak
perusahaan
melakukan penyimpanan data secara manual, yaitu dengan pembukuan menggunakan kertas-kertas. Pembukuan manual ini membuat perusahaan mengalami kesulitan ketika mencari data yang sering dibutuhkan. Dengan adanya komputer yang dapat mendukung banyak operasional dalam bertransaksi, banyak perusahaan mulai beralih melakukan penyimpanan data dengan menggunakan pendekatan file. File-based system adalah sekumpulan program aplikasi yang memberikan pelayanan kepada end-users seperti pembuatan laporan-laporan. Setiap program mendefinisikan dan mengatur datanya masing-masing (Connolly, 2005, p7). Penggunaan pendekatan file tentu saja lebih mempermudah pengaksesan berbagai data bila dibandingkan dengan ketika menggunakan pembukuan manual.
1
Namun pendekatan file ini memiliki banyak kelemahan, yaitu data yang terpisah pada banyak file yang tersebar menyebabkan kesulitan dalam mengakses data yang dibutuhkan. Tidak ada relasi yang jelas antar data yang tersebar tersebut. Penggunaan pendekatan file ini memungkinkan terjadinya duplikasi terhadap data pada saat penyimpanan ataupun pengaksesan. Ketergantungan data terhadap physical structure and storage yang didefinisikan dalam application code menyebabkan kesulitan ketika dibutuhkan perubahan terhadap struktur yang sudah ada. Incompatible file formats dapat terjadi karena struktur file dikembangkan pada masing-masing program aplikasi. Selain itu, fixed queries of application programs dapat terjadi karena query dikembangkan pada masing-masing program aplikasi. Hal ini dapat mengakibatkan kesulitan dalam mengakses data, tidak dapat menjamin integritas terhadap data, dan beresiko besar terhadap keamanan data. Setelah pendekatan file, kemudian mulai berkembang konsep pendekatan database (database approach) sebagai pendekatan yang lebih efektif dan memiliki keunggulan yang dapat memecahkan permasalahan pada pendekatan file. Database adalah sekumpulan data yang terhubung secara logikal, dan deskripsi dari data tersebut, yang dapat digunakan oleh banyak user dan dibentuk untuk dapat menghasilkan informasi yang dibutuhkan oleh organisasi (Connolly, 2005, p15). Tujuan utama dalam pengembangan database adalah membuat banyak user bisa mengakses data secara bersamaan. Pengaksesan data ini tidak bermasalah jika semua user hanya membaca data dan mereka tidak mengganggu satu sama lain. Tapi ketika dua user atau lebih mengakses database secara bersamaan dan salah
2
3 satu melakukan perubahan terhadap data, maka hal ini akan dapat menimbulkan adanya data yang tidak konsisten (inconsistency data). Untuk mengatasi adanya kemungkinan inconsistency data, maka dibutuhkan adanya suatu mekanisme yang mengatur jalannya transaksi yang mengakses data yang sama tersebut. Mekanisme ini dikenal dengan istilah concurrency control. Concurrency control adalah proses pengaturan operasioperasi dalam banyak transaksi yang berjalan secara simultan pada database tanpa mengganggu operasi pada transaksi lainnya sehingga dapat menghasilkan data yang konsisten (Connolly, 2005, p577). Pembicaraan tentang concurrency mengacu pada fakta bahwa DBMS mengijinkan banyak transaksi untuk mengakses data yang sama pada saat bersamaan. Pada banyak sistem, beberapa mekanisme concurrency control sangat dibutuhkan untuk memastikan bahwa satu transaksi tidak akan mengganggu transaksi lain yang terjadi pada waktu yang hampir bersamaan. Terdapat tiga masalah penting yang disebabkan oleh concurrency : -
Masalah lost update.
-
Masalah uncommitted dependency.
-
Masalah inconsistent analysis. Masalah lost update dan uncommitted dependency mengkonsentrasikan
pada transaksi yang melakukan perubahan pada database dan adanya transaksi lain yang membaca data tersebut pada saat bersamaan. Namun, transaksi yang hanya membaca database bisa juga memberikan hasil yang tidak akurat jika mereka
4 diijinkan untuk membaca sebagian hasil dari transaksi yang belum selesai melakukan perubahan terhadap data yang sama yang berjalan secara bersamaan mengakses database. Hal ini dikenal sebagai masalah inconsistent analysis. Salah satu tujuan dari penelitian ini adalah merancang komponen concurrency control pada RDBMS berbasis XML. Komponen concurrency control ini umumnya sudah terdapat di dalam DBMS komersial seperti Microsoft SQL Server, dan Oracle. DBMS tersebut merupakan DBMS yang siap pakai dan dapat langsung digunakan oleh user. Manfaat penelitian ini bukan dipandang dari segi kegunaannya bagi end-user, namun dipandang dari segi kegunaannya bagi developer. Seperti diketahui, DBMS yang ada saat ini belum ada yang memberikan full source code dari semua komponen yang ada di dalam DBMS. DBMS seperti MySQL memang freeware, namun hal ini hanya berarti bahwa penggunaannya tidak memerlukan biaya license. Namun, source code dari programming logic setiap komponen di dalamnya tidak diberikan. Hasil dari penelitian ini berupa sebuah komponen concurrency control pada RDBMS berbasis XML akan dapat dijadikan sebagai komponen open source di internet. Dengan demikian, developer yang akan mengembangkan RDBMS akan dapat melihat full source code dari programming logic komponen concurrency control ini dan terus mengembangkan kemampuan komponen ini untuk menjadi semakin powerful di dalam DBMS. Seperti diketahui, DBMS seperti Microsoft SQL Server menyimpan data dalam format .MDF dan .LDF. Format data ini, apabila dibuka, misalnya dengan menggunakan textpad, akan menampilkan banyak karakter aneh yang bisa dipahami oleh mesin, namun akan sangat sulit untuk bisa dipahami oleh manusia. Perancangan komponen concurrency control pada RDBMS dalam penelitian ini
5 menggunakan database berbasis XML. Dengan demikian, format XML ini akan dapat dengan mudah dipahami oleh mesin maupun manusia. 1.2
Ruang Lingkup Pembicaraan tentang database akan menyangkut banyak sekali aspek yang perlu ditinjau. Oleh karena itu, perlu diberikan batasan dalam penulisan skripsi ini, dengan harapan bahwa apa yang terdapat pada penulisan ini akan menjadi lebih spesifik. Ruang lingkup yang digunakan pada penulisan ini adalah: •
Pembuatan
komponen
concurrency
control
pada
RDBMS
yang
mengimplementasikan konsep client-server. •
Diasumsikan bahwa database sudah ada dan komponen ini dapat mengatur agar banyak client dapat terhubung ke server sehingga database dapat diakses oleh multi user pada saat bersamaan dengan tetap menjamin konsistensi data.
•
Komponen ini akan memiliki kemampuan menangkap permintaan query yang dikirim secara bersamaan oleh banyak client ke server.
•
Komponen ini dapat melakukan analisis sintaks untuk memastikan query yang dikirim telah mengikuti aturan penulisan sintaks.
•
Pengaksesan database meliputi select, insert, update, dan delete dari single table.
•
Setiap transaksi yang diterima akan dipisahkan ke dalam satu atau banyak operasi dan di dalam setiap operasi dilakukan pemisahan permintaan akses, nama tabel, nama kolom dan syarat yang diajukan di dalam query.
•
Format data yang dibaca berupa format XML.
6
1.3
•
Database yang akan digunakan adalah database model data relasional.
•
Menggunakan Windows Operating System.
•
Tidak meliputi pengontrolan terhadap security database.
•
Tidak membahas konsep two-phase commit.
•
Tidak meliputi join table.
•
Tidak meliputi multiple database.
•
Tidak meliputi distributed database.
Tujuan Dan Manfaat Tujuan dari penelitian ini adalah : •
Merancang komponen concurrency control pada RDBMS berbasis XML.
•
Komponen ini memiliki kemampuan dapat mengatur eksekusi operasi-operasi dalam banyak transaksi agar berjalan secara simultan pada database sehingga dapat menghasilkan data yang konsisten.
•
Komponen ini dapat dijadikan sebagai komponen open source di internet.
Manfaat dari penelitian ini adalah : ● Database dapat diakses oleh multi user. ● Database dapat diakses secara bersamaan. ● Komponen ini dapat mengatasi tiga masalah concurrency yaitu masalah lost update, masalah uncommitted dependency, dan masalah inconsistent analysis. ●
Komponen ini dapat menjamin konsistensi data di dalam database.
●
Penggunaan XML membuat user dapat lebih mudah memahami database.
7 ● Komponen ini dapat digunakan oleh developer untuk pengembangan RDBMS.
1.4
Metodologi Penelitian Metode yang digunakan dalam penelitian ini adalah metode perancangan software menggunakan model waterfall dimana langkah-langkahnya adalah sebagai berikut : •
Software requirement analysis Pada tahap ini, penulis mengumpulkan kebutuhan-kebutuhan untuk merancang suatu perangkat lunak seperti fungsi-fungsi, kemampuan, batasan dan interface dari perangkat lunak yang ingin dibangun. Pengumpulan data dilakukan melalui studi pustaka yang berkaitan dengan concurrency control dengan cara membaca buku, jurnal, dan akses internet.
•
Design Perancangan aplikasi ini meliputi empat atribut berbeda dari sebuah program, yaitu struktur data, arsitektur perangkat lunak, representasi dari interface, dan detail algoritma. Perancangan ini merupakan penerjemahan kebutuhan sistem ke dalam representasi input yang diperlukan, algoritma (proses) yang akan dilakukan dan output yang dihasilkan.
•
Coding Pada tahap ini, penulis menerjemahkan hasil pada tahap design ke bentuk bahasa pemrograman yang bisa dipahami mesin. Pembuatan aplikasi ini menggunakan bahasa pemrograman C# dari Microsoft Visual Studio .NET 2005 dan XML untuk penyimpanan datanya.
8 •
Testing Pada tahap ini, setelah coding selesai dibuat, penulis menguji apakah aplikasi sudah dapat dijalankan dan sesuai dengan kebutuhan. Pengujian akan dilakukan untuk mendapatkan aplikasi yang tepat sasaran dan tepat guna (Pressman, 2001, p29).
1.5
Sistematika Penulisan Sistematika penulisan yang digunakan dalam penulisan skripsi ini dibagi menjadi lima bab yang terdiri atas: BAB 1:
PENDAHULUAN Pada bab ini akan diuraikan latar belakang penelitian yang menjadi dasar pemilihan judul, ruang lingkup penulisan, tujuan dan manfaat yang akan diperoleh dari penulisan skripsi ini, dan metodologi penelitian yang akan digunakan serta sistematika penulisan.
BAB 2:
LANDASAN TEORI Pada bab ini akan diuraikan semua teori-teori yang relevan, yang digunakan sebagai dasar untuk merancang aplikasi.
BAB 3:
ANALISIS DAN PERANCANGAN SISTEM Pada bab ini akan diuraikan mengenai analisis kebutuhan sistem dan perancangan aplikasi yang meliputi perancangan struktur data input, perancangan proses menggunakan UML Model Diagram, dan perancangan layar.
BAB 4:
IMPLEMENTASI DAN EVALUASI
9 Pada bab ini akan diuraikan penjelasan mengenai implementasi dan evaluasi komponen concurrency control pada RDBMS. BAB 5:
SIMPULAN DAN SARAN Pada bab ini akan disimpulkan mengenai hasil uraian pembahasan yang ada pada bab-bab sebelumnya, serta akan diberikan saran-saran perbaikan terhadap komponen yang telah dibuat.