bab 10 deteksi dan koreksi kesalahan

43
Deteksi & Koreksi Kesalahan Jaringan & Komunikasi Data Dr. Eng. Wahyul Amien Syafei [email protected]

Upload: waliulu-raditya

Post on 09-Nov-2015

141 views

Category:

Documents


29 download

DESCRIPTION

koreksi kesalahan bit dan byte

TRANSCRIPT

Deteksi dan Koreksi Kesalahan (Error Detection and Correction)

Deteksi & Koreksi KesalahanJaringan & Komunikasi DataDr. Eng. Wahyul Amien [email protected] PENDAHULUANDalam sebuah jaringan, kerusakan data bisa terjadi ketika /mengirimkan /transmisi /mengkomunikasikan data. Beberapa aplikasi memerlukan mekanisme untuk mendeteksi dan mengoreksi error tersebut.

Jenis Jenis ErrorFigure 9-1, Forozun .ppt chapter 9 SINGLE BIT ERRORHanya terjadi 1 bit kesalahan dari unit data yang dikirimkan (byte, karakter, atau paket). Bit berubah dari 1 ke 0 atau sebaliknya.Gambar 1.1 yang menunjukan contoh terjadinya kesalahan pada unit data. Unit data yang dikirim adalah 00000010 sedangkan unit data yang diterima adalah 00001010. Kerusakan terjadi pada bit ke 5, yaitu bit berubah dari 0 menjadi 1.

Gambar 1.1 Kesalahan Bit Tunggal, (Forouzan, Hal. 268)

Figure 9-3, Forozun .ppt chapter 9 MULTIPLE-Bit-ErrorBerarti bahwa terdapat 2 bit unit data yang diberikan berubah dari 1 ke 0 atau dari 0 ke 1. Gambar dibawah ini menunjukan terjadinya kesalahan pada unit data. Dimana data yang dikirim 01000010 sedangkan yang diterima 00001010. Terjadi kerusakan dapat bit ke 2 dimana 1 menjadi 0 dan pada bit ke 5 dimana 0 menjadi 1.

Figure 9-4, Forozun .ppt chapter 9 BURST-ErrorBerarti ada 2 atau lebih bit unit data yang berubah dari 1 ke 0 atau dari 0 ke 1. Gambar dibawah ini menunjukan terjadinya kesalahan pada unit data. Dimana data yang dikirim 0100010001000011 sedangkan yang diterima 0101101101000011. Terjadi kerusakan dapat bit ke 4 sampai bit ke 8.Burst error tidak selalu pada bit yang berurutan tapi panjang kesalahan diukur dari bit pertama yang rusak sampai bit terakhir yang rusak, tetapi tidak berarti semua bit yang berada diantaranya rusak .

Gambar 1.2 Burst Error Panjangnya 8, (Forouzan, Hal. 268)

REDUDANCYRedudancy adalah beberapa bit tambahan pada unit data yang dikirimkan. Kelebihan bit tersebut ditambahkan oleh pengirim dan akan dihapus oleh penerima. Kehadiran bit tambahan tersebut juga memungkinkan penerima mendeteksi atau mengkoreksi bit yang rusak.. RedundancyGambar 1.3 Bit Tambahan (Redundancy)

Mengoreksi kesalahan lebih sulit daripada mendeteksi kesalahan. Deteksi kesalahan, hanya bertujuan untuk mengetahui ada kesalahan atau tidak. Bahkan tidak diketahui jumlah kesalahan yang terjadi, kesalahan bit tunggal dan burst error yang terjadi adalah dianggap sama oleh pendeteksi kesalahan.

Deteksi & KoreksiAda dua metode utama dalam mengoreksi kesalahan.

Mengoreksi kesalahan di awal unit data, penerima akan menebak pesan dengan menggunakan metode redundancy. Melakukan pengiriman ulang, sampai pesan yang diterima benar dan tidak ada kesalahan yang dideteksi. (catatan: tidak semua kesalahan dapat dideteksi).

Forward Error Correction & RetransmissionModulo-2 Arithmetic

Gambar 1.4 Hitungan Modul-2, (Forouzan, Hal. 271)

Block CodingPada kode blok, pesan yang dikirim dibagi dalam beberapa bagian, perhatikan pada Gambar 2.1. Setiap bagian berisi k bit yang disebut datawords, lalu ditambahakan r (bit tambahan) bit kepada setiap bagian sehingga panjangnya menjadi n=k+r. Kemudian hasil dari bagian n bit disebut codeword.

Dalam kode blok, kesalahan bisa dideteksi jika dua kondisi berikut terpenuhi :Penerima sudah memiliki daftar dari codeword yang benar.Codeword yang diterima telah berubah menjadi codeword yang berbeda dengan daftar codeword yang benar.

Figure 10.6 Process of error detection in block coding, hal. 272

