PEMAMPATAN DATA (DATA COMPRESSION) DENGAN KODE HUFFMAN DALAM KOMUNIKASI DATA Nur Hdi Wrynto & Whyu Setyningrum Jurusn Pendidikn Mtemtik FMIPA UNY ABSTRAK Mslh yng sering muncul dlm komuniksi dt dlh ukurn pesn (messge) yng dikirim terllu besr sehingg wktu pemgirimn lm dn membutuhkn rung penyimpnn yng besr pul. Kedu mslh di ts dpt ditsi dengn memmptkn dt tu pesn yng dikirim. Pemmptn dt dilkukn dengn mengkodekn setip krkter dlm pesn tersebut dengn kode yng lebih pendek. Sistem kode yng digunkn dlh sistem kode ASCII kemudin dilkukn pemmptn dt (dt compression). Dlm mklh ini kn dibhs pemmptn dt (dt compression) menggunkn kode Huffmn. Pemmptn dt (dt compression) dengn kode Huffmn ternyt dpt digunkn untuk mempersingkt pesn yng dikodekn dengn sistem ASCII, sehingg pesn yng dikirimkn reltif singkt tu pendek dn rung penyimpnn reltif kecil pul. Kt kunci : kode Huffmn, pemmptn dt A. Pendhulun Pesn gr smpi ke lmt tujun, pengirimn pesn tersebut memnftkn komuniksi dt. Dlm komuniksi dt sering timbul beberp mslh yitu pesn yng dikirimkn ukurnny besr dn wktuny lm. Selin itu dlm penyimpnn dt, pesn yng berukurn besr kn membutuhkn rung penyimpnn yng besr pul. Permslhn ini dpt ditsi dengn mengkodekn pesn tersebut sesingkt mungkin. Pesn yng singkt menyebbkn ukurn pesn menjdi kecil dn membutuhkn rung penyimpnn yng kecil sehingg pesn dpt dikirimkn dengn cept. Cr pengkoden inilh yng disebut dengn pemmptn dt. Setip krkter dlm pesn dikodekn dengn kode yng lebih pendek dlm komuniksi dt. Kode ASCII merupkn sistem kode yng bnyk digunkn st ini. Setip krkter dlm kode ASCII dikodekn dlm 8 bit biner. Contoh beberp kode ASCII terliht dlm Tbel 1.
Krkter Kode ASCII Krkter Kode ASCII Krkter Kode ASCII A 01000001 N 01001110 U 01010101 B 01000010 O 01001111 01100001 C 01000011 P 01010000 i 01101010 D 01000100 R 01010010 u 01100101 E 01000101 S 01010011 e 01100110 I 01001001 00100010 o 01110000 M 01001101 spsi 00100000 L 01001100 Tbel 1 : Tbel Kode ASCII Jik sutu komuniksi dt mengunkn kode ASCII mk sebuh pesn mislny SEMINAR NASIONAL MIPA kn direpresentsikn menjdi rngkin bit sebgi berikut : 001000100101001101000101010011010100100101001110010000010101001000100000 010011100100000101010011010010010100111101001110010000010100110000100000 0100110101001001010100000100000100100010 Secr lngsung dpt diliht bhw sebuh pesn yng hny terdiri tig kt jik direpresentsikn dengn kode ASCII tnp pemmptn dt terliht begitu pnjng. Dpt dibyngkn jik pesn tersebut merupkn rngkin klimt dlm stu prgrf. Jik dihitung bnykny bit yng dibutuhkn untuk pesn tersebut dlh 23 x 8 bit = 184 bit. Jumlh bit yng dibutuhkn untuk pesn tersebut dpt diminimumkn dengn memperpendek pnjng kode setip krkter dlm pesn tersebut terutm krkter yng mempunyi frekuensi kemunculnny besr. Hl inilh yng mendsri munculny kode Huffmn. Dengn menggunkn kode Huffmn, jumlh bit yng dibutuhkn semkin sedikit yng menyebbkn ukurn pesn menjdi kecil dn rung penyimpnnnypun kecil sehingg pesn dpt dikirimkn dengn cept. B. PEMBAHASAN POHON BINER Definisi 1: Pohon dlh grf tk-terrh terhubung yng tidk mengndung sirkuit.
Menurut definisi 1 di ts, grf G 1 dn G 2 pd gmbr 1 dlh pohon, sedngkn G 3 dn G 4 bukn pohon. G 3 mengndung sirkuit, d, f,. Sedngkn G 4 tidk terhubung. b b b b c d c d c d c d e G1 f e f e f G2 G3 Gmbr 1: Pohon dn bukn pohon e G4 f Definisi 2: Pohon biner dlh pohon yng setip simpul cbngny mempunyi mksimum du buh nk. Ad yng menyebut du nk tersebut dengn nk pertm dn nk kedu tu nk knn dn nk kiri. Selnjuty, dlm tulisn kmi menggunkn istilh nk kiri dn nk knn. Pohon yng krny dlh nk pohon kiri disebut uppohon kiri (left subtree), sedngkn pohon yng krny dlh nk pohon knn disebut uppohon knn (right subtree). Kren dny perbedn nk/uppohon kiri dn nk/uppohon knn, mk pohon biner dlh pohon terurut. Du buh pohon pd Gmbr 2 dlh du buh pohon biner berbed. b c b c d d Gmbr 2 : Du buh pohon biner yng berbed Pohon yng semu simpulny terletk di bgin kiri sj tu di bgin knn sj disebut pohon condong (skewed tree). Pohon yng condong ke kiri disebut pohon condong-kiri (skew left), pohon yng condonmg ke knn disebut pohon condong-knn (skew right). Liht Gmbr 3.
b c d () (b) Gmbr 3 : () pohon condong-kiri, dn (b) pohon condong-knn Pohon biner penuh (full binry tree) dlh pohon yng setip simpulny mempunyi tept du buh nk, kiri dn knn, keculi simpul pd rs bwh (Gmbr 4). Gmbr 4 : Pohon biner penuh Pohon biner penuh dengn tinggi h memiliki jumlh dun sebnyk 2 n, sedngkn jumlh seluruh simpulny dlh: S = 2 0 + 2 1 + 2 2 + + 2 h = 2 h+1-1 ALGORITMA HAUFFMAN Algoritm ini digunkn untuk menentukn sebuh pohon biner n-terboboti (P) yng mempunyi pnjng lintsn minimum dengn bobot w 1, w 2, w 3,, w n. Untuk menunjukkn bgimn lgoritm Huffmn bekerj, pertm kit buktikn lemm yng mengungkpkn bhw dlm pohon biner optiml, dun dengn bobot terbesr terletk di dekt kr. Lemm dn kibtny berlku jik semu simpul mempunyi bobot berbed. Bgimn jik tidk semu simpul mempunyi bobot berbed tu dengn kt lin d simpul yng memiliki bobot sm. Dengn menggunkn lgoritm Huffmn kit dpt menyelesikn ksus tersebut.
Lemm: P pohon biner optiml dengn bobot w 1, w 2,, w n. untuk i = 1, 2,, t dn L i merupkn level tu tingktn dri w i dlm pohon P. Jik w i < w k mk L j L k. Bukti: Andikn w i < w k dn L j < L k dn P pohon biner optiml. P merupkn pohon yng diperoleh dengn menukr tempt w i dn w k pd pohon P. Mk bobot totl P W(P) = w j L j + w k L k Sedngkn bobot totl P W(P ) = w j L k + w k L j W(P) W(P ) = w j L j + w k L k w j L k w k L j = (w k - w j ) (L k L j ) > 0 sehingg W(P ) < W(P) dn P bukn pohon biner optiml, kontrdiksi dengn pengndin. Jdi P pohon biner optiml, jik w i < w k mk L j L k. Akibt (corollry): Pd pohon biner optiml P, pbil du bobot terkecil w 1 dn w 2 mk keduny terletk pd level (tingktn) terendh. Bukti: Setidkny d 2 dun yng terletk pd tingkt/level terendh, misl w j dn w k. Jik w 1 <w j mk L 1 L j = L berdsrkn lemm mk L 1 = L dn w 1 pd level L. Jik w 1 = w j mk L 1 = L j, kit dpt menukr tempt w 1 dn w j tnp mengubh bobottotl dri P. Begitu pul, dengn menukr tempt w 2 dn w k, kibtny w 2 terletk pd level L. Sehingg w 1 dn w 2 terletk pd level L. Teorem: Misl 0 w 1 w 2 w t, p dlh pohon biner optiml dengn bobot w 1, w 2,, w t. Akn ditunjukkn bhw W(P) = W(P 0 ). Dengn menggunkn kibt dri lemm (corollry) dpt dinggp bhw w 1 dn w 2 pd P 0 terletk pd level/tingkt yng sm. Bobot totl dri P 0 tidk kn berubh jik bobot pd level yng sm sling ditukr tempt. Disumsikn bhw w 1 dn w 2 dlh nk dri orngtu yng sm b. sehingg tig simpul tersebut membentuk sub pohon kecil, misl P b dengn b sebgi kr.
Misl P 0 merupkn pohon dengn bobot w 1, w 2,, w t yng didpt dri P 0 dengn menggnti dun b pd subpohon P b yng berbobot w 1 + w 2. Jik L merupkn level dri simpul b mk dlm perhitungn W(P 0 ) sub pohon P b memberikn kontribusi w 1 (L + 1) + w 2 (L+1). Sedngkn pd perhitungn W(P 0 ) simpul b dengn bert w 1 + w 2 memberikn kontribusi (w 1 + w 2 ) L. sehingg W(P 0 ) = W(P 0 ) + w 1 + w 2 Kren P merupkn pohon optiml dengn bobot w 1 + w 2, w 3,, w t, mk W(P ) W(P 0 ) sehingg W(P) = W(P ) + w 1 + w 2 W(P 0 ) + w 1 + w 2 = W(P 0 ) Didpt W(P 0 ) W(P), kren P 0 merupkn pohon optiml dengn bobot w 1, w 2,, w t mk W(P) = W(P 0 ) Akibtny P merupkn pohon biner optiml dengn bobot w 1, w 2,, w t. Berikut ini diberikn slh stu contoh pemmptn dt dengn kode Huffmn. Mislkn terdpt sutu pesn seperti pd bgin pendhulun yitu SEMINAR NASIONAL MIPA. Jumlh krkter dlm pesn itu dlh 23 termsuk tnd petik dn spsi. Pd bgin pendhulun pesn tersebut telh direpresentsikn dlm kode ASCII sebelum dipmptkn. Jumlh bit dri pesn tersebut dlh 184 bit. Lngkh pertm untuk memmptkn dt tersebut dlh menentukn bobot tu frekuensi dri setip krkter dlm pesn tersebut, seperti terliht pd Tbel.2. Krkter Bobot(w)/frekuensi E 1 R 1 O 1 L 1 P 1 M 2 2 S 2 Spsi 2 I 3
N 3 A 4 Jumlh 23 Tbel.2 Setelh bobot msing-msing krkter ditentukn lngkh selnjutny dlh membut brisn dri msing-msing krkter diserti bobotny untuk memudhkn dlm pemilihn krkter-krkter yng mempunyi bobot pling kecil. Brisn tersebut dlh sebgi berikut:,,,,,, (2), S(2), Spsi(2), I(3), N(3), A(4) Lngkh selnjutny memilih du krkter yng mempunyi bobot pling kecil. Jik terdpt lebih dri du krkter yng mempunyi bobot terkecil pilih secr sembrng, dlm hl ini dipilih krkter E dn R kemudin gbung dn tmbhkn bobot msing-msing krkter. Lngkh berikutny dlh membut brisn dri msingmsing krkter tnp krkter yng telh dipilih seperti terliht seperti dibwh ini :,,,,, (2), S(2), Spsi(2), I(3), N(3), A(4) Gmbr 5. Pohon biner I Pohon biner dpt dibut setelh semu proses pemilihn msing-msing krkter selesi. Pohon biner dlm hlini dibut terlebih dhulu dengn mksud untuk mempermudh pemhmn. Proses-proses pemilihn msing-msing krkter selnjutny dlh sebgi berikut :,,,, (2), S(2), Spsi(2), I(3), N(3), A(4) Gmbr 6. Pohon biner II
,,, (2), S(2), Spsi(2), I(3), N(3), A(4) Gmbr 7. Pohon biner III,,, S(4), Spsi(2), I(3), N(3), A(4) Gmbr 8. Pohon biner IV,, S(4), Spsi(2), I(3), N(3), A(4) Gmbr 9. Pohon biner V,, S(4), SpsiI(5), N(3), A(4) Spsi I(5) Spsi(2) I(3) Gmbr 10. Pohon biner VI
, NPM(6), S(4), SpsiI(5), A(4) NPM(6) Spsi I(5) SPASI(2) I(3) N(3) SEROL(8), PMN(6), SpsiI(5), A(4) Gmbr 11. Pohon biner VII "SEROL(8) NPM(6) Spsi I(5) Spsi(2) I(3) N(3) Gmbr 12. Pohon biner VIII
SEROL(8), PMN(6), ASpsiI I(9) "SEROL(8) ASpsi I(5) NPM(6) Spsi I(5) A(4) Spsi(2) I(3) N(3) Gmbr 13. Pohon biner IX NPM SEROL(14), SpsiIA(9) NPM"SEROL(14) "SEROL(8) ASpsi I(5) NPM(6) Spsi I(5) A(4) Spsi(2) I(3) N(3) Gmbr 14. Pohon biner X
SEROLPMNSpsiIA(23) ASpsi INPM"SEROL(23) NPM"SEROL(14) "SEROL(8) ASpsi I(5) NPM(6) Spsi I(5) A(4) Spsi(2) I(3) N(3) Gmbr 15. Pohon biner XI
Setelh prosedur pemilihn msing-msing krkter selesi, pohon biner terkhir diberikn kode untuk setip krkter dengn memberi lbel 0 untuk untuk setip cbng (sisi) kiri dn lbel 1 untuk setip cbng (sisi) knn. Sehingg didptkn pohon Huffmn seperti gmbr 16. ASpsi INPM"SEROL(23) 1 NPM"SEROL(14) 0 1 "SEROL(8) 0 1 ASpsi I(5) NPM(6) 0 1 1 0 1 0 Spsi I(5) 0 0 1 0 1 0 1 0 1 0 1 A(4) Spsi(2) I(3) N(3) Gmbr 16. Pohon Huffmn untuk Tbel 2
Dengn membut lintsn dri kr ke dun pd Gmbr 16, kn dihsilkn kode untuk msing-msing krkter seperti pd Tbel 3. Krkter Kode Huffnn E 11110 R 11111 O 11100 L 11101 P 1010 M 1011 1100 S 1101 SPASI 010 I 011 N 100 A 00 Tbel.3 Berdsrkn Tbel.3, krkter yng mempunyi bobot pling besr mempunyi kode dengn jumlh bit minimum dn jumlh seluruh bit dri pesn di ts dlh 80 bit. Terliht bhw dengn menggunkn kode Huffmn pesn dits dpt menghemt rung penyimpnn sebnyk 104 bit. KESIMPULAN Kode Huffmn dpt digunkn untuk memmptkn dt (dt compression) dlm komuniksi dt. Pemmptn dt (dt compression) dengn kode Huffmn dpt digunkn untuk mempersingkt pesn yng dikodekn dengn sistem ASCII, sehingg pesn yng dikirimkn reltif singkt tu pendek dn rung penyimpnn
reltif kecil pul. Lngkh-lngkh pemmptn dt dengn lgoritm Huffmn dlh sebgi berikut: 1. Menentukn bobot tu frekuensi dri setip krkter dlm pesn. 2. Membut brisn dri msing-msing krkter diserti bobotny. 3. Memilih du krkter yng mempunyi bobot terkecil, kemudin digbungkn dn bobot msing-msing krkter dijumlhkn. Gbungn du krkter ini diperlkukn sebgi krkter bru. 4. Selnjutny, pilih du krkter berikutny, termsuk krkter bru, yng mempunyi bobot terkecil. 5. Prosedur yng sm dilkukn pd 2 krkter berikutny yng mempunyi bobot terkecil. 6. Setelh prosedur pemilihn krkter selesi, kemudin pohon biner yng terbentuk diberi lbel 0 untuk setip cbng kiri dn 1 untuk setip cbng knn. 7. Kode Huffmn untuk setip krkter diperoleh dengn membc lbel pd pohon biner dri kr ke dun. Dftr Pustk Lipschutz, Seymour. (1997). Schum s Outline of Theory nd Problems of Discrete Mthemtics. New York: Mc Grw-Hill. Inc. Munir, Rinldi. (2001). Mtemtik Diskret. Bndung: Informtik Bndung. Ross, Kenneth A. (1992). Discrete Mthemtics. New Jersey: Prentice-Hll. Truss, J. K. (1994). Discrete Mthemtics for Computer Scientists. London: Addison- Wesley Publisihng Compny.