Skip to main content

Teknik Kompresi RLE (Run Length Encoding) dan Huffman Coding

Teknik RLE (Run Length Encoding)

Teknik ini sangat sederhana, yaitu dengan mengganti dua atau lebih karakter yang sama dengan suatu angka yang menyajikan panjangnya karakter yang sama tersebut dan kemudian diikuti oleh karakter aslinya.

Contoh: misalkan ada contoh input data seperti berikut:
WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW
Catatan: B = black pixel, W =  white pixel

Bagaimana output/hasil kompresi menggunakan teknik RLE (Run Lengh Coding)?
Hasil kompresi dengan teknik RLE adalah : 12W1B12W3B24W1B14W

Teknik Huffman Coding
Teknik ini dikembangkan oleh David A. Huffman, 1952. Tekniknya adalah dengan membuat tabel yang berisi kode panjang variabel/karakter yang diturunkan dengan cara tertentu (menelusur jalur dari huffman tree) dengan berbasis frekwensi kemunculan karakter atau simbol.

Contoh: misalkan ada satu potong kalimat seperti berikut:
“this is an example of a huffman tree”
Bagaimana hasil/output kompresi menggunakan teknik "Huffman Coding"?

Huffman tree dan tabel frekwensi kemunculan huruf
Langkah-langkah dalam huffman coding:
  1. Frekwensi kemunculan masing-masing huruf dicatat dalam tabel 
  2. Masing-masing menunjukkan isi prioritas urutan dalam tree
  3. Nilai frekwensi yang lebih rendah memiliki prioritas yang lebih tinggi (paling bawah)
  4. Setiap tahap, dua tree dengan frekwensi terendah dijadikan satu untuk membentuk tree dengan frekwensi yang lebih tinggi
  5. Dilakukan berulang hingga membentuk hanya satu tree (node paling atas)
  6. Sehingga masing-masing huruf di-kode-kan dengan cara melacak jalur dari tree-nya (ke kanan berarti 1 ke arah kiri berarti 0. Misalkan huruf x = 10010; u = 00111; dst.

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan d...

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)