You are on page 1of 5

Hamming Code

Pendahuluan Pada pengiriman data, kanal transmisi dapat menimbulkan kesalahan yang menyebabkan data yang diterima berubah.Untuk itu harus digunakan penkodean,pada tesis ini dibuat pengkodean Hamming 7,4 yang dapat memperbaiki satu kesalahan tiap codewordnya.Jadi data yang panjang dipotong menjadi blok-blok kecil.Perblok terdiri dari 4 bit data,dengan codeword sejumlah 7 berarti ditambah 3 bit pariti. Kode Hamming im diimplementasikan ke dalam FPGA (FieldProgrammable Gate Array) Xilink XC4010.Didalam FPGA dibangun encoder dan decoder. Dalam pengujian encoder dan decoder ini dapat sesuai dengan yang direncanakan. Kemudian encoder dan decoder (codec) ini dievaluasi pada kanal radio dengan frekensi 100 MHz. Dengan mengubah-ubah sinyal yang diterima oleh penerima radio,artinya sama dengan berubahnya SNR, kode ini mampu mengurangi kesalahan. Bilangan biner Bilangan biner adalah bilangan yang hanya menggunakan 2 angka, yaitu 0 dan 1. Bilangan biner juga disebut bilangan berbasis 2. Setiap bilangan pada bilangan biner disebut bit, dimana 1 byte = 8 bit. Contoh penulisan : 1101112.

Sejarah pendek terciptanya Hamming Code yaitu ; Hamiing code didciptakan oleh Richard Hamming di Bell Lab tahun 1950.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. Deteksi Masalah Error di memory: kerusakan data: macet di 0 atau 1, atau berubah-ubah antara 0 dan 1 Jenis Error: Hard Failure Bersifat permanen, fisik, disebabkan penggunaan yang tidak semestinya, cacat pabrik atau usia Jenis Error: Soft Error Random, non-destructive Tidak permanen, disebabkan masalah power supply atau Dideteksi dengan Hamming error correcting code Dalam melaksanakan fungsi penyimpanan, memori semikonduktor dimungkinkan mengalami kesalahan.Kesalahan berat yang biasanya merupakan kerusakan fisik memori .Kesalahan ringan yang berhubungan data yang disimpan.Kesalahan ringan dapat dikoreksi kembali. Koreksi kesalahan data yang disimpan diperlukan dua mekanisme Mekanisme pendeteksian kesalahan Mekanisme perbaikan kesalahan Mekanisme koreksi kesalahan akan meningkatkan realibitas bagi memori.Menambah kompleksitas pengolahan data. Menambah kapasitas memori karena adanya penambahan bit bit cek paritas. Memori akan lebih besar beberapa persen atau dengan kata lain kapasitas penyimpanan akan berkurang karena beberapa lokasi digunakan untuk mekanisme koreksi kesalahan. Kode Hamming Mendeteksi Masalah 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 Apa Yang Dikerjakan Oleh Sistem Biner dan Apa Saja Macam-Macam Pengkodean Biner? Sistem biner menggunakan status listrik on atau off sebagai representasi data dan instruksi. Sistem desimal yang kita kenal selama ini terdiri dari 10 digit, yaitu 0, 1, 2, 3, 4, 5, 6, 7, 8 dan 9. Sebaliknya sistem biner hanya menggunakan dua digit 0 dan 1, jadi pada komputer 0 berarti listrik mati dan 1 berarti listrik hidup. Meskipun sistem biner tidak diperuntukan khusus bagi komputer, tetapi semua data dan instruksi program yang ditangani komputer direpresentasikan dengan angka-angka biner. Sebagai contoh huruf G merupakan terjemahan dari sinyal listrik 01000111 atau off-on-off-off-off-on-on-on. Ketika Anda menekan tuts huruf G pada keyboard, huruf tersebut akan dikonversi secara otomatis sebagai rangkaian getaran listrik yang dapat dikenali oleh komputer. Pada komputer, huruf G direpresentasikan sebagai kombinasi delapan transistor. Sebagian transistor off atau tertutup (lambang angka 0) dan sebagian yang lain on atau terbuka (lambing angka 1). Menghitung Kapasitas, berapa banyak representasi angka 0 dan 1 yang bisa ditangani oleh sebuah komputer atau tersimpan di dalam alat penyimpan semisal hardisk? Kapasitas ini dinyatakan dengan bit, byte dan beberapa istilah turunanya ; Bit : Dalam sistem biner, setiap 0 atau 1 dinamakan 1 bit, yaitu singkatan dari binary digit (digit biner). Byte : Untuk mempresentasikan huruf, angka, atau karakter khusus (misal ! atau *). Bit digabungkan dalam beberapa grup. Sebuah grup yang terdiri dari 8 bit disebut byte, dan sebuah byte mempresentasikan sebuah karakter, digit, atau nilai lain. (Seperti yang dicontohkan di depan, rangkaian 01000111 melambangkan huruf G.) Kapasitas memori komputer atau disket direpresentasikan sebagai jumlah byte atau kelipatannya, semisal kilobyte dan megabyte. Kilobyte: satu kilobyte (KB) kira-kira sebesar 1.000 byte (sebenarnya 1 kilobyte secara persis sama dengan 1.024 byte, tetapi angka ini biasa dibulatkan). Kilobyte sering digunakan sebagai unitpengukuran kapasitas untuk memori atau alat penyimpan sekunder pada komputer-komputer lama. Megabyte: satu megabyte (MB) kira-kira sebesar 1 juta byte. (sebenarnya 1.048.576 byte). Saat ini, ukuran kapasitas penyimpan primer dilambangkan dalam megabyte(MB). Gigabyte : satu gigabyte (GB) kira-kira sebesar 1 miliar byte (1.073.741.824 byte). Dahulu, satuan gigabyte digunakan pada komputer besar (mainframe). Tetapi, satuan ini sudah umum dipakai untuk mengukur kapasitas penyimpan sekunder (hardisk) mikrokomputer. Terabyte: satu terabyte (TB) merepresentasikan 1 triliun byte (1.009.511.627.776 byte). Sekarang ini, beberapa alat penyimpan berkapasitas besar dinyatakan dalam satuan terabyte. Petabyte: satu petabyte (PB) kira-kira sebesar 1 kwadriliun byte(1.048.576 gigabyte). Saat ini, kapasitas database modern yang sangat besar dinyatakan dalam petabyte. Exabyte: satu exabyte (EB) kira-kira sebesar 1 kwantilyun bite atau 1 miliar miliar byte (1.024 petabyte atau 1.152.921.504.606.846.976 byte). Satuan ini masih jarang dipakai. Skema kode biner, Huruf, angka dan karakteristik-karakteristik khusus pada komputer direpresentasikan dengan skema pengkodean biner (lihat tabel skema kode biner). Artinya, nilai off/on 0 dan 1 disusun dengan cara tertentu agar bisa merepresentasikan karakter, digit atau bentuk-bentuk lain. EBCID: Dibaca eb-see-dick, EBCDIC (Extended Binary Coded Decimal Interchange Code)

