Anda di halaman 1dari 8

MENGATASI ERROR PADA KODING ARDUINO

Kesalaham Kompilasi atau Compile Error adalah kesalahan yang terjadi ketika kita
mencoba melakukan kompilasi (compile atau verify) kode dan perangkat lunak Arduino
(compiler) menemukan kesalahan diantara kode-kode yang telah ditulis. Pesan kesalahan akan
muncul pada area “Text Message Console” saat kita mencoba melakukan compile (verify) dan
atau mengunggah (upload) kode kedalam papan Arduino. Dan saat pesan kesalahan itu muncul
maka dapat dipastikan telah terjadi compile error (kesalahan kompilasi) dan atau upload error
(kesalahan unggah). Jadi secara garis besar pesan kesalahan itu terbagi menjadi dua yaitu;
kesalahan kompilasi (compile error) dan kesalahan unggah (upload error). Compile error
biasanya terjadi karena kesalahan penulisan kode (termasuk kesalahan pemuatan perpustakaan
atau library). Sedangkan upload error biasanya terjadi karena kesalahan komunikasi perangkat
keras.
A. GEJALA KESALAHAN
Jika kita yakin bahwa telah terjadi kesalahan kompilasi atau kesalahan unggah, maka
perhatikanlah pada bagian text message console (area latar berwarna hitam) yang terdapat di
bagian paling bawah pada perangkat lunak Arduino.
Untuk membedakan kesalahan antara compile error (kesalahan kompilasi)
dengan upload error (kesalahan unggah) maka secara umum dapat dibedakan dengan
memperhatikan pesan kesalahan yang muncul pada text message console seperti contoh
dibawah ini.
1. Compile Error (Kesalahan Kompilasi)
Pesan kesalahan kompilasi biasanya ditandai dengan kemuncul informasi pada area
kotak berwarna oranye dan diikuti informasi kode berakhiran .ino dibawahnya (area latar
hitam) pada konsol pesan.Kesalahan kompilasi terjadi karena terdapat kesalahan pada
penulisan kode.
expected initializer before ‘pinMode’
Blink:2: error: expected initializer before ‘pinMode’
Blink:3: error: expected declaration before ‘}’ token
2. Upload Error (Kesalahan Unggah)
Kesalahan unggah hampir mirip dengan kesalahan kompilasi. Pada area kotak
berwarna oranye akan muncul informasi kesalahan dan diikuti dibawahnya informasi
kesalahan yang biasanya diawali dengan kalimat “ Binary sketch size: 1,082 bytes (of a 30,720 byte
maximum) ”. Kesalahan unggah terjadi karena terdapat kesalahan komunikasi pada perangkat
keras.
serial port ‘/dev/tty.bluetooth-modem’ already in use.
Binary sketch size: 4,962 bytes (of a 30,720 byte maximum)
processing.app.SerialException: Serial port ‘/dev/tty.Bluetooth-Modem’ already in
use.
try quiting any programs that may at processing.app.Serial.(Serial.java:171)
at processing.app.Serial.(Serial.java:77)
Kesalahan-kesalahan yang terjadi sebenarnya akan disampaikan pada text message
console secara berurutan. Kesalahan penulisan kode akan ditampilkan lebih dulu sebelum proses
unggah (upload) dimulai. Dan jika penulisan kode sudah benar maka pesan kesalahan unggah
yang kemudian akan ditampilkan. Ini berarti pesan kesalahan unggah tidak akan ditampilkan
sampai semua kode yang ditulis diperbaiki. Kesalahan unggah tidak akan muncul jika
komunikasi perangkat keras terhubung dengan benar, baik antara komputer dengan papan
Arduino atau perangkat keras (sensor, module, shield) dengan papan Arduino.
Penyebab Dan Solusi Kesalahan Upload

