Modul 5: Struktur Dasar Pemrograman Arduino – setup() dan loop()

MATERI PEMBELAJARAN MIKROKONTROLER

STRUKTUR DASAR PEMROGRAMAN ARDUINO

Mengenal fungsi setup(), loop(), dan praktik mengendalikan LED.

PEMULA Tingkat Pembelajaran
TEORI + PRAKTIK Metode Pembelajaran
ARDUINO IDE Perangkat Lunak

🎯 A. Tujuan Pembelajaran

Setelah mempelajari materi ini, peserta didik diharapkan mampu:

  1. Menjelaskan struktur dasar program Arduino.
  2. Mengidentifikasi fungsi setup() dan loop().
  3. Menjelaskan perbedaan kedua fungsi tersebut.
  4. Mengidentifikasi perintah pinMode(), digitalWrite(), dan delay().
  5. Membuat program sederhana untuk mengendalikan LED.
  6. Menganalisis kesalahan sederhana pada program Arduino.

🧠 B. Pengantar Arduino

Pernahkah kalian melihat lampu yang dapat menyala dan mati secara otomatis? Bagaimana perangkat tersebut mengetahui kapan harus menyala dan kapan harus mati?

Salah satu teknologi yang dapat digunakan untuk mengendalikan perangkat elektronik secara otomatis adalah Arduino.

Arduino merupakan platform mikrokontroler yang dapat diprogram untuk mengendalikan berbagai perangkat elektronik, seperti:

  • LED dan lampu indikator.
  • Motor DC dan motor servo.
  • Sensor suhu dan kelembapan.
  • Buzzer atau alarm.
  • Sistem otomatisasi rumah.
💡 Konsep penting:
Sebelum membuat proyek Arduino yang kompleks, kita harus memahami struktur dasar programnya terlebih dahulu.

⚙️ C. Struktur Dasar Program Arduino

Program Arduino pada umumnya memiliki dua fungsi utama, yaitu setup() dan loop().

STRUKTUR DASAR ARDUINO
void setup() {
  // Konfigurasi awal
}

void loop() {
  // Instruksi utama
}

1. Fungsi setup()

Fungsi setup() dijalankan satu kali setiap Arduino mulai bekerja atau mengalami reset.

Fungsi ini digunakan untuk melakukan konfigurasi awal, misalnya:

  • Menentukan pin sebagai INPUT atau OUTPUT.
  • Mengaktifkan komunikasi serial.
  • Mengatur kondisi awal perangkat.
  • Melakukan inisialisasi sensor.
CONTOH SETUP()
void setup() {
  pinMode(13, OUTPUT);
}

Artinya, pin digital 13 diatur sebagai OUTPUT agar dapat digunakan untuk mengendalikan perangkat elektronik.

2. Fungsi loop()

Fungsi loop() dijalankan berulang-ulang selama Arduino bekerja.

Di dalam fungsi ini, kita menuliskan instruksi utama yang harus dilakukan oleh Arduino.

CONTOH LOOP()
void loop() {
  digitalWrite(13, HIGH);
  delay(1000);

  digitalWrite(13, LOW);
  delay(1000);
}

Program tersebut akan menyalakan LED, menunggu satu detik, mematikan LED, kemudian menunggu satu detik. Proses tersebut diulang terus-menerus.

3. Perbedaan setup() dan loop()

Aspek setup() loop()
Pelaksanaan Satu kali setiap mulai/reset Berulang-ulang
Fungsi Konfigurasi awal Logika utama
Contoh Mengatur pin Mengendalikan LED

💻 D. Mengenal Perintah Dasar Arduino

1. pinMode()

Digunakan untuk menentukan fungsi suatu pin.

PINMODE
pinMode(13, OUTPUT);

Keterangan:

  • 13 merupakan nomor pin.
  • OUTPUT berarti pin digunakan untuk mengeluarkan sinyal.
  • INPUT berarti pin digunakan untuk menerima sinyal.

2. digitalWrite()

Digunakan untuk memberikan kondisi logika pada pin digital.

DIGITALWRITE
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
  • HIGH: memberikan kondisi logika tinggi.
  • LOW: memberikan kondisi logika rendah.

3. delay()

Digunakan untuk memberikan jeda waktu dalam satuan milidetik.

DELAY
delay(1000);
Nilai Waktu
1000,1 detik
5000,5 detik
10001 detik
20002 detik
50005 detik
⚠️ Perhatian:
Perintah delay() menghentikan sementara pelaksanaan instruksi berikutnya selama waktu yang ditentukan. Pada proyek yang lebih kompleks, kita dapat mempelajari millis() sebagai alternatif.

🔧 E. Praktik 1: Membuat LED Berkedip

Tujuan praktik: Membuat LED menyala selama satu detik dan mati selama satu detik secara berulang.

Alat dan bahan

  1. Arduino Uno atau board kompatibel.
  2. Kabel USB.
  3. Komputer atau laptop.
  4. Arduino IDE.

Jika tidak memiliki perangkat fisik, kalian dapat menggunakan simulator Wokwi.

