Anda di halaman 1dari 14

Teknik Pengkodean Shanon-Fano

Shannon Fano Coding


• Tiap kode berbeda informasi bitnya.
• Kode simbol yang probabilitasnya rendah mempunyai jumlah
bit yang lebih banyak, dan yang probabilitasnya tinggi
mempunyai jumlah bit yang lebih sedikit.
• Proses decoding tetap dapat dilakukan walaupun panjang
kode tiap simbol berbeda.
• Proses kompresi terjadi karena simbol yang sering keluar
dikodekan dengan jumlah bit yang sedikit.
0 1
0 1 0 1

A B C 0 1

D E
Shannon-Fano Coding
Suboptimal code
• Shannon code
• Shannon-Fano code
Optimal code
• Huffman code
• Arithmetic coding
Efisiensi macam-macam code diukur dengan:

H (S )
effisiensi  .100%
Lavg
Shannon Coding
• S = {x1, …, xn}
• P = {p1, ….., pn}
• pi = p(xi) dari semua simbol sumber xi diurut dari yang paling
besar: p1 ≥ p2 ≥ … ≥pn
• Cumulative prob didefinisikan: Pi = p1 + … + pi-1
• Codeword utk simbol xi didp dg mengambil li = |-lg pi | digit
pertama dari ekspansi biner Pi

Pi = 0.b1b2b3b4 … = b1/21 + b2/22 + b3/23 + …


Algoritma Shannon
Fano

• Buat daftar probabilitas kemunculan setiap simbol.


• Urutkan daftar dari yang paling sering keluar.
• Bagi daftar menjadi 2, dengan ketentuan jumlah probabilitas
setengah bagian atas mendekati setengah bagian bawah.
• Setengah bagian atas diberi nilai 0 setengah bagian bawah
diberi nilai 1.
• Lakukan secara rekursif langkah terakhir pada setengah
bagian atas dan setengah bagian bawah.
Shannon Coding
• Contoh:
S = {A, B, C, D, E}
P = {0.35, 0.17, 0.17, 0.16, 0.15}
Contoh: Shannon Fano Coding (1)
Diberikan simbol:
AAAAAAAAAAAAAAABBBBBBCCCCCDDDDDDEEEEEEE

Jika ditabelkan menjadi:


A  15 0
E7 0
B6 1 Pembagian pertama
D6 1 Karena menghasilkan selisih
C5 1 Atas dan Bawah terkecil
(=5)

Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi
lambang 1
Contoh: Shannon Fano Coding (2)

A  15
0 0
E7 Pembagian kedua
0 1 Untuk membagi setengah
B6 bagian atas
1
D6
1
C5
1

Selanjutnya untuk setengah bagian atas: bagian atas pembagian lambang 0 dan
bagian bawah pembagian diberi lambang 1
Contoh: Shannon Fano Coding (3)

A  15
0 0
E7
0 1
B6
1 0
D6 Pembagian ketiga
1 1 Karena menghasilkan selisih
C5 Atas dan Bawah terkecil
1 1 (=5)

Selanjutnya semua bagian atas diberi lambang 0 dan semua bagian bawah diberi
lambang 1
Contoh: Shannon Fano Coding (4)

A  15
0 0
E8
0 1
B5
1 0 Pembagian keempat
Merupakan pembagian terakhir
D3
1 1 0
C2
1 1 1
Sehingga dapat dikodekan: A = 00
B = 01
C = 10
D = 110
E = 111
Shannon-Fano Coding
• Contoh
S = {A, B, C, D, E}
P = {0.35, 0.17, 0.17, 0.16, 0.15}

• Pengkodean Shannon-Fano:
– Bagi S kedalam s1 dan s2 (pilih yang memberikan
perbedaan p(s1) dan p(s2) terkecil
– s1 = (A,B)  p(s1) = p(A) + p(B) = 0,52
– s2 = (C,D,E)  p(s2) = p(C) + p(D) + p(E) = 0,48
– Panggil ShannonFano()
Shannon-Fano Coding

 Panjang code rata-rata:


Lsh = 0,35*2 + 0,17*2 + 0,17*2 + 0,16*3+0,15*3 = 2,31
 Efisiensi = (2,23284/2,31)*100 = 96,66 %

Anda mungkin juga menyukai