@TMZaini NaskahPublikasi Deteksi Error

13
1 Dosen Informatics and Business Institute Darmajaya 1 PENDETEKSIAN DAN KOREKSI ERROR TM Zaini 1 ABSTRACT Walaupun metodologi komunikasi data didesain dengan baik, namun error / kesalahan masih dapat terjadi selama transmisi data. Selain itu, rangkaian tersebut hanya memiliki laju data yang terbatas, dan terdapat penundaan (delay) propagasi yang tidak nol antara saat bit dikirimkan dan saat bit diterima. Keterbatasan ini mempunyai implikasi yang penting bagi efesiensi pemindahan data. Oleh karena itu deteksi dan koreksi error mempunyai fungsi yang sangat penting dalam transmisi Protocol. Maka para perancang jaringan telah membuat strategi dasar yang berkenaan dengan error. Ini bertujuan untuk melindungi (protect), koreksi (correct), dan memelihara (maintain) integritas data. I. PENDAHULUAN Saluran komunikasi yang secara fisik menghubungkan dua mesin secara konseptual bekerja seperti halnya kabel. Sifat penting sebuah saluran yang menyerupai kabel adalah bahwa bit-bit diteruskan dalam urutan yang sama dengan sewaktu bit-bit itu dikirimkan. Data link layer mempunyai fungsi spesifik. Fungsi-fungsi ini meliputi penyediaan interface layanan yang baik bagi network layer, penentuan cara pengelompokkan bit dari physical layer ke dalam frame, hal-hal yang berkaitan dengan kesalahan transmisi, dan pengaturan aliran frame sehingga penerima yang lambat tidak akan dipenuhi oleh pengirim yang cepat. Untuk melayani network layer, data link layer harus menggunakan layanan yang disediakan oleh physical layer. Yang dilakukan physical layer adalah menerima aliran raw bit dan berusaha mengirimkannya ke tujuan. Aliran bit ini tidak dijamin bebas dari kesalahan. Jumlah bit yang diterima bisa lebih sedikit, sama dengan, atau lebih banyak dari jumlah bit yang ditransmisikan, dan juga bit-bit itu memiliki nilai yang berbeda. Bila diperlukan, data link layer bertanggung jawab untuk mendeteksi dan mengkoreksi kesalahan. II. METODE PENELITIAN 2.1. Frame Pendekatan yang umum dipakai adalah data link layer memecah aliran bit menjadi frame- frame diskrit dan menghitung checksum setiap framenya. Ketika sebuah frame tiba di tujuan, checksum dihitung kembali. Bila hasil perhitungan ulang checksum tersebut berbeda dengan yang terdapat pada frame, maka data link layer akan mengetahui bahwa telah terjadi kesalahan dan segera mengambil langkah tertentu sehubungan dengan adanya kesalahan tersebut. Terdapat empat metode framing, yaitu: 1. Penghitung karakter, menggunakan sebuah field pada header untuk menspesifikasikan jumlah karakter di dalam frame. Metode ini sudah jarang digunakan karena dijumpai masalah bahwa perhitungan dapat dikacaukan oleh kesalahan transmisi. 2. Pemberian karakter awal dan akhir dengan penyisipan karakter. Metode ini mengatasi masalah sinkronisasi ulang setelah terjadi suatu kesalahan dengan membuat masing-maisng frame diwakili dengan karakter ASCII DLE STX(ASCII Data Link Escape Start of Text) dan diakhiri dengan DLE ETX(Data Link Escape End of Text). Dalam metode ini, bila tempat yang dituju kehilangan track batas-batas frame, maka yang diperlukan adalah mencari karakter-karakter DLE STX dan DLE ETX. Kerugian penting yang terjadi berkaitan erat dengan karakter 8-bit secara umum dank ode karakter ASCII pada khususnya.

Transcript of @TMZaini NaskahPublikasi Deteksi Error

Page 1: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 1

PENDETEKSIAN DAN KOREKSI ERROR

TM Zaini 1

ABSTRACT

