Anda di halaman 1dari 31

JURNAL PRAKTIKUM

INTERNET OF THINGS

MODUL 3
INTEGRASI INPUT PROCESS DAN OUTPUT DALAM ARDUINO

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

DEPARTEMEN TEKNIK INDUSTRI


FAKULTAS TEKNIK UNIVERSITAS DIPONEGORO
SEMARANG
2021
DAFTAR ISI (HRS OTOMATIS)

DAFTAR ISI..............................................................................................................ii
DAFTAR GAMBAR.................................................................................................iii
BAB I PENJELASAN UMUM PROGRAM............................................................1
1.1 Sensor Ultrasonik...........................................................................................1
1.1.1 Pengertian Sensor Ultrasonik.........................................................................1
1.1.2 Cara Kerja Sensor Ultrasonik........................................................................2
1.1.3 Penerapan Sensor Ultrasonik.........................................................................3
1.2 Penjelasan Skenario Pada Modul...................................................................5
BAB II FLOWCHART...............................................................................................6
2.1 Flowchart Program........................................................................................6
2.2 Penjelasan Flowchart Program......................................................................10
BAB III PROGRAM ARDUINO..............................................................................12
3.1 Sketch Program..............................................................................................12
3.2 Penjelasan Sketch Program............................................................................16
DAFTAR PUSTAKA
LAMPIRAN

ii
DAFTAR TABEL(HRS OTOMATIS)

Tabel 3.1 Sketch Program..........................................................................................13

iii
DAFTAR GAMBAR(HRS OTOMATIS)

Gambar 1.1 Gambar 1.1 Ultrasonic Distance Sensor................................................3


Gambar 1.2 Cara Kerja Sensor Ultrasonik................................................................4
Gambar 2.1 Flowchart Program................................................................................7

iv
BAB I
PENJELASAN UMUM PROGRAM

1.1 Sensor Ultrasonik


1.1.1 Pengertian Sensor Ultrasonik

Gambar 1.1 Ultrasonic Distance Sensor


Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran
fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan
pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk
menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai
sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi
ultrasonik). Gelombang ultrasonik ini mempunyai frekuensi sangat tinggi yaitu 20.000
Hz. (Adella et al., 2020)
Pada sensor ultrasonik terdapat empat buah pin yaitu pin VCC, Trig, Echo dan
GND. Setiap pin ini memiliki fungsi yang berbeda-beda. Pin VCC merupakan pin
dengan power supply sebesar 5V dan berfungsi sebagai sumber tegangan positif sensor,
sedangkan pin GND merupakan pin ground dengan power supply sebesar 0V dan
berfungsi sebagai sumber tegangan negatif sensor. Selanjutnya adalah pin Trig, pin ini
disebut juga trigger atau penyulut artinya pin ini berfungsi untuk membangkitkan sinyal
ultrasonik dan yang terakhir ialah pin Echo, pin Echo merupakan pin yang digunakan
untuk mendeteksi sinyal pantulan ultrasonik. (Elezer, 2020)

1
Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia. Bunyi ultrasonik
bisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di
permukaan zat padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan
zat cair. Akan tetapi, gelombang bunyi ultrasonik dapat diserap oleh tekstil dan busa.

1.1.2 Cara Kerja Sensor Ultrasonik

Gambar 1.2 Cara Kerja Sensor Ultrasonik


Seperti yang sudah disebutkan sebelumnya prinsip kerja atau cara kerja dari
sensor ultrasonik ini didasarkan pada prinsip pantulan suatu gelombang suara sehingga
dari pantulan tersebut nantinya dapat ditafsirkan menjadi jarak suatu benda dengan
menggunakan frekuensi tertentu. Gelombang ultrasonik dibangkitkan melalui sebuah
alat yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik
gelombang ultrasonik umumnya memiliki frekuensi 40kHz. Ketika sebuah osilator
diterapkan pada benda tersebut. Secara umum, sensor ultrasonik akan menembakkan
gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang
menyentuh permukaan target, maka target tersebut akan memantulkan kembali
gelombang ultrasonik ini. Gelombang pantulan dari target akan ditangkap oleh sensor,
kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu
gelombang pantul. Untuk menghitung jarak benda menggunakan sensor ultrasonik
dirumuskan sebagai berikut:
340 ⋅t
S=
2

