You are on page 1of 16

JETri, Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372

ANALISIS PERBANDINGAN KOMPRESI DATA DENGAN TEKNIK ARITHMETIC CODING DAN RUN LENGTH ENCODING
Ferrianto Gozali & Mervyn* Dosen Jurusan Teknik Elektro-FTI, Universitas Trisakti
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

* Alumni Jurusan Teknik Elektro-FTI, Universitas Trisakti

JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372

yang mengesalkan dan menghabiskan waktu. Koneksi seringkali terputus dan proses pengambilan atau pengiriman data harus diulang lagi dari awal. 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). ingga saat ini, berbagai metoda kompresi data dikembangkan dan secara umum dapat dikelompokkan dalam 2 kelompok besar yaitu lossless data compression dan lossy data compression (Debra A. Lelewer & Daniel S. Hirschberg, 2005: 7:07:03 AM) (Debra A. Lelewer & Daniel S. Hirschberg, 2005: 7:07:03 AM), (Ian H. Willen, Radford M. Neal dan John G Cleary, 1987: 520 540). Pada lossless data compression, proses rekonstruksi file hasil kompresi atau decompression process akan mampu mengembalikan file tersebut kebentuk asalnya. Metoda ini digunakan untuk berbagai tipe data seperti executable code atau file word processing, dll dimana perbedaan sekecil apapun akan berakibat fatal. Sedangkan lossy data compression umumnya digunakan untuk file data yang merepresentasikan suatu citra dimana proses rekonstruksi tidak mengembalikan bentuk citra ke bentuk asal dengan kualitas yang sama sehingga lossy data compression memiliki compression ratio yang lebih baik dibandingkan lossless data compression. Pada penelitian ini, dipilih dua metoda lossless data compression yang banyak digunakan dan dijadikan dasar bagi pengembangan metoda kompressi data lainnya yaitu teknik kompresi Arithmetic Coding dan Run Length Encoding. Kedua teknik ini menerapkan teknik pengambilan probabilitas dimana untuk simbol-simbol yang sering muncul akan direpresentasikan dengan jumlah bit yang lebih sedikit dibandingkan dengan simbol-simbol yang jarang muncul (Amir, 2004: Comparative Analysis of Arithmetic Coding Computational Complexity), (Debra A. Lelewer & Daniel S. Hirschberg, 2005: 7:07:03 AM). Walaupun kedua teknik tersebut didasari oleh teknik pengambilan probabilitas, namun pada kenyataannya teknik arithmetic coding lebih

38

Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic

banyak diaplikasikan pada file-file dokumen umum sedangkan file-file gambar lebih banyak memanfaatkan teknik Run Length Encoding. Pada tulisan ini akan dibahas metoda pengambilan probabilitas pada kedua teknik data kompresi tersebut diatas serta pengaruhnya dalam kompresi filefile dokumen, baik untuk rasio kompresi maupun waktu kompresi yang dibutuhkan. Pembahasan diawali dengan konsep dasar kompressi data pada umumnya, dilanjutkan dengan konsep probabilitas yang digunakan serta algoritma dalam metoda kompresi Arithmetic Coding dan Run length Encoding. Program kompresi yang dikembangkan dengan bahasa pemrogaman java (Haines H & Benny, 2004: 14-55) digunakan untuk mengukur kemampuan kedua teknik kompresi tersebut diatas. Pembahasan diakhiri dengan analisis hasil pengukuran yang didapatkan baik untuk waktu kompresi, maupun untuk besarnya compression ratio yang diperoleh.

2. KONSEP DASAR KOMPRESI DATA Proses kompresi data didasarkan pada kenyataan bahwa pada hampir semua jenis data selalu terdapat pengulangan pada komponen data yang dimilikinya, misalnya didalam suatu text kalimat akan terdapat pengulangan penggunaan huruf alphabet dari huruf a sampai dengan huruf z. Kompresi data melalui proses encoding berusaha untuk menghilangkan unsur pengulangan ini dengan mengubahnya sedemikian rupa sehingga ukuran data menjadi lebih kecil (Amir, 2004: Comparative Analysis of Arithmetic Coding Computational Complexity), (Nelson, 1991: 32-47), baik untuk berbagai jenis data seperti data teks, gambar, video, suara, dan lain-lain. Proses pengurangan unsur pengulangan ini dapat dilakukan dengan memakai beberapa teknik kompresi. Misalnya jika suatu komponen muncul berulang kali dalam suatu data, maka komponen tersebut tidak harus dikodekan berulang kali pula tapi dapat dikodekan dengan menulis frekuensi munculnya komponen dan di mana komponen tersebut muncul. Teknik kompresi data lainnya, berusaha untuk mencari suatu bentuk kode yang lebih pendek untuk suatu komponen yang sering muncul (Amir, 2004: Comparative Analysis of Arithmetic Coding Computational Complexity). Keberhasilan pengkompresian data tergantung dari besarnya data itu sendiri dan tipe data yang memungkinkan untuk dikompresi (Haines H & Benny, 2004: 14-55). Biasanya beberapa komponen-komponen di dalam

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:

H ( S ) Pi log 2
i

1 (1) Pi

dimana

Pi

= probabilitas dari simbol

log 2

1 = Jumlah informasi yang terdapat dalam suatu simbol Pi

Misalkan terdapat rangkaian S = abaabcda dalam alphabet {a,b,c,d} maka didapatkan masing-masing probabilitas P(a) = 0.5 , P(b) = 0.25 , P(c) = 0.125 dan P(d) = 0.125. Untuk mengkompresi rangkaian data tersebut sebetulnya dapat dengan cara yang paling sederhana yaitu dengan menggunakan 2 bits per simbol {00, 01,10, 11} sehingga menghasilkan jumlah bit = 8 * 2 bits = 16 bits. Tetapi sesuai dengan rumus (1) diatas maka didapatkan : H (S) =

s{ a ,b , c , d }

P (s) log 2

1 P( s)

1 1 ) + ( 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 log2 = = 0.5 + 0.5 + 0.375 + 0.375 1,75 Bits / simbol

40

Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic

Dari hasil tersebut maka didapatkan jumlah bit = 8 * 1.75 = 14 bits untuk mengkompresi rangkaian kata tersebut sehingga menghasilkan 2 bits lebih sedikit dibandingkan dengan cara yang paling sederhana. Terlihat dengan memperhitungkan probabilitas simbol yang terdapat didalam suatu rangkaian data, akan diperoleh bentuk representasi data yang lebih kecil. 3. KOMPRESI DATA DENGAN ARITHMETIC CODING DAN RUN LENGTH ENCODING 3.1 ARITHMETIC CODING Pada umumnya, algoritma kompresi data didasarkan pada pemilihan cara melakukan penggantian satu atau lebih elemen-elemen yang sama dengan kode tertentu. Berbeda dengan cara tersebut, Arithmetic Coding menggantikan suatu deret simbol input dalam suatu file data dengan sebuah bilangan menggunakan proses aritmatika. Semakin panjang dan semakin kompleks pesan yang dikodekan, semakin banyak bit yang diperlukan untuk proses kompresi dan dekompresi data (Amir, 2004: Comparative Analysis of Arithmetic Coding Computational Complexity), (Bodden, Eric, 2004: 2.00 WIB). 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: 520540). 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. Tabel 1. Tabel probabilitas untuk kata TRISAKTI Karakter A I K R S T Probabilitas 1/8 2/8 1/8 1/8 1/8 2/8

41

JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372

Setelah probabilitas masing-masing karakter diketahui, tiap simbol/karakter akan diberikan range tertentu yang nilainya berkisar diantara 0 dan 1, sesuai dengan probabilitas yang ada seperti terlihat pada tabel 2 berikut. Tabel 2. Range simbol untuk kata TRISAKTI Karakter A I K R S T Probabilitas 1/8 2/8 1/8 1/8 1/8 2/8 Range 0.00 0.125 0.125 0.375 0.375 0.50 0.50 0.625 0.625 0.75 0.75 1.00

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. Berdasarkan rumus (1) diatas maka didapatkan suatu algoritma proses kompresi data sebagai berikut (Haines H & Benny, 2004: 1455): Set low = 0.0 Set high = 1.0 While (simbol input masih ada) do Ambil simbol input Code range (CR) = high low High = low + CR*high_range (simbol) Low = low + CR*low_range (simbol) End While Output low

Disini low adalah output dari proses arithmetic coding.

42

Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic

Input T
1 1

Input R
0,9065

Input I

Input S

Input A

Input K

Input T

Input I
0,883847712

0,88671875

0,884765625 0,883911132 0,883850097

0,883850097

T 0,75 S R K R 0,875 K S 0,883789062

I 0,87890625

A 0 0,75 0,875 0,87890625

A 0,883789062 0,883789062 0,883834838 0,883846282 0,883846759

