HAMMING CODE
Definisi Hamming Code
Metode
hamming code merupakan salah satu metode pendeteksi error dan pengoreksi error
( error detection and error correction ) yang paling sederhana. Metode ini
menggunakan operasi pendeteksian error maupun pengkoreksian error. Input dan
output dari metode ini merupakan bilangan binner. Hamming code meruapakan salah
satu jenis linier error correcting code yang sederhana dan banyak digunakan
pada peralatan elektronik.
Metode
hamming code bekerja dengan menyisipkan beberapa buah check bit ke data. Jumlah
check bit yang di sisipkan tergantung pada panjang data. Hamming code juga
memiliki rumus tersendiri untuk mendeteksi kesalahan ( error ).
Bit
Parity
Bit
Parity atau disebut juga bit pemeriksa adalah salah satu metode yang digunakan
pada modul I/O dalam mendeteksi kesalahan. Bit paritas bekerja untuk medeteksi
kesalahan pada level bit. Bit partisi yaitu bit tambahan yang
diberikan pada akhir sebuah byte atau baris terakhir untuk digunakan dalam
proses pengecekan kebenaran data pada saat penyimpanan atau proses transmisi.
Terdapat
2 macam cara penambahan Bit Pariti yaitu :
1. Pariti
Ganjil (Odd Parity)
Bit
Paritas di set menjadi 1 apabila jumlah angka 1 dalam kesatuan bit tersebut
(tidak termasuk bit paritas) adalah genap, sehingga menjadikan jumlah bit dalam
kesatuan tersebut (termasuk bit paritas) menjadi ganjil.
2. Pariti
Genap (Even Parity)
Bit
paritas di set menjadi 1 apabila jumlah angka 1 dalam kesatuan tersebut (tifak
termasuk bit paritas) adalah ganjil, sehingga menjadikan jumlah bit dalam
kesatuan tersebut (termasuk bit paritas) menjadi genap.
Dan
perlu diingat sifat gerbang XOR berikut ini:
0 + 0 = 0 Genap
0 + 1 =
1 Ganjil
1 + 0 =
1 Ganjil
1 + 1 =
0 Genap
Mekanisme
dan Cara Kerja
Ada beberapa metode
yang digunakan untuk mendeteksi error dan
mengkoreksi error yang terjadi. Salah
satunya adalah dengan menggunakan metode Hamming Code. Metode
hamming code merupakan salah satu metode
yang paling sederhana. Metode ini menggunakan
operasi logika XOR (Exclusive-OR) dalam
proses pendeteksian error maupun pengkoreksian error. Input dan
output dari metode ini berupa bilangan
biner.
Hamming code merupakan
salah satu jenis linier error correcting
code yang sederhana dan banyak dipergunakan
pada peralatan elektronik .
Metode hamming code bekerja
dengan menyisipkan beberapa buah check bit
ke data. Jumlah check bit yang disisipkan
tergantung pada panjang data. Rumus untuk
menghitung jumlah check bit yang akan disisipkan ke dalam data.
Data 2^n bit, c = (n+1) bit, dimana c adalah jumlah check bit yang
disisipkan.
Tabel 1. Kenaikan data bit dan check bit
Data Bit
|
Check Bit
|
2
|
2
|
4
|
3
|
8
|
4
|
16
|
5
|
32
|
6
|
64
|
7
|
128
|
8
|
256
|
9
|
Check bit kemudian disisipkan pada data pada posisi
yang dihitung menggunakan rumus perhitungan posisi check bit.
Rumus perhitungan posisi Check Bit C^i= 2^(i-1)
Sehingga dengan rumus posisi tersebut, didapat posisi
check bit yang akan diletakkan pada data diperlihatkan pada tabel.
Tabel 2. Tabel posisi check bit
Check Bit
|
Posisi
|
C1
|
1
|
C2
|
2
|
C3
|
4
|
C4
|
8
|
C5
|
16
|
C6
|
32
|
C7
|
64
|
C8
|
128
|
C9
|
256
|
- Proses Pendeteksian Error
- Hitung panjang data masukan dari metode hamming code yang merupakan hasil penjumlahan dari panjang data masukan dengan panjang check bit. Panjang data keluaran dari metode hamming code sama dengan panjang data masukan dari metode hamming code.
- Tandai posisi bit yang merupakan posisi dari check bit. Posisi selain posisi check bit merupakan posisi data bit.
- Tentukan rumus perhitungan dari masing-masing check bit.untuk n = 1 hingga jumlah dari check bit, lakukan hal berikut:
a.) Catat semua posisi dimana
bit n dari member position bernilai 1,
kecuali posisi bit itu sendiri. Member position
merupakan bentuk biner dari posisi bit. Rumus dari check
bit n sama dengan operasi XOR dari posisi-posisi
yang dicatat.
b.) Hitung berapa panjang bit yang diterima dan
original.
c.) Cek tabel posisi check bit dan ekstrak chek
bit nya.
d.) Hitung kembali chek bit nya dengan bit yang
didapat.
e.) Konversikan operasikan XOR ke bentuk
decimal.
Contoh Kasus Hamming Code
Suatu memori internal menyimpan word
8 bit, suatu data 0011 0010 disimpan pada suatu alamat. Hitunglah bit paritas
untuk mendeteksi dan memperbaiki kesalahan. Andaikan bit ke lima mengalami
kesalahan, tunjukkan bagaimana kode Hamming mendeteksi kesalahan tersebut dan
memperbaikinya.
Jawab:
8 bit = 2^n = 2^3. n=3
bit paritas = n+1 = 3+1 = 4
8+4 = 12

P2 (melangkahi 2) = 01101 = 1 sedangkan jika bit 1 berjumlah genap maka = 0)
P4 (melangkahi 3) = 0110 = 0
P8 (melangkahi 4) = 0010 = 1
Andaikan bit 5 mengalami kesalahan, maka:

P1 = 01101 =
1 (salah)
P2 = 01101 =
1 (benar)
P4 = 1110 =
1 (salah)
P8 = 0010 =
1 (benar)
Karena
kesalahan terjadi di P1 dan P4, maka 1+4 = 5. Maka kesalahan terjadi di bit
ke-5
- Kekurangan dan Kelebihan Hamming Code
Kelebihan yang didapatkan dengan
menggunakan metode ini adalah cara kerjanya yang cukup sederhana
dan tidak membutuhkan alokasi memori yang banyak.
Selain itu dengan digunakannya konsep error correcting code pada
metode ini maka jika ditemukan error saat
pendeteksian, data tidak perlu ditransmisikan ulang tetapi langsung
dikoreksi di simpul tujuan.
Sedangkan kekurangan dari metode
Hamming Code adalah tidak dapat mendeteksi bila terjadi dua buah kesalahan
sekaligus. Contohnya bila 1111111 terkirim sebagai 11011110 pada odd parity
code yang seharusnya adalah 11111111.