Home > Networking > Error Checking pada Jaringan Telekomunikasi

Error Checking pada Jaringan Telekomunikasi

Artikel ini sebenarnya merupakan tugas kuliah, namun tidak ada salanya dipublikasikan sehingga dapat membantu pemahaman maupun pengetahuan para pembaca.

Masalah yang harus dihadapi dalam sistem komunikasi apapun adalah terjadinya/adanya error/kesalahan yang menyebabkan sistem tersebut tidak sesuai dengan yang diinginkan. Hal ini terjadi juga pada sistem komunikasi data. Masalah utama dalam komunikasi data adalah realibility. Sinyal yang dikirim melalui medium tertentu dapat mengalami pelemahan, distorsi, dan adanya keterbatasan bandwidth. Hal tersebut dapat membuat data yang dikirim menjadi rusak, hilang, berubah, atau terduplikasi. Kesalahan/error yang terjadi tersebut dapat diakibatkan oleh berbagai hal seperti kesalahan dalam transmisi (hardware), network interface, interferensi elektrik, noise (misal thermal noise), koneksi, dll.

Berikut ini akan dijelaskan beberapa jenis Metode Error Checking :

1.Parity Check
Pada metode ini, deteksi error dilakukan dengan menambahkan sebuah ‘parity’ bit pada setiap paket data, sehingga dapat dideteksi suatu paket data tersebut valid atau tidak. Metode parity bit ini terbagi menjadi dua jenis yakni:
–    even parity
metode ini biasa dipergunakan dalam transmisi data secara asynchronous, pada metode ini sebelum paket data dikirim, setiap paket data di cek apakah jumlah ‘1’ berjumlah ganjil atau genap, jika paket data berjumlah genap maka bit parity akan tetap 0 sedangkan jika jumlah ‘1’ ganjil maka bit parity akan menjadi 1 sehingga jumlah bit menjadi genap. Proses penghitungan ini menggunakan XOR gate. Untuk lebih jelasnya dapat dilihat pada contoh dibawah ini.
Berikut ini adalah contoh pengecekan error pada transmisi menggunakan metode even parity :
A ingin mentransmisikan data                                :1001
A menghitung, untuk mendapatkan bit parity    :1^0^0^1 = 0
A menambahkan bit paritas pada paket data      :10010
B menerima data                                                        :10010
B menghitung parity                                                  :1^0^0^1 = 0
B melaporkan bahwa data yang diterima valid [harapan yang diterima B benar, yakni even parity].

A ingin mentransmisikan data                                : 1001
A menghitung, untuk mendapatkan bit parity    : 1^0^0^1 = 0
A menambahkan bit paritas pada paket data      : 10010
*** TRANSMISSION ERROR ***
B menerima data                                                        : 11010
B menghitung parity                                                  : 1^1^0^1^0 = 1
B melaporkan adanya error pada transmisi, setelah mendapatkan data yang ditidak sesai harapan yakni even parity

–    odd parity
metode ini biasa dipergunakan dalam transmisi data secara synchronous, pada metode ini sebelum paket data dikirim, setiap paket data di cek apakah jumlah ‘1’ berjumlah ganjil atau genap, jika paket data berjumlah genap maka bit parity akan menjadi 1 sehingga jumlah bit ‘1’ menjadi ganjil  sedangkan jika jumlah ‘1’ sudah ganjil maka bit parity akan tetap menjadi 0.
Berikut ini adalah contoh pengecekan error pada transmisi menggunakan metode even parity :
A ingin mengirimkan paket data                             : 1001
A menghitung, untuk mendapatkan bit parity     : ~(1^0^0^1) = 1
A menambahkan bit parity                                       : 10011
B menerima data                                                         : 10011
B menghitung parity bit                                             : 1^0^0^1^1 = 1
B melaporkan bahwa data yang diterima valid [harapan yang diterima B benar, yakni even parity].

