Selasa, 26 Januari 2016

Mengatasi Error pada koding Arduino

Sobat Cyber-Code Mengalami Error saat  Compile Sketch dalam Arduino itu hal yang wajar, karena ada beberapa kesalahan logika,ketikan atau beberapa liberary tidak ditemukan namun sobat Cyber-Code gak usah  ngamuk2.. pasti ada solusi yg penting bersabarlah.. bersabarlah.. bersabarlah... anda akan saya sihir Kasih Solusinya.. 
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.

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.

Arduino IDE 1.0.6
Gambar Arduino IDE 1.0.6

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.

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

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.

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. Huuuh! :(

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

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  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;

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  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;

void setup() {
  pinMode(led, OUTPUT);

void loop() {
  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;

void setup( {
  pinMode(led, OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led, OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  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;

void setup() {
  pinMode(led OUTPUT);

void loop() {
  / 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.

13 komentar:

  1. Eror compaling for board arduino nano pada kolom oren dan di bagian kolom hitam muncul compitation terminated
    Exit status1
    Eror compilinh for board arduino nano artinya apa ya

    BalasHapus
  2. Eror compaling for board arduino nano pada kolom oren dan di bagian kolom hitam muncul compitation terminated
    Exit status1
    Eror compilinh for board arduino nano artinya apa ya

    BalasHapus
    Balasan
    1. Aq jg GT, sdh ad solusi kah?

      Hapus
    2. Sama aku juga gitu, belum ada solusi, gimana ya caranya?

      Hapus
    3. https://www.google.com/amp/saptaji.com/2016/10/11/beberapa-error-message-di-arduino-ide-dan-solusinya/amp/

      Hapus
  3. kalo eror nya no matching function for call arduino ne gmna ya bang atasi nya

    BalasHapus
  4. Mohon bantuannya saya meng upload ke arduino uno selalu error padahal portnya sudah bener boardnya juga bener gmn solusinya

    BalasHapus
    Balasan
    1. Kemungkinan itu blm download driver buat serial port

      Hapus
  5. redefinition of 'DMD dmd'

    BalasHapus
  6. 'select'does not name a type

    BalasHapus
  7. kak kenapa ya pas saya buka adruinonya layarnya abu abu dan tidak bsa mengetik kodenya mohon bantuannya

    BalasHapus
  8. Masalahku teratasi

    Terima kasih admin

    BalasHapus