2
Dengan S merupakan jarak, t adalah selisih antara waktu pemancaran
gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver dan
340 adalah angka cepat rambat suara dalam udara yaitu 340 m/s. Dalam rangkaian
Arduino ini menggunakan sensor ultrasonik HC-SR04. HC-SR04 merupakan sensor
ultrasonik yang berfungsi sebagai pengirim, penerima, dan pengontrol gelombang
ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari 2cm-4m dengan
akurasi 3mm. Mikrokontroller bisa bekerja pada order mikrosekon (1s = 1.000.000 μs)
dan satuan jarak bisa kita ubah ke satuan cm (1m = 100cm). Oleh sebab itu, rumus di
atas menjadi:

S=340 ( 1000000
100
) .t ∕ 2
S= ( 0,034
2
⋅t)

HC-SR04 memiliki 4 buah pin yang memiliki fungsi berbeda yaitu pin Vcc,
Gnd, Trigger, dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya. Pin
Trigger untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap
sinyal pantul dari benda. (Limantara et al., 2017)

1.1.3 Penerapan Sensor Ultrasonik


Sensor ultrasonik dapat diterapkan dalam berbagai bidang dalam kehidupan.
Berikut merupakan penerapan sensor ultrasonik di beberapa bidang kehidupan:
(Website Mahir Elektro,2021)
a. Bidang Kesehatan
Dalam bidang kesehatan biasanya gelombang ultrasonik digunakan untuk
mendiagnosis berbagai penyakit yang dialami oleh pasien dengan mendeteksi
organ- organ dalam tubuh seorang pasien, contohnya penyakit tumor/ kanker,
liver, otak dan lainya. Selanjutnya gelombang ultrasonik juga dapat
dimanfaatkan untuk alat USG (Ultrasonografi) yang digunakan untuk melihat
keadaan janin pada ibu hamil. Selain itu, USG yang memanfaatkan gelombang

3
ultrasonik ini dapat untuk mendeteksi kista, miom, dan tumor payudara. Selain
digunakan untuk mendiagnosis, sinar ultrasonik juga dapat digunakan untuk
menghancurkan tumor, sebab gelombang ultrasonik ini dapat digunakan untuk
merusak jaringan tubuh tertentu. Bahkan dengan teknologi terbaru sinar
ultrasonik dapat digunakan untuk menghancurkan batu ginjal serta operasi mata
dari katarak.
b. Bidang Industri
Dalam bidang industri, gelombang ultrasonik digunakan untuk mendeteksi
keretakan pada logam, meratakan campuran besi dan timah. Gelombang
ultrasonik juga bisa digunakan untuk mendeteksi keberadaan mineral maupun
minyak bumi yang tersimpan di dalam perut bumi. Selain itu penggunaan sensor
ultrasonik juga banyak ditemui di pabrik-pabrik, yaitu sebagai pengukur level
muatan pada tangki baik itu berupa zat cair maupun padat, mensterilkan
makanan yang diawetkan dalam kaleng, dan membersihkan benda benda yang
sangat halus.
c. Bidang Pertanian
Dalam bidang pertanian, sensor ultrasonik digunakan untuk memantau tanaman,
aplikasi pupuk, pengukuran level, dan aplikasi lainnya. Sensor ultrasonik juga
digunakan untuk memantau sistem irigasi untuk mencegah over watering dan
under watering sebagai pencegahan terhadap kerusakan tanaman. Sensor
ultrasonik juga digunakan untuk memantau dan mengontrol aplikasi insektisida,
pupuk, dan pestisida. Pestisida digunakan secara luas pada tanaman untuk
memastikan kesehatan yang baik dan hasil yang maksimal. Sering kali, pestisida
ini digunakan secara berlebihan, yang menyebabkan pemborosan. Oleh karena
itu, dengan mengadopsi sensor ultrasonik dapat mendeteksi celah antara
tanaman dalam baris untuk disemprot di tempat-tempat yang tidak ada tanaman.
d. Bidang Militer
Dalam bidang militer, gelombang ultrasonik digunakan sebagai radar atau
navigasi, baik di darat maupun di dalam air. Gelombang ultrasonik biasanya
digunakan oleh kapal pemburu untuk mengetahui keberadaan kapal selam,
apabila sensor dipasang pada kapal selam maka digunakan untuk mengetahui

4
keberadaan kapal yang berada di atas permukaan air. Selain itu, gelombang
ultrasonik juga dimanfaatkan untuk mengukur kedalaman palung laut,
mendeteksi ranjau, dan menentukan posisi sekelompok ikan.