A ingin mengirimkan paket data                              : 1001
A menghitung nilai even parity                                 : 1^0^0^1 = 0
A menambahkan bit parity                                         : 10010
*** TRANSMISSION ERROR ***
B menerima                                                                    : 10011
B menghitung bit parity                                               : 1^0^0^1^1 = 1
B melaporkan adanya error pada transmisi, setelah mendapatkan data yang ditidak sesai harapan yakni even parity

Kelebihan dari metode parity check:

  • #    Sederhana dalam analisis dan penggunaan pada sistem
  • #    Mudah direalisasikan dalam bentuk rangkaian/hardware

Kekurangan dari metode parity check:

  • #    Kurang handal dalam mengatasi deteksi dan perbaikan error.
  • #    Kemungkinan kesalahan yang terjadi besar, yaitu 50%
  • #    Hanya dapat mendeteksi error dalam jumlah bit terbatas : 1-3 bit errors.

Berikut ini contoh kesalahan yang dilakukan oleh metode parity check
A ingin mengirimkan data                 :    1001
A menghitung nilai paritas genap    :    1^0^0^1 = 0
A mengirimkan                                    :    10010
*** TRANSMISSION ERROR ***
B menerima                                          :    11011
B menghitung semua paritas            :    1^1^0^1^1 = 0
B melaporkan transmisi data benar, walaupun sebenarnya data terima salah.

2.Checksum

Pada Metode checksum, pengecekan dilakukan dengan melakukan penjumlahan pada sekumpulan data dan kemudian mengcomplement jumlah tersebut, kemudian hasil complement tersebut/checksum ditambahkan pada data sebagai sebuah karakter. Kemudian pada reciever, akan dihitung ulang checksum-nya dan dilakukan perbandingan nilai/jumlah data yang dikirimkan dengan checksum. Bila terjadi perbedaan nilai antara kedua nilai ini, maka terjadi kesalahan/error dalam pengiriman data. Pada dasarnya metode ini mirip dengan parity check, perbedaannya adalah jumlah bit pada sums lebih besar dan hasil dari penjumlahan data dengan checksum harus selalu dibuat nol.
Di sisi pengirim:

  • Unit data dibagi ke dalam k seksi yang masing-masing seksi berisi n-bit data.
  • Semua seksi data tersebut ditambahkan menggunakan 1’s complement untuk mendapatkan jumlahnya.
  • Jumlah tersebut kemudian dikomplemenkan dan menjadi nilai checksum.
  • Checksum dikirim bersama dengan data sebagai unit terakhir dalam paket pengiriman.

Di sisi penerima:

  • Unit data yang diterima kembali dibagi ke dalam k seksi yang masing-masing seksi berisi b-bit data.
  • Semua seksi unit data tersebut dijumlahkan menggunakan 1’s complement untuk mendapatkan jumlahnya.
  • Jumlah tersebut kemudian dikomplemenkan.
  • Jika hasilnya adalah nol, maka data diterima; jika tidak, data akan ditolak.

Checksum

Jadi, secara umum dapat disimpulkan mengenai Checksum ini adalah sebagai berikut:
Kelebihan dari metode Checksum:

  • Mudah diimplemantasikan dalam software
  • Memiliki kehadalan sistem yang cukup tinggi, yaitu sekitar 90%.

Kekurangan dari metode Checksum:

  • Kehandalan sistem deteksi error yang masih lemah (walaupun lebih handal dibanding parity check) karena tidak dapat mendeteksi unit data (bytes/words) yang urutannya berantakan, tidak dapat mendeteksi unit data mana yang mengalami kesalahan.

3. CRC – Cyclic Redundancy Check
Cyclic redundancy check (CRC) adalah metode yang umum digunakan untuk mendeteksi error. CRC beroperasi pada sebuah frame/block. Setiap block berukuran m bit yang akan dikirim akan dihitung CRC checksumnya (berukuran r bit), kemudian dikirim bersama2 dengan frame (dengan ukuran m+r bit). Pada sisi penerima, penerima akan menghitung CRC checksum pada frame yang diterima, dan dibandingkan dengan checksum yang diterima, jika berbeda, berarti frame rusak.

