RSS
 

Posts Tagged ‘Encrpytion’

Huffman Compression Modules

02 Aug

Dalam aplikasi untuk Tugas Akhir yang kubuat, ada 3 modul utama :
1. Modul untuk enkripsi
2. Modul untuk kompresi
3. Modul untuk steganografi

Naa untuk sekarang ini dibahas dolo ya tentang kompresi (secara ini modul yang pertama kubuat dolo) . Dalam modul ini intinya adalah melakukan kompresi teks dengan menggunakan probability huffman encoding scheme , yaitu melakukan kompresi dengan menghitung dulu probabilitas kemunculan suatu karakter yang menyusun string.
1. Misalnya string “Pejantan tangguh”
dicari probabilitastiap karakter, akan menghasilkan
P = 1 , e = 1, j = 1 , a = 3, n = 3 , t = 2 , g = 2 , u =1 dan h =1 (case sensitive)
urutkan berdasarkan karakter dengan nilai kemunculan yang paling tinggi menjadi
a = 3 , n = 3, t = 2 , g = 2, P = 1, e = 1, j =1 , u =1 dan h = 1
2. Pada aplikasi ini, karena modul menerima inputan berupa nilai bit dari tiap karakter, maka nilai yang kita bandingkan adalah rentetan 8bit dari satu karakter (hasilnya akan sama saja dengan kita membandingkan tiap karakter) tapi kita akan berbicara secara global saja disini.
3. Tahap selanjutnya adalah membangun sebuah huffman tree . Cara pembuatannya adalah dengan memanfaatkan pointer pada delphi, dimana pointer berupa tipe data ADT dengan variabel bit(nilai bit dari karakter) serta new_bit (nilai bit encoding) .
4. Pointer struktur dengan nilai bit memiliki probabilitas kemunculan lebih tinggi akan diletakkan deket dengan root. Semua pointer yang bernilai, diletakkan di sisi kiri dengan diberi label new_bit = 0, sedangkan sisi kanan hanya menjadi loncatan saja dan diberi nilai new_bit =1. Jadi leaf pada tree pasti hanya ada disebelah kiri semua, kecuali leaf paling akhir..(lihat pada procedure kompres bagian membangun tree)
5. Nilai encoding pastinya diakhiri dengan nilai bit 0 dengan bit sebelumnya pasti bernilai 1. Hal ini akan berfungsi untuk menghindari ambiguitas pada decoding nantinya.
6.Ada 2 mode kompresi yang saya buat dengan asumsu sendiri, yaitu kompresi biasa, dengan kompresi ganda.Idenya adalah melakukan kompresi per 1 karakter (8 bit) untuk paket bit encoding (komresi normal) serta melakukan kompresi per 16 bit untuk 1 paket encoding. Hasilnya benar-benar jauh berbeda dari segi filesize .

tips : akan lebih enak dibaca jika anda telah mempelajari literatur tentang huffman kompresi, soalnya saya kurang bisa nerangin secara jelas..gomene

DOWNLOAD SOURCE

 
 

Switch to our mobile site