adalah kode biner yang digunakan pada komputer-komputer besar semisal mainframe. Skema ini dikembangkan pada tahun 1963-1964 oleh IBM dan menggunakan 8 bit (1 byte) untuk setiap karakter. ASCII: Dibaca ask-ee, ASCII (American Standard Code for Information Interchange) adalah kode biner yang secara luas dipakai pada mikrokomputer. Tergantung versi yang dipakai, ASCII menggunakan 7 atau 8 bit untuk setiap karakter. ASCII versi baru bernama Extended ASCII yang bisa mencakup karakter semacam simbol matematis dan huruf-huruf Yunani. Namun, 256 huruf ASCII tidak akan cukup untuk menangani bahasa-bahasa lain semacam bahasa Cina atau Jepang yang memiliki ribuan karakter. Unicode: dikembangkan pada awal tahun 1990. Unicode memakai 2 byte (16bit) untuk setiap karakter, tidak hanya sekedar 1 byte (8 bit). Selain mampu membaca 256 karakter ASCII, Unicode juga bisa menerima 65.536 kombinasi karakter. Implementasi Hamming Code Untuk tiap 8 bit data D, pada posisi bit dimana posisi angka biner 1 hanya sebuah, disisipkan satu check bit CData yang disimpan menjadi 12 bit. Kode Hamming Posisi Bit Aturan untuk menentukan C: C1 = D1 D2 D4 D5 D7 C2 = D1 D3 D4 D6 D7 C4 = D2 D3 D4 D8 C8 = D5 D6 D7 D8 Kemudian check bits yang didapat saat data disimpan di -kan dengan check bits saat pembacaan.Bilangan biner yang didapat menunjukkan letakbit data yang salah, emudian bit yang salah di NOT-kan Kode hasil Fungsi Error correction Error connection code function f: fungsi error correction M: data sebanyak M-bit K: K-bit kode hasil perhitungan fungsi Sebenarnya disimpan di memory: M-bit data + K-bit kode Hamming Error Correcting Code contoh bilangan desimal yang akan dikonversi ke biner. Misalkan bilangan desimal yang ingin saya konversi adalah 2510. Maka langkah yang dilakukan adalah membagi tahap demi tahap angka 2510 tersebut dengan 2, seperti berikut : 25 : 2 = 12,5 Jawaban di atas memang benar, tapi bukan tahapan yang kita inginkan. Tahapan yang tepat untuk melakukan proses konversi ini sebagai berikut : 25 : 2 = 12 sisa 1. > Sampai disini masih mengerti kan? Langkah selanjutnya adalah membagi angka 12 tersebut dengan 2 lagi. Hasilnya sebagai berikut :