Berdasarkan pengalaman ada beberapa penyebab dan solusi yang bisa dilakukan
untuk mengatasi masalah kesalahan upload tersebut. Diantaranya:
1. Program yang digunakan adalah program arduino yang versi portable. Jika kita lihat pada
driver manager, akan muncul satu port USB yang masih tanda tanya, yang berarti board
Arduino yang kita miliki belum terdeteksi di komputer kita..  Solusinya mendownload
program Arduino kembali namun yang versi di Instal.
2. Pemilihan jenis board arduino yang digunakan juga bisa menjadi penyebab. Seumpama kita
menggunakan arduino mega, tapi pada settingan software kita masih menggunakan board
Arduino Uno. Biasanya setiap board arduino yang berbeda maka akan muncul penggunaan
port yang berbeda alamatnya. Untuk pensettingannya bisa dilihat pada gambar berikut:

Pilih tool, kemudian board, lalu pilih board yang digunakan. Jika Arduino telah
terhubung opsi port akan menyala dan kita bisa memilih port yang digunakan
3. Serial monitor yang masih terbuka bisa menjadi penyebab kita tidak bisa mengupload
Arduino. Serial monitor biasa digunakan untuk menampilkan nilai-nilai keluaran dari
sensor atau nilai ADC. Terkadang kita lupa masih atau sedang membuka serial monitor
ini. Saat inggin mengupload program baru ternyata tidak bisa mengupload juga.
Solusinya kita tinggal menutup serial monitonya dan mncoba mengupload kembali.

Pada gambar serial monitor sedang terbuka (COM4), jadi tinggal di tutup serial
monitonya, lalu upload ulang program
4. Port USB yang digunakan tidak terdeteksi. Sepeti yang ditulis sebelumnya, tanda apakah
arduino telah terhubung atau tidak yaitu jika kita pilih menu tool dan opsi port sudah
menyala, berarti arduino telah terhubung, dan sebaliknya. Jika belum terdeteksi, coba
untuk mencabut ulang arduino dan kembali memasangnya. Biasanya arduino akan
terhubung, saya sering mengalami permasalahan yang ini.
5. Port USB komputer atau laptop yang rusak. Solusinya, coba pindah ke port USB yang
lain dari laptop atau komputer, jika masih belum bisa coba bandingkan di laptop atau
komputer lain.
B. MENEMUKAN KESALAHAN KOMPILASI
Kesalahan kompilasi (compile error) biasanya terjadi karena beberapa hal,
diantaranya; hilangnya kode (biasanya karena lupa tidak ditulis), kesalahan kode
(terutama pada tanda baca), kesalahan ejaan, dan kesalahan kapitalisasi (penulisan huruf
besar kecil) hal ini karena kode Arduino bersifat Case Sensitive. Kesalahan kompilasi
juga dapat disebabkan oleh variabel yang belum diinisialisasi (dideklarasikan) dibagian
awal program dan atau teks tambahan dimanapun dalam kode program yang ditulis.Jika
menemukan kesalahan kompilasi maka bacalah pesan dengan hati-hati pada area text
message console perangkat lunak Arduino sebagai petunjuk.Selidiki kode disekitar lokasi
yang disoroti (highlight) atau area yang dilompatkan (jump) oleh Arduino.Jika sulit atau
tidak ditemukan kesalahan pada area tersebut maka perhatikan kesuruhan kode baris demi
baris dari atas ke bawah, dengan tetap mengacu pada kesalahan yang ditampilkan.

C. MEMAHAMI CONTOH KESALAHAN DAN SOLUSINYA


Setiap bagian dimulai dari penggalan kode yang bermasalah. Dibawah ini
contoh-contoh kesalahan yang mungkin saja masalah yang pernah, sedang atau akan kita
temui. Potongan kode yang bermasalah tersebut dilanjutkan dengan contoh pesan
kesalahan yang tampil.Pada bagian akhir dari setiap contoh diberikan solusi untuk
menemukan kesalahan kode yang ditulis. Contoh-contoh kesalahan yang biasanya terjadi
dikelompokan menjadi:
1. Kesalahan Semicolon (Titik Koma)
2. Kesalahan Kurung Kurawal (Curly Bracket)
3. Kesalahan Kurung (Parentheses)
4. Kesalahan Koma (Comma)
5. Kesalahan Ejaan (Misspelling) atau Kesalahan Kapitalisasi (Mis-Capitalization)
6. Kesalahan Inisialisasi Variabel (Variable Initialization)
7. Teks Tambahan Acak dalam Program

1. Kesalahan Semicolon atau ;


