BAGIAN 1: PENDAHULUAN & TUJUAN PEMBELAJARAN
1.1 Latar Belakang & Konsep Dasar
Sistem kontrol lalu lintas modern merupakan salah satu penerapan teknologi otomasi yang paling dekat dengan kehidupan sehari-hari. Lampu lalu lintas (traffic light) bekerja berdasarkan urutan logika waktu yang presisi untuk mengatur arus kendaraan secara aman dan tertata.
Melalui project ini, siswa tidak hanya belajar merangkai komponen fisik secara simulatif, tetapi juga memahami bagaimana sebuah instruksi baris kode (algorithm logic) dapat mengendalikan perangkat keras (hardware output) secara terintegrasi. Pembelajaran ini memanfaatkan simulator Wokwi, sebuah platform berbasis web yang memungkinkan siswa bereksperimen dengan mikrokontroler Arduino Uno secara visual, aman, dan tanpa risiko kerusakan alat fisik.
1.2 Tujuan Pembelajaran (Learning Outcomes)
Setelag menyelesaikan project simulasi ini, siswa diharapkan mampu:
Aspek Pengetahuan (Cognitive):
Memahami konsep dasar kerja mikrokontroler Arduino Uno dan pemetaan pin digital I/O.
Menganalisis logika siklus state machine sederhana pada urutan lampu lalu lintas (Merah $\rightarrow$ Kuning $\rightarrow$ Hijau).
Memahami fungsi perintah dasar C/C++ pada Arduino, seperti
pinMode(),digitalWrite(), dandelay().
Aspek Keterampilan (Psychomotor):
Merangkai skema komponen elektronik (LED, resistor, kabel jumper) ke pin Arduino pada simulator Wokwi secara akurat.
Menulis, mengedit, dan mengunggah (compile & run) kode program Arduino ke dalam simulator.
Mengintegrasikan fitur Serial Monitor untuk proses pemantauan status data (debugging).
Aspek Sikap & Berpikir Kritis (Affective & Computational Thinking):
Menunjukkan ketelitian dalam menghubungkan kutub positif/negatif komponen (anoda/katoda).
Mengembangkan pemikiran komputasional (computational thinking) dalam memecahkan masalah (troubleshooting) jika terjadi kekeliruan logika urutan atau pewaktuan (delay).
1.3 Pertanyaan Pemantik untuk Diskusi Kelas
Mengapa urutan lampu lalu lintas selalu dimulai dari Merah, Kuning, lalu Hijau, dan bukan sebaliknya?
Apa yang akan terjadi pada arus lalu lintas jika jeda waktu (delay) lampu kuning dihilangkan?
Bagaimana mikrokontroler tahu kapan harus mematikan lampu merah dan menyalakan lampu hijau?
BAGIAN 2: ALAT & BAHAN SIMULASI (WOKWI PLATFORM)
2.1 Mengenal Platform Wokwi
Wokwi adalah platform simulator hardware elektronik berbasis web (cloud-based) yang memungkinkan siswa merancang, merangkai, dan memprogram perangkat mikrokontroler (seperti Arduino Uno, ESP32, dan Raspberry Pi Pico) secara langsung di dalam peramban (browser) tanpa perlu mengunduh perangkat lunak tambahan.
Keunggulan Penggunaan Wokwi dalam Pembelajaran:
Bebas Risiko Kerusakan: Siswa dapat bebas bereksperimen tanpa khawatir komponen terbakar akibat salah pasang kabel atau kelebihan tegangan.
Aksesibilitas Tinggi: Dapat diakses secara gratis dari laptop, komputer laboratorium, maupun Chromebook hanya dengan koneksi internet.
Instan & Visual: Hasil eksekusi kode program (sketch) dan respon komponen fisik dapat dilihat secara real-time.
2.2 Spesifikasi Komponen Virtual yang Digunakan
Untuk membangun simulasi lampu lalu lintas ini, dibutuhkan komponen-komponen virtual berikut di dalam simulator Wokwi:
1x Board Arduino Uno R3
Fungsi: Berperan sebagai "otak" atau unit pemroses utama (microcontroller unit) yang mengeksekusi instruksi program C++ untuk mengendalikan nyala lampu.
Spesifikasi Utilitas: Memiliki 14 Pin Digital Input/Output (Pin 0–13) dan pin daya (GND, 5V).
3x Light Emitting Diode (LED)
Fungsi: Komponen output berupa indikator visual lampu lalu lintas.
Warna yang Digunakan: 1x LED Merah (Red), 1x LED Kuning (Yellow), 1x LED Hijau (Green).
Karakteristik Polaritas: Memiliki dua kaki, yaitu Anoda (kutub positif / kaki melengkung) yang dihubungkan ke Pin Digital Arduino, dan Katoda (kutub negatif / kaki lurus) yang dihubungkan ke Ground (GND).
3x Resistor (Nilai Resistansi: $220\ \Omega$ atau $330\ \Omega$)
Fungsi: Berperan sebagai pembatas arus listrik (current limiter) agar arus yang mengalir dari pin digital Arduino ke LED tidak terlalu besar, sehingga mencegah LED terbakar (pada kondisi komponen fisik nyata).
Pemasangan: Dipasang secara seri pada jalur kaki Anoda atau Katoda LED.
Kabel Jumper (Jumper Wires Virtual)
Fungsi: Penghantar sinyal listrik yang menghubungkan antar-pin pada Arduino dengan komponen LED dan resistor.
Pewarnaan Kabel (Praktik Terbaik):
Kabel Merah: Penghantar sinyal ke LED Merah (Pin 8).
Kabel Kuning/Orange: Penghantar sinyal ke LED Kuning (Pin 9).
Kabel Hijau: Penghantar sinyal ke LED Hijau (Pin 10).
Kabel Hitam: Jalur kawat utama Ground (GND).
2.3 Persiapan Lembar Kerja Virtual
Sebelum mulai merangkai, pastikan siswa telah mengikuti langkah awal berikut:
Buka peramban (browser) dan akses situs
.wokwi.com Pada halaman utama, pilih Arduino Uno di bawah kategori Start New Project.
Kenali dua area utama pada layar Wokwi:
Area Kiri (Code Editor - sketch.ino): Lembar penulisan baris kode program C++.
Area Kanan (Canvas Diagram): Area visual untuk menambahkan dan merangkai komponen elektronik.
BAGIAN 3: SKEMA RANGKAIAN & PINOUT
3.1 Pemetaan Pin (Pin Mapping Table)
Sebelum melakukan pengabelan di canvas simulator Wokwi, perhatikan tabel pemetaan hubungan antara board Arduino Uno dan komponen indikator berikut:
| Nama Komponen | Kaki Komponen (Sisi Positif) | Komponen Pembatas | Pin Arduino Uno | Warna Kabel (Rekomendasi) |
| LED Merah | Kaki Anoda (Anode) | Resistor $220\ \Omega$ | Pin Digital 8 | Merah |
| LED Kuning | Kaki Anoda (Anode) | Resistor $220\ \Omega$ | Pin Digital 9 | Kuning / Oranye |
| LED Hijau | Kaki Anoda (Anode) | Resistor $220\ \Omega$ | Pin Digital 10 | Hijau |
| Semua LED | Kaki Katoda (Cathode) | Direct Ground | Pin GND | Hitam |
3.2 Panduan Langka-demi-Langkah Merangkai di Wokwi
Siswa diminta mengikuti 5 langkah presisi berikut untuk menyusun rangkaian pada canvas Wokwi:
Menambahkan Komponen ke Canvas:
Klik tombol
+(Add a new component) di bagian atas canvas Wokwi.Pilih LED sebanyak 3 buah.
Klik pada masing-masing LED untuk mengubah warnanya menjadi Red, Yellow, dan Green.
Tambahkan Resistor sebanyak 3 buah, lalu ubah nilainya menjadi 220 $\Omega$ pada menu konfigurasi resistor.
Pengabelan Jalur Ground (GND):
Tarik kabel dari Pin GND di board Arduino Uno menuju ke salah satu kaki resistor atau langsung ke terminal Katoda (C/GND) pada ketiga LED.
Hubungkan seluruh Katoda LED ke jalur GND ini secara paralel.
Ubah warna kabel menjadi Hitam (Black) untuk menandai jalur umum Ground.
Pengabelan LED Merah:
Hubungkan Pin Digital 8 Arduino ke salah satu kaki Resistor 1.
Hubungkan kaki Resistor 1 sisanya ke kaki Anoda (A) pada LED Merah.
Ubah warna kabel menjadi Merah.
Pengabelan LED Kuning:
Hubungkan Pin Digital 9 Arduino ke salah satu kaki Resistor 2.
Hubungkan kaki Resistor 2 sisanya ke kaki Anoda (A) pada LED Kuning.
Ubah warna kabel menjadi Kuning/Oranye.
Pengabelan LED Hijau:
Hubungkan Pin Digital 10 Arduino ke salah satu kaki Resistor 3.
Hubungkan kaki Resistor 3 sisanya ke kaki Anoda (A) pada LED Hijau.
Ubah warna kabel menjadi Hijau.
3.3 Prinsip Kerja Rangkaian Elektronika
Rangkaian Tertutup (Closed Circuit): Listrik hanya dapat mengalir dan menyalakan LED jika terdapat jalur tertutup lengkap dari Pin Output Digital ($\text{V}_{\text{CC}} = 5\text{V}$) menuju ke Pin Ground ($0\text{V}$).
Fungsi Resistor Pembatas: Resistor dipasang secara seri untuk menyerap sebagian tegangan dan membatasi besarnya arus listrik ($I = \frac{V}{R}$) yang melewati LED agar komponen tidak rusak (overcurrent).
Polaritas LED: LED bersifat dioda (hanya mengalirkan arus satu arah). Jika kaki Anoda dan Katoda terbalik, LED tidak akan menyala meskipun program sudah benar.
BAGIAN 4: STRUKTUR & LOGIKA PROGRAM (CODING)
4.1 Analisis Logika & Flowchart Siklus
Sistem traffic light bekerja dengan konsep State Machine (Perubahan Kondisi) yang berjalan secara sekuensial dan berulang (looping). Terdapat 3 tahapan (state) utama yang dijalankan oleh mikrokontroler:
State 1 (Stop/Berhenti): LED Merah menyala (
HIGH), LED Kuning & Hijau mati (LOW). Sistem menahan kondisi ini selama 3000 milidetik (3 detik).State 2 (Peringatan/Siap): LED Kuning menyala (
HIGH), LED Merah & Hijau mati (LOW). Sistem menahan kondisi ini selama 1000 milidetik (1 detik).State 3 (Jalan): LED Hijau menyala (
HIGH), LED Merah & Kuning mati (LOW). Sistem menahan kondisi ini selama 2000 milidetik (2 detik).
4.2 Dekonstruksi Fungsi dan Sintaks Utama
Dalam penulisan kode C++ Arduino untuk project ini, terdapat beberapa fungsi dasar yang wajib dipahami siswa:
Deklarasi Variabel (
int): Digunakan untuk menyimpan nomor pin yang terhubung ke LED. Penggunaan variabel memudahkan pembacaan kode daripada menggunakan angka pin secara langsung (hardcoding).Serial.begin(9600): Membuka jalur komunikasi serial antara board Arduino dan komputer (Serial Monitor) pada kecepatan baud rate 9600 bps.pinMode(pin, mode): Mengonfigurasi fungsi pin digital. Pada project ini, semua pin LED diatur sebagai OUTPUT karena memberikan tegangan ke luar.digitalWrite(pin, value): Mengirim sinyal logika digital ke pin.HIGH (Logika 1): Memberikan tegangan $5\text{V}$ (lampu menyala).
LOW (Logika 0): Memberikan tegangan $0\text{V}$ (lampu mati).
delay(milliseconds): Menghentikan atau memberi jeda eksekusi program selama durasi tertentu dalam satuan milidetik ($1\text{ detik} = 1000\text{ ms}$).Serial.println("teks"): Mengirimkan data teks ke Serial Monitor dan membuat baris baru untuk memudahkan proses pemantauan status (debugging).
4.3 Kode Program Lengkap (Source Code)
Silakan salin (copy-paste) kode program berikut ke dalam tab sketch.ino pada editor Wokwi:
// ====================================================
// PROJECT: SIMULASI LAMPU LALU LINTAS (TRAFFIC LIGHT)
// PLATFORM: ARDUINO UNO - WOKWI
// ====================================================
// 1. DEKLARASI VARIABEL PIN LED
int ledm = 8; // LED Merah terhubung ke Pin Digital 8
int ledk = 9; // LED Kuning terhubung ke Pin Digital 9
int ledh = 10; // LED Hijau terhubung ke Pin Digital 10
void setup() {
// 2. INISIALISASI PERANGKAT (HANYA DIEKSEKUSI 1 KALI SAAT BOOTING)
Serial.begin(9600); // Mengaktifkan komunikasi Serial Monitor
pinMode(ledm, OUTPUT); // Mengatur Pin 8 sebagai Output
pinMode(ledk, OUTPUT); // Mengatur Pin 9 sebagai Output
pinMode(ledh, OUTPUT); // Mengatur Pin 10 sebagai Output
}
void loop() {
// 3. EKSEKUSI PROGRAM UTAMA (BERJALAN BERULANG KALI SECARA TERSAMBUNG)
// --- FASE 1: LAMPU MERAH MENYALA (BERHENTI) ---
digitalWrite(ledm, HIGH); // Nyalakan LED Merah
digitalWrite(ledk, LOW); // Matikan LED Kuning
digitalWrite(ledh, LOW); // Matikan LED Hijau
Serial.println("Merah Menyala"); // Kirim status ke Serial Monitor
delay(3000); // Tahan kondisi selama 3 detik (3000 ms)
// --- FASE 2: LAMPU KUNING MENYALA (HATI-HATI / SIAP) ---
digitalWrite(ledm, LOW); // Matikan LED Merah
digitalWrite(ledk, HIGH); // Nyalakan LED Kuning
digitalWrite(ledh, LOW); // Matikan LED Hijau
Serial.println("Kuning Menyala"); // Kirim status ke Serial Monitor
delay(1000); // Tahan kondisi selama 1 detik (1000 ms)
// --- FASE 3: LAMPU HIJAU MENYALA (JALAN) ---
Serial.println("Hijau Menyala"); // Kirim status ke Serial Monitor
digitalWrite(ledm, LOW); // Matikan LED Merah
digitalWrite(ledk, LOW); // Matikan LED Kuning
digitalWrite(ledh, HIGH); // Nyalakan LED Hijau
delay(2000); // Tahan kondisi selama 2 detik (2000 ms)
}
4.4 Alur Eksekusi Program
Saat simulasi dimulai, fungsi
setup()dijalankan terlebih dahulu untuk mendaftarkan Pin 8, 9, dan 10 sebagai jalurnya sinyal keluar (output).Selanjutnya, program berpindah ke fungsi
loop()dan mulai menyalakan LED Merah selama 3 detik.Setelah 3 detik berlalu, program mematikan LED Merah dan menyalakan LED Kuning selama 1 detik.
Setelah 1 detik, program mematikan LED Kuning dan menyalakan LED Hijau selama 2 detik.
Setelah mencapai batas akhir fungsi
loop(), program secara otomatis akan melompat kembali ke baris pertama dalamloop()sehingga siklus kembali ke LED Merah secara terus-menerus.
BAGIAN 5: PENGUJIANKAN & TROUBLESHOOTING
5.1 Langkah-Langkah Pengujian Simulasi
Setelah rangkaian visual terpasang dan kode program selesai diketik di Wokwi, lakukan prosedur pengujian berikut:
Memulai Simulasi:
Klik tombol Play (Simulate) berwarna hijau yang terletak di sudut atas canvas Wokwi.
Amati siklus nyala LED pada canvas secara seksama.
Membuka Serial Monitor:
Klik tab Serial Monitor di bagian bawah area editor kode.
Pastikan pesan indikator ("Merah Menyala", "Kuning Menyala", "Hijau Menyala") muncul secara berurutan sesuai dengan lampu LED yang sedang aktif.
Verifikasi Pewaktu (Timing Validation):
Perhatikan kalkulator waktu simulasi (Simulation Time) di Wokwi.
Pastikan durasi nyala Merah berjalan selama 3 detik, Kuning selama 1 detik, dan Hijau selama 2 detik sebelum siklus berulang.
5.2 Panduan Identifikasi Masalah & Troubleshooting
Jika simulasi tidak berjalan sesuai harapan, gunakan tabel panduan penanganan masalah berikut:
| Gejala Masalah | Kemungkinan Penyebab | Langkah Solusi / Penanganan |
| Lampu LED tidak menyala sama sekali | • Polaritas LED terbalik. • Jalur GND tidak terhubung. • Syntax error pada kode. | • Pastikan Anoda (kaki melengkung) terhubung ke Pin Digital dan Katoda ke GND. • Periksa kembali sambungan kabel hitam ke pin GND Arduino. • Cek apakah ada pesan error berwarna merah di bagian bawah editor. |
| Urutan lampu menyala acak / tidak sesuai | Pin digital tertukar saat pengabelan. | Periksa kembali tabel pinout. Pastikan Pin 8 ke LED Merah, Pin 9 ke LED Kuning, dan Pin 10 ke LED Hijau. |
| Serial Monitor tidak menampilkan teks | Perintah Serial.begin(9600) lupa dimasukkan di setup(). | Tambahkan baris Serial.begin(9600); di dalam fungsi void setup(). |
| Error "expected ';' before..." saat Run | Terdapat kekurangan tanda titik koma (;) di akhir baris kode. | Periksa baris kode yang ditunjuk oleh sistem, lalu tambahkan titik koma (;) di akhir instruksi. |
| Lampu menyala terlalu cepat / lambat | Nilai parameter delay() tidak tepat. | Periksa angka di dalam kurung delay(). Ingat bahwa parameternya menggunakan satuan milidetik ($1000 = 1\text{ detik}$). |
5.3 Tugas Eksplorasi & Tantangan Pengayaan Siswa
Untuk memperdalam pemahaman logika pemrograman, instruksikan siswa untuk mencoba tantangan modifikasi berikut:
Tantangan 1 (Penyesuaian Waktu Realistis): Ubah nilai delay agar menyerupai lampu lalu lintas jalan raya nyata: LED Merah menyala selama 5 detik ($5000\text{ ms}$), LED Kuning 2 detik ($2000\text{ ms}$), dan LED Hijau 4 detik ($4000\text{ ms}$).
Tantangan 2 (Mode Mode Malam / Mode Hati-Hati): Buatlah salinan program baru di mana hanya LED Kuning yang berkedip menyala-mati setiap 1 detik secara terus-menerus (simulasi mode lalu lintas malam hari).
Tantangan 3 (Simulasi Penyeberang Jalan / Pedestrian): Tambahkan 1 buah Push Button (Tombol) dan 1 LED Biru/Buzzer. Jika tombol ditekan, siklus lampu lalu lintas langsung berpindah ke LED Merah untuk memberi jalan bagi penyeberang.

Post a Comment