Anda di halaman 1dari 51

JURNAL PRAKTIKUM

INTERNET OF THINGS

MODUL 2
Fungsi Output Pada Arduino

Disusun Oleh:
Kelompok 01
1. Ahmad Mumtaza (21070121140046)
2. Almira Oktapazia (21070121140146)
3. Indah Nur Jayanti (21070121120009)
4. RM Hendratama Rafi S. (21070121140145)

DEPARTEMEN TEKNIK INDUSTRI


FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO
SEMARANG
2021
DAFTAR ISI
DAFTAR ISI..............................................................................................................i
DAFTAR TABEL......................................................................................................iii
DAFTAR GAMBAR.................................................................................................iv
BAB I PENJELASAN UMUM PROGRAM............................................................1
1.1 Dasar Teori Arduino............................................................................................1
1.1.1 Definisi Arduino........................................................................................1
1.1.2 Bahasa Pemrograman pada Arduino.........................................................1
1.1.3 Fungsi dan Kegunaan Arduino..................................................................2
1.1.4 Tipe-tipe Data pada Arduino.....................................................................2
1.2 Komponen Pada Rangkaian.................................................................................3
1.2.1 Arduino Uno R3........................................................................................3
1.2.2 Breadboard/Project Board.........................................................................4
1.2.3 LED...........................................................................................................4
1.2.4 Kabel Jumper.............................................................................................5
1.2.5 Speaker......................................................................................................5
1.2.6 Resistor......................................................................................................6
1.3 Penjelasan Skenario Pada Modul.........................................................................6

BAB II FLOWCHART..............................................................................................7
2.1 Flowchart Program...............................................................................................7
2.1.1 Flowchart Program Metode 1....................................................................8
2.1.2 Flowchart Program Metode 2....................................................................9
2.2 Penjelasan Flowchart Program............................................................................10
2.2.1 Penjelasan Flowchart Metode 1................................................................10
2.2.2 Penjelasan Flowchart Metode 2................................................................11

BAB III PROGRAM ARDUINO..............................................................................13


3.1 Sketch Program....................................................................................................13
3.2.1 Metode 1....................................................................................................13
3.2.2 Metode 2....................................................................................................18
3.2 Penjelasan Sketch Program..................................................................................24

i
3.2.1 Metode 1....................................................................................................
3.2.2 Metode 2....................................................................................................

DAFTAR PUSTAKA................................................................................................41
LAMPIRAN...............................................................................................................42

ii
DAFTAR TABEL
Tabel 1.1 Tipe Data Arduino.....................................................................................2

iii
DAFTAR GAMBAR

Gambar 1 Arduino Uno R3........................................................................................3


Gambar 2 Breadboard/Project board.........................................................................4
Gambar 3 LED...........................................................................................................5
Gambar 4 Kabel Jumper............................................................................................5
Gambar 5 Speaker......................................................................................................5
Gambar 6 Resistor......................................................................................................6

iv
BAB I
PENJELASAN UMUM PROGRAM
1.1 Dasar Teori Arduino
1.1.1 Definisi Arduino
Arduino merupakan platform prototyping open-source hardware yang mudah
digunakan untuk membuat suatu proyek yang berbasis pemrogaman. Arduino Board
memiliki kemampuan untuk membaca inputan berupa sensor, tombol dan mengolahnya
menjadi outputan seperti mengaktifkan motor, menyalakan LED dan lainnya. Kita dapat
memprogam Arduino Board dengan memberikan set instruksi tertentu dengan
menggunakan Arduino programming language, dan Software Arduino (IDE). (Oby,
2017:3). Arduino di dalamnya memiliki komponen utama berupa sebuah chip
mikrokontroler dengan jenis AVR dari perusahaan Atmel. Mikrokontroler sendiri
adalah chip atau IC (intergrated circuit) yang bisa diprogram oleh komputer. Membuat
program pada mikrokontroler ditujukan agar rangkain elektronik dapat membaca input
yang dimasukkan dan menghasilkan output sesuai apa yang diinginkan. Jadi
mikrokontroler disini bertugas sebagai otak yang mengendalikan input, proses dan
output dalam sebuah rangkaian elektronik. (Soejanto et al., 2017:3)

1.1.2 Bahasa Pemrograman Pada Arduino


Bahasa C yang digunakan pada IDE (Integrated Development Environment)
Arduino hampir sama dengan standar C, tapi pada IDE Arduino tidak terdapat tipe data
double. Perbedaan lain antara C Arduino dengan standar C adalah compiler C Arduino
berupa C++ open source. Jadi meskipun program yang digunakan adalah C tapi pada
Arduino kita bebas untuk menggabungkan bahasa C dengan C++.
Sistematika pembuatan bahasa pada Arduino hampir sama dengan sistematika
pemrograman pada umumnya. Dimulai dari ekspresi, statemen, variabel, blok statemen
dan blok fungsi. Ekspresi ini terdiri atas gabungan antara operator dan operand.
Operand adalah suatu data yang dioperasikan oleh operator, sedangkan operator adalah
aksi matematik atau logika yang menggunakan dua atau lebih operand. Lalu statemen,
statemen adalah instruksi C yang lengkap untuk prorgam komputer. Semua statemen C

1
2

diakhiri menggunakan semikolon (;). Variabel sendiri merupakan lokasi pada memori
atau storage yang sudah diberi nama. Selanjutnya adalah blok statemen, blok statemen
terdiri dari satu atau lebih statemen yang digrup bersama-sama, jadi compiler melihat
mereka sebagai statemen tunggal. Kemudian yang terakhir adalah blok fungsi, blok
fungsi terdiri dari blok kode yang didesain untuk melakukan suatu pekerjaan (task).
Perbedaan antara blok fungsi dengan blok statemen adalah pada blok statemen terdiri
dari operator (penjumlahan, pengurangan dan yang lainnya) sedangkan pada blok fungsi
tidak ditemukan operator melainkan nama fungsi dan tipe datanya. (Pauzan, 2020:1-4)

1.1.3 Fungsi dan Kegunaan Arduino


Arduino dapat membuat alat yang dapat bekerja dengan otomatis, monitoring,
dan juga untuk pengontrolan. Arduino merupakan perangkat sederhana yang sangat
mumpuni karena mampu membuat instrumen-instrumen robotika dan perangkat
Internet of Things lainnya.

1.1.4 Tipe Data Arduino


Tipe data memiliki kelompok data berdasarkan jenis-jenis tertentu. Tipe-tipe
data pada arduino, yaitu:
Tabel 1.1 Tipe Data Arduino
Tipe data Panjang Rentang nilai
byte

boolean 1 Dua kemungkian, true dan false

char 1 Rentang: -128 sampai +127

unsigned 1 Rentang: 0 sampai 255


char
byte 1 Rentang: 0 sampai 255

int 2 Rentang: -32768 sampai 32768

