16 Oktober 2019

Bit Parity Menggunakan Algoritma XOR Untuk Mendeteksi Kesalahan Transmisi

Bit parity merupakan bilangan biner yang ditambahkan untuk meyakinkan bahwa jumlah bit yang dikirimkan mempunyai angka satu yang selalu genap atau ganjil. Ada dua tipe bit parity, yaitu even parity bit dan odd parity bit. Jika jumlah bit ganjil (termasuk bit parity) berubah pada waktu transmisi, maka bit parity menjadi tidak benar dan mengindikasikan adanya kesalahan pada waktu pengiriman. Oleh karena itu, bit parity merupakan kode pendeteksian kesalahan (error detecting code), dan bukan merupakan kode koreksi kesalahan (error correcting code) karena tidak ada cara untuk menentukan bit yang keliru. Metode ini biasa dipergunakan dalam transmisi data secara asynchronous, pada metode ini sebelum paket data dikirim, setiap paket data di cek apakah angka ‘1’ berjumlah ganjil atau genap, jika paket data berjumlah genap maka bit parity akan tetap 0 sedangkan jika jumlahnya ganjil maka bit parity akan diubah menjadi 1 sehingga jumlah bit menjadi genap. Proses perhitungan dilakukan dengan menggunakan metode XOR gate.

Parity adalah sebuah sistem pendeteksian keadaan error yang menguji integritas data antara sistem komputer dan jaringannya. Cek parity menggunakan 9 bit ekstra yang mencakup nilai 0-1 (tergantung dari kandungan data dari byte). Setiap kali sebuah byte di-transfer atau dikirimkan, terjadi tes parity bit. Bit parity checking sering digunakan untuk transmisi karakter ASCII, karena karakter ini hanya mempunyai 7 bit dan bit ke-8 dapat digunakan untuk bit parity. Sebagai contoh, mengasumsikan pengiriman 4 bit dengan nilai 1001, dengan bit parity terletak di sebelah paling kanan. Mekanisme ini dapat melakukan deteksi kesalahan bit tunggal, karena jika satu bit berubah ketika melewati jalur yang jelek, maka akan terdapat jumlah angka satu yang tidak benar pada saat data diterima. Penerima menghitung nilai parity dan mencocokkan dengan bit parity pada nilai yang diterima, hasilnya mengindikasikan tentang ada atau tidak ada kesalahan pada bit yang diterima. Kelebihan dari metode parity check adalah sederhana dalam analisis dan penggunaan. Selain itu metode parity check juga mudah diterapkan dalam bentuk rangkaian atau perangkat keras. Kekurangan dari metode parity check adalah Kurang handal dalam mengatasi deteksi dan memperbaiki error, kemungkinan kesalahan yang terjadi besar, hanya dapat melakukan deteksi error dalam jumlah bit terbatas (1-3 bit).

Parity Track ada pada penyimpanan data pita magnet pertama pada tahun 1951. Bit Parity dalam bentuk ini diterapkan pada beberapa komunikasi paralel dan dikenal sebagai redundansi-check transversal. Teknik pengkodean Low-Density Parity-Check Code (LDPCC) pertama kali diperkenalkan oleh Gallager, Sc.D pada tahun 1960. LDPC merupakan salah satu kelas dari pengkodean linier block yang menggunakan konsep sparse parity check matric P, yang mana jumlah bit’1’ dalam matrik P berjumlah lebih sedikit jika dibandingkan dengan jumlah bit ‘0’. Robert Gray Gallager adalah seorang engineer yang lahir pada tanggal 29 Mei 1931. Ia mendapatkan gelar Sc.D dari Massachusetts Institute of Technology (MIT) pada tahun 1960. Dia menjadi anggota fakultas di MIT sejak 1960, ia menjabat sebagai co-director Laboratory for Information and Decision Systems sejak tahun 1986 hingga 1998. Pada tahun 1988 ia juga pernah diangkat sebagai Profesor Fujitsu dan menjadi Profesor Emeritus pada tahun 2001. Bukunya berjudul Principles of Digital Communication diterbitkan oleh Cambridge University Press pada tahun 2008. Ia aktif sebagai anggota IEEE Information Theory Society, National Science Foundation dan berbagai kegiatan penelitian tentang komunikasi data dan jaringan komputer.

