Anda di halaman 1dari 7

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA

LAB SHEET Praktik Mikrokontroler


LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 1 dari 7

1. Kompetensi
Mahasiswa mampu menjelaskan pemrograman percabangan dan perulangan pada program
mikrokontroler Arduino
2. Sub Kompetensi
 Dapat menerapkan pemrograman if dan if-else
 Dapat menerapkan pemrograman while, for dan logika
3. Dasar Teori
Struktur kontrol sering dipakai dalam pemrograman untuk mengatur fungsi input-output atau
memanipulasi data. Terdapat beberapa struktur kontrol yang dipakai dalam pemrograman Arduino
yaitu percabangan dan perulangan. Pada kegiatan pembelajaran ini, kita akan mempelajari struktur
kontrol percabangan if dan if – else serta perulangan while dan for, dan pemrograman logika.
Untuk lebih mempermudah pemahaman digunakan nyala LED sebagai contoh aplikasi sederhana
percabangan, perulangan dan logika.

A. IF
Perintah “if” digunakan untuk menyeleksi suatu kondisi tunggal. Bila proses yang
diseleksi terpenuhi atau bernilai benar, maka pernyataan yang ada di dalam blok “if” akan
diproses dan dikerjakan, dan jika tidak maka program tidak menghasilkan apa-apa. Cara penulisan
programnya adalah:

if (syarat percabangan)
{
// Aksi
}

Contoh program yang menggunakan struktut kontrol if :


const int pinLED = 8; // Pin 8 untuk LED
void setup() {
pinMode(pinLED, OUTPUT); // pin LED sebagai output
}
int timeDelay = 1000; // awal time delay 1000 | 1 detik
void loop() {
timeDelay = timeDelay - 100; // Setiap looping, nilai timeDelay dikurangi 100
/* Jika timeDelay bernilai 0 atau negatif maka nilai timeDelay direset ke 1000 */
if(timeDelay <= 0){
timeDelay = 1000;
}
digitalWrite(pinLED, HIGH); //Nyalakan dan matikan LED selama timeDelay
delay(timeDelay);
digitalWrite(pinLED, LOW);
delay(timeDelay);
}

Ketika awal dinyalakan, maka timeDelay adalah 1000. Nilai tersebut diinisialisasi pada baris 14.
Baris ini tidak dijadikan konstanta (const) sebagaimana pinLED karena nilai timeDelay akan diubah-
ubah.

Setelah masuk ke bagian utama aplikasi, pada baris 18 nilai timeDelay dikurangi 100.

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 2 dari 7

Sehingga timeDelay pertama yang digunakan untuk menyalakan dan mematikan LED adalah 900.
Pada perulangan selanjutnya, timeDelay kembali dikurangi 100, sehingga perulangan ke dua
menggunakan timeDelay 800 (lebih singkat dari timeDelay yang awal), begitu seterusnya hingga pada
timeDelay 100.
Pada waktu melewati timeDelay 100, ketika dikurangi dengan 100, maka timeDelay bernilai 0.
Kondisi ini cocok dengan baris ke 23,

B. if-else
Pada dasarnya IF-ELSE merupakan pengembangan dari IF. ELSE berarti kondisi yang tidak sesuai
dengan kondisi dalam IF. Dengan kata lain, ELSE artinya “jika tidak”. Coba perhatikan kedua
pernyataan berikut:

Pada baris 1 sampai 5, maka Main akan terus dieksekusi. Jika sekarang sama
dengan jam 10, maka yang dilakukan adalah Main sambil Makan. Jadi kedua
kegiatan atau statemen akan dieksekusi.
Berbeda dengan baris 8 sampai 12, jika jam 10 Makan, jika tidak jam 10,
Main. Begitulah logika IF-ELSE.

Contoh program yang menggunakan struktut kontrol if -else:


const int pinLED = 8; // Pin 8 untuk LED
void setup() {
pinMode(pinLED, OUTPUT); // pin LED sebagai output
}
int timeDelay = 1000; // awal time delay 1000 | 1 detik
void loop() {
/* Jika timeDelay bernilai lebih kecil sama dengan 0 maka LED akan diam selama 3 detik lalu nilai timeDelay direset ke 1000 */
if(timeDelay <= 100){
delay(3000);
timeDelay = 1000;
}else{
timeDelay = timeDelay - 100; // nilai timeDelay dikurangi 100 jika time delay > 100
}
digitalWrite(pinLED, HIGH); //Nyalakan dan matikan LED selama timeDelay
delay(timeDelay);
digitalWrite(pinLED, LOW);
delay(timeDelay);
}

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 3 dari 7

C. While
Perintah WHILE merupakan perintah untuk melakukan perulangan berdasarkan suatu kondisi,
jadi banyaknya perulangan tidak bisa ditentukan dengan pasti. Dalam WHILE seakan ada pengecekan
kondisi seperti perintah IF untuk melakukan perulangan. Bentuk umum dari perintah WHILE yaitu :

Contoh pemrograman dengan struktur kontrol WHILE:


const int pinLED = 8; // Pin 8 untuk LED
void setup() {
pinMode(pinLED, OUTPUT); // pin LED sebagai output
}
int timeDelay = 1000; // awal time delay 1000 | 1 detik
void loop() {
while(timeDelay > 0){ // selama nilai timeDelay > 0 eksekusi blok program ini
digitalWrite(pinLED, HIGH); // LED hidup mati dengan durasi 500 milisekon
delay(500);
digitalWrite(pinLED, LOW);
delay(500);
timeDelay = timeDelay - 100; // kurangi timeDelay dengan 100
}
while(timeDelay < 1000){ // setelah timeDelay dikurangi terus-menerus
// maka pada akhirnya akan bernilai minus atau < 0
// maka while di atas akan berhenti
// selama nilai timeDelay < 1000
// eksekusi blok program ini

digitalWrite(pinLED, HIGH); // LED hidup mati dengan durasi 100 milisekon


delay(100);
digitalWrite(pinLED, LOW);
delay(100);
timeDelay = timeDelay + 100; // tambahkan timeDelay dengan 100
}
}

D. For
Digunakan untuk mengulang-ulang kondisi didalam kurung kurawal selama kondisi
persyaratan terpenuhi. Biasanya dipakai untuk penambahan atau pengurangan yang berulang-ulang
selama kondisi/syarat perulangan terpenuhi.

for (inisialisasi kondisi awal; syarat perulangan; penambahan atau pengurangan)


{
//pernyataan (s);
}

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 4 dari 7

Berikut ini contoh program dengan For :


const int pinLED = 8; // Pin 8 untuk LED
void setup() {
pinMode(pinLED, OUTPUT); // pin LED sebagai output
}
int timeDelay = 3000; // awal time delay 3000 | 3 detik
void loop() {
for(int i=1; i<=10; i++){ // perulangan sebanyak 10 kali dari 1 hingga 10
digitalWrite(pinLED, HIGH); // LED hidup mati dengan durasi 500 milisekon
delay(500);
digitalWrite(pinLED, LOW);
delay(500);
}
delay(timeDelay); // diam selama 3 detik
}

E. True – False
Dalam bahasa pemrograman, kita nantinya akan mempelajari tentang perintah-perintah yang
berkaitan dengan kondisi (logika) True dan False. Secara teori, True berarti 1 dan False berarti 0.
Terkadang kondisi True atau False bisa terdiri dari beberapa kondisi. Misal, kita ingin
menentukan bilangan timeDelay sebagai angka positif tidak lebih dari 10. Maka kita tidak bisa
hanya menggunakan satu kondisi. Kita harus menggunakan 2 kondisi, yaitu timeDelay harus
lebih besar dari 0 DAN timeDelay lebih kecil dari 10.
Dalam logika, kita bisa menuliskannya dengan cara :

Ada beberapa operator yang bisa dipakai sebagai pelengkap jika kita menggunakan struktur
kontrol program percabangan , perulangan dan logika yaitu :

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 5 dari 7

4. Alat dan Instrument


- Arduino Uno buah
- Kabel USB 1 buah
- LED secukupnya
- Kabel jumper male – male secukupnya

