Bit parity merupakan bilangan biner yang ditambahkan untuk meyakinkan bahwa jumlah bit yang dikirimkan mempunyai angka satu yang selalu genap atau ganjil. Ada dua varian bit parity, yaitu even parity bit dan odd parity bit.
Even parity bit diset ke 1 jika jumlah angka 1 yang dikirimkan berjumlah ganjil (berarti membuat total angka 1 berjumlah genap). Odd parity bit akan diset ke 1 jika jumlah angka 1 yang dikirimkan berjumlah genap (berarti membuat total angka 1 berjumlah ganjil). Berikut gambaran even 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 pendeteksi kesalahan (error detecting code), dan bukan merupakan kode pengoreksi kesalahan (error correcting code) karena tidak ada cara untuk menentukan bit mana yang keliru. Data harus diabaikan seluruhnya dan mengulangi lagi transmisi dari awal. Pada media transmisi yang terganggu, transmisi yang berhasil akan membutuhkan banyak waktu atau tidak berhasil sama sekali. Parity mempunyai keuntungan, yaitu hanya menggunakan satu bit saja dan membutuhkan satu saja gerbang XOR untuk men-generate-nya.
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 pendeteksi kesalahan (error detecting code), dan bukan merupakan kode pengoreksi kesalahan (error correcting code) karena tidak ada cara untuk menentukan bit mana yang keliru. Data harus diabaikan seluruhnya dan mengulangi lagi transmisi dari awal. Pada media transmisi yang terganggu, transmisi yang berhasil akan membutuhkan banyak waktu atau tidak berhasil sama sekali. Parity mempunyai keuntungan, yaitu hanya menggunakan satu bit saja dan membutuhkan satu saja gerbang XOR untuk men-generate-nya.
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, diasumsikan pengiriman 4 bit dengan nilai 1001, dengan bit parity terletak di sebelah paling kanan. Penjelasan transmisi menggunakan even parity, sebagai berikut:
A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010
B menerima : 10010
B menghitung keseluruhan parity : 1^0^0^1^0 = 0
B melaporkan bahwa transmisi berhasil dengan parity yang benar (genap).
Jika transmisi menggunakan odd parity, maka penjelasannya sebagai berikut:
A akan mengirim : 1001
A menghitung nilai bit parity : ~(1^0^0^1) = 1
A menambahkan bit parity dan kirim : 10011
B menerima : 10011
B menghitung keseluruhan parity : 1^0^0^1^1 = 1
B melaporkan bahwa transmisi berhasil dengan parity yang benar (ganjil).
Mekanisme ini dapat mendeteksi 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. Pada contoh di atas, B menghitung nilai parity dan mencocokkan dengan bit parity pada nilai yang diterima, mengindikasikan bahwa tidak ada kesalahan bit tunggal. Pada contoh di bawah ini akan terjadi kesalahan transmisi pada bit kedua:
A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 11010
B menghitung keseluruhan parity : 1^1^0^1^0 = 1
B melaporkan terjadi transmisi yang tidak benar, karena nilai parity tidak sama.
Pada kasus di atas, B menghitung nilai parity (0) tidak sama dengan bit parity (1) pada nilai yang diterima. Hal ini mengindikasikan terjadi kesalahan. Di bawah ini contoh yang sama tetapi dengan kesalahan pada bit parity-nya sendiri.
A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 10011
B menghitung keseluruhan parity : 1^0^0^1^1 = 1
B melaporkan terjadi transmisi yang tidak benar, karena nilai parity tidak sama.
Sekali lagi, B menghitung keseluruhan odd parity, dan mengindikasikan kesalahan bit. Ada keterbatasan pada skema parity ini, yaitu ketika ada kesalahan pada pengiriman data dengan bit yang salah berjumlah genap seperti pada contoh di bawah ini:
A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 11011
B menghitung keseluruhan parity : 1^1^0^1^1 = 0
B melaporkan transmisi berhasil dengan parity yang benar walaupun sebenarnya data sudah tidak benar.
9 Bit Parity merupakan bit tambahan yang disisipkan
pada urutan bit-bit data yang ditransmisikan
9 Tujuan pemberian bit Parity ini adalah untuk memastikan
bahwa bit-bit yang ditransmisikan tidak mengalami
perubahan nilai setelah sampai di penerima.
9 Perubahan nilai dapat terjadi karena pengaruh noise
(sinyal liar).
Perubahan nilai : 0 Æ 1 atau 1Æ 0
Contoh : 0110100 Æ 0100100
Tx Rx
Start bit
0 01001 11
Bit data Bit Parity Stop Bit
00100111
Tx Rx
Urutan data3
JENIS BIT PARITY
Berdasarkan jumlah bit-bit “1” pada urutan bit yang
disertainya, bit parity dibagi menjadi 2 jenis :
1. Odd Parity (Parity Ganjil) Æ jika jumlah bit “1” dan
bit parity-nya adalah ganjil
2. Even Parity (Parity Genap) Æ jika jumlah bit “1” dan
bit parity-nya adalah genap
Contoh :
Berikan tambahan Even Parity bit pada urutan data berikut ini :
1001, 00111101, 10110
Jawab :
1001 Æ 0
00111101 Æ 1
10110 Æ 1
Even Parity Bit
Tabel Kebenaran
Odd Parity Bit yang dibangkitkan dari
urutan data 3 bit biner (ABC)
INPUT OUTPUT
A B C P
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
Even Parity Bit yang dibangkitkan dari
urutan data 3 bit biner (ABC)
INPUT OUTPUT
A B C P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
PARITY GENERATOR
9 Sebuah rangkaian untuk membangkitkan / membuat bit parity
9 Bit parity dibangkitkan dari urutan data yang terdiri dari
sejumlah bit biner
9 Bit Parity dibuat sebelum data ditransmisikan, karena itu
Parity Generator letaknya di Transmitter
Cara Membuat Parity Generator
Contoh :
Buat Rangkaian Even Parity Generator dari data 3 bit
Tabel Kebenaran
INPUT OUTPUT
A B C P
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1
Dari Tabel Kebenaran yang ada, kumpulkan mintermminterm yang bernilai 1 :
P = ABC + ABC+ABC + ABC
= A(BC+BC) + A(BC+BC)
= A(B + C) + A(B + C)
= A + (B + C)
PARITY CHECKER
9 Sebuah rangkaian untuk mengecek urutan bit-bit data dan
bit parity (yang dibangkitkan oleh Parity Generator) setelah
ditransmisikan.
9 Parity Checker menghasilkan nilai “0” atau “1” yang
menunjukkan indikasi kesalahan bit saat diterima.
9 Apabila Nilai Indikator Kesalahan adalah “1” maka bit yang
diterima salah, dan apabila “0” maka bit-bit yang diterima benar
9Parity Checker berada di sisi Receiver.
Cara Membuat Parity Checker
Buat Rangkaian Even Parity Checker untuk menge-cek
urutan data 3 bit dan bit Parity yang diterima.
INPUT
OUTPUT
A B C P Ch0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
Dari Tabel Kebenaran yang ada, kumpulkan mintermminterm yang bernilai 1 :
Ch = ABCP + ABCP+ABCP + ABCP+ABCP+ABCP
+ABCP+ABCP
= AB(CP+CP) + AB(CP+CP)+AB(CP + CP) + AB(CP+CP)
= (AB + AB)(C + P) + (AB + AB)(C + P)
= (A + B) + (C + P)
Cara penge-cek an Kesalahan :
Misal :
diketahui urutan data biner yang datang bersama bit parity-nya
adalah 1101, maka Parity Checker akan memproses sebagai berikut :
1101
data Bit parity
Jika bit parity di Tx dibangkitkan secara even, maka data di Rx juga
akan di-cek secara even
Indikator kesalahan = 1, artinya
urutan bit yang diterima ini SALAH !
1 + 1 + 0 + 1 = 1
Perhatikan !
Jika Bit parity di Tx dibangkitkan secara Even, penge-cek an di Rx juga secara Even.
Jika Bit parity di Tx dibangkitkan secara Odd, penge-cek an di Rx juga secara Odd
Even dan Odd harus dalam satu paket, tidak dapat dikombinasikan.
0 komentar