Walaupun metodologi komunikasi data didesain dengan baik, namun error / kesalahan masih dapat terjadi selama transmisi data. Selain itu, rangkaian tersebut hanya memiliki laju data yang terbatas, dan terdapat penundaan (delay) propagasi yang tidak nol antara saat bit dikirimkan dan saat bit diterima. Keterbatasan ini mempunyai implikasi yang penting bagi efesiensi pemindahan data. Oleh karena itu deteksi dan koreksi error mempunyai fungsi yang sangat penting dalam transmisi Protocol. Maka para perancang jaringan telah membuat strategi dasar yang berkenaan dengan error. Ini bertujuan untuk melindungi (protect), koreksi (correct), dan memelihara (maintain) integritas data.

I. PENDAHULUAN

Saluran komunikasi yang secara fisik menghubungkan dua mesin secara konseptual bekerja seperti halnya kabel. Sifat penting sebuah saluran yang menyerupai kabel adalah bahwa bit-bit diteruskan dalam urutan yang sama dengan sewaktu bit-bit itu dikirimkan. Data link layer mempunyai fungsi spesifik. Fungsi-fungsi ini meliputi penyediaan interface layanan yang baik bagi network layer, penentuan cara pengelompokkan bit dari physical layer ke dalam frame, hal-hal yang berkaitan dengan kesalahan transmisi, dan pengaturan aliran frame sehingga penerima yang lambat tidak akan dipenuhi oleh pengirim yang cepat.

Untuk melayani network layer, data link layer harus menggunakan layanan yang disediakan oleh physical layer. Yang dilakukan physical layer adalah menerima aliran raw bit dan berusaha mengirimkannya ke tujuan. Aliran bit ini tidak dijamin bebas dari kesalahan. Jumlah bit yang diterima bisa lebih sedikit, sama dengan, atau lebih banyak dari jumlah bit yang ditransmisikan, dan juga bit-bit itu memiliki nilai yang berbeda. Bila diperlukan, data link layer bertanggung jawab untuk mendeteksi dan mengkoreksi kesalahan.

II. METODE PENELITIAN

2.1. Frame Pendekatan yang umum dipakai adalah data link layer memecah aliran bit menjadi frame-

frame diskrit dan menghitung checksum setiap framenya. Ketika sebuah frame tiba di tujuan, checksum dihitung kembali. Bila hasil perhitungan ulang checksum tersebut berbeda dengan yang terdapat pada frame, maka data link layer akan mengetahui bahwa telah terjadi kesalahan dan segera mengambil langkah tertentu sehubungan dengan adanya kesalahan tersebut. Terdapat empat metode framing, yaitu: 1. Penghitung karakter, menggunakan sebuah field pada header untuk menspesifikasikan jumlah

karakter di dalam frame. Metode ini sudah jarang digunakan karena dijumpai masalah bahwa perhitungan dapat dikacaukan oleh kesalahan transmisi.

2. Pemberian karakter awal dan akhir dengan penyisipan karakter. Metode ini mengatasi masalah sinkronisasi ulang setelah terjadi suatu kesalahan dengan membuat masing-maisng frame diwakili dengan karakter ASCII DLE STX(ASCII Data Link Escape Start of Text) dan diakhiri dengan DLE ETX(Data Link Escape End of Text). Dalam metode ini, bila tempat yang dituju kehilangan track batas-batas frame, maka yang diperlukan adalah mencari karakter-karakter DLE STX dan DLE ETX. Kerugian penting yang terjadi berkaitan erat dengan karakter 8-bit secara umum dank ode karakter ASCII pada khususnya.

Page 2: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 2

3. Pemberian flag awal dan flag akhir dengan penyisipan bit. Metode ini memungkinkan frame data berisi sembarang jumlah bit per karakter. Penyisipan bit disini analog dengan penyisipan karakter, yaitu sebuah DLE disisipkan ke keluaran aliran karakter sebelum DLE pada data. Bila penerima mengalami kehilangan track frame tertentu, yang perlu dilakukan adalah menyisir input deretan flag, karena flag tersebut hanya mungkin terdapat pada batas frame saja dan tidak pernah berada pada data.

4. Pelanggaran pengkodean physical layer. Metode ini hanya bisa digunakan bagi jaringan yang encoding pada medium fisiknya mengandung beberapa redundansi (pengulangan).

Untuk metode framing ini, banyak protocol data link yang memakai kombinasi sebuah perhitungan karakter dengan salah satu metode lainnya untuk alasan keamanan tambahan. Frame akan berlaku hanya bila terdapat delimeter yang sesuai pada posisi tertentu dan checksumnya benar. Bila tidak, aliran input akan disisir untuk mencari delimiter berikutnya.