Gambar 1. Nilai Interval Kata TRISAKTI (Haines H, Benny, 2004: 14-55) Untuk kata TRISAKTI di atas, didapat nilai-nilai pada tabel 3. Tabel 3. Proses kompresi untuk kata TRISAKTI S 0,0 T R I S A K T I 0,75 0,875 0.87890625 0.883789062 0.883789062 0.883834838 0.883846282 0.883846759 Low 1,0 1,0 0.90625 0.88671875 0.884765625 0.883911132 0.883850097 0.883850097 0.883847712 High Code Range 1,0 0,25 0.03125 7,8125 x 10-3 9,76563 x 10-4 1,22070375 x 10-4 1,5259 x 10-5 3,815 x 10-6 9,54 x 10-7

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. Implementasi Arithmetic Coding harus memperhatikan kemampuan encoder dan decoder, yang umumnya mempunyai keterbatasan jumlah mantissa. Hal ini dapat menyebabkan kesalahan atau error apabila suatu Arithmetic Coding mempunyai kode dengan floating point yang sangat panjang (Amir, 2004: Comparative Analysis of Arithmetic Coding Computational Complexity). Sehingga diberikan solusi berupa modifikasi algoritma Arithmetic Coding dengan menggunakan bilangan integer. Modifikasi ini mampu mengatasi keterbatasan pengolahan floating point dalam melakukan kompresi dan dekompresi data. Modifikasi dengan bilang integer juga dipakai karena jumlah bit kodenya lebih sedikit dan mempercepat proses kompresi dan dekompresi data karena perhitungan integer jauh lebih cepat dari perhitungan floating point serta dapat diimplementasikan dalam program. Untuk implementasi tersebut, langkah-langkahnya adalah sebagai berikut: - Pertama ditetapkan nilai high dan low, sesuai dengan panjang register. Untuk 16 bit high = FFFF dan low = 0000 - Tetapkan nilai code range (CR) CR = high low + 1 - While (simbol input masih ada ) do - Ambil simbol input - High = low + CR * high_range (simbol) -1 - Low = low + CR * low_range (simbol) - Jika digit pertama sama maka SHIFT OUT digit pertama - End While - SHIFT OUT digit pertama jika masih dibutuhkan - Cetak output Sebagai ilustrasi digunakan contoh kata TRISAKTI. Dalam hal ini digunakan nilai desimal. High = 999999 Low = 000000 Untuk lebih jelas proses tersebut dapat dilihat pada tabel 4.

44

Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic

Tabel 4. Contoh kompresi data dengan menggunakan bilangan integer untuk kata TRISAKTI Proses Kondisi awal T (0.75 1.0) R (0.5 0.625) I (0.125 0.375) Shift Out 0.8 S (0.625 0.75) 0.8 Shift Out A (0.0 0.125) Shift Out K (0.375 0.5) Shift Out T (0.75 1.0) Shift Out I (0.75 1) 0.88 0.88 0.883 0.883 0.8838 0.8838 0.88384 0.88384 0.88384 Output Low 000000 750000 875000 878906.25 789060.25 837885.5625 378850.5625 378850.5625 788500.5625 834273.1592 342730.1592 457158.0584 571580.0584 619257.5125 High 999999 999999 906249 886717.75 867179.75 847649.625 476499.625 391055.8203 910559.8203 849529.6914 495299.6914 495299.6914 952999.6914 714611.4208 381419.633 152570.5322 122060.2578 97650.0625 78120.5 CR 1000000 250000 31250

3.2. RUN LENGTH ENCODING Kompresi dan dekompresi data menggunakan teknik Run length encoding ini merupakan suatu bentuk teknik yang digunakan untuk mengkompresi data yang berisi karakter-karakter berulang (Hauck, S. & Wilson, William D., 1999: IEEE ). Saat karakter yang sama diterima secara berderet empat kali atau lebih (lebih dari tiga), algoritma ini mengkompres data dalam suatu tiga karakter berderetan. Teknik yang digunakan pada algoritma ini adalah dengan mencari karakter yang berulang lebih dari 3 kali pada suatu file untuk kemudian diubah menjadi sebuah bit penanda (marker bit) diikuti oleh sebuah bit yang memberikan informasi jumlah karakter yang berulang dan kemudian

45

JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372