Langkah-langkah praktik

  1. Hubungkan Arduino ke komputer menggunakan kabel USB.
  2. Buka aplikasi Arduino IDE.
  3. Buat sketch baru.
  4. Masukkan kode program di bawah ini.
  5. Pilih board yang digunakan.
  6. Pilih port yang sesuai.
  7. Klik Verify untuk memeriksa program.
  8. Klik Upload untuk mengunggah program.
  9. Amati perubahan kondisi LED.
PROGRAM LED BLINK
// PRAKTIK 1: LED BERKEDIP

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

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);

  digitalWrite(13, LOW);
  delay(1000);
}
✅ Hasil yang diharapkan
LED menyala selama satu detik, kemudian mati selama satu detik. Siklus berlangsung terus-menerus.

🔍 F. Analisis Alur Program

Perhatikan urutan kerja Arduino berikut:

  1. Arduino dinyalakan.
  2. Fungsi setup() dijalankan.
  3. Pin 13 diatur sebagai OUTPUT.
  4. Fungsi loop() mulai dijalankan.
  5. LED dinyalakan menggunakan HIGH.
  6. Arduino menunggu satu detik.
  7. LED dimatikan menggunakan LOW.
  8. Arduino menunggu satu detik.
  9. Proses kembali ke langkah nomor 5.
Kesimpulan:
setup() mempersiapkan perangkat, sedangkan loop() menjalankan instruksi utama secara berulang.

🚀 G. Praktik 2: Mengubah Kecepatan Kedipan LED

Sekarang modifikasi program sebelumnya dengan ketentuan:

  • LED menyala selama 500 milidetik.
  • LED mati selama 500 milidetik.
  • Proses berjalan terus-menerus.
PROGRAM LED LEBIH CEPAT
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(500);

  digitalWrite(13, LOW);
  delay(500);
}

Pertanyaan analisis

  1. Baris kode mana yang mengalami perubahan?
  2. Apakah fungsi setup() perlu diubah?
  3. Apa pengaruh perubahan nilai delay()?

🏆 H. Tantangan Praktik

Misi: Buat pola kedipan LED yang berbeda!

Buatlah program Arduino dengan ketentuan:

  • LED menyala selama 3 detik.
  • LED mati selama 1 detik.
  • Proses berlangsung secara berulang.

Tantangan lanjutan:

Modifikasi program agar LED berkedip dengan pola berikut:

  1. Menyala 200 milidetik.
  2. Mati 200 milidetik.
  3. Menyala 1000 milidetik.
  4. Mati 500 milidetik.
  5. Mengulang kembali pola tersebut.

Bukti pekerjaan:

  1. Foto atau video hasil praktik.
  2. Salinan kode program.
  3. Penjelasan singkat mengenai pola LED yang dibuat.

📝 I. Evaluasi Pemahaman

Jawablah pertanyaan berikut berdasarkan pemahaman kalian.

  1. Apa fungsi utama dari setup() dalam program Arduino?
  2. Mengapa loop() disebut sebagai fungsi yang berjalan berulang-ulang?
  3. Apa perbedaan antara HIGH dan LOW?
  4. Berapa lama waktu jeda pada perintah delay(2500)?
  5. Apa yang terjadi jika perintah digitalWrite(13, LOW) dihilangkan?
  6. Mengapa Arduino membutuhkan konfigurasi awal sebelum menjalankan instruksi utama?
  7. Jika delay(1000) diubah menjadi delay(200), bagaimana perubahan kedipan LED?
  8. Apa yang terjadi jika pinMode(13, OUTPUT) tidak dituliskan?
  9. Apakah setup() akan dijalankan kembali setiap kali loop() selesai? Jelaskan.
  10. Bagaimana cara membuat LED menyala selama dua detik dan mati selama setengah detik?
Ketentuan:
Kerjakan secara mandiri. Jawaban harus disertai alasan, bukan hanya menyalin definisi dari materi.

💬 J. Refleksi Pembelajaran

Tuliskan jawaban secara mandiri:

  1. Apa hal baru yang kalian pelajari?
  2. Apa perbedaan paling penting antara setup() dan loop()?
  3. Kesulitan apa yang kalian temui ketika membuat program?
  4. Bagaimana cara kalian memperbaiki kesalahan program?
  5. Apa hubungan materi ini dengan proyek otomatisasi menggunakan mikrokontroler?

📌 K. Kesimpulan

Struktur dasar program Arduino terdiri atas dua fungsi utama, yaitu setup() dan loop().

Fungsi setup() digunakan untuk melakukan konfigurasi awal dan dijalankan satu kali setiap Arduino mulai bekerja atau di-reset.

Sementara itu, fungsi loop() digunakan untuk menjalankan instruksi utama secara berulang.

Pemahaman terhadap kedua fungsi tersebut merupakan dasar penting sebelum mempelajari pemrograman sensor, aktuator, sistem otomatisasi, dan Internet of Things (IoT).

🎯 Target Akhir:
Kalian mampu membuat, menjalankan, dan memodifikasi program Arduino sederhana secara mandiri.