Cara Menghitung Even dan Odd Parity Bit Lengkap dengan Contoh

Dalam sistem komunikasi digital, kesalahan transmisi data dapat terjadi akibat noise, interferensi elektromagnetik, atau gangguan sinyal. Salah satu metode paling sederhana untuk mendeteksi error adalah menggunakan parity bit.

Pada artikel ini Anda akan mempelajari:

  • Apa itu parity bit
  • Perbedaan even parity dan odd parity
  • Cara menghitung parity bit
  • Contoh soal lengkap dengan pembahasan
  • Penerapan parity pada komunikasi industri dan PLC

Artikel ini cocok untuk mahasiswa teknik elektro, informatika, dan praktisi otomasi industri.

Apa Itu Parity Bit?

Parity bit adalah bit tambahan yang disisipkan ke dalam data digital untuk membantu mendeteksi kesalahan saat transmisi.

Parity bekerja dengan menghitung jumlah bit bernilai 1 dalam suatu data.

Jika jumlah bit berubah selama pengiriman, sistem dapat mendeteksi adanya error.

Terdapat dua jenis parity yang umum digunakan:

  1. Even Parity (Paritas Genap)
  2. Odd Parity (Paritas Ganjil)

Apa Itu Even Parity?

Pada sistem even parity, jumlah total bit 1 (termasuk parity bit) harus genap.

Aturan Even Parity

  • Jika jumlah bit 1 sudah genap → parity = 0
  • Jika jumlah bit 1 ganjil → parity = 1

Tujuannya adalah membuat total bit 1 menjadi genap.

Apa Itu Odd Parity?

Pada sistem odd parity, jumlah total bit 1 (termasuk parity bit) harus ganjil.

Aturan Odd Parity

  • Jika jumlah bit 1 sudah ganjil → parity = 0
  • Jika jumlah bit 1 genap → parity = 1

Tujuannya adalah membuat total bit 1 menjadi ganjil.
Contoh perhitungan parity bit even dan odd

Contoh Soal Parity Bit

Tambahkan parity bit (Even dan Odd) pada data berikut:

1001

00111101

10110

Cara Menghitung Even Parity

1️⃣ Data: 1001

Jumlah bit 1 = 2 (genap)

  • Even parity → 0
    Hasil:

10010

2️⃣ Data: 00111101

Jumlah bit 1 = 5 (ganjil)

  • Even parity → 1

Hasil:

001111011

Total bit 1 sekarang = 6 (genap)

3️⃣ Data: 10110

Jumlah bit 1 = 3 (ganjil)

  • Even parity → 1

Hasil:

101101

Total bit 1 sekarang = 4 (genap)

Cara Menghitung Odd Parity

Sekarang kita hitung dengan aturan odd parity.

1️⃣ Data: 1001

Jumlah bit 1 = 2 (genap)

  • Odd parity → 1

Hasil:

10011

Total bit 1 = 3 (ganjil)

2️⃣ Data: 00111101

Jumlah bit 1 = 5 (ganjil)

  • Odd parity → 0

Hasil:

001111010

Total bit 1 tetap 5 (ganjil)

3️⃣ Data: 10110

Jumlah bit 1 = 3 (ganjil)

  • Odd parity → 0

Hasil:

101100

Total bit 1 tetap 3 (ganjil)

Ringkasan Perbandingan Even dan Odd Parity

Data AwalJumlah 1Even ParityOdd Parity
100121001010011
001111015001111011001111010
101103101101101100

Perbedaan Even dan Odd Parity

AspekEven ParityOdd Parity
Total bit 1Harus genapHarus ganjil
Jika jumlah 1 genapTambah 0Tambah 1
Jika jumlah 1 ganjilTambah 1Tambah 0

Kelebihan dan Keterbatasan Parity Bit

Kelebihan:

  • Sederhana
  • Mudah diimplementasikan
  • Digunakan luas pada komunikasi serial

Keterbatasan:

  • Hanya mendeteksi error pada jumlah bit ganjil (1, 3, 5, … bit)
  • Tidak dapat memperbaiki error
  • Tidak mendeteksi error jika jumlah bit error genap

Penerapan Parity dalam Sistem Industri

Parity bit digunakan pada:

  • UART (Serial Communication)
  • RS232 / RS485
  • Modbus RTU
  • Komunikasi PLC lama
  • Sistem embedded