Contoh Block codeContoh dapat diasumsikan sebagai berikut, k=2 dan n=3, maka untuk mendeteksi kesalahan dapat dilihat pada dataword dan codeword dalam Tabel 2.1 di bawah ini :

Tabel 2.1 Sebuah Kode Untuk Deteksi Kesalahan, (Forouzan, Hal. 272)

Sebagai contoh anggap saja bagian pengiriman melakukan pembuatan kode pada dataword 01 menjadi codeword 011 kemudian dikirimkan. Dibawah ini merupakan kemungkinan yang akan terjadi selama pengiriman.Codeword banar yaitu jika data codeword yang diterima pada penerima adalah 011. Kemudian penerima membuka codeword yang diterima dan menghasilkan dataword yang benar yaitu 01.Codeword yang rusak hanya 1 bit yaitu codeword yang diterima menjadi 111 (bit yang paling kiri rusak) dan tidak sesuai dengan semua data yang ada. Karena bukan codeword yang benar akan langsung ditolak atau dibuang.Codeword yang rusak ada 2 bit yaitu codeword yang diterima menjadi 000 (2 bit dari kanan rusak). Namun ini merupakan codeword yang benar karena ada didalam data yang sudah tersimpan. Kemudian penerima membuka codeword 000 menjadi dataword 00. Meskipun tadi ada 2 bit yang rusak tetapi tidak terdeteksi, inilah kelemahan dari sistem ini.Error correctionDataword pada Tabel 2.1 diatas akan ditambahkan 3 bit tambahan sehingga membuat codeword menjadi 5 bit. Hasilnya dapat dilihat pada Tabel 2.2 di bawah ini.

Tabel 2.2 Sebuah Kode Untuk Koreksi Kesalahan, (Forouzan, Hal. 274)

Dataword yang dikirim 01, namun codeword yang diterima 01001 (eror di bit ke 2 dari kanan). Pertama lihat daftar dalam tabel bahwa codeword yang diterima tidak ada dalam tabel, artinya terdapat eror. Penerima mengasumsikan hanya terdapat 1 bit yang rusak, lalu gunakan strategi di bawah ini untuk menebak dataword yang tepat. Dapat dilihat codeword yang diterima adalah 01001, kemudian bandingkan dengan codeword pada Tabel 2.2, yang pertama adalah 00000, setelah dibandingkan dapat diketahui bahwa codeword yang pertama bukanlah codeword yang dikirimkan, karena terdapat dua bit yang berbeda (bit kesatu dan bit keempat dari sebelah kanan).berdasarkan cara analisa pada nomer satu diatas, maka codeword yang sebenarnya dikirimkan tidak mungkin codeword ketiga maupun keempat dari Table 2.2.Jadi codeword yang dikirimkan sebenarnya adalah codeword kedua dari Tabel 2.2, karena paling mendekati kesamaan dan hanya terdapat satu bit yang berbeda. Bagian penerima kemudian mengganti codeword 01001 dengan 01011 dan setelah itu didapatkan dataword 01, sesuai dengan yang dikirimkan.Hamming DistanceHamming distance antara 2 buah word adalah jumlah perbedaan antara bit yang berhubungan. Minimum hamming distance adalah hamming distance terkecil antara pasangan yang memungkinkan dalam sebuah kumpulan word.Contoh:Gambar 2.2 Hamming distance, (Forouzan, hal. 274)

Contoh:Gamabr 2.3 Minimum Hamming distance, (Forouzan, Hal. 275)

Error detection and correction dalam hamming distanceUntuk mendeteksi kesalahan, sejumlah s error, maka minimum hamming distance dalam kode blok menggunakan rumus dmin=s+1.Sedangkan untuk mengoreksi kesalahan sejumlah t error, maka minimum hamming distance dalam kode blok menggunakan rumus dmin=2t+1.

Linear Block CodeDalam kode blok linear, operasi X-OR dari dua codeword yang benar akan menghasilkan codeword yang benar juga pada lainnya. Salah satu contohnya yaitu, kode blok linier adalah kode pemeriksa paritas sederhana (Simple Parity Check Code), yaitu kode dideteksi untuk kesalahan bit tunggal dimana n=k+1 dan dmin=2. Kode pemeriksa paritas sederhana juga dapat mendeteksi kesalahan yang berjumlah ganjil. Contohnya pada Tabel 2.3.Linear Block CodeTable 2.3 Kode Pemeriksa Paritas Sederhana, (Forouzan, Hal. 279)

Keterangan:Di dataword digunakan rumus:

Jumlahkan semua bit dalam dataword, bila genap maka hasilnya 0, bila ganjil maka hasilnya 1.Untuk pengecekan Codeword yang dikirimkan digunakan rumus:

Kelima bit didalam codeword dijumlahkan, hasilnya (disebut syndrome) hanya 1 bit. Syndrome 0 bila jumlah bit codeword yang diterima genap. Syndrome 1 bila jumlah bit codeword yang diterima ganjil.Formula Simple parity check code , hal. 279Formula Simple parity check code , hal. 279

