NIM P27838122052
SURABAYA
2022
BAB I
PENDHULUAN
A. Latar Belakang
Komunikasi memiliki peranan yang besar bagi kehidupan dalam berbagai hal,
pengiriman data atau pesan yang ditransmisikan melalui sistem komunikasi dapat
terpengaruh oleh kebisingan (noise) yang menyebabkan terjadinya error. Banyak faktor
tegangan listrik tidak stabil, radiasi dan cross talk (Fu, et al., 2009).
Pada awal lahirnya sistem komunikasi, permasalahan menarik yang selalu dibahas
adalah teknik mengirim informasi dalam konsep yang mudah dimengerti dan berbiaya
murah. Konsep yang digunakan untuk mengirim data diperkenalkan dalam bentuk kode
binary, sehingga memberikan kemudahan dan informasi tentang keadaan data pada
saat pengiriman. Salah satu upaya yang dapat dilakukan untuk memperbaiki data yang
mengalami error adalah dengan menerapkan error control coding. Menurut Shannon,
komunikasi melalui saluran yang bising (noise) dengan kesalahan sekecil mungkin
diperlukan sebuah encoding dan decoding yang tepat untuk mendeteksi dan
mengkoreksi bit yang error (Shannon, 1948). Error detection dan error correcting
merupakan encoding dan decoding yang dapat diterapkan dalam error control coding
(ECC). ECC dapat digunakan dalam pengamanan data untuk menghindari kerusakan
pada data yang dikirimkan. Hamming code merupakan salah satu jenis error detection
dan error correction yang banyak digunakan pada berbagai sistem pengiriman data
yang berada pada sisi penerima. Hamming code bekerja dengan menambahkan
beberapa bit ekstra pada beberapa posisi bit pesan yang disebut cek bit (bit parity),
dengan menggunakan logika Ex-OR untuk mencari nilai cek bit berdasarkan nilai bit
pesan (Abuelyaman, et al., 2008). Jika kebisingan (noise) terjadi cukup tinggi pada saat
pengiriman, bit pesan yang diterima bisa mengalami error (Demir, et al., 2006).
Permasalahan yang terjadi disaat pengiriman data yang mengalami gangguan karena
saluran bising (noise), dapat menyebabkan bit data yang dikirim mengalami error.
Dalam 1 blok pesan (codeword) yang dikirim berisi 7 bit data mengalami multi bit error,
sehingga membuat hamming code tidak dapat mendeteksi dan mengkoreksi multi bit
error. Maka dilakukan penelitian untuk memecah (partition) bit pesan tersebut menjadi
pesan yang lebih kecil dan menambahkan bit parity pada setiap bit pesan.
Dalam sistem komunikasi data digital, tingkat akurasi data yang dikirim pada
saluran transmisi sangat diperlukan. Ada beberapa jenis komunikasi pada umumnya
yaitu: satelit, transmisi data, penyimpanan data, mobile, transfer file, dan transmisi
audio atau video digital (Aflakian, et al., 2011). Data atau pesan dapat ditransmisikan
melalui saluran nirkabel atau kabel. Dalam penggunaan saluran nirkabel atau kabel
tidak selamanya informasi tersebut sampai dengan benar, bisa saja terjadi error yang
menyebabkan pesan yang dikirim berbeda dengan pesan yang diterima. Saluran
transmisi adalah media fisik yang dilalui informasi yang dikirimkan, seperti saluran
telepon, atau atmosfer dalam kasus komunikasi nirkabel. Gangguan yang tidak
diinginkan (noise) dapat terjadi di saluran komunikasi dan menyebabkan informasi yang
diterima menjadi berbeda dari informasi asli dikirim (Shannon, 1948). Kesalahan (error)
dapat mengubah atau merusak isi data pesan yang mengalami noise. Data biner yang
rusak dapat berubah dari 1 menjadi 0 atau sebaliknya 0 menjadi 1 (Bogart Jr, 1992).
Ada beberapa jenis kesalahan yang bisa terjadi selama saluran mengalami
gangguan yaitu single bit error, multi bit error dan burst error (Forouzan, 2007). Kinerja
sistem komunikasi dapat diukur dengan output daya rasio signal to noise atau disebut
didirikan oleh Claude E. Shannon pada tahun 1948. Shannon menegaskan bahwa
dengan pengkodean yang tepat dari informasi atau pesan, kesalahan yang disebabkan
oleh saluran bising (noise) dapat dikurangi ke tingkat yang diinginkan ketika data rate
beberapa media (misalnya, radio) cenderung timbul secara meletup (burst) bukannya
satu demi satu. Error yang meletup seperti itu memiliki baik keuntungan maupun
kerugian pada error bit tunggal yang terisolasi. Sisi keuntungannya, data komputer
selalu dikirim dalam bentuk blok-blok bit. Anggap ukuran blok sama dengan 1000 bit,
dan laju error adalah 0,001 per bit. Bila error-errornya independen, maka sebagian
besar blok akan mengandung error. Bila error terjadi dengan letupan 100, maka hanya
satu atau dua blok dalam 100 blok yang akan terpengaruh, secara rata-ratanya.
Kerugian error letupan adalah bahwa error seperti itu lebih sulit untuk dideteksi dan
B. Rumusan Masalah
C. Tujuan
Adapun tujuan penulisan makalah ini selain sebagai tugas mata kuliah Komunikasi
Digital, juga dapat menambah pengetahuan yang berkaitan dengan deteksi dan koreksi
BAB II
TINJAUAN PUSTAKA
Kesalahan adalah proses alami yang dapat terjadi pada tiap bagian dari sistem
terminal.
Salah satu sistem kontrol kesalahan yang sederhana ataupun yang sangat
kompleks dapat disisipkan pada bagian-bagian yang telah terdeteksi pada langkah
pertama tadi. Akan tetapi ada pertimbangan lain yang turut dipertimbangkan, misalnya
perlunya penekanan pada biaya untuk operasi kontrol kesalahan ini jangan sampai
melebihi dari biaya sehingga membuat sistem yang dibangun menjadi mahal.
umumnya dapat diperkirakan atau dengan kata lain kesalahan-kesalahan yang tidak
terdeteksi pada suatu bagian dalam sistem transmisi data mungkin dapat dideteksi
pada bagian lain. Dengan alasan untuk meningkatkan efektifitas komunikasi data, para
PEMBAHASAN
Para perancang jaringan telah membuat dua strategi dasar yang berkenaan
dengan error. Cara pertama adalah 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. Cara
kesimpulan bahwa suatu error telah terjadi, dan membiarkannya untuk meminta
(error-detecting codes).
Untuk bisa mengerti tentang penanganan error, kita perlu melihat dari dekat
tentang apa yang disebut error itu. Biasanya, sebuah frame terdiri dari m bit data (yaitu
pesan) dan r redundan, atau check bits. Ambil panjang total sebesar n (yaitu, n=m+r).
Sebuah satuan n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword
n-bit.
Ditentukan dua buah codeword: 10001001 dan 10110001. Disini kita dapat
menentukan berapa banyak bit yang berkaitan berbeda. Dalam hal ini, terdapat 3 bit yang
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.
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
Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada
jarak Hamming-nya. Untuk mendeteksi d error, anda 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 error d, anda memerlukan kode yang
berjarak 2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan
perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka
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
Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit
tunggal menghasilkan sebuah codeword dengan parity yang salah. Cara ini dapat
digunakan untuk mendeteksi erro-error tunggal. Sebagai contoh sederhana dari kode
perbaikan error, ambil sebuah kode yang hanya memiliki empat buah codeword valid :
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. Bayangkan
bahwa kita 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, kita harus
ditentukan, maka ini akan meletakkan batas bawah pada jumlah bit check yang diperlukan
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).
Kemudian codeword memeriksa setiap bit check, k (k=1,2,4,8,....) untuk melihat apakah bit
check tersebut mempunyai parity yang benar. Bila 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 3.10 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.
Gambar 1. 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
lebih bit untuk membuat total jumlah 1 bit menjadi genap (parity genap) atau gasal
(parity gasal). Jika jumlah bit gasal (termasuk bit parity) berubah pada waktu
pengiriman, maka bit parity menjadi tidak benar dan mengindikasikan adanya
kesalahan pada saat diterima. Oleh karena itu, bit parity merupakan kode pendeteksi
kesalahan (error detecting code), dan bukan merupakan kode pengoreksi kesalahan
(error correcting code) karena tidak ada cara untuk menentukan bit mana yang keliru.
Data harus diabaikan seluruhnya dan mengulangi lagi transmisi dari awal. Pada media
transmisi yang terganggu, transmisi yang berhasil akan membutuhkan banyak waktu
atau tidak berhasil sama sekali. Bit ekstra disebut parity redundant bit.
Konsep umum dari parity check adalah sebuah sistem yang membuat pihak
terminal tertuju tahu bahwa data yang iya terima tersebut sama atau tidak dengan data
(Atau yang Lebih dikenal dengan nama Parity Bit) pada data, untuk menggambarkan
karakteristik dari data tersebut. Nilai dari bit parity (1 atau 0) tidak diperoleh secara
sembarangan.
Dalam proses pentransmisiannya data tadi dikirim bersamaan (data kita dan
parity bitnya) dan kita anggap data dapat terkirim dengan suskses. Pada Terminal
Penerima Data kita dibaca dan Di dekodisasi (di definisi kan ulang) dengan cara yang
sama seperti saat kita menentuan nilai parity bit di sisi pengirim. Lalu Hasil dekodisasi
tadi dibandingkan dengan parity bit yang tadi sengaja dibawakan oleh pengirim.
perbedaan nilai antara hasil dekodisasi dengan parity bitnya maka data dapat di
klasifikasikan sebagai data yeng error, Lebih lanjut terminal penerima akan
mengirimkan request pada terminal pengirim untuk mengirimkan ulang data yang
Kelebihan :
Kekurangan :
gasal)
Gambar 2. Parity Check Code
Contoh penggunaan parity check code ditunjukan pada gambar 2 diatas. Misalnya
Karena jumlah bit 1 dalam data ada 3, maka parity bit nya adalah 1, agar jumlah
Pada penerima, jika penerima mengenali 11000101 dan menghitung jumlah total
angka 1 pada data yaitu empat angka genap, maka data dideteksi benar
Jika data telah rusak selama pengiriman dan penerima menerima 11100101,
maka fungsi parity check menghitung angka 1 dan didapatkan jumlah bit 1
Bila sistem menggunakan parity check gasal, maka parity bit ditambahkan pada
data dan mengecek kesalahan pada suatu data yang akan ditransmisikan atau
penyimpanan rentan sekali mengalami kesalahan, seperti halnya noise yang terjadi
Cyclic Redundancy Check (CRC) juga dapat disebut teknik untuk mendeteksi
kesalahan dalam data digital, tetapi tidak dapat mengoreksi ketika kesalahan terdeteksi.
Hal ini digunakan terutama dalam transmisi data. Penerima memeriksa bit pengecek
CRC yang sama dengan yang dikirim, untuk mendeteksi terjadinya kesalahan. Teknik
ini kadang-kadang diterapkan pada perangkat penyimpanan data, seperti disk drive.
Dalam situasi ini setiap blok pada disk akan memeriksa bit, dan hardware secara
otomatis memulai membaca kembali dari blok ketika kesalahan terdeteksi, atau
CRC dapat digunakan. CRC bekerja secara sederhana, yakni dengan menggunakan
yang dibuat berdasarkan total bit yang hendak ditransmisikan atau yang hendak
Ethernet, checksum akan dihitung terhadap setiap frame yang hendak ditransmisikan
dan ditambahkan ke dalam frame tersebut sebagai informasi dalam header atau trailer.
Penerima frame tersebut akan menghitung kembali apakah frame yang ia terima benar-
benar tanpa kerusakan, dengan membandingkan nilai frame yang dihitung dengan nilai
frame yang terdapat dalam header frame. Jika dua nilai tersebut berbeda, maka frame
degradasi yang bersifat acak dikarenakan noise atau sumber lainnya (kerusakan media
dan lain-lain). CRC tidak menjamin integritas data dari ancaman modifikasi terhadap
perlakukan yang mencurigakan oleh para hacker, karena memang para penyerang
dapat menghitung ulang checksum dan mengganti nilai checksum yang lama dengan
yang baru untuk membodohi penerima. Kode pendeteksian kesalahan yang paling
umum serta paling hebat adalah Cyclic Redundancy Check (CRC) yang dapat
digambarkan sebagai berikut, dengan adanya blok bit k-bit, atau pesan, transmitter
mengirimkan suatu deretan n-bit, disebut sebagai Frame Check Sequence (FCS),
sehingga frame yang dihasilkan, terdiri dari k+n bit, dapat dibagi dengan jelas oleh
frame yang datang dengan nomor tersebut dan, bila tidak ada sisa, maka diasumsikan
koreksinya lebih akurat dan juga mempunyai bit redundant yang sedikit jika
dibandingkan LRC (jika bit pembaginya kurang dari 8 bit). Penggunaan Cyclic
membangkitkan suatu bagian n-bit, sehingga jumlah bit yang terkirim adalah k+n
bit
Data dibagi oleh angka yang belum ditentukan, dan jika tidak ada sisa, maka
String n ”0” diberikan pada data. Jumlah n kurang 1 dari jumlah bit
Rentetan data tiba pada penerima data pertama, diikuti oleh CRC.
bawah untuk membuat jumlah bit pada sisa sama dengan bit pada
pembagi.
Langkah selanjutnya, 1000-1101 menghasilkan 101, dan
seterusnya.
Dalam proses ini, pembagi hanya bisa dikurangi dari sisa yang memiliki
Pada saat bit sisa sebagian besar adalah 0, kita harus menggunakan
Jika semua sisanya adalah 0, maka CRC dibuang dan data diterima;
Mampu mendeteksi bit error dalam jumlah banyak (burst error) dengan
3. Checksum
saat ini. Sebagai contoh, suatu web browser setiap melakukan download suatu file
Kemudian pada sisi penerima akan dihitung ulang checksum-nya dan dilakukan
perbandingan nilai/jumah data yang dikirimkan. Bila ada perbedaan nilai perbedaan
nilai antara kedua nilai, maka nilai, maka pasti ada terjadi terjadi kesalahan dalam
Di sisi pengirim:
a. Unit data dibagi ke dala Unit data dibagi ke dalam beberapa bagian m
checksum.
paket pengiriman.
Di sisi penerima:
a. Unit data yang diterima kembali dibagi ke dalam beberapa bagian data
b. Semua bagian Semua bagian unit data tersebut dijuml unit data
d. Jika hasilnya adalah nol, maka data diterima; ji Jika hasilnya adalah nol,
Penerima
Pengirim
Checksum = checksum + 1
Checksum = 2+3+4+5 = 14
Checksum = 241+ 1 = 242
Cheksum = 256 maka bilangan biner nya (1 nya (1 0000 0000 ) lebih dari 8 bit
Seperti terlihat dalam penjumlahan data di atas, maka hasilnya menjadi 256
dan jika dibuat ke dalam bentuk bilangan biner menjadi (1 0000 0000), dan
yang diambil adalah hanya 8 bit (angka 0 nya ada sebanyak 8 bit) maka
Bila dijumpai kesalahan pada data yang telah diterima, maka perlu
diadakan tindakan perbaikan atau diusahakan agar kesalahan ini jangan sampai
1. Subtitusi simbol
Bila ada data yang rusak maka komputer penerima mengganti bagian itu
dengan karakter lain, sepertu karakter SUB yang berupa tanda tanya terbalik.
dilakukan sendiri.
duplikat. Bila penerima menjumpai kesalahan pada data yang diterima, maka
3. Kirim ulang
Cara ini merupakan cara yang paling simpel, yaitu bila komputer
PENUTUP
Kesalahan transmisi data jarak jauh selalu terjadi karena itu sistem
penting untuk para perancang kontrol deteksi kesalahan. Performasi transmisi data
menurun pada jam sibuk karena itu bila memugnkinkan pengiriman data sebaiknya
pada jam tidak sibuk. Kesalahan yangterjadi sebagian besar disebabkan oleh ‘Spike’
noise pada sistem transmisi data.deteksi kesalahan yang paling baik performasinya
adalah CRC. Kesalahan pada sistem on-line masih dapat diterima tetapi ‘kegagalan’
[1]https://wildanpamungkas.blogspot.com/2016/10/deteksi-dan-koreksi-kesalahan-
pada.html
[2]http://belajarilmukomputerdaninternet.blogspot.com/2013/11/deteksi-dan-koreksi-
error.html
[3] https://repository.uksw.edu/bitstream/123456789/9755/3/T1_612010011_BAB%20II.pdf
[4]https://blog.ub.ac.id/ichiemone/2011/11/27/hamming-code-parity-checks-cyclic-
redundancy-check-crc/
[5]https://media.neliti.com/media/publications/225761-deteksi-dan-koreksi-multi-bit-
error-deng-f377c906.pdf
[6] https://adoc.pub/deteksi-koreksi-kesalahan.html
[7] https://repository.unikom.ac.id/43067/1/Jarkom%20-%20Bab%2010.pdf
[8]https://repository.unikom.ac.id/45747/1/BAB6%20Deteksi%20dan%20Koreksi
%20Kesalahan.pdf
[9] http://gusrialrahul.blogspot.com/2016/11/deteksi-dan-koreksi-kesalahan-pada.html