2.2. Kontrol kesalahan

Bagaimana meyakinkan semua frame akan dikirimkan dengan segera ke network layer di mesin tujuan dengan urutan yang benar. Cara yang umum untuk menjamin pengiriman reliabel adalah memberikan pengirim beberapa umpan balik tentang apa yang terjadi di sisi lain dari saluran. Umumnya protokol meminta penerima untuk mengirimkan kembali frame-frame kontrol khusus yang berkaitan dengan acknowledgement positif atau negatif tentang frame yang datang. Bila pengirim menerima acknowledgement positif, maka pengirim akan mengetahui bahwa frame telah sampai dengan baik. Sebaliknya, acknowledgement negatif baerarti sesuatu yang salah, maka frame harus ditransmisikan ulang.

Kemungkinan masalah lain bisa muncul karena berasal dari hardware, dimana frame bisa musnah sama sekali. Dalam kasus ini, penerima tidak akan bereaksi sama sekali, karena tidak memiliki alasan untuk bereaksi. Kemungkinan ini berkaitan dengan pemakaian timer kedalam data link layer.

Pada saat pengirim mentransmisikan sebuah frame, pengirim juga mengaktifkan timer. Timer akan mati setelah melalaui interval yang cukup panjang bagi frame untuk mencapai mesin yang dituju, diproses disana, dan acknowledgement akan kembali sebelum timer habis. Akan tetapi, bila salah satu frame atau acknowledgment hilang, timet akan segera berhenti, memperingatkan pengirim akan terjadinya maslah penting.

Penyelesainnya adalah dengan mengirimkan kembali frame. Tetapi, bila frame dikirimkan kembali bebrapa kali terdapat bahaya yaitu penerima akan menerima dua kali atau lebih frame yang sama, dan meneruskannya ke network layer lebih dari satu kali. Untuk menjaga terjadinya hal ini, umumnya perlu diberikan nomor urut yang keluar sehingga penerima dapat membedakan transmisi ulang dari frame aslinya. Dua strategi dasar mengenai kesalahan, yaitu: 1. Menggunakan kode-kode pendeteksi kesalahan.

Yaitu dengan melibatkan redundansi secukupnya untuk menarik kesimpulan bahwa suatu kesalahan telah terjadi, dan membiarkannya untuk meminta pengiriman ulang.

2. Menggunakan kode-kode pengkoreksi kesalahan. Yaitu dengan melibatkan informasi redundan secukupnya bersama-sama dengan setiap blok data yang dikirimkan untuk memungkinkan penerima menarik kesimpulan tentang apa karakter yang ditransmisikan yang seharusnya ada.

2.3. Deteksi Error Deteksi error menambahkan bit tambahan pada akhir setiap message (redundancy bit) oleh data link layer dari sender. Data pendeteksi dihitung berdasarkan beberapa perhitungan matematik yang dilakukan pada message. Jadi secara konsep deteksi error dapat digambarkan melalui gambar berikut:

Page 3: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 3

Receiver melakukan juga melakukan beberapa perhitungan matematik yang sama pada message yang berguna untuk mencocokkan hasil terhadap data pendeteksi error yang terkirim bersama message. Jika keduanya cocok, messagenya diterima, jika tidak error telah terjadi dan message ditolak. Secara umum jika data yang terkirim mempunyai error yangn besar maka semakin besar pula koreksinya. Walaupun proteksi meninkat, throughput dari transmisi data yang sebenarnya berkurang. Kapasitas yang tersedia untuk menstranmisi data actual berkurang karena adanya penambahan ruan yang digunakan untuk mentransmit data penedeteksi. Efisisensi dari throughput bervariasi secara berkabalikan sebagai jumlahyang diinginkan oleh deteksi error dan koreksi ditingkatkan. Deteksi Error dapat dibedakan menjadi tiga metode, yaitu : 1. Vertical Redudancy Check (VRC) 2. Longitudinal Redundancy Checking (LRC) 3. Polinomial Checking, yang terdiri dari dua metode, yaitu :

a. Checksum b. Cyclical Redundancy Chek (CRC).

2.4. Metode Vertical Redundancy Check (VRC) Vertical Redundancy Check disebut juga dengan Parity Checking merupakan salah satu dari metode pendeteksi error yang tertua dan paling sederhana. Dengan teknik ini satu blok bit tambahan ditambahkan ke tiap byte pada message, sehingga jumlah bit paritasnya genap. Secara konsep VRC dapat digambarkan sebagai berikut:

Accept

Reject

Checking function

1010000000001010101010

1011101

DATA

Generating function

Redudancy Check

Sender Receiver

1010000000001010101010 1011101

Data & Redudancy Check

Page 4: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 4

Nilai dari paritas bit tambahan ini didasarkan pada jumlah dari satu pada tiap byte yang ditransmisikan, k bit diperlukan dtransmisikan sebagai single blok, ditunjukkan sperti gambar berikut ini. Hanya dengan menambahkan satu bit parity sehingga )...(

121 bbbb kk −+++= %2

Model parity checking:

Parity bit ini diset untuk membuat jumlah total dari 1 di dalam byte (termasuk parity bit) menjadi genap atau ganjil. Contohnya untuk data empat bit, 1001, terdapat 1 sebanyak dua bit. Untuk parity genap nol (0) ditambahkan di akhir data agar paritynya genap. Kemudian untuk parity ganjil 1 ditambahkan agar partynya ganjil. Seperti ditunjukkan pada table berikut ini.

PARITY DATA DATA DENGAN PARITY

GENAP 1001 10010

GANJIL 1001 10011

Kelemahan parity cecking dapat mendeteksi terjadinya kesalahan, tetapi tidak dapat mendeteksi kesalahan apa yang terjadi. Lebih lanjut jika ada dua bit dipertukarkan, parity cek tidak dapat mendeteksi error. Secara mudah hal ini dapat dilihat bahwa parity dapat mendeteksi error hanya ketika sebuah bit ganjil ditukar Bila jumlah bit genap maka pendeteksian error gagal. Oleh karena itu kemungkinan pendeteksian error dengan parity checking hanya 50%, akibatnya sekarang teknik ini jarang digunakan. 2.5. Longitudinal Redundancy Checking (LRC) Metode Longitudinal Redundancy Checking dikembangkan untuk mengatasi kelemahan dari parity checking. LRC menambahkan satu karakter tambahan yang disebut blok check caracter (BCC) pada akhir setiap blok data sebelum blok ditransmisi. Nilai dari BCC ditentukan dengan cara yang sama seperti pada parity bit tetapi dengan menghitung secara longitudinal melalui message, lebih baik daripada dengan menghitung secara vertical melalui setiap karakter, atau dapat dijelaskan pada gambar berikut:

bk-1 bk-2 ………………… b2

b1 b0

Page 5: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 5

Bit 1 pada BCC adalah parity bit untuk semua 1 bit dalam blok, bit 2 adalah parity bit untuk semua bit 2 dan seterusnya. Maka contoh dari gambar diatas dapat dijelaskan dengan bagan berikut: P A R I T Y BCC . BIT 1 1 1 0 1 1 BIT 2 1 1 0 0 0 BIT 3 1 0 1 1 1 BIT 4 0 1 1 0 0 BIT 5 0 1 1 1 1 BIT 6 1 1 0 0 0 BIT 7 1 0 0 0 1 PARITY 1 1 1 1 0 .

Party check akan mengecek error pada 1,3, atau 5 bit dalam sebuah karakter yang telah berubah, tetapi jika 2,4 6 bit yang berubah, dia tidak mendeteksi. Jadi parity check dengan sendirinya akan mendeteksi setengah dari transmisi error yang terjadi. Pada saat dikombinasikan / digabungkan dengan LRC, probabilitas untuk mendeteksi error meningkat. Pada kenyataannya probabilitas tergantung pada panjang data blok untuk blok cek karakter yang dihitung. Kelemahan pada metode LRC ini adalah walaupun digabungkan dengan metode VRC namun tidak dapat mendeteksi dimana tepatnya letak errornya. 2.6. Polynomial Checking Metode ini menambahkan sebuah karakter atau susunan karakter pada akhir sebuah message berdasar pada algoritma matematika. Dua teknik Polynomial Checking yang sangat populer adalah Checksum dan Cyclical Redundancy (CRC). 2.6.1. Checksum Dengan teknik checksum, sebuah checksum ditambahkan pada akhir dari sebuah message. Receiver menghitung checksumnya dengan cara yang sama dan membandingkannya dengan checksum yang ditransmisi sender. Jika dua nilai tersebut sama, maka message diduga tidak ada error. Konsep ini dapat dijelaskan dengan gambar berikut:

Page 6: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 6

Secara singkat dari gambar diatas perhitungan metode checksum dapat disederhanakan sebagai berikut:

Sebagai contoh untuk checksum dari 8 bit data 10101001 00111001 maka proses checksumnya adalah sebagai berikut: � Sender

• Checksum of 8 bits • Data

⇐⇐⇐⇐10101001 00111001

Addition using one’s complement 10101001 00111001

Sum 11100010 Checksum 00011101 Pattern sent ⇐⇐⇐⇐10101001 00111001 00011101

� Receiver • Received data

10101001 00111001 00011101

Addition using one’s complement

10101001 00111001 00011101

Sum 11111111 Complement 00000000

Kelemahan dari metode checksum ini adalah tidak dapat mendeteksi error jika terdapat satu atau lebih segmen bit yang rusak dan bit yang berhubungan atau bit yang berlawanan nilainya pada segmen kedua juga mengalami kerusakan. Checksum mendeteksi sampai 95% dari error, tetapi tidak dapat memperbaiki error. 2.6.2 Cyclical Redundancy Check (CRC) Metode CRC merupakan metode yang dapat menangani deteksi error yang paling baik diantara metode-metode yang telah dibahas sebelumnya. Metode ini pada prinsipnya menggunakan pembagian bilangan biner dengan CRC checker dan pembagian biner dengan CRC generator. Dalam gambar berikut dijelaskan prinsip CRC secara umum.

Page 7: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 7

Secara prinsip untuk pembagian biner CRC Checker dapat dijelaskan melalui gambar berikut :

Sedangkan untuk pembagian biner dengan CRC generator, dapat dijelaskan dengan gambar sebagai berikut :

Pada CRC Generator pembagi binernya berupa polynomial, yang dapat direpresentasikan sebagai berikut :

Page 8: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 8

Sifat dari polynomial adalah : 1. Tidak dapat dibagi dengan x 2. Dapat dibagi dengan x + 1 Ada 4 macam standar polynomial, yaitu :

Kemampuan dari CRC adalah : 1. Dapat mendeteksi semua burst error yang mengakibatkan jumlah bit ganjil 2. Dapat mendeteksi semua burst error yang panjangnya kurang dari atau sama dengan pangkat

dari polynomial. 3. Mendeteksi dengan burst error yang mempunyai mempunyai pangkat yang lebih besar atau

sama dengan pangkat dari polynomial. Contoh : CRC –12 dapat mendeteksi dengan probabilitas 99.97% burst error yang mempunyai pangkat 12 atau lebih. Contoh lainnya dapat dijelaskan dengan gambar di bawah ini :

Page 9: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 9

Frame : 1101011011Generator : 10011Pesan setelah 4 bit ditambahkan : 11010110000

110000101010011 11010110110000

10011 10011 10011 00001 00000 00010 00000 00101 00000 01011 00000 10110 10011 01010 00000 10100 10011 01110 00000 sisa 1110

frame yang ditransmisikan : 11010110111110 Gambar di atas menjelaskan proses perhitungan untuk frame 1101011011 dan G(x) = x4 + x + 1. T(x) habis dibagi (modulus 2) oleh G(x). Untuk sembarang masalah pembagian, bila mengurangi angka yang dibagi dengan sisanya, maka yang akan tersisa adalah angka yang dapat habis dibagi oleh pembagi. Misalnya dalam basis 10, bila membagi 210.278 dengan 10.941, maka sisanya 2399. Dengan mengurangkan 2399 ke 210.278, maka yang bilangan yang tersisa (207.879) habis dibagi oleh 10.941.

III. HASIL DAN PEMBAHASAN

3. Koreksi Error Koreksi error dapat dibedakan menjadi dua metode, yaitu :

1. Retransmission a. Stop and Wait ARQ (Automatic Repeat Request) b. Continuous ARQ

2. Forward Error Corection a. Bose-Chaudhuri Algoritm b. Hagelbarger Algoritm c. Hamming Algoritm

3.1. Retransmission Metode koreksi erros yang paling sederhana, paling efektif, tidak mahal, dan yang paling umum digunakan adalah metode retransmission. Dengan metode ini reciver yang mendeteksi sebuah error sederhana dapat meminta sender untuk mentransmisi ulang message sampai message yang diterime receiver tanpa error. Ini sering disebut Automatic Repeat request (ARQ). Ada dua type ARQ yaitu : Stop and Wait ARQ dan Continuous ARQ.

a. Stop and Wait ARQ Dengan metode Stop and Wait ARQ sender menghentikan dan menunggu respon dari receiver setelah mengirimkan message atau paket data. Setelah menerima message atau paket data receiver mengirimkan acknowledgment (ACK), jika message yang diterima tanpa error atau receiver mengirimkan negative acknowledgment (NAK) jika message yang diterima mengandung error. Jika yang dikirimkan adalah NAK, sender mengirim ulang data

Page 10: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 10

sebelumnya. Sedangkan jika ACK sender mengirimkan message selanjutnya. Stop and wait ARQ adalah half duplex transmission seperti diilustrasikan gambar berikut ini :

b. Continuous ARQ Dengan continuous ARQ sender tidak menunggu acknowledgment setelah mengirimkan message dan langsung mengirimkan message yang berikutnya. Ketika message sedang ditransmisikan sender menganalisa arus datangnya acknowledgment. Jika yang diterima adalah NAK sender mengirim ulang message yang dibutuhkan. Paket data yang ditransmisikan tersebut kemungkinan hanya mengandung satu error. Contnuous ARQ adalah Full Duplex Transmission seperti diilustrasikan oleh gambar berikut ini :

STOP and Wait ARQ

Sender Receiver

Errors detected

No errors detected PACKET A

ACK

ACK

PACKET B No errors detected

PACKET B

NAK

Page 11: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 11

3.2. Forward Error Correction Forward Error Correction menggunakan kode-kode yang mengandung redundant yang cukup untuk mengatasi error-error dengan mendeteksi dan mengoreksi error tersebut pada akhir pengiriman message tanpa transmisi ulang dari message asli. Terdapat 3 algoritma koreksi error yang digunakan dalam metode forward error correction, yaitu : 3.2.1 Algoritma Bose – Chaudhuri Algoritma Bose –Chaudhuri menggunakan 10 bit check untuk setiap 21 bit data dan mampu menkoreksi semua error bit ganda dan mendeteksi sampai 4 bit error yang berurutan. 3.2.2 Algoritma Hagelbarger Algoritma Hagelbalger dapat mengkoreksi samapi 6 bit error yang berurutan jika group dari bit error diikuti sedikitnya 19 valid bit data, sebelum bit error yang lebih banyak terjadi. 3.2.3 Algoritma Hamming Code Algoritma Hamming mempunyai 7 bentuk bit, yang mampu menkoreksi error single bit pada setiap karakter.

IV. KESIMPULAN

Penggunaan Kode Hamming Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat menentukan

berapa banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya cukup melakukan operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah bit 1 pada hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut jarak Hamming (Hamming, 1950). Hal yang perlu diperhatikan adalah bahwa bila dua codeword terpisah dengan jarak Hamming d, maka akan diperlukan error bit tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya.

TABEL KEBENARAN EXCLUSIF OR.

Pada sebagian besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal. Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan. Bila ditentukan algoritma untuk menghitung check bit, maka akan dimungkinkan untuk membuat daftar lengkap codeword yang legal. Dari daftar ini dapat dicari dua codeword yang jarak Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap.

Sifat-sifat deteksi error dan koreksi error suatu kode tergantung pada jarak Hamming-nya. Untuk mendeteksi d error, membutuhkan kode dengan jarak d+1 karena dengan kode seperti itu tidak mungkin bahwa error bit tunggal d dapat mengubah sebuah codeword yang valid menjadi codeword valid lainnya. Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata bahwa telah terjadi error pada transmisi. Demikian juga, untuk memperbaiki/koreksi error d, memerlukan kode yang berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisini akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik.

Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bit-bit 1 dalam codeword menjadi genap (atau ganjil). Misalnya, bila 10110101 dikirimkan dalam parity genap dengan menambahkan sebuah bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan dengan parity genap 10110001 menjadi 101100010. Sebuah kode dengan parity bit

Page 12: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 12

tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah. Cara ini dapat digunakan untuk mendeteksi error-error tunggal.

Sebagai contoh sederhana dari kode perbaikan/koreksi error, ambil sebuah kode yang

hanya memiliki empat buah codeword valid : 0000000000,0000011111,1111100000 dan 1111111111 Kode ini mempunyai jarak 5, yang berarti bahwa code tersebut dapat memperbaiki error

ganda. Bila codeword 0000011111 tiba, maka penerima akan tahun bahwa data orisinil seharusnya adalah 0000011111. Akan tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error tidak akan dapat diperbaiki.

Dimisalkan akan merancang kode dengan m bit pesan dan r bit check yang akan

memungkinkan semua error tunggal bisa diperbaiki. Masing-masing dari 2m pesan yang legal membutuhkan pola bit n+1. Karena jumlah total pola bit adalah 2n, berarti harus memiliki (n+1)2m ≤ 2n.

Dengan memakai n = m + r, persyaratan ini menjadi (m + r + 1)≤2r. Bila m ditentukan,

maka ini akan meletakkan batas bawah pada jumlah bit check yang diperlukan untuk mengkoreksi error tunggal.

Batas bawah secara teoritis ini dapat diperoleh dengan menggunakan metoda Hamming

(1950). Bit-bit codeword dinomori secara berurutan, diawali dengan bit 1 pada sisi paling kiri. Bit bit yang merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check. Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity sebagian kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau ganjil). Sebuah bit dapat dimasukkan dalam beberapa komputasi parity. Untuk mengetahui bit check dimana bit data pada posisi k berkontribusi, tulis ulang k sebagai jumlahan pangkat 2. Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).

