Hamming code adalah adalah sekumpulan kode koreksi kesalahan yang dapat digunakan untuk mendeteksi dan memperbaiki kesalahan yang dapat terjadi saat data dipindahkan atau disimpan dari pengirim ke penerima. Ini adalah teknik yang dikembangkan oleh Richard .W. Hamming untuk mengkoreksi kesalahan, biasanya digunakan dalam RAM kode koreksi kesalahan (ECC).
Setiap kali data ditransmisikan atau disimpan, ada kemungkinan data menjadi rusak. Ini bisa berupa bit flips, di mana biner 1 menjadi 0 atau sebaliknya. Kode koreksi kesalahan berusaha untuk menemukan ketika kesalahan dimasukkan ke dalam beberapa data.
Ini dilakukan dengan menambahkan bit paritas, atau informasi redundan, ke data. Jika cukup data paritas ditambahkan, ini memungkinkan koreksi kesalahan maju (FEC), di mana kesalahan dapat diperbaiki secara otomatis saat dibaca kembali.
FEC dapat meningkatkan kecepatan transmisi data untuk saluran yang berisik dengan mengurangi jumlah transmisi ulang yang diperlukan. Kode Hamming menggunakan mekanisme paritas blok. Data dibagi menjadi blok, dan paritas ditambahkan ke blok. Kode Hamming dapat memperbaiki kesalahan bit tunggal dan mendeteksi adanya kesalahan dua bit dalam blok data.
Bit redundan – Bit redundan adalah bit biner ekstra yang dihasilkan dan ditambahkan ke bit pembawa informasi dari transfer data untuk memastikan bahwa tidak ada bit yang hilang selama transfer data. Jumlah bit redundan dapat dihitung dengan menggunakan rumus berikut:
Sebelum ada Hamming Code , ada beberapa metode koreksi kesalahan yang digunakan yang tidak seefisien atau seefektif itu. Metode paling sederhana melibatkan penambahan bit paritas tunggal. Ini dapat mendeteksi satu kesalahan tetapi tidak mendeteksi kesalahan dua-bit atau memperbaiki kesalahan. Metode lain mengulangi setiap bit tiga kali.
Ini dapat mendeteksi dan memperbaiki kesalahan satu bit tetapi bukan kesalahan dalam dua bit. Mengulang bit juga sangat tidak efisien. Richard Hamming bekerja untuk Bell Labs pada 1940-an dan 1950-an. Selama waktu itu, komputer menggunakan relai dan membaca informasi dari pita kertas berlubang.
Sistem ini sering rentan terhadap kesalahan yang berkaitan dengan pita kertas yang salah dibaca atau relay macet. Jika ada operator saat kesalahan terjadi, program dapat dimulai ulang; jika kesalahan terjadi di luar jam kerja, komputer akan melewati seluruh program, kehilangan waktu dan pekerjaan. Hamming beralasan, jika komputer dapat mendeteksi kesalahan, itu juga dapat memperbaiki kesalahan tersebut. Jadi, dia mulai mengerjakan algoritme koreksi kesalahan, dan pada tahun 1950, dia menerbitkan kode Hamming.
Algoritma Hamming Code
Kode Hamming hanyalah penggunaan bit paritas ekstra untuk memungkinkan identifikasi kesalahan.
- Tulis posisi bit mulai dari 1 dalam bentuk biner (1, 10, 11, 100, dst).
- Semua posisi bit yang merupakan pangkat 2 ditandai sebagai bit paritas (1, 2, 4, 8, dst).
- Semua posisi bit lainnya ditandai sebagai bit data.
- Setiap bit data termasuk dalam kumpulan bit paritas yang unik, sebagaimana ditentukan posisi bitnya dalam bentuk biner. sebuah. Bit paritas 1 mencakup semua posisi bit yang representasi binernya mencakup 1 pada posisi paling tidak signifikan (1, 3, 5, 7, 9, 11, dll). b. Bit paritas 2 mencakup semua posisi bit yang representasi binernya mencakup 1 di posisi kedua dari bit paling tidak signifikan (2, 3, 6, 7, 10, 11, dll). c. Bit paritas 4 mencakup semua posisi bit yang representasi binernya mencakup 1 di posisi ketiga dari bit paling tidak signifikan (4–7, 12–15, 20–23, dll). d. Bit paritas 8 mencakup semua posisi bit yang representasi binernya mencakup 1 di posisi keempat dari bit bit paling signifikan (8-15, 24-31, 40-47, dll). e. Secara umum, setiap bit paritas mencakup semua bit yang bitwise AND dari posisi paritas dan posisi bit bukan nol.
- Karena kita memeriksa paritas genap, atur bit paritas ke 1 jika jumlah total yang ada di posisi yang diperiksanya ganjil.
- Setel bit paritas ke 0 jika jumlah total yang ada di posisi yang diperiksanya genap.

Atau lebih lengkap bisa lihat video dibawah ini :