Kamis, 27 Oktober 2016

Deteksi dan Koreksi Kesalahan



   a.     Flow Control
        Flow control adalah suatu teknik untuk memastikan/meyakinkan bahwa suatu stasiun transmisi tidak menumpuk data pada suatu stasiun penerima. Tanpa flow control, buffer (memori penyangga) dari receiver akan penuh sementara masih banyak data lama yang akan diproses. Ketika data diterima, harus dilaksanakan sejumlah proses sebelum buffer dapat dikosongkan dan siap menerima banyak data.
Ada beberapa bentuk dari flow control antara lain:
a.       Stop and wait flow control
Cara kerjanya suatu sumber mengirimkan frame. Setelah diterima, penerima memberi isyarat untuk menerima frame lainnya dengan mengirim acknowledgement ke frame yang baru diterima. Pengirim atau sumber harus menunggu sampai menerima acknowledgement sebelum mengirim frame berikutnya. Penerima kemudian dapat menghentikan aliran data dengan tidak memberi acknowledgement. Frame yang dikirimkan tidak akan menjadi masalah jika ukuran datanya tidak terlalu besar. Jika data yang dikirim besar, maka secara otomatis jumlah framenya akan bertambah sehingga menyebabkan stop and wait control menjadi tidak efisien.

b.      Sliding window flow control
Masalah utama yang dimiliki oleh stop and wait control adalah bahwa hanya satu frame yang dapat dikirimkan pada saat yang sama. Dalam keadaan antrian bit yang akan dikirimkan lebih besar daripada panjang frame (a>1) maka diperlukan suatu langkah efisiensi (memperbolehkan pengiriman lebih dari satu frame pada saat yang sama). Dalam langkah ini, ditambahkan juga label pada setiap frame yang telah masuk sebagai penanda sudah sejauh mana frame tersebut diterima. Sliding window flow control ini mengizinkan untuk pengiriman lebih dari satu frame. Receiver juga memiliki sebuah buffer untuk menampung antrian frame yang masuk dengan syarat setiap frame yang masuk diberi nomor. Nomor tersebut nantinya akan digunakan sebagai penanda yang akan diloncati tiap ukuran field (k). frame yang masuk akan dinomori dengan modulo 2k.

b.     Deteksi Kesalahan
          Pada subbab sebelumnya dibahas tentang penggunaan flow control, sekarang akan dibahas bagaimana cara mendeteksi kesalahan yang terjadi pada flow control tersebut. Ada dua pendekatan yang bisa digunakan untuk mendeteksi error, yaitu:
a.       Forward Error Control
Karakter yang ditransmisikan atau disebut juga frame, berisi informasi tambahan sehingga apabila penerima mengalami kesalahan, penerima tidak hanya bisa mendeteksi kesalahannya saja tetapi juga bisa menjelaskan letak kesalahan tersebut.
b.      Feedback (backward) Error Control
Setiap karakter atau frame memiliki informasi yang cukup untuk memperbolehkan penerima mendeteksi bila menemukan kesalahan tetapi tidak lokasi kesalahannya. Feedback error control dibagi menjadi 2 bagian, yaitu:
1.      Teknik yang digunakan untuk deteksi kesalahan
2.      Kontrol algoritma yang telah disediakan untuk mengontrol transmisi ulang.

Metode Pendektesian Kesalahan
            Ada dua metode deteksi kesalahan yang sering digunakan, yaitu:
a.       Echo
Metode sederhana dengan sistem interaktif. Operator memasukkan data melalui sebuah terminal dan mengirimkan ke komputer lain, setelah itu komputer akan menampilkan data yang dikirim kembali ke terminal sehingga operator dapat memeriksa apakah data yang dikirimkan benar atau tidak.
b.      Error otomatis
Metode dengan tambahan bit pariti (pariti ganjil atau pariti genap). Ada beberapa metode yang bisa digunakan dalam pendeteksian error, antara lain:
1.      Vertical redundancy checking
Metode ini lebih umum disebut dengan parity checking karena menggunakan sistem pengecekan paritas dan merupakan sistem untuk mencari kesalahan data yang paling sederhana. Dalam satu byte terdapat satu bit pariti. Bit ini nilainya tergantung kepada ganjil atau genapnya jumlah bit satu dalam satu byte.
Pengecekan parity terbagi menjadi dua yaitu:
a.       Odd parity (pariti ganjil)
Jumlah bit satu dalam satu byte data harus berjumlah ganjil.
b.      Even parity (pariti genap)
Jumlah bit satu dalam satu byte data harus berjumlah genap.

2.      Longitudinal redundancy checking
Metode ini sebenarnya digunakan untuk memperbaiki kelemahan yang ada pada VRC. Pada metode LRC ini, data dikirimkan per blok (frame) berisi 8 byte dan setiap frame terdapat satu bit pariti. Fungsi dari bit pariti tersebut adalah sebagai kontrol kesalahan seperti pada parity checking.

3.      Cyclic redundancy checking
Sistem ini banyak dipakai dalam komunikasi data karena prosesnya cukup sederhana dan tidak membutuhkan banyak tambahan bit sebagai bit pariti. Pada sistem CRC data dikirimkan per frame dan setiap frame terdiri dari deretan bit panjang.

c.     Koreksi Kesalahan

        Bila dijumpai kesalahan pada data yang telah diterima, maka perlu adanya error recovery atau pengkoreksian kesalahan agar jangan sampai kesalahan ini menyebabkan dampak yang besar bagi pengiriman datanya. Metode yang digunakan antara lain:

a.    Subtitusi simbol
Bila ada data yang rusak maka komputer penerima mengganti bagian tersebut dengan karakter lain, seperti karakter SUB yang nerupa tanda tanya terbalik. Jika pemakai menjumpai karakter ini (pada program pengolah kata), maka berarti data yang diterima mengalami kerusakan, selanjutnya perbaikkan dilakukan sendiri.

b.    Mengirim data koreksi
Data yang dikirimkan harus ditambah dengan kode tertentu dan data duplikat. Bila penerima menjumpai kesalahan pada data yang diterima maka perbaikkan dilakukan dengan mengganti bagian yang rusak dengan data duplikat. Cara ini jarang digunakan.

c.    Kirim ulang
Cara ini merupakan cara yang paling sederhana, yaitu apabila komputer penerima menemukan kesalahan pada data yang diterima maka selanjutnya meminta komputer pengirim untuk mengulang pengiriman data.

Forward Error Correction
Salah satu cara untuk mengkoreksi kesalahan adalah dengan menggunakan metode forward error correction. Ada beberapa notasi yang harus terlebih dahulu dipahami, yaitu:
a.       m                     : Jumlah bit sample.
b.      n                      : Jumlah bit hamming.
c.       Bit sample       : ½ * jumlah bit data.
d.      Bit hamming   : 2n >m+n+1.


Adapun langkah perhitungannya adalah sebagai berikut:
a.       Contoh karakter yang akan dikoreksi adalah CAT. Ubah karakter CAT menjadi biner kode ASCII dan tambahkan pariti ganjil (letakkan terbalik dari bit pariti sampai bit pertama).
b.      Gabungkan seluruh bit dalam satu deret. Setelah itu hitung jumlah bit dari keseluruhan karakter. Untuk karakter CAT jumlah bitnya adalah 24 bit.
c.       Hitung m dengan rumus yang disediakan:
M = ½ * jumlah bit data
   = ½ * 24
   = 12 bit.
Maka bit samplenya adalah 12 bit pertama dari karakter CAT yaitu 010000111100.
d.      Hitung n dengan rumus yang disediakan dimulai dari n=1:
1.      2n > m + n + 1
21 > 12 + 1 + 1  (n tidak terpenuhi. Lanjutkan ke n=2)
2.      2n > m + n + 1
22 > 12 + 2 + 1  (n tidak terpenuhi. Lanjutkan ke n=3)
3.      2n > m + n + 1
23 > 12 + 3 + 1  (n tidak terpenuhi. Lanjutkan ke n=4)
4.      2n > m + n + 1
24 > 12 + 4 + 1  (n tidak terpenuhi. Lanjutkan ke n=5)
5.      2n > m + n + 1
25 > 12 + 5 + 1  (n terpenuhi. Maka n=5).
            Kesimpulan:
1.      n=5 à bit hamming berjumlah 5 bit (h5 h4 h3 h2 h1).
2.      m + n = 17 bit.

e.       Gabungkan bit sample dengan bit hamming secara acak (khusus bit sample).
Setelah itu hitung bit hamming. Tentukan letak bit 1 pada deret tersebut. Pada deret di atas, letak bit 1 ada pada posisi ke 3, 5, 6, 8, 16. Ubah posisi tersebut menjadi biner 5 bit lalu kenakan operasi XOR terhadap posisi tersebut.
Setelah bit hamming diketahui, maka terbentuklah data kirim. Data kirim adalah bit sample digabungkan dengan bit hamming

f.        Langkah terakhir adalah tentukan lagi letak bit ‘1’ pada deret di atas kecuali untuk bit hamming tidak perlu dihitung. Lalu ubah posisi tersebut menjadi 5 bit biner lalu kenakan operasi XOR. Untuk permulaanya lakukan operasi XOR terhadap bit hamming dengan posisi yang pertama kali dijumpai.

g.      Jika hasil akhir sama dengan 0 maka tidak ada kesalahan yang terjadi dan tidak perlu adanya koreksi terhadap data yang dikirim atau diterima. Sedangkan apabila hasil akhir tidak sama dengan 0 maka terjadi kesalahan dan perlu adanya koreksi kesalahan. Karena menggunakan koreksi kesalahan dengan metode forward error correction maka penerima data bisa membetulkan kesalahannya sendiri karena sudah mengetahui letak kesalahan kalau menghitung manual seperti ini memang tidak akan terlihat letaknya, akan tetapi peralatan komunikasi data di sisi penerima akan bisa mendeteksi dan mengkoreksi kesalahannya melalui bit hamming).

Kesimpulan

Flow control adalah suatu teknik untuk memastikan/meyakinkan bahwa suatu stasiun transmisi tidak menumpuk data pada suatu stasiun penerima. Tanpa flow control, buffer (memori penyangga) dari receiver akan penuh sementara masih banyak data lama yang akan diproses. Ada beberapa bentuk dari flow control antara lain : Stop and wait flow control dan Sliding window flow control
Di dalam deteksi kesalahan ada dua pendekatan yang bisa digunakan untuk mendeteksi error, yaitu: Forward Error Control dan Feedback (backward) Error Control. Ada dua metode deteksi kesalahan yang sering digunakan, yaitu: Echo dan Error otomatis Bila dijumpai kesalahan pada data yang telah diterima, maka perlu adanya error recovery atau pengkoreksian kesalahan agar jangan sampai kesalahan ini menyebabkan dampak yang besar bagi pengiriman datanya. Metode yang digunakan antara lain: Subtitusi simbol, Mengirim data koreksi dan Kirim ulang

Tidak ada komentar:

Posting Komentar