17.01.53.2013 SOAL : 1. Buat program untuk menyalakan 8 LED, dengan ketentuan sebagai berikut : A. Hanya 1 LED ‘ NYALA’ (LAINYA MATI) yang berurutan dari kiri ke kanan tanpa jeda dan sebaliknya secara terus menerus. B. Inversi 1 A ‘TANPA JEDA’. C. Hanya 2 LED ‘MATI’ (LAINYA NYALA’) yagn berurutan dari kiri ke kanan tanpa jeda dan sebaliknya secara terus menerus. D. Inversi dari 1c ‘TANDA JEDA’. E. Buat satu kode program untuk akse 1.a JIKA TOMBOL DITEKAN/ON, dan sebaliknya, JIKA TOMBOL DILEPAS/OFF, aksi 1,b. F. Buat satu kode program untuk akse 1.d JIKA TOMBOL DITEKAN/ON, dan sebaliknya, JIKA TOMBOL DILEPAS/OFF, aksi 1,c. G. Buat DANCING 8-LED bebas yagn full variant kreatif. JAWABAN : 1. Membuat kode program sesuai dengan ketentuan yaitu : a. 8 LED menyala 1 LED berurutan dari kiri ke kanan dan seterusnya Di kode program tersebut saya mendeklarasikan 8 buah LED sebagai dasar pin yang akan saya gunakan, lalu untuk menyalakan lampu secara berurutan saya menggunakan perulangan “FOR” dimana terdapat perbandingan antara variable A dan B agar dapat diberikan pengkondisian dimana ketika perulangan B tidak sama dengan hasil perulangan A maka LED akan menyala dan sebaliknya. Lalu untuk mengatur arah menyala LED itu sendiri saya mengaturnya dengan memberikan angka pertama pada LED paling kiri (angka paling besar) dan akan terus berkurang satu nilainya hingga mencapai yang terkecil maka arahnya pun akan ke kanan Untuk perulangan setelah LED menyala di bagian paling kanan saya menggunakan syntax yang hampir sama, bedanya untuk awalnya saya isikan angka awal LED yang paling kanan (angka yang terkecil) dan jumlahnya akan ditambah satu nilainya hingga ke angka yang tersebesar maka arahnya akan ke kiri. Variablenya sendiri harus berbeda dengan yang arah ke kanan karena program hanya bisa memasukan satu nilai ke variable tersebut jika variable sama maka data akan tertumpuk, oleh karena itu saya menggunakan variable C dan D. Dimasukkan kedalam void loop maka program akan dibaca perulangan sampai di hentikan secara manual. Untuk penjelasan logika pembacaan perulangan FOR akan saya jelaskan di video.
b. Inversi dari versi a (8 LED menyala semua tetapi mati 1 berurutan)
Program diatas hampir sama dengan program 1.A dimana hanya 1 LED saja yang bergerak dan berbeda dari 7 LED lainnya, maka dari itu yang saya rubah hanya kondisi dimana jika di program 1.A posisi LED LOW maka di program 1.B posisi LED HIGH dan sebaliknya. Untuk perulangan sendiri tidak ada yang berubah. Maka cara membacanya menjadi ketika nilai B tidak sama dengan nilai A maka LED posisi LOW sedangkan lainnya akan berada pada posisi HIGH. Untuk penjelasan lebih lanjut akan saya jelaskan pada video. c. 8 LED dimana hanya 2 LED mati yang bergerak sedangkan 6 LED lainnya posisi menyala. Pada program 1.C memodifikasi program dari 1.B dimana yang bergerak adalah LED yang mati sedangkan lainya menyala, yang menantang disini adalah bagaimana kita bisa memasukan LED yang ikut mati disebelah LED yang mati pada program 1.B. Untuk kit akita membutuhkan pengkondisian tambahan dimana untuk yang LED pertama nilai B tidak sama dengan A lalu dilanjut dengan jika nilai B kurang dari nilai A maka LED di angka tersebut ikut mati, sehingga menghasilnya 2 LED bersebelahan akan mati dan yang lainya hidup. Sedangkan untuk arahnya sendiri masih sama menggunakan teori pada program 1.A dan 1.B jika ke kanan maka nilai dari variable A dan B dikurangi satu per satu dan pengkondisian B lebih kecil dari A. Sedangkan untuk arah ke kiri nilai A dan B ditambah satu per satu dan untuk tambahan LED menggunakan pengkondisian B lebih besar dari A, tetapi karena variable tidak boleh sama maka saya ganti dengan variable C dan D.
d. Inversi dari versi c (8 LED dengan ketentuan 2 LED menyala bergerak
dan lainya mati) Untuk program versi D karena inversi dari versi C maka logikanya hampir sama dengan versi B dimana hanya inversi dari versi A. Maka yang saya lakukan sama seperti versi B yaitu mengganti syntax dari LOW ke HIGH dan sebaliknya. Maka akan menghasilkan 2 LED yang menyala bergerak dan 6 LED lainya dalam posisi mati. e. Program dengan tombol dimana jika HIGH menjalankan program A dan jika LOW menjalankan program B Untuk program E yang berebeda adalah penggabungan antara program A dan program B dimana pemicu program yang dijalankan apakah A atau B adalah sebuah tombol dimana ketentuannya jika HIGH maka program A dijalankan dan jika LOW program B dijalankan. Maka yang harus dilakukan adalah menginialisasi dulu tombol tersebut berada di pin nomer berapa lalu nilai awal tombol tersebut, tidak lupa men setup variable tombol tersebut ke mode input. Setelah kita buat fungsi jika tombol tersebut dalam keadaan HIGH kita masukan syntax dari program A dan jika tombol tersebut dalam keadaan LOW maka kita masukan syntax dari program B. Program akan membaca inputan dari tombol dan akan mengeksekusi sesuai dengan program yang sudah kita buat. Untuk pergantian dari HIGH dan LOW akan ada waktu tunggu dimana jika posisi awal pada HIGH ( menjalankan program A) dan ditengah proses mengganti tombol pada posisi LOW (menajalankan program B) maka sebelum program mengganti program. Program akan menunggu sampai perulangan program A selesai terlebih dahulu dan begitu juga sebaliknya dari B ke A. f. Program dengan tombol dimana jika HIGH menjalankan program D dan jika LOW menjalankan program C Untuk program F sama dengan program E yaitu menggabungkan program D dan C dengan tombol dimana ketentuannya jika tombol posisi HIGH akan menjalakan program D dan jika tombol posisi LOW akan menjalankan program C. g. Membuat program dancing LED dengan menggunakan 8 LED sesuai dengan kreasi masing- masing. Untuk program dancing 8 Led yang saya buat konsepnya 8 LED tersebut di bagi menjadi 2 segment dimana 1 segement di isi dengan 4 LED. Untuk segment 1 berada di sebelah kiri dan segment 2 berada di sebelah kanan. Pada segement 2 LED akan menyala bergantian setelah satu putaran maka LED pada segment 1 akan bergeser. Untuk hasil dan penjelasan lebih lanjut akan saya tampilkan pada video.