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.
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
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.
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’
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.