Dalam sistem industri, parity penting karena gangguan elektromagnetik dapat menyebabkan kesalahan transmisi data.

Menghitung Parity dengan XOR

Cara cepat menghitung parity adalah meng-XOR semua bit. Hasil XOR = 1 jika jumlah bit 1 ganjil, dan 0 jika genap. Jadi:

  • Even parity bit = XOR semua bit data.
  • Odd parity bit = kebalikan (NOT) dari XOR semua bit data.

Contoh 1011: 1 ⊕ 0 ⊕ 1 ⊕ 1 = 1 → even parity = 1, odd parity = 0.

Kode Arduino/C

// mengembalikan 1 jika jumlah bit 1 ganjil
uint8_t parityGanjil(uint8_t data) {
  uint8_t p = 0;
  while (data) {
    p ^= (data & 1);
    data >>= 1;
  }
  return p;
}

uint8_t evenParityBit(uint8_t data) { return parityGanjil(data); }
uint8_t oddParityBit(uint8_t data)  { return !parityGanjil(data); }

Kode Python

def even_parity_bit(data: int) -> int:
    return bin(data).count("1") % 2

def odd_parity_bit(data: int) -> int:
    return 1 - even_parity_bit(data)

print(even_parity_bit(0b00111101))  # 1
print(odd_parity_bit(0b00111101))   # 0

Parity pada Komunikasi Serial (UART, RS485, Modbus RTU)

Pada UART, parity menjadi bagian dari format frame yang ditulis seperti 8N1, 8E1, atau 8O1: 8 bit data, parity None/Even/Odd, dan 1 stop bit. Kedua perangkat wajib memakai format yang sama; jika tidak, data terbaca salah atau ditolak sebagai parity error.

Spesifikasi Modbus RTU menetapkan even parity sebagai default. Jika parity tidak dipakai, spesifikasi meminta 2 stop bit agar panjang frame tetap sama. Di lapangan, banyak sensor murah tetap memakai 8N1, jadi selalu cek manual perangkat.

Parity, Checksum, dan CRC

MetodeUkuranKemampuan deteksiContoh pemakaian
Parity bit1 bit per karakterJumlah bit error ganjilUART, RS232/RS485
Checksum1–2 byte per pesanSebagian besar error sederhanaModbus ASCII (LRC), paket IP
CRC16–32 bit per pesanError burst dan hampir semua pola errorModbus RTU (CRC-16), Ethernet (CRC-32)

Karena parity hanya melindungi satu karakter dan gagal mendeteksi dua bit error, Modbus RTU tetap menambahkan CRC-16 di akhir setiap pesan.

Latihan Soal

  1. Tentukan even dan odd parity untuk data 1100101.
  2. Penerima memakai even parity dan menerima 10110110 (7 bit data + 1 parity di akhir). Apakah ada error?
  3. Mengapa error pada dua bit sekaligus tidak terdeteksi oleh parity?

Jawaban: (1) jumlah bit 1 = 4 → even parity 0 (11001010), odd parity 1 (11001011). (2) Total bit 1 = 5 (ganjil) → terjadi error. (3) Dua bit yang berubah membuat jumlah bit 1 tetap genap/ganjil seperti semula, sehingga pemeriksaan parity tetap “lolos”.

Kesimpulan

Parity bit adalah metode sederhana untuk mendeteksi kesalahan transmisi data.

  • Even parity memastikan total bit 1 genap
  • Odd parity memastikan total bit 1 ganjil
  • Digunakan luas pada komunikasi serial dan industri

Memahami parity adalah dasar penting sebelum mempelajari komunikasi Modbus, PLC, atau sistem embedded.

Baca juga: Perancangan Odd Parity Generator dan Checker Menggunakan Proteus, Encoding & Decoding (Penjelasan Sederhana + Contoh Nyata), dan Multiplexer dan Demultiplexer: Pengertian, Cara Kerja, dan Aplikasinya.

Related Articles

Chat Langsung dengan Kami
Staff bisaioti 1 — +62 823-3306-4821 E-Course, Offline Course, Hardware & Teknis IoT/OT Staff bisaioti 2 — +62 823-3306-4821 Training Korporat & Toko Hardware