Bila dikirimkan dataword 1011 maka dataword yang dihasilkan adalah 10111, kebenarannya diuji melalui langkah berikut:Tidak ada kesalahan, codeword yang diterima 10111. sindrom 0, maka dataword 1011.Codeword yang diterima 10011. Sindrom 1. Tidak ada dataword yang dibuat.Codeword yang diterima 10110. Sindrom 1. Tidak ada dataword yang dibuat.Codeword yang diterima 00110. Sindrom 0, maka dataword 0011. Meskipun dataword yang dibuat salah karena nilai Sindrom genap. Tetapi pemeriksa pembaca kode paritas sederhana (simple parity check decoder) tidak bisa mendeteksi kesalahan yang bejumlah genap, karena dideteksi sebagai sindrom yang mempunyai hasil 0, meskipun dataword yang didalamnya tidak sesuai.Codeword yang diterima 01011. Sindrom 1. Tidak ada dataword yang dibuat.

TERIMA KASIHKODE SIKLIKKode siklik adalah kode blok linear khusus dengan tambahan satu properti. Dalam kode siklik, jika sebuah codeword diputar maka hasilnya adalah codeword lainnya.Sebagai contoh, jika 1011000 adalah codeword kemudian diputar (digeser) kekiri dan hasilnya 0110001 juga merupakan codeword. Dalam hal ini, jika kita sebut bit dalam codeword pertama a0-a6 dan bit dalam codeword kedua b0-b6, maka kita bisa menggeser bit dengan menggunakan formula berikut :

Formula Cyclic code, hal. 284Kategori dalam Cyclic code disebut Cyclic Redundancy Check (CRC), biasanya digunakan dalam LAN dan WAN.Contoh:

Operasi pembagian dalam CRC encoder.

PolinomialCara terbaik untuk memahami cyclic code dan bagaimana menganalisanya adalah dengan cara menampilkannya dalam bentuk polynomial.Pola 0s dan 1s dapat ditampilkan sebagai polynomial dengan koefisien 0 dan 1.Contoh:

Dari contoh diatas bisa dilihat kelebihan dari polynomial, yaitu pola 7 bit bisa digantikan dengan 3 kondisi. 1000011=x6+x+1

Figure 10.21 A polynomial to represent a binary word, hal. 291Tingkat polinomialTingkat polinomial adalah kekuatan yang tertinggi dalam polinomial. Sebgai contoh, tingkat polinomial dari x6+x+1 adalah 6. Operasi penambahan dan pengurangan polinomialx5 + x4 + x2 x6 + x4 + x2 = x6 + x5x4 dan x2 dihapus karena sepasang variabel yang identik.Operasi perkalian dan pembagianOperasi perkalian dua polinomial(x5 + x3 + x2 + x)(x2 + x +1)= x7 + x6 + x5 + x5 + x4 + x3 + x4 + x3 + x2 + x3 + x2 + x= x7 + x6 + x3 + xOperasi pergeseranPergeseran 3 bit ke kiri: 10011 menjadi 10011000 x4 + x + 1 menjadi x7 +x4 + x3Pergeseran 3 bit ke kanan: 10011 menjadi 10 x4 + x + 1 menjadi xEnkoder kode siklik menggunakan polinomial

ChecksumChecksum dipakai di Internet dengan menggunakan beberapa protokol meskipun tidak pada lapisan data link. Seperti halnya linear code dan cyclic, checksum ini didasarkan pada konsep redundansi. Beberapa protokol masih menggunakan checksum untuk mendeteksi kesalahan .Internet telah menggunakan checksum 16 bit dengan aritmatika one complement. Dalam aritmatika ini kita bisa memakai angka antara 0 dan 2n-1 hanya menggunakan n bit.Contoh:

Internet ChecksumInternet menggunakan checksum 16 bit, langkah-langkah pengirimannya segabgai berikut.Pengirim:Pesan dibagi menjadi word 16 bit.Nilai checksum word di set menjadi 0.Semua word termasuk checksum ditambah menggunakan penambahan one complement.Nilai sum dikomplemen dan menjadi checksum.Checksum dikirim bersama-sama dataPenerima:Pesan yang diterima termasuk checksum dibagi menjadi word 16 bit.Semua word ditambah menggunakan penambahan one complement.Nilai sum dikomplemen dan menjadi checksum yang baru.Jika nilai checksum 0 maka pesan diterima, jika tidak maka pesan ditolak.Contoh:

SUMBERForouzan, Behrouz A., Data Communications And Networking, Allan Kearney/Getty Images, USA, 2007. Chapter 10. Unit 10.4 10.5. Page 284 301.HWResume: 10.4 selesaiMenjawab soal Chapter 10.

34 7 [email protected] hari.Softcopy & hardcopy