pohon pengkode huffman

Upload: usman02la

Post on 24-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Pohon Pengkode Huffman

    1/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

    Pohon Pengkode Hufman

    Kita biasanya mengkodekan suatu string dengan menggunakan kode yang

    panjangnya tetap fxed-length codes! pada seluruh al"abet mis. # bit untuk

    $S%&&!. $kan tetapi, jika karakter yang berbeda mun'ul dengan "rekuensi

    yang berbeda, kita dapat menghemat memori dan mereduksi waktu

    transmisi dengan 'ara menggunakan kode yang panjangnya dapat diubah

    VLC(variable length codes!. &de dasar dari teknik pengkodean ini adalah nya

    adalah memakai kode terpendek untuk karakter yang paling sering mun'ul.

    $da beberapa hal yang harus diperhatikan ketika menggunakan )L%.

    Misalnya, kita ingin mengkodekan karakter *e+ dengan bit *+, *a+ dengan

    *-+, dan *t+ dengan *-+. agaimana kemudian kita mengkodekan kata

    *tea/ Dari system ini, maka kodenya adalah *--+. Kalau dilihat lebih

    'ermat, kode tersebut ran'u, karena kode tersebut bisa juga dihasilkan dari

    kata *eat , eaea, atau *tt. 0entu saja kode yang demikian tidak dapat

    diterima karena dapat menyebabkan kesalahan1kehilangan in"ormasi.

    2ntuk menghindari keran'uan ini kita dapat menggunakan kode pre34 prefx

    code!. 5ada kode pre3ks, bit string untuk sebuah karakter tidak pernah akan

    menjadi pre3ks bagian pertama! dari bit string karakter lainnya. Sebagai

    'ontoh, pengkodean *e dengan *+, *a+ dengan *-+, dan *t+ dengan *ii+

    adalah kode pre3ks. Maka, Kata *tea+ akan dikodekan sebagai *---+. it

    string ini adalah unik karena hanya kata *tea tidak ada kata lain yang dapat

    dikodekan dengan hasil sama.

    Kode pre3ks dapat disusun dengan bantuan pohon biner, dimana karakter

    adalah label dari lea daun!dalam pohon biner tersebut. 6aris dari tree

    dilabeli sedemikian hingga garis ke childkiri diberi bit ++ dan ke 'hild kanan

    dengan *-+. Bit string yang dipakai untuk menkodekan karakter adalah

    rangkaian label dari garis dalam lintasan yang unik dari rootke leayang

    dilabeli dengan karakter tersebut. Maka, pohon biner untuk 'ontoh

    pengkodean *tea+ yang telah dibahas adalah sebagai berikut.

  • 7/25/2019 Pohon Pengkode Huffman

    2/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

    5ada pohon biner ini tidak ada leayang dapat menjadi

    ancestor 'abang! dari lealainnya. Sehingga, tidak ada

    kode dari karakter dapat menjadi pre3ks dari kode karakter

    lainnya. &nilah yang dimaksud dengan kode pre3ks.

    2ntuk menentukan kode yang optimal terpendek! dari suatu string, pertama

    kita harus men'ari "rekuensi karakter dalam string tersebut.

    %ontoh :

    *eead"eejjeggebeeggddehhhe'e'dde'i

    edee+

    String ini berisi a : - , b: -, ': 7 , d:8 , e: -9, ":-, h:7, i:-, :j

    Kita dapat menggunakan algoritma ;u

  • 7/25/2019 Pohon Pengkode Huffman

    3/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

    =. 2langi sehingga didapatkan tree tunggal.

  • 7/25/2019 Pohon Pengkode Huffman

    4/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

  • 7/25/2019 Pohon Pengkode Huffman

    5/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

    $khirnya kita bisa mengubahnya menjadi kode pre3ks sebagai berikut :

    )L%(nya adalah :

    a :

    b : -

    ' : -

    d : --

    e : -

    " : -

    g : --

  • 7/25/2019 Pohon Pengkode Huffman

    6/6

    Seri Kuliah Matematika DiskritDosen : Wawan Laksito YS, S.Si, M.Kom

    h : -

    i : --

    j : --

    Sehingga, string asal

    *eead"eejjeggebeeggddehhhe'e'dde'iedee+

    >ika menggunakan kode dengan panjang tetap maka diperlukan = bit setiap

    karakternya ada - karakter yang berbeda!. Sehingga panjang kode dari

    seluruh string adalah =?7@A-=# bit.

    >ika menggunakan )L%, maka hanya membutuhkan :

    -?9B-?9B7?=B8?7B-9?-B-?9B=?=B7?=B-?9B?= A -- bit