ditutup dengan karakter yang dikompres, yang dimaksud dengan bit penanda di sini adalah deretan 8 bit yang membentuk suatu karakter ASCII. Jadi jika suatu file mengandung karakter yang berulang, misalnya AAAAAAAA atau dalam biner 01000001 sebanyak 8 kali, maka data tersebut dikompres menjadi 11111110 00001000 01000001. Dengan demikian kita dapat menghemat sebanyak 5 bytes. Agar lebih jelas algoritma Run-Length dapat dilihat pada gambar 3.
01000001 01000001 01000001 01000001 01000001 01000001 01000001 01000001 11111110 00001000 01000001 8X bit penanda

Gambar 3. Contoh dari penggunaan algoritma Run Length Eencoding 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. Dengan menggunakan metoda pengambilan probabilitas seperti diatas maka teknik Run Length Encoding tidak membutuhkan waktu komputasi yang lama seperti halnya metoda yang digunakan pada teknik arithmetic coding. Metoda tersebut akan sangat efektif bila file yang dikompres merupakan deretan karakter yang sama seperti halnya pada filefile gambar. Namun hal tersebut tidak berlaku pada file-file dokumen umum dimana kemungkinan penggunaan karakter sangat heterogen. Dengan kata lain, jika file yang ingin dikompres tidak memiliki deretan lebih dari 3 karakter maka file hasil kompresi akan sama dengan file aslinya. Dalam Run Length Encoding, langkah-langkah kompresi adalah sebagai berikut: 1. Baca file input dari data yang akan dikompresi. 2. Lihat apakah terdapat deretan karakter yang sama secara berurutan lebih dari tiga karakter, jika terdapat hal tersebut lakukan kompresi. Pada contoh di atas deretan karakter yang sama secara berurutan sebanyak 8 karakter, jadi lebih dari tiga dan dapat dilakukan kompresi.

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. Untuk melakukan proses dekompresi dilakukan langkah-langkah sebagai berikut: 1. Baca file hasil kompresi data. 2. Lihat karakter pada hasil kompresi satu-persatu dari awal sampai akhir, jika ditemukan bit penanda, lakukan proses pengembalian. 3. Lihat karakter setelah bit penanda, konversikan ke bilangan desimal untuk menentukan jumlah karakter yang berurutan. 4. Lihat karakter berikutnya, kemudian lakukan penulisan karakter tersebut sebanyak bilangan yang telah diperoleh pada karakter sebelumnya (langkah 3). Dalam mengimplementasikan program kompresi menggunakan algoritma ini, perlu diperhatikan jika pada file asli terdapat karakter yang sama dengan bit penanda, maka pada file encoding karakter tersebut ditulis sebanyak dua kali secara berturutan. Pada saat pengembalian ke file asli, jika ditemukan bit penanda yang berderetan sebanyak dua kali, hal itu berarti karakter tersebut bukan bit penanda, tapi karakter asli dari file aslinya. 4. IMPLEMENTASI DAN PENGUKURAN Pengujian dilakukan dengan menggunakan file dokumen dengan ukuran dan isi yang berbeda-beda sebagai file masukan. Parameterparameter yang diukur adalah waktu proses kompresi dan dekompresi, besarnya ukuran file yang di kompresi, dan persentase rasio kompresi dari kedua metoda kompressi untuk kemudian dilakukan perbandingan antara teknik Arithmetic Coding dengan teknik Run Length Encoding (Howard,

47

JETri, Tahun Volume 4, Nomor 1, Agustus 2004, Halaman 37-52, ISSN 1412-0372

Paul G, Vitter & Jeffrey S, 1992: 749-763). Hasil pengukuran dari arithmetic coding diperoleh seperti pada tabel 5 dan tabel 6 sedangkan hasil pengukuran dari run length encoding dapat dilihat pada tabel 7 dan 8 berikut. Tabel 5. Hasil pengukuran kompresi dan dekompresi teknik Arithmetic Coding
File masukan (byte)

Kompresi
Pengukuran ke Waktu (detik) File keluaran (byte) Rasio kompresi (%)

Dekompresi
Waktu (detik) File keluaran (byte)

107.520

204.800

301.056

404.992

505.344

1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

0.36 0.32 0.32 0.62 0.59 0.64 1.09 1.04 1.09 1.68 1.43 1.42 1.84 1.81 1.73

67.754 67.754 67.754 125.124 125.124 125.124 215.378 215.378 215.378 333.633 333.633 333.633 387.461 387.461 387.461

36.98 36.98 36.98 38.9 38.9 38.9 28.45 28.45 28.45 17.61 17.61 17.61 23.32 23.32 23.32