Pesan kesalahan untuk semicolon yang hilang relatif mudah. Pesan kesalahan
yang tampil, baik didalam area oranye atau area text message console latar hitam, ada
baris yang menampilkanerror: expected ‘,’ or ‘;’ before ‘void’. Pesan ini berindikasi
bahwa telah terjadi kesalahan atau tidak dituliskannya simbol semicolon ; atau titik
koma. Arduino IDE biasanya akan langsung menyoroti (highlight) baris setelah titik
koma yang hilang untuk menunjukan lokasi kesalahan kode yang telah ditulis. Ini
berarti kita harus mencari kesalahan sebelum baris yang di-highlight.Kode yang di-
highlight bukanlah kode yang terdapat kesalahannya, tapi kesalahan terletak pada baris
kode sebelumnya.
int led =13
voidsetup(){
pinMode(led, OUTPUT);
}
voidloop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW)
delay(1000);
}
error: expected unqualified-id before numeric constant
Blink:2: error: expected unqualified-id before numeric constant
Blink:3: error: expected ‘,’ or ‘;’ before ‘void’

int led =13;


voidsetup(){
pinMode(led, OUTPUT);
}
voidloop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW)
delay(1000);
}
expected `;’ before ‘delay’
Blink.ino: In function ‘void loop()’:
Blink:11: error: expected `;’ before ‘delay’
Solusi Kesalahan Semicolon atau ;
Perhatikan pesan error: expected ‘;’ dari contoh kesalahan kode diatas. Carilah
kesamaan antara kesalahan Anda dan salah satu kesalahan di atas.Tambahkan titik
koma yang hilang dan Verify ulang kode. Jika titik koma yang hilang adalah satu-
satunya kesalahan pada kode program, kode akan berhasil di kompilasi (verify). Jika
memiliki kesalahan tambahan, Anda akan mendapatkan pesan error baru dengan
informasi tentang kesalahan berikutnya dalam program.
Perhatikan pesan kesalahan Blink:2 atau Blink:3 pada contoh kode diatas.
Angka :2 dan angka :3 menunjukan baris yang di-highlight tetapi kesalahan terjadi
sebelum baris tersebut, yaitu sebelum baris 2 dan atau sebelum baris 3.

2. Kesalahan Curly Bracket atau { }


Curly Bracket atau sering dikenal kurung keriting (kurawal) atau dengan
simbol ‘{ }’. Kesalahan curly bracket biasanya merupakan pesan kesalahan yang
terkadang membingungkan dan samar. Biasanya Arduino IDE akan menyampaikan
kesalahan berupa tanda ‘{' atau '}’ baik pada pesan kesalahan berlatar hitam atau para
area oranye. Arduino IDE biasanya akan langsung memberikan highlight pada baris
setelah kode kurung keriting hilang untuk menunjukan lokasi kesalahan. Namun,
terkadang Arduino IDE memberikan highlight pada baris yang tidak ada hubungannya
dengan kesalahan sama sekali.
int led =13;

voidsetup(){
pinMode(led, OUTPUT);

voidloop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
a function-definition is not allowed here before ‘{' token
Blink.ino: In function 'void setup()':
Blink:7: error: a function-definition is not allowed here before '{' token
Blink:12: error: expected `}’ at end of input
Solusi Kesalahan Curly Bracket atau { }
Carilah tanda ‘{' atau '}’ pada kesalahan kode Anda.Bandingkan kesalahan
yang terjadi pada kode Anda dengan contoh kesalahan diatas.Tambahkan simbol Curly
Bracket pada kode dan verfy ulang kode. Jika tidak memiliki kesalahan tambahan
dalam kode, maka kompilasi atau verify akan berhasil. Jika tidak berhasil, Anda akan
mendapatkan pesan error baru dengan informasi tentang kesalahan berikutnya pada
program.
3. Kesalahan Kurung atau ( )
Pesan kesalahan ini sering membingungkan dan samar. Biasanya, tapi tidak
selalu, kesalahan tanda ‘(’ atau ‘)’ akan di informasikan pada kotak pesan kesalahan
baik para area oranye atau area hitam. Perangkat lunak Arduino biasanya akan
menyoroti sesuai dengan tanda kurung yang hilang untuk menunjukkan lokasi
kesalahan, tapi kadang-kadang akan menyoroti baris yang tidak terkait sama sekali.
int led =13;

voidsetup({
pinMode(led, OUTPUT);

voidloop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
variable or field ‘setup’ declared void
Blink:3: error: variable or field ‘setup’ declared void
Blink:3: error: expected primary-expression before ‘{' token

int led =13;

voidsetup(){
pinMode(led, OUTPUT);

voidloop(){
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, LOW);
delay(1000);
}
expected `)’ before ‘;’ token
Blink.ino: In function ‘void loop()’:
Blink:9: error: expected `)’ before ‘;’ token
Solusi Kesalahan Kurung atau ( )
Carilah tanda ‘(’ atau ‘)’ pada kesalahan kode Anda.Carilah kesamaan antara
kesalahan kode yang Anda tulis dengan contoh-contoh di atas. Tambahkan tanda kurung
yang hilang dan verify (compile) ulang kode. Jika Anda tidak memiliki kesalahan
tambahan pada kode yang di tulis, kompilasi kode akan berhasil. Jika tidak, Anda akan
mendapatkan pesan error atau informasi baru tentang kesalahan berikutnya pada
program.

4. Kesalahan Koma atau ‘,’


Pesan kesalahan ini sering membingungkan dan samar. Arduino tidak selalu
menyebutkan kesalahan koma pada kotak pesan kesalahan baik pada area oranye atau
area hitam. Perangkat lunak Arduino biasanya akan menyoroti langsung pada baris
dimana koma itu hilang untuk menunjukkan lokasi kesalahan pada kode yang Anda
tulis.
int led =13;
voidsetup(){
pinMode(led OUTPUT);
voidloop(){
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, LOW);
delay(1000);
}
expected `)’ before numeric constant
Blink.ino: In function ‘void setup()’:
Blink:4: error: expected `)’ before numeric constant
C:\Program Files\Arduino\hardware\arduino\cores\arduino/Arduino.h:120: error: too few
arguments to function ‘void pinMode(uint8_t, uint8_t)’
Blink:4: error: at this point in file
Solusi Kesalahan Koma atau ‘,’
Carilah kesamaan antara kesalahan pada kode Anda dengan contoh-contoh
kode di atas.Tambahkan tanda koma yang hilang dan kompilasi ulang kode. Jika tidak
memiliki kesalahan tambahan dalam kode Anda, kode akan berhasil di kompilasi. Jika
tidak, anda akan mendapatkan pesan error atau informasi baru tentang kesalahan
berikutnya pada program.
5. Kesalahan Ejaan atau Kapitalisasi
Pesan kesalahan ejaan (misspelling) atau kesalahan kapitalisasi (mis-
capitalization) biasanya merupakan pesan kesalahan paling jelas dan paling mudah
untuk akan Anda hadapi. Pada umumnya kesalahan ini memiliki format atau pesan
‘word with error’ was not declared in this scope. Perangkat lunak Arduino akan selalu
menyoroti (highlight) secara langsung pada baris yang terdapat kesalahan ejaan atau
kesalahan kapitalisasi untuk menunjukkan lokasi kesalahan Anda. Juga, jika Anda
memiliki kesalahan ejaan yang terintegrasi sebagai prosedur atau variabel Arduino,
warna kata yang salah atau kesalahan kapitalisasi akan berubah warna dari warna
oranye atau atau biru menjadi warna hitam, ini memberikan petunjuk yang sangat
berharga tentang penyebab kesalahan.
int led =13;
voidsetup(){
pinMode(led OUTPUT);
voidloop(){
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, LOW);
dellay(1000);
}
‘dellay’ was not declared in this scope
Blink.ino: In function ‘void loop()’:
Blink:11: error: ‘dellay’ was not declared in this scope

int led =13;

voidsetup(){
pinMode(led OUTPUT);

voidloop(){
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, low);
dellay(1000);
}
‘low’ was not declared in this scope
Blink.ino: In function ‘void loop()’:
Blink:10: error: ‘low’ was not declared in this scope
Solusi Kesalahan Ejaan atau Kapitalisasi
Carilah kesalahan dengan format ‘word with error’ was not declared in this
scope. Perbaiki kesalahan ejaan atau kesalahan kapitalisasi dan kompilasi ulang kode
Anda. Jika tidak memiliki kesalahan tambahan dalam kode Anda, kode akan berhasil
di kompilasi. Jika tidak, anda akan mendapatkan pesan error atau informasi baru
tentang kesalahan berikutnya pada program.
6. Kesalahan Definisi Variabel
Kesalahan untuk definisi variabel (variable definitions) cukup jelas. Biasanya
menampilkan pesan kesalahan dengan format ‘missing variable’ was not declared in
this scope. Perangkat lunak Arduino akan menyoroti baris yang terdapat kesalahan
variabel didalamnya dan atau ditemukan variabel yang hilang. Sebagai contoh, dalam
kode di bawah ini, Arduino akan menyoroti baris pinMode(led, OUTPUT); ketika
Anda mengkompilasi kode maka muncul pesan kesalahan karena baris pertama yang
ditulis kehilangan variabel led.
// ini adalah pin untuk LED int led = 13;

voidsetup(){
pinMode(led OUTPUT);

voidloop(){
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, low);
dellay(1000);
}
‘led’ was not declared in this scope
Blink.ino: In function ‘void setup()’:
Blink:4: error: ‘led’ was not declared in this scope
Blink.ino: In function ‘void loop()’:
Blink:8: error: ‘led’ was not declared in this scope
Solusi Kesalahan Definisi Variabel
Carilah kesalahan dengan format ‘missing variable’ was not declared in this
scope. Periksalah dari hilangnya definisi variabel atau kesalahan ejaan definisi variabel
pada bagian kode.Perbaiki atau tambahkan definisi yang diperlukan kemudian
kompilasi ulang. Jika tidak memiliki kesalahan tambahan dalam kode Anda, kode akan
berhasil di kompilasi. Jika tidak, Anda akan mendapatkan pesan error atau informasi
baru tentang kesalahan berikutnya pada program.
7. Teks Tambahan Acak dalam Program
Kesalahan pada teks tambahan acak didalam sekumpulan kode yang telah
ditulis, biasanya lumayan membingungkan. Namun biasanya Arduino IDE akan
menyoroti baris dimana terdapat kesalahan teks tambahan. Kesalahan teks ini pada
umumnya disebabkan oleh penulisan tanda komentar yang hilang yaitu ‘/’, ‘/*’ atau
‘*/’. Beberapa contoh dibawah ini menunjukan kesalahan komentar yang tidak
dimulai dengan karakter slash ‘/’. Jika melakukan kesalahan tulis komentar, warna
huruf akan menjadi hitam dan bukan abu-abu, untuk memberikan petunjuk bahwa
terjadi kesalahan.
// ini adalah pin untuk LED
int led =13;

voidsetup(){
pinMode(led OUTPUT);

voidloop(){
digitalWrite(led, HIGH); x
delay(1000;
digitalWrite(led, low);
dellay(1000);
}
‘x’ was not declared in this scope
Blink.ino: In function ‘void loop()’:
Blink:9: error: ‘x’ was not declared in this scope
Blink:10: error: expected `;’ before ‘delay’

// ini adalah pin untuk LED


int led =13;

voidsetup(){
pinMode(led OUTPUT);

voidloop(){
/hidupkan LED
digitalWrite(led, HIGH);
delay(1000;
digitalWrite(led, low);
dellay(1000);
}
expected primary-expression before ‘/’ token
Blink.ino: In function ‘void loop()’:
Blink:9: error: expected primary-expression before ‘/’ token
Blink:9: error: ‘hidupkan’ was not declared in this scope
Blink:9: error: expected `;’ before ‘LED’
Solusi Teks Tambahan Acak dalam Program
Carilah kesalahan teks tambahan pada baris yang disoroti oleh Arduino atau
huruf yang berubah warna menjadi hitam.Perbaiki atau tambahkan teks/tanda
diperlukan kemudian kompilasi ulang. Jika tidak memiliki kesalahan tambahan dalam
kode Anda, kode akan berhasil di kompilasi. Jika tidak, Anda akan mendapatkan pesan
error atau informasi baru tentang kesalahan berikutnya pada program.

Anda mungkin juga menyukai