METODE HAMMING By Galih Pranowo Emailing [email protected] PENDAHULUAN Dalam era kemajuan teknologi komunikasi digital, maka persoalan yang utama adalah bagaimana menyandikan isyarat analog menjadi isyarat digital yang berupa sandi biner. Isyarat sandi biner ini diharapkan kebal terhadap gangguan pengiriman dan mempunyai pesat informasi optimum. Dalam melaksanakan fungsi penyimpanan, memori semikonduktor dimungkinkan mengalami kesalahan. Baik kesalahan berat yang biasanya merupakan kerusakan fisik memori maupun kesalahan ringan yang berhubungan data yang disimpan. Kesalahan ringan dapat dikoreksi kembali. Untuk mengadakan koreksi kesalahan data yang disimpan diperlukan dua mekanisme, yaitu mekanisme pendeteksian kesalahan dan mekanisme perbaikan kesalahan. 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. Metode ini diciptakan Richard Hamming di Bell Lab pada tahun 1950. Untuk mengurangi bahkan menghilangkan kesalahan sandi biner dapat juga mengggunakan metode Hamming. Dalam tulisan ini akan dibahas untuk koreksi galat satu digit dan koreksi kesalahan untuk word data. Metode Hamming by Gapra 1 METODE HAMMING PENGENDALIAN GALAT SANDI BINER Banyak ragam cara pengendalian galat sandi biner, diantaranya adalah dengan cara “Hamming”, “Block Coding” dan sebagainya. Dalam tulisan ini dibahas salah satu cara pengendalian galat untuk satu digit kesalahan dengan metode Hamming, yang merupakan matrix H untuk melacak kesalahan sandi yang diterima. Sandi digital yang dikirimkan sebagai pulsa angka “0” dan angka “1” agar dapat dikoreksi galat yang mungkin terjadi pada penerima perlu disandikan kembali menggunakan metode Hamming. Dipilih matrix Ħ yang menghasikan H.T = 0, dengan T adalah vektor yang elemen-elemennya merupakan sandi digital yang akan dikirimkan. Matrix H terdiri dari r kolom matrix diagonal dan n kolom matrix sembarang, dengan n adalah cacah digit digital yang akan dikirimkan. Pada pesawat penerima atau pengawa-sandian, isyarat yang diterima, dimisalkan sebagai vektor R, dikalikan kembali dengan matrix H dan menghasilkan isyarat sindrom S. Bila S = H.R = 0, berarti isyarat yang diterima sudah benar atau cocok dengan isyarat yang dikirimkan. Tetapi jika S = H.R ≠ 0, berarti isyarat yang diterima ada kesalahan. Kesalahan yang terjadi bisa dilihat dari isyarat sindrom yang terbentuk. Dengan mencocokan isyarat sindrom dengan matrix H akan dapat diketahui kesalahan yang terjadi pada angka ke berapa. Sebagai contoh, jika isyarat sindrom cocok dengan kolom ke 5, berarti kesalahan terjadi pada angka ke 5 dari pesan yang dikirimkan. Diatas telah disebutkan bahwa matrix H bisa dipilih sembarang, dengan ketentuan tidak boleh ada kolom yang mempunyai elemen-elemen persis sama. Dengan alasan inilah, maka matrix H dipilih sebagai berikut : 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 H= Metode Hamming by Gapra 2 CONTOH PENENTUAN SANDI BARU DENGAN METODE 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, dapat dinyatakan sebagai berikut : 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 T= 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 1 1 0 1 C 1 C 2 C 3 C 4 0 0 = 0 0 Dari hasil perkalian diatas diperoleh nilai C = 1 C = 0 C = 1 C = 0 1 2 3 4 Sandi baru diperoleh dengan menggabungkan sandi lama dengan 4 elemen baru yang diperoleh dari perhitungan diatas. Dengan demikian sandi baru untuk pesan A adalah 011011100. Sandi baru untuk ke 32 pesan diatas dapat dilihat pada tabel dibawah ini. Tabel Sandi Lama dan Sandi Baru Pesan Sandi Lama Sandi Baru A B C D E F G H I J 01101 00001 00010 00011 00100 00101 00110 00111 10010 01001 011011100 000010011 000101100 000111111 001000101 001010110 001101001 001111010 100100011 010011001 Metode Hamming by Gapra 3 Pesan Sandi Lama Sandi Baru K L M N O P Q R S T U V W X Y Z . , ? ! : = 01010 11010 01011 11101 11100 11110 11001 11000 10101 10100 11011 00000 01000 11111 10110 10111 01100 10011 01110 10001 01111 10000 010100110 110101001 010110101 111010011 111000000 111101100 110010110 110000101 101011001 101001010 110111010 000000000 010001010 111111111 101100110 101110101 011001111 100110000 011100011 100011100 011110000 100001111 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 : Metode Hamming by Gapra 4 1 1 0 1 0 1 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 1 1 1 1 1 1 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”. METODE HAMMING 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. Metode Hamming by Gapra 5 Perhatikan gambar diatas, 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. Tabel Penambahan bit cek paritas untuk koreksi 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 CONTOH KOREKSI KODE HAMMING 8 BIT 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 : Metode Hamming by Gapra 6 Bit cek paritas ditempatkan dengan perumusan 2N dimana N = 0,1,2, ……, sedangkan bit data adalah sisanya. Kemudian dengan exclusive-OR dijumlahkan ebagai 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 : Metode Hamming by Gapra 7 Sekarang bit 3 mengalami kesalahan sehingga data menjadi: 00111101 Apabila bit – bit cek dibandingkan antara yang lama dan baru maka terbentuk syndrom 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. Metode Hamming by Gapra 8