PENDAHULUAN
1.1.
Latar belakang Kompresi data merupakan proses pengubahan sekumpulan data menjadi
suatu bentuk kode untuk menghemat kebutuhan space data dan waktu untuk melakukan transmisi data. Berdasarkan tipe peta kode yang digunakan untuk mengubah pesan awal (isi file input) menjadi sekumpulan codeword, metode kompresi dibagi menjadi dua bagian, yaitu: 1. Metode statik: menggunakan peta kode yang selalu sama. Metode ini membutuhkan dua fase (two pass), fase pertama untuk menghitung probabilitas kemunculan tiap simbol karakter dan menentukan peta kodenya. Dan fase kedua untuk mengubah pesan menjadi kumpulan kode yang akan ditransmisikan. Contoh: Algoritma Huffman statik. 2. Metode dinamik (adaptif): Menggunakan peta kode yang dapat berubah dari waktu ke waktu. Metode ini disebut adaptif karena peta kode mampu beradaptasi terhadap perubahan karakteristik isi file selama proses kompresi berlangsung. Metode ini bersifat one pass, karena hanya diperlukan satu kali pembacaan terhadap isi file. Contoh: Algoritma LZW. 3. Berdasarkan teknik pengkodean/ pengubahan simbol yang digunakan, metode kompresi dapat dibagi menjadi tiga kategori yaitu: 4. Metode Symbolwise: Menghitung peluang kemunculan dari tiap simbol dalam file input, lalu mengkodekan satu simbol dalam satu waktu, dimana simbol yang lebih sering muncul diberi kode lebih pendek dibandingkan simbol yang lebih jarang muncul, contoh: Algoritma Huffman. 5. Metode Dictionary: Menggantikan karakter/ fragmen dalam file input dengan indek lokasi dari karakter/fragmen tersebut dalam sebuah kamus (Dictionary), contoh: Algoritma LZW. 6. Metode Predictive: Menggunakan model finite-context atau finite-state untuk memprediksi distribusi probabilitas dari simbol-simbol selanjutnya, contoh: Algoritma DMC.
1
Ada beberapa faktor yang sering menjadi pertimbangan dalam memilih suatu metode kompresi yang tepat, yaitu kecepatan kompresi, sumber daya yang dibutuhkan (memori, kecepatan PC), ukuran file hasil kompresi, besarnya redundansi, dan kompleksitas algoritma. Tidak ada metode kompresi yang paling efektif untuk semua jenis file. Dari beberapa faktor diatas diputuskan untuk mengambil parameter kecepatan kompresi, dan rasio kompresi. Alasannya diambil dua parameter diatas adalah karena kebanyakan user dalam menggunakan aplikasi kompresi lebih menitikberatkan pada cepat atau tidaknya suatu algoritma kompresi dalam mengeksekusi suatu file dan baik atau tidaknya rasio kompresi yang dihasilkan.
1.2.
Perumusan masalah Berdasarkan latar belakang yang dikemukakan di atas, maka masalah yang
akan diteliti adalah: 1. Bagaimana mentransformasi berbagai tipe file menjadi file hasil kompresi dengan menggunakan algoritma Huffman, LZW, dan DMC. 2. Bagaimana menentukan kehandalan ketiga algoritma diatas dibandingkan dengan tool kompresi yang sudah ada. 3. Bagaimana cara menentukan keoptimalan algoritma diatas pada file-file yang akan diujikan berdasarkan parameter kecepatan kompresi dan rasio kompresi.
1.3.
Tujuan Berdasarkan permasalahan di atas, tujuan tugas akhir ini adalah:
1. Membuat aplikasi kompresi data dengan menggunakan teknik huffman, LZW, dan DMC. 2. Menganalisis kinerja algoritma kompresi diatas pada berbagai tipe file berdasarkan parameter kecepatan kompresi dan rasio kompresi. 3. Menentukan algoritma yang optimal untuk file-file uji tertentu.
2
4. Menganalisis mengapa suatu algoritma optimal untuk suatu file uji tertentu.
1.4
Batasan Masalah Batasan masalah pada tugas akhir ini adalah sebagai berikut: 1
Aplikasi yang dibangun akan melakukan proses kompresi data pada: a) File teks (doc, txt). b) File aplikasi (excell, acobat reader, power point). c) File yang telah dikompresi sebelumnya dengan winrar. d) File executable, dalam lingkungan window. e) File Gambar: file bitmap. f) File multi media (mpeg/mpg, mp3, avi).
1.5
Metodologi Metodologi yang dilakukan dalam tugas akhir ini mencakup hal-hal
sebagai berikut: 1. Mengumpulkan bahan-bahan referensi yang akan menunjang proses penelitian, seperti jurnal-jurnal tentang kompresi, Huffman, LZw, DMC dan semua yang berkaitan dengan kompresi. Selain dari jurnal-jurnal tersebut, penulis juga mengumpulkan bahan dari TA terdahulu yang membahas kompresi. 2. Studi literatur tentang kompresi, algoritma Huffman, LZW, dan DMC yang merupakan tahap pendalaman materi. 3. Identifikasi permasalahan yang akan muncul pada saat melakukan penelitian ini, seperti melakukan kompilasi terhadap algoritm-algoritma diatas dan kesulitan untuk menerapkan teori-teori yang ada dalam proses penelitian nantinya. 4. Menentukan delapan jenis file uji dengan ukuran yang bervariasi 5. Membuat rancangan sistem untuk melakukan proses kompresi dengan menggunakan ketiga algoritma diatas
3
6. Merancang program berdasarkan algoritma yang telah dibuat dan mengimplementasikannya kedalam bahasa pemrograman Visual C++. 7. Melakukan analisa hasil implementasi kompresi dengan ketiga algoritma diatas, untuk mengetahui kinerjanya. 8. Membuat kesimpulan dari hasil penelitian kompresi dengan ketiga algoritma di atas.
1.6
Sistematika Penulisan Tugas Akhir ini akan disusun berdasarkan sistematika penulisan sebagai
berikut: BAB I
: Pendahuluan Menguraikan mengenai latar belakang dari sistem aplikasi yang akan dibangun, perumusan masalah yang akan dianalisa, tujuan dari pembuatan sistem ini, pembatasan dari masalah yang terjadi, menentukan metodologi pemecahan serta sistematika penulisan.
BAB II : Landasan Teori Merupakan keseluruhan teori yang mendukung pembuatan pengembangan aplikasi ini antara lain meliputi teori-teori serta konsep dari Kompresi Huffman, LZW, dan DMC. BAB III : Analisa Kebutuhan dan Perancangan Sistem Berisi tentang hasil analisa terhadap seluruh sistem dan kebutuhan perangkat lunak. Juga membahas mengenai rancangan dari sistem, seperti rancangan interface, algoritma yang akan digunakan. BAB IV : Implementasi dan Analisa Hasil Pengujian Merupakan Implementasi dari Sistem Aplikasi yang akan dibuat seperti, proses kompresi data dengan parameter kecepatan kompresi dan rasio kompresi untuk membuktikan keandalan dari ketiga algoritma diatas. BAB V : Kesimpulan dan Saran
4
Kesimpulan dari keseluruhan rangkaian pengerjaan dan penelitian pada Tugas Akhir yang dilakukan serta saran untuk perbaikan kedepannya.
5