Implementasi Deteksi Dan Koreksi Error Pada Komunikasi Serial Arduino Berbasis UART Dengan Metode Hamming Code
Vol. 2, No. 11, November 2018, hlm. 5089-5095 http://j-ptiik.ub.ac.id
Implementasi Deteksi Dan Koreksi Error Pada Komunikasi Serial Arduino
Berbasis UART Dengan Metode Hamming Code
1 2 3 Anggi Fajar Andana , Sabriansyah Rizqika Akbar , Rizal MaulanaProgram Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Brawijaya 2 3 Email sabrian@ub.ac.id, rizal_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 bit kontrol 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,7ms untuk data 5 bit dan 109,5ms untuk data 4 bit pada proses encode. Serta 17,5 ms untuk data 10 bit dan 100,1ms untuk 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
pada saat proses komunikasi dimulai, noise 1. dapat muncul secara tiba-tiba sehingga dapat
PENDAHULUAN
mengubah nilai data yang menyebabkan error Penyebaran data dan kelancaran
(Muhajir, et al., 2016). Penyebab error penyampaikan merupakan faktor yang disebabkan oleh banyak faktor antara lain usia berpengaruh dalam proses komunikasi. Namun, perangkat, faktor lingkungan, faktor usia
Fakultas Ilmu Komputer Universitas Brawijaya
5089 perangkat, kesalahan pada perangkat, dll. Berdasarkan permasalahan tersebut, munculah metode Error Detection dan Error Correction.
Metode ini merupakan metode yang menangani
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)
2. METODOLOGI PENELITIAN Gambar 1. Diagaram alir metodologi penelitian
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.
Hamming Code dengan menggunakan logika
pada pengiriman data. Metode yang digunakan berupa Hamming Code dengan memakai konsep penambahan parity bit
error
Pada penelitian ini, penulis merancang sistem agar dapat melakukan deteksi dan koreksi
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.
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 Pengirim an 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 be rjudul “Simulasi Deteksi Bit Error Menggunakan Metode Hamming Code Berbasis
Metode Hamming Code menggunakan logika
error yang muncul atau terjadi pada bagian
Information Redudancy dengan menambahkan informasi tambahan pada objek penelitian.
disebut dengan Information Redudancy, dan waktu tambahan yaitu Time Redudancy. Pada penelitian ini, penulis menggunakan konsep
Hardware Redudancy, informasi tambahan yang
yang diterapkan dalam proses Error Control Coding. Antara lain dengan menambahkan perangkat tambahan yaitu
And Error Correction
Terdapat beberapa metode Error Detection
error control coding , yaitu proses coding pada bagian encoder dan decoder.
penerima. Metode ini diterapkan dalam proses
Pada bab metodologi penelitian, bertujuan untuk merancang sistem dan mengimplementasikan metode Hamming Code sesuai dengan rekayasa kebutuhan agar dapat ditunjukkan pada Gambar 3. 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 3. Flowchart Metode Hamming Code pada bagian pengirim (encode)
2.3 Perancangan Metode Hamming Code Pada Penerima Data Gambar 2. Skematik perancangan sensor DHT11 dan Arduino Uno
Codeword yang diterima akan pada masuk
dan ditampung pada variabel array. Panjang
variabel array akan menyesuaikan dengan
2.2 Perancangan Metode Hamming Code
Pada Pengirim jumlah data yang diterima dari proses encode.
Kemudian dilakukan proses pengecekkan error Pada bagian perancangan metode Hamming data pada bagian proses decode dengan
Code pada pengirim bertujuan untuk membuat
menerapkan metode Hamming Code. Setelah sistem dapat menjalankan kebutuhan proses pengecekkan error data dilakukan maka nonfungsional yaitu sistem dapat melakukan akan masuk pada proses untuk melakukan proses encode data, sehingga menghasilkan koreksi error. Jika proses koreksi error telah
codeword dengan hasil penerapan dari metode
dilakukan, maka data codeword dan data asli
Hamming Code. Pada indeks array tertentu yaitu
akan dipisan untuk dilakukan proses konversi ke ke 0,1,3,7, dan x merupakan indeks parity bit desimal, dan data suhu dapat ditampilkan. Proses yang akan ditambahkan dari operasi logika XOR
decode ditunjukkan pada Gambar 4
yang dilakukan untuk melakukan deteksi error lebih dari satu bit yaitu dua bit. Proses encode bagian pengirim pada sistem pengujian
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 yang dikirim. Pada proses ini, jika
codeword
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 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
Gambar 5. Implementasi antar Arduino Uno dan
pada posisi yang dipilih. Nilai pada menu
DHT11
pengujian ini akan mengubah data encode yang diterima.
3. PENGUJIAN DAN ANALISIS
Tabel perhitungan metode Hamming Code 12 bit ditunjukkan pada Tabel 1.
3.1 Fungsional dan Pengujian Nonfungsional Tabel 1. Perhitungan decode data dengan Metode
Hamming Code
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
Arduino IDE ditunjukkan pada Gambar 6.
Gambar 6. Menu Pengujian
Hamming Code . Selanjutnya pengujian
Hamming Code dapat melakukan deteksi
Pengujian yang dilakukan pada Tabel 3, memakai 5 posisi data yang diubah datanya. Hasil pada tabel menunjukkan, bahwa metode
Tabel 3. Posisi data error dalam pengujian 1 error bit
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 2. Perhitungan manual metode hamming code pada data 24 o c
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 24 o C.
Gambar 8. Pengujian 1 bit error pada posisi 4
dilakukan dengan mengubah data encode pada posisi yang dipilih secara random atau acak.
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
Pada Gambar 6, terdapat empat pilihan untuk melakukan pengujian. Pilihan pengujian tersebut antara lain : a.
Gambar 7. Data pengujian
untuk mengubah 2 posisi error pada bagian data encode. Berdasarkan perancangan dan implementasi hasil pengujian fungsional dan nonfungsional yang dilakukan dengan menggunakan suhu 24 o C dan diencode menjadi 12 bit data ditunjukkan pada Gambar 7.
Menu terakhir akan memasukkan data
d.
Menu ini memasukkan data untuk mengubah data encode pada posisi yang dimasukkan. Data yang diubah pada menu ini sebanyak 1 bit.
c.
Tampilkan Data Suhu.
b.
Menu ini menampilan codeword yaitu data asli yang ditambahkan parity bit tambahan.
sekaligus koreksi error pada pengujian error 1 bit data. 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.
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.
3.2 Pengujian Waktu Encode dan Decode Data
4. Dengan Partition Hamming Code . Jurnal KESIMPULAN
Teknovasi, III(2), pp. 2-3.
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 tambahan maksimal 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 bit dan 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 bit dan 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, dll pada 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