5. Langkah Kerja
1. Buat koneksi LED dengan pin 8 Arduino sebagai berikut :

2. Ketik ulang program aplikasi IF di halaman dasar teori


3. Verifikasi dan Upload program ke Arduino
4. Amati pola nyala LED. LED akan menyala ..........................................
5. Ketik ulang program aplikasi IF-ELSE di halaman dasar teori
6. Verifikasi dan Upload program ke Arduino
7. Amati pola nyala LED. LED akan menyala ……………………………………….
8. Ketik ulang program aplikasi WHILE di halaman dasar teori
9. Verifikasi dan Upload program ke Arduino
Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 6 dari 7

10. Amati pola nyala LED. LED akan menyala ……………………………………….


11. Ketik ulang program aplikasi FOR di halaman dasar teori
12. Verifikasi dan Upload program ke Arduino
13. Amati pola nyala LED. LED akan menyala ……………………………………….
14. Buat rangkaian 4 buah LED seperti gambar berikut :

15. Ketikkan program berikut :


// Inisialisasi Pin LED
const int pinLED1 = 8;
const int pinLED2 = 9;
const int pinLED3 = 10;
const int pinLED4 = 11;
void setup() {
// pin LED sebagai output
pinMode(pinLED1, OUTPUT);
pinMode(pinLED2, OUTPUT);
pinMode(pinLED3, OUTPUT);
pinMode(pinLED4, OUTPUT);
}
void loop() {
for(int i=0; i<5; i++){ // perulangan sebanyak 5 kali dari i=0 hinga i=4 atau (i < 5)
if(i==1){
digitalWrite(pinLED1, HIGH); // jika i=1, hidupkan led 1, led yang lain mati
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
digitalWrite(pinLED4, LOW);
}else if(i==2){
digitalWrite(pinLED1, HIGH); // jika i=2, hidupkan led 1 & 2, led 3 & 4 mati
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, LOW);
digitalWrite(pinLED4, LOW);
}else if(i==3){
digitalWrite(pinLED1, HIGH); // jika i=3, hidupkan led 1, 2, & 3, led 4 mati
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, HIGH);
digitalWrite(pinLED4, LOW);
}else if(i==4){
digitalWrite(pinLED1, HIGH); // jika i=4, hidupkan semua led
digitalWrite(pinLED2, HIGH);
digitalWrite(pinLED3, HIGH);
digitalWrite(pinLED4, HIGH);
}else{
digitalWrite(pinLED1, LOW); // jika tidak, matikan semua led
digitalWrite(pinLED2, LOW);
digitalWrite(pinLED3, LOW);
digitalWrite(pinLED4, LOW);
}
// delai selama 5 detik
delay(500);
}

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Mikrokontroler
LS 2 : Program Percabangan dan
Semester 6 8 X 60 Menit
Perulangan
No. LST/EKO/EKO 215/01 Revisi : 01 Tgl : 2017 Hal 7 dari 7

}
16. Verifikasi dan upload program tersebut ke Arduino.
17. Amati pola nyala LED.
18. Ketikkan program berikut :
const int numLED = 4; // Inisialisasi Jumlah LED
const int pinLED[numLED] = {8,9,10,11}; // LED 1,2,3,&4 jadi 1 varibel dengaan alamat index 0,1,2,3
void setup() {
for(int i=0; i<4; i++){
pinMode(pinLED[i], OUTPUT); // Inisialisasi semua pin LED sebagai OUTPUT
}
}
void loop() {
for(int i=0; i<4; i++){
digitalWrite(pinLED[i], HIGH); // Hidupkan semua LED bertahap dg jeda 1 detik
delay(500);
}
for(int i=0; i<4; i++){
digitalWrite(pinLED[i], LOW); // Matika semua LED bertahap dg jeda 1 detik
delay(500);
}
}
19. Upload program tersebut ke Arduino
20. Amati pola nyala LED dan bandingkan dengan hasil eksekusi program di langkah ke 17.

Dibuat oleh : Dilarang memperbanyak sebagian atau seluruh isi dokumen Diperiksa oleh :
SGT tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta HSP

Anda mungkin juga menyukai