1 UNIVERSITAS BINA NUSANTARA Jurusan Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil tahun 2005/2006 PERANCANGAN ALAT BANTU BACKUP DAN RESTORE MENGGUNAKAN ALGORITMA KOMPRESI XMILL, LZ77, DAN HUFFMAN PADA RDBMS BERBASIS XML Henry Soedjatmiko 0700679026 Richard Kristian 0700679045 Rudy Kristanto 0700679215 Abstrak Tujuan dari penelitian ini adalah merancang sebuah alat bantu yang mempunyai kemampuan melakukan backup dan restore terhadap sebuah RDBMS yang berbasis XML. Backup berfungsi membuat salinan basis data yang berukuran lebih kecil dari aslinya. Hasil backup ini nantinya dapat digunakan untuk mengembalikan basis data seperti semula apabila terjadi kerusakan pada basis data. Proses pengembalian basis data tersebut dinamakan restore. Algoritma yang digunakan untuk melakukan kompresi dan dekompresi dalam proses backup dan restore adalah XMill, LZ77, dan Huffman. Metodologi yang digunakan dalam penelitian ini adalah studi literatur, analisis kebutuhan sistem, perancangan aplikasi untuk penyimpanan data, implementasi rancangan dan pembuatan program, dan melakukan evaluasi terhadap program yang telah dibuat. Penelitian ini telah menghasilkan sebuah alat bantu backup dan restore. Dari penelitian ini dapat disimpulkan bahwa perancangan alat bantu backup dan restore ini telah mencapai tujuannya, yaitu membuat salinan basis data dengan cepat dan berukuran kecil serta dapat mengembalikan basis data dari salinan tersebut menjadi basis data yang sama seperti semula. Kata Kunci : backup, restore, basis data, XML, kompresi, XMill, LZ77, Huffman
2 PRAKATA Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas berkat dan rahmat yang diberikannya sehingga penulis dapat menyelesaikan skripsi yang berjudul PERANCANGAN ALAT BANTU BACKUP DAN RESTORE MENGGUNAKAN ALGORITMA KOMPRESI XMILL, LZ77, DAN HUFFMAN PADA RDBMS BERBASIS XML dengan baik. Adapun skripsi ini disusun sebagai salah satu syarat bagi mahasiswa untuk menyelesaikan jenjang pendidikan Strata-1, Jurusan Teknik Informatika di Universitas Bina Nusantara, Jakarta. Tidak sedikit bantuan yang penulis terima dari berbagai pihak demi kelancaran penulisan skripsi ini. Karena itu penulis dengan segala hormat ingin berterima kasih kepada : 1. Prof. Dr. Gerardus Polla. M.App.Sc, selaku Rektor Universitas Bina Nusantara atas semua pendidikan yang telah kami terima selama ini di Universitas Bina Nusantara. 2. Bapak Ir. Sablin Yusuf, M.Sc., M.Comp.Sc, selaku Dekan Fakultas Ilmu Komputer Universitas Bina Nusantara yang telah menyediakan fasilitas-fasilitas sehingga kami dapat menyelesaikan skripsi ini sebagaimana mestinya. 3. Bapak H. Mohammad Subekti, BE, M.Sc. selaku Ketua Jurusan Teknik Informatika dan Bapak Fredy Purnomo, S.Kom, M.Kom selaku Sekretaris Jurusan Teknik Informatika yang telah memberikan kesempatan kepada penulis untuk dapat menyelesaikan skripsi ini.
3 4. Bapak Ashari S.Kom, M.Kom, selaku pembimbing kami yang telah banyak memberikan petunjuk, saran, dan bimbingan dalam penyusunan skripsi ini. 5. Seluruh dosen Universitas Bina Nusantara yang telah memberikan bekal dan tuntutan dalam menyelesaikan gelar kesarjanaan ini. 6. Keluarga dan orang tua yang selalu memberikan dukungan yang tak terkira. 7. Teman-teman dan semua pihak yang telah membantu, yang tidak dapat kami sebutkan satu persatu. Penulis menyadari skripsi ini masih jauh dari sempurna yang disebabkan oleh terbatasnya kemampuan, pengetahuan, dan pengalaman yang dimiliki penulis. Untuk itu semua saran dan kritik yang membangun akan penulis terima dengan senang hati. Akhir kata semoga skripsi ini dapat memberi manfaat bagi semua pihak yang memerlukannya. Jakarta, Januari 2007 Tim Penulis
4 DAFTAR ISI Halaman Judul Luar... Halaman Judul Dalam... i ii Halaman Persetujuan Hardcover... iii Halaman Pernyataan Dewan Penguji... iv Abstrak... vii Prakata... viii Daftar Isi... x Daftar Gambar... xv Daftar Tabel... xviii BAB 1 PENDAHULUAN... 1 1.1 Latar Belakang... 1 1.2 Ruang Lingkup... 2 1.3 Tujuan dan Manfaat Penelitian... 5 1.4 Metodologi Penelitian... 5 1.5 Sistematika Penulisan... 6 BAB 2 LANDASAN TEORI... 8 2.1 Basis Data... 8 2.1.1 Pengertian Data... 8 2.1.2 Pengertian Basis Data... 8
5 2.1.3 Pengertian Basis Data Relasional... 9 2.1.4 Pengertian Database Management System... 10 2.1.5 Pengertian Relational Database Management System... 12 2.2 Backup dan Restore... 12 2.2.1 Pengertian Backup dan Restore... 12 2.2.2 Alasan Diperlukannya Backup... 13 2.2.3 Ancaman Terhadap Data... 14 2.3 XML... 15 2.3.1 Definisi... 15 2.3.2 Keuntungan... 16 2.3.3 Bagian Dokumen XML... 17 2.4 Kompresi Data... 19 2.4.1 Klasifikasi Algoritma Kompresi... 20 2.4.2 Encoding dan Decoding... 22 2.4.3 Rasio Kompresi... 23 2.4.4 XMill... 24 2.4.5 Algoritma LZ77... 27 2.4.6 Algoritma Huffman... 29 2.5 Unified Modelling Language (UML)... 32 BAB 3 PERANCANGAN SISTEM... 35 3.1 Analisis Kebutuhan Sistem... 35 3.1.1 Kebutuhan Fungsional... 35 3.1.1.1 Backup_DB Use Case Description... 37
6 3.1.1.2 Backup_Log Use Case Description... 39 3.1.1.3 Restore_As_New_DB Use Case Description... 41 3.1.1.4 Restore_Existing_DB Use Case Description... 43 3.1.1.5 Restore_Log Use Case Description... 45 3.1.2 Kebutuhan Non-Fungsional... 47 3.2 Alasan Pemilihan Algoritma... 48 3.3 Arsitektur Sistem Modul Backup dan Restore... 49 3.4 Perancangan Proses Backup dan Restore... 54 3.4.1 Backup... 54 3.4.2 Struktur Penyimpanan File Hasil Backup... 87 3.4.3 Restore... 91 3.5 Perancangan Antar Muka... 100 3.5.1 Perancangan Form Backup... 100 3.5.2 Perancangan Form Restore... 101 3.5.3 Perancangan Form Setting Buffer... 102 BAB 4 IMPLEMENTASI DAN EVALUASI... 103 4.1 Implementasi... 103 4.1.1 Spesifikasi Sistem... 103 4.1.2 Arsitektur RDBMS... 106 4.1.3 Instalasi Program... 107 4.1.4 Tata Cara Penggunaan... 114 4.2 Evaluasi... 132 4.2.1 Test Case dan Test Scenario... 134
7 4.2.2 Evaluasi Backup... 136 4.2.2.1 Perbandingan Ukuran File Backup Berdasarkan Buffer... 139 4.2.2.2 Perbandingan Ukuran Basis Data dengan Waktu Backup... 143 4.2.2.3 Perbandingan Ukuran Basis Data dengan Kecepatan Backup... 145 4.2.2.4 Perbandingan Ukuran Basis Data dengan Penggunaan Memori... 147 4.2.2.5 Perbandingan Ukuran Basis Data dengan Penggunaan CPU... 148 4.2.2.6 Kesimpulan Pengujian Backup... 149 4.2.3 Evaluasi Restore... 149 4.2.3.1 Perbandingan Basis Data dengan Hasil Restore (Tes Akurasi)... 152 4.2.3.2 Perbandingan Ukuran Basis Data dengan Waktu Restore... 153 4.2.3.3 Perbandingan Ukuran Basis Data dengan Kecepatan Restore... 155 4.2.3.4 Perbandingan Ukuran Basis Data dengan Penggunaan Memori... 156 4.2.3.5 Perbandingan Ukuran Basis Data dengan Penggunaan CPU... 157 4.2.3.6 Kesimpulan Pengujian Restore... 158
8 BAB 5 SIMPULAN DAN SARAN... 159 5.1 Simpulan... 159 5.2 Saran... 160 DAFTAR PUSTAKA... 161 RIWAYAT HIDUP... 163
9 DAFTAR GAMBAR Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar Arsitektur XMill...Error! Bookmark not Buffer pada LZ77...Error! Bookmark not Gambar Huffman Tree...Error! Bookmark not Contoh Simbol Use Case...Error! Bookmark not Contoh Simbol Actor...Error! Bookmark not Contoh Include...Error! Bookmark not Gambar 3.1 Use Case Diagram Proses Backup dan Restore...36 Gambar 3.2 Arsitektur Sistem Modul Backup Basis DataError! Bookmark not Gambar 3.3 Arsitektur Sistem Modul Restore Basis DataError! Bookmark not Gambar 3.4 Workflow Algoritma Kompresi XMill Secara UmumError! Bookmark not Gambar 3.5 Workflow Algoritma Kompresi XMill Secara RinciError! Bookmark not Gambar 3.6 Gambar 3.7 Gambar 3.8 Workflow Algoritma Kompresi LZ77...Error! Bookmark not Contoh Huffman Tree...Error! Bookmark not Workflow Algoritma Kompresi Huffman.Error! Bookmark not Gambar 3.9 Workflow Algoritma Dekompresi HuffmanError! Bookmark not Gambar 3.10 Workflow Algoritma Dekompresi LZ77..Error! Bookmark not
10 Gambar 3.11 Workflow Algoritma Dekompresi XMill.Error! Bookmark not Gambar 3.12 Tampilan Layar Modul Backup Basis DataError! Bookmark not Gambar 3.13 Tampilan Layar Modul Restore Basis DataError! Bookmark not Gambar 3.14 Tampilan Layar Modul Setting Backup Memory BufferError! Bookmark not Gambar 4.1 Susunan Komponen Dalam Arsitektur RDBMSError! Bookmark not Gambar 4.2 Gambar 4.3 Gambar 4.4 Tampilan Awal Instalasi...Error! Bookmark not Pesan Konfirmasi Pembatalan Instalasi...Error! Bookmark not Tampilan Akhir Pembatalan Instalasi...Error! Bookmark not Gambar 4.5 Layar Pengaturan Lokasi Tujuan InstalasiError! Bookmark not Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Tampilan Pemilihan Tujuan File InstalasiError! Bookmark not Tampilan Disk Cost...Error! Bookmark not Layar Pre-Instalasi Proses...Error! Bookmark not Proses Instalasi...Error! Bookmark not Gambar 4.10 Instalasi Selesai...Error! Bookmark not Gambar 4.11 Tampilan Layar Menu Utama...Error! Bookmark not Gambar 4.12 Tampilan Aplikasi Terhubung ke Server.Error! Bookmark not Gambar 4.13 Tampilan Layar Menu Backup...Error! Bookmark not Gambar 4.14 Tampilan File Open Dialog...Error! Bookmark not Gambar 4.15 Pengisian Path Tujuan File Backup...Error! Bookmark not
11 Gambar 4.16 Tampilan Proses Backup Basis Data...Error! Bookmark not Gambar 4.17 Pesan Proses Backup Selesai...Error! Bookmark not Gambar 4.18 Tampilan Layar Menu Restore Basis DataError! Bookmark not Gambar 4.19 Restore As Existing Database...Error! Bookmark not Gambar 4.20 Restore As New Database...Error! Bookmark not Gambar 4.21 Proses Restore Basis Data...Error! Bookmark not Gambar 4.22 Pesan Tipe File Tidak Sesuai...Error! Bookmark not Gambar 4.23 Pesan Proses Restore Selesai...Error! Bookmark not Gambar 4.24 Tampilan Layar Menu Setting...Error! Bookmark not Gambar 4.25 Tampilan Layar Menu Help...Error! Bookmark not Gambar 4.26 Tampilan Layar Menu About...Error! Bookmark not Gambar 4.27 Tampilan Hasil Evaluasi Backup...Error! Bookmark not Gambar 4.28 Tampilan Hasil Evaluasi Restore...Error! Bookmark not Gambar 4.29 Diagram Perbandingan Ukuran File Backup Berdasarkan Buffer... Error! Bookmark not Gambar 4.30 Grafik Perbandingan Buffer dengan Rasio Kompresi Rata-Rata... Error! Bookmark not Gambar 4.31 Diagram Perbandingan Ukuran Basis Data yang Dibackup dengan Waktu Backup...Error! Bookmark not Gambar 4.32 Grafik Perbandingan Ukuran Basis Data yang Dibackup dengan Kecepatan Backup...Error! Bookmark not Gambar 4.33 Grafik Perbandingan Ukuran Basis Data yang Dibackup dengan Penggunaan Memori...Error! Bookmark not
12 Gambar 4.34 Diagram Perbandingan Ukuran Basis Data yang Dibackup dengan Penggunaan CPU...Error! Bookmark not Gambar 4.35 Grafik Perbandingan Ukuran Basis Data yang Direstore dengan Waktu Restore...Error! Bookmark not Gambar 4.36 Grafik Perbandingan Ukuran Basis Data yang Direstore dengan Kecepatan Restore...Error! Bookmark not Gambar 4.37 Grafik Perbandingan Ukuran Basis Data yang Direstore dengan Penggunaan Memori...Error! Bookmark not Gambar 4.38 Diagram Perbandingan Ukuran Basis Data yang Direstore dengan Penggunaan CPU...Error! Bookmark not
13 DAFTAR TABEL Tabel 2.1 Tabel 3.1a Tabel Contoh Daftar Frekuensi Karakter...Error! Bookmark not Tabel Proses XMill...Error! Bookmark not Tabel 3.1b Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1c Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1d Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1e Tabel 3.1f Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1g Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1h Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1i Tabel 3.1j Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1k Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1l Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1m Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 3.1n Tabel Proses XMill (lanjutan)...error! Bookmark not Tabel 4.1 Tabel 4.2 Tabel 4.3 Tabel 4.4 Tabel 4.5 Hasil Backup dengan Buffer 1 MB...Error! Bookmark not Hasil Backup dengan Buffer 2 MB...Error! Bookmark not Hasil Backup dengan Buffer 3 MB...Error! Bookmark not Hasil Backup dengan Buffer 4 MB...Error! Bookmark not Hasil Backup dengan Buffer 5 MB...Error! Bookmark not
14 Tabel 4.6 Hasil Restore untuk File Backup dengan Buffer 1 MBError! Bookmark not Tabel 4.7 Hasil Restore untuk File Backup dengan Buffer 2 MBError! Bookmark not Tabel 4.8 Hasil Restore untuk File Backup dengan Buffer 3 MBError! Bookmark not Tabel 4.9 Hasil Restore untuk File Backup dengan Buffer 4 MBError! Bookmark not Tabel 4.10 Hasil Restore untuk File Backup dengan Buffer 5 MBError! Bookmark not