CRC menggunakan prinsip modulo bilangan. Data dianggap sebagai sebuah bilangan, dan untuk menghitung checksum, sama dengan menambahkan digit untuk data dengan digit untuk checksum (berisi 0) kemudian dibagi dengan pembilang tertentu, dan sisa pembagiannya menjadi checksum untuk data tersebut. Tergantung pemilihan bilangan pembagi, CRC dapat mendeteksi single-bit error, double bit error, error berjumlah ganjil, burst error dengan panjang maksimum r. Bilangan pembagi tersebut disebut sebagai generator (polinomial).
Berikut contoh deskripsi mengenai CRC.
Di sisi pengirim:
#    Data memiliki m bit
1001, m = 4
#    Generator memiliki panjang r bit
101, r = 3
#    Tambahkan r-1 bit 0 ke data:
100100
#    Bagi bilangan ini dengan generator, sisanya (11) adalah checksum
#    Tambahkan checksum ke data asal: 100111

Di sisi penerima:
#    Bagi data yang diterima dengan generator.
Jika sisanya bukan 0, berarti terjadi kesalahan.
#    Jika sisanya 0, berarti tidak terjadi kesalahan,
sesuai dengan kriteria generator yang digunakan.

Pada CRC ini, generator pembagi data ini sering disebut generator polinomial karena nilai pembagi ini dapat direpresentasikan dalam bentuk polinomial peubah banyak, tergantung pada jenis/nilai pembagi yang digunakan. Gambar berikut menjelaskan konsep tersebut.

e59bbee78987-3

Berikut adalah beberapa generator polinomial yang sering digunakan berdasarkan konvensi internasional.
LRC: X8 + 1
CRC-12: X12 + X11 + X3 + X2 + X + 1
CRC-16: X16 + X15 + X2 + 1
CRC CCITT V41: X16 + X12 + X5 + 1 (digunakan pada HDLC procedure.)
CRC-32 (Ethernet): = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1
CRC ARPA: X24 + X23+ X17 + X16 + X15 + X13 + X11 + X10 + X9 + X8 + X5 + X3 + 1

Jadi, secara umum dapat disimpulkan mengenai CRC ini adalah sebagai berikut
Kelebihan dari metode CRC:

  • Dapat digunakan dalam pengiriman data berkecepatan tinggi (16-32 bit).
  • Memiliki kehadalan sistem yang sangat tinggi, yaitu sekitar 99%.
  • Mampu mendeteksi bit error dalam jumlah banyak (burst error) dengan panjang yang kurang dari jumlah redundansi bitnya.

Kekurangan dari metode CRC:

  • Realisasi rangkaian/hardware dan software yang paling sulit dibanding parity check dan checksum.
  • Analisis dan perhitungan dalam perancangan yang cukup sulit.
Advertisements
  1. Irvan Beethoven
    March 27, 2009 at 3:15 pm

    kk contoh checksumna ga da ya? 😦 minta dunk…hehe…

  2. April 3, 2009 at 6:09 am

    nanti deh saya edit lagi…
    biar lebih jelas 🙂

  3. Kevin
    May 24, 2009 at 3:53 pm

    Hmm.. Keqnya gw tau tuh sumbernya darimana.. Haha
    >:)

    • May 25, 2009 at 6:33 am

      wkwkwkwk…. dari pr gw vin hohoho

  4. tio
    January 13, 2010 at 12:38 am

    aku mau nanya mas… misal kita mendapatkan file ‘1234567’ terus yang pertama kali kita lakukan untuk menghitung crc-nya gimana? misal dengan algoritma crc16 ccitt, apakah teks 1234567 tadi masing masing karakter dijadikan binary, terus dijadikan satu menjadi deret biner yg panjang setelah itu baru di bagi dgn polynomial 1021.. tlg y mas kalo emg tau, thx

  5. June 15, 2010 at 12:51 pm

    nah… mantep… makasih infonya….

  6. October 14, 2012 at 3:08 am

    izin share

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: