BAB 1 PENDAHULUAN 1.1 Latar Belakang Perkembangan teknologi saat ini membuat kebutuhan suatu sistem penyimpanan data yang baik semakin meningkat. Dahulu data disimpan dalam bentuk file-file yang terpisah sehingga mengakibatkan kesulitan saat mencari suatu data. Oleh karena itu diciptakan konsep penyimpanan data dalam bentuk basis data. Basis data adalah kumpulan data – data yang berhubungan yang dibutuhkan oleh suatu organisasi (Connolly, 2002, p 14). Kemudian, diciptakan pula sebuah konsep model data relasional yang digunakan pada basis data relasional yang menyimpan data di dalam relasi-relasi. Untuk memudahkan pengguna mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data, dibuatlah suatu sistem piranti lunak yang dinamakan Database Management System (DBMS). DBMS yang digunakan untuk basis data relasional disebut Relational Database Management System (RDBMS). Suatu DBMS yang baik, selain dapat menyimpan, menampilkan, dan memanipulasi data, juga harus mempunyai kemampuan untuk backup dan restore. Backup adalah suatu proses mengambil seluruh atau sebagian data dari basis data dan menyimpannya dalam suatu tempat penyimpanan yang lain. Sedangkan restore adalah proses mengembalikan basis data yang telah dibackup sebelumnya ke dalam sistem basis data. Restore dibedakan menjadi dua macam, restore 1 2 transaksi dan restore secara fisik. Skripsi ini membahas hanya mengenai restore secara fisik. Hal ini sangatlah penting, sebab seringkali terjadi hal-hal yang berada di luar dugaan seperti kerusakan piranti lunak dan perangkat keras, tindakan perusakan oleh manusia, bencana alam, dan lain-lain. Jika hal-hal tersebut terjadi dan telah dilakukan backup sebelumnya, maka dapat diatasi dengan cara restore. Backup dan restore basis data memiliki peran yang sangat penting dalam sebuah DBMS, sehingga dilakukan berbagai macam penelitian untuk mengembangkan dan meningkatkan kinerja proses backup dan restore tersebut. Salah satu penelitian tersebut adalah penelitian yang dilakukan oleh IBM yang berjudul Coordinated Backup and Recovery between Database Management Systems and File Systems. Penelitian ini membahas tentang cara backup sebuah basis data ke dalam sebuah server file. Hal ini dilakukan dengan cara membuat hubungan (linkage) antara data di dalam basis data dengan file yang ada di server file. Proses backup ini dijalankan secara asynchronous sehingga proses transaksi terhadap basis data masih dapat dijalankan. Penelitian tersebut telah diimplementasikan pada salah satu produk IBM yaitu IBM DB2/DataLinks. Dengan adanya penelitian-penelitian yang berupaya untuk mengembangkan kinerja dari backup dan restore itulah, maka topik backup dan restore sistem basis data ini menjadi penting dan sangat berguna bagi kelangsungan kinerja DBMS. Banyaknya bahaya dan ancaman baik yang disengaja ataupun yang tidak disengaja, membuat peranan dari proses backup dan restore menjadi semakin signifikan. 3 1.2 Ruang Lingkup Pada penelitian ini, hanya akan dijelaskan mengenai perancangan dan implementasi pembuatan komponen dari suatu RDBMS yang berfungsi untuk membackup basis data atau log transaksinya dan untuk merestore kembali basis data beserta log transaksinya tersebut. Format data dari basis data yang akan dibackup adalah dalam bentuk XML. Proses backup akan melakukan kompresi terhadap data tersebut dengan menggunakan algoritma XMill, LZ77, dan Huffman. Hasil kompresi data disimpan dalam bentuk binari sesuai dengan keluaran dari algoritma Huffman. Nantinya data binari ini akan dapat direstore kembali dengan proses dekompresi menjadi data XML untuk mengembalikan basis data. Basis data yang digunakan dalam penelitian ini adalah basis data yang bersifat relasional. Sedangkan RDBMS yang digunakan adalah RDBMS baru yang sedang dikembangkan. Nantinya modul backup dan restore basis data yang dibuat akan melengkapi RDBMS tersebut sehingga menjadi sebuah RDBMS yang lengkap. Modul backup dan restore basis data ini dibatasi hanya berjalan untuk sistem operasi Windows. Hal ini dikarenakan pembuatan aplikasi menggunakan bahasa Visual Basic 2005 dan Visual C# 2005 yang sampai saat ini hanya bisa berjalan di atas sistem operasi Windows. Agar proses backup dan restore dapat berjalan, diperlukan pengaturan jalannya transaksi dari basis data yang disebut dengan concurrency. Modul concurrency ini telah tersedia dalam RDBMS yang akan digunakan, sehingga dapat langsung dipakai untuk proses backup dan restore. Modul ini digunakan 4 untuk menunda semua transaksi yang datang ketika proses backup atau restore terjadi pada basis data. Setelah proses restore selesai, maka sistem melakukan commit terhadap semua transaksi yang belum dicommit. Modul yang digunakan untuk melakukan proses commit tersebut juga telah tersedia dalam RDBMS. Berikut ini adalah gambaran umum kinerja modul yang dibuat dalam skripsi ini. Cek Concurrency File Fisik Basis Data (XML) Kompresi Data File Backup Proses Backup Basis Data Cek Concurrency File Log Transaksi (XML) Kompresi Data File Backup Proses Backup Log Transaksi Gambar 1.1 Kinerja Proses Aplikasi Backup Cek Concurrency File Fisik Basis Data (XML) Dekompresi Data File Backup Proses Restore Basis Data Cek Concurrency File Backup Dekompresi Data File Log Transaksi (XML) Proses Restore Log Transaksi Gambar 1.2 Kinerja Proses Aplikasi Restore Commit Transaction 5 1.3 Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah merancang sebuah alat bantu backup dan restore untuk suatu RDBMS yang berbasis XML. Rancangan ini akan diimplementasikan pada sebuah working prototype yang memiliki kemampuan untuk membackup data dan log dari sebuah basis data. File backup yang dihasilkan harus berukuran lebih kecil untuk mengefisienkan penggunaan tempat penyimpanan data. Selain memiliki kemampuan backup, working prototype ini juga memiliki kemampuan untuk merestore data dan log dari file backup yang telah dibuat sebelumnya. Working prototype ini diharapkan dapat menciptakan hasil backup dengan ukuran file yang lebih kecil dan proses backup dan restore yang cepat. Manfaat dari penelitian ini adalah untuk melengkapi RDBMS yang disebutkan di atas sehingga memiliki rancangan alat bantu backup dan restore yang dapat membuat salinan data dan kemudian dapat menggunakan salinan data tersebut untuk mengembalikan keadaan basis data seperti semula jika terjadi kerusakan pada basis data. 1.4 Metodologi Penelitian Dalam penulisan skripsi ini digunakan teknik penelitian sebagai berikut : • Studi literatur Mempelajari beberapa literatur dari buku dan internet yang berhubungan dengan backup dan restore RDBMS serta algoritma kompresi data khususnya untuk data dalam format XML. 6 • Analisis kebutuhan sistem Menganalisis kebutuhan dari komponen backup dan restore dengan mempelajari dari RDBMS yang sudah ada dan buku-buku yang relevan. Kemudian analisis ini digambarkan menggunakan use case. • Perancangan aplikasi untuk penyimpanan data Dalam perancangan aplikasi ini termasuk perancangan untuk input yang diperlukan, algoritma (proses) yang akan dilakukan, dan output yang dihasilkan dengan menggunakan model diagram UML (Unified Modelling Language). • Implementasi Rancangan dan Pembuatan Program Menggunakan hasil perancangan sebagai dasar pembuatan working prototype dan mengimplementasikannya ke dalam RDBMS. • Evaluasi Menguji working prototype yang telah dibuat dan menggabungkan dengan modul-modul lain pada RDBMS sehingga terbentuk RDBMS yang lengkap dan berjalan dengan baik. 1.5 Sistematika Penulisan Sistematika penulisan yang digunakan dalam skripsi PERANCANGAN ALAT BANTU BACKUP DAN RESTORE MENGGUNAKAN ALGORITMA KOMPRESI XMILL, LZ77, DAN HUFFMAN PADA RDBMS BERBASIS XML ini dibagi menjadi lima bab yang terdiri dari : 7 BAB 1: PENDAHULUAN Bab ini berisi penjelasan latar belakang penelitian yang menjadi dasar pemilihan judul, termasuk tujuan dan manfaat yang akan diperoleh dari penulisan skripsi ini, ruang lingkup penulisan, dan metodologi penelitian yang akan digunakan serta sistematika penulisan. BAB 2: LANDASAN TEORI Dalam bab ini akan diuraikan semua teori-teori yang relevan, yang digunakan sebagai dasar untuk merancang aplikasi. BAB 3: PERANCANGAN SISTEM Pada bab ini berisi perancangan backup dan restore basis data dengan menggunakan algoritma kompresi XMill, LZ77, dan Huffman. BAB 4: IMPLEMENTASI DAN EVALUASI Bab ini berisi penjelasan mengenai cara penggunaan aplikasi backup dan restore basis data, serta berbagai pengujian dan evaluasi terhadap kinerja aplikasi backup dan restore. BAB 5: SIMPULAN DAN SARAN Pada bab ini akan disimpulkan mengenai hasil uraian pembahasan yang ada pada bab-bab sebelumnya dan akan diberikan saran-saran perbaikan terhadap aplikasi yang sudah dibuat.