STMIK PONTIANAK
KELOMPOK
:
1.DIYAH
DEVIYANTI (101102048)
2.LINGGAR
KUSUMA WARDANI (101102066)
3.ERLIA
NANA CHANDRA (101102072)
4.SYARIFAH
KARIMAH (101102078)
BAB I
PENDAHULUAN
1.1
Latar Belakang
Error detection
adalah proses pelacakkan kesalahan selama transmisi data berlangsung ,yaitu
perubahan satu atau beberapa Bit dari nilai “1” ke “0” atau sebalik nya. Error
detection diperlukan untuk mendeteksi kesalahan dalam transmisi data. Biasanya
digunakan pada data link layer dan checksum. Error detection terdiri dari
beberapa metode yaitu : VRC,LRC,dan CRC. Namun metode VRC,LRC,dan CRC tidak
digunakan dalam pembahasan makalah ini, oleh karena itu tidak dibahas secara
detail.
a).VRC (Vertikal Redundancy Check)
Menambah sebuah
parity Bit pada setiap data sehingga jumlah total Bit ‘1’ pada data menjadi
genap. VRC dapat mendeteksi semua single Bit error serta dapat mendeteksi
multiple dan burst error hanya jika jumlah total error pada data adalah ganjil. Jika receiver mengetahui bahwa
data yang dikirim telah dimasuki noise atau corrupt maka data akan dibuang dan
meminta untuk dikirimkan kembali.
b). LRC (Longitudinal Redundancy Check )
LRC untuk data
dikirim secara blok. Cara ini sama seperti VRC hanya saja penambahan Bit Parity
tidak saja pada akhir karakter tetapi juga pada akhir setiap blok karakter yang
dikirimkan. Untuk setiap Bit dari seluruh blok karakter ditambahkan ‘1’ Bit
Parity termasuk juga Bit Parity dari masing-masing karater. Tiap blok mempunyai
satu karakter khusus yang disebut Blok Check Character (BCC) yang dibentuk dari
Bit uji dan dibangkitkan dengan cara sebagai berikut “Tiap Bit BCC merupakan Parity dari semua Bit
dari blok yang mempunyai nomor Bit yang sama, jadi Bit ‘1’ dari BCC merupakan
Parity genap dari semua Bit ‘1’ karakter yang ada pada blok tersebut dan
seterusnya”. LRC memiliki keunggulan dalam kecepatan untuk mendeteksi error
pada single Bit maupun burst error. Namun
jika pada unit data terdapat 2 Bit mengalami kerusakkan pada posisi yang sama, maka
LRC checker tidak dapat mendeteksi error . Kerugian terjadi overhead akibat
penambahan Bit Parity per 7 Bit untuk karakter.
c). CRC (Cyclic Redundancy Check)
CRC adalah salah
satu fungsi hash yang dikembangkan untuk mendeteksi kerusakkan data dalam
proses transmisi ataupun penyimpanan. CRC menghasilkan suatu checksum yaitu
suatu nilai dihasilkan dari fungsi hash nya, dimana nilai inilah yang nantinya
digunakan untuk mendeteksi error pada transmisi ataupun penyimpanan, dan
kemudian penerima akan melakukan verifikasi apakah data yang diterima tidak
mengalami perubahan ataupun kerusakan.
1.2
Permasalahan
Operasi checksum
perlu dilakukan untuk memeriksa integritas suatu berkas (file). Operasi
checksum ini banyak dimanfaatkan dalam aplikasi komputer saat ini. Sebagai
contoh, suatu web browser setiap melakukan download suatu file akan memeriksa
kemungkinan terjadinya corrupt pada berkas tersebut dengan membandingkan hasil
checksum terhadap berkas asli. Contoh lain adalah aplikasi antivirus. Aplikasi
akan mendeteksi hasil checksum untuk dibandingkan dengan database virus yang dimilikinya. Operasi
checksum tersebut dapat dilakukan dengan berbagai algoritma. Algoritma yang
paling sederhana adalah memeriksa apakah jumlah byte berkas yang diperbandingkan sama atau
tidak. Namun, permasalahannya tidak sesederhana itu. Bisa jadi, ukuran sama
tetapi ada byte yang dipertukarkan. Maka perlu melibatkan fungsi hash untuk
melakukan verifikasi suatu berkas. Ada banyak algoritma fungsi hash saat ini yang dapat digunakan untuk
melakukan checksum tersebut. Permasalahan yang tertulis di dalam makalah ini
adalah permasalahan mengenai kelemahan checksum sehingga ditambahkan suatu
fungsi hash untuk mengatasinya.
Checksum atau
hash sum adalah suatu data dengan ukuran tetap (fixed-size) yang dihitung dari
suatu blok data digital dengan tujuan untuk mendeteksi kesalahan yang
mungkin terjadi saat proses transmisi
atau penyimpanan. Integritas data dapat diperiksa pada langkah selanjutnya
dengan menghitung pula checksum dan membandingkannya dengan data yang satunya
(data sumber /asli). Jika checksum tidak sama, maka hampir dipastikan bahwa
data tersebut telah berubah, baik disengaja maupun tidak disengaja. Prosedur
untuk memperoleh checksum dari suatu data biasa disebut dengan checksum
function atau checksum algorithm. Suatu algoritma checksum yang baik akan menghasilkan
nilai yang berbeda ketika data mengalami kerusakan. Jika ternyata nilai
checksum sama, maka kemungkinan besar data bebas dari kerusakan. Kembali ke
istilah-istilah yang berkaitan dengan fungsi hash seperti yang telah disebutkan
sebelumnya, Checksum pun juga berkaitan dengan istilah-istilah seperti check
digits dan parity bits yang merupakan kasus khusus untuk memeriksa checksum
pada blok data berukuran kecil (seperti nomor akun bank) dan error-correcting
codes yang merupakan checksum khusus yang tidak hanya memeriksa kesalahan pada
suatu data, tetapi juga mampu memulihkannya.
1.3 Tujuan
Tujuan
checksum adalah untuk mengurangi lalu lintas jaringan atau internet dengan
membandingkan checksum dalam cache database klien sebelum mengirimkan laporan
masalah.
Pada dasarnya menghitung checksum secara manual sangat sulit sehingga dalam makalah ini kami membuat
perancangan aplikasi untuk menghitung checksum agar proses perhitungan nilai checksum dapat
dilakukan dengan mudah.
BAB II
LANDASAN TEORI
Landasan Teori Checksum
1.
Menurut
Wikipedia : Sebuah checksum atau hash sum adalah nama ukuran tetap dihitung
dari blok data digital secara acak untuk tujuan mendeteksi kesalahan yang
terjadi selama transmisi atau penyimpanan. Integritas data dapat diperiksa pada
waktu berikutnya oleh recomputing checksum dan membandingkannya dengan disimpan
satu. Jika checksum tidak cocok, data itu hampir pasti diubah (baik sengaja
atau tidak sengaja).
Prosedur yang menghasilkan checksum dari
data ini disebut checksum checksum fungsi atau algoritma. Algoritma checksum
yang baik akan menghasilkan hasil yang berbeda dengan probabilitas tinggi saat
data secara tidak sengaja rusak.Fungsi checksum terkait dengan hash functions,
fingerprints, randomization functions, and cryptographic hash functions. Namun,
masing-masing konsep memiliki perhitungan sendiri-sendiri. Beberapa kode
koreksi kesalahan didasarkan pada checksum khusus yang tidak hanya mendeteksi
kesalahan umum, tetapi juga memungkinkan data asli dapat dikembalikan dalam
kasus-kasus tertentu.
2.
Checksum adalah nilai yang digunakan untuk memverifikasi integritas dari file atau
transfer data. Dengan
kata lain, itu adalah jumlah
yang memeriksa validitas data. Checksum biasanya digunakan untuk membandingkan dua set data untuk memastikan mereka adalah sama. Beberapa aplikasi umum termasuk memverifikasi disk image atau memeriksa integritas dari file download. Jika
checksum tidak cocok
dengan file asli, data mungkin
telah diubah atau rusak.
Checksum dapat dihitung dengan
berbagai cara, menggunakan algoritma yang berbeda.
Sebagai contoh, sebuah checksum dasar mungkin hanya jumlah
byte dalam file. Namun,
jenis checksum sangat tidak dapat diandalkan sejak dua
atau lebih byte dapat diaktifkan sekitar, menyebabkan data yang akan
berbeda, meskipun checksum akan sama. Oleh karena itu, algoritma checksum yang lebih maju biasanya digunakan untuk memverifikasi data. Ini termasuk siklik
cek redundansi (CRC) dan algoritma fungsi
hash kriptografi.
3.
Sebuah
teknik untuk mendeteksi apakah sebuah data berubah pada saat transmisi. Checksum dilakukan dengan cara membagi
semua data menjadi angka dengan dua karakter, kemudian semuanya dijumlahkan.
Semua itu dilakukan oleh si pengirim. Oleh si penerima dilakukan kalkulasi yang
sama pula, kemudian hasil kalkuklasinya dicocokan dengan kalkulasi yang
dikirim. Jika tidak cocok, berarti data tersebut sudah berubah atau korup saat
ditransmisikan.
Landasan Teori Error Detection
4.
Error
Detection : proses pelacakan kesalahan
selama transmisi data berlangsung,
yaitu perubahan satu atau beberapa bit
dari nilai “1″ ke “0″ atau sebaliknya.
contoh : parity check, BSC, CRC.
5.
Error
detection : berkaitan dengan cara untuk mendeteksi bit yang error dan usaha
untuk merubah bit yang error menjadi bit yang benar.
Landasan Teori Bahasa Pemrograman C++
6.
Bahasa
pemrograman C++ adalah C + + IDE gratis yang dibangun untuk
memenuhi kebutuhan yang paling menuntut penggunanya. Hal ini dirancang sangat
extensible dan sepenuhnya dikonfigurasi. Akhirnya, sebuah IDE dengan semua
fitur yang Anda butuhkan, memiliki tampilan yang konsisten, merasakan dan
operasi di seluruh platform. Dibangun di sekitar sebuah plugin kerangka, C++
dapat diperluas dengan plugins. Setiap jenis fungsionalitas dapat ditambahkan
dengan menginstal / coding sebuah plugin.
7.
Bahasa
pemrograman C dikembangkan oleh Dennis Ritchie pada tahun 1972 di Laboratorium
Bell. Bahasa pemrograman C adalah bahasa pemrograman yang dapat dikatakan
berada antara bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat
tinggi (bahasa berorientase pada manusia). Bahasa pemrograman C berada satu
tingkat di atas bahasa yang berorientasi pada mesin, namun tetap satu tingkat
dibawah sebagian besar bahasa yang berorientasi persoalan. Bahasa pemrograman C
cukup dekat dengan komputer untuk memberikan kendali yang besar terhadap detil
implementasi pemakaian, namun cukup jauh untuk mengabaikan detil hardware.
Karena itulah bahasa pemrograman C suatu ketika dipandang sebagai bahasa
high-level dan pada saat yang lain dilihat sebagai bahasa low-level.
Bahasa pemrograman C merupakan bahasa
pemrograman terstruktur, yang membagi program kedalam bentuk sebuah blok.
Tujuannya adalah untuk memudahkan dalam pembuatan dan pengembangan program.
Program yang ditulis dengan bahasa pemrograman C mudah sekali untuk dipindahkan
dari satu jenis mesin ke jenis mesin lainnya. Hal ini berkat adanya
standarisasi bahasa pemrograman C yaitu berupa standar ANSI (American National
Standards Institute) yang dijadikan acuan oleh para pembuat kompiler C.
8.
C++
sendiri adalah sebuah bahasa pemrograman yang memiliki beberapa kompiler yang
berbeda. Ada empat kompiler umum yaitu : C++ Borland, C++ Microsoft Visual,
C/386 Watcom, dan DJGPP. Kamu dapat mendownload DJGPP atau mungkin saja anda
telah memiliki kompiler lain.
Setiap kompiler ini agak berbeda. Setiap
kompiler akan dapat menjalankan fungsi fungsi standar C++ ANSI/ISO, tetapi
masing masing kompiler juga akan dapat menjalankan fungsi fungsi nonstandard
(fungsi fungsi ini, agak mirip dengan ucapan yang tidak standar yang diucapkan
orang diberbagai pelosok negeri. Sebagai contoh, di New Orleans kata median
disebut neutral ground).
Kadang kadang pemakaian fungsi
nonstandard akan menimbulkan masalah pada saat hendak mengkompilasi kode sumber
data "source code" mempergunakan kompiler yang berbeda. Tutorial ini
tidak terlepas dari masalah seperti itu. Bila anda belum mempunyai sebuah
kompiler, disarankan agar anda segera memiliki sebuah kompiler. Sebuah kompiler
sederhana sudah cukup untuk dipergunakan oleh anda dalam mengikuti tutorial
ini.
Bahasa pemrograman C++ adalah bahasa
yang amat berbeda. Untuk kompiler C++ berbasis DOS, akan memerlukan beberapa
kata kunci (keywords); keyword sendiri tidak cukup untuk difungsikan sebagai
input dan output. Walau hampir semua fungsi dalam file library tampaknya bias
diakses oleh header file
BAB III
PEMBAHASAN
1.Algoritma dari coding program perancangan aplikasi
error detection menggunakan metode checksum dengan bahasa pemrograman
codeblocks
a.
Bilangan desimal (0 1 2 3 4 5 6 7 8 9)
dikonversi ke bilangan heksadesimal sesuai dengan tabel ASCII
b.
Hasil dari konversi bilangan heksadesimal
kemudian dijumlahkan
c.
Jika hasil penjumlahan konversi bilangan
heksadesimal lebih dari 2 digit, maka hilangkan digit yang di depan (carry), yang diambil adalah dua digit yang paling
kanan
d.
Hasil dari penjumlahan heksadesimal yang
telah dihilangkan carry kemudian dikonversikan lagi ke heksadesimal
2. Aplikasi
Aplikasi dalam
makalah ini dirancang untuk melakukan perhitungan checksum dari data yang
diinputkan oleh user. Aplikasi ini dapat melihat kesalahan kecil yang terjadi. Aplikasi
ini juga dapat menampilkan nilai heksadesimal dari masing- masing karakter yang
telah diinputkan oleh user sesuai dengan tabel ASCII.
Menampilkan kode
ASCII dari NIM yang diinputkan oleh user sebanyak 9 digit. Dari kode ASCII
tersebut diterjemahkan dalam satuan byte menjadi hexadesimal, kemudian dari
hasil hexadesimal dinegasikan masih tetap dalam satuan byte.
3. Kode
program
#include
<iostream>
#include <iomanip.h>
using namespace
std;
int main()
{
cout <<"Masukkan NIM Anda (9
digit) : ";
char x[9];
cin >> x[0];
cin >> x[1];
cin >> x[2];
cin >> x[3];
cin >> x[4];
cin >> x[5];
cin >> x[6];
cin >> x[7];
cin >> x[8];
cout << "Kode ASCII NIM : "
<< x[0]<< x[1] << x[2] << x[3] << x[4] <<
x[5] << x[6] << x[7] << x[8] <<" adalah : ";
cout << "0x" << hex
<< int (x[0]) << ' ';
cout << "0x" << hex
<< int (x[1]) << ' ';
cout
<< "0x" << hex << int (x[2]) << ' ';
cout << "0x" << hex
<< int (x[3]) << ' ';
cout << "0x" << hex
<< int (x[4]) << ' ';
cout << "0x" << hex
<< int (x[5]) << ' ';
cout << "0x" << hex
<< int (x[6]) << ' ';
cout << "0x" << hex
<< int (x[7]) << ' ';
cout << "0x" << hex
<< int (x[8]) << endl;
cout << "Jumlah byte dari NIM
" << x[0]<< x[1] << x[2] << x[3] << x[4]
<< x[5] << x[6] << x[7] << x[8]<< " adalah :
0x" << ((x[0]) + (x[1]) + (x[2]) + (x[3]) + (x[4]) + (x[5]) + (x[6])
+ (x[7]) + (x[8])&0xff) << endl;
cout << "Checksum dari NIM
" << x[0]<< x[1] << x[2] << x[3] << x[4]
<< x[5] << x[6] << x[7] << x[8] << " adalah
: 0x" << ((~((x[0]) + (x[1]) + (x[2]) + (x[3]) + (x[4]) + (x[5]) +
(x[6]) + (x[7]) + (x[8]))+1)&0xff)<< endl;
}
4. Kesimpulan
Menggunakan metode checksum untuk mengetahui kesalahan
yang terjadi pada transmisi data. Kelebihan dari metode ini adalah mudah
diimplementasi kan dalam software dan memiliki kehandalan sistem yang cukup
tinggi yaitu sekitar 90%. Sedangkan
kekurangannya adalah pendeteksian kesalahan yang masih lemah ( walaupun lebih
handal dari parity check) karena tidak mendeteksi unit data (bytes atau words)
yang urutannya berantakan, tidak dapat mendeteksi unit data mana yang mengalami
kesalahan.
5.Saran
Dilihat dari
kekurangannya pendeteksian kesalahan yang masih lemah maka kita perlu
melengkapi sistem dengan cara menambahkan perhitungan yang lebih kompleks agar
hasilnya lebih valid.
DAFTAR PUSTAKA
URL
:
1.
http://tralala-raragel.blogspot.com/2012/02/pengertian-error-detection-and_29.html?m=1
2.
http://anjriterz.blogspot.com/2010/01/error-detection-and-error-correction.html?m=1
3.
http://informatika.stei.itb.ac.id/~rinaldi.munir/Kriptografi/2009-2010/Makalah2/Makalah2_IF3058_2010_044.pdf
4.
http://support.prtracker.com/pr1023.html
5.
http://mahiralkhoir.wordpress.com/2009/12/20/cheksum-file-di-windows/
6.
http://www.techterms.com/definition/checksum
7.
http://sma5bpp.blogspot.com/2011/01/checksum.html
8.
http://suparty10018036.blogspot.com/2012/03/tugas-matkul-ttg-error-detection-and.html
9.
http://ilmukomunikasidata.wordpress.com/
10. http://elbalintang.blogspot.com/2011/03/codeblock-1005.html
11. http://www.ideelok.com/ilmu-komputer/pengenalan-bahasa-pemrograman-c
12. http://kingsscorpion.blogspot.com/
tugas kuliah nie sis nice
BalasHapusIya bg. Sip :D
BalasHapusapa hub.x checksum ama Error Detection??
BalasHapusMelacak error detection dg metode checksum..
BalasHapus