Arduino telah merevolusi dunia elektronika hobi dan prototipe cepat. Kemudahan penggunaannya, didukung oleh lingkungan pengembangan terintegrasi (IDE) yang intuitif, menjadikannya pilihan utama bagi pemula maupun profesional. Namun, di balik kemudahan tersebut, pertanyaan mendasar yang sering muncul adalah: bahasa pemrograman apa yang sebenarnya digunakan Arduino? Jawabannya terletak pada fondasi kuat yang diwariskan dari dunia pengembangan sistem tertanam (embedded systems).
Secara teknis, program yang Anda tulis dan unggah ke papan mikrokontroler Arduino (seperti ATmega328P pada Uno) dikompilasi menggunakan dialek dari bahasa pemrograman C++. Namun, lingkungan Arduino (melalui Arduino IDE) menyajikan lapisan abstraksi yang membuatnya terasa jauh lebih sederhana, sering kali disebut sebagai 'Bahasa Arduino'.
Bahasa Arduino sebenarnya bukanlah bahasa yang benar-benar baru. Ia adalah sekumpulan pustaka (libraries) dan fungsi inti yang ditulis di atas C dan C++. Ketika Anda menulis sketsa (sketch) Arduino, yang berisi fungsi utama setup() dan loop(), IDE akan secara otomatis menambahkan header C++ standar dan melakukan pra-pemrosesan sebelum mengirimkannya ke kompiler GCC/G++.
Pemilihan C++ didasarkan pada beberapa alasan krusial dalam konteks mikrokontroler:
digitalWrite(), analogRead()), adalah pembungkus (wrapper) dari fungsi C/C++ asli.Setiap program Arduino harus memiliki setidaknya dua fungsi utama yang menjadi tulang punggung eksekusinya:
void setup(): Fungsi ini hanya dijalankan sekali saat mikrokontroler pertama kali dinyalakan atau di-reset. Di sinilah kita melakukan inisialisasi variabel, mengatur mode pin (input/output), dan memulai komunikasi serial.void loop(): Setelah setup() selesai, fungsi inilah yang akan dieksekusi berulang kali tanpa henti selama papan Arduino mendapatkan daya. Inilah tempat logika utama aplikasi Anda ditempatkan.Contoh klasik "Blink" menunjukkan kesederhanaan ini:
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Mengatur pin LED sebagai output
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Menyalakan LED
delay(1000); // Tunggu 1 detik
digitalWrite(LED_BUILTIN, LOW); // Mematikan LED
delay(1000); // Tunggu 1 detik
}
Keajaiban yang membuat Arduino mudah diakses oleh non-programmer C/C++ adalah ekstensifnya koleksi pustaka. Pustaka ini menyediakan fungsi-fungsi tingkat tinggi yang menyembunyikan kerumitan interaksi perangkat keras:
myServo.write(90);, Anda memanfaatkan fungsi yang didefinisikan dalam pustaka Servo.Pustaka ini memungkinkan pengembang untuk fokus pada logika aplikasi alih-alih harus menulis kode register tingkat rendah yang rumit untuk setiap komponen baru. Meskipun terlihat seperti bahasa baru, di bawah kapnya, semua pustaka ini diterjemahkan kembali menjadi instruksi C/C++ yang dimengerti oleh mikrokontroler.
Jadi, untuk menjawab pertanyaan utama: bahasa pemrograman yang digunakan Arduino adalah C++, yang diperkaya dan disederhanakan oleh kerangka kerja (framework) Arduino. Pemahaman dasar tentang sintaks C sangat membantu jika Anda ingin melakukan optimasi kinerja atau debugging mendalam. Namun, bagi sebagian besar pengguna, hanya menguasai fungsi-fungsi bawaan Arduino dan cara memanfaatkan pustaka sudah cukup untuk menciptakan proyek elektronik yang inovatif dan fungsional.