Kamis, 23 April 2026

Modul 4 Arduino

Modul 4: Arduino - Lampu Lalu Lintas

Modul 4

Modul Pembelajaran Mendalam

Membangun Sistem Lampu Lalu Lintas Berbasis Arduino

Selamat datang di modul 4! Kali ini kita akan mengubah diri menjadi insinyur lalu lintas dan programmer sekaligus. Kita akan membangun prototipe sistem yang mengatur detak nadi sebuah kota.

Tujuan Pembelajaran

  • Memahami konsep Sub Program dalam koding.
  • Mengenal dan mengimplementasikan Tipe Data dasar.
  • Mampu melakukan debugging / membaca error di panel output.
  • Merangkai komponen di Tinkercad dan Arduino Uno fisik secara kolaboratif.

Pertanyaan Pemantik

"Bayangkan persimpangan tersibuk di kotamu tanpa lampu lalu lintas. Apa yang terjadi? Lalu, bagaimana lampu-lampu di berbagai persimpangan kota bisa tersinkronisasi tanpa menyebabkan kekacauan? Jika kamu yang harus memprogramnya, logika seperti apa yang akan kamu gunakan?"

Tahap 1: Memahami Konsep

Berdasarkan data dari Inrix Traffic Scorecard, kemacetan membuang puluhan jam waktu produktif manusia setiap tahunnya. Sistem lampu lalu lintas yang terprogram menggunakan mikrokontroler seperti Arduino adalah fondasi awal dari *Smart City*. Dengan mempelajari ini, kalian sedang meletakkan batu bata pertama menuju pemahaman Kecerdasan Buatan (AI) yang kelak bisa memanajemen lalu lintas secara mandiri dan real-time!

Analogi Tipe Data

Dalam pemrograman, kita sering menyimpan nilai. Anggap saja variabel itu seperti "Kotak Penyimpanan", dan tipe data adalah "Bentuk Kotaknya". Kamu tidak bisa menaruh air di keranjang bambu, bukan? Berikut adalah 5 tipe data dasar:

int

(Integer): Angka bulat. Analogi: Rak telur. Hanya bisa diisi telur utuh (1, 2, 100). Tidak bisa 1.5 telur.

float

(Floating Point): Angka desimal. Analogi: Gelas ukur air. Bisa berisi 1.5 liter atau 3.14 liter.

double

Mirip float, tapi kapasitasnya dua kali lipat lebih presisi untuk angka di belakang koma yang sangat panjang.

char

(Character): Satu karakter tunggal. Analogi: Stempel huruf. Contoh: 'A', 'B', '1', atau '?'.

bool

(Boolean): Hanya punya dua nilai: BENAR/SALAH. Analogi: Saklar lampu (ON/OFF atau 1/0).

Konsep Sub Program (Fungsi Khusus)

Bayangkan tugas mengatur lalu lintas di simpang empat. Jika semua instruksi ditulis di satu buku catatan utama (void loop), bukunya akan sangat tebal dan membingungkan.

Sub Program (atau Fungsi) adalah memecah buku catatan itu menjadi bab-bab kecil. Kita membuat fungsi bernama nyalakanMerah() dan di dalam fungsi utama, kita tinggal "memanggil" namanya. Ini membuat kode lebih bersih, mudah dibaca, dan meminimalisir error.

Tahap 2: Mengaplikasi (Tinkercad)

Sekarang, mari kita merangkai di Tinkercad secara virtual. Kita akan membutuhkan: 1 Arduino Uno, 1 Breadboard, 3 LED (Merah, Kuning, Hijau), dan 3 Resistor (220 ohm).

*Klik gambar untuk memperbesar*

Ilustrasi Komponen Elektronika. Placeholder untuk gambar skema Tinkercad Arduino.

Ilustrasi rangkaian elektronik. (Ganti dengan *screenshot* rangkaian Tinkercad Anda)

Menulis Script (Kode)

Perhatikan bagaimana konsep tipe data (int) dan Sub Program (void lampuMerah()) digunakan di bawah ini:

// Mendeklarasikan variabel (Tipe Data: int)
int pinMerah = 13;
int pinKuning = 12;
int pinHijau = 11;

void setup() {
  // Mengatur pin sebagai jalur keluar (OUTPUT)
  pinMode(pinMerah, OUTPUT);
  pinMode(pinKuning, OUTPUT);
  pinMode(pinHijau, OUTPUT);
}

void loop() {
  // Memanggil Sub Program yang kita buat sendiri
  panggilLampuMerah(); 
  panggilLampuKuning();
  panggilLampuHijau();
}

// ==========================================
// INI ADALAH SUB PROGRAM
// ==========================================
void panggilLampuMerah() {
  digitalWrite(pinMerah, HIGH); // Nyalakan Merah
  delay(5000);                  // Tunggu 5 detik
  digitalWrite(pinMerah, LOW);  // Matikan Merah
}

void panggilLampuKuning() {
  digitalWrite(pinKuning, HIGH);
  delay(2000);
  digitalWrite(pinKuning, LOW);
}

void panggilLampuHijau() {
  digitalWrite(pinHijau, HIGH);
  delay(4000);
  digitalWrite(pinHijau, LOW);
}

Cara Membaca Error di Panel Output

Sebagai programmer, error adalah sahabat, bukan musuh! Jika kodemu gagal berjalan di Tinkercad, perhatikan kotak hitam di bawah (Serial Monitor/Output):

  • Cari Angka Baris: Pesan error biasanya menyebutkan angka, misal: error: expected ';' before '}' token pada baris 24. Artinya kamu lupa menaruh titik koma (;) di akhir perintah dekat baris 24.
  • Perhatikan 'Case Sensitive': Arduino membedakan huruf besar/kecil. digitalwrite akan error, yang benar adalah digitalWrite (W besar).
  • Typo Variabel: Jika tertulis 'pinmerah' was not declared, artinya kamu memanggil nama variabel yang salah ketik (harusnya pinMerah).

Tahap 3: Praktik & Refleksi

Tugas Kelompok (Hands-on Lab)

Tinggalkan simulator virtual, saatnya menyentuh perangkat keras sungguhan!

  1. Bentuk kelompok berisi 5-6 orang.
  2. Ambil kit Arduino Uno, kabel jumper, resistor, dan LED dari laboratorium.
  3. Rangkai sirkuit fisik lampu lalu lintas persis seperti desain Tinkercad kalian.
  4. Tulis ulang *script* di aplikasi Arduino IDE komputer.
  5. Upload program tersebut ke *board* Arduino dan saksikan lampu lalu lintas kalian beroperasi di dunia nyata!

Mari Merefleksi

Sembari membereskan meja kerja, diskusikan pertanyaan berikut bersama kelompokmu. Guru akan menunjuk beberapa kelompok untuk berbagi pemikiran:

1. Apa kendala paling menantang saat menerjemahkan kode dari layar komputer (Tinkercad) ke kabel fisik di dunia nyata?

2. Jika kalian ditantang untuk membuat lampu lalu lintas untuk simpang empat (bukan sekadar 1 arah), bagaimana kalian akan mengubah logika Sub Program kalian?

3. Menurutmu, mengapa pemahaman tentang "membaca error" (debugging) sangat penting tidak hanya dalam koding, tapi juga dalam memecahkan masalah kehidupan?

© Rislyon Ripi - SMA Kristen Barana - 2025/2026

Dibuat dengan optimisme untuk masa depan pendidikan Indonesia.

0 Komentar:

Posting Komentar

Berlangganan Posting Komentar [Atom]

<< Beranda