Anda di halaman 1dari 13

TUGAS AOK

KODE HAMMING

OLEH KELOMPOK 9 KELAS 15 A1


AZIS KURNIAWAN (15111100001)
SIDIK YULIANTO (15111100011)
EBEID P (151111000__)

UNIVERSITAS PGRI YOGYAKARTA TAHUN


AKADEMIK 2015/2016
Pada era sekarang ini teknologi semakin pesat berkembang. Dengan pekembanga itu lah

sitem operasi yang kita semakin menarik dan canggih. Pada dasar nya system operasi yang kita

gunakan hanya kumpulana dari bilangan binner yaitu [ 0 dan 1 ] yang membentuk sebuah

huruf,angka dan symbol sehingga mejadi sebuah aplikasi seperti yang kita gunakan pada saat ini.

Kelancaran penyampaian dan penyebaran data ini akan membawa dampak kepada kelancaran

suatu proses. Tapi,tidak semua data yang kita ingin kan berjalan dengan lancar. Suatu saat kita

akan menemukan kesalahan ( error ) pada aplikasi tersebut.

Ada beberapa metode yang digunakan untuk mendeteksi error dan mengkoreksi error

yang terjadi. Salah satu-nya adalah dengan menggunakan metode hamming code. Metode ini

merupakan salah satu jenis linier error correction code yang sederhana.keuntungan yang

didapatkan dengan metode ini adalah cara kerjanya yang cukup sederhana dan tidak

membutuhkan alokasi memori yang banyak. Oleh karena itu kelompok kami termmotovasi untuk

mengungkap konsep dan mengimplementasikan metode hamming code tersebut untuk

melakukan pemeriksaan dan pemulihan kesalahan ( error ) pada data berbentuk teks yang

ditransmisikan dari computer yang kita gunakan. Dengan menggunakan metode hamming code

kita dapat meminimalisir terjadinya kerusakan pada proses transmisi data.

Rumusan Masalah

Ada pun tujuan makalah ini di buat, yakni ;

metode hamming code

cara kerja / implementasi hamming code

apa yang dimaksud dengan bit parity


Agar pemabaca dapat mengetahui sebarapa penting nya metode hamming code yang

untuk memdetksi sebuah kesalahan pada aplikasi yang kita gunakan. Dengan metode hamming

code, kita dapat meminimalisir kesalahan ( error ) yang kita temui pada saat sedang bekerja pada

aplikasi yang kita gunkan. Selain itu, hamming code juga dapat membatu dan mempermudah

pekerjaan kita untuk memperbaiki kesalah yang kita temui.

BAB II

PEMBAHASAN

1. Metode 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 ).

Definisi Hamming Code

Diciptakan Richard Hamming di Bell Lab pada 1950 Mekanisme pendeteksian kesalahan dengan
menyimpan parity check bit (bit cek paritas) bersama bit-bit data asli sebagai penanda pola data,
untuk memeriksa apakah ada data yang berubah Pemikiran dasar: dari serentetan bit data pasti
bias didapatkan sebuah ciri yang menunjukkan keterhubungan antar data. Ciri tersebut disimpan
sebagai check bit. Hamming code adalah Mekanisme pendeteksian kesalahn dengan
menggunakan data word (D) dengan kode.Data yang disimpan memiliki panjang D + C.
Kesalahan dapat diketahui dengan menganalisa data dan bit paritas tersebut. Hamming code juga
dapat diartikan sabagai kode tunggal pengoreksi kesalahan. Kode Hamming adalah seperangkat
koreksi kesalahan kode yang dapat digunakan untuk mendeteksi dan memperbaiki kesalahan bit
yang dapat terjadi ketika data komputer dipindahkan atau disimpan.

Seperti koreksi kesalahan kode, kode Hamming memanfaatkan konsep paritas dan bit
paritas, yang merupakan bit yang ditambahkan ke data sehingga validitas data dapat diperiksa
ketika dibaca atau setelah telah diterima di transmisi data. Menggunakan lebih dari satu bit
paritas, kode koreksi kesalahan tidak bisa hanya mengidentifikasi kesalahan bit tunggal d
Hamming code merupakan sistem yang dikembangkan dari error correction code yang
mengunakan parity bit, selain Hamming Code banyak juga sistem lain yang lebih efisien dalam
error correction code pada data yang terdiri dari banyak bit. Karena pengecekan secara parity ini
juga maka kita dapat mengecek kode-kode yang ada. Linear error-correction code memiliki
berbagai keterbatasan kesalahan. Pada Hamming Code, kesalahan yang dapat diketahui hanya 1 (
satu ) buah sedangkan yang dapat dideteksi adalah 2 ( dua ) buah

Check bit kemudian disisipkan pada data pada posisi yang dihitung menggunakan rumus
perhitungan posisi check bit.

Rumus perhitungan posisi Check Bit Ci = 2i-1

Sehingga dengan rumus posisi tersebut, didapat posisi check bit yang akan diletakkan pada data
diperlihatkan pada gambar.
Untuk bisa mengerti tentang penanganan error, kita perlu melihat dari dekat tentang apa yang
disebut error itu. Biasanya, sebuah frame terdiri dari m bit data (yaitu pesan) dan r redundan,
atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r). Sebuah satuan n-bit yang berisi
data dan checkbit sering kali dikaitkan sebagai codeword n-bit.
Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat menentukan berapa
banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk
menentukannya cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan
menghitung jumlah bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda
disebut jarak Hamming (Hamming, 1950).
Hal yang perlu diperhatikan adalah bahwa bila dua codeword terpisah dengan jarak Hamming d,
maka akan diperlukan error bit tunggal d untuk mengkonversi dari yang satu menjadi yang
lainnya.
Pada sebagian besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal.
Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila
ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk membuat
daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua codeword yang jarak
Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap.
Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada jarak Hamming-
nya. Untuk mendeteksi d error, anda membutuhkan kode dengan jarak d+1 karena dengan kode
seperti itu tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang valid
menjadi
codeword valid lainnya. Ketika penerima melihat codeword yang tidak valid, maka penerima
dapat berkata bahwa telah terjadi error pada transmisi. Demikian juga, untuk memperbaiki error
d, anda memerlukan kode yang berjarak 2d+1 karena hal itu menyatakan codeword legal dapat
terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword
lainnya, maka perbaikan error dapat ditentukan secara unik.
Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana
parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bit-bit 1 dalam codeword
menjadi genap (atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan
menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan
dengan parity genap 10110001 menjadi 101100010. Sebuah kode dengan parity bit tunggal
mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan
parity yang salah. Cara ini dapat digunakan untuk mendeteksi erro-error tunggal.
Sebagai contoh sederhana dari kode perbaikan error, ambil sebuah kode yang hanya memiliki
empat buah codeword valid :

0000000000,0000011111,1111100000 dan 1111111111

Kode ini mempunyai jarak 5, yang berarti bahwa code tersebut dapat memperbaiki error ganda.
Bila codeword 0000011111 tiba, maka penerima akan tahun bahwa data orisinil seharusnya
adalah 0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111,
maka error tidak akan dapat diperbaiki.
Bayangkan bahwa kita akan merancang kode dengan m bit pesan dan r bit check yang akan
memungkinkan semua error tunggal bisa diperbaiki. Masing-masing dari 2m pesan yang legal
membutuhkan pola bit n+1. Karena jumlah total pola bit adalah 2n, kita harus memiliki (n+1)2m
£ 2n.
Dengan memakai n = m + r, persyaratan ini menjadi (m + r + 1)£2r. Bila m ditentukan, maka ini
akan meletakkan batas bawah pada jumlah bit check yang diperlukan untuk mengkoreksi error
tunggal.
Dalam kenyataannya, batas bawah teoritis ini dapat diperoleh dengan menggunakan metoda
Hamming (1950). Bit-bit codeword dinomori secara berurutan, diawali dengan bit 1 pada sisi
paling kiri. Bit bit yang merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check.
Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity
sebagian kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau ganjil). Sebuah bit dapat
dimasukkan dalam beberapa komputasi parity. Untuk mengetahui bit check dimana bit data pada
posisi k berkontribusi, tulis ulang k sebagai jumlahan pangkat 2. Misalnya, 11=1+2+8 dan
29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11
dicek oleh bit 1,2 dan 8).
Ketika sebuah codeword tiba, penerima menginisialisasi counter ke nol. Kemudian codeword
memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah bit check tersebut mempunyai
parity yang benar. Bila tidak, codeword akan menambahkan k ke counter. Bila counter sama
dengan nol setelah semua bit check diuji (yaitu, bila semua bit checknya benar), codeword akan
diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah
bit yang tidak benar. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan (error), maka bit
inversinya adalah 11, karena itu hanya satu-satunya yang diperiksa oleh bit 1,2, dan 8. Gambar
3.10 menggambarkan beberapa karakter ASCII 7-bit yang diencode sebagai codeword 11 bit
dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit
3,5,6,7,9,10,11.

Kode Hamming hanya bisa memperbaiki error tunggal. Akan tetapi, ada trick yang dapat
digunakan untuk memungkinkan kode Hamming dapat memperbaiki error yang meletup.
Sejumlah k buah codeword yang berurutan disusun sebagai sebuah matriks, satu codeword per
baris. Biasanya, data akan ditransmisikan satu baris codeword sekali, dari kiri ke kanan. Untuk
mengkoreksi error yang meletup, data harus ditransmisikan satu kolom sekali, diawali dengan
kolom yang paling kiri. Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan,
dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per
satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword
akan terpengaruh. Akan tetapi kode Hamming dapat memperbaiki satu error per codeword,
sehingga seluruh blok dapat diperbaiki. Metode ini memakai kr bit check untuk membuat km bit
data dapat immune terhadap error tunggal yang meletup dengan panjang k atau kurang.

Proses Pendeteksian Error

a. 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.
b. Tandai posisi bit yang merupakan posisi dari check bit. Posisi selain posisi check bit
merupakan posisi data bit.
c. Tentukan rumus perhitungan dari masing-masing check bit.untuk n = 1 hingga jumlah
dari check bit, lakukan hal berikut:
1. 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.

2. Implementasi Hamming Code

Seluruh proses pada fase perancangan akan di transformasikan pada fase

pemrograman ke dalam produk perangkat lunak. Pada fase ini, perangkat lunak di bangun

dengan menggunakan bahasa pemrograman. Berikut adalah kebutuhan sumber daya yang di

perlukan untuk menjalankan perngkat lunak dan tampilan ketika perangkat lunak tersebut di

jalankan .

Contoh proses hamming code dengan mengunakan kata “ halo ” ;

- Penyisipan check bit


Hitung panjang data masukan : HALO . Halo = 4 karakter. 1 karakter = 1 byte = 8 bit. Halo : 32

bit = 0100 | 1000 | 0100 | 0001 | 0100 | 1100 | 0100 | 1111 . 32 bit = 2 pangkat 5 bit. Maka check

bit = 5 + 1 = 6 bit.

Sehingga panjang bit yang akan di kirim : 32 + 6 bit = 38 bit. Hasil nya : panjang bit yang

di terima = 38, original bit = 32, check bit = 6. Check bit yang di dapat = 010110 dan check bit

yang di ekstrak 010110. Kesimpulannya, bit yang kita dapat sama, itu membuktikan bahwa kata

“ halo “ yang kita kirimkan tidak terdapat keslahan. Jika bit yang terdeteksi tidak sama dengan

bit original nya, maka bit tersebut mengalamin sebuah kesalahan. Contoh nya saja. Original =

010110 dan setelah di check hasil nya berbeda menjadi 011110.

- flowchart

3. Pengertian 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

0+1=1 Ganjil

1+0=1 Ganjil

1+1=0 Genap

Sebagai contoh, kode BCD 8421 yang dimodifikasi dengan menambahkan parity bit.

Tabel kode BCD dengan Bit Parity [5]

Kode BCD Kode BCD Parity Kode BCD Dengan Parity


Desimal
B8 B4 B2 B1 Ganjil Genap
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
2 0 0 1 0 0 0 1 0 0 0 0 1 0 1
3 0 0 1 1 0 0 1 1 1 0 0 1 1 0
4 0 1 0 0 0 1 0 0 0 0 1 0 0 1
5 0 1 0 1 0 1 0 1 1 0 1 0 1 0
6 0 1 1 0 0 1 1 0 1 0 1 1 0 0
7 0 1 1 1 0 1 1 1 0 0 1 1 1 1
8 1 0 0 0 1 0 0 0 0 1 0 0 0 1
9 1 0 0 1 1 0 0 1 1 1 0 0 1 0
CONTOH PENENTUAN SANDI BARU DENGAN METODE SANDI HAMMING
Misal akan dicari sandi baru untuk pesan A yang mempunyai sandi lama 01101.
Perkalian matrix H dengan vektor T, yang mempunyai 5 elemen pertama sama dengan sandi
lama yang akan diubah dan 4 elemen berikutnya adalah elemen yang akan dicari nilainya

Sandi baru diperoleh dengan menggabungkan sandi lama dengan 4 elemen baru. Dengan
demikian sandi baru untuk pesan A adalah 011011100. Sandi baru untuk ke 32 pesan diatas
dapat dilihat pada tabel dibawah ini.

SANDI SANDI
PESAN
LAMA BARU
A 01101 011011100
B 00001 000010011
C 00010 000101100
D 00011 000111111
E 00100 001000101
F 00101 001010110
G 00110 001101001
H 00111 001111010
I 10010 100100011
J 01001 010011001
K 01010 010100110
L 11010 110101001
M 01011 010110101
N 11101 111010011
O 11100 111000000
P 11110 111101100
Q 11001 110010110
R 11000 110000101
S 10101 101011001
T 10100 101001010
U 11011 110111010
V 00000 000000000
W 01000 010001010
X 11111 111111111
Y 10110 101100110
Z 10111 101110101
. 01100 011001111
, 10011 100110000
? 01110 011100011
! 10001 100011100
: 01111 011110000
= 10000 100001111

4. CONTOH PELACAKAN KESALAHAN

Dikirimkan suatu pesan yang oleh penerima pesan tersebut diterima sebagai sandi
101111111. Untuk melihat apakah pesan ini benar atau tidak, maka pesan yang diterima tersebut
harus dicek.
Untuk mengecek sandi yang diterima, perlu dicari isyarat sindrom, yaitu perkalian antara
matrix H dengan sandi yang diterima. Hasil perkaliannya adalah sebagai berikut :
Isyarat sindrom yang diperoleh dari perhitungan diatas adalah [ 1 0 1 0 ] -1. Jika isyarat sindrom
ini dicocokan dengan matrix H, terlihat bahwa isyarat sindrom cocok dengan kolom ke 2.
Dengan demikian, kesalahan terjadi pada angka ke 2, yaitu dari angka “0” harus diubah menjadi
angka “1”.

5. KOREKSI ERROR

Mekanisme pendeteksian kesalahan dengan menambahkan data word (D) dengan suatu
kode, biasanya bit cek paritas (C). Sehingga data yang disimpan memiliki panjang D + C.
Kesalahan akan diketahui dengan menganalisa data dan bit paritas tersebut. Mekanisme
perbaikan kesalahan yang paling sederhana adalah kode Hamming. Disajikan tiga lingkaran
Venn (A, B, C) saling berpotongan sehingga terdapat 7 ruang. Metode diatas adalah koreksi
kesalahan untuk word data 4 bit (D =4). Gambar (a) adalah data aslinya. Kemudian setiap
lingkaran harus diset bit logika 1 berjumlah genap sehingga harus ditambah bit – bit paritas pada
ruang yang kosong seperti gambar (b).
Apabila ada kesalahan penulisan bit pada data seperti gambar (c) akan dapat diketahui
karena lingkaran A dan B memiliki logika 1 berjumlah ganjil. Lalu bagaimana dengan word
lebih dari 4 bit ?
Ada cara yang mudah yang akan diterangkan berikut. Sebelumnya perlu diketahui jumlah
bit paritas yang harus ditambahkan untuk sejumlah bit word. Contoh sebelumnya adalah koreksi
kesalahan untuk kesalahan tunggal yang sering disebut single error correcting (SEC). Jumlah bit
paritas yang harus ditambahkan lain pada double error correcting (DEC). Tabel dibawah ini
menyajikan jumlah bit paritas yang harus ditambahkan dalam sistem kode Hamming.

# Data Bits # Bit Paritas SEC # Bit Paritas DEC


8 4 5
16 5 6
32 6 7
64 7 8
128 8 9
512 9 10

6. CONTOH KOREKSI KODE HAMMING DENGAN 8bit DATA


Dari tabel yang disajikan diatas untuk 8 bit data diperlukan 4 bit tambahan sehingga
panjang seluruhnya adalah 12 bit. Layout bit disajikan seperti dibawah ini :
Bit cek paritas ditempatkan dengan perumusan 2N dimana N = 0,1,2, ……, sedangkan
bit data adalah sisanya. Kemudian dengan exclusive-OR dijumlahkan sebagai berikut :

Setiap cek bit (C) beroperasi pada setiap posisi bit data yang nomor posisinya berisi
bilangan 1 pada kolomnya. Sekarang ambil contoh suatu data, misalnya masukkan data :
00111001 kemudian ganti bit data ke 3 dari 0 menjadi 1 sebagai error-nya.

Bagaimanakah cara mendapatkan bit data ke 3 sebagai bit yang terdapat error?

Jawaban :
Masukkan data pada perumusan cek bit paritas :
Sekarang bit 3 mengalami kesalahan sehingga data menjadi: 00111101

Apabila bit – bit cek dibandingkan antara yang lama dan baru maka terbentuk syndrome word :

Sekarang kita lihat posisi bit ke-6 adalah data ke-3. Mekanisme koreksi kesalahan akan
meningkatkan realibitas bagi memori tetapi resikonya adalah menambah kompleksitas
pengolahan data. Disamping itu mekanisme koreksi kesalahan akan menambah kapasitas memori
karena adanya penambahan bit – bit cek paritas. Jadi ukuran memori akan lebih besar beberapa
persen atau dengan kata lain kapasitas penyimpanan akan berkurang karena beberapa lokasi
digunakan untuk mekanisme koreksi kesalahan.

BAB III

PENUTUP

1. Kesimpulan

Dari penjelasan di atas, dapat kita simpulakan bahwa deskripsi arsitektural hamming code

merupakan jalur atau susunan rumus untuk mendeteksi sebuah kesalahan dalam system operasi.

dengan hamming code pekerjaan kita dalam meminimalisir sebuah kesalahan jadi sangan mudah.

Hamming code merupakan suatu cara untuk memperbaiki kesalahan – kesalahan dalam system

operasi yang kita gunakan dengan ketentuan rumus yang sudah di tetapkan pada metode

hamming.

2. Saran
Guna untuk mengembangkan pengetahuan di bidang ilmu teknologi. Dengan

mengenalkan deskripsi arsitektural hamming code kita dapat dengan mudah mengecek bahkan

memperbaiki sebuah kesalahan yang sering kita temui di dalam system operasi yang kita

gunakan untuk mempermudah pekerjaan. Sebaiknya, sebelum kita memulai menggunakan

system operasi kita juga harus mengetahui apa – apa saja yang sering terjadi pada aplikasi yang

kita gunakan. Untuk mengetahui hal itu, terlebih dahulu kita harus mempelajari metode hamming

code. Dengan mempelajari hamming code, kita dapat meminimalisir sebuah kesalahan ( error ).

Refernsi

1. http://feeshekaferniii.blogspot.co.id/2012/09/code-hamming.html
2. http://daniheri.blogspot.co.id/2015/03/pengertian-hamming-kode.html
3. http://cahaya-pertama.blogspot.co.id/2011/12/hamming-code-hammnig-code-
merupakan.html
4. http://buttonlinux.blogspot.co.id/2010/05/hamming-code.html
5. http://fundester.blogspot.co.id/2015/02/makalah-hamming-code.html
6. http://dokumen.tips/documents/makalah-hamming-code.html

Anda mungkin juga menyukai