yapz, sedikit yang saya tau (lok temen2 banyak tau ntar kasih tau ya??), hamming code itu adalah cara yang ditemuin ma hamming (bukan aming loh) buat nentuin error dalam bit dan juga sekaligus memperbaikinya (waaah keren gak tuh si hamming). nah, mau tau ne caranya gimana tu pake hamming code?? kita langsung aja ke TE KA PE....(JENG JENG JENG JENG)
lok algoritmanya menuruk om wiki kaya gini neh :
General algorithm
The following general algorithm generates a single-error correcting (SEC) code for any number of bits.
- Number the bits starting from 1: bit 1, 2, 3, 4, 5, etc.
- Write the bit numbers in binary. 1, 10, 11, 100, 101, etc.
- All bit positions that are powers of two (have only one 1 bit in the binary form of their position) are parity bits.
- All other bit positions, with two or more 1 bits in the binary form of their position, are data bits.
- Each data bit is included in a unique set of 2 or more parity bits, as determined by the binary form of its bit position.
- Parity bit 1 covers all bit positions which have the least significant bit set: bit 1 (the parity bit itself), 3, 5, 7, 9, etc.
- Parity bit 2 covers all bit positions which have the second least significant bit set: bit 2 (the parity bit itself), 3, 6, 7, 10, 11, etc.
- Parity bit 4 covers all bit positions which have the third least significant bit set: bits 4–7, 12–15, 20–23, etc.
- Parity bit 8 covers all bit positions which have the fourth least significant bit set: bits 8–15, 24–31, 40–47, etc.
- In general each parity bit covers all bits where the binary AND of the parity position and the bit position is non-zero.
gak paham kan??
lok gitu sama ma saya (soalnya pake bahasa linggis seh, beeuh)
lok gitu sama ma saya (soalnya pake bahasa linggis seh, beeuh)
so, setelah saya cari-cari artikel (padahal masih di kasih tau om wiki aja) muncullah tabel kaya gene ne...
Bit position
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
| |
Encoded data bits
|
p1
|
p2
|
d1
|
p4
|
d2
|
d3
|
d4
|
p8
|
d5
|
d6
|
d7
| |
1
|
2
|
2+1
|
4
|
4+1
|
4+2
|
4+2+1
|
8
|
8+1
|
8+2
|
8+2+1
| ||
Parity
|
p1
|
X
|
X
|
X
|
X
|
X
|
X
| |||||
bit
|
p2
|
X
|
X
|
X
|
X
|
X
|
X
| |||||
coverage
|
p4
|
X
|
X
|
X
|
X
| |||||||
p8
|
X
|
X
|
X
|
X
|
jadi dari tabel ini baru keliatan deh, ternyata mudah sekali untuk menentukan parity bit dari p1,p2,p3 dst.,
dari tabel terlihat bahwa :
- p1 = p1 + d1 + d2 + d4 + d5 + d7
- p2 = p2 + d1 + d3 + d4 + d6 + d7
- dst
- pertanyaannya :
- darimana kok bisa tau?? => liat aja tanda X di tabel,, (hahahaha,,, devils laught)
- kok bisa seh tanda Xnya disana? gimana cara nentuinnya??
- => cara nentuin tanda X bisa diliat dari tabel pada baris ke 3 yang tidak berwarna ijo,
- => jadi tanda X untuk p1 jika dan hanya jika memiliki nilai 1 pada baris ke 3, begitu juga untuk p2, p4, p8, dst..
nah, langkah selanjutnya setelah tahu posisi dari p1,p2,dst apa?? (apa hayooooo??? hehehe)
kita ambil contoh aja yoooo...
misalnya 10111001001 (huruf a pada contoh hamming code pada buku Tanenbaum)
Bit position
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
| |
Encoded data bits
|
p1
|
p2
|
d1
|
p4
|
d2
|
d3
|
d4
|
p8
|
d5
|
d6
|
d7
| |
1
|
0
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
1
| ||
Parity
|
p1
|
1
|
1
|
1
|
0
|
0
|
1
| |||||
bit
|
p2
|
0
|
1
|
0
|
0
|
0
|
1
| |||||
coverage
|
p4
|
1
|
1
|
0
|
0
| |||||||
p8
|
1
|
0
|
0
|
1
|
dari tabel didapat
(dengan paritas genap)
p1 = 1 + 1 + 1 + 0 + 0 + 1 = genap
p2 = 0 + 1 + 0 + 0 + 0 + 1 = genap
p4 = 1 + 1 + 0 + 0 = genap
p8 = 1 + 0 + 0 + 1 = genap
jadi benaaaaar kaaaan..
gimana lok kita ubah sekarang, apakah benar bisa memperbaiki??
gimana lok kita ubah sekarang, apakah benar bisa memperbaiki??
misalnya : 10011001001
Bit position
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
| |
Encoded data bits
|
p1
|
p2
|
d1
|
p4
|
d2
|
d3
|
d4
|
p8
|
d5
|
d6
|
d7
| |
1
|
0
|
0
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
1
| ||
Parity
|
p1
|
1
|
0
|
1
|
0
|
0
|
1
| |||||
bit
|
p2
|
0
|
0
|
0
|
0
|
0
|
1
| |||||
coverage
|
p4
|
1
|
1
|
0
|
0
| |||||||
p8
|
1
|
0
|
0
|
1
|
dari tabel didapat
p1 = 1 + 0 + 1 + 0 + 0 + 1 = ganjil
p2 = 0 + 0 + 0 + 0 + 0 + 1 = ganjil
p4 = 1 + 1 + 0 + 0 = genap
p8 = 1 + 0 + 0 + 1 = genap
p1 = d1, d2, d4, d5, d7
p2 = d1, d3, d4, d6, d7
p4 = d2, d3, d4
p8 = d5, d6, d7
jadi dari list diatas tidak mungkin d2,d3,d4,d5,d6 dan d7 yang salah sehingga kode yang benar akan menjadi
10011001001 => 10111001001 (ahaaaaa... benar sekali...)
SEKIAN UNTUK HAMMING CODE..
MOGA TULISAN INI BISA MEMBANTU ANDA DALAM MENGERJAKAN TUGAS TENTANG HAMMING CODE..
d(^_^)b
d(^_^)b
maaf mau tanya kalo nentuin p1, p2,p4 dan p8 nya dari mana ya?
BalasHapusoh ia ngerti 2^n ya.. thanks artikelnya sangat membantu
HapusKomentar ini telah dihapus oleh pengarang.
BalasHapusbagaimana jika Bit Parity adalah bit yang eror?
BalasHapus