unsign int 2 Rentang: 0 sampai 65535

word 2 Rentang: 0 sampai 65535

long 4 Rentang: -2147483648 sampai

2147483648
3

Tabel 1.1 Tipe Data Arduino (Lanjutan)


Tipe data Panjang Rentang nilai
byte

unsigned 4 Rentang: 0 sampai 4294967295


long

float 4 Rentang: -3.4028235E+38 sampai 3.4028235E+38

double 4 Rentang: -3.4028235E+38 sampai 3.4028235E+38

string ? null (‘\0’) tipe data reference dibangun dari susunan


karakter
String ? Objek tipe data reference

Void 0 Deskripsi yang digunakan dengan fungsi sebagai tipe


data kembali ketika fungsi tidak mengembalikan nilai

1.2 Komponen Pada Rangkaian


Dalam membuat rangkaian berdasarkan skenario 8 ini, membutuhkan beberapa
komponen elektronika. Berikut merupakan komponen-komponen yang digunakan untuk
menjalankan program yang sesuai dengan skenario 8.

1.2.1 Arduino Uno R3

Gambar 1 Arduino Uno R3


Arduino Uno R3 adalah papan pengembangan mikrokontroler yang berbasis
chip ATmega328P. Arduino Uno memiliki 14 digital pin input/output (atau biasa ditulis
I/O, dimana 14 pin diantaranya dapat digunakan sebagai output PWM antara lain pin 0
sampai 13, 6 pin input analog, menggunakan crystal 16 MHz antara lain pin A0 sampai
4

A5, koneksi USB, jack listrik, header ICSP dan tombol reset. Hal tersebut adalah semua
yang diperlukan untuk mendukung sebuah rangkaian mikrokontroler. (Wicaksono,
2017:3). Software arduino berupa software processing yang digunakan untuk menulis
program ke dalam Arduino Uno. Software IDE (Integrated Development Environment)
Arduino Uno terdiri dari tiga bagian yaitu:
a. Editor program, yaitu bagian untuk menulis dan mengedit program dalam bahasa
processing. Listing program pada Arduino disebut Sketch.
b. Compiler, yaitu modul yang berfungsi untuk mengubah bahasa processing atau
kode program kedalam kode biner, karena kode biner adalah bahasa satu-satunya
bahasa program yang dipahami oleh Mikrokontroler.
c. Uploader, yaitu modul yang berfungsi untuk memasukan kode biner kedalam
memori Mikrokontroller. (Mulyana dan Kharisman, 2014:173)

1.2.2 Breadboard/Project board

Gambar 2 Breadboard/Project board


Breadboard merupakan papan uji coba rangkaian elektronika yang pada
umumnya dipergunakan oleh pemula. Papan dengan konstruksi berlubang sesuai untuk
menancapkan komponen tanpa dihubungkan secara permananen. Komponen yang telah
dipergunakan pada satu rangkaian dapat dipergunakan kembali setelah dipergunakan
sebelumnya. (JIPTEK, Vol. 12 No. 2, 2019)
5

1.2.3 LED

Gambar 3 LED
LED atau singkatan dari Light Emitting Diode adalah salah satu komponen
elektronik yang tidak asing lagi di kehidupan saat ini. LED banyak dipakai, seperti
untuk penggunaan lampu penerangan, rambu-rambu lalu lintas, lampu indikator
peralatan elektronik hingga ke industri. (Moethia Faridha dan M. Dahlan Yusuf
Saputra, 2016)

1.2.4 Kabel Jumper

Gambar 4 Kabel Jumper


Kabel jumper adalah kabel yang dipergunakan untuk menghubungkan satu
komponen dengan komponen lain ataupun menghubungkan jalur rangkaian yang
terputus. (JIPTEK, Vol. 12 No. 2, 2019)

1.2.5 Speaker

Gambar 5 Speaker
6

Speaker adalah perangkat elektronika yang terbuat dari logam dan memiliki
membran, kumparan, serta magnet sebagai bagian yang saling melengkapi. Tanpa
adanya membran, sebuah speaker tidak akan mengeluarkan bunyi, demikian juga
sebaliknya. Fungsi tiap bagian pada speaker saling terkait satu sama lain. Menurut
Purnamasari, Speaker adalah transduser yang mengubah sinyal elektrik ke frekuensi
audio (suara) dengan cara menggetarkan komponennya yang berbentuk selaput. (S
Anggi Intan, 2016)

1.2.6 Resistor

Gambar 6 Resistor
Resistor merupakan salah satu komponen yang paling sering ditemukan dalam
rangkaian elektronika. Hampir setiap peralatan elektronika menggunakannya. Pada
dasarnya resistor adalah komponen elektronika pasif yang memiliki nilai resistansi atau
hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam
suatu rangkaian elektronika (Nawali, 2015).
Resistor digunakan untuk membatasi jumlah arus yang mengalir dalam suatu
rangkaian. Resistor bersifat resistif dan umumnya terbuat dari bahan karbon. Dari
hukum ohm diketahui hambatan berbanding terbalik dengan jumlah arus yang mengalir
melaluinya. Satuan resistansi dari suatu resistor disebut Ohm. Tipe resistor yang umum
adalah berbentuk tabung dengan dua kaki tembaga di kedua kakinya. (Ruri, 2013).

1.3 Penjelasan Skenario Pada Modul


Pada skenario 8 ini, praktikan diminta untuk merangkaian arduino yang akan
disusun dengan output berupa LED dan speaker. Pada rangkaian ini akan dipasang 5
7

LED dan satu speaker (piezo). Awalnya LED satu, dua, tiga, empat, dan lima akan
menyala secara bergantian. Selanjutnya LED satu, dua dan tiga akan menyala
bersamaan dan ketika itu juga lampu empat dan lima mati. Ketika ketiga LED tersebut
menyala piezo atau speaker akan menyala semakin keras dengan lima tingkat frekuensi
yang berbeda. Ketika speaker menyala nilai frekuensi dari bunyi speaker ini akan
ditampilkan melalui serial monitor. Setelah speaker berbunyi dengan lima tingkatan
frekuensi berbeda skenario ini berhenti. Skenario ini dijalankan menggunakan dua
metode, yaitu dengan metode delay tanpa if dan metode delay menggunakan if, if else.
BAB II
FLOWCHART
2.1 Flowchart Program
Flowchart merupakan penggambaran dari suatu langkah-langkah dan urutan-
urutan dari suatu program menggunakan grafik. Atau dengan kata lain flowchart adalah
penggambaran dari suatu algoritma. Flowchart ini dibuat dengan tujuan untuk
memecahkan masalah kedalam segmen-segmen yang lebih kecil dan untuk menganalisis
alternatif-alternatif lain dalam pengoperasian. Dalam menyatakan suatu proses,
flowchart menggunakan anotasi bidang-bidang geometri, seperti lingkaran, persegi
empat, wajik, oval, dan sebagainya untuk merepresentasikan langkah-langkah kegiatan
beserta urutannya dengan menghubungkan masing-masing langkah tersebut
menggunakan tanda panah. (Ridlo, 2017:3). Dalam hal ini flowchart yang kami buat
adalah flowchart untuk penggambaran dari program yang ada pada skenario 8.

8
9

2.1.1 Flowchart Program Metode 1


10

2.1.2 Flowchart Program Metode 2


11

2.2 Penjelasan Flowchart Program


2.2.1 Penjelasan Flowchart Metode 1
Program Arduino berdasarkan skenario 8
dengan metode delay tanpa if ini dimulai
dengan memilih atau mengambil komponen
yang tersedia pada menu, komponen yang
digunakan antara lain adalah Arduino Uno R3,
breadboard, LED, kabel jumper, piezo atau
speaker dan resistor. Setelah memilih
komponen dilanjutkan dengan merakit
komponen hingga sedemikian rupa sehingga
komponen dapat tersusun dengan benar dan
rapih. Pin GND (Ground) akan disambungkan
ke breadboard dengan pin (-) menggunakan
kabel, lalu LED juga akan disampungkan pada
pin dengan nomor 3,4,5,6, dan 7 menggunakan
kabel dan pada masing-masing LED juga akan
dipasang resistor, lalu yang terakhir yaitu piezo
atau speaker akan dihubungkan ke pin nomor 8
dan pada piezo ini juga akan dipasangkan satu
resistor.
Setelah seluruh komponen sudah
tersusun selanjutnya adalah memulai pemrograman
pada menu Code, hal pertama yang dilakukan
dalam pemrograman adalah
mempersiapkan penyimpanan untuk LED dan
speaker sebagai variabel yang akan diganti
menggunakan nilai angka menggunakan integer
sesuai dengan pin- pin yang sudah dipasangkan.
Ledmerah dipasangkan pada pin nomor 3,
12

ledorange dipasangkan pada pin nomor 4, ledkuning dipasangkan pada pin nomor 5,
ledhijau dipasangkan pada pin nomor 6, ledbiru dipasangkan pada pin nomor 7 dan
speaker atau piezo dipasangkan pada pin nomor 8. Setelah mempersiapkan storage yang
dilakukan adalah membuat void setup menggunakan pinMode. Semua LED dan piezo
akan diatur sebagai output. Lalu dalam void setup ini juga akan ditambahkan
serial.begin 9600 untuk mengatur kecepataan transfer data ke serial monitor.
Langkah yang dilakukan setelah membuat void setup adalah membuat void loop.
Dalam void loop ini ledmerah diatur untuk menyala menggunakan perintah HIGH
dengan delay setengah detik lalu setelah itu diatur mati atau LOW dengan delay
setengah detik juga. Setelah ledmerah dilakukan hal yang sama pada setiap LED hingga
kelima LED menyala bergantian dengan delay setengah detik. Setelah kelima LED
menyala secara bergantian ledmerah, ledorange, dan ledkuning diberi perintah untuk
menyala bersamaan dengan ketiga LED ini piezo akan berbunyi satu kali dengan
frekuensi 50Hz dengan delay tiga perempat detik dan nilai frekuensi ini ditampilkan
pada serial monitor. Setelah delay selama tiga per empat detik ketiga LED yaitu
ledmerah, ledorange dan ledkuning serta piezo akan mati, setelah komponen tersebut
mati, ledhijau dan ledbiru akan menyala selama tiga perempat detik lalu mati selama
tiga perempat detik pula. Proses ini berlangsung selama lima kali, jadi piezo akan
berbunyi lima kali dengan frekuensi berbeda setiap menyala, yaitu ditambah 25Hz
setiap kali menyala. Setelah proses ini berlangsung selama lima kali proses akan
berakhir atau exit. Dan jika proses ini belum berlangsung selama lima kali maka akan
mengulang ke void loop awal.

2.2.2 Penjelasan Flowchart Metode 2

Program Arduino berdasarkan skenario 8 dengan metode delay menggunakan if


ini dimulai dengan memilih atau mengambil komponen yang tersedia pada menu,
komponen yang digunakan antara lain adalah Arduino Uno R3, breadboard, LED, kabel
jumper, piezo atau speaker dan resistor. Setelah memilih komponen dilanjutkan dengan
merakit komponen hingga sedemikian rupa sehingga komponen dapat tersusun dengan
benar dan rapih. Pin GND (Ground) akan disambungkan ke breadboard dengan pin (-)
menggunakan kabel, lalu LED juga akan disambungkan pada pin dengan nomor 3,4,5,6,
13

dan 7 menggunakan kabel dan pada masing-masing LED juga akan dipasang resistor,
lalu yang terakhir yaitu piezo atau speaker akan dibuhungkan ke pin nomor 8 dan pada
piezo ini juga akan dipasangkan satu resistor.
Setelah seluruh komponen sudah tersusun selanjutnya adalah memulai
pemrograman pada menu Code, hal pertama yang dilakukan dalam pemrograman
adalah mempersiapkan penyimpanan atau storage untuk LED dan piezo sebagai variabel
yang akan diganti menggunakan nilai integer sesuai dengan pin-pin yang sudah
dipasangkan. Ledmerah dipasangkan pada pin nomor 3, ledorange dipasangkan pada pin
nomor 4, ledkuning dipasangkan pada pin nomor 5, ledhijau dipasangkan pada pin
nomor 6, ledbiru dipasangkan pada pin nomor 7 dan speaker atau piezo dipasangkan
pada pin nomor 8. Setelah mempersiapkan storage yang dilakukan adalah membuat void
setup menggunakan pinMode. Semua LED dan piezo akan diatur sebagai output.
Setelah mengatur void setup, langkah selanjutnya adalah membuat void loop
dengan menggunakan for dan integer dengan variabel i=0, i<36, dan i akan bertambah 1
(i++). Setelah itu adalah membuat fungsi if==1 ini berarti jika nilai i adalah 1 ledhijau
akan diinstruksikan untuk menyala, jika nilai i bukan 1 makan akan dilanjutkan dengan
instruksi else if i==2, pada instruksi ini jika nilai i adalah 2 maka ledhijau akan mati dan
ledbiru akan bergantian menyala. Jika nilai I sudah tidak lagi 2 maka akan dilanjutkan
dengan instruksi else if i==3, pada instruksi ini jika nilai i adalah 3 maka ledbiru akan
mati dan ledkuning akan bergantian menyala, lalu jika nilai I sudah bukan 3 maka akan
dilanjutkan dengan instruksi selanjutnya yaitu else if i==4. Dalam instruksi ini jika nilai
i adalah 4 maka ledkuning akan mati dan ledmerah akan bergantian menyala, lalu jika
nilai I sudah bukan 4 maka akan dilanjutkan dengan instruksi selanjutnya yaitu else if
i==5, pada instruksi ini apabila nilai i adalah 5 maka ledmerah akan mati dan ledputih
akan bergantian menyala lalu jika nilai i bukan 5 maka akan dilanjutkan dengan
instruksi else if i==6, pada instruksi ini ledputih akan diinstruksikan untuk mati, tetapi
pada saat itu pula ledhijau, ledbiru dan ledkuning akan menyala secara bersamaan. Pada
saat instruksi else if i==6 ini piezo juga akan menyala dengan frekuensi 50Hz dan nilai
frekuensi tersebut ditampilkan pada serial monitor. Instruksi ini dijalankan selama satu
detik. Setelah i sudah tidak bernilai 6 maka dilanjutkan dengan intstruksi else if==7,
pada instruksi ini jika nilai i adalah 7 maka ledmerah dan ledputih yang tadinya tidak
14

menyala akan menyala secara bersamaan dengan delay tiga perempat detik. Setelah
delay tiga perempat detik tersebut ledmerah dan led putih akan kembali mati dengan
delay satu detik. Jika nilai i sudah bukan 7 maka selanjutnya adalah perulangan dengan
nilai i yang terus bertambah tetapi eksekusi yang dijalankan akan sama seperti pada
i==1 sampai i==7, selama proses ini berulang piezo akan menyala dengan frekuensi
yang terus bertambah sejumlah 25Hz. Proses ini berlangsung hingga nilai i<36, jika
nilai i sudah lebih dari 36 maka proses akan berhenti.
BAB III
PROGRAM ARDUINO
3.1 Sketch Program
3.1.1 Metode 1
Sketch Program metode 1

1. // C++ code
2. //
3.
4. int ledmerah = 3;int ledorange = 4;int ledkuning = 5;
5. int ledhijau = 6;int ledbiru = 7;int piezo = 8;
6.
7. void setup()
8. {
9. pinMode(ledmerah, OUTPUT);pinMode(ledorange, OUTPUT);
10. pinMode(ledkuning, OUTPUT);pinMode(ledhijau, OUTPUT);
11. pinMode(ledbiru, OUTPUT);pinMode(piezo, OUTPUT);
12. Serial.begin(9600);
13. }
14.
15. // Metode 1
16.
17. void loop(){
18. // Nyala 1
19. digitalWrite(ledmerah, HIGH);delay(500);
20. digitalWrite(ledmerah, LOW);delay(500);
21. digitalWrite(ledorange, HIGH);delay(500);
22. digitalWrite(ledorange, LOW);delay(500);
23. digitalWrite(ledkuning, HIGH);delay(500);
24. digitalWrite(ledkuning, LOW);delay(500);
25. digitalWrite(ledhijau, HIGH);delay(500);

15
16

26. digitalWrite(ledhijau, LOW);delay(500);


27. digitalWrite(ledbiru, HIGH);delay(500);
28. digitalWrite(ledbiru, LOW);delay(500);
29.
30. digitalWrite(ledmerah, HIGH);
31. digitalWrite(ledorange, HIGH);
32. digitalWrite(ledkuning, HIGH);
33.
34. tone(piezo,50,1000);Serial.println("50 Hz");delay(1000);
35.
36. digitalWrite(ledmerah, LOW);
37. digitalWrite(ledorange, LOW);
38. digitalWrite(ledkuning, LOW);
39. delay(750);
40.
41. digitalWrite(ledhijau, HIGH);
42. digitalWrite(ledbiru, HIGH);delay(500);
43. digitalWrite(ledhijau, LOW);
44. digitalWrite(ledbiru, LOW);
45. delay(750);
46. // Nyala 2
47. digitalWrite(ledmerah, HIGH);delay(500);
48. digitalWrite(ledmerah, LOW);delay(500);
49. digitalWrite(ledorange, HIGH);delay(500);
50. digitalWrite(ledorange, LOW);delay(500);
51. digitalWrite(ledkuning, HIGH);delay(500);
52. digitalWrite(ledkuning, LOW);delay(500);
53. digitalWrite(ledhijau, HIGH);delay(500);
54. digitalWrite(ledhijau, LOW);delay(500);
55. digitalWrite(ledbiru, HIGH);delay(500);
56. digitalWrite(ledbiru, LOW);delay(500);
17

57.
58. digitalWrite(ledmerah, HIGH);
59. digitalWrite(ledorange, HIGH);
60. digitalWrite(ledkuning, HIGH);
61.
62. tone(piezo,75,1000);Serial.println("75 Hz");delay(1000);
63.
64. digitalWrite(ledmerah, LOW);
65. digitalWrite(ledorange, LOW);
66. digitalWrite(ledkuning, LOW);
67. delay(750);
68.
69. digitalWrite(ledhijau, HIGH);
70. digitalWrite(ledbiru, HIGH);delay(500);
71. digitalWrite(ledhijau, LOW);
72. digitalWrite(ledbiru, LOW);
73. delay(750);
74. // Nyala 3
75. digitalWrite(ledmerah, HIGH);delay(500);
76. digitalWrite(ledmerah, LOW);delay(500);
77. digitalWrite(ledorange, HIGH);delay(500);
78. digitalWrite(ledorange, LOW);delay(500);
79. digitalWrite(ledkuning, HIGH);delay(500);
80. digitalWrite(ledkuning, LOW);delay(500);
81. digitalWrite(ledhijau, HIGH);delay(500);
82. digitalWrite(ledhijau, LOW);delay(500);
83. digitalWrite(ledbiru, HIGH);delay(500);
84. digitalWrite(ledbiru, LOW);delay(500);
85.
86. digitalWrite(ledmerah, HIGH);
87. digitalWrite(ledorange, HIGH);
18

88. digitalWrite(ledkuning, HIGH);


89.
90. tone(piezo,100,1000);Serial.println("100 Hz");delay(1000);
91.
92. digitalWrite(ledmerah, LOW);
93. digitalWrite(ledorange, LOW);
94. digitalWrite(ledkuning, LOW);
95. delay(750);
96.
97. digitalWrite(ledhijau, HIGH);
98. digitalWrite(ledbiru, HIGH);delay(500);
99. digitalWrite(ledhijau, LOW);
100. digitalWrite(ledbiru, LOW);
101. delay(750);
102. // Nyala 4
103. digitalWrite(ledmerah, HIGH);delay(500);
104. digitalWrite(ledmerah, LOW);delay(500);
105. digitalWrite(ledorange, HIGH);delay(500);
106. digitalWrite(ledorange, LOW);delay(500);
107. digitalWrite(ledkuning, HIGH);delay(500);
108. digitalWrite(ledkuning, LOW);delay(500);
109. digitalWrite(ledhijau, HIGH);delay(500);
110. digitalWrite(ledhijau, LOW);delay(500);
111. digitalWrite(ledbiru, HIGH);delay(500);
112. digitalWrite(ledbiru, LOW);delay(500);
113.
114. digitalWrite(ledmerah, HIGH);
115. digitalWrite(ledorange, HIGH);
116. digitalWrite(ledkuning, HIGH);
117.
118. tone(piezo,125,1000);Serial.println("125 Hz");delay(1000);
19

119.
120. digitalWrite(ledmerah, LOW);
121. digitalWrite(ledorange, LOW);
122. digitalWrite(ledkuning, LOW);
123. delay(750);
124.
125. digitalWrite(ledhijau, HIGH);
126. digitalWrite(ledbiru, HIGH);delay(500);
127. digitalWrite(ledhijau, LOW);
128. digitalWrite(ledbiru, LOW);
129. delay(750);
130. // Nyala 5
131. digitalWrite(ledmerah, HIGH);delay(500);
132. digitalWrite(ledmerah, LOW);delay(500);
133. digitalWrite(ledorange, HIGH);delay(500);
134. digitalWrite(ledorange, LOW);delay(500);
135. digitalWrite(ledkuning, HIGH);delay(500);
136. digitalWrite(ledkuning, LOW);delay(500);
137. digitalWrite(ledhijau, HIGH);delay(500);
138. digitalWrite(ledhijau, LOW);delay(500);
139. digitalWrite(ledbiru, HIGH);delay(500);
140. digitalWrite(ledbiru, LOW);delay(500);
141.
142. digitalWrite(ledmerah, HIGH);
143. digitalWrite(ledorange, HIGH);
144. digitalWrite(ledkuning, HIGH);
145.
146. tone(piezo,150,1000);Serial.println("150 Hz");delay(1000);
147.
148. digitalWrite(ledmerah, LOW);
149. digitalWrite(ledorange, LOW);
20

150. digitalWrite(ledkuning, LOW);


151. delay(750);
152.
153. digitalWrite(ledhijau, HIGH);
154. digitalWrite(ledbiru, HIGH);delay(500);
155. digitalWrite(ledhijau, LOW);
156. digitalWrite(ledbiru, LOW);
157. delay(750);
158. noTone(piezo);
159. exit(0);
160. }

3.1.2 Metode 2
Sketch Program metode 2
1. // C++ code
2. //
3.
4. int ledhijau = 6;int ledbiru = 7;int ledkuning = 8;
5. int ledmerah = 9;int ledputih = 10;int piezo = 11;
6.
7. void setup()
8. {
9. pinMode(ledhijau, OUTPUT);pinMode(ledbiru, OUTPUT);
10. pinMode(ledkuning, OUTPUT);pinMode(ledmerah, OUTPUT);
11. pinMode(ledputih, OUTPUT);pinMode(piezo, OUTPUT);
12. Serial.begin(9600);
13. }
14. // Metode 2
15. void loop()
16. {
21

17. for(int i=0; i<36; i++)


18. {
19. if(i==1){
20. digitalWrite(ledhijau, HIGH);
21. }
22. else if (i==2){
23. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
24. }
25. else if (i==3){
26 digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
27. }
28. else if (i==4){
29. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
30. }
31. else if (i==5){
32. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
33. }
34. else if (i==6){
35. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
36. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
37.
38. tone(piezo,50,1000);Serial.println("50 Hz");delay(1000);
39.
40. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
41. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
42. }
43. else if (i==7){
44. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
45. delay(750);
46. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
47.
22

48. }
49. else if(i==8){
50. digitalWrite(ledhijau, HIGH);
51. }
52. else if (i==9){
53. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
54. }
55. else if (i==10){
56. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
57. }
58. else if (i==11){
59. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
60. }
61. else if (i==12){
62. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
63. }
64. else if (i==13){
65. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
66. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
67.
68. tone(piezo,75,1000);Serial.println("75 Hz");delay(1000);
69.
70. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
71. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
72. }
73. else if (i==14){
74. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
75. delay(750);
76. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
77.
78.
23

79. }
80. else if(i==15){
81. digitalWrite(ledhijau, HIGH);
82. }
83. else if (i==16){
84. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
85. }
86. else if (i==17){
87. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
88. }
89. else if (i==18){
90. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
91. }
92. else if (i==19){
93. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
94. }
95. else if (i==20){
96. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
97. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
98.
99. tone(piezo,100,1000);Serial.println("100 Hz");delay(1000);
100
. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
101 digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
. }
102 else if (i==21){
. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
103 delay(750);
. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
104 }
.
24

105 else if(i==22){


. digitalWrite(ledhijau, HIGH);
106 }
. else if (i==23){
107 digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
. }
108 else if (i==24){
. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
109 }
. else if (i==25){
110 digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
. }
111 else if (i==26){
. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
112 }
. else if (i==27){
113 digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
114
. tone(piezo,125,1000);Serial.println("125 Hz");delay(1000);
115
. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
116 digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
. }
117 else if (i==28){
. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
118 delay(750);
. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
119 }
. else if(i==29){
120
25

. digitalWrite(ledhijau, HIGH);
121 }
. else if (i==30){
122 digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
. }
123 else if (i==31){
. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
124 }
. else if (i==32){
125 digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
. }
126 else if (i==33){
. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
127 }
. else if (i==34){
128 digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
129
. tone(piezo,150,1000);Serial.println("150 Hz");delay(1000);
130
. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
131 digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
. }
132 else if (i==35){
. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
133 delay(750);
. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
134
. }
135 delay(1000);
.
26

136 noTone(piezo);
. }
137 exit(0);
. }
138
.
139
.
140
.
141
.
142
.
143
.
144
.
145
.
146
.
147
.
148
.
149
.
150
.
151
27

.
152
.
153
.
154
.
155
.
156
.
157
.
158
.
159
.
160
.
161
.
162
.
163
.
164
.
165
.
166
28

.
167
.
168
.
169
.
170
.

3.2 Penjelasan Sketch Program


3.2.1 Metode 1

1. // C++ code
2. //

Dua garis miring atau biasa disebut dengan single line coment, berguna untuk
memberikan catatan pada pemrograman sendiri apa arti dari kode-kode yang dituliskan.
Menuliskan setelah dua buah garis miring tidak akan diproses ketika program
dijalankan.

3.
4. int ledmerah = 3;int ledorange = 4;int ledkuning = 5;
5. int ledhijau = 6;int ledbiru = 7;int piezo = 8;

Pada Arduino Uno sebuah int menyimpan nilai 16-bit (2-byte). Menghasilkan
kisaran -32,768 hingga 32,767. Pada salah satu sisi board, terdapat pin dari 0-13
perintah pada baris 4-9 artinya: variable LED merupakan konstanta dalam bentuk
integer yang merujuk pada pin 3,4,5,6,7,8 board Arduino.
29

6.
7. void setup()
8. {
9. pinMode(ledmerah, OUTPUT);pinMode(ledorange, OUTPUT);
10. pinMode(ledkuning, OUTPUT);pinMode(ledhijau, OUTPUT);
11. pinMode(ledbiru, OUTPUT);pinMode(piezo, OUTPUT);
12. Serial.begin(9600);
13. }
Pada fungsi bertipe void berarti menjalankan perintah-perintah saja tanpa
memiliki value sebagaimana fungsi integer. setup ( ) untuk menyatakan fungsi yang
akan dijalankan pertama kali. Fungsi ini berisi kode-kode untuk kepentingan inisialisasi.
Perintah pinMode menghasilkan tegangan yang digunakan untuk mengontrol LED yang
ditancapkan pada pin tersebut. LED dan piezo pada void setup() ini, dijalankan sebagai
output. Perintah Serial.begin(9600) berarti membuat koneksi serial band rate 9600.
Band berkaitan dengan jumlah bit yang akan ditransfer setiap detik. Arduino IDE
menggunakan clock 16 MHz.

14.
15. // Metode 1

Dua garis miring atau biasa disebut dengan single line coment, berguna untuk
memberikan catatan pada pemrograman sendiri apa arti dari kode-kode yang dituliskan.
Menuliskan setelah dua buah garis miring tidak akan diproses ketika program
dijalankan.

16.
17. void loop(){
18. // Nyala 1
19. digitalWrite(ledmerah, HIGH);delay(500);
20. digitalWrite(ledmerah, LOW);delay(500);
30

21. digitalWrite(ledorange, HIGH);delay(500);


22. digitalWrite(ledorange, LOW);delay(500);
23. digitalWrite(ledkuning, HIGH);delay(500);
24. digitalWrite(ledkuning, LOW);delay(500);
25. digitalWrite(ledhijau, HIGH);delay(500);
26 digitalWrite(ledhijau, LOW);delay(500);
27. digitalWrite(ledbiru, HIGH);delay(500);
28. digitalWrite(ledbiru, LOW);delay(500);
29.
30. digitalWrite(ledmerah, HIGH);
31. digitalWrite(ledorange, HIGH);
32. digitalWrite(ledkuning, HIGH);
33.
34. tone(piezo,50,1000);Serial.println("50 Hz");delay(1000);
35.
36. digitalWrite(ledmerah, LOW);
37. digitalWrite(ledorange, LOW);
38. digitalWrite(ledkuning, LOW);
39. delay(750);
40.
41. digitalWrite(ledhijau, HIGH);
42. digitalWrite(ledbiru, HIGH);delay(500);
43. digitalWrite(ledhijau, LOW);
44. digitalWrite(ledbiru, LOW);
45. delay(750);
46. // Nyala 2
47. digitalWrite(ledmerah, HIGH);delay(500);
48. digitalWrite(ledmerah, LOW);delay(500);
49. digitalWrite(ledorange, HIGH);delay(500);
50. digitalWrite(ledorange, LOW);delay(500);
51. digitalWrite(ledkuning, HIGH);delay(500);
31

52. digitalWrite(ledkuning, LOW);delay(500);


53. digitalWrite(ledhijau, HIGH);delay(500);
54. digitalWrite(ledhijau, LOW);delay(500);
55. digitalWrite(ledbiru, HIGH);delay(500);
56. digitalWrite(ledbiru, LOW);delay(500);
57.
58. digitalWrite(ledmerah, HIGH);
59. digitalWrite(ledorange, HIGH);
60. digitalWrite(ledkuning, HIGH);
61.
62. tone(piezo,75,1000);Serial.println("75 Hz");delay(1000);
63.
64. digitalWrite(ledmerah, LOW);
65. digitalWrite(ledorange, LOW);
66. digitalWrite(ledkuning, LOW);
67. delay(750);
68.
69. digitalWrite(ledhijau, HIGH);
70. digitalWrite(ledbiru, HIGH);delay(500);
71. digitalWrite(ledhijau, LOW);
72. digitalWrite(ledbiru, LOW);
73. delay(750);
74. // Nyala 3
75. digitalWrite(ledmerah, HIGH);delay(500);
76. digitalWrite(ledmerah, LOW);delay(500);
77. digitalWrite(ledorange, HIGH);delay(500);
78. digitalWrite(ledorange, LOW);delay(500);
79. digitalWrite(ledkuning, HIGH);delay(500);
80. digitalWrite(ledkuning, LOW);delay(500);
81. digitalWrite(ledhijau, HIGH);delay(500);
82. digitalWrite(ledhijau, LOW);delay(500);
32

83. digitalWrite(ledbiru, HIGH);delay(500);


84. digitalWrite(ledbiru, LOW);delay(500);
85.
86. digitalWrite(ledmerah, HIGH);
87. digitalWrite(ledorange, HIGH);
88. digitalWrite(ledkuning, HIGH);
89.
90. tone(piezo,100,1000);Serial.println("100 Hz");delay(1000);
91.
92. digitalWrite(ledmerah, LOW);
93. digitalWrite(ledorange, LOW);
94. digitalWrite(ledkuning, LOW);
95. delay(750);
96.
97. digitalWrite(ledhijau, HIGH);
98. digitalWrite(ledbiru, HIGH);delay(500);
99. digitalWrite(ledhijau, LOW);
100 digitalWrite(ledbiru, LOW);
. delay(750);
101 // Nyala 4
. digitalWrite(ledmerah, HIGH);delay(500);
102 digitalWrite(ledmerah, LOW);delay(500);
. digitalWrite(ledorange, HIGH);delay(500);
103 digitalWrite(ledorange, LOW);delay(500);
. digitalWrite(ledkuning, HIGH);delay(500);
104 digitalWrite(ledkuning, LOW);delay(500);
. digitalWrite(ledhijau, HIGH);delay(500);
105 digitalWrite(ledhijau, LOW);delay(500);
. digitalWrite(ledbiru, HIGH);delay(500);
106 digitalWrite(ledbiru, LOW);delay(500);
.
33

107 digitalWrite(ledmerah, HIGH);


. digitalWrite(ledorange, HIGH);
108 digitalWrite(ledkuning, HIGH);
.
109 tone(piezo,125,1000);Serial.println("125 Hz");delay(1000);
.
110 digitalWrite(ledmerah, LOW);
. digitalWrite(ledorange, LOW);
111 digitalWrite(ledkuning, LOW);
. delay(750);
112
. digitalWrite(ledhijau, HIGH);
113 digitalWrite(ledbiru, HIGH);delay(500);
. digitalWrite(ledhijau, LOW);
114 digitalWrite(ledbiru, LOW);
. delay(750);
115 // Nyala 5
. digitalWrite(ledmerah, HIGH);delay(500);
116 digitalWrite(ledmerah, LOW);delay(500);
. digitalWrite(ledorange, HIGH);delay(500);
117 digitalWrite(ledorange, LOW);delay(500);
. digitalWrite(ledkuning, HIGH);delay(500);
118 digitalWrite(ledkuning, LOW);delay(500);
. digitalWrite(ledhijau, HIGH);delay(500);
119 digitalWrite(ledhijau, LOW);delay(500);
. digitalWrite(ledbiru, HIGH);delay(500);
120 digitalWrite(ledbiru, LOW);delay(500);
.
121 digitalWrite(ledmerah, HIGH);
. digitalWrite(ledorange, HIGH);
122 digitalWrite(ledkuning, HIGH);
34

.
123 tone(piezo,150,1000);Serial.println("150 Hz");delay(1000);
.
124 digitalWrite(ledmerah, LOW);
. digitalWrite(ledorange, LOW);
125 digitalWrite(ledkuning, LOW);
. delay(750);
126
. digitalWrite(ledhijau, HIGH);
127 digitalWrite(ledbiru, HIGH);delay(500);
. digitalWrite(ledhijau, LOW);
128 digitalWrite(ledbiru, LOW);
. delay(750);
129 noTone(piezo);
. exit(0);
130 }
.
131
.
132
.
133
.
134
.
135
.
136
.
137
.
35

138
.
139
.
140
.
141
.
142
.
143
.
144
.
145
.
146
.
147
.
148
.
149
.
150
.
151
.
152
.
153
36

.
154
.
155
.
156
.
157
.
158
.
159
.
160
.

Perintah void loop() ini, akan dijalankan setelah setup (fungsi void setup)
selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus
menerus sampai satu daya (power) dilepaskan. Perintah digititalWrite ketika sebuah pin
ditetapkan sebagai OUTPUT, pin tersebut dapat dijadikan HIGH (ditarik menjadi 5
volts) atau LOW (diturunkan menjadi ground). delay(1000) berarti arduino tidak
melakukan apa pun selama 1000 mili detik atau 1 detik. Dengan demikian, LED tetap
menyala 1 detik. tone(piezo,50,1000) berarti piezo sebagai pin, frekuensinya 50Hz,
durasinya 1000 mili detik, begitu pula dengan selanjutnya. Serial.printIn yaitu sintak
program yang digunakan untuk mengirimkan data text ke Serial port arduino, dimana
data tersebut ada yang berupa data text static dan data angka yang dapat berubah-ubah.
delay(1000) berarti arduino tidak melakukan apa pun selama 1000 mili detik atau 1
detik. Dengan demikian, piezo tetap menyala 1 detik. Penjelasan sketch yang di atas,
yaitu satu persatu lampu akan menyala berurutan 1,2,3,4,5 lalu lampu 1,2,3 menyala
secara bersamaan. Ketika ketiga lampu tersebut meyala bersamaan speaker pun ikut
menyala dengan frekuensi 50 Hz lalu kemudian mati kembali. Setelah itu lampu 4,5
37

menyala secara bersamaan kemudian mati kembali. Semuanya berulang selama 5 kali,
pembedanya hanya pada frekuensi speakernya saja yang semakin meningkat dari 50 Hz-
150 Hz. Perintah digititalWrite ketika sebuah pin ditetapkan sebagai OUTPUT, pin
tersebut dapat dijadikan HIGH atau LOW. Dengan demikian, berakhir sketch program
menggunakan perintah exit(0).

3.2.2 Metode 2

1. // C++ code
2. //

Dua garis miring atau biasa disebut dengan single line coment, berguna untuk
memberikan catatan pada pemrograman sendiri apa arti dari kode-kode yang dituliskan.
Menuliskan setelah dua buah garis miring tidak akan diproses ketika program
dijalankan.

3.
4. int ledhijau = 6;int ledbiru = 7;int ledkuning = 8;
5. int ledmerah = 9;int ledputih = 10;int piezo = 11;

Pada Arduino Uno IDE sebuah int menyimpan nilai 16-bit (2-byte).
Menghasilkan kisaran -32,768 hingga 32,767. Pada salah satu sisi board, terdapat pin
dari 0-13, perintah ledmerah= 3 sampai dengan int piezo = 11 artinya: variable LED
merupakan konstanta dalam bentuk integer yang merujuk pada pin 6,7,8,9,10, dan piezo
di di 11 board Arduino.

6.
7. void setup()
8. {
9. pinMode(ledhijau, OUTPUT);pinMode(ledbiru, OUTPUT);
10. pinMode(ledkuning, OUTPUT);pinMode(ledmerah, OUTPUT);
11. pinMode(ledputih, OUTPUT);pinMode(piezo, OUTPUT);
12.
38

13. Serial.begin(9600);
}

Pada fungsi bertipe void berarti menjalankan perintah-perintah saja tanpa


memiliki value sebagaimana fungsi integer. setup () untuk menyatakan fungsi yang akan
dijalankan pertama kali. Fungsi ini berisi kode-kode untuk kepentingan inisialisasi.
Perintah pinMode menghasilkan tegangan yang digunakan untuk mengontrol LED &
piezo yang ditancapkan pada pin tersebut. LED dan piezo pada void setup() ini,
dijalankan sebagai output. Perintah Serial.begin(9600) berarti membuat koneksi serial
band rate 9600. Band berkaitan dengan jumlah bit yang akan ditransfer setiap detik.
Arduino IDE menggunakan clock 16 MHz.

14. // Metode 2
15. void loop()
16. {
17. for(int i=0; i<36; i++)
18. {
19. if(i==1){
20. digitalWrite(ledhijau, HIGH);
21. }
22. else if (i==2){
23. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
24. }
25. else if (i==3){
26 digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
27. }
28. else if (i==4){
29. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
30. }
31. else if (i==5){
32.
39

33. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);


34. }
35. else if (i==6){
36. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
37. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
38.
39. tone(piezo,50,1000);Serial.println("50 Hz");delay(1000);
40.
41. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
42. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
43. }
44. else if (i==7){
45. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
46. delay(750);
47. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
48. }
49. else if(i==8){
50. digitalWrite(ledhijau, HIGH);
51. }
52. else if (i==9){
53. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
54. }
55. else if (i==10){
56. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
57. }
58. else if (i==11){
59. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
60. }
61. else if (i==12){
62. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
63.
40

64. }
65. else if (i==13){
66. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
67. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
68.
69. tone(piezo,75,1000);Serial.println("75 Hz");delay(1000);
70.
71. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
72. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
73. }
74. else if (i==14){
75. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
76. delay(750);
77. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
78.
79. }
80. else if(i==15){
81. digitalWrite(ledhijau, HIGH);
82. }
83. else if (i==16){
84. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
85. }
86. else if (i==17){
87. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
88. }
89. else if (i==18){
90. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
91. }
92. else if (i==19){
93. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
94.
41

95. }
96. else if (i==20){
97. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
98. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
99.
100. tone(piezo,100,1000);Serial.println("100 Hz");delay(1000);
101.
102. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
103. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
104. }
105. else if (i==21){
106. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
107. delay(750);
108. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
109. }
110. else if(i==22){
111. digitalWrite(ledhijau, HIGH);
112. }
113. else if (i==23){
114. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
115. }
116. else if (i==24){
117. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
118. }
119. else if (i==25){
120. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
121. }
122. else if (i==26){
123. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
124. }
125.
42

126. else if (i==27){


127. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);
128. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
129.
130. tone(piezo,125,1000);Serial.println("125 Hz");delay(1000);
131.
132. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
133. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
134. }
135. else if (i==28){
136. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
137. delay(750);
138. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
139. }
140. else if(i==29){
141. digitalWrite(ledhijau, HIGH);
142. }
143. else if (i==30){
144. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, HIGH);
145. }
146. else if (i==31){
147. digitalWrite(ledbiru, LOW);digitalWrite(ledkuning, HIGH);
148. }
149. else if (i==32){
150. digitalWrite(ledkuning, LOW);digitalWrite(ledmerah, HIGH);
151. }
152. else if (i==33){
153. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, HIGH);
154. }
155. else if (i==34){
156.
43

157. digitalWrite(ledhijau, HIGH);digitalWrite(ledbiru, HIGH);


158. digitalWrite(ledkuning, HIGH);digitalWrite(ledputih, LOW);
159.
160. tone(piezo,150,1000);Serial.println("150 Hz");delay(1000);
161.
162. digitalWrite(ledhijau, LOW);digitalWrite(ledbiru, LOW);
163. digitalWrite(ledkuning, LOW);digitalWrite(ledputih, LOW);
164. }
165. else if (i==35){
166. digitalWrite(ledmerah, HIGH);digitalWrite(ledputih, HIGH);
167. delay(750);
168. digitalWrite(ledmerah, LOW);digitalWrite(ledputih, LOW);
169.
170. }
delay(1000);
noTone(piezo);
}
exit(0);
}

