Teknik Pembangkitan Kode Huffman

dokumen-dokumen yang mirip
Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

Penerapan Pengkodean Huffman dalam Pemampatan Data

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data


Kompleksitas Algoritma dari Algoritma Pembentukan pohon Huffman Code Sederhana

Pemampatan dengan Menggunakan Algoritma Huffman Dinamik : Algoritma FGK dan Algoritma Vitter

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

BAB 2 LANDASAN TEORI

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

Kode Huffman dan Penggunaannya dalam Kompresi SMS

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

PENINGKATAN EFISIENSI KODE HUFFMAN (HUFFMAN CODE) DENGAN MENGGUNAKAN KODE HUFFMAN KANONIK (CANONICAL HUFFMAN CODE)

Kode Huffman. Arya Tri Prabawa Program Studi Teknik Informatika ITB, Bandung 40116,

Algoritma Huffman dan Kompresi Data

METODE POHON BINER HUFFMAN UNTUK KOMPRESI DATA STRING KARAKTER

Kompresi Data dengan Algoritma Huffman dan Perbandingannya dengan Algoritma LZW dan DMC

JURNAL IT STMIK HANDAYANI

Perbandingan Kompresi Data Dengan Algoritma Huffman Statik dan Adaptif

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

APLIKASI GREEDY PADA ALGORITMA HUFFMAN UNTUK KOMPRESI TEKS

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM :

PERBANDINGAN ALGORITMA HUFFMAN DENGAN ALGORITMA SHANNON-FANO

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

Kompresi Data dengan Kode Huffman dan Variasinya

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Aplikasi Penggambar Pohon Biner Huffman Untuk Data Teks

Penerapan Pohon Biner Huffman Pada Kompresi Citra

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Termilogi Pada Pohon Berakar 10 Pohon Berakar Terurut

PEMAMPATAN DATA DENGAN KODE HUFFMAN (APLIKASI POHON BINER)

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

Pemampatan Data Sebagai Bagian Dari Kriptografi

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

N, 1 q N-1. A mn cos 2M , 2N. cos. 0 p M-1, 0 q N-1 Dengan: 1 M, p=0 2 M, 1 p M-1. 1 N, q=0 2. α p =

BAB I PENDAHULUAN. Saat ini perkembangan teknologi berkembang sangat cepat. Penyimpanan

Perbandingan Kompresi Data Menggunakan Algoritma Huffman dan Algoritma DMC

Graf untuk soal nomor 7

Penerapan Stuktur FP-Tree dan Algoritma FP-Growth dalam Optimasi Penentuan Frequent Itemset

ANALISA KODE HUFFMAN UNTUK KOMPRESI DATA TEKS ABSTRAK

BAB 2 LANDASAN TEORI

Optimasi Enkripsi Teks Menggunakan AES dengan Algoritma Kompresi Huffman

Pemampatan Data dengan Kode Huffman pada Perangkat Lunak WinZip

Pohon Quad untuk Merepresentasikan Gambar

Entropy Naskah Bahasa Sunda Dan Bahasa Jawa Untuk Kompresi Teks Menggunakan Algoritma Binary Huffman Code

BAB 1 PENDAHULUAN 1-1

Penerapan Pohon Untuk Menyelesaikan Masalah Labirin

PENERAPAN ALGORITMA HUFFMAN DALAM DUNIA KRIPTOGRAFI

PENGANTAR KOMPRESI DATA

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

Sebuah pewarnaan dari graph G adalah sebuah pemetaan warna-warna ke simpulsimpul dari G sedemikian hingga simpul relasinya mempunyai warna warna yang

Penerapan Pohon Biner dalam Proses Pengamanan Peer to Peer

Pohon (TREE) Matematika Deskrit. Hasanuddin Sirait, MT 1

BAB 2 LANDASAN TEORI

Matematika Diskret (Pohon) Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

RANCANG BANGUN SISTEM KOMPRESI DAN DEKOMPRESI DATA TEKS PADA SISTEM TELEPON SELULER BERBASIS HUFFMAN CODING

Definisi. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon

BAB 2 LANDASAN TEORI

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

Penerapan Algoritma LZW (Lempel-Ziv-Welch) pada Program Pemampat File

Peancangan Algoritma Kriptografi Huffman-Monoalphabetic