e. Bidang Otomotif
Dalam bidang otomotif, aplikasi sensor ultrasonik yang umum sekarang ini
adalah sistem keamanan saat berkendara pada mobil. Sensor ultrasonik akan
mendeteksi rintangan dan memperingatkan bahkan mengerem sebelum
kemungkinan terjadinya tabrakan di lingkungan lalu lintas yang padat. Sensor
tersebut ditempatkan pada bumper depan dan belakang sehingga membantu
dalam menentukan kecepatan dan jarak melalui gelombang suara. Selain itu,
sensor ultrasonik juga digunakan pada sistem parkir mobil otomatis.

1.2 Penjelasan Skenario Pada Modul


Pada skenario 11 ini praktikan diminta untuk dapat merakit rangkaian Arduino
beserta komponen-komponennya dan dapat menjalankan programnya. Dalam skenario
11 ini rangkaian pada Arduino R3 ini terdiri atas 3 lampu LED, 1 sensor ultrasonik,
breadboard, kabel jumper, dan resistor. Dalam rangkaian ini sensor ultrasonik diatur
memiliki 2 mode yang digunakan sebagai input pada serial monitor.
Pada mode 1, 1 LED akan menyala ketika jarak yang dibaca sensor berada di
antara 95cm dan 80cm dan pada serial monitor akan menunjukkan jarak sekaligus
keterangan bahwa jarak tersebut aman. Selanjutnya, 2 LED akan menyala ketika jarak
yang dibaca sensor berada di antara 80cm dan 50cm dan pada serial monitor akan
menunjukkan jarak yang terbaca sekaligus keterangan bahwa jarak tidak aman. Keadaan
yang terakhir adalah 3 LED akan menyala ketika jarak yang dibaca sensor berada di
bawah 50cm dan pada serial monitor akan menunjukkan jarak sekaligus keterangan
bahwa jarak bahaya.
Sedangkan untuk mode 2, 1 LED akan menyala ketika jarak yang dibaca sensor
berada di antara 45cm dan 65cm dan pada serial monitor akan menunjukkan jarak
sekaligus keterangan bahwa objek dekat. Selanjutnya 2 LED akan menyala ketika jarak
yang dibaca sensor berada di antara 65cm dan 85cm dan pada serial monitor akan

5
menunjukkan jarak sekaligus keterangan bahwa objek menjauh. Keadaan terakhir pada
mode 2 adalah 3 LED akan menyala ketika jarak yang dibaca sensor berada di atas
85cm dan pada serial monitor akan menunjukkan jarak sekaligus keterangan bahwa
objek hilang.

6
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 11.

7
Gambar 2.1 Flowchart Program

8
Gambar 2.1 Flowchart Program (Lanjutan)

9
Gambar 2.1 Flowchart Program (Lanjutan)

10
2.2 Penjelasan Flowchart Program
Setelah seluruh komponen sudah tersusun dengan benar, selanjutnya adalah
memulai pemrograman pada menu Code, lalu mempersiapkan penyimpanan untuk LED
dan sensor ultrasonik sebagai variabel yang akan diganti menggunakan nilai integer
sesuai dengan pin-pin yang sudah dipasangkan. Ledmerah dipasangkan pada pin nomor
4, ledkuning dipasangkan pada pin nomor 5, dan ledhijau dipasangkan pada pin nomor
6, pin echo dipasangkan pada pin nomor 2 dan pin trigger dipasangkan pada pin nomor
3. Setelah mempersiapkan storage yang dilakukan adalah membuat void setup
menggunakan pinMode. Semua LED dan sensor ultrasonik akan diatur sebagai output.
Lalu dalam void setup ini juga akan ditambahkan serial.begin 9600 untuk mengatur
kecepataan transfer data ke serial monitor. Setelah itu mengatur void setup ledmerah
OUTPUT, ledkuning OUTPUT, ledhijau OUTPUT, trig OUTPUT, dan echo INPUT
dengan serial.begin(9600). Langkah selanjutnya adalah mengatur void distance
measurement.
Langkah selanjutnya adalah menjalankan simulasi dan membuka serial monitor.
Setelah itu, jika menginput angka 1 ke serial monitor maka akan menjalankan mode 1,
tetapi jika tidak menginput angka 1 maka akan melanjutkan ke proses input 2. Apakah
proses input 2 berhasil? Jika iya maka akan melanjutkan ke input 2 tetapi, jika tidak
maka proses akan selesai. Namun, jika input berhasil maka yang terjadi selanjutnya
adalah sistem akan melanjutkan ke proses selanjutnya yang dimana jika jarak lebih dari
80 cm dan kurang dari 95 cm maka LED hijau akan menyala sekaligus menunjukkan
keterangan “aman” dengan delay 0,75 second. Jika tidak maka akan lanjut ke proses
selanjutnya dimana jarak lebih dari 50 cm dan kurang dari 80 cm maka LED merah dan
kuning akan menyala sekaligus menunjukkan keterangan “tidak aman” dengan delay
0,75 second, jika tidak maka akan lanjut ke proses selanjutnya dimana jarak kurang dari
50 cm maka LED merah, kuning, dan hijau akan menyala sekaligus menunjukkan
keterangan “bahaya” dengan delay 0,75 second. Jika tetap menjalankan mode 1, maka
proses yang akan berjalan sama. Jika tidak, komputer akan melanjutkan ke proses input
2 dimana jika input 2 tidak berhasil maka akan dilanjutkan ke proses input 1 dan jika
proses input 1 berhasil maka akan mengulang ke proses input 1 tetapi, jika tidak maka
akan berakhir di input 3.

