Monday, September 1, 2025
📘 Dasar Algoritma Pemrograman
📘 Dasar Algoritma Pemrograman
Algoritma adalah urutan langkah logis dan sistematis untuk menyelesaikan suatu masalah. Dalam dunia pemrograman, algoritma menjadi pondasi utama sebelum kita menuliskan kode dalam bahasa pemrograman tertentu (misalnya C, Python, atau Java).
🔹 1. Pengertian Algoritma
Secara sederhana, algoritma bisa diartikan sebagai "langkah-langkah terstruktur yang dibuat untuk memecahkan masalah".
Contoh Algoritma Sehari-hari: Membuat mie instan:
- Didihkan air
- Masukkan mie
- Tunggu hingga matang
- Tambahkan bumbu
- Sajikan mie
🔹 2. Ciri-Ciri Algoritma
- Jelas & terdefinisi
- Punya awal dan akhir
- Pasti & logis
- Efisien
- Dapat dieksekusi
🔹 3. Cara Menyajikan Algoritma
Ada 3 cara umum untuk menuliskan algoritma:
- Deskriptif (narasi)
Contoh: "Masukkan nilai A dan B, jumlahkan, lalu tampilkan hasil." - Pseudocode (kode semu)
Input A, B Hasil ← A + B Output Hasil
- Flowchart (diagram alir)
🔵 Start → ⬜ Input A,B → ⬜ Proses A+B → ⬜ Output → 🔵 End
🔹 4. Struktur Dasar Algoritma
✅ a. Sequential (berurutan)
Input A, B Hasil ← A + B Output Hasil
✅ b. Selection (percabangan)
Input Nilai Jika Nilai ≥ 75 → Cetak "Lulus" Jika Tidak → Cetak "Tidak Lulus"
✅ c. Iteration (perulangan)
i = 1 Selama i ≤ 10 → Cetak i → i++
🔹 5. Contoh Algoritma Sederhana
Menentukan bilangan ganjil/genap:
Input angka Jika angka % 2 = 0 → Output "Genap" Jika tidak → Output "Ganjil"
Menampilkan deret angka 1–10:
i = 1 Selama i ≤ 10 → Cetak i → i++
🔹 6. Tahapan Membuat Algoritma
- Analisis masalah
- Rancang algoritma (langkah-langkah)
- Buat flowchart / pseudocode
- Implementasi ke bahasa pemrograman
- Uji & perbaiki (debugging)
🔹 7. Pentingnya Algoritma
- Membantu berpikir logis & sistematis
- Mempermudah belajar bahasa pemrograman
- Dasar dalam coding, IoT, AI, dan software development
💡 Kesimpulan
Algoritma adalah pondasi dalam belajar pemrograman. Dengan memahami cara menyusun langkah-langkah logis, siswa akan lebih mudah menerjemahkan ide ke dalam bahasa pemrograman seperti C, Python, atau Java.
Thursday, August 7, 2025
Soal Latihan Arduino — Lampu Lalu Lintas 2 Arah
(Soal cerita, panduan pengerjaan di Wokwi, kode Arduino, dan tugas lanjutan — langsung simulasikan)
📝 Soal Cerita
Pak Rudi adalah petugas lalu lintas di kota kecil. Ia diminta membuat sistem lampu lalu lintas sederhana untuk sebuah persimpangan yang hanya memiliki dua arah (Utara–Selatan dan Timur–Barat). Setiap arah memiliki tiga lampu: merah, kuning, hijau. Sistem harus memastikan tidak ada dua arah yang berwarna hijau bersamaan.
Syarat sistem:
- Urutan untuk setiap arah: Hijau → Kuning → Merah.
- Saat Utara–Selatan berwarna hijau, Timur–Barat harus merah, dan sebaliknya.
- Durasi yang digunakan (default): Hijau = 5 detik, Kuning = 2 detik, Merah = sesuai siklus.
Tugas Anda: Rangkai sirkuit di breadboard atau simulasikan di Wokwi, tulis program Arduino agar berjalan sesuai spesifikasi, dan kumpulkan hasil screenshot simulasi beserta penjelasan (10–15 baris).
📦 Komponen
- 1 × Arduino Uno (atau kompatibel)
- 6 × LED (2 merah, 2 kuning, 2 hijau)
- 6 × Resistor 220Ω
- Breadboard dan kabel jumper
- USB kabel (untuk daya) atau power 5V
🔌 Skema Singkat (teks)
Hijau → Pin 2 (via resistor)
Kuning → Pin 3 (via resistor)
Merah → Pin 4 (via resistor)
Timur–Barat:
Hijau → Pin 5 (via resistor)
Kuning → Pin 6 (via resistor)
Merah → Pin 7 (via resistor)
Semua katoda LED → GND Arduino.
(Untuk gambar wiring: rekomendasi upload PNG/SVG ke postingan atau lampirkan foto breadboard hasil siswa.)
💻 Kode Arduino (Copy → Paste ke Wokwi / Arduino IDE)
// Lampu Lalu Lintas 2 Arah (Utara-Selatan & Timur-Barat) // Pin assignment int US_hijau = 2; int US_kuning = 3; int US_merah = 4; int TB_hijau = 5; int TB_kuning = 6; int TB_merah = 7; // Durasi (ms) unsigned long t_hijau = 5000; // 5 detik unsigned long t_kuning = 2000; // 2 detik void setup() { pinMode(US_hijau, OUTPUT); pinMode(US_kuning, OUTPUT); pinMode(US_merah, OUTPUT); pinMode(TB_hijau, OUTPUT); pinMode(TB_kuning, OUTPUT); pinMode(TB_merah, OUTPUT); // Awal: Utara-Selatan Hijau, Timur-Barat Merah digitalWrite(US_hijau, HIGH); digitalWrite(US_kuning, LOW); digitalWrite(US_merah, LOW); digitalWrite(TB_hijau, LOW); digitalWrite(TB_kuning, LOW); digitalWrite(TB_merah, HIGH); } void loop() { // Arah 1: Utara-Selatan Hijau delay(t_hijau); // Arah 1: Kuning digitalWrite(US_hijau, LOW); digitalWrite(US_kuning, HIGH); delay(t_kuning); digitalWrite(US_kuning, LOW); // Arah 1: Merah, Arah 2: Hijau digitalWrite(US_merah, HIGH); digitalWrite(TB_merah, LOW); digitalWrite(TB_hijau, HIGH); delay(t_hijau); // Arah 2: Kuning digitalWrite(TB_hijau, LOW); digitalWrite(TB_kuning, HIGH); delay(t_kuning); digitalWrite(TB_kuning, LOW); // Reset: Arah 2 Merah, Arah 1 Hijau (loop akan lanjut) digitalWrite(TB_merah, HIGH); digitalWrite(US_merah, LOW); digitalWrite(US_hijau, HIGH); }
Catatan: jika ingin memperpendek waktu (mis. untuk demo), ubah t_hijau
dan t_kuning
(nilai dalam milidetik).
🧭 Langkah Pengerjaan di Wokwi (Langkah demi langkah)
- Buka wokwi.com → klik New Project → Arduino Uno.
- Tambahkan 6 LED dan 6 resistor dari panel komponen (drag & drop).
- Hubungkan LED sesuai daftar pin (pin → resistor → anoda LED → katoda ke GND).
- Ganti isi file sketch.ino di Wokwi dengan kode Arduino pada bagian Kode Arduino di atas.
- Klik Start Simulation → amati: Utara–Selatan hijau (5s) → kuning (2s) → merah & Timur–Barat hijau (5s) → ...
- Ambil screenshot simulasi dan sertakan keterangan hasil pengamatan (waktu, apa yang berubah, kendala jika ada).
🔎 Tugas Lanjutan (Soal HOTS)
- Modifikasi program agar ada fase all-red selama 1 detik (semua arah merah) sebagai transisi aman saat pergantian arah.
- Tambahkan tombol (push-button) yang bila ditekan memperpendek durasi hijau menjadi 3 detik (untuk kondisi low-traffic). Jelaskan logikanya.
- Buat versi simulasi yang menampilkan countdown (angka mundur) di konsol serial untuk setiap fase (hint: gunakan
Serial.begin()
dan tampilkan sisa detik).
(Tugas lanjutan dinilai: logika program 40%, implementasi di Wokwi 40%, dokumentasi & penjelasan 20%)
LATIHAN 2 LED LAMPU (ARDUINO)
Soal Praktik Arduino — Menyalakan 2 LED
Soal cerita + panduan pengerjaan di Wokwi. Siswa bisa langsung simulasikan di Wokwi atau upload ke Arduino.
📝 Soal Cerita
Pak Rudi adalah teknisi di bengkel robotika sekolah. Ia diminta membuat sistem sederhana untuk menyalakan dua lampu LED:
- LED Merah sebagai indikator peringatan.
- LED Hijau sebagai indikator siap.
Syarat sistem:
- LED Merah menyala selama 2 detik.
- Setelah LED Merah padam → LED Hijau menyala selama 3 detik.
- Proses berulang terus-menerus.
Tugas Anda: Rangkai sirkuit, tulis program Arduino sesuai spesifikasi, jalankan simulasi di Wokwi, dan kumpulkan screenshot hasil uji.
📦 Komponen
- 1 × Arduino Uno (atau board kompatibel)
- 1 × LED Merah
- 1 × LED Hijau
- 2 × Resistor 220Ω
- Breadboard dan kabel jumper
🔌 Skema Singkat
Pin 3 → Resistor 220Ω → Anoda LED Hijau → Katoda → GND
💻 Kode Arduino (Copy → Paste ke Wokwi / Arduino IDE)
// Menyalakan LED Merah lalu LED Hijau bergantian
int ledMerah = 2; // Pin LED Merah
int ledHijau = 3; // Pin LED Hijau
void setup() {
pinMode(ledMerah, OUTPUT);
pinMode(ledHijau, OUTPUT);
}
void loop() {
// LED Merah menyala 2 detik
digitalWrite(ledMerah, HIGH);
delay(2000);
digitalWrite(ledMerah, LOW);
// LED Hijau menyala 3 detik
digitalWrite(ledHijau, HIGH);
delay(3000);
digitalWrite(ledHijau, LOW);
}
🧭 Langkah Pengerjaan di Wokwi (Langkah demi langkah)
- Buka wokwi.com → klik New Project → Arduino Uno.
- Tambahkan 2 × LED dan 2 × resistor pada canvas (drag dari library).
- Hubungkan: Pin 2 → resistor → anoda LED Merah → katoda → GND. Pin 3 → resistor → anoda LED Hijau → katoda → GND.
- Klik file sketch di Wokwi lalu ganti isi dengan kode di atas.
- Tekan tombol Start Simulation di Wokwi dan amati: LED Merah 2 detik → LED Hijau 3 detik → berulang.
- Ambil screenshot hasil simulasi dan kumpulkan sesuai instruksi guru.
🛠️ Catatan Troubleshoot
- Jika LED tidak menyala, periksa polaritas (anoda: panjang, katoda: pendek) dan sambungan GND.
- Pastikan resistor tidak terhubung ke ground langsung tanpa melewati LED (urutan harus pin → resistor → LED → GND).
- Jika LED terlalu redup, cek resistor (gunakan 220Ω bukan 2.2kΩ).
Sunday, July 20, 2025
Modul 26: Presentasi Proyek IoT dan Dokumentasi Akhir
Modul terakhir ini bertujuan untuk melatih siswa menyampaikan hasil proyek IoT mereka secara sistematis dan komunikatif, sekaligus menyusun laporan dokumentasi yang baik dan sesuai standar. Hal ini penting agar karya siswa dapat dinilai, direproduksi, dan dikembangkan lebih lanjut.
1. Tujuan Pembelajaran
- Melatih siswa menyampaikan ide dan hasil proyek dengan percaya diri.
- Melatih penyusunan dokumentasi teknis yang rapi dan lengkap.
- Melatih kemampuan refleksi dan evaluasi diri terhadap hasil karya.
2. Komponen Presentasi Proyek
Siswa diminta mempresentasikan proyek IoT masing-masing secara lisan dan visual (dapat berupa slide atau video). Materi yang harus disampaikan:- Judul Proyek dan deskripsi singkat.
- Tujuan dan Latar Belakang.
- Alat dan Bahan yang digunakan.
- Diagram Blok Sistem / Alur kerja sistem.
- Penjelasan Program singkat (flowchart / logika).
- Demo / Simulasi proyek secara langsung atau lewat video.
- Hasil Pengujian dan analisis performa.
- Refleksi: apa tantangan dan solusi saat membuat proyek?
3. Panduan Pembuatan Laporan Proyek IoT
Berikut format standar laporan akhir proyek siswa:No | Bagian Laporan | Isi |
---|---|---|
1 | Cover | Judul, nama siswa, kelas, sekolah, dan tahun ajaran |
2 | Kata Pengantar | Ucapan terima kasih dan maksud penulisan |
3 | Daftar Isi | Daftar bab, subbab, dan halaman |
4 | Bab I - Pendahuluan | Latar belakang, tujuan, dan manfaat proyek |
5 | Bab II - Tinjauan Pustaka | Dasar teori komponen/sensor dan konsep IoT yang digunakan |
6 | Bab III - Perancangan Sistem | Diagram sistem, alat dan bahan, desain program |
7 | Bab IV - Implementasi dan Uji Coba | Langkah kerja, hasil uji coba, dan analisis |
8 | Bab V - Penutup | Kesimpulan dan saran |
9 | Daftar Pustaka | Sumber referensi |
10 | Lampiran | Gambar rangkaian, listing program, dokumentasi foto |
4. Penilaian Presentasi dan Laporan
Evaluasi dilakukan berdasarkan:A. Kriteria Presentasi
- Kejelasan penyampaian materi
- Struktur presentasi logis
- Demonstrasi proyek berjalan
- Waktu presentasi sesuai (maks. 10 menit)
B. Kriteria Laporan
- Kelengkapan isi laporan
- Kerapian dan penggunaan bahasa
- Kesesuaian dengan format
- Kemampuan menyusun dokumentasi teknis
5. Refleksi Siswa
Setelah presentasi dan penyusunan laporan, siswa dapat merefleksikan:
- Pengetahuan baru apa yang paling berkesan dari proyek ini?
- Bagaimana pengalaman kerja tim / individu selama proses?
- Apa yang bisa ditingkatkan dari proyek jika diberi kesempatan kedua?
6. Penutup
Presentasi dan dokumentasi akhir adalah tahapan penting untuk membuktikan bahwa proyek IoT tidak hanya berhasil dijalankan, tetapi juga dapat dipahami dan dijelaskan kepada orang lain. Ini adalah kemampuan penting di dunia industri dan wirausaha berbasis teknologi.
Modul 6: Input & Output Dasar Arduino (Tombol dan LED)
🎯 Tujuan Pembelajaran
- Siswa memahami konsep input dan output digital pada Arduino.
- Siswa mampu membuat rangkaian sederhana menggunakan tombol (push button) dan LED.
- Siswa dapat menulis program Arduino yang merespon input dari tombol untuk mengontrol LED.
🔌 Konsep Dasar Input & Output
- Input: Data yang diterima dari luar ke Arduino. Contoh: tombol, sensor, potensiometer.
- Output: Respons dari Arduino ke perangkat lain. Contoh: LED, motor, buzzer.
📦 Komponen yang Digunakan
- 1 x Arduino Uno (atau sejenisnya)
- 1 x LED
- 1 x Resistor 220 ohm
- 1 x Push button
- 1 x Resistor 10k ohm (pull-down)
- Beberapa kabel jumper
- Breadboard
⚙️ Rangkaian
Hubungkan tombol ke pin 2 dan LED ke pin 13 Arduino. Gunakan resistor pull-down untuk tombol agar pembacaan stabil.
💻 Contoh Program Arduino
// Program menyalakan LED saat tombol ditekan
void setup() {
pinMode(2, INPUT); // Tombol di pin 2 sebagai input
pinMode(13, OUTPUT); // LED di pin 13 sebagai output
}
void loop() {
int tombol = digitalRead(2); // Membaca status tombol
if (tombol == HIGH) {
digitalWrite(13, HIGH); // Nyalakan LED jika tombol ditekan
} else {
digitalWrite(13, LOW); // Matikan LED jika tombol tidak ditekan
}
}
🧠 Penjelasan Program
digitalRead(2)
membaca apakah tombol ditekan (HIGH) atau tidak (LOW).- Jika ditekan, LED menyala; jika tidak, LED mati.
🎯 Aktivitas Siswa
- Buat rangkaian seperti pada gambar.
- Upload program ke board Arduino Anda.
- Tekan tombol dan amati apakah LED menyala.
📸 Dokumentasi
- Ambil foto saat LED menyala dan saat tidak menyala.
- Upload ke folder tugas sesuai petunjuk guru.
🔁 Eksplorasi Lanjut
- Ganti LED dengan buzzer dan perhatikan suaranya.
- Tambahkan delay untuk membuat LED berkedip setelah tombol ditekan.
💬 Refleksi
- Apa yang terjadi jika resistor pull-down tidak digunakan?
- Bagaimana jika tombol ditekan terus-menerus, apa yang terjadi pada LED?
Modul 5: Struktur Dasar Pemrograman Arduino – setup() dan loop()
🎯 Tujuan Pembelajaran
- Siswa memahami dua bagian utama dalam pemrograman Arduino:
setup()
danloop()
. - Siswa dapat menuliskan dan menjalankan program sederhana dengan struktur yang benar.
🧠 Pengantar Konsep
Dalam Arduino, semua program menggunakan dua fungsi utama: setup()
dan loop()
.
setup()
: Dijalankan sekali saat board pertama kali menyala. Di sinilah kita menyiapkan konfigurasi awal seperti pin input/output.loop()
: Dijalankan berulang-ulang (terus-menerus) selama board hidup. Di sinilah logika utama program berjalan.
📋 Contoh Program Dasar
// Program menyalakan LED di pin 13
void setup() {
pinMode(13, OUTPUT); // Mengatur pin 13 sebagai output
}
void loop() {
digitalWrite(13, HIGH); // Menyalakan LED
delay(1000); // Menunggu 1 detik
digitalWrite(13, LOW); // Mematikan LED
delay(1000); // Menunggu 1 detik
}
🔍 Penjelasan Kode
pinMode(13, OUTPUT);
– Mengatur pin 13 agar bisa mengirim sinyal listrik (output).digitalWrite(13, HIGH);
– Mengirim sinyal listrik ke pin 13 (LED menyala).delay(1000);
– Menunggu selama 1000 milidetik (1 detik).
🎓 Aktivitas Siswa
- Buka Arduino IDE.
- Salin kode program di atas ke editor.
- Pilih board dan port sesuai perangkat Anda.
- Klik “Upload” dan amati LED pada board menyala dan mati tiap 1 detik.
📸 Dokumentasi
Ambil foto atau video saat LED menyala dan mati secara berkala. Unggah sebagai dokumentasi tugas.
📌 Catatan Tambahan
- Jika LED tidak menyala, cek koneksi dan pastikan port COM sudah sesuai.
- Pin 13 adalah pin bawaan yang biasanya sudah terhubung ke LED onboard.
💬 Refleksi
- Apa perbedaan utama antara
setup()
danloop()
? - Bagaimana struktur ini memengaruhi logika program Arduino?
flowchat
Mulai Input Bilangan Bilangan % 2 = 0 ? Genap Ganjil S...
-
Soal Praktik Arduino — Menyalakan 2 LED Soal cerita + panduan pengerjaan di Wokwi. Siswa bisa langsung simulasikan di Wokwi a...
-
Modul terakhir ini bertujuan untuk melatih siswa menyampaikan hasil proyek IoT mereka secara sistematis dan komunikatif, sekaligus menyus...
-
🎯 Tujuan Pembelajaran Siswa memahami dua bagian utama dalam pemrograman Arduino: setup() dan loop() . Siswa dapat menuliskan dan me...