BAB II TINJAUAN PUSTAKA

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

IMPLEMENTASI TEKNIK STEGANOGRAFI LEAST SIGNIFICANT BIT (LSB) DAN KOMPRESI UNTUK PENGAMANAN DATA PENGIRIMAN SURAT ELEKTRONIK

KOMPRESI STRING MENGGUNAKAN ALGORITMA LZW DAN HUFFMAN

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

Penggunaan Pohon Huffman pada Algoritma Deflate

KODE HUFFMAN UNTUK KOMPRESI PESAN

APLIKASI POHON DALAM PENCARIAN CELAH KEAMANAN SUATU JARINGAN

I. PENDAHULUAN. Gambar 1. Contoh-contoh graf

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

PEMAMPATAN CITRA (IMA

Rasa ingin tahu adalah ibu dari semua ilmu pengetahuan. Tak kenal maka tak sayang, tak sayang maka tak cinta

Kode Sumber dan Kode Kanal

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Matematika Diskrit. Rudi Susanto

Team project 2017 Dony Pratidana S. Hum Bima Agus Setyawan S. IIP

Pemanfaatan Pohon Biner dalam Pencarian Nama Pengguna pada Situs Jejaring Sosial

Implementasi Pohon Keputusan untuk Membangun Jalan Cerita pada Game Engine Unity

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Penerapan Algoritma Huffman dalam Kompresi Gambar Digital

Teknik Kompresi Citra Menggunakan Metode Huffman

Penggunaan Pohon Biner Sebagai Struktur Data untuk Pencarian

Studi Algoritma Optimasi dalam Graf Berbobot

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

Penerapan Kombinatorial dan Peluang Diskrit serta Pohon pada Analisis Genetik

I. LAMPIRAN TUGAS. Mata kuliah : Matematika Diskrit Program Studi : Sistem Informasi PA-31 Dosen Pengasuh : Ir. Bahder Djohan, MSc

Penerapan Teknik Binary Search Tree Sebagai Alternatif Penyimpanan Data

Implementasi Algoritma Kompresi Shannon Fano pada Citra Digital

TEKNIK PENGOLAHAN CITRA. Kuliah 13 Kompresi Citra. Indah Susilawati, S.T., M.Eng.

Pengaplikasian Pohon dalam Sistem Repository Ubuntu Linux

Transkripsi:

Teknik Pembangkitan Kode Huffman Muhammad Riza Putra Program Studi Teknik Informatika ITB, Bandung 012, email: zha@students.itb.ac.id Abstrak Makalah ini membahas suatu teknik dalam pembangkitan kode Huffman untuk karakter-karakter pada suatu string. Teknik pembangkitan kode Huffman ini berdasarkan pada algoritma yang dikembangkan oleh David A. Huffman, namun lebih mudah untuk dipahami oleh pelajar yang baru mengenal dan mempelajari algoritma pemampatan data ini. Makalah ini akan menjelaskan langkah per langkah dalam membangkitkan kode Huffman dengan menggunakan pohon biner dan tabel kekerapan kemunculan untuk setiap simbol yang akan dikodekan. Kata Kunci:Kode, Huffman, kompresi, pemampatan, kekerapan, frekuensi, ASCII, pohon, biner, teknik, larik 1. PENDAHULUAN Dalam bidang ilmu komputer dan teori informatika, kode Huffman merupakan algoritma pengkodean yang paling efisien dan lossless dalam melakukan pemampatan data. Algoritma ini dikembangkan dan diperkenalkan oleh salah satu doktor MIT, David A. Huffman melalui sebuah makalah yang diterbitkan tahun 192 berjudul A Method for the Construction of Minimum-Redundancy Codes [1]. Peng-kodean Huffman ini didasarkan pada kekerapan kemunculan suatu simbol pada data sumber yang akan dimampatkan. Hasil dari peng-kodean ini akan menghasilkan kode awalan (prefix code) untuk setiap simbol dimana simbol yang kekerapan kemunculannya lebih besar memiliki kode awalan yang lebih pendek dari simbol yang memiliki kekerapan kemunculannya lebih kecil pada data sumber. Sekarang sudah banyak bermunculan variasi pengkodean Huffman, baik itu penggunaannya masih seperti algoritma asli Huffman, sampai pada algoritma lain yang melakukan optimasi terhadap kode awalan. Berikut beberapa varian dari Kode Huffman: Kode Huffman n-ary Algoritma ini menggunakan alfabet {0, 1,, n-1} untuk meng-kodekan pesan dan membentuk pohon n-er. Pendekatan ini sudah terdapat pada paper asli Huffman Kode Huffman adaptive Varian ini meng-kalkulasikan kekerapan kemunculan secara dinamis berdasarkan kekerapan kemunculan pada saat itu dalam string sumber Algoritma Template Huffman Kebanyakan, atribut digunakan dalam pengimplementasian algoritma Huffman untuk menyatakan peluang numerik, namun algoritma ini tidak membutuhkannya; varian ini hanya membutuhkan suatu cara untuk mengurutkan atributnya dan menambahkannya pada pembangkitan kode Huffman Kode Huffman length-limited Adalah suatu varian lainnya dimana tujuannya masih untuk mencapai panjang lintasan minimum, namun terdapat tambahan persyaratan dimana panjang untuk setiap kode harus lebih kecila dari konstanta yang diberikan Kode Huffman dengan unequal letter costs Dalam permasalahan peng-kodean Huffman yang standar, diasumsikan bahwa setiap simbol dimana kode dibangkitkan, memiliki memiliki biaya yang sama untuk mentransmisikannya, dengan kata lain meminimalisasi total biaya dari pesan dan meminimalisasi jumlah total dijit adalah sesuatu yang sama. Dengan metode ini, asumsi diatas tidak lagi benar, kode yang dihasilkan tidak harus memiliki panjang yang sama, tergantung pada karakteristik media transmisinya Optimasi Alfabet Pohon Biner Metode peng-kodean Huffman lainnya untuk menangani permasalah Hu-Tucker [1]. 2. ALGORITMA KODE HUFFMAN Berikut penjelasan singkat mengenai algoritma pengkodean Huffman. 2.1. Definisi Masalah Deskripsi Informal Diberikan: Diberikan himpunan simbol/karakter dan jumlah kemunculannya pada data sumber. Temukan: Himpunan kode awalan setiap simbol dengan meminimumkan panjang kode. Deskripsi Formal Masukan: S = {s 1, s 2, s,, s n } adalah himpunan simbol dari data sumber n

F = {f 1, f 2, f,, f n } adalah jumlah kemunculan dimana f i = frek(s i ), 1 = i = n Keluaran: Kode (S, F) = {c 1, c 2, c,, c n } dimana c i adalah kode awalan untuk s i Tujuan: Misalkan L(C) adalah panjang untuk kode c. Maka L(C) = L(T) untuk setiap kode T(S, F) 2.2. Algoritma Dasar Untuk mendapatkan kode Huffman, teknik dasar adalah dengan membangkitkan pohon biner dari simbol-simbol/karakter-karakter yang akan dicari kodenya. Hal ini dapat disimpan ke suatu larik, dengan ukurannya tergantung pada jumlah simbol, n. Sebelumnya, dihitung terlebih dahulu kekerapan kemunculan tiap simbol di dalam data sumber. Berikut langkah-langkah dalam pembangkitan pohon biner Huffman: 1. Pilih dua simbol x dan y dengan peluang terkecil. Kemudian kombinasikan kedua simbol tersebut (xy) sebagai simpul orangtua dari simbol x dan y, dimana peluangnya adalah jumlah dari peluang anaknya (P(x) + P(y)) 2. Kemudian pilih kembali dua simbol yang memiliki peluang terkecil berikutnya, termasuk simpul yang baru. Lakukan hal yang sama seperti pada langkah sebelumnya.. Ulangi langkah-langkah sebelumnya sampai menghasilkan simpul akar dimana merupakan kombinasi dari seluruh simbol yang ada dan peluangnya adalah 1.. Daun pada pohon biner Huffman menyatakan simbol-simbol yang digunakan pada data sumber. Peng-kodean setiap simpul daun dilakukan dengan memberi label label 0 untuk cabang (kiri) dan label 1 untuk setiap cabang kanan [2]. Dengan algoritma peng-kodean Huffman ini, akan dihasilkan kode yang jumlah bitnya lebih kecil untuk simbol yang memiliki kekerapan kemunculan lebih besar. Selain itu, tidak ada kode simbol yang merupakan kode awalan untuk kode simbol yang lain. Kode Huffman tidak bersifat unik untuk setiap simbol/karakter, artinya kode untuk setiap karakter berbeda-beda pada setiap data sumber tergantung pada kekerapan kemunculannya.. TEKNIK PEMBANGKITAN KODE HUFFMAN Kasus Bangkitkan kode Huffman untuk setiap kumpulan angka beserta kekerapan kemunculannya seperti pada tabel berikut: 1 2 7 1 Tabel 1: Isi Larik Awal Penyelesaian 1. Pilih dua buah angka yang memiliki frekuensi terkecil. Dua angka yang dipilih tersebut adalah 1 dan 2 dengan kekerapan kemunculannya dan 7 Pohon Huffman: 2. Kedua angka 1 dan 2 dihapus dari larik, sedangkan simpul orangtua baru, dengan frekuensi 12 dimasukkan ke dalam larik. :12 1: 2:7 Gambar 1: Pohon Huffman Tahap 1 12 1 Tabel 2: Isi Larik Tahap 2 Kemudian ulangi langkah pertama dengan memilih angka yang memiliki frekuensi terkecil, yaitu dan sehingga menghasilkan: Untuk menjelaskan bagaimana teknik membangkitkan kode Huffman untuk berbagai simbol dengan algoritma yang sudah dijelaskan pada bagian sebelumnya, maka akan digunakan suatu contoh sebagai berikut.

:22 :7 :22 : : :12 : :12 :1 : 1: 2:7 1: 2:7 Gambar 2: Pohon Huffman Tahap 2. Isi dari larik sekarang adalah: 1 22 Tabel : Isi Larik Tahap yang ditambahkan pada pohon Huffman adalah dan. Karena tidak meneruskan pohon sebelumnya, maka terbentung upa pohon baru, yaitu: Gambar : Pohon Huffman Tahap. Isi larik pada tahap terakhir ini adalah: 7 Tabel : Isi Larik Tahap Pohon Huffman lengkap yang terbentuk dari tahap-tahap sebelumnya adalah: :2 : :7 : :22 : :1 : : :12 :1 : Gambar : Pohon Huffman Tahap 1: 2:7. Isi larik sekarang adalah: 22 Gambar : Pohon Huffman Lengkap Dengan memberi kode 0 untuk cabang kiri dan 1 untuk cabang kanan, maka kode Huffman yang didapat dari pohon Huffman diatas adalah: Tabel : Isi Larik Tahap Karena 2 angka yang terkecil adalah akar dari kedua upa pohon yang sebelumnya terbentuk, maka kedua upa pohon tersebut digabungkan Kode 1 2 7 1 11 0 1 111

0 Tabel : Kode Huffman. KESIMPULAN Pemampatan data merupakan hal yang sangat esensial dalam era digital dewasa ini. Dengan melakukan pemampatan data atau pesan, maka akan meningkatkan efektifitas dan efisiensi dalam pemakaian sumber daya yang tersedia di bidang komunikasi dan informasi, serta di bidang penyimpanan data. Dengan algoritma peng-kodean Huffman, maka proses pemampatan data benar-benar optimal, karena simbol yang kekerapan kemunculannya lebih besar, panjang kodenya lebih pendek sehingga benar-benar mengurangi besar ukuran data yang dimampatkan. Setiap kode yang dibangkitkan oleh algoritma Huffman, tidak akan merupakan kode awalan diantara kode-kode tersebut. Hal ini dikarenakan penggunaan pohon biner dalam proses pembangkitan kode Huffman dimanacabang yang mengarah sebelah kiri dilambangkan dengan 0 dan yang mengarah ke sebelah kanan dilambangkan dengan 1. Kode Huffman tidak bersifat unik untuk setiap simbol/karakter tertentu. Kode Huffman untuk suatu karakter yang sama, berbeda-beda tergantung pada data sumbernya. DAFTAR REFERENSI [1] http://en.wikipedia.org/huffman_coding. Tanggal Akses: 2 Desember 07 [2] Munir, Rinaldi, Diktat Kuliah IF21 Matematika Diskrit Edisi Keempat, Program Studi Teknik Informatika ITB, Bandung, Indonesia, 0