Dengan bit parity dikenal tiga jenis deteksi kesalahan, yaitu: VRC, LRC dan CRC. Vertical Redundancy Check (VRC) adalah pengecekan bit parity pada setiap karakter yang di kirimkan. Bit parity ini di periksa oleh penerima untuk mengetahui apakah karakter yang di kirim benar atau salah. Cara ini hanya dapat melacak satu bit dan berguna melacak kesalahan yang terjadi pada pengiriman berkecepatan menengah, pada kecepatan tinggi lebih jumlah kesalahan bit lebih banyak. Longitudinal Redundancy Check (LRC) digunakan pada data yang dikirim secara blok. Cara ini seperti VRC hanya saja penambahan bit parity tidak saja pada akhir karakter tetapi juga pada akhir setiap blok karakter yang dikirimkan. Untuk setiap bit dari seluruh blok karakter ditambahkan 1 bit parity termasuk juga bit parity dari masing-masing karakter. Tiap blok mempunyai satu karakter khusus yang disebut Block Check Character (BCC) yang dibuat dari bit uji. Cyclic Redundancy Check (CRC) digunakan pada pengiriman berkecepatan tinggi, sehingga perlu rangkaian elektronik yang rumit. CRC dapat dijelaskan dengan memberikan sebuah blok k bit dari sejumlah bit atau pesan yang dikirimkan secara umum pada urutan n bit yang dikenal sebagai sebuah Frame check sequence (FCS). Jadi hasil dari frame adalah k+n bit.

Dalam teknik digital dikenal istilah parity generator dan parity checker. Kalau dilihat dari katanya kita dapat mengartikan bahwa parity generator adalah alat pembangkit parity sedangkan parity checker adalah alat pemeriksa parity. Untuk memahami tentang rangkaian parity generator dan parity checker, maka terlebih dahulu kita harus memahami tentang bit parity. Bit parity merupakan bit tambahan yang disisipkan pada urutan bit-bit data yang dikirimkan. Tujuan dari pemberian bit parity ini pada data yang dikirimkan adalah untuk memastikan bahwa bit-bit yang dikirimkan tidak mengalami perubahan nilai setelah sampai ke penerima. Dalam praktiknya bit parity terbagi menjadi dua macam, yaitu event parity dan odd parity. Parity Generator merupakan sebuah rangkaian yang digunakan untuk membangkitkan atau membuat bit parity. Bit parity ini dibangkitkan dari urutan data yang terdiri dari sejumlah bit biner. Bit parity dibuat sebelum data-data ditransmisikan atau dikirim ke penerima. Parity generator diletakkan pada sisi transmiter atau pengirim. Parity Checker merupakan sebuah rangkaian yang digunakan untuk mengecek urutan bit-bit data dan bit parity yang dibangkitkan oleh parity generator setelah dikirim ke penerima. Parity checker ini berada pada sisi penerima (RX).

Penjelasan transmisi yang menggunakan bit parity, adalah sebagai berikut: pertama, pengirim menghitung nilai bit parity data yang hendak dikirimkan. Kedua, kemudian pengirim menambahkan bit parity yang sesuai dan mengirimkan data yang sudah ditambah dengan bit parity. Ketiga, penerima menerima data dari jaringan kemudian menghitung nilai keseluruhan bit parity yang diterima. Keempat, penerima melaporkan bahwa transmisi berhasil atau gagal. Pada transmisi data yang menggunakan odd parity, nilai yang dianggap benar adalah 1 (satu). Nilai satu tersebut dianggap sebagai bilangan ganjil. Pada transmisi data yang menggunakan even parity, nilai yang dianggap benar adalah 0 (nol). Nilai nol tersebut dianggap sebagai bilangan genap. Pada contoh tersebut nilai yang dianggap benar adalah jika hasil menghitung nilai bit parity menghasilkan nilai satu. Jika pada tahap pertama nilai bit parity bukan satu, maka deretan bit-bit tersebut ditambahi dengan bit parity sehingga nilainya berubah menjadi satu. Ketika menghitung bit parity pada tahap ketiga menghasilkan nilai bukan satu, maka penerima akan mengirimkan laporan bahwa telah terjadi kesalahan pada data yang diterima. Pada penggunaan tipe even parity, prosesnya sama dengan odd parity. Perbedaannya adalah jika pada odd parity nilai yang dianggap benar adalah satu, pada even parity nilai yang dianggap benar adalah nol.