Professional Documents
Culture Documents
Abstract
Data transmission and data storage cost money. The more information being dealt with, the
higher the cost is needed. In spite of this, most digital data are not stored in the most
compact form. Rather, they are stored in whatever way makes them easiest to use, such as:
ASCII text from word processors, binary code that can be executed by a computer, etc.
Typically, these easy-to-use encoding methods require larger size data files than they
actually need to represent the information. Data compression is the general term for the
various algorithms and programs developed to address this problem. The aim of data
compression is to reduce redundancy in stored data or transmitted data, thus increasing
effective data density. A compression program is used to convert data from an easy-to-use
format to one optimized for compactness. In this paper, we examine and analyze two basic
methods in data compression called Run Length Encoding and Arithmetic coding. A
framework for evaluation and comparison of these two methods is constructed and applied
to the algorithms presented. Comparisons of both theoretical and empirical natures are
briefly reported in this paper. The compression programs for these two methods of data
compression are developed using Java programming language. The program is used to
compress number of different sizes document type files to measure the time spent for the
compression, the time to reconstruct and the size of the compressed data files to get the
compression ratio. The result indicated that arithmetic coding method has compression ratio
1,14 up to 2,61 higher than run length encoding while it takes times 1,114 –1,564 and 2,85 –
5,635 longer than time needed by Run Length encoding methods. We can conclude that there
are typical tradeoffs between the amount of compression, the runtime, and the quality of the
reconstruction. Depending on the application, one might be more important than another
and one would want to pick the method appropriately.
Keywords: Kompresi Data, Run Length Encoding, Arithmetic Coding, Compression ratio.
1. PENDAHULUAN
Perkembangan ilmu pengetahuan dan teknologi, khususnya
Teknologi Informasi dan Telekomunikasi atau disingkat ICT, jumlah
maupun ukuran file data yang diproses maupun yang ditransmisikan
melalui jaringan komputer juga semakin meningkat. Hal ini menimbulkan
permasalahan tersendiri. Terbatasnya bandwidth serta kecepatan dalam
pengambilan dan pengiriman file data melalui jaringan global internet atau
yang dikenal dengan download / upload seringkali merupakan pekerjaan
Hal ini semakin sering terjadi bila ukuran file data tersebut semakin
besar dan kecepatan koneksi jaringan internet terbatas. Salah satu alternatif
pemecahan masalah yang mungkin dilakukan adalah dengan melakukan
kompresi pada data sehingga data tersebut menjadi lebih kecil ukurannya
dan akibatnya proses pengambilan atau pengiriman akan menjadi lebih
cepat jika data tersebut dikirim atau diterima melalui media internet (Debra
A. Lelewer & Daniel S. Hirschberg, 2005: 7:07:03 AM).
38
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
39
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
data yang sifatnya lebih umum dari yang lainnya banyak dipakai pada
algoritma kompresi data yang memanfaatkan sifat ini. Hal ini dinamakan
redudancy. Makin besar redudancy di dalam data makin tinggi pula tingkat
keberhasilan kompresi data. Dalam proses kompresi data, terdapat konsep
umum probabilitas yang menunjukkan suatu ukuran berapa banyak
informasi yang terdapat dalam suatu rangkaian data atau yang disebut
dengan entropy yang dapat direpresentasikan secara matematis (Blelloch,
2005: 6:25:12 AM), (Debra A. Lelewer & Daniel S. Hirschberg, 2005:
7:07:03 AM) sebagai berikut:
1
H ( S ) Pi log 2 (1)
i Pi
dimana
Pi = probabilitas dari simbol
1
log 2 = Jumlah informasi yang terdapat dalam suatu simbol
Pi
1
H (S) =
s{ a ,b , c , d }
P (s) log 2
P( s)
1 1
= ( 0.5 log2 ) + ( 0.25 log2 )+
0.5 0.25
1 1
0.125 log2 ) + ( 0.125 log2 )
0.125 0.125
= 0.5 * log2 2 + 0.25 * log2 4 + 0.125 * log2 8 + 0.125 *
log2 8
= 0.5 + 0.5 + 0.375 + 0.375
= 1,75 Bits / simbol
40
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
Output dari arithmetic coding ini adalah satu angka yang lebih kecil
dari 1 dan lebih besar atau sama dengan 0. Angka ini secara unik dapat
didekompresikan sehingga menghasilkan deretan simbol yang dipakai
untuk menghasilkan angka tersebut (Ian H. Willen, Radford M. Neal dan
John G Cleary, 1987: 520–540). Untuk menghasilkan bilangan output
tersebut, tiap simbol yang akan dikompresi diberi satu set nilai probabilitas.
Contoh, andaikan kata TRISAKTI dalam suatu file data akan dikompres,
maka nilai probabilitas dari tiap-tiap huruf yang ada seperti dijumpai pada
tabel 1.
41
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
Dari tabel 2, perlu dicatat bahwa tiap karakter melingkupi range yang
disebutkan kecuali bilangan yang tinggi. Jadi karakter T sesungguhnya
mempunyai range mulai dari 0.75 sampai dengan 0.99999999999.
42
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
T T
0,75
S S
0,883789062
R R
0,875
K K
I I I
0,87890625
A A
Dari proses ini didapatkan nilai low = 0.883846759 nilai inilah yang
dipakai sebagai output untuk kata TRISAKTI dalam suatu file data. Dalam
implementasi ke dalam suatu program dengan teknik Arithmetic Coding
seperti di atas, memiliki keterbatasan dalam pengolahan floating point nilai
43
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
code range pada proses kompresi dan dekompresi data yang terlalu
panjang.
High = 999999
Low = 000000
44
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
45
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
Deretan data sebelah kiri merupakan deretan data pada file asli,
sedangkan deretan data sebelah kanan merupakan deretan data hasil
pemampatan dengan algoritma Run Length Encoding.
46
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
3. Berikan bit penanda pada file kompresi, bit penanda disini berupa 8
deretan bit yang boleh dipilih sembarang asalkan digunakan secara
konsisten pada seluruh bit penanda hasil kompresi. Bit penanda ini
berfungsi untuk menandai bahwa karakter selanjutnya adalah karakter
yang dikompresi sehingga tidak membingungkan pada saat
mengembalikan file yang sudah dikompresi ke file aslinya. Pada contoh
di atas bit penanda ini dipilih 11111110.
4. Tambahkan deretan bit untuk menyatakan jumlah karakter yang sama
berurutan, pada contoh diatas karakter yang sama berturutan sebanyak
delapan kali, jadi diberikan deretan bit 00001000 (8 desimal).
5. Tambahkan deretan bit yang menyatakan karakter yang berulang, pada
contoh diatas karakter yang berulang adalah 01000001 atau karakter A
pada karakter ASCII.
47
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
48
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
49
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
2
Waktu ( detik )
1,5
1
0,5
0
107,52 204,8 301,056 404,992 505,344
Ukuran file (byte)
50
40
Rasio (%)
30
20
10
0
107,52 204,8 301,056 404,992 505,344
Ukuran file (byte)
7
6
waktu (detik)
5
4
3
2
1
0
107,52 204,8 301,056 404,992 505,344
Ukuran file (byte)
Arithmetic Coding Run Length Encoding
50
Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic
5. KESIMPULAN
Dari hasil pengukuran dan uji coba yang dilakukan dapat disimpulkan hal
hal sebagai berikut:
1. Dalam proses kompresi file dokumen menggunakan teknik Arithmetic
Coding dihasilkan persentase rasio kompresi yang lebih baik
dibandingkan dengan teknik Run Length Encoding yaitu sebesar 1,14
sampai 2,61 kali
2. Sedangkan perhitungan waktu untuk proses kompresi file dokumen
menggunakan teknik Arithmetic Coding dihasilkan waktu yang lebih
lama dibandingkan dengan teknik Run length Encoding yaitu sebesar
1,114 sampai 1,564 kali.
3. Dan untuk waktu dekompresi file dokumen menggunakan teknik
Arithmetic Coding dihasilkan waktu yang lebih lama dibandingkan
dengan teknik Run Length Encoding yaitu sebesar 2,85 sampai 5,635
kali
Dari hasil analisis tersebut maka diketahui bahwa untuk setiap teknik
kompresi dan dekompresi file dokumen menggunakan teknik Arithmetic
Coding memiliki kelebihan dalam hal rasio kompresi tetapi membutuhkan
waktu yang lebih lama. Sedangkan dengan menggunakan teknik Run
Length Encoding memiliki rasio kompresi yang kurang tetapi membutuhkan
waktu yang lebih cepat untuk proses kompresi dan dekompresi
dibandingkan dengan teknik Arithmetic Coding.
DAFTAR PUSTAKA
1. Amir Said, Comparative Analysis of Arithmetic Coding Computational
Complexity, Imaging Systems Laboratory, HP Laboratories Palo Alto
California USA, April 21, 2004.
2. Bodden, Eric. Arithmetic Coding revealed. Online,
http://www.copro.org /download /ac_en.pdf, diakses 13 November
2004: 2.00 WIB.
3. Blelloch, Guy E. Introduction to Data Compression, Computer Science
Department, Carnegie Mellon University, October 16, 2001, Online
diakses 27 Maret 2005 6:25:12 AM.
4. Debra A. Lelewer and Daniel S. Hirschberg, Online,
http://www.ics.uci.edu/~dan/pubs/ DataCompression.html, diakses 29
Maret 2005 7:07:03 AM.
5. Ian H. Willen, Radford M. Neal dan John G Cleary, Arithmetic Coding
for Data Compression, Communications of the ACM June 1987
Volume 30 Number 6 Page 520 – 540.
51
JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372
52