Kompresi data
Dalam
ilmu komputer,
pemampatan data[1] atau
kompresi data adalah sebuah cara untuk memadatkan
data
sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga
lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran
data tersebut. Ada terdapat dua jenis pemampatan data, yaitu pemampatan
tanpa kehilangan (lossless data compression) dan pemampatan
berkehilangan (lossy data compression).
Pemampatan data tanpa kehilangan
Teknik ini mampu memadatkan data dan mengembalikannya sama persis
seperti semula. Tidak ada informasi yang hilang atau harus dikurangi
dalam proses untuk mengurangi ukuran besar data. Biasanya algoritma
pemadatan data jenis ini menggunakan prinsip
kelebihan statistik
(statistical redundancy) supaya data bisa disimpan dengan lebih
ringkas. Karena kebanyakan data yang dipakai sehari-hari memiliki bagian
yang berulang atau berlebihan (redundant data), pemampatan tanpa
kehilangan bisa terjadi.
Contoh mudahnya, apabila berkas gambar berukuran 256x256 berwarna
polos (setiap pixel berwarna sama) dan tiap pixelnya berukuran 4 byte,
tanpa pemadatan, berkas harus disimpan berukuran 4 kali 256x256, sama
dengan 262144 byte. Namun, dengan pemadatan, maka data yang perlu
disimpan hanyalah data satu warna tersebut dan informasi bahwa seluruh
pixel gambar memiliki satu warna yang sama. Jadi, data yang perlu
disimpan hanyalah 4 byte tambah beberapa byte untuk menandakan
pengulangan pixel yang sama. Ingatlah ini hanya contoh yang simpel.
Pemadatan tanpa kehilangan memiliki batas rendah di mana berkas tidak bisa dipadatkan lebih jauh lagi.
Teorem Shannon
menunjukkan bahwa pemadatan data tidak bisa menghasilkan kadar kode
yang lebih rendah daripada entropi Shannon berkas, tanpa menyebabkan
kehilangan informasi. Maka, apabila suatu berkas sudah dipadatkan
(misalnya, berkas gambar disimpan di berkas .zip), berkas .zip tersebut
tidak bisa lagi dipadatkan.
Contoh algoritma adalah
Lempel-Ziv,
Lempel-Ziv-Welch,
Lempel-Ziv-Markov,
FLAC,
ALAC, dan
PAQ.
Pemampatan data berkehilangan
Dengan teknik ini, kehilangan data yang kecil masih dapat diterima.
Dengan algoritma tertentu, detil berkas dipangkas supaya ukuran data
bisa dikecilkan. Contohnya, pemadatan data dengan format berkas gambar
JPEG bisa menyimpan data yang banyak, tapi juga mampu memangkaskan
bagian-bagian visual yang kurang penting demi menghemati memori simpan.
Berkas MP3 bisa menyimpan data lagu yang bersuara lebih jernih, tapi
juga bisa mengurangi mutu suara jika ukuran data harus dikurangi.
Contoh algoritma adalah
MP3,
JPEG,
Ogg dan
MPEG-2.