BAB 1 PENDAHULUAN 1.1 Latar Belakang Pertumbuhan besarnya data yang digunakan pada teknologi informasi saat ini berkembang sangat cepat yang sangat mempengaruhi media penyimpanan dan transmisi data. Hal ini disebabkan data dalam bentuk elektronis lebih disukai daripada dalam bentuk konvensional, karena beberapa faktor tertentu seperti masalah keamanan data, kemudahan dalam pemrosesan, pendistribusian maupun modifikasi data. Dalam hal transmisi data, besarnya ukuran data (file) daripada bandwidth juga turut menjadi masalah yang serius, karena memperlambat sampainya data ke tujuan. Sedangkan dalam proses upload dan download juga akan semakin memakan waktu. Sehingga komputer tidak dapat digunakan nutuk kebutuhan lain secara maksimal, karena harus selalu berhadapan dengan masalah besarnya ukuran data. Maka salah satu alternatif yang digunakan untuk mengatasi masalah di atas adalah dengan melakukan kompresi data sehingga ukurannya menjadi lebih kecil dari ukuran semula, dimana data yang dimaksudkan bisa berupa file teks, gambar, suara maupun video. Untuk melakukan kompresi data, telah banyak algoritma yang dikembangkan dengan teknik pengompresian yang berbeda-beda, namun sayang sekali tidak ada satupun algoritma kompresi tersebut yang baik untuk mengompresi berbagai tipe file, hal ini disebabkan karena karakteristik atau struktur setiap file berbeda-beda, sedangkan kebanyakan algoritma kompresi data memanfaatkan struktur file tersebut dalam proses kompresi, akibatnya hanya pada file tertentu saja mungkin suatu algoritma lebih efektif dari yang lainnya. Untuk itu, dalam penelitian ini penulis akan membandingkan tiga algoritma kompresi data, yaitu Lempel Ziv Welch (LZW), Arithmetic Coding, dan Run-Length Encoding (RLE). Algoritma-algoritma ini dipilih karena algoritma tersebut bersifat
2 lossless dan umumnya digunakan pada file-file teks, dimana dua algoritma pertama merupakan perwakilan dan pengembangan dari masing-masing kategori kompresi dengan teknik pengkodean yang berbeda, dimana LZW adalah algoritma kompresi berbasis dictionary yang merupakan pengembangan dari algoritma Lempel Ziv 77 (LZ77) dan Lempel Ziv 78 (LZ78). Arithmetic Coding adalah algoritma berbasis entropy yang bahkan telah berhasil menggantikan algoritma Huffman Coding. Sedangkan algoritma RLE memiliki teknik pengkodean yang berbeda dari kedua algoritma di atas. Algoritma RLE adalah algoritma yang memanfaatkan deretan karakter yang sama secara berurutan. Namun, pada kenyataanya file teks jarang memiliki deretan karakter yang sama secara berurutan, sehingga algoritma ini sebenarnya kurang efektif digunakan untuk mengompresi file teks. Untuk itu, dibutuhkan suatu algoritma yang akan mentransformasikan data teks terlebih dahulu ke bentuk lain yang lebih mudah dikompresi oleh algoritma RLE. Dalam penelitian ini, algoritma transformasi yang dibahas adalah algoritma Burrows-Wheeler Transform (BWT). Sehingga algoritma RLE akan menjadi lebih efektif dan memiliki daya saing dengan algoritma LZW maupun dengan algoritma Arithmetic Coding. Algoritma-algoritma ini hanya akan diimplementasikan untuk mengompresi file plain text ASCII (.txt) saja, karena file tersebut merupakan salah satu file standar yang umum digunakan untuk membandingkan algoritma-algoritma kompresi. Untuk menentukan algoritma yang lebih optimal dalam mengompresi file tersebut, maka parameter yang digunakan untuk analisis perbandingan algoritma ini adalah kompleksitas algoritma yang dihitung menggunakan Big-O, waktu yang dibutuhkan selama proses kompresi dan dekompresi, dan rasio kompresi. 1.2 Rumusan Masalah Berdasarkan latar belakang di atas, maka dapat dirumuskan masalah-masalah sebagai berikut: 1. Bagaimana algoritma-algoritma tersebut melakukan encoding dan decoding dalam proses kompresi dan dekompresi file teks serta mengaplikasikanya ke dalam program komputer.
3 2. Bagaimana perbandingan algoritma LZW, Arithmetic Coding dan RLE dilihat dari segi kompleksitas algoritma. 3. Algoritma mana yang lebih optimal untuk kompresi file teks berdasarkan rasio kompresi dan kecepatan selama proses kompresi dan dekompresi. 1.3 Batasan Masalah Agar penelitian ini lebih fokus dan terarah, maka penulis membatasi pembahasan masalah sebagai berikut: 1. Algoritma yang akan dibahas dalam penelitian ini adalah LZW, Arithmetic Coding, dan RLE untuk menemukan perbandingannya. 2. Algoritma RLE akan dibantu oleh BWT, agar algoritma tersebut lebih efektif. 3. File uji yang akan digunakan untuk kompresi adalah tipe file plain text ASCII (*.txt). 4. Parameter yang akan digunakan untuk analisis perbandingan setiap algoritma adalah kompleksitas algoritma (diukur dengan notasi Big-O), waktu yang dibutuhkan untuk proses kompresi atau dekompresi, dan ratio kompresi. 5. Bahasa pemrograman yang digunakan untuk implementasi algoritma adalah Borland Delphi 7.0. 1.4 Tujuan Penelitian Adapun yang menjadi tujuan dari penelitian ini adalah: 1. Untuk mengetahui perbandingan kompleksitas dari setiap algoritma dalam proses kompresi muapun dekompresi pada file teks. 2. Untuk membuat perangkat lunak yang mengimplementasikan algoritma LZW, Arithmetic Coding, dan RLE+BWT sehingga dapat dilakukan analisis statistik
4 untuk menemukan perbandingan setiap algoritma berdasarkan kecepatan kompresi atau dekompresi, dan rasio kompresi. 3. Dengan tercapainya tujuan pada poin 1 dan 2, maka akan dapat diketahui algoritma mana yang lebih efektif untuk kompresi file teks. 1.5 Manfaat Penelitian Manfaat yang dapat diambil dari penelitian ini adalah penelitian ini diharapkan dapat membantu para implementer kompresi data untuk memilih algoritma yang lebih optimal untuk kompresi file teks dengan mempertimbangkan parameter-parameter dari setiap algoritma yang dibandingkan. Selain itu, dari penelitian ini juga dapat diketahui cara kerja serta kekurangan dan kelebihan setiap algoritma, sehingga dapat menjadi konsep dasar untuk perancangan atau pengembangan algoritma kompresi data. 1.6 Diagram Konsepsi Gambar 1.1 Diagram Konsepsi
5 1.7 Metodologi Penelitian Metode-metode yang akan digunakan dalam penelitian ini adalah: 1. Studi Literatur Pada tahap ini, penulis mengumpulkan dan mempelajari segala informasi yang berhubungan dengan penelitian ini, seperti teori-teori tentang algoritma kompresi data dan teori lainnya yang bersumber dari buku, artikel, jurnal, makalah, maupun situs-situs internet. 2. Perancangan Sistem Pada tahap ini akan dilakukan perancangan sistem berupa desain interface dan struktur program yang akan digunakan untuk implementasi setiap algoritma. Selain itu dilakukan juga analisis setiap algoritma berupa penghitungan kompleksitas setiap algoritma. 3. Implementasi Sistem Sistem yang telah dirancang akan diimplementasikan ke dalam bentuk perangkat lunak dengan menggunakan pemrograman Borland Delphi 7.0. 4. Pengujian dan Analisis Sistem Sistem yang telah jadi akan diuji untuk melihat apakah sistem tersebut mengalami kesalahan atau tidak. Perbaikan akan dilakukan sekiranya pada sistem terdapat kesalahan. Selain itu akan dilakukan juga analisis untuk menemukan perbandingan setiap algoritma. 5. Dokumentasi sistem Penulisan laporan Tugas Akhir dengan analisis yang telah diperoleh.
6 1.8 Sistematika Penulisan Sistematika penulisan dari skripsi ini terdiri dari beberapa bagian utama sebagai berikut: BAB I : PENDAHULUAN Bab ini menjelaskan mengenai latar belakang masalah pemilihan judul, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian, dan sistematika penulisan skripsi. BAB II : LANDASAN TEORI Bab ini membahas mengenai dasar teori tentang algoritma kompresi LZW, Arithmetic Coding, RLE, transformasi BWT, dan teori Big-O yang digunakan untuk membandingkan kompleksitas setiap algoritma. BAB III : PERANCANGAN DAN IMPLEMENTASI SISTEM Bab ini menguraikan tentang perancangan sistem yang meliputi perancangan setiap algoritma serta analisis untuk menentukan kompleksitasnya, dan interface sistem. Kemudian hasil rancangan tersebut akan diimplementasikan dengan bahasa pemrograman Borland Delphi. BAB IV : ANALISIS DAN PENGUJIAN SISTEM Bab ini berisi tentang pengujian sistem yang telah diimplementasikan sekaligus melakukan analisis perbandingan kinerja setiap algoritma. BAB V. KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dari uraian bab-bab sebelumnya dan hasil penelitian yang diperoleh, serta saran-saran yang diharapkan dapat bermanfaat untuk pengembangan selanjutnya.