Macam-macam kesalahan
1. Kesalahan bit tunggal
Hanya satu bit dari data yang berubah.
Contoh:
0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0
Penerima Pengirim
Contoh:
Pengirim
0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
0 1 0 1 1 1 0 1 0 1 0 0 0 0 1 1
Penerima
Pada setiap kata disisipkan bit paritas yang sesuai sehingga diperoleh data yang dilengkapi
dengan VRC sebagai berikut:
W o r l d
1110111011011110111001001101100011001001
Kinerja
Bila ada perubahan 1 bit dalam frame diatas maka jumlah paritas akan berubah dan
kesalahan dapat ditemukan. Demikian pula untuk perubahan beberapa bit akan dapat
ditemukan dengan catatan jumlah perubahan bit adalah ganjil.
Bila transmisi data menyebabkan terjadi kesalahan dua bit (atau secara umum jumlah
kesalahan/perubahan bit adalah genap) maka jumlah bit 1 akan tetap, yaitu disisi kirim
ganjil maka disisi terima ganjil dan disisi kirim genap maka disisi terima genap. Karena itu
kesalahan (disebabkan perubahan bit dengan jumlah genap) tidak dapat ditemukan.
Kata world akan dikirimkan dengan dilengkapi kode LRC. Dari tabel ASCII diperoleh:
w o r l D
11101111101111111001011011001100100
Kode ASCII dari data yang akan dikirim disusun dalam tabel sebagai berikut:
1 1 1 0 1 1 1 w
1 1 0 1 1 1 1 o
1 1 1 0 0 1 0 r
1 1 0 1 1 0 0 l
1 1 0 0 1 0 0 d
1 1 0 0 0 1 0 Kode LRC. Paritas genap
Frame yang dilengkapi dengan kode LRC adalah sebagai berikut:
w o r l d Kode LRC
111011100100111101111111001011011001100010
Bila terjadi gangguan yang merubah 4 bit maka akan diperoleh perbedaan pada LRC.
w o r l d Kode LRC
111010000000110101111111001011011001100010
Kinerja
LRC sudah lebih baik dari VRC. Kesalahan bit tunggal atau beberapa bit dapat ditemukan.
Tetapi bila terjadi kesalahan (dengan jumlah genap) pada posisi bit yang sama maka tidak
dapat di temukan.
Bila digit terbagi lebih dari setengah atau sama dengan pembagi hasil bagi adalah 1.
Hasil bagi dikalikan dengan pembagi, hasilnya digunakan sebagai pengurang.
Pengurangan dilakukan dengan memandang nilai tiap bit.
Sebelum proses pembangkitan kode CRC perlu ditentukan bilangan pembagi dalam bentuk
polinomial. Disisi kirim data dikalikan dengan 2n , dimana n adalah jumlah bit polinomial
kurang 1. Hasilnya adalah frame yang akan dikirim (disebut FCS: Frame Check Sequence)
tanpa kode CRC. FCS dibagi dengan bilangan pembagi. Sisa bagi adalah kode CRC, kode
ini ditambahkan pada FCS. Disisi terima frame dibagi dengan bilangan pembagi yang
sama. Bila hasilnya nol, ini menyatakan tidak ada kesalahan (Gambar 3).
Contoh: data 6 bit (100100) akan dikirim dengan deteksi kesalahan CRC. Polinom yang
digunakan adalah 1101. Maka FCS adalah: 100100000, dan pembagian modulo-2 adalah:
(a) (b)
Gambar 4. Pembagian modulo-2. a) mendapatkan kode CRC. b) pemeriksaan kesalahan
Sisa pembagian adalah kode CRC yang harus ditambahkan ke FCS. Jadi FCS yang dikirim
adalah:
100100 001
Data CRC
Disisi terima dilakukan pembagian FCS dengan pembagi yang sama. Misal tidak ada
kesalahan maka pembagiannya ditunjukkan Gambar 4.b, sisa bagi adalah nol.
Polinomial
Pembagi yang digunakan diatas adalah polinomial 4 bit (1101 = x 3+x2+x0). Polinomial
lainnya adalah: 110011, 11001, dan yang baku adalah:
CRC-12 : x12 + x11 + x3 + x2 + 1
CRC-16 : x16 + x15 + x2 + 1
CRC-CCITT : x16 + x12 + x5 + 1
CRC-32 : x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
Kinerja
CRC adalah metode deteksi kesalahan yang sangat efektif. Bila pembagi dipilih dari aturan
baku maka:
a. CRC dapat menemukan semua kesalahan jamak yang mempengaruhi bit-bit ganjil
dan genap.
b. CRC dapat menemukan semua kesalahan jamak dengan panjang kurang atau sama
dengan derajat polinomial.
c. CRC dapat menemukan dengan kemungkinan sangat tinggi kesalahan jamak dari
panjang bit yang lebih dari derajat polinomial.
Checksum
Checksum umumnya digunakan pada protokol lapisan atas. Seperti halnya VRC,
LRC,CRC, checksum berdasarkan pada konsep penambahan bit.
Disisi kirim
Unit data dibagi dalam k kelompok, masing-masing n bit.
Semua kelompok dijumlahkan bersama menggunakan komplemen-1 untuk mendapat
jumlah
Jumlah di komplemenkan dan menjadi checksum
Check sum dikirim bersama data
Disisi terima
Unit data dibagi dalam k kelompok, masing-masing n bit
Semua kelompok dijumlahkan bersama menggunakan komplemen-1 untuk mendapat
jumlah
Jumlah dikomplemen
Bila hasilnya nol, data diterima, selain itu data salah
Contoh:
Satu blok data 16 bit akan dikirim dengan check sum 8 bit.
10101001 00111001
K1 (8 bit) K2 (8 bit)
10101001
0 0 1 1 1 0 0 1 + komplemen-1
1 1 1 0 0 0 1 0 dikomplemen
0 0 0 1 1 1 0 1 Checksum
1 0 1 0 1 0 0 1 00 1 1 1 0 0 1 0 0 0 1 1 1 0 1
K1 (8 bit) K2 (8 bit) Checksum
Disisi terima, bila tidak ada kesalahan transmisi, setiap kelompok (8 bit) dijumlahkan:
10101001
00111001
00011101+
1 1 1 1 1 1 1 1 dikomplemen
00000000
10101111
11111001
0 0 0 1 1 1 0 1 + komplemen-1
Limpahan di ujung = 1 1 1 0 0 0 1 0 1
1 + karena ada limpahan
1 1 0 0 0 1 1 0 Dikomplemen
0 0 1 1 1 0 0 1 0, ada bit yang salah. Perhatikan posisi bit yang bernilai 0
Kinerja
Checksum menemukan semua kesalahan termasuk jumlah bit ganjil dan genap.
Bagaimanapun, bila satu atau lebih bit dari kelompok data rusak dan bersesuaian dengan
nilai yang berlawanan dengan nilai di kelompok kedua juga rusak, jumlah dari kolom
tersebut tidak akan berubah dan disisi terima tidak dapat menemukan kesalahan. Tetapi
pembalikan bit pada satu kelompok pada posisi yang bersesuaian dengan pembalikan bit
pada kelompok lainnya sangat jarang.
Redundancy bits
Untuk menghitung jumlah bit yang ditambahkan (redundancy bits, r) perlu mengetahui
jumlah bit data (m), kita harus mendapatkan hubungan antara m dan r. Gambar berikut
melukiskan data m bit yang ditambahi r bit sehingga total bit yang akan dikirim adalah
m+r.
Tambahan
Data (m) bit) r bit
. . . . . . . . ... . . . . . . . . . . . . . . . . .
Total m + r bit
Bila jumlah total bit yang ditransmisikan adalah m + r maka r harus mampu menandai
setidaknya m + r + 1 keadaan yang berbeda. Dari sini, satu keadan menyatakan tanda
(tidak ada) kesalahan dan m+r keadaan menyatakan posisi bit yang rusak dalam bit-bit data
m+r.
Jadi, m+r+1 keadaan harus dapat ditemukan dengan kode biner sepanjang r bit, dan r bit
dapat menandakan 2r keadaan berbeda. Oleh karena itu, 2r harus sama atau lebih besar dari
m+r+1.
2r m + r + 1
Nilai r dapat ditentukan dengan memasukkan dalam nilai m (panjang bit dari data yang
akan dikirim). Contoh bila nilai m = 7 (bit kode ASCII) maka, nilai r paling kecil adalah 4
karena:
24 7 + 4 + 1
terpenuhi.
Tabel 1. Hubungan antara data dan bit tambahan
Jumlah bit Jumlah bit yang Bit total (m+r)
data (m) ditambahkan r
1 2 3
2 3 5
3 3 6
4 3 7
5 4 9
6 4 10
7 4 11
Hamming Code
Teknik yang dikembangkan oleh R.W. Hamming menyediakan solusi praktis untuk
menentukan posisi bit yang rusak. Kode hamming dapat diterapkan pada unit data dengan
panjang sembarang dan menggunakan hubungan seperti diuraikan diatas. Sebagai contoh
kode ASCII 7 bit memerlukan 4 bit tambahan yang disisipkan pada ujung akhir unit data
atau diantara bit-bit data. Gambar 5 menunjukkan penyisipan bit pada posisi 1, 2, 4, dan 8.
dalam pembahasan bit-bit yang disisipkan disebut sebagai r1, r2, r4, dan r8.
11 10 9 8 7 6 5 4 3 2 1
d d d r d d d r d r r
Gambar 5. Data yang disisipi kode hamming r1, r2, r4, dan r8.
Dalam kode hamming, masing-masing bit r adalah bit VRC untuk kombinasi bit data: r1
adalah bit VRC untuk kombinasi satu kombinasi bit data, r2 adalah bit VRC untuk
kombinasi bit data lainnya, dan seterusnya. Masing-masing kombinasi-kombinasi
digunakan untuk menghitung 4 nilai r untuk rentetan data 7 bit, sebagai berikut:
r1 : bit 1, 3, 5, 7, 9, 11
r2 : bit 2, 3, 6, 7, 10, 11
r4: bit 4, 5, 6, 7
r8 : bit 8, 9, 10, 11
Masing-masing bit data boleh di masukkan dalam lebih dari satu perhitungan VRC. Dalam
urutan diatas, sebagai contoh, masing-masing bit data asli dilibatkan setidaknya dalam dua
perhitungan, sementara bit r dilibatkan dalam satu perhitungan.
Untuk melihat pola dibalik strategi ini, pandanglah penyajian biner dari masing-masing
posisi bit. Bit r1 dihitung menggunakan semua posisi bit yang memiliki penyajian biner 1
pada bit paling kanan. Kemudian r2 dihitung menggunakan semua posisi bit yang memiliki
penyajian biner 1 pada posisi kedua, dan seterusnya. Perhatikan Gambar 6.
r1 r1 r1 r1 r1 r1 Bit untuk menghitung r1
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Posisi bit dalam biner
11 10 9 8 7 6 5 4 3 2 1 Dalam desimal
d d d r8 d d d r4 d r2 r1 Bit data
r2 r2 r2 r2 r2 r2 Bit untuk menghitung r2
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Posisi bit dalam biner
11 10 9 8 7 6 5 4 3 2 1 Dalam desimal
d d d r8 d d d r4 d r2 r1 Bit data
d d d r8 d d d r4 d r2 r1 Bit data
Gambar 6. Hubungan bit r dengan bit data yang digunakan untuk perhitungan
Perhitungan nilai r
Gambar 7 memperlihatkan contoh penerapan kode Hamming pada kode ASCII 1001101
dengan paritas genap.
1 0 1 0 1 1 Bit untuk menghitung r1
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 Posisi bit dalam biner
11 10 9 8 7 6 5 4 3 2 1 Dalam desimal
1 0 0 r8 1 1 0 r4 1 r2 1 Bit data
1 0 0 r8 1 1 0 r4 1 0 1 Bit data
1 0 0 r8 1 1 0 0 1 0 1 Bit data
1 0 0 1 1 1 0 0 1 0 1 Bit data
Gambar 7. Contoh kode Hamming untuk karakter ASCII. Paritas genap. Kode:
10011100101
10010100101 10011100101
Penerima Pengirim
Disisi terima dilakukan perhitungan VRC menggunakan landasan kelompok bit yang sama
dengan pengirim dan juga bit paritas (r), seperti Gambar 9, untuk masing-masing
kelompok. Maka akan diperoleh nilai paritas baru, dalam contoh ini diperoleh 0111 (7
dalam desimal) yang menunjukkan posisi bit yang salah.
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
11 10 9 8 7 6 5 4 3 2 1
d d d r8 d d d r4 d r2 r1
1 0 0 0 1 1
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
11 10 9 8 7 6 5 4 3 2 1
1 0 0 1 0 1 0 0 1 0 1
r1 = 1
1 0 0 1 1 0
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
11 10 9 8 7 6 5 4 3 2 1
1 0 0 1 0 1 0 0 1 0 1
r2 = 1
0 1 0 0
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
11 10 9 8 7 6 5 4 3 2 1
1 0 0 1 0 1 0 0 1 0 1
r4 = 1
1 0 0 1
1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001
11 10 9 8 7 6 5 4 3 2 1
1 0 0 1 0 1 0 0 1 0 1
r8 = 0
Pustaka
Forouzan, Behrouz A. Data Communication and Networking. McGraw-Hill. 2nd edition
Stallings, Williams. Komunikasi Data dan Komputer. Dasar-dasar komunikasi data.
Salembe Teknika.