0.86 0.82 0.82 1.43 1.5 1.46 3.79 3.78 3.76 5.34 5.45 5.45 6.06 6 6.04

107.520 107.520 107.520 204.800 204.800 204.800 301.056 301.056 301.056 404.992 404.992 404.992 505.344 505.344 505.344

Tabel 6. Nilai rata-rata kompresi dan dekompresi teknik arithmetic coding


Kompresi File masukan (byte) Waktu rata-rata (detik) File keluaran rata-rata (byte) Rasio kompresi rata-rata (%)

Dekompresi
Waktu rata-rata (detik) File keluaran rata-rata (byte)

107.520 204.800 301.056 404.992 505.344

0.333 0.616 1.073 1.51 1.793

67.754 125.124 215.378 333.633 387.461

36.98 38.9 28.45 17.61 23.32

0.833 1.463 3.776 5.413 6.033

107.520 204.800 301.056 404.992 505.344

48

Ferrianto Gozali & Mervyn, Analisis Perbandingan Kompresi Data Dengan Teknik Arithmatic

Tabel 7. Hasil pengukuran kompresi dan dekompresi teknik Run Length Encoding
File masukan (byte) Pengukuran ke Waktu (detik) Kompresi File keluaran (byte) Rasio kompresi (%) Dekompresi File Waktu keluaran (detik) (byte)

107.520

204.800

301.056

404.992

505.344

1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

0.29 0.29 0.31 0.51 0.53 0.51 0.65 0.71 0.7 1.03 1.12 1.07 1.39 1.29 1.32

92.306 92.306 92.306 163.486 163.486 163.486 226.154 226.154 226.154 349.880 349.880 349.880 425.387 425.387 425.387

14.14 14.14 14.14 20.17 20.17 20.17 24.87 24.87 24.87 13.6 13.6 13.6 15.82 15.82 15.82

0.31 0.26 0.29 0.5 0.53 0.51 0.65 0.71 0.65 1.04 1.09 1.06 1.21 1.21 1.15

107.520 107.520 107.520 204.800 204.800 204.800 301.056 301.056 301.056 404.992 404.992 404.992 505.344 505.344 505.344

Tabel 8. Nilai analisis rata-rata kompresi dan dekompresi teknik Run Length Encoding
File masukan (byte) Waktu Rata-rata (detik) Kompresi File keluaran Rata-rata (byte) Dekompresi Rasio kompresi Rata-rata (%) Waktu Rata-rata (detik) File keluaran Rata-rata (byte)

107.520 204.800 301.056 404.992 505.344

0.296 0.516 0.686 1.073 1.333

92.306 163.486 226.154 349.880 425.387

14.14 20.17 24.87 13.6 15.82

0.286 0.513 0.67 1.063 1.19

107.520 204.800 301.056 404.992 505.344

Dari hasil perhitungan rata-rata yang didapat pada tabel 6 dan 8 diatas diperoleh grafik perbandingan antara kedua metoda kompressi diatas seperti pada gambar 4 dan 5 berikut ini.

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)

Arithmetic Coding

Run Length Encoding

Gambar 4. Grafik Waktu Proses Kompresi Rata-rata


50 40

Rasio (%)

30 20 10 0 107,52 204,8 301,056 Ukuran file (byte) 404,992 505,344

Arithmetic Coding

Run Length Encoding

Gambar 5. Grafik Rasio Kompresi Rata-rata


7 6
waktu (detik)

5 4 3 2 1 0 107,52 204,8 Arithmetic Coding 301,056 Ukuran file (byte) 404,992 505,344

Run Length Encoding

Gambar 6. Grafik Waktu Proses Dekompresi Rata-rata

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

6. Haines H, Benny, Menguasai Java 2 & Object Oriented Programming, Andi Offset, Yogyakarta, 2004. pages 14 55. 7. Howard, Paul G and Vitter, Jeffrey S., Analysis of Arithmetic Coding for Data Compression, Department of Computer Science Brown University, Information Processing and Management Journal Volume 28, Number 6, November 1992, pages 749-763. 8. Nelson, Mark. The Data Compression Book. U.S.A. M&T Books, 1991, hal 32-47. 9. Hauck, S. dan Wilson, William D., Runlength Compression Techniques for FPGA Configurations, Dept. of ECE, Northwestern University, Evanston, IL 60208-3118 USA, IEEE Symposium on FPGAs for Custom Computing Machines, 1999.

52

You might also like