Kompresi File


Apa jadinya bila teknologi kompresi

fi le belum ditemukan? Entahlah,

yang jelas aktivitas pertukaran data

di Internet tidak semudah sekarang.

Bayangkan bila Anda harus mendown

load sebuah aplikasi yang

ter diri dari ratusan fi le yang tidak

ter kompresi. Tak terkira waktu dan

band width yang tersita di sana.

_ Sepintas hal ini terdengar se perti

mus tahil. Bagaimana mungkin kom -

puter yang telah memperkecil (dengan

me ngu rangi jumlah bit dan

byte data) se buah fi le bisa mengembalikannya

tan pa perubahan apapun?

Padahal ide dasar di balik teknologi

ini se benar nya sangat sederhana:

mem buang pengu langan.

Mencatat Pengulangan

_ Sebagian besar tipe fi le digital mengandung

pengulangan. File-fi le tersebut

memiliki informasi yang sama

yang ditampilkan secara ber ulang.

Aplikasi kompresi fi le membuang

pe ngulangan-peng ula ngan tersebut.

Alih-alih menam pilkan potongan infor

masi yang sama secara berulang,

aplikasi kompresi mencatat informasi

tersebut satu kali saja, dan akan

menduplikasikannya kembali saat

fi le diekstrak.

Sebagai contoh, perhatikan tipe

informasi yang sangat akrab dengan

kita berikut ini: kata. “Jangan tanya

apa yang negara berikan pada Anda.

Tanya apa yang Anda berikan pada

negara.” (terjemahan kutipan dari

Presiden AS, John F. Kennedy).

Kutipan tersebut memiliki 15 kata,

yang terdiri dari 74 karakter, 14

spasi, dan 2 titik.

Jika setiap huruf, spasi, dan tanda

baca mengambil satu unit memory

komputer, kita mendapatkan fi le

de ngan ukuran 93 unit. Untuk

mem perkecil ukuran fi le tersebut,

kita harus memperhatikan pengulangan

yang terjadi. Sekejap kita

mendapatkan da ta berikut:

“tanya” muncul 2 kali

“apa” muncul 2 kali

“yang” muncul 2 kali

“negara” muncul 2 kali

“berikan” muncul 2 kali

“pada” muncul 2 kali

“Anda” muncul 2 kali

Secara kasar, setengah dari kutipan

JFK di atas adalah pengulangan. Tujuh

kata (tanya, apa, yang, negara,

berikan, pada, Anda) memberikan

hampir semua informasi keseluruhan

kutipan. Untuk membangun setengah

kutipan bagian akhir, kita

hanya me nunjuk kata-kata yang ada

pada setengah kutipan bagian awal,

dan mengisinya dengan spasi.

Algoritma Pengulangan

_ Kebanyakan aplikasi kompresi

meng gunakan variasi algoritma dictio

nary -based LZ (yang diambil dari

dua nama penemu algoritma ini,

Lempel dan Ziv) untuk mengecilkan

fi le. Sis tem ini membuat semacam

katalog dengan deretan angka.

Kembali ke kutipan JFK di atas, kita

bisa membuat katalognya sebagai

berikut:

1. Tanya.

2. Apa.

3. Yang.

4. Negara.

5. Berikan.

6. Pada.

7. Anda.

Dari katalog di atas, kita dapat

merumuskan kutipan JFK menjadi:

“Jangan 1 2 3 4 5 6 7. 1 2 3 7 5

6 4.”

Itulah algoritma pengulangan yang

digunakan oleh aplikasi kompresi

untuk mengecilkan ukuran fi le,

dan merekonstruksinya kembali ke

ukuran semula. “Jangan 1 2 3 4 5 6

7. 1 2 3 7 5 6 4.” ditambah daftar

kata dalam katalog, tentu lebih

pendek daripada “Jangan tanya apa

yang negara berikan pada Anda.

Tanya apa yang Anda berikan pada

negara.”

Dari contoh di atas, kita berhasil

memampatkan kutipan JFK dari 93

unit menjadi 36 unit untuk kalimat

yang terkompresi, dan 54 unit untuk

katalog, atau total 90 unit. Ya, kita

berhasil menghemat 3 unit! Namun,

seperti kata pepatah, “Sedikit demi

sedikit, lama-lama menjadi bukit,”

proses kompresi fi le di komputer

mengumpulkan yang sedikit itu,

namun dalam jumlah yang besar.

Menemukan Pola

_ Dari contoh di atas, kita mengambil

semua kata yang digunakan

berulang dan meletakkannya di

dalam sebuah katalog. Bagi kita, ini

adalah cara yang paling lazim digunakan

untuk menulis kamus, index,

atau glosarium. Tapi, sebuah aplikasi

kompresi melihatnya sedikit berbeda:

algoritma kompresi tidak mengenal

kata-kata yang terpisah, melainkan

mencari pola atau pattern.

Untuk semakin memperkecil ukuran

fi le, aplikasi kompresi memilih

pola apa yang harus dimasukkan

dalam katalog. Bila melihat kutipan

JFK di atas dari sudut pandang ini,

kita akan mendapatkan isi katalog

yang benar-benar berbeda dari contoh

di atas. Aplikasi kompresi memindai

kutipan JFK, pengulangan pertama

yang dicatat adalah pola huruf “a”

dan “n” yang dikuti oleh spasi.

Pada frase pertama kutipan

tersebut, “Jangan tanya apa yang

negara berikan pada Anda.” terdapat

empat pola huruf “a” yang dikuti

spasi. Dua pola gabungan huruf “an”

yang diikuti spasi pada “jangan”

dan “berikan”. Dua pola gabungan

huruf “ang” pada kata “jangan” dan

“yang”, serta pola-pola lain yang

mungkin luput dari perhatian kita.

Berbekal katalog pola (bukan

kata) inilah aplikasi kompresi memampatkan

sebuah fi le hingga 90%

bahkan lebih, terutama pada fi le

yang memiliki banyak pola yang

berulang, misalnya pada fi le-fi le yang

di dalamnya terdapat tag (HTML,

XML, TIFF, dan lain-lain). [MI]

Informasi Lebih Lanjut

• http://computer.howstuffworks.

com/fi le-compression

0 komentar: