Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009.
USU Repository © 2009
2.2 Metode Kompresi
Terdapat banyak metode kompresi dan metode-metode tersebut dapat dibagi menjadi: 1. Metode Lossless
Menurut Mengyi 2006, hal:5 kompresi lossless adalah kompresi data yang menghasilkan file data hasil kompresi yang dapat dikembalikan menjadi file
data asli sebelum dikompresi secara utuh tanpa perubahan apapun. Kompresi jenis ini ideal untuk kompresi teks. Algoritma yang termasuk dalam metode
kompresi lossless diantaranya adalah dictionary coding dan huffman coding.
2. Metode Lossy Menurut Mengyi 2006, hal:6 kompresi data yang menghasilkan file data hasil
kompresi yang tidak dapat dikembalikan menjadi file data sebelum dikompresi secara utuh. Ketika data hasil kompresi di-decode kembali, data hasil decoding
tersebut tidak dapat dikembalikan menjadi sama dengan data asli tetapi ada bagian data yang hilang.
2.3 Rasio Kompresi
Menurut Mengyi 2006, hal:11 rasio kompresi adalah ukuran dari output stream dibagi dengan ukuran dari input stream. Misalnya nilai rasio kompresi adalah 0.6 itu
berarti data yang terkompres menggunakan hanya 60 dari ukuran sebenarnya. Dan nilai rasio kompresi yang lebih dari 1 berarti data yang dikompres malah membesar.
Rasio = 100
_ _
_ _
×
asli
file Ukuran
i terkompres
file Ukuran
2.1
2.4 Dictionary Coding
Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009.
USU Repository © 2009
Menurut Mengyi 2006, hal:117 Dictionary Coding adalah metode yang menggunakan sekumpulan daftar frase kamus, yang diharapkan berisikan banyak
frase yang terdapat pada file sumber, dimana kamus digunakan untuk menggantikan fragmen dari sumber dengan pointer kamus tersebut. Kompresi hanya dapat dilakukan
jika pointer yang dibutuhkan kurang dari ukuran fragmen tersebut. Dalam banyak hal, metode dictionary lebih mudah dimengerti daripada metode probabilistik.
Metode dictionary yang termudah dibuat adalah metode dengan menggunakan kamus yang tetap statis dimana kamus ini telah ada pada coder dan decoder. Untuk
file teks misalnya teks bahasa inggris, beberapa ribu kata yang paling sering digunakan sebagai dictionary. Jika file sumber adalah file yang berisi kode sumber
sebuah bahasa pemrograman tertentu misalnya bahasa C, maka daftar keyword dan standard library function dapat digunakan sebagai dictionary. Dictionary yang tetap
statis lebih baik untuk situasi tertentu, tetapi setidaknya terdapat dua permasalahan serius. Penambahan, perubahan, penghapusan pada dictionary harus mengubah juga
seluruh program kompresi yang telah tersebar luas. Permasalah kedua adalah dictionary yang statis tidak dapat melakukan kompresi pada teks yang tidak terdapat
pada dictionary. Misalnya bahasa pemrograman C, dimana kompresi tidak dapat dilakukan pada nama variabel yang dibuat oleh programer Hankerson et al, 2003.
Hal yang terpenting pada metode Dictionary adalah bagaimana menciptakan algoritma yang dapat mengadaptasi seluruh jenis file sumber, dan biasanya untuk
melakukan harus dilakukan scan pada file tersebut. Akan tetapi, komunikasi melalui modem yang misalnya V.42bis dimana penggunaan dictionary yang statis tidak
digunakan melainkan penambahan dictionary akan dilakukan secara on-the-fly Hankerson et al, 2003.
Metode Adaptive dictionary ditemukan oleh Ziv dan Lempel pada tahun 1977 dan 1978. Sehingga kedua algoritma tersebut kemudian dikenal luas sebagai LZ77 dan
LZ78. Algoritma LZ77 telah diaplikasikan pada Lharc, PKZIP, GNU zip, Info-ZIP, dan Portable Network Graphics PNG yaitu format kompresi citra lossless yang
Fahrur Razi : Analisis Pengaruh Panjang Bit Kode Pada Kinerja Program Kompresi Yang Menggunakan Algoritma Lempel Ziv Welch LZW, 2009.
USU Repository © 2009
didesain sebagai penerus dari GIF. Algoritma LZ78 telah digunakan pada standar komunikasi modem V.42bis, dan program kompres Unix bernama compress, dan
pada GIF format file citra Hankerson et al, 2003.
Algoritma Lempel Ziv ini terbagi atas dua varian utama yaitu LZ77 dan LZ78. Perbedaan utama kedua algoritma ini adalah pada teknik pembuatan dictionary. Pada