Perintah void loop() ini, akan dijalankan setelah setup (fungsi void setup) selesai.
Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus
menerus sampai satu daya (power) dilepaskan. Penggunaan for untuk mengulang suatu
blok program yang terdapat di dalam kurung kurawal setelah pernyataan “for”. Pada
for(int i=0; i<36; i++) berarti inisiasi; kondisi; statement. int=0 berarti menyimpan
hitungan perulangan. Hitungan i<36 artinya selama nilai hitungannya lebih kecil dari
36, maka pengulangan akan terus dilakukan. Hitungan ++ fungsinya untuk menambah
satu (+1) nilai hitungan pada setiap pengulangan. Statement if yaitu memiliki kata kunci
“if” dan diikuti oleh buka kurung lalu tutup kurung. Di dalam dua kurung itu terdapat
ekspresi yang melakukan kalkulasi untuk mengecek suatu keadaan, apakah benar atau
44

salah. Kemudian diikuti oleh buka kurung kurawal “{”, tanda ini menunjukkan bahwa
blok statement dimulai, kemudian diikuti oleh statement yang akan dieksekuasi atau
running jika pengujian if adalah benar. If==1 yang diikuti oleh statement
digitalwrite(ledhijau, HIGH) berarti jika nilai 1 disimulasikan maka akan menghasilkan
LED hijau yang menyala. Statement else if berlaku apabila nilai i sudah bukan bernilai
1. Selanjutnya apabila if tidak bernilai 1 lagi, maka muncul statement else if (i==2),
pada statement ini ledhijau yang tadinya menyala akan mati dan led biru akan menyala.
Hal ini berlaku seterusnya sesuai dengan perintah nilai tiap i. Sesuai dengan sketch
program ini, nilai i akan terus bertambah hingga nilainya sampai dengan 35. Jika nilai i
sudah melebihi nilai tersebut, maka proses akan berhenti. tone(piezo,50,1000) berarti
piezo sebagai pin, frekuensinya 50Hz, durasinya 1000 milidetik, begitu pula dengan
selanjutnya. Serial.println yaitu sintak program yang digunakan untuk mengirimkan
data text ke Serial port arduino, dimana data tersebut ada yang berupa data text static
dan data angka yang dapat berubah-ubah. Tiap i kelipatan 7 piezo akan menyala dan
setiap piezo ini menyala frekuensinya akan bertambah sebanyak 25 Hz.
Secara ringkas program diatas akan menampilkan output lampu akan menyala
berurutan 1,2,3,4,5 lalu lampu 1,2,3 menyala secara bersamaan. Ketika ketiga lampu
tersebut meyala bersamaan speaker pun ikut menyala dengan frekuensi 50 Hz lalu
kemudian mati kembali. Setelah itu lampu 4,5 menyala secara bersamaan kemudian
mati kembali. Semuanya berulang selama 5 kali karena ada loop() , pembedanya hanya
pada frekuensi speakernya saja yang semakin meningkat, yaitu 50 Hz, 75 Hz, 100 Hz,
125 Hz, 150 Hz. Dengan demikian, berakhir sketch program menggunakan perintah
exit(0).
DAFTAR PUSTAKA
Wicaksono, Sigit Nugroho.(2017). Aplikasi Kran Otomatis Berbasis Arduino. Thesis.
Yogyakarta: STMIK AKAKOM Yogyakarta.
Mulyana, Eka & Kharisman, Rindi.(2014). Perancangan Alat Peringatan Dini Bahaya
Banjir dengan Mikrokontroler Arduino Uno R3. Citec Journal.1(3): 173.
Pauzan, Muhammad.(2020). Bahasa Pemrograman Arduino. Yogyakarta: K-Media.
Nusyirwan, Deny & Alfarizi.(2019). “Fun Book” Rak Buku Otomatis Berbasis Arduino
Dan Bluetooth Pada Perpustakaan Untuk Meningkatkan Kualitas Siswa.
Jurnal Ilmiah Pendidikan Teknik Kejuruan.12(2): 100-101.
Anggie Intan, Sari.(2016). Rancang Bangun Backup Power Pada Speaker Multimedia
Berbasis Mikrokontoler Atmega16. Thesis. Palembang: Politeknik Negeri
Sriwijaya.
Faridha, Moethia & Saputra, M. Dahlan.(2016). Analisa Pemakaian Daya Lampu Led
Pada Rumah Tipe 36. Jurnal Teknologi Elektro, Universitas Mercu
Buana.7(3): 194.
Sofiana dkk.(2017). Identifikasi Nilai Hambat Jenis Arang Tempurung Kelapa dan
Arang Kayu Mangrove sebagai Bahan Alternatif Pengganti Resistor Film
Karbon. Unnes Physics Journal.6(1): 2.

45
LAMPIRAN
Catatan:
(Lembar Asistensi)

46

Anda mungkin juga menyukai