11
Namun, jika input 2 berhasil maka sistem akan melanjutkan ke proses
selanjutnya dimana jarak lebih dari 45 cm dan kurang dari 65 cm jika ya maka akan
membuat LED hijau menyala dengan delay 0,75 second tetapi jika tidak maka akan
melanjutkan ke proses selanjutnya dimana jarak lebih dari 65 cm dan kurang dari 85 cm
jika ya maka akan membuat LED merah dan kuning menyala dengan delay 0,75 second
tetapi jika tidak akan melanjutkan ke proses selanjutnya dimana jarak lebih dari 85 cm
jika ya maka akan menyalakan LED merah, kuning, dan hijau dengan delay 0,75 second
kemudian jika tetap menjalankan mode 2 maka akan kembali ke proses yang sama.
Jika tidak akan lanjut ke input void loop. Pada void loop ini, terdapat perintah
untuk membaca jika angka 1 diinputkan pada serial monitor maka fungsi void led 1
akan berjalan dan jika yang diinputkan angka 2 pada serial monitor, maka yang akan
berjalan adalah fungsi void led 2. Kemudian jika menginput angka 3 pada serial
monitor, lalu proses akan selesai.

12
BAB III
PROGRAM ARDUINO

3.1 Sketch Program


Jika kita ingin program dapat berjalan sesuai dengan skenario 11, maka yang
dilakukan sebelum kita memulai pemrograman adalah merangkai komponen Arduino
dengan benar. Berikut merupakan gambar rangkaian dari program pada skenario 11.

Gambar 3.1 Rangkaian Program Arduino

Setelah membuat rangkaian Arduino selanjutnya adalah membuat Code. Code


ini dibuat dengan tujuan untuk menjalankan program yang sesuai dengan skenario 11.
Coding yang dituliskan pada menu Code akan dituangkan pada sketch program. Sketch
program merupakan kode program yang dituliskan untuk membuat, mengedit, dan juga
mevalidasi kode program pada Arduino. Berikut merupakan sketch dari program pada
skenario 11.

