Anda di halaman 1dari 44

EDY TRI BASKORO

PRESENTS
KODE HAMMING

Kunci dari Kode Hamming adalah


menggunakan bit paritas ekstra
untuk dapat mendeteksi dan
mengoreksi satu kesalahan.
CONTOH
101 001 1
0

Misalkan kita punya pesan biner panjang 8 di


atas. Bentuk kata kode Hamming dengan
menambahkan bit paritas pada posisi bil
pangkat 2, yakni: posisi 20=1, 21=2, 22=4,
23=8, 24=16, …
CONTOH
10 1 0 0 1 1 0

d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Posisi 1, 2, 4, dan 8 merupakan bit paritas (warna


kuning). Selanjutnya, salin bit pesan ke dalam bit
warna merah secara berurutan.
CONTOH
101 001 1 0

1 0 1 0 0 1 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Posisi 1, 2, 4, dan 8 merupakan bit paritas (warna


kuning). Selanjutnya, salin bit pesan ke dalam bit
warna merah secara berurutan.
CONTOH
10 1 0 0 1 1 0

1 0 1 0 0 1 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

5= 0101
6= 0110
10 = 1 0 1 0
12 = 1 1 0 0
XOR
010 1

Untuk menentukan nilai bit-bit paritas, hitung


XOR dari semua lokasi bit pesan yang bernilai
“1”, yaitu: 5, 6, 10 dan 12.
CONTOH
10 1 0 0 1 1 0

1 0 1 0 0 0 1 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

5= 0101
6= 0110
10 = 1 0 1 0
12 = 1 1 0 0
XOR
010 1

Selanjutnya, salin hasil XOR ke semua bit


paritas, dengan mempertahankan urutan.
CONTOH
10 1 0 0 1 1 0

1 0 1 0 0 0 1 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Kata kode Hamming panjang 12 telah


terbentuk.
Mendeteksi kesalahan
dan
Mengoreksinya
Kesalahan

1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
1 = 0 0 01
4= 0100
5= 0101
6= 0110
10 = 1010
11 = 1011
12 = 1100
XOR
101 1

Untuk mengetahui lokasi kesalahan, hitung XOR dari


semua lokasi yang mempunyai nilai “1” (yakni: 1, 4, 5, 6,
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
1 = 0 0 01
4= 0100
5= 0101
6= 0110
10 = 1010
11 = 1011
12 = 1100
XOR
1 0 1 1 = 1 x 20 + 1 x 21 + 0 x 22 + 1 x 23 = 11

Jadi, pada lokasi d11 terjadi kesalahan. Nilai yang benar


pada lokasi tersebut adalah “0”.
Koreksi

1 0 1 0 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Jadi, pada lokasi d11 terjadi kesalahan. Nilai yang benar


pada lokasi tersebut adalah “0”.
CARA LAIN
MEMBANGUN
KODE HAMMING
CONTOH
1 00 110000111 0
1
0

d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1


CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 1 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Ada 4 bit paritas (warna kuning) dalam hal ini


ditambahkan pada kata pesan.
Posisi bit paritas tersebut menentukan barisan bit yang
akan diperiksa dan dilompat.
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 1 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P1 : cek 1 bit, lompat 1 bit, cek 1 bit, lompat 1


bit, dst.
(1,3,5,7,9,11,13,15,…)
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

0 0 0 1 0?
Isi bit paritas dgn ‘1’ jika jumlah angka ‘1’ pada bit-bit yang diperiksa
ganjil.
Isi bit paritas dgn ‘0’ jika jumlah angka ‘1’ pada bit-bit yang diperiksa
genap.
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

0 0 0 1 0?
Dalam hal ini, ada 1 angka ‘1’ (ganjil)
Jadi, isi P1 dengan 1.
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P2: Cek 2 bit, lompat 2 bit, cek 2 bit, lompat 2 bit, dst.
(2,3 | 6,7 | 10,11 | 14,15 | …)
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

0 1 0 1 0?
Dalam hal ini ada 2 angka ‘1’ (genap)
Jadi, isi P2 dengan 0
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P4: Cek 4 bit, lompat 4 bit, cek 4 bit, lompat 4 bit, dst.
(4,5,6,7 | 12,13,14,15 | 20,21,22,23 | …)
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 0 1 1 ?
Dalam hal ini, ada tiga angka ‘1’ (ganjil)
Jadi, isi P4 dengan ‘1’
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
CONTOH
1 00 110000111 0
1
0

1 0 1 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P8: Cek 8 bit, lompat 8 bit, cek 8 bit, lompat 8 bit, dst.
(8-15,24-31,40-47,…)
CONTOH
11 0 11 00001 11 0
1
0

1 0 1 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 0 1 0 ?
Dalam hal ini, ada dua angka ‘1’ (genap)
Jadi, isi P8 dengan ‘0’
CONTOH
11 0 11 00001 11 0
1
0

1 0 1 0 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
Mendeteksi Kesalahan
dan
Mengoreksinya
kesalahan

1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Misalkan kata di atas adalah kata yg


diterima.
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Sekarang, kita akan menemukan bit yang


salah
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P1: cek 1 bit, lompat 1 bit, cek 1 bit, lompat 1


bit, dst.
(1 |3|5|7|9|11|13|15|…)
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 0 0 1 0?
Dalam hal ini, ada 2 angka ‘1’
(genap)
Jadi, P1 mestinya ‘0’. Salah!
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P2: Cek 2 bit, lompat 2 bit, cek 2 bit, lompat 2 bit, dst.
(2,3 | 6,7 | 10,11 | 14,15 | …)
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 1 0 1 0?
Dalam hal ini ada 3 angka ‘1’ (ganjil)
Jadi, P2 mestinya ‘1’. Salah!
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

P4: Cek 4 bit, lompat 4 bit, cek 4 bit, lompat 4 bit, dst.
(4,5,6,7 | 12,13,14,15 | 20,21,22,23 | ….)
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 0 1 1 ?
Dalam hal ini, ada tiga angka ‘1’
(ganjil)
Jadi, P4 mestinya ‘1’. Betul!
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

1 1 1 0 ?
Dalam hal ini, ada tiga angka ‘1’
(ganjil).
Jadi, P8 mestinya ‘1’. Salah!
1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Jadi, P1, P2, dan P8: salah!


Jadi, bit 11 (=1 +2+8) adalah bit
salah.
Error

1 1 0 0 0 11 1 1 0 0 1
1 0
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1

Jadi, P1, P2, dan P8: salah!


Jadi, bit 11 (=1 +2+8) adalah bit
salah.
1 0 1 0 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
1 0 1 0 0 0 11 1 1 0 0 1
d12 d11 d10 d9 p8 d7 d6 d5 p4 d3 p2 p1
Thank
For
watching

Anda mungkin juga menyukai