Fakultas Ilmu Komputer
5089
Implementasi Deteksi Dan Koreksi
Error
Pada Komunikasi Serial Arduino
Berbasis UART Dengan Metode
Hamming Code
Anggi Fajar Andana1, Sabriansyah Rizqika Akbar2, Rizal Maulana3
Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1anggiifaa@gmail.com, 2sabrian@ub.ac.id, 3rizal_lana@ub.ac.id
Abstrak
Kemunculan error disebabkan oleh banyak faktor antara lain adanya noise pada media transmisi data, lamanya penggunaan perangkat, atau kualitas perangkat keras tersebut. Salah satu konsep yang disebut dengan Information Redudancy merupakan konsep yang menyisipkan informasi tambahan pada proses
encode data sebelum data tersebut dikirimkan. Information Redudancy dapat diterapkan pada proses
error control coding,yaitu teknik yang membuat proses encode dapat menghitung bitkontrol tambahan dari informasi yang dikirim, serta untuk mengirimkan bit kontrol tersebut beserta informasinya. Pada penelitian ini menggunakan metode Hamming Code yang diterapkan pada Arduino dan komunikasi UART. Metode Hamming Code adalah metode yang menambahan beberapa parity bit tambahan pada bit data dengan menggunakan logika XOR. Parity bit tambahan yang dihasilkan dari proses logika XOR didapatkan dari jumlah data yang dimasukkan dalam prosesnya. Berdasarkan hasil pengujian, metode
Hamming Code dapat melakukan proses encode dan decode data, serta dapat melakukan deteksi dan koreksi error pada data yang mengalami error dalam proses pengujian. Rata-rata delay yang didapatkan berjumlah 102,7msuntuk data 5 bit dan 109,5ms untuk data 4 bit pada proses encode. Serta 17,5 ms untuk data 10 bit dan 100,1msuntuk data 11 bit pada prose decode. Faktor pengambilan data suhu serta jumlah bit yang dilakukan proses encode dan decode sangat mempengaruhi proses encode dan decode
menggunakan metode Hamming Code.
Kata kunci:Deteksi dan Koreksi Error, Error Control Coding , Metode Hamming Code
Abstract
While error appears, it can be a mistake for the information. The emergence of error caused by many factors, for example the presence of noise in the data transmission medium, time of use of the hardware, or the quality of the hardware. One of concepts called information redudancy is a concept that inserts additional information on the process of encoding data before the data transmitted. Information Redundancy can be applied to the process of error control coding, which is technique that enables the encoding process to calculate additional control bits from the information, and to transmit these control bits and their information. In this research, using Hamming Code method to applying in Arduino and UART communication. The Hamming Code method is a method that add an additional bits to the data bit by using XOR logic on the process. In this research, Hamming code method can do the process of encode and decode, and can perform the detection and correction process on data that have errors in the testing process. The average delay for 5 bit data is 102.7m/s and 109.5m/s for 4 bit data in the encode process. In decode prosess, 17.5 m/s for 10 bit data and 100,1m/s for 11 bit data. Temperature data retrieval and the number in the encode and decode process can be a factors that greatly affect the encode and decode process using the Hamming Code method.
Keywords : Detection and Correction Error, Error Control Coding, Hamming Code Method
1. PENDAHULUAN
Penyebaran data dan kelancaran penyampaikan merupakan faktor yang berpengaruh dalam proses komunikasi. Namun,
pada saat proses komunikasi dimulai, noise
dapat muncul secara tiba-tiba sehingga dapat mengubah nilai data yang menyebabkan error
(Muhajir, et al., 2016). Penyebab error
perangkat, kesalahan pada perangkat, dll. Berdasarkan permasalahan tersebut, munculah metode Error Detection dan Error Correction. Metode ini merupakan metode yang menangani
error yang muncul atau terjadi pada bagian penerima. Metode ini diterapkan dalam proses
error control coding, yaitu proses coding pada bagian encoder dan decoder.
Terdapat beberapa metode Error Detection And Error Correction yang diterapkan dalam proses Error Control Coding. Antara lain dengan menambahkan perangkat tambahan yaitu
Hardware Redudancy, informasi tambahan yang disebut dengan Information Redudancy, dan waktu tambahan yaitu Time Redudancy. Pada penelitian ini, penulis menggunakan konsep
Information Redudancy dengan menambahkan informasi tambahan pada objek penelitian. Metode Hamming Code menggunakan logika XOR dalam membuat parity bit tambahan yang ditambahkan. Kelebihan metode ini antara lain sangat efektif jika digunakan untuk melakukan deteksi dan koreksi single bit error serta untuk deteksi burst error yang akan dijadikan objek penelitian. Kemudian keuntungan lain yang didapatkan yaitu cara kerjanya yang cukup sederhana dan tidak membutuhkan alokasi memori yang banyak (Lubis, et al., 2012)
Terdapat 3 penelitian yang digunakan penulis untuk dijadikan referensi dalam penelitian dengan metode Hamming Code.
Penelitian berjudul “Perancangan Error
Detection System And Error Correction System Menggunakan Metode Hamming Code Pada Pengiriman Data Text” oleh Lubis et al (2012), merancang sistem deteksi dan koreksi error dengan menggunakan data teks sebagai objeknya. Panjang data teks ini sekitar 3-4 kata.
Penelitian kedua berjudul “Deteksi dan Koreksi
Multi Bit Error Dengan Partition Hamming
Code” oleh Muhajir et al (2016) merancang
sistem deteksi dan koreksi bit error dengan menggunakan data multi bit dan partition bit sebagai konsep dalam penerapat metode Hamming Code. Penelitian ini membagi jumlah data yang masuk kedalam beberapa bagian. Bagian-bagian inilah yang dilakukan proses encode dengan metode Hamming Code. Kelemahan dari penelitian ini yaitu banyaknya jumlah parity bit yang terdapat dalam codeword mengakibatkan sistem menjadi overbit dalam pemrosesannya. Penelitian terakhir yang berjudul “Simulasi Deteksi Bit Error Menggunakan Metode Hamming Code Berbasis
Web” oleh Mahendra et al (2016),
menggunakan web sebagai media dalam sistem deteksi dan koreksi 1 bit error sebagai tampilan antarmuka user. User dapat memasukkan data berupa bilangan biner sebanyak 8 bit, dan akan ditampilkan proses dalam melakukan proses encode dan decode nya.
Pada penelitian ini, penulis merancang sistem agar dapat melakukan deteksi dan koreksi
error pada pengiriman data. Metode yang digunakan berupa Hamming Code dengan memakai konsep penambahan parity bit Hamming Code dengan menggunakan logika XOR. Serta diimplementasikan pada sistem yang memilki komunikasi secara serial. Yaitu komunikasi UART pada mikrokontroller Arduino Uno yang memanfaatkan pin tx dan rx
sebagai pengiriman data dan menggunakan data suhu sebagai objek penelitian. Hasil penelitian akan didapatkan dari pengujian data fungsional dan nonfungsional, dan data encode yang diubah dengan 2 jenis error yang berbeda. Serta untuk mendapatkan delay waktu Hamming Code
dengan menggunakan fungsi millis pada setiap proses encode dan decode.
2. METODOLOGI PENELITIAN
Gambar 1. Diagaram alir metodologi penelitian
sesuai dengan rekayasa kebutuhan agar dapat menjalankan kebutuhan fungsional dan nonfungsional pada penelitian ini. Berdasarkan pada Gambar 1, digambarkan tiap-tiap langkah pada penelitian ini. Studi literatur sebagai pendukung teori dalam perancangan dan implementasi, analisis kebutuhan untuk mengetahui kebutuhan apa saja yang dibutuhkan dalam perancangan sistem. Perancangan dan implementasi sistem dilakukan untuk merancang sistem dapat menjalankan kebutuhan fungsional dan non fungsional. Hasil dari perancangan dan implementasi akan diketahui pada pengujian sistem. Jika hasil pengujian tidak sesuai dengan tujuan dari penelitian ini, maka alur penelitian akan kembali pada perancangan sistem. Tetapi jika hasil pengujian sesuai dengan tujuan penelitian, maka akan didapatkan kesimpulan dan saran sebagai tahapan terakhir penelitian.
2.1 Perancangan Sistem
Objek yang berupa data suhu dari sensor DHT11 akan diolah dengan metode Hamming Code. Perancangan ini betujuan untuk menjalankan kebutuhan fungsional yaitu sistem dapat membaca dan mengirimkan data suhu. Gambar perancangan sensor DHT11 dan Arduino Uno ditunjukkan oleh Gambar 2.
Gambar 2. Skematik perancangan sensor DHT11 dan Arduino Uno
2.2 Perancangan Metode Hamming Code Pada Pengirim
Pada bagian perancangan metode Hamming Code pada pengirim bertujuan untuk membuat sistem dapat menjalankan kebutuhan nonfungsional yaitu sistem dapat melakukan proses encode data, sehingga menghasilkan
codeword dengan hasil penerapan dari metode
Hamming Code. Pada indeks array tertentu yaitu ke 0,1,3,7, dan x merupakan indeks parity bit yang akan ditambahkan dari operasi logika XOR yang dilakukan untuk melakukan deteksi error
lebih dari satu bit yaitu dua bit. Proses encode
bagian pengirim pada sistem pengujian
ditunjukkan pada Gambar 3.
Gambar 3. Flowchart Metode Hamming Code pada bagian pengirim (encode)
2.3 Perancangan Metode Hamming Code Pada Penerima Data
Codeword yang diterima akan pada masuk dan ditampung pada variabel array. Panjang variabel array akan menyesuaikan dengan jumlah data yang diterima dari proses encode. Kemudian dilakukan proses pengecekkan error
data pada bagian proses decode dengan menerapkan metode Hamming Code. Setelah proses pengecekkan error data dilakukan maka akan masuk pada proses untuk melakukan koreksi error. Jika proses koreksi error telah dilakukan, maka data codeword dan data asli akan dipisan untuk dilakukan proses konversi ke desimal, dan data suhu dapat ditampilkan. Proses
Gambar 4. Flowchart Decode pada bagian penerima
Berdasarkan Gambar 4, terdapat data berjumlah 12 bit yang dilakukan proses deteksi dan koreksi error. Serta terdapat menu pengujian yang akan memasukkan nilai data yang berbeda pada posisi yang dipilih. Nilai pada menu pengujian ini akan mengubah data encode yang diterima.
Tabel perhitungan metode Hamming Code
12 bit ditunjukkan pada Tabel 1.
Tabel 1. Perhitungan decode data dengan Metode
Hamming Code
Pada Tabel 1, untuk menentukan codeword
yang terdiri dari data asli dan parity bit
tambahan, dilakukan perhitungan dengan rumus metode Hamming Code dimulai dari posisi
parity bit ke P1,P2,P4,P8, dan Px. Kemudian
codeword akan dikirim serta diterima kemudian dilakukan proses decode dengan metode
Hamming Code. Perhitungan dilakukan kembali sama dengan proses encode data pada data
codeword yang dikirim. Pada proses ini, jika nilai setiap parity bit (P1,P2,P4,dan P8) bernilai lebih dari 0 maka dideteksi adanya error pada data codeword. Pada variabel Px digunakan untuk mendeteksi jumlah error yang terjadi.
2.4 Implementasi
Subbab ini menjelaskan tentang implementasi metode Hamming Code pada media perangkat keras yaitu pada Arduino Uno. Berdasarkan skematik perancangan kedua mikrokontroller Arduino Uno dihubungkan sebagai sistem antar pengirim dan penerima. Pada bagian pengirim dihubungkan dengan sensor DHT11 untuk. Pada yang menunjukkan implementasi antar Arduino Uno.
Gambar 5. Implementasi antar Arduino Unodan DHT11
3. PENGUJIAN DAN ANALISIS
3.1 Pengujian Fungsional dan Nonfungsional
Kebutuhan fungsional dan non fungsional akan diujikan pada pengujian ini berdasarkan hasil perancangan dan implementasi. Hasil pengujian akan dilakukan analisis untuk mengetahui apakah berjalan sesuai tujuan atau tidak.Tampilan pengujian pada serial monitor
Gambar 6. Menu Pengujian
Pada Gambar 6, terdapat empat pilihan untuk melakukan pengujian. Pilihan pengujian tersebut antara lain :
a. Menu ini menampilan codeword yaitu data asli yang ditambahkan parity bit tambahan. b. Tampilkan Data Suhu.
c. Menu ini memasukkan data untuk mengubah data encode pada posisi yang dimasukkan. Data yang diubah pada menu ini sebanyak 1 bit.
d. Menu terakhir akan memasukkan data untuk mengubah 2 posisi error pada bagian data encode.
Berdasarkan perancangan dan implementasi hasil pengujian fungsional dan nonfungsional yang dilakukan dengan menggunakan suhu 24oC dan diencode menjadi 12 bitdata ditunjukkan pada Gambar 7.
Gambar 7. Data pengujian
Pada Gambar 7, sistem yang dirancang dapat menjalankan kebutuhan fungsional yaitu mendapatkan data suhu dan kebutuhan nonfungsional yang melakukan proses encode
data suhu tersebut dengan menggunakan metode
Hamming Code. Selanjutnya pengujian dilakukan dengan mengubah data encode pada posisi yang dipilih secara random atau acak.
Gambar 8. Pengujian 1 bit error pada posisi 4
Pada Gambar 8, posisi data yang diubah yaitu pada posisi 4 dan hanya mengubah 1 bit data. Bit data yang mengalami error dapat dideteksi jenisnya dan dilakukan proses koreksi. Tabel 2 akan menunjukkan perhitungan manual metode Hamming Code dalam melakukan deteksi dan koreksi error pada suhu 24oC.
Tabel 2. Perhitungan manual metode hamming code
pada data 24oc
Berdasarkan Gambar 8 dan Tabel 2, proses deteksi dan koreksi error 1 bit data berhasil dilakukan dengan metode Hamming Code.
Beberapa posisi lainnya yang dilakukan pengujian error 1 bit dalam penelitian ini ditunjukkan pada Tabel 3.
Tabel 3. Posisi data error dalam pengujian 1 error
bit
Pengujian yang dilakukan pada Tabel 3, memakai 5 posisi data yang diubah datanya. Hasil pada tabel menunjukkan, bahwa metode
Pengujian yang terakhir yaitu pengujian
double bit error yang ditunjukkan pada Gambar 9.
Gambar 9. Pengujian 2 bit error pada posisi 9 dan 10
Tabel 4. Perhitungan manual metode hamming code
pada error 2 bit
Dua bit error dapat dideteksi pada Gambar 9 dan perhitungan yang dilakukan pada Tabel 4 sama hasilnya dengan implementasi yang dilakukan. Beberapa pengujian juga dilakukan pada letak posisi yang berbeda pada Tabel 5.
Tabel 5. Posisi data error dalam pengujian 2 error
bit
Deteksi 2 bit data yang error tidap dapat dilakukan koreksi yang disimbolkan oleh karakter (x), karena tidak diketahui posisi data tersebut.
3.2 Pengujian Waktu Encode dan Decode Data
Pengujian waktu dilakukan untuk mengetahui delay yang diperlukan dalam proses
encode dan decode dengan metode Hamming Code. Pengujian ini menggunakan 2 data yang memiliki jumlah berbeda.
Gambar 10. Grafik encode data
Berdasarkan pada Gambar 10, Banyaknya jumlah data yang dilakukan proses encode
mempengaruhi lama waktu yang diperlukan. Pada data berjumlah 5 bit, terdapat sebanyak 4 data yang membutuhkan waktu kurang dari 100 ms dalam melakukan proses encode, sedangkan pada data berjumlah 4 bit, terdapat 6 data yang membutuhkan waktu kurang dari 100 ms .
Gambar 11. Grafik decode data
Grafik pada Gambar 11 menunjukkan percobaan waktu decode data yang dilakukan pada data 10 bit dan 11 bit. Pada data berjumlah 10 bit terdapat 9 data dengan waktu kurang dari 20ms dalam proses decode nya, dan pada data berjumlah 11 bit sebanyak 5 data yang membutuhkan waktu kurang dari 20ms.
4. KESIMPULAN
Pada hasil pengujian dan analisis yang dilakukan dengan mengimplementasikan metode Hamming Code pada perancangan dan implementasi menghasilkan kesimpulan yaitu metode Hamming Code diterapkan dengan model simulasi antar Arduino Uno sebagai media implementasinya dan sensor DHT11 sebagai objek penelitian. Pada pengujian fungsional dan nonfungsional, sebelum didapatkan codeword dari metode Hamming Code dalam proses encode dan decode, data diubah menjadi biner kemudian dilakukan operasi logika XOR untuk menambahkan parity bit. Dalam penambahan parity bit,
menambahkan 5 bit tambahanmaksimal bit yang disisipkan. Hasil proses encode serta decode
yang didapatkan sama dengan hasil perhitungan manual metode Hamming Code.
Sedangkan rata-rata lamanya waktu yang diperlukan atau delay untuk proses encode data yang dilakukan pada 2 jenis data yang berbeda yaitu 102,7ms pada data 4 bitdan 109,5ms pada data 5 bit.Sedangkan untuk rata-rata delay waktu
decode data yang dihasilkan pada 2 jenis data yang berbeda yaitu 17,5ms pada data 10 bitdan 100,1ms pada data 11 bit. Jumlah data yang dilakukan proses decode mempengaruhi lamanya waktu yang diperlukan.
Saran yang dihasilkan dalam penelitian ini, diharapkan untuk penelitian selanjutnya metode
Hammng Code dapat diimplementasikan dan dianalisis pada real system contohnya pada sistem yang memiliki sistem kritis, atau pada sistem IOT Serta dapat dianalisis lebih dalam lagi tentang kelebihan dan kelemahannya dengan metode Information Redudancy lainnya seperti metode LFSR, cyclic codes, berger code,dllpada sistem yang sama.
DAFTAR PUSTAKA
Lubis, A. A. A., Poltak, S. & Arman, S., 2012. Perancangan Error Detection System And Error Correction System Menggunakan Metode Hamming Code Pada Pengiriman Data Text. Jurnal USU, I(1), pp. 1-2.
Mahendra, G. R., Sari, W. M. & Meilani, T. N., 2016. Simulasi Deteksi Bit Error Menggunakan Metode Hamming Code. Jurnal Dinamika Informatika, V(2), pp. 1-3.
Muhajir, F., Efendi, S. & Sutarman, 2016. Deteksi Dan Koreksi Multi Bit Error