Struktur Dasar Sketch

Mempelajari anatomi program Arduino, fungsi setup() dan loop(), serta membuat program lampu lalu lintas pertama.

90 Menit
Modul 5: Pemrograman Arduino Dasar
Pertemuan 10

TPTujuan Pembelajaran

  1. Peserta didik dapat menjelaskan fungsi setup() dan loop() dalam Arduino sketch
  2. Peserta didik dapat menggunakan fungsi pinMode(), digitalWrite(), digitalRead() dengan benar
  3. Peserta didik dapat menggunakan delay() untuk mengatur waktu eksekusi
  4. Peserta didik dapat membuat program lengkap pertama: LED traffic light sederhana

Anatomi Sebuah Sketch Arduino

Tahukah kamu bahwa setiap program Arduino (disebut Sketch) memiliki dua bagian utama yang tidak boleh terpisahkan? Bayangkan sebuah program Arduino seperti aktivitas harian kita.

Fungsi setup(): Inisialisasi Sekali Saja

Fungsi setup() adalah bagian pertama yang dijalankan oleh mikrokontroler saat baru dinyalakan atau setelah tombol Reset ditekan.

Kegunaan utamanya adalah sebagai "briefing awal" sebelum mesin mulai bekerja keras. Di sinilah kita memberi tahu Arduino: pin mana yang jadi Input, pin mana yang jadi Output, dan mengatur koneksi komunikasi (seperti Serial Monitor).

setup_example.ino
cpp
void setup() {
  // Kode di sini hanya berjalan SATU KALI
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}

Fungsi loop(): Jantung Program

Setelah setup() selesai mengeksekusi baris kode terakhirnya, Arduino akan langsung melompat masuk ke fungsi loop(). Sesuai namanya (loop = putaran/berulang), fungsi ini akan dieksekusi terus-menerus tanpa henti selama Arduino memiliki daya listrik.

Alur Eksekusi Sketch Arduino

Fungsi-Fungsi Dasar yang Wajib Dikuasai

Untuk bisa berkomunikasi dengan komponen elektronik (seperti LED, Sensor, Tombol), Arduino memiliki kosa kata atau fungsi dasar tersendiri.

Nama FungsiKegunaanContoh Penggunaan
pinMode(pin, mode)Mengatur apakah sebuah pin akan bertugas mengeluarkan listrik (OUTPUT) atau membaca listrik (INPUT)pinMode(13, OUTPUT);
digitalWrite(pin, nilai)Mengeluarkan sinyal listrik. HIGH (Nyala/5V) atau LOW (Mati/0V)digitalWrite(13, HIGH);
digitalRead(pin)Membaca ada tidaknya sinyal listrik yang masuk. Biasanya untuk sensor digital/tombolint nilai = digitalRead(2);
delay(ms)Memberhentikan program sejenak. (1 detik = 1000 milidetik/ms)delay(1000);

Project: Traffic Light 3-Warna

Sekarang kita akan menerapkan apa yang sudah kita pelajari dengan membuat simulasi lampu lalu lintas merah, kuning, dan hijau menggunakan 3 buah LED.

Traffic_Light.ino
cpp
// ── Pin Definitions ────────────────────────
const int LED_MERAH  = 11;
const int LED_KUNING = 12;
const int LED_HIJAU  = 13;

void setup() {
  // Inisialisasi semua pin sebagai OUTPUT
  pinMode(LED_MERAH,  OUTPUT);
  pinMode(LED_KUNING, OUTPUT);
  pinMode(LED_HIJAU,  OUTPUT);
  
  Serial.begin(9600);
  Serial.println("Traffic Light dimulai!");
}

void tampilkanFase(String nama, int merah, int kuning, int hijau, int durasi) {
  digitalWrite(LED_MERAH,  merah);
  digitalWrite(LED_KUNING, kuning);
  digitalWrite(LED_HIJAU,  hijau);
  Serial.println("Fase: " + nama);
  delay(durasi);
}

void loop() {
  tampilkanFase("MERAH  - BERHENTI", HIGH, LOW,  LOW,  5000);
  tampilkanFase("KUNING - SIAP",     LOW,  HIGH, LOW,  2000);
  tampilkanFase("HIJAU  - JALAN",    LOW,  LOW,  HIGH, 5000);
  tampilkanFase("KUNING - HATI-HATI",LOW,  HIGH, LOW,  2000);
}

Tampilan di Serial Monitor:

Serial Monitor Output
Traffic Light dimulai! Fase: MERAH - BERHENTI Fase: KUNING - SIAP Fase: HIJAU - JALAN Fase: KUNING - HATI-HATI Fase: MERAH - BERHENTI Fase: KUNING - SIAP ...

Troubleshooting

Masalah:Semua lampu menyala bersamaan tanpa berkedip

Solusi:Mungkin kamu lupa menaruh delay() atau nilai delay terlalu kecil sehingga mata tidak bisa menangkap perpindahannya.


Masalah:Lampu menyala tapi sangat redup

Solusi:Pastikan pinMode() sudah di-set ke OUTPUT di fungsi setup().

Cek Pemahaman

Di bagian manakah sebaiknya kita menuliskan perintah pinMode() untuk inisialisasi pin?

Mudah

Jika kita menuliskan kode 'delay(5000);', apa yang akan terjadi pada program Arduino?

Sedang

Latihan: Modifikasi Traffic Light

Mengatur Waktu Lalu Lintas Siang dan Malam

Di beberapa simpang jalan pada malam hari yang sepi, lampu lalu lintas akan berubah menjadi mode peringatan: Lampu kuning berkedip-kedip sementara lampu lainnya mati.

Tantanganmu: Buatlah sketch baru dimana:

  1. Hanya lampu kuning (pin 12) yang hidup-mati terus menerus
  2. Lampu merah dan hijau selalu mati (LOW)
  3. Lampu kuning menyala selama 1 detik dan mati selama 1 detik
Kesimpulan Pertemuan Ini
  • Sketch Arduino wajib memiliki fungsi setup() dan loop().
  • setup() berjalan sekali saat awal mulai, cocok untuk persiapan dan inisialisasi.
  • loop() berputar tanpa batas, merupakan jantung di mana logika utama berjalan.
  • pinMode() menentukan arah listrik (masuk atau keluar).
  • digitalWrite() menyalakan (HIGH) atau mematikan (LOW) tegangan pada pin.
  • delay() digunakan untuk menjeda alur eksekusi program.

RRefleksi Belajar

Luangkan 2–3 menit untuk menjawab pertanyaan di bawah secara jujur.

Kejutan & Penemuan

Apa yang paling mengejutkan atau menarik hari ini?

Konsep baru apa tentang pemrograman Arduino yang paling menarik buatmu hari ini?

Masih Membingungkan

Apa yang masih membingungkan atau ingin kamu pahami lebih dalam?

Apakah ada fungsi (seperti pinMode, digitalWrite, delay) yang masih membingungkan?

Rencana Selanjutnya

Apa yang ingin kamu coba atau pelajari minggu depan?

Apa langkah selanjutnya yang akan kamu coba agar lebih lancar menulis Sketch Arduino?

Refleksi tidak dinilai — ini adalah ruang jujurmu untuk berpikir.