12 : 2 = 6 sisa 0. > Ingat, selalu tulis sisanya. Proses tersebut dilanjutkan sampai angka yang hendak dibagi adalah 0, sebagai berikut : 25 : 2 = 12 sisa 1. 12 : 2 = 6 sisa 0. 6 : 2 = 3 sisa 0. 3 : 2 = 1 sisa 1. 1 : 2 = 0 sisa 1. 0 : 2 = 0 sisa 0. (end) Nah, setelah didapat perhitungan tadi, pertanyaan berikutnya adalah, hasil konversinya yang mana? Ya, hasil konversinya adalah urutan seluruh sisa-sisa perhitungan telah diperoleh, dimulai dari bawah ke atas. Maka hasilnya adalah 0110012. Angka 0 di awal tidak perlu ditulis, sehingga hasilnya menjadi 110012. Sip? Sekarang kita beralih ke konversi bilangan biner ke desimal. Proses konversi bilangan biner ke bilangan desimal adalah proses perkalian setiap bit pada bilangan biner dengan perpangkatan 2, dimana perpangkatan 2 tersebut berurut dari kanan ke kiri bit bernilai 20 sampai 2n. Langsung saja saya ambil contoh bilangan yang merupakan hasil perhitungan di atas, yaitu 110012. Misalkan bilangan tersebut saya ubah posisinya mulai dari kanan ke kiri menjadi seperti ini. 1 0 0 1 1 Nah, saatnya mengalikan setiap bit dengan perpangkatan 2. Ingat, perpangkatan 2 tersebut berurut mulai dari 20 sampai 2n, untuk setiap bit mulai dari kanan ke kiri. Maka : 1 > 1 x 20 = 1 0 > 0 x 21 = 0 0 > 0 x 22 = 0 1 > 1 x 23 = 8 1 > 1 x 24 = 16 > perhatikan nilai perpangkatan 2 nya semakin ke bawah semakin besar Maka hasilnya adalah 1 + 0 + 0 + 8 + 16 = 2510. Karakter EBCDIC ASCII-8 karakter EBCDIC ASCII-8 A 1100 0001 0110 0001 N 1101 0101 0100 1110 B 1100 0010 0110 0010 O 1101 0110 0100 1111 C 1100 0011 0110 0011 P 1101 0111 0101 0000 D 1100 0100 0110 0100 Q 1101 1000 0101 0001 E 1100 0101 0110 0101 R 1101 1001 0101 0010 F 1100 0110 0110 0110 S 1110 0010 0011 0011 G 1100 0111 0110 0111 T 1110 0011 0101 0100 H 1100 1000 0110 1000 U 1110 0100 0101 0101 I 1100 1001 0110 1001 V 1110 0101 0101 0110 J 1101 0001 0110 1010 W 1110 0110 0101 0111 K 1101 0010 0110 1011 X 1110 0111 0101 1000

L 1101 0011 0110 1100 Y 1110 1000 0101 1001 M 1101 0100 0110 1101 Z 1110 1010 0101 1010 0 1111 0000 0011 5 1111 1 1111 0001 0011 6 1111 2 1111 0010 0011 7 1111 3 1111 0011 0011 8 1111 4 1111 0100 0010 9 1111 ! 0101 0101 ; 0101

You might also like