13
Tabel 3.1 Sketch Program (TAMBAHIN KETERANGAN LG)
1. // C++ code
2. // skenario 11
3. //
4.
5. const int ledmerah = 4 ;
6. const int ledkuning = 5 ;
7. const int ledhijau = 6 ;
8. #define echo 2 //pin echo
9. #define trig 3 //pin trigger
10.
11. long duration;
12. float distance;
13.
14.
15. void setup()//inisialisasi program
16. {
17. pinMode(ledmerah, OUTPUT);
18. pinMode(ledkuning, OUTPUT);
19. pinMode(ledhijau, OUTPUT);
20. pinMode(trig, OUTPUT);
21. pinMode(echo, INPUT);
22. Serial.begin(9600);
23. }
24.
25. void distance_measurement()//inisialisasi fungsi untuk menghitung
26. jarak
27. {
28. digitalWrite(trig, LOW);
29. delayMicroseconds(2);
30. digitalWrite(trig, HIGH);

14
delayMicroseconds(10);
Tabel 3.1 Sketch Program (Lanjutan)
31. digitalWrite(trig, LOW);
32.
33. duration = pulseIn(echo, HIGH);
34. distance = duration*(0.0343)/2;
35. }
36.
37. // mode 1
38. void led1()
39. {
40. distance_measurement();
41. if (distance >= 80 && distance <= 95){
42. digitalWrite(ledmerah, LOW);
43. digitalWrite(ledkuning, LOW);
44. digitalWrite(ledhijau, HIGH);
45. Serial.println("Jarak :" + (String)distance + "(aman)");//mencetak jarak
46. }
47. else if (distance >= 50 && distance <= 80){
48. digitalWrite(ledmerah, HIGH);
49. digitalWrite(ledkuning, HIGH);
50. digitalWrite(ledhijau, LOW);
51. Serial.println("Jarak :" + (String)distance + "(tidak aman)");
52. }
53. else if (distance < 50){
54. digitalWrite(ledmerah, HIGH);
55. digitalWrite(ledkuning, HIGH);
56. digitalWrite(ledhijau, HIGH);
57. Serial.println("Jarak :" + (String)distance + "(bahaya)");
58. }

15
59. delay(750);
60. }
Tabel 3.1 Sketch Program (Lanjutan)
61.
62. // mode 2
63. void led2()
64. {
65. distance_measurement();
66. if (distance >= 45 && distance <= 65){
67. digitalWrite(ledmerah, LOW);
68. digitalWrite(ledkuning, LOW);
69. digitalWrite(ledhijau, HIGH);
70. Serial.println("Jarak :" + (String)distance + "(objek dekat)");
71. }
72. else if (distance >= 65 && distance <= 85){
73. digitalWrite(ledmerah, HIGH);
74. digitalWrite(ledkuning, HIGH);
75. digitalWrite(ledhijau, LOW);
76. Serial.println("Jarak :" + (String)distance + "(objek menjauh)");
77. }
78. else if (distance > 85){
79. digitalWrite(ledmerah, HIGH);
80. digitalWrite(ledkuning, HIGH);
81. digitalWrite(ledhijau, HIGH);
82. Serial.println("Jarak :" + (String)distance + "(objek hilang)");
83. }
84. delay(750);
85. }
86.
87. void loop()//inisialisasi pengulangan program

16
88. {
89. char input = Serial.read();
90. while (Serial.available() == 0){
Tabel 3.1 Sketch Program (Lanjutan)
91. if (input == '1'){
92. led1();
93. } else if (input == '2'){
94. led2();
95. } else if (input == '3'){
96. digitalWrite(ledmerah, LOW);
97. digitalWrite(ledkuning, LOW);
98. digitalWrite(ledhijau, LOW);
99. exit(0);
100. }
101. }
102. }

3.2 Penjelasan Sketch Program


Berikut merupakan penjelasan sketch program (TAMBAHIN LGI GAES)
1. // C++ code
2. // skenario 11
3. //
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.
4.
5. const int ledmerah = 4 ;
6. const int ledkuning = 5 ;
7. const int ledhijau = 6 ;

17
8. #define echo 2 //pin echo
9. #define trig 3 //pin trigger
10
. long duration;
11 float distance;
.
12
.
13
.
14
.
Deklarasi const dan #define digunakan untuk mendefinisikan sebuah variabel
(pin input - output) dengan nama variabel baru, fungsi mendefinisikan variabel ini agar
dalam pembuatan program kita lebih mudah mengingat nama variablenya, Perbedaan
utama dari const dan #define adalah bahwa penggunaan variabel dengan const akan
mengikuti aturan variabel scoping pada bahasa C++, jadi penggunaan variabel tersebut
dapat dibatasi. Sedangkan #define tidak terbatas oleh scope, jadi berlaku di semua
bagian kode. Seperti deklarasi pada baris 5-9 yang mendefinisikan pin-pin input-output
menjadi sebuah variabel yang berarti pin 4, 5, 6 pada arduino didefinisikan sebagai led
merah, kuning dan hijau. Dan untuk pin 2 dan 3 didefinisikan sebagai pin echo dan
trigger pada sensor ultrasonik yang terhubung. Kemudian untuk baris 11 terdapat
penggunaan tipe data long yang digunakan ketika integer tidak mencukupi lagi untuk
variabel duration dan pada baris 12 penggunaan tipe data float (angka desimal) pada
variabel distance.
15. void setup()//inisialisasi program
16. {
17. pinMode(ledmerah, OUTPUT);//set pin led1
18. pinMode(ledkuning, OUTPUT);//set pin led2
19. pinMode(ledhijau, OUTPUT);//set pin led3

18
20. pinMode(trig, OUTPUT);//set pin trigger
21. pinMode(echo, INPUT);//set pin echo
22. Serial.begin(9600);//mendaftarkan serial
23. }
24.
Pada fungsi bertipe void berarti menjalankan perintah-perintah saja tanpa
memiliki value. Dan pada fungsi void setup ( ) digunakan 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 dan sensor ultrasonik yang ditancapkan pada
pin tersebut. LED dan pin trigger sensor ultrasonik pada void setup() ini,
dijalankan sebagai output, sedangkan untuk pin echo sensor ultrasonik
dijalankan sebagai input. Perintah Serial.begin(9600) berarti membuat koneksi
serial band rate 9600. Band berkaitan dengan jumlah bit yang akan ditransfer
setiap detik.
25. void distance_measurement()//inisialisasi fungsi untuk menghitung
26. jarak
27. {
28. digitalWrite(trig, LOW);
29. delayMicroseconds(2);
30. digitalWrite(trig, HIGH);
31. delayMicroseconds(10);
32. digitalWrite(trig, LOW);
33.
34. duration = pulseIn(echo, HIGH);
35. distance = duration*(0.0343)/2;
36. }

Pada fungsi void distance_measurement() merupakan sebuah fungsi yang dibuat


khusus dan digunakan untuk menginisialisasi sebuah fungsi yang diinginkan pada
percobaan kali ini yaitu untuk menghitung jarak menggunakan sensor ultrasonik. Yang

19
dimulai dengan mematikan pin trigger dan kemudian setelah jeda selama 2
microseconds pin tingger kembali menyala dan jeda kembali selama 10 microseconds
sebelum pin trigger kembali mati.
Dan sedangkan untuk deklarasi duration pada baris ke 32 yang terdapat Fungsi
pulseIn() yang akan memerintahkan sistem untuk menunggu hingga pin Echo bernilai
HIGH. Lama proses menunggu akan dianggap sebagai durasi pengiriman + penerimaan
sinyal echo yang dipantulkan oleh benda. Sedangkan pada deklarasi distance bermakna
mendefinisikan satuan cm untuk jarak dengan menggunakan rumus deklarasi distance
dikali (0,0343) dibagi 2.
37. // mode 1
38. void led1()
39. {
40. distance_measurement();
41. if (distance >= 80 && distance <= 95){
42. digitalWrite(ledmerah, LOW);
43. digitalWrite(ledkuning, LOW);
44. digitalWrite(ledhijau, HIGH);
45. Serial.println("Jarak :" + (String)distance + "(aman)");
46. }
47. else if (distance >= 50 && distance <= 80){
48. digitalWrite(ledmerah, HIGH);
49. digitalWrite(ledkuning, HIGH);
50. digitalWrite(ledhijau, LOW);
51. Serial.println("Jarak :" + (String)distance + "(tidak aman)");
52. }
53. else if (distance < 50){
54. digitalWrite(ledmerah, HIGH);
55. digitalWrite(ledkuning, HIGH);
56. digitalWrite(ledhijau, HIGH);
57. Serial.println("Jarak :" + (String)distance + "(bahaya)");
58. }

20
59. delay(750);
60. }
61.
Fungsi void led1() berisi perintah-perintah untuk menjalankan skenario yang
diinginkan, dimana pada fungsi ini menggambarkan mode 1 yang bekerja pada sensor
ultrasonik yang dihubungkan. Fungsi ini diawali dengan memasukkan fungsi
distance_measurement() yang telah dibuat sebelumnya agar perintah yang ada dalam
fungsi void led1() ini juga mengacu terhadap fungsi distance_measurement().
Kemudian diikuti oleh statement yang akan dieksekusi atau running, jika
pengujian statement if(distance >= 80 && distance <= 95) benar maka akan diikuti
oleh statement digitalWrite(ledhijau, HIGH) yang berarti jika sensor mendeteksi pada
jarak antara 80 hingga 95 cm disimulasikan maka akan menghasilkan ledhijau yang
menyala dan menghasilkan kalimat “Jarak :….cm (aman)” pada serial monitor yang
merupakan efek dari perintah Serial.println("Jarak :" + (String)distance + "(aman)").
Serial.println merupakan sebuah fungsi yang digunakan untuk mengirimkan data ke
port serial monitor yang membuat baris baru pada pengulangannya dan (String)distance
digunakan untuk mencetak nilai jarak. Statement else if berlaku apabila nilai jarak
sudah bukan bernilai 80 hingga 95 cm lagi.
Selanjutnya apabila jarak yang terdeteksi tidak lagi bernilai 80 hingga 95 cm,
maka akan berlaku statement else if (distance >= 50 && distance <= 80), pada
statement ini ledhijau yang tadinya menyala akan mati dan led merah dan kuning akan
menyala dan data yang dihasilkan pada serial monitor berupa “Jarak :...cm (tidak
aman)” hal ini juga disebabkan karena adanya perintah Serial.println("Jarak :" +
(String)distance + "(tidak aman)").
Dan apabila jarak yang terdeteksi tidak lagi bernilai 50 hingga 80 cm, maka akan
berlaku statement else if (distance < 50) dimana pada statement ini ketiga led yaitu led
merah, kuning, dan hijau akan menyala bersamaan dan menghasilkan data “Jarak :...cm
(bahaya)” pada serial monitor yang disebabkan adanya perintah Serial.println("Jarak :"
+ (String)distance + "(bahaya)")
62. // mode 2
63. void led2()

21
64. {
65. distance_measurement();
66. if (distance >= 45 && distance <= 65){
67. digitalWrite(ledmerah, LOW);
68. digitalWrite(ledkuning, LOW);
69. digitalWrite(ledhijau, HIGH);
70. Serial.println("Jarak :" + (String)distance + "(objek dekat)");
71. }
72. else if (distance >= 65 && distance <= 85){
73. digitalWrite(ledmerah, HIGH);
74. digitalWrite(ledkuning, HIGH);
75. digitalWrite(ledhijau, LOW);
76. Serial.println("Jarak :" + (String)distance + "(objek menjauh)");
77. }
78. else if (distance > 85){
79. digitalWrite(ledmerah, HIGH);
80. digitalWrite(ledkuning, HIGH);
81. digitalWrite(ledhijau, HIGH);
82. Serial.println("Jarak :" + (String)distance + "(objek hilang)");
83. }
84. delay(750);
85. }
86.
Kemudian pada fungsi void led2() juga berisi perintah-perintah untuk
menjalankan skenario yang diinginkan, namun pada fungsi ini menggambarkan mode 2
yang bekerja pada sensor ultrasonik yang dihubungkan. Fungsi ini juga diawali dengan
memasukkan fungsi distance_measurement() yang telah dibuat sebelumnya agar
perintah yang ada dalam fungsi void led2() ini juga mengacu terhadap fungsi
distance_measurement().
Kemudian diikuti oleh statement yang akan dieksekusi atau running, jika
pengujian statement if (distance >= 45 && distance <= 65) benar maka akan diikuti

22
oleh statement digitalWrite(ledhijau, HIGH) yang berarti jika sensor mendeteksi pada
jarak antara 45 hingga 65 cm disimulasikan maka akan menghasilkan led hijau yang
menyala dan menghasilkan kalimat “Jarak :…..cm (objek dekat)” pada serial monitor
yang merupakan efek dari perintah Serial.println("Jarak :" + (String)distance + "( objek
dekat)"). Serial.println merupakan sebuah fungsi yang digunakan untuk mengirimkan
data ke port serial monitor yang membuat baris baru pada pengulangannya dan
(String)distance digunakan untuk mencetak nilai jarak.
Selanjutnya apabila jarak yang terdeteksi tidak lagi bernilai 45 hingga 65 cm,
maka akan berlaku statement else if (distance >= 65 && distance <= 85), pada
statement ini led merah dan kuning akan menyala dan data yang dihasilkan pada serial
monitor berupa “Jarak :…..cm (objek menjauh)” hal ini juga disebabkan karena adanya
perintah Serial.println("Jarak :" + (String)distance + "( objek menjauh").
Dan apabila jarak yang terdeteksi tidak lagi bernilai 65 hingga 85 cm, maka akan
berlaku statement else if (distance > 85) dimana pada statement ini ketiga led yaitu led
merah, kuning, dan hijau akan menyala bersamaan dan menghasilkan data “Jarak :
…..cm (objek hilang)” pada serial monitor yang disebabkan adanya perintah
Serial.println("Jarak :" + (String)distance + "( objek hilang)")
87. void loop()//inisialisasi pengulangan program
88. {
89. char input = Serial.read();
90. while (Serial.available() == 0){
91. if (input == '1'){
92. led1();
93. } else if (input == '2'){
94. led2();
95. } else if (input == '3'){
96. digitalWrite(ledmerah, LOW);
97. digitalWrite(ledkuning, LOW);
98. digitalWrite(ledhijau, LOW);
99. exit(0);
100 }

23
. }
101 }
.
102
.
Perintah void loop() ini, Setelah dijalankan satu kali fungsi ini maka akan
dijalankan lagi, dan lagi secara terus menerus sampai satu daya (power) dilepaskan.
Pada perintah ini terdapat deklarasi char input = Serial.read() yang berarti setiap
character yang diinput didefinisikan sebagai membaca data yg diterima. Kemudian
perintah while () untuk melakukan perulangan berdasarkan suatu kondisi, jadi
banyaknya perulangan tidak bisa ditentukan dengan pasti. Dalam while terdapat
pengecekan suatu kondisi, yaitu Serial.available() == 0
Pada void loop() ini juga terdapat perintah if (input == '1'){led1();} yang
bermakna jika kita menginput nilai 1 pada serial monitor maka program yang akan
berjalan terhadap arduino merupakan mode 1 yaitu void led1() namun jika kita
menginput angka 2 maka yang akan berlaku merupakan statement else if (input == '2')
{led2();} yang berarti program yang akan berjalan terhadap arduino adalah mode 2 atau
fungsi void led2(). Jika kita menginput angka 3 pada serial monitor maka setiap lampu
akan padam dan program akan berakhir yang ditandai dengan perintah exit(0).

24
DAFTAR PUSTAKA

Adella, A.Farha dkk.(2020). Sistem Pintu Cerdas Menggunakan Sensor Ultrasonic


Berbasis Internet Of Things. Jurnal Media Elektrik.17(3): 3
Elezer, Lizer M. (2019). Aplikasi Sensor Ultrasonik Hc-Sr04 Sebagai Jarak Iring Aman
Pada Kendaraan Berbasis Arduino Nano. Skripsi. Sumatera Utara:
Universitas Sumatera Utara.
Faridha, Moethia & Saputra, M. Dahlan. (2016). Analisa Pemakaian Daya Lampu Led
Pada Rumah Tipe 36. Jurnal Teknologi Elektro, Universitas Mercu
Buana.7(3): 194.
Limantara, Arthur Daniel, dkk. 2017. Pemodelan Sistem Pelacakan Lot Parkir Kosong
Berbasis Sensor Ultrasonic Dan Internet Of Things (Iot) Pada Lahan Parkir
Diluar Jalan. Proceedings of Seminar Nasional Sains dan Teknologi,
Jakarta: 1-2 November 2017. Hal. 3
Mahirelektro.com (2021, 22 April). Cara Kerja Sensor Ultrasonik dan Aplikasinya
Dalam Kehidupan. Diakses pada 14 November 2021 dari
https://www.mahirelektro.com/2020/11/cara-kerja-sensor-ultrasonik-dan-
aplikasinya.html
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.
Wicaksono, Sigit Nugroho. (2017). Aplikasi Kran Otomatis Berbasis Arduino. Thesis.
Yogyakarta: STMIK AKAKOM Yogyakarta.

25
LAMPIRAN

26
KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN
UNIVERSITAS DIPONEGORO FAKULTAS TEKNIK
Jl. Prof. H. Soedarto, S.H. DEPARTEMEN TEKNIK INDUSTRI
Tembalang – Semarang
Telp. (024) 7460052; Fax. (024) 7460052

LEMBAR ASISTENSI
PRAKTIKUM INTERNET OF THINGS
LABORATORIUM DECISION SUPPORT SYSTEM

Modul :3
Kelompok : 01
Nama Asisten : Fadia Syahrina

Asistensi ke-
Nama NIM
1 2 3
Indah Nur Jayanti 21070121120009  
Ahmad Mumtaza 21070121140046  
RM Hendratama Rafi S. 21070121140045  
Almira Oktapazia 21070121140146  
No. Materi Asistensi Approve
 Bab 1 (Pin-pin pada sensor ultrasonik)
 Bab 2 (Flowchart dan penjelasan)
1
 Bab 3 (Sketch dan Penjelasannya)
 Formatting
 Bab 1 (Formatting)
2  Bab 2 (Flowchart)
 Bab 3 (Penambahan keterangan, formatting)

27

Asisten,

Anda mungkin juga menyukai