Ketika sebuah codeword tiba, penerima menginisialisasi counter ke nol. Kemudian

codeword memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah bit check tersebut mempunyai parity yang benar. Apabilaila tidak, codeword akan menambahkan k ke counter. Bila counter sama dengan nol setelah semua bit check diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit yang tidak benar. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan (error), maka bit inversinya adalah 11, karena itu hanya satu-satunya yang diperiksa oleh bit 1,2, dan 8. Gambar 1 di bawah ini menggambarkan beberapa karakter ASCII 7-bit yang diencode sebagai codeword 11 bit dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.

Page 13: @TMZaini NaskahPublikasi Deteksi Error

1 Dosen Informatics and Business Institute Darmajaya 13

karakter

H 1001000 00110010000a 1100001 10111001001m 1101101 11101010101m 1101101 11101010101i 1101001 01101011001n 1101110 01101010110g 1100111 11111001111

0100000 10011000000c 1100011 11111000011o 1101111 00101011111d 1100100 11111001100e 1100101 00111000101

urutan tansmisi bit

ASCII Check bits

Penggunaan kode Hamming untuk mengkoreksi burst error

Kode Hamming hanya bisa memperbaiki error tunggal. Akan tetapi, ada trick yang

dapat digunakan untuk memungkinkan kode Hamming dapat memperbaiki error yang meletup. Sejumlah k buah codeword yang berurutan disusun sebagai sebuah matriks, satu codeword per baris. Biasanya, data akan ditransmisikan satu baris codeword sekali, dari kiri ke kanan. Untuk mengkoreksi error yang meletup, data harus ditransmisikan satu kolom sekali, diawali dengan kolom yang paling kiri. Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword akan terpengaruh. Akan tetapi kode Hamming dapat memperbaiki satu error per codeword, sehingga seluruh blok dapat diperbaiki. Metode ini memakai kr bit check untuk membuat km bit data dapat immune terhadap error tunggal yang meletup dengan panjang k atau kurang. Kekurangan dari forward error correction adalah memerlukan biaya tinggi karena membutuhkan sejumlah redundant bit yang dibutuhkan untuk mengkoreksi error sampai penerimaan data berakhir.

DAFTAR PUSTAKA Tanenbaum, AS, Computer Networks, Prentise Hall, 1996. Stallings, W. Data and Computer Communications, Macmillan Publishing Company, 1985.

Stallings, W. Local Network, Macmillan Publishing Company, 1985.

Black, U.D, Data Communications and Distributed Networks, Prentise Hall.

http://home.apu.edu/~jcox/projects/individual/vu, 9 maret 2007 http://www.cs.berkeley.edu/~mccaesar/ee122/weeek_13_error_detection.pdf, l 9 maret 2007 http://www.cs.ucl.ac.uk/staff/e.bhati/051-notes, 9 maret 2007