Post on 30-Nov-2021
i
TUGAS AKHIR
TUGAS AKHIR
SMART MODULAR TRAFFIC LIGHT BERBASIS
ESP8266
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
ANTHONY HEATUBUN
NIM: 165114045
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ii
FINAL PROJECT
FINAL PROJECT
SMART MODULAR TRAFFIC LIGHT BASED ON
ESP8266
In a partial fulfillment of the requirement
For the degree of Sarjana Teknik
Department of Electrical Engineering
Faculty of Science and Technology Sanata Dharma University
ANTHONY HEATUBUN
NIM: 165114045
DEPARTMENT OF ELECTRICAL ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
2020
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
vi
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO:
“Dan bahwasannya manusia tiada
memperoleh selain apa yang telah
diusahakannya”
- An Najm: 39 -
Skripsi ini kupersembahkan kepada
Tuhan yang Maha Esa,
Orang Tua dan Kakak,
Teman-teman seperjuangan,
Semua orang yang peduli
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
viii
INTISARI
Dewasa ini masih banyak terdapat lampu lalu lintas menggunakan kabel untuk
menghubungkan setiap lampu dari semua sisi jalan ke kontroler utamanya sehingga
membutuhkan kabel yang panjang. Pengaturan lampu lalu lintas yang dibuat memiliki
kontrol terpusat pada satu kontroler yang tetap sehingga bila terjadi kerusakan pada kontroler
utama, keseluruhan sistem akan tergganggu.
Untuk menanggulangi hal tersebut dibuat sistem lampu lalu lintas berbentuk modul
dan menggunakan komunikasi antar modul secara wireless sehingga tidak membutuhkan
kabel yang panjang. Pada penelitian ini dibuat 4 modul lampu lalu lintas yang digunakan
pada perempatan jalan. Modul yang dibuat memiliki karakteristik yang sama dan dapat
difungsikan sebagai server maupun client dan jika terjadi kerusakan pada server, modul
client dapat menggantikan server yang rusak sehingga keseluruhan sistem tidak terganggu.
Setiap modul lampu lalu lintas terdiri dari Esp8266, RTC, puss button dan switch SPDT.
Pengaturan durasi lampu dilakukan melalui web. Data yang diatur pada web dikirim ke
server. Server bertugas untuk menyediakan data pewaktuan, melakukan counting durasi
lampu dan memberikan data ketika terdapat request dari client. Client menyalakan lampu
sesuai dengan data yang diterima dari server.
Hasil penelitian ini menunjukan bahwa sistem lampu lalu lintas yang dibuat dalam
bentuk modul dapat berfungsi sebagai server maupun client. Jika terjadi kerusakan pada
server, modul client dapat menggantikan server yang rusak. Keempat modul lampu lalu
lintas dapat tersinkronisasi dengan baik. Jarak maksimum komunikasi ideal yang dapat
dijangkau pada penelitian yang dibuat adalah 41,8 meter.
Kata Kunci: Wireless, ESP8266, Server, Client, web
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ix
ABSTRACT
Today there are still many traffic lights using cables to connect each lamp from all
sides of the road to the main controller so it requires a long cable. The traffic light settings
made have centralized control on one fixed controller so that if there is damage to the main
controller, the whole system will be disrupted.
To overcome this a traffic light system is made in the form of modules and uses
communication between modules wirelessly so that no long cables are needed. In this study,
4 traffic light modules were used at the crossroad. Modules made have the same
characteristics and can function as a server or client and if there is damage to the server, the
client module can replace the damaged server so that the entire system is not interrupted.
Each traffic light module consists of Esp8266, RTC, puss button and SPDT switch. Lamp
duration settings are done via the web. Data arranged on the web is sent to the server. The
server has the duty to provide timing data, calculate the duration of the lights and provide
data when there is a request from the client. The client turns on the lights according to the
data received from the server.
The results of this study indicate that the traffic light system created in the form of
modules can communicate wirelessly. If there is damage to the server, the client module can
replace the damaged server. The four traffic light modules can be synchronized properly.
The maximum ideal communication distance that can be reached in the research made is
41.8 meters.
Key words: Wireless, ESP8266, Server, Client, Web
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xi
DAFTAR ISI
TUGAS AKHIR ..................................................................................................................... i
FINAL PROJECT ................................................................................................................. ii
LEMBAR PERSETUJUAN ................................................................................................. iii
LEMBAR PENGESAHAN .................................................................................................. iv
PERNYATAAN KEASLIAN KARYA ................................................................................ v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ..................................................... vi
HALAMAN PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK
KEPENTINGAN AKADEMIS ........................................................................................... vii
INTISARI ........................................................................................................................... viii
ABSTRACT ......................................................................................................................... ix
KATA PENGANTAR ........................................................................................................... x
DAFTAR ISI ........................................................................................................................ xi
DAFTAR GAMBAR ........................................................................................................... xv
DAFTAR TABEL ............................................................................................................. xvii
BAB I PENDAHULUAN ..................................................................................................... 1
1.1 Latar Belakang ........................................................................................................ 1
1.2 Tujuan dan Manfaat ................................................................................................ 2
1.3 Batasan Masalah ..................................................................................................... 2
1.4 Metodologi Penelitian ............................................................................................. 3
BAB II DASAR TEORI ........................................................................................................ 5
2.1 Lampu Lalu Lintas (Traffic Light) .......................................................................... 5
2.2 ESP8266[4] ............................................................................................................. 6
2.3 Software Arduino IDE ............................................................................................ 7
2.4 World Wide Web [9] ............................................................................................... 8
2.4.1 Pengertian ........................................................................................................ 8
2.4.2 Cara Kerja Web ............................................................................................... 8
2.4.3 Web Server ....................................................................................................... 9
2.4.4 HTML ............................................................................................................ 10
2.5 TCP/IP .................................................................................................................. 10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xii
2.5.1 Pengertian ...................................................................................................... 10
2.5.2 TCP/IP Layer ................................................................................................. 11
2.6 Wi-Fi[12] .............................................................................................................. 13
2.6.1 Access Point (AP)[13] ................................................................................... 13
2.7 LED (Light Emitting Diode) ................................................................................. 14
2.8 Real Time Clock (RTC) DS3231 .......................................................................... 15
2.9 JSON[17] .............................................................................................................. 16
BAB III PERANCANGAN PENELITIAN ........................................................................ 18
3.1 Blok Diagram Perancangan .................................................................................. 18
3.2 Perancangan Perangkat Keras ............................................................................... 19
3.2.1 Prototype Modul Lampu Lalu Lintas ............................................................ 19
3.2.2 Rangkaian pada Modul Lampu Lalu Lintas .................................................. 20
3.3 Perancangan Tampilan Halaman Web .................................................................. 22
3.4 Perancangan Perangkat Lunak .............................................................................. 24
3.4.1 Diagram Alir Program Utama ....................................................................... 24
3.4.2 Diagram Alir Sub Rutin Pencarian Jaringan ................................................. 25
3.4.3 Diagram Alir Sub Rutin Server ..................................................................... 26
3.4.4 Diagram Alir Sub Rutin Client ...................................................................... 30
3.4.5 Diagram Alir Sub Rutin Pergantian Client .................................................... 30
3.4.6 Diagram Alir Sub Rutin Pergantian Server ................................................... 31
3.4.7 Daigram Alir Utama Web.............................................................................. 32
BAB IV HASIL DAN PEMBAHASAN ............................................................................. 34
4.1 Perubahan Perancangan ........................................................................................ 34
4.1.1 Perubahan Desain Prototype ......................................................................... 34
4.1.2 Penambahan Software untuk Menyimpan Data ke EEPROM ...................... 36
4.1.3 Perubahan dan Penambahan Tampilan Web ................................................. 36
4.1.4 Perubahan Nilai Resistor yang Digunakan .................................................... 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiii
4.2 Implementasi Penelitian ........................................................................................ 38
4.2.1 Bentuk Fisik Modul ....................................................................................... 38
4.2.2 Rangkaian Elektronik Modul ........................................................................ 39
4.3 Proses Kerja Sistem .............................................................................................. 41
4.4 Cara penggunaan Modul ....................................................................................... 41
4.5 Pengujian Keberhasilan ........................................................................................ 43
4.5.1 Pengujian Kemampuan Modul sebagai Server/Client ................................... 43
4.5.2 Pengujian Pengiriman Data ........................................................................... 48
4.5.3 Pengujian Timer Lampu Lalu Lintas ............................................................. 63
4.5.4 Pengujian Sikronisasi Lampu Lalu Lintas ..................................................... 64
4.5.5 Pengujian Perubahan Client Menjadi Server ................................................. 68
4.5.6 Pengujian Pergantian Client yang Rusak ...................................................... 71
4.5.7 Pengujian Jarak Komunikasi Server dengan Client ...................................... 73
4.5.8 Pengujian Ketahanan Komunikasi Server dengan Client .............................. 74
4.6 Analisis Perangkat Lunak (Software) ................................................................... 75
4.6.1 Library yang Digunakan pada Program ........................................................ 75
4.6.2 Variabel yang Digunakan pada Program ....................................................... 76
4.6.3 Listing Program Konfigurasi Jaringan ........................................................... 77
4.6.4 Listing Program Konfigurasi I/O ................................................................... 78
4.6.5 Listing Program Scanning SSID .................................................................... 78
4.6.6 Listing Program Pengaturan Modul sebagai Server/Client ........................... 79
4.6.7 Listing Program Sub Rutin Request Data ke Server ...................................... 80
4.6.8 Listing Program Sub Rutin Konversi Data ke JSON ..................................... 82
4.6.9 Listing Program Sub Rutin Konversi Data Pengaturan Web ........................ 83
4.6.10 Listing Program Sub Rutin Pengaturan Penyalaan Lampu ........................... 84
4.6.11 Listing Program Penyimpanan Data ke EEPROM ........................................ 85
4.6.12 Listing Program Sub Rutin Monitoring ......................................................... 86
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xiv
4.6.13 Listing Program Halaman Web ..................................................................... 88
4.6.14 Listing Program Utama .................................................................................. 91
BAB V KESIMPULAN DAN SARAN .............................................................................. 94
5.1 Kesimpulan ........................................................................................................... 94
5.2 Saran ..................................................................................................................... 94
DAFTAR PUSTAKA .......................................................................................................... 95
LAMPIRAN ...................................................................................................................... L-1
Lampiran 1 ..................................................................................................................... L-2
Lampiran 2 ..................................................................................................................... L-3
Lampiran 3 ..................................................................................................................... L-4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xv
DAFTAR GAMBAR
Gambar 1.1 Perancangan Diagram Blok Sistem ............................................................... 3
Gambar 2.1 NodeMCU Esp8266[4] ................................................................................. 6
Gambar 2.2 Skematik Posisi Pin NodeMCU[5] ............................................................... 6
Gambar 2.3 Arduino IDE[8] ............................................................................................. 8
Gambar 2.4 Skema Kerja Web[9] ..................................................................................... 9
Gambar 2.5 Perbandingan OSI Layer dan TCP/IP Layer[10] ........................................ 11
Gambar 2.6 Simbol dan Bentuk Fisik LED[14] ............................................................. 14
Gambar 2.7 Rangkaian Dasar Menyalakan LED[14] ..................................................... 15
Gambar 2.8 Rangkaian Modul RTC[16] ........................................................................ 16
Gambar 2.9 JSON Object[17] ......................................................................................... 17
Gambar 2.10 JSON Array[17] ....................................................................................... 17
Gambar 3.1 Blok Diagram Perancangan Modul ............................................................ 18
Gambar 3.2 Rangkaian Lampu Lalu Lintas (a) tampak depan, (b) tampak samping, (c)
tampak atas, (d) tampak belakang ....................................................................................... 20
Gambar 3.3 Rangkaian Lampu Lalu Lintas pada Modul ............................................... 21
Gambar 3.4 Tampilan Halaman Web ............................................................................ 22
Gambar 3.5 Waktu Siklus Lampu Lalu Lintas Semua Modul ....................................... 23
Gambar 3.6 Diagram Alir Program Utama .................................................................... 25
Gambar 3.7 Diagram Alir Sub Rutin Mencari Jaringan ................................................ 26
Gambar 3.8 Diagram Alir Pengaturan Waktu ................................................................ 27
Gambar 3.9 Diagram Alir Pengiriman Data .................................................................. 29
Gambar 3.10 Diagram Alir Sub Rutin Client ................................................................ 30
Gambar 3.11 Diagram Alir Sub Rutin Pergantian Client .............................................. 31
Gambar 3.12 Diagram Alir Sub Rutin Pergantian Server .............................................. 32
Gambar 3.13 Diagram Alir Utama Web ........................................................................ 33
Gambar 4.1 Perubahan Desain Prototype (a) tampak depan, (b) tampak belakang, (c)
tampak samping, (d) tampak atas, (e) penutup casis ........................................................... 35
Gambar 4.2 Perubahan Desain Prototype (a) tampilan halaman web monitoring semua
client terhubung, (b) tampilan halaman web monitoring tidak semua client terhubung ..... 38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvi
Gambar 4.3 Bentuk Fisik Modul (a) tampak depan, (b) tampak samping, (c) tampak
belakang, (d) tampak atas .................................................................................................... 39
Gambar 4.4 Rangkaian Elektronik Modul ..................................................................... 39
Gambar 4.5 Rangkaian Pull-up Resistor ....................................................................... 40
Gambar 4.6 Urutan Penyalaan Warna Lampu ............................................................... 41
Gambar 4.7 Tampilan Halaman Web Pengaturan Pewaktuan ....................................... 44
Gambar 4.8 Hasil Pengujian Kemampuan Modul sebagai Server (a) tampilan SSID
jaringan, (b) tampilan halaman web pengaturan ................................................................. 45
Gambar 4.9 Hasil Pengujian Kemampuan Modul sebagai Client (a) modul 1, (b) modul
2, (c) modul 3, (d) modul 4 .................................................................................................. 47
Gambar 4.10 Data yang Diatur pada Web ..................................................................... 49
Gambar 4.11 Data yang Tampil Pada Serial Monitor .................................................... 49
Gambar 4.12 Tampilan Web Pengiriman Data “status_lampu” (a) krtika URL
‘192.168.11.1/reset’ diakses, (b) ‘192.168.11.1/lanjut’ diakses .......................................... 50
Gambar 4.13 Tampilan Serial Monitor Data “status_lampu” (a) krtika URL
‘192.168.11.1/reset’ diakses, (b) ‘192.168.11.1/lanjut’ diakses .......................................... 51
Gambar 4.14 Hasil Pengujian Pertama Pengiriman Data dari Web ke Server ............... 51
Gambar 4.15 Data yang Dikirim dari Server ke Client.................................................. 53
Gambar 4.16 Data yang Diterima Client dari Server ..................................................... 53
Gambar 4.17 Data yang Dikirim Server dan Data yang Diterima Client ...................... 53
Gambar 4.18 Hasil Uji Coba Pengiriman Data dari Server ke Web (a) kondisi modul 1
hijau, (b) kondisi modul 2 hijau, (c) kondisi modul 3 hijau, (d) kondisi modul 4 hijau ..... 62
Gambar 4.19 Hasil Uji Coba Sinkronisasi (a) kondisi modul 1 hijau, (b) kondisi modul
2 hijau, (c) kondisi modul 3 hijau, (d) kondisi modul 4 hijau ............................................. 66
Gambar 4.20 Kondisi Ketika Server Menalami Kerusakan ........................................... 68
Gambar 4.21 Kondisi Ketika Client Melakukan Reconnecting dan Restart ................. 69
Gambar 4.22 Durasi perubahan server hingga kembali ke siklus normal (a) ketika server
modul 1 rusak, (b) ketika server modul 2 rusak, (c) ketika server modul 3 rusak, (d) ketika
server modul 4 rusak ........................................................................................................... 70
Gambar 4.23 Kondisi Awal Ketika Modul Client Baru Diberi Catudaya ........................ 71
Gambar 4.24 Skema Pengujian Jarak Komunikasi Modul ............................................ 74
Gambar 4.25 Library yang Digunakan pada Program ................................................... 75
Gambar 4.26 Variabel yang digunakan pada Program .................................................. 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
Gambar 4.27 Listing Program Konfiguras jaringan ....................................................... 77
Gambar 4.28 Listing Program Konfigurasi Port I/O ...................................................... 78
Gambar 4.29 Listing Program Scanning Jaringan ......................................................... 78
Gambar 4.30 Listing Program Pengaturan Server dan Client ........................................ 79
Gambar 4.31 Listing Program Sub Rutin Request Data ke Server ................................ 81
Gambar 4.32 Listing Program Sub Rutin Konversi Data ke JSON ............................... 82
Gambar 4.33 Listing Program Sub Rutin Konversi Data Pengaturan Web ................... 84
Gambar 4.34 Listing Program Sub Rutin Pengaturan Penyalaan Lampu ...................... 85
Gambar 4.35 Listing Program Penyimpanan Data ke EEPROM (a) pengaturan ukuran
byte EEPROM, (b) menyimpan data durasi ke EEPROM server, (c) membaca data dari
EEPROM, (d) menyimpan data ‘cc[0]’ ke EEPROM ......................................................... 86
Gambar 4.36 File Header untuk Mendapat Informasi Client ........................................ 86
Gambar 4.37 Listing Program Sub Rutin Monitoring ................................................... 87
Gambar 4.38 Listing Program Halaman Web Pengaturan ............................................. 88
Gambar 4.39 Listing Program Halaman Web Monitoring ............................................. 89
Gambar 4.40 Listing Program Utama ............................................................................ 91
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
xvii
DAFTAR TABEL
Tabel 2.1 Spesifikasi Esp8266 NodeMCU V3[4]................................................................ 7
Tabel 2.2 Tegangan Kerja Setiap Warna LED[15] ............................................................ 14
Tabel 3.1 Alamat IP Modul Lampu Lalu Lintas ................................................................ 22
Tabel 3.2 Format Komunikasi Data ................................................................................... 27
Tabel 3.3 Data Status Lampu dan Pengaruhnya pada Client ............................................. 27
Tabel 3.4 Keterangan dari Data yang Dikirim dan Diterima Modul ................................. 28
Tabel 3.5 Durasi Tunda Modul Berdasarkan Alamat IP ................................................... 32
Tabel 4.1 Perubahan Tampilan Web Setting Durasi .......................................................... 37
Tabel 4.2 Perbandingan Nilai Resistor .............................................................................. 38
Tabel 4.3 Hasil Pengujian Kemampuan Modul sebagai Server ........................................ 45
Tabel 4.4 Hasil Pengujian Kemampuan Modul sebagai Client ......................................... 48
Tabel 4.5 Hasil Pengujian Pengiriman Dara dari Web ke Server ...................................... 52
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client.................................... 54
Tabel 4.7 Hasil Pengujian Pengiriman Dara dari Server ke Web ...................................... 62
Tabel 4.8 Hasil Pengujian Timer Lampu Lalu Lintas........................................................ 63
Tabel 4.9 Hasil Pengujian Sikronisasi Lampu Lalu Lintas ............................................... 66
Tabel 4.10 Hasil Pengujian Perubahan Client menjadi Server .......................................... 70
Tabel 4.11 Hasil Pengujian Pergantian Client yang Rusak ............................................... 73
Tabel 4.12 Hasil Pengujian Jarak Komunikasi Server dengan Client ............................... 74
Tabel 4.13 Fungsi Variabel yang Digunakan pada Program ............................................. 76
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
1
1 BAB I
PENDAHULUAN
1.1 Latar Belakang
Traffic light atau lampu lalu lintas merupakan lampu yang digunakan untuk mengatur
kelancaran lalu lintas pada suatu persimpangan dengan cara memberi kesempatan pengguna
jalan dari masing-masing arah untuk berjalan secara bergantian[1]. Fungsi lampu lalu lintas
sangatlah penting sehingga lampu lalu lintas harus dapat dikontrol semudah dan seefisien
mungkin guna memperlancar arus lalu lintas di suatu persimpangan jalan. Saat ini sudah
banyak jenis pengaturan lampu lalu lintas yang digunakan. Namun, masih terdapat banyak
lampu lalu lintas menggunakan kabel bawah tanah untuk menghubungkan setiap lampu lalu
lintas di setiap persimpangan dengan kontroler utamanya sehingga dibutuhkan kabel yang
cukup panjang. Selain pengaturan lampu lalu lintas menggunakan kabel, terdapat juga
pengaturan lampu lalu lintas menggunakan sistem nirkabel (wireless).
Salah satu contoh sistem lampu lalu lintas wireless dibuat menggunakan
mikrokontroler Atmega 2560 sebagai master dan mikrokontroler Atmega 328 sebagai slave
dengan modul Xbee 2.4 GHz menggunakan topologi jariangan point to multipont untuk
komunikasinya. Sistem ini merupakan hasil penelitian yang sudah dibuat yaitu Pengaturan
Lampu Lalu Lintas Secara Nirkabel Bertenaga Surya[2]. Penelitian tersebut menggunakan
satu master dan beberapa slave yang sudah ditetapkan sebelumnya. Master menyediakan
data pewaktuan untuk setiap slave. Pengaturan master dan slave yang sudah ditetapkan
diawal memiliki kendala yakni bila master rusak maka semua sistem akan terganggu dan
lampu lalu lintas tidak akan berjalan sebagaimana mestinya.
Berbeda dengan sistem lampu lalu lintas yang dibuat pada penelitian di atas, sistem
yang akan dibuat pada penelitian ini adalah Smart Modular Traffic Light Berbasis Esp8266.
Smart Modular Traffic Berbasis Esp8266 adalah lampu lalu lintas yang dibuat dalam bentuk
modul. Modul memiliki komponen yang terdiri dari satu mikrokontroler Esp8266, satu RTC
DS3231, satu push button, tiga buah lampu LED yang terdiri dari satu LED merah, satu LED
kuning dan satu LED hijau serta terdapat tiga buah switch SPDT. Apabila modul hendak
digunakan pada perempatan jalan, dibutuhkan empat modul yang ditemapatkan pada setiap
sisi jalan. Setiap modul yang digunakan memiliki karakteristik yang sama berupa tampilan
fisik modul dan program yang digunakan. Kelebihan dari modul yang memiliki karakteristik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2
yang sama adalah setiap modul dapat difungsikan sebagai server maupun client. Kelebihan
lain dari modul ini adalah jika modul server mengalami masalah saat sistem sedang bekerja,
modul client dapat berubah menjadi server sehingga keseluruhan sistem tidak tergganggu.
Hal inilah yang menyebabkan modul lampu lalu lintas yang akan dibuat adalah modul yang
‘smart’.
Komunikasi antarmodul menggunakan Wi-Fi yang telah terintegrasi dengan Esp8266.
Cara kerja dari sistem lampu lalu lintas yang akan dibuat adalah satu modul diatur sebagai
server dan modul lainnya diatur sebagai client. Modul pertama yang diaktifkan secara
default menjadi server dan modul yang diaktifkan berikutnya menjadi client. Server bertugas
menyediakan data pewaktuan lampu di setiap modul yang diatur melalui web.
1.2 Tujuan dan Manfaat
Tujuan dari penelitian ini adalah:
Membuat prototipe sistem lampu lalu lintas berbasis mikrokontroler Esp8266 dalam
bentuk modul yang memiliki karakteristik sama berupa tampilan fisik modul dan program
yang digunakan. Komunikasi antarmodul secara wireless menggunakan Wi-Fi. Modul
server berfungsi menyediakan data pewaktuan untuk setiap modul client yang terdapat pada
web server.
Manfaat dari penelitian ini adalah:
1. Untuk masyarakat: menyediakan inovasi pada sistem lampu lalu lintas dan dapat
digunakan sebagai rujukan dalam pengembangan sistem lampu lalu lintas.
2. Untuk dunia pendidikan: mengembangkan penelitian pada sistem lampu lalu lintas dan
dapat digunakan sebagai acuan untuk pengembangan penelitian sistem lampu lalu
lintas yang lebih efektif dan efisien.
3. Untuk penulis: pengembangan diri dalam bidang pengendalian secara wireless dan
menambah wawasan penulis mengenai web sebagai interface dan pengendali pada
sistem lampu lalu lintas serta sebagai syarat kelulusan.
1.3 Batasan Masalah
Adapun beberapa batasan masalah dari penelitian ini guna menghindari
pelebaran masalah yang tidak sesuai dengan rancangan antara lain:
1. Menggunakan NodeMCU Esp8266 sebagai kontroler lampu lalu lintas.
2. Komunikasi antarmodul menggunakan Wi-Fi yang terdapat pada Esp8266.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
3. Alamat IP yang digunakan pada setiap modul adalah statik yang diatur melalui input
3 bit pada tiga port I/O NodeMCU ESP8266.
4. Menggunakan led merah, kuning dan hijau pada setiap modul yang dibuat.
5. Sistem lampu lalu lintas yang dibuat digunakan pada perempatan.
6. Menggunakan modul RTC DS3231 sebagai penunjuk waktu real time.
7. Menggunakan satu push button sebagai tombol start.
1.4 Metodologi Penelitian
Berdasarkan tujuan yang ingin dicapai maka metode-metode yang digunakan yaitu:
1. Studi literatur yaitu mengumpulkan berbagai materi yang berkaitan dengan Esp8266,
web dan sistem komunikasi wireless menggunakan Wi-Fi serta jurnal-jurnal yang
berkaitan dengan sistem lampu lalu lintas.
2. Perancangan perangkat keras prototype modul sistem lampu lalu lintas dan
perancangan perangkat lunak seperti pembuatan web server, tampilan web dan
program pengendali lampu lalu lintas. Tahap ini bertujuan untuk mencari bentuk
optimal dari sistem yang akan dibuat dengan mempertimbangkan faktor permasalahan
dan ketersediaan komponen, seperti pada gambar 1.1.
Gambar 1.1 Perancangan Diagram Blok Sistem
3. Pembuatan Perangkat keras dan perangkat lunak. Berdasarkan gambar 1.1, perangkat
keras yang dibuat adalah empat buah modul lampu lalu lintas. Modul server berfungsi
menyediakan data pewaktuan untuk tiga modul lain yang berfungsi sebagi client.
Pembuatan perangkat lunak untuk tampilan web dan web server serta program untuk
pengendali pewaktuan pada setiap modul. Cara kerja dari perangkat lunak yaitu durasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4
penyalaan lampu lalu lintas dilakukan melalui web. Instruksi dari web kemudian
disimpan pada web server dan dikirimkan kepada semua modul. Modul server akan
menyediakan data pewaktuan pada modul client dengan durasi penyalaan lampu sesuai
dengan yang diatur pada web.
4. Uji coba dan pengambilan data untuk menguji alat yang telah dibuat sudah sesuai
dengan yang diharapkan. Data yang diambil berupa durasi penyalaan lampu pada tiap
modul dan pengujian status modul yang dapat difungsikan sebagi server maupun client
serta komunikasi antarmodul.
5. Analisis dan penyimpulan dari hasil uji coba. Analisis data dilakukan dengan
membandingkan data durasi pada setiap modul sudah sesuai dengan yang diatur atau
tidak dan keberhasilan komunikasi antarmodul yang telah dibuat. Kesimpulan dibuat
berdasarkan tingkat keberhasilan dari alat yang dibuat. Indikator keberhasilan dari alat
yang dibuat adalah komunikasi antarmodul yang dibuat berhasil, pengaturan durasi
penyalaan lampu pada tiap modul sesuai dengan pengaturan yang ada di web dan
urutan penyalaan lampu pada tiap modul sehingga tidak ada modul yang menyalakan
lampu hijau secara bersamaan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
2 BAB II
DASAR TEORI
2.1 Lampu Lalu Lintas (Traffic Light)
Lampu lalu lintas menurut UU No. 22/2009 tentang lalu lintas dan angkutan jalan ialah
alat pemberi isyarat lalu lintas atau (APILL) merupakan lampu yang mengendalikan arus
lalu lintas yang terpasang di persimpangan jalan, tempat penyeberangan pejalan kaki (zebra
cross), dan tempat arus lalu lintas lainnya[3]. Pemasangan lampu lalu lintas bertujuan untuk
mengatur sirkulasi kendaraan pada persimpangan jalan agar tidak terjadi kecelakaan. Oleh
karena itu, lampu lalu lintas menjadi bagian sangat penting guna memperlancar lalu lintas di
setiap kota.
Terdapat dua jenis lampu lalu lintas yaitu lampu lalu lintas berdasarkan cakupan dan
berdasarkan pengoperasian. Berdasarkan cakupan, lampu lalu lintas terdiri dari tiga jenis,
yaitu:
1. Lampu lalu lintas terpisah, yaitu lampu lalu lintas yang pemasangannya didasarkan pada
suatu tempat persimpangan saja tanpa mempertimbangkan persimpangan lain.
2. Lampu lalu lintas terkoordinasi, yaitu lampu lalu lintas yang pemasangannya
mempertimbangakan beberapa persimpangan yang terdapat pada arah tertentu.
3. Lampu lalu lintas jaringan, yaitu lalu lintas yang pemasangannya mempertimbangkan
beberapa persimpangan yang terdapat dalam suatu jaringan yang masih dalam satu
kawasan.
Berdasarkan pengoperasian, lampu lalu lintas terdiri dari dua jenis, yaitu:
1. Fixed time traffic signal , yaitu lampu lalu lintas yang pengoperasiannya menggunakan
waktu yang tetap dan tidak mengalami perubahan.
2. Actuated traffic signal, yaitu lampu lalu lintas yang pengoperasiaannya dengan
pengaturan waktu tertentu dan mengalami perubahan dari waktu ke waktu sesuai dengan
kedatangan kendaraan dari berbagai persimpangan.
Secara umum, warna lampu yang digunakan untuk lampu lalu lintas adalah warna
merah, warna kuning dan warna hijau. Merah menandakan berhenti atau sebuah tanda
bahaya, kuning menandakan hati-hati dan hijau menandakan boleh memulai berjalan dengan
hati-hati. Biasanya, lampu warna merah mengandung beberapa corak berwarna jingga dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
lampu hijau mengandung beberapa warna biru. Ini dimaksudkan agar orang-orang yang buta
warna merah dan hijau dapat mengerti sinyal lampu yang menyala.
2.2 ESP8266[4]
Penelitian ini menggunakan mikrokontroler Esp8266 berjenis Lolin NodeMCU
Esp8266 dengan penjelasan sebagai berikut:
NodeMCU pada dasarnya adalah pengembangan dari Esp8266 dengan firmware
berbasis e-Lua. Pada NodeMcu dilengkapi dengan micro usb port yang berfungsi untuk
pemrograman maupun power supply. Selain itu, pada NodeMCU dilengkapi dengan dua
tombol yaitu tombol reset dan flash. NodeMCU menggunakan bahasa pemrogramanan Lua
yang merupakan package dari Esp8266. Bahasa Lua memiliki logika dan susunan
pemrograman yang sama dengan C hanya berbeda syntax. Jika menggunakan bahasa Lua
maka dapat menggunakan tool Lua loader maupun Lua uploder. Selain dengan bahasa Lua
NodeMCU juga support dengan sofware Arduino IDE dengan melakukan sedikit perubahan
board manager pada Arduino IDE. Gambar fisik NodeMCU dapat dilihat pada gambar 2.1.
Gambar 2.1 NodeMCU Esp8266[4]
Gambar 2.2 Skematik Posisi Pin NodeMCU[5]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
7
Sebelum digunakan, board NodeMCU harus di Flash terlebih dahulu agar support
terhadap tool yang akan digunakan. Jika menggunakan Arduino IDE menggunakan firmware
yang cocok yaitu firmware keluaran dari Ai-Thinker yang support AT Command. Untuk
penggunaan tool loader Firmware yang di gunakan adalah firmware NodeMCU. Spesifikasi
NodeMCU ESP8266 dapat pada tabel 2.1.
Pada board Esp8266 seperti pada gambar 2.2, pin GPIO (1, 3, 9, 10) seringkali tidak
digunakan sebagai pin I/0. Sehingga hanya terdapat 9 pin GPIO yang dapat digunakan yaitu
GPIO (0, 2, 4, 5, 12, 13, 14, 15, 16) pada NodeMCU ESP8266[6]. Ada beberapa hal yang
perlu diperhatikan ketika hendak menggunakan NodeMCU Esp8266 yaitu pin I/O
NodeMCU memiliki tegangan kerja 3.3 volt dan tidak toleran dengan tegangan 5 volt karena
akan merusak NodeCU. Arus keluaran tiap pin I/O adalah sebesar 12mA dan memiliki range
tegangan masukan untuk ADC adalah 0 volt sampai 1 volt[7].
Tabel 2.1 Spesifikasi Esp8266 NodeMCU V3[4]
2.3 Software Arduino IDE
IDE (Integrated Development Environment) adalah program komputer yang memiliki
beberapa fasilitas yang diperlukan dalam pembangunan perangkat lunak. Tampilan software
Arduino IDE dapat dilihat pada gambar 2.3. Tujuan dari IDE adalah untuk menyediakan
semua utilitas yang diperlukan dalam membangun perangkat lunak. IDE Arduino digunakan
untuk membuat program atau source code, melakukan pengecekan kesalahan, kompilasi,
upload program dan menguji hasil kerja arduino melalui serial monitor.
Pada Adruino IDE memiliki toolbars IDE yang memberikan akses instan ke fungsi-
fungsi yang penting yaitu :
SPESIFIKASI NODEMCU V3
Mikrokontroller ESP8266
Ukuran Board 57 mm x 30 mm
Tegangan Input 3.3 ~ 5V
GPIO 13 PIN
Kanal PWM 10 Kanal
10 bit ADC Pin 1 Pin
Flash Memory 4 MB
Clock Speed 40/26/24 MHz
Wi-Fi IEEE 802.11 b/g/n
Frekuensi 2.4 GHz – 22.5 Ghz
USB Port Micro USB
Card Reader Tidak Ada
USB to Serial Converter CH340G
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
8
1. Verify, untuk mengkompilasi program yang saat ini dikerjakan.
2. Upload, untuk mengkompilasi program dan meng-upload ke papan adruino atau NodeMCU.
3. New, menciptakan lembar kerja baru.
4. Open, untuk membuka program yang ada di file sistem.
5. Save, untuk menyimpan program yang dikerjakan.
6. Stop, untuk menghentikan serial monitor yang sedang dijalankan.
Gambar 2.3 Arduino IDE[8]
2.4 World Wide Web [9]
2.4.1 Pengertian
World Wide Web (WWW) lebih dikenal dengan web merupakan salah satu layanan
yang didapat pemakai komputer yang terhubung ke internet. Pada awalnya web merupakan
ruang informasi dalam internet yang menggunakan teknologi hypertext. Pengguna web
dituntun untuk menemukan informasi dengan mengikuti link yang disediakan pada dokumen
web dan ditampilkan dalam web browser.
2.4.2 Cara Kerja Web
Web saat ini identik dengan internet karena web merupakan standar interface pada
layanan-layanan yang ada di internet mulai dari penyedia informasi, layanan komunikasi dan
melakukan transaksi bisnis (commerce). Web memiliki sistem kerja sendiri agar mampu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
9
melakukan semua layanan dapat berjalan dengan baik. Berikut merupakan cara kerja web
yaitu:
1. Informasi web disimpan dalam dokumen yang disebut halaman-halaman web (web
pages).
2. Web pages disimpan dalam komputer yang disebut server web (web server).
3. Web pages ini akan diakses oleh komputer yang disebut web client.
4. Web client menampilkan web pages menggunakan program yang disebut web browser.
Skema cara kerja web dapat dilihat pada gambar 2.4
Gambar 2.4 Skema Kerja Web[9]
2.4.3 Web Server
Web server adalah perangkat lunak (software) pada server yang berfungsi untuk
menerima permintaan (request) berupa halaman web melalui protokol HTTP atau HTTS dari
client (web browser) kemudian mengirimkan kembali (response) hasil permintaan tersebut
ke dalam bentuk halaman – halaman web yang umumnya berbentuk HTML. Sedangkan,
server adalah komputer yang digunakan untuk menyimpan dokumen-dokumen web[9].
Secara sederhana, tugas web server adalah menerima permintaan dari client dan
mengirimkan kembali berkas yang diminta oleh client. Cara kerja web server dalam
mengirimkan berkas yakni pada saat client (browser) meminta data web page pada server,
browser akan mengemas instruksi permintaan data tersebut ke dalam TCP (Transmission
Control Protocol) dan dikirim ke alamat HTTP atau HTTPS. Data yang diminta dari browser
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
10
ke web server disebut dengan HTTP request yang kemudian akan dicari oleh web server
pada komputer server. Jika data ditemukan, data tersebut dikemas oleh web server dalam
TCP dan dikirim kembali ke browser untuk ditampilkan. Data yang dikirim dari server ke
browser dikenal dengan HTTP response. Jika data yang diminta oleh browser tersebut tidak
ditemukan oleh web server maka web server akan menolak permintaan tersebut dan browser
akan menampilkan notifikasi Page Not Found atau Error 404.
2.4.4 HTML
HTML merupakan singkatan dari Hyper Text Markup Language. HTML adalah
bahasa pemrograman standar yang digunakan untuk membuat sebuah halaman web dan
dapat diakses untuk menampilkan berbagai informasi dalam sebuah web browser. HTML
berfungsi untuk mengelola serangkaian data dan informasi sehingga suatu dokumen dapat
diakses dan ditampilkan di internet melalui layanan web. HTML juga berfungsi untuk
menampilkan berbagai informasi di dalam sebuah browser, membuat link menuju halaman
web lain dengan kode tertentu.
Dokumen HTLM disusun oleh elemen-elemen. “Elemen” merupakan istilah bagi
komponen-komponen dasar pembentuk dokumen HTML. Beberapa contoh elemen yaitu
head, body, table, paragraph dan Listing. Elemen pada HTML ditandai oleh sebuah tag. Tag
HTML terdiri dari sebuah kurung sudut kiri (<), nama tag dan sebuah kurung sudut kanan
(>). Tag umumnya berpasangan dan selalu diawali dengan karakter garis miring (/). Tag
yang pertama merupakan awal elemen dan tag kedua menunjukan akhir elemen.
Elemen yang dibutuhkan untuk membuat suatu dokumen HTLM dinyatakan dengan
tag <html>, <head> dan <body> serta tag-tag pasangannya. Setiap dokumen terdiri atas tag
<head> dan <body>. Elemen head berisi informasi tentang dokumen tersebut, sedangkan
elemen body berisi teks yang tersusun dari link, grafik, paragraf dan elemen lainnya. Secara
umun dokumen web dibagi menjadi dua bagian (section), yaitu section head dan section
body.
2.5 TCP/IP
2.5.1 Pengertian
TCP/IP (Transmission Control Protocol/Internet Protocol) adalah suatu standar
komunikasi yang dapat digunakan untuk bertukar data antar komputer oleh suatu komunitas
yang tergabung melalui jaringan internet. TCP/IP merupakan salah satu networking model
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
11
yang terdiri dari sekumpulan dokumen yang berisi syarat-syarat yang agar suatu jaringan
dapat berfungsi dan juga aturan-aturan logis (protocol). Protocol adalah cara agar setiap
perangkat yang berbeda dapat saling berkomunikasi.
TCP/IP merupakan networking model komunikasi data dalam internet yang banyak
digunakan saat ini. Hal ini dikarenakan TCP/IP memiliki arsitektur yang lebih sederhana
dibandingkan dengan OSI ( Open System Interconnection). TCP/IP terdiri dari lima layer
sedangkan OSI terdiri dari 7 layer. Perbedaan kedua protokol komunikasi ini dapat dilihat
pada gambar 2.5.
Gambar 2.5 Perbandingan OSI Layer dan TCP/IP Layer[10]
2.5.2 TCP/IP Layer
2.5.2.1 Application Layer
Fungsi application layer adalah menyediakan layanan terhadap aplikasi yang berjalan
di komputer. Pada application layer terdapat salah satu application protocol yang disebut
application protocol HTTP. Contoh application protocol HTTP (Hypertext Transfer
Protocol) adalah web browser. Fungsi utama dari application layer adalah untuk
mendefinisikan bagaimana sebuah browser bisa mengambil konten dari sebuah web server
hingga akhirnya tampil di web browser.
Pada application layer, proses pertukaran data dilakukan oleh protokol HTTP. HTTP
adalah sebuah protokol meminta atau menjawab antara client dan server. Sebuah client
HTTP seperti web browser, biasanya memulai permintaan dengan membuat hubungan
TCP/IP ke port tertentu (biasanya port 80)[11]. Cara kerja protokol pada HTTP dalam
mentransmisikan data adalah sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
12
1. Komputer client atau HTTP client akan membuat sambungan dan mengirimkan
permintaan dokumen pada web server,
2. HTTP server akan memproses permintaan dokumen tersebut dan HTTP client menunggu
respon dari web server,
3. Web server akan merespon permintaan melalui kode status data dan menutup sambungan
saat proses permintaan selesai.
2.5.2.2 Transport Layer
Transport layer pada TCP/IP disebut juga sebagai host-to-host. Fungsi transport layer
adalah membangun koneksi antar host. Host dapat berupa client atau server. Terdapat
beberapa protokol pada transport layer. Salah satu protokol yang dikenal adalah TCP
(Transmission Control Protocol). TCP bertugas menjamin data yang diminta dan yang
dikirim sama. Oleh karena itu, TCP memecah data-data (segments) kemudian
mengirimkannya berdasarkan Sequence Number (SEQ). Proses inilah yang disebut dengan
TCP error recovery. Proses TCP error recovery adalah sebagai berikut:
1. Server mengirim segment-segment dengan beberapa sequence number client,
2. Namun, pada sequence number tertentu, segment gagal terkirim,
3. Setelah client menerima semua data, ternyata terdapat data yang lost maka client meminta
server untuk mengirimkan kembali segment yang lost pada sequence number tertentu
tersebut.
2.5.2.3 Internet Layer
Pada internet layer terdapat salah satu protokol yang paling dikenal yaitu IP atau
Internet Protocol. Beberapa fungsi dari IP adalah sebagai berikut:
1. Addressing, yakni melengkapi setiap datagram dengan alamat internet dari tujuan. Alamat
pada protokol inilah yang dikenal dengan Internet Protocol Address ( IP Address).
Pengalamatan (addressing) pada jaringan TCP/IP berada pada level ini (software) .
2. Routing, yakni menentukan ke mana datagram akan dikirim agar mencapai tujuan yang
diinginkan. Fungsi ini merupakan fungsi terpenting dari Internet Protocol (IP). Router-
router pada jaringan TCP/IP merupakan bagian yang sangat menentukan dalam
penyampaian datagram dari pengirim ke penerima.
2.5.2.4 Data Link Layer
Data link layer mempunyai fungsi menyalurkan frame-frame data pada media fisik
yang digunakan. Lapisan ini biasanya memberikan service untuk deteksi dan koreksi
kesalahan dari data yang ditransmisikan. Beberapa contoh protokol yang digunakan pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
13
lapisan ini adalah X.25 untuk jaringan publik, Ethernet untuk jaringan etehernet, AX.25
untuk jaringan Paket Radio.
2.5.2.5 Physical Layer
Lapisan fisik merupakan lapisan terbawah yang mendefinisikan besaran fisik seperti
media komunikasi, tegangan dan arus. Data yang dikirim pada physical layer berupa nilai
bit. Lapisan ini dapat bervariasi bergantung pada media komunikasi pada jaringan yang
bersangkutan. TCP/IP bersifat fleksibel sehingga dapat mengintegralkan berbagai jaringan
dengan media fisik yang berbeda-beda.
2.6 Wi-Fi[12]
Wi-Fi atau Wireless Fidelity adalah suatu standar Wireless Networking tanpa kabel,
hanya dengan komponen yang sesuai dapat terkoneksi ke jaringan. Teknologi Wi-Fi
memiliki standar yang ditetapkan oleh institusi internasional yang bernama Institute of
Electrical and Electronic Enginners (IEEE). Secara umum, standar teknologi Wi-Fi adalah
sebagai berikut:
1. Standar IEEE 802.11a yaitu Wi-Fi dengan frekuensi 5 GHz yang memiliki kecepatan 54
Mbps dan jangkauan jaringan 300 m.
2. Standar IEEE 802.11b yaitu Wi-Fi dengan frekuensi 2,4 GHz yang memiliki kecepatan
11 Mbps dan jangkauan jaringan 100 m.
3. Standar IEEE 802.11g yaitu Wi-Fi dengan frekuensi 2,4 GHz yang memiliki kecepatan
54 Mbps dan jangkauan jaringan 300 m.
2.6.1 Access Point (AP)[13]
Access point merupakan salah satu perangkat dalam jaringan komputer yang berguna
untuk membuat jaringan nirkabel yang sifatnya lokal atau disebut dengan istilah Wireless
Local Area Network (WLAN). Pada access point terdapat antena dan transceiver,
komponen ini bertugas untuk memancarkan dan menerima sinyal dari client dan
server ataupun menuju client dan server.
Access point memiliki fungsi utama sebagai pemancar sinyal internet. Access
point juga memiliki beberapa fungsi lainnya seperti sebagai Dynamic Host Configuration
Protocol (DHCP) server sehingga mampu memberikan IP address di setiap perangkat yang
terhubung. Fungsi lainnya yakni menggantikan fungsi hub yang menghubungkan jaringan
lokal nirkabel dengan jaringan kabel. Disamping ketiga fungsi tersebut, access point dapat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
14
memberikan fitur keamanan WEP (Wired Equivalent Privacy) dan WAP (Wireless
Application Protocol) .
2.7 LED (Light Emitting Diode)
LED adalah dioda yang dapat memancarkan cahaya jika diberikan arus bias maju
(forward bias). LED dapat memancarkan cahaya karena menggunakan dopping galium,
arsenic dan phosporus. Jenis dopping yang berbeda di atas dapat menghasilkan cahaya
dengan warna yang berbeda[14]. Setiap warna LED memiliki tegangan kerja yang berbeda.
Tegangan kerja setiap warna LED dapat dilihat pada tabel 2.2. Arus bias maju puncak LED
sebesar 60 mA dengan rata-rata arus bias maju tipikal sebesar 20 mA[15]. Pada rangkaian
LED dipasang sebuah resistor sebagai pembatas arus. Simbol LED dan bentuk fisik led dapat
dilihat pada gambar 2.6.
Teknik pemasangan LED agar dapat bekerja adalah dengan memberikan tegangan bias
maju (tegangan positif) pada kaki anoda dan tegangan negatif pada kaki katoda. Pembatas
arus pada dioda dilakukan dengan memasangkan resistor secara seri pada salah satu kaki
LED. Rangkaian dasar untuk menyalakan LED dapat dilihat pada gambar 2.7.
Tabel 2.2 Tegangan Kerja Setiap Warna LED[15]
Gambar 2.6 Simbol dan Bentuk Fisik LED[14]
Warna LED Tegangan Kerja (V)
Merah 1,8
Kuning 2,1
Hijau 2,1
Putih 4,1
Orange 2,0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
15
Gambar 2.7 Rangkaian Dasar Menyalakan LED[14]
Besarnya rata-rata arus bias maju tipikal pada LED adalah 20 mA, sehingga nilai
resistor dapat ditentukan. Besarnya nilai resistor berbanding lurus dengan besarnya tegangan
sumber yang digunakan. Secara matematis besarnya nilai resistor pembatas arus LED dapat
ditentukan menggunakan persamaan berikut:
𝑅 = 𝑉−𝑉𝑎𝑏 (𝑣𝑜𝑙𝑡)
0.02 𝐴𝑚𝑝𝑒𝑟𝑒 (2.1)
Dimana:
𝑅 = resistor pembatas arus (Ohm)
𝑉 = tegangan sumber yang digunakan untuk men-supply tegangan ke LED (Volt)
𝑉𝑎𝑏 = tegangan kerja LED (Volt)
0.02 𝐴𝑚𝑝𝑒𝑟𝑒 = rata-rata arus bias maju tipikal LED (20 mA)
2.8 Real Time Clock (RTC) DS3231
Modul DS3231 RTC adalah salah satu jenis modul yang berfungsi sebagai RTC (Real
Time Clock) atau pewaktuan digital serta penambahan fitur pengukur suhu yang dikemas
kedalam satu IC. Pada modul ini juga terdapat IC EEPROM berjenis AT24C32 yang dapat
dimanfaatkan. Interface (antarmuka) untuk mengakses modul ini yaitu menggunakan I2C
atau two wire (SDA dan SCL). Modul DS3231 RTC pada umumnya sudah tersedia dengan
battery CR2032 3V yang berfungsi sebagai back up RTC apabila catu daya utama mati.
Rangkaian modul RTC DS3231 dapat dilihat pada gambar 2.8.
RTC DS3231 memiliki banyak kelebihan dibandingkan RTC DS1302, DS3231 RTC.
Sebagai contoh, untuk range tegangan input antara 2.3V sampai 5.5V dan memiliki cadangan
baterai. Berbeda dengan DS1307, pada DS3231 memiliki kristal terintegrasi (sehingga tidak
diperlukan kristal eksternal), sensor suhu, 2 alarm waktu terprogram, pin output 32.768 kHz
untuk memastikan akurasi yang lebih tinggi. Selain itu, terdapat juga EEPROM AT24C32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
16
yang bisa memberi Anda 32Kb EEPROM untuk menyimpan data, ini adalah pilihan terbaik
untuk aplikasi yang memerlukan fitur data logging, dengan presisi waktu yang lebih tinggi.
Gambar 2.8 Rangkaian Modul RTC[16]
2.9 JSON[17]
JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan,
mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate)
oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript,
Standar ECMA-262 Edisi ke-3 Desember 1999. JSON merupakan format teks yang tidak
bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang
umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl,
Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa
pertukaran data[17]. JSON terbuat dari dua struktur berikut, yaitu:
1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai
objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash
(hash table), daftar berkunci (keyed Listing), atau associative array.
2. Daftar nilai terurutkan (an ordered Listing of values). Pada kebanyakan bahasa, hal ini
dinyatakan sebagai larik (array), vektor (vector), daftar (Listing), atau urutan
(sequence).
Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua
bahasa pemprograman modern mendukung struktur data ini dalam bentuk yang sama
maupun berlainan. JSON menggunakan bentuk sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
17
1. Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan ‘‘
(kurung kurawal buka) dan diakhiri dengan ‘’ (kurung kurawal tutup). Setiap nama
diikuti dengan ‘:’ (titik dua) dan setiap pasangan nama/nilai dipisahkan oleh ‘,’ (koma).
Gambar 2.9 JSON Object[17]
2. Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan ‘[’ (kurung kotak
buka) dan diakhiri dengan ‘]’ (kurung kotak tutup). Setiap nilai dipisahkan oleh ‘,’
(koma).
Gambar 2.10 JSON Array[17]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
18
3 BAB III
PERANCANGAN PENELITIAN
Bab ini menjelaskan tentang perancangan “Smart Modular Traffic Light berbasis
ESP8266” yang terdiri dari blok diagram, perancangan hardware dan perancangan software.
Prototipe yang dibuat adalah sistem lampu lalu lintas yang terdiri dari empat modul yang
digunakan pada simpang empat. Setiap modul memiliki karakteristik yang sama berupa
tampilan fisik dan software yang digunakan. Salah satu modul berfungsi sebagai server dan
modul lainnya sebagai client. Keempat modul berkomunikasi secara wireless menggunakan
Wi-Fi. Pengaturan pewaktuan untuk setiap modul lampu lalu lintas dilakukan melalui web.
3.1 Blok Diagram Perancangan
Perancangan alat ini terdiri dari empat buah modul lampu lalu lintas. Setiap modul
lampu lintas terdiri dari satu NodeMCU Esp8266, satu led merah, satu led kuning, satu led
hijau, satu modul RTC DS3231, tiga switch SPDT dan satu puss button. Setiap modul
memiliki karakteristik yang sama sehingga setiap modul dapat difungsikan sebagai server
maupun client. Blok diagram perancangan modul lampu lalu lintas dapat dilihat pada gambar
3.1.
Gambar 3.1 Blok Diagram Perancangan Modul
Blok diagram yang ditunjukkan pada gambar 3.1 mewakili satu modul. Dalam
implementasinya terdapat empat modul yang memiliki blok diagram yang sama dengan
gambar 3.1. Keempat modul tehubung secara wireless menggunakan modul Wi-Fi yang
sudah tersedia pada NodeMCU Esp8266.
Power
Supply
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
19
3.2 Perancangan Perangkat Keras
Perangkat keras yang digunakan pada sistem ini berupa NodeMcu Esp8266, lampu
LED, Real Time Clock (RTC) dan tiga buah switch SPDT. NodeMCU Esp8266 berfungsi
sebagai mikrokontroller sekaligus sebagai modul komunikasi karena terdapat modul Wi-Fi
yang telah terintegrasi. Lampu LED digunakan sebagai lampu lalu lintas pada modul. RTC
berfungsi untuk mengatur kondisi penyalaan lampu lalu lintas pada waktu tententu. Tiga
buah switch yang berfungsi memberi nilai masukan 3 bit ke port NodeMCU ESP8266 yang
bertujuan memberikan alamat IP pada tiap modul.
3.2.1 Prototype Modul Lampu Lalu Lintas
Pembuatan desain prototype modul lampu lalu lintas menggunakan software
Coreldraw. Terdapat empat desain modul lampu lalu lintas yang dibuat. Desain modul lampu
lalu lintas dapat dilihat pada gambar 3.2. Gambar 3.2(a) menunjukkan desain modul tampak
depan. Gambar 3.2(b) menunjukkan desain modul tampak samping. Gambar 3.2(c)
menunjukkan desain modul tampak atas dan gambar 3.2(d) menunjukkan desain modul
tampak belakang.
(a) (b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
20
(c) (d)
Gambar 3.2 Rangkaian Lampu Lalu Lintas (a) tampak depan, (b) tampak samping, (c)
tampak atas, (d) tampak belakang
Keterangan gambar 2.2 (c) dan gambar 2.2 (d):
1. Modul NodeMCU ESP8266
2. Switch (terlihat dari dalam)
3. Resistor
4. Konektor
5. Switch (terlihat dari luar)
6. Port micro USB
7. PCB
8. Lampu LED
9. Tiang penyangga
10. Alas tiang penyangga.
11. Tombol Start
3.2.2 Rangkaian pada Modul Lampu Lalu Lintas
Rangkaian lampu lalu lintas yang terdapat di dalam modul lampu lalu lintas dapat
dilihat pada gambar 3.3. Keempat modul lampu lalu lintas memiliki rangkaian dan
konfigurasi pin yang sama.
7
8
9
10
11
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
21
Gambar 3.3 Rangkaian Lampu Lalu Lintas pada Modul
NodeMCU diberi catu daya melalui port USB. Tengan keluaran port I/O modul
NodeMCU sebesar 3.3 V. Tegangan keluaran port I/O digunakan untuk menyalakan lampu
LED merah, lampu LED kuning dan lampu LED hijau. Besar arus tipikal yang digunakan
untuk menyalakan LED adalah 20mA. Oleh karena itu, terdapat resistor yang dihubungkan
seri terhadap lampu LED yang berfungsi untuk membatasi arus pada lampu LED. Besar nilai
resistor untuk membasi arus pada lampu LED dapat dihitung menggunakan Persamaan (2.1).
Namun, pada board NodeMCU, arus keluaran tiap pin GPIO sebesar 12 mA[7] sehingga:
𝑅1 = 𝑉 − 𝑉𝑎𝑏
0.012 𝐴=
3.3𝑉 − 1.8𝑉
0.012 𝐴= 125 Ω
𝑅2 = 𝑉 − 𝑉𝑎𝑏
0.012 𝐴=
3.3𝑉 − 2.1𝑉
0.012 𝐴= 100 Ω ≌ 56Ω
𝑅3 = 𝑉 − 𝑉𝑎𝑏
0.012 𝐴=
3.3𝑉 − 2.2𝑉
0.012 𝐴≈ 91 Ω ≌ 56 Ω
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
22
Modul RTC DS3231 mempunyai tegangan kerja 2,3 V hingga 5,5 V. Pada modul RTC
DS3231 terdapat soket baterai 3,3 V. Baterai berfungsi untuk mem-backup data RTC saat
kehilangan catu daya utamanya. Modul RTC DS3231 dapat diakses menggunakan
komunikasi I2C. Komunikasi I2C membutuhkan dua pin yaitu pin serial data (SDA) dan
pin serial clock (SDL). Modul NodeMCU memiliki fasilitas I2C yang terdapat pada pin D1
dan D2 yang dapat dilihat pada gambar 2.2.
Pada modul lampu lalu lintas juga terdapat tiga buah switch berjenis SPDT. Semua
switch berfungsi memberikan input 3 bit pada port NodeMCU Esp8266. Input 3 bit pada
NodeMCU Esp8266 bertujuan memberikan alamat IP statik pada modul yaitu 192.168.11.X.
‘X’ merupakan nilai input 3 bit pada NodeMCU Esp8266. Alamat IP pada modul dapat
dilihat pada tabel 3.1.
Tabel 3.1 Alamat IP Modul Lampu Lalu Lintas
3.3 Perancangan Tampilan Halaman Web
Halaman web berfungsi untuk memudahkan melakukan pengaturan pewaktuan pada
modul lampu lalu lintas. Halaman web dibuat menggunakan HTML. Terdapat dua bagian
pada halaman web yaitu untuk mengatur waktu RTC dan halaman untuk mengatur durasi
pewaktuan penyalaan lampu lalu lintas untuk semua modul. Halaman web untuk mengatur
RTC dan durasi pewaktuan penyalaan lampu dapat dilihat pada gambar 3.4.
Gambar 3.4 Tampilan Halaman Web
Nilai Input Alamat IP
SW3 SW2 SW1
0 0 0 192.168.11.2
0 0 1 192.168.11.3
0 1 0 192.168.11.4
1 0 0 192.168.11.5
1
2
3 4
5
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
23
Keterangan gambar 3.4:
1. Url untuk mengakses web server
2. Kolom untuk mengisi durasi penyalaan lampu tiap modul
3. Mengatur jam RTC
4. Mengatur interval kondisi blink semua modul
5. Menyimpan pengaturan ke web server
Pada gambar 3.4 terdapat tiga kolom yang digunakan untuk mengatur durasi setiap
modul lampu lalu lintas. Kolom untuk mengatur durasi lampu hijau dapat diatur sesuai
dengan kondisi lalu lintas. Kolom untuk mengatur durasi lampu kuning diisi dengan durasi
5 detik untuk setiap modul. Sedangkan kolom untuk mengatur lampu merah hanya diisi jika
ingin menambahkan durasi lampu merah pada salah satu modul tanpa mengubah durasi pada
modul yang lain. Lamanya durasi lampu merah tergantung pada durasi lampu hijau dan
kuning tiap modul. Semua modul akan menyalakan lampu merah selama 3 detik sebelum
salah satu modul menyalakan modul lampu hijau. Waktu satu siklus lampu lalu lintas untuk
semua modul dapat dilihat pada gambar 3.5.
Gambar 3.5 Waktu Siklus Lampu Lalu Lintas Semua Modul
Berdasarkan gambar 3.5, durasi lampu merah setiap modul dapat dirumuskan dengan
persamaan sebagai berikut:
𝑀𝑀1 = 3 × 4 + 𝐻2 + 𝐾2 + 𝐻3 + 𝐾3 + 𝐻4 + 𝐾4…………………………………(3.1)
𝑀𝑀2 = 3 × 4 + 𝐻1 + 𝐾1 + 𝐻3 + 𝐾3 + 𝐻4 + 𝐾4…………………………………(3.2)
𝑀𝑀3 = 3 × 4 + 𝐻1 + 𝐾1 + 𝐻2 + 𝐾2 + 𝐻4 + 𝐾4…………………………………(3.3)
𝑀𝑀4 = 3 × 4 + 𝐻1 + 𝐾1 + 𝐻2 + 𝐾2 + 𝐻3 + 𝐾3…………………………………(3.4)
Dimana:
MM1 = Durasi lampu merah modul 1
MM2 = Durasi lampu merah modul 2
MM3 = Durasi lampu merah modul 3
MM4 = Durasi lampu merah modul 4
3 × 4 = Jumlah durasi 3 detik lampu merah menyala bersamaan untuk semua modul
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
24
H1 = Durasi lampu hijau modul 1
K1 = Durasi lampu kuning modul 1
H2 = Durasi lampu hijau modul 2
K2 = Durasi lampu kuning modul 2
H3 = Durasi lampu hijau modul 3
K3 = Durasi lampu kuning modul 3
H4 = Durasi lampu hijau modul 4
K4 = Durasi lampu kuning modul 4
3.4 Perancangan Perangkat Lunak
Perancangan perangkat lunak pada modul lampu lalu lintas mencakup fungsionalitas
kebutuhan perangkat lunak yang digunakan untuk menulis dan melakukan kompilasi
program. Pemrograman yang digunakan pada perangkat ini menggunakan Arduino IDE.
Arduino IDE dapat digunakan untuk menulis, melakukan kompilasi dan melakukan injeksi
program ke modul NodeMCU Esp8266. Ada beberapa bagian dalam perancangan perangkat
lunak, yaitu:
a. Diagram alir program utama
b. Diagram alir sub rutin pencarian jaringan
c. Diagram alir sub rutin server
d. Diagram alir sub rutin client
e. Diagram alir sub rutin pergantian client
f. Diagram alir sub rutin pergantian server
g. Diagram alir web
3.4.1 Diagram Alir Program Utama
Diagram alir program utama dapat dilihat pada gambar 3.6. Mula-mula berikan input
3 bit pada modul melalui switch yang bertujuan memberi alamat IP pada modul. Nilai input
3 bit pada modul sesuai dengan tabel 3.1. Kemudian modul diaktifkan dengan memberikan
power ke modul melalui USB. Setelah modul aktif, modul akan menginisialisasi RTC, SSID,
alamat IP, EEPROM dan push button. Setelah mengetahui alamat IP, modul akan mencari
jaringan yang sama dengan jaringan yang dimiliki modul. Proses pencarian jaringan akan
dibahas pada sub rutin pencarian jaringan yang dapat dilihat pada gambar 3.7.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
25
Mulai
Inisialisasi alamat IP, SSID,
EEPROM, RTC, push
button
Mencari jaringan
Status modul
sebagai access
point ?
Modul sebagai
server
Modul sebagai
client
Selesai
Ya
Tidak
Gambar 3.6 Diagram Alir Program Utama
Setelah melalui proses mencari jaringan, status modul akan ditentukan. Apabila modul
tidak menemukan jaringan yang sama dengan yang dimiliki modul maka modul berubah
menjadi access point. Modul yang berubah menjadi access point inilah berstatus sebagai
server, jika tidak maka modul berstatus sebagai client. Setelah mengetahui status modul,
proses selanjutnya akan dijelaskan pada diagram alir sub rutin server dan diagram alir sub
rutin client yang masing-masing dapat dilihat pada gambar 3.8, gambar 3.9 dan gambar 3.10.
3.4.2 Diagram Alir Sub Rutin Pencarian Jaringan
Diagram alir sub rutin pencarian jaringan dapat dilihat pada gambar 3.7. Setelah modul
diaktifkan, modul akan mengaktifkan Wi-Fi. Setelah Wi-Fi aktif maka pencarian jaringan
mulai dilakukan. Pencarian jaringan dilakukan dengan cara mencari SSID (Service Set
Identifier) yang terdapat di sekitar modul. Apabila terdapat SSID yang sama dengan yang
dimiliki modul maka modul akan terhubung ke jaringan sebagai client. Namun, bila tidak
terdapat SSID yang sama dengan yang dimiliki modul maka modul menjadi access point.
Modul yang berfungsi sebagai access point akan memancarkan sinyal yang akan
diterima oleh modul client dalam jaringan yang sama. Modul client akan terhubung dengan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
26
access point adalah modul yang memiliki SSID yang sama dengan modul access point.
Proses selanjutnya adalah kembali ke program utama.
Mulai
Aktifkan Wi-Fi
Scanning SSID
SSID sama ?Modul sebagai access
point
Return
Tidak
Ya
Gambar 3.7 Diagram Alir Sub Rutin Mencari Jaringan
3.4.3 Diagram Alir Sub Rutin Server
Diagram alir sub rutin server memiliki dua bagian yaitu diagram alir sub rutin
pengaturan durasi penyalaan lampu lalu lintas dan diagram alir sub rutin pengiriman data.
Diagram alir sub rutin pengaturan durasi waktu berfungsi untuk mengatur pewaktuan modul
sebelum modul lalu lintas dipasang di jalan raya. Sedangkan diagram alir sub rutin
pengiriman data dari server ke client dilakukan ketika modul lampu lalu lintas telah dipasang
di jalan raya dan siap digunakan.
3.4.3.1 Diagram Alir Pengaturan Waktu
Diagram alir sub rutin pengaturan waktu dapat dilihat pada gambar 3.8. Mula-mula
pada server dilakukan pengaturan durasi penyalaan lampu tiap modul dan mengatur waktu
untuk RTC pada server melalui web seperti pada gambar 3.13. Setelah pengaturan durasi
lampu dan RTC selesai, data pengaturan disimpan ke EEPROM. EEPROM berfungsi
menyimpan data pengaturan durasi lampu lalu lintas walaupun modul tidak diberi daya
sehingga data pada server tidak hilang.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
27
Mulai
Mengatur waktu
RTC dan durasi
lampu lalu lintas
tiap modul
Menyimpan data ke
EEPROM
Selesai
Gambar 3.8 Diagram Alir Pengaturan Waktu
3.4.3.2 Diagram Alir Pengiriman Data
Diagram alir pengiriman data dapat dilihat pada gambar 3.9. Mula-mula modul server
diaktifkan. Modul server kemudian membaca data pada EEPROM. Data pada EEPROM
disalin pada suatu variabel yang berfungsi menyimpan data durasi waktu lampu lalu lintas.
Kemudian tombol start ditekan. Tombol start berfungsi untuk memulai proses pengiriman
data pewaktuan antara modul server dengan modul client.
Setelah tombol mulai ditekan, server menunggu request dari client. Apabila client
melakukan request ke server, server akan memberi respon berupa data durasi waktu sesuai
alamat IP client yang melakukan request. Format komunikasi data dapat dilihat pada tabel
3.2. Pada tabel 3.2 dapat dilihat bahwa tipe data yang digunakan berbentuk array of integer.
Pada format komunikasi data terdapat data status lampu yang memiliki beberapa ketentuan
yang dapat dilihat pada tabel 3.3.
Tabel 3.2 Format Komunikasi Data
Data dari Server Tipe Data
Durasi lampu Array of integer
Status lampu Array of integer
Status Mulai Integer
Tabel 3.3 Data Status Lampu dan Pengaruhnya pada Client
Data Status Lampu Pengaruh pada Client
0 Lampu merah aktif
1 Lampu kuning aktif
2 Lampu hijau aktif
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
28
Data yang dikirim server dan diterima client berbentuk array of integer yang telah
diubah dalam format JSON adalah sebagai berikut:
"d_lampu":[[30,5,3],[30,5,3],[30,5,3],[30,5,3]],"status_lampu":[2,0,0,0],"status_mulai":
[90]
Data yang dikirim dan diterima oleh modul menggunakan format JSON. “d_lampu”,
“status_lampu” dan “status_mulai” disebut sebagai key. Value dari “d_lampu” adalah
[[30,5,3], [30,5,3], [30,5,3], [30,5,3]], value dari “status_lampu” adalah [2,0,0,0] dan value
dari “status_mulai” adalah [90]. Value dari “d_lampu” secara berurutan menunjukan durasi
lampu hijau, lampu kuning dan lampu merah (ketika menyala bersamaan) pada keempat
modul. Value dari “satus_lampu” menunjukan warna lampu yang dinyalakan keempat
modul. Angka ‘2’ berarti warna lampu yang sedang menyala adalah hijau, angka ‘1’ berarti
warna lampu yang sedang menyala adalah kuning dan angka ‘0’ berarti warna lampu yang
sedang menyala adalah merah. Value dari “status_mulai” memiliki dua angka yaitu ‘90’ dan
‘88’. Angka ‘90’ berarti tombol start belum ditekan dan modul client melakukan proses
penyimpanan data pada EEPROM. Sedangkan, angka ‘88’ berarti tombol start telah ditekan
dan sistem sedang berjalan. Keterangan tentang data yang dikirim dan diterima dapat dilihat
pada tabel 3.4.
Tabel 3.4 Keterangan dari Data yang Dikirim dan Diterima Modul
Data yang dikirim dan diterima Keterangan
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[2,0,0,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 1 menyalakan
lampu hijau selama 30 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[1,0,0,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 1 menyalakan
lampu kuning selama 5 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,2,0,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 2 menyalakan
lampu hijau selama 30 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,1,0,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 2 menyalakan
lampu kuning selama 5 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,0,2,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 3 menyalakan
lampu hijau selama 30 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,0,1,0],
"status_mulai":[88]
Sistem sedang berjalan, modul 3 menyalakan
lampu kuning selama 5 detik dan modul lainnya
menyalakan lampu merah.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
29
Tabel 3.4 Keterangan dari Data yang Dikirim dan Diterima Modul (Lanjutan)
Data yang dikirim dan diterima Keterangan
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,0,0,2],
"status_mulai":[88]
Sistem sedang berjalan, modul 4 menyalakan
lampu hijau selama 30 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,0,0,1],
"status_mulai":[88]
Sistem sedang berjalan, modul 4 menyalakan
lampu kuning selama 5 detik dan modul lainnya
menyalakan lampu merah.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[0,0,0,0],
"status_mulai":[88]
Sistem sedang berjalan, semua modul
menyalakan lampu merah selama 3 detik
kemudian salah satu modul meyalakan lampu
hijau.
"d_lampu":[[30,5,3],[30,5,3],[30,5,
3],[30,5,3]],"status_lampu":[2,0,0,0],
"status_mulai":[90]
Sistem belum berjalan, modul client menyimpan
data “d_lampu” ke EEPROM.
Mulai
Baca data
EEPROM
Tekan tombol
strart
Menunggu request dari
client
Ada request ?
Kirim data ke
client
Selesai
Tidak
Ya
Gambar 3.9 Diagram Alir Pengiriman Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
30
3.4.4 Diagram Alir Sub Rutin Client
Diagram alir sub rutin client dapat dilihat pada gambar 3.10. Berdasarkan gambar 3.10,
mula-mula client melakukan request ke server. Setelah server memberi respon, client
menerima data dari server dan menyimpan data durasi waktu ke EEPROM. Kemudian client
melakukan request lagi ke server. Client kemudian menunggu respon dari server. Client
akan menunggu respon dari server maksimal 3 setik. Apabila tidak ada respon server lebih
dari 3 detik maka modul client akan berganti fungsi menjadi server. Proses perubahan fungsi
modul dari client menjadi server dapat dilihat pada gambar 3.12. Jika server memberi respon
kurang dari 3 detik, client kemudian menerima data yang dikirimkan oleh server. Setelah
data diterima oleh client, client akan meyalakan setiap lampu sesuai dengan data yang
diberikan oleh server. Proses selanjutnya pada client adalah memberikan request ke server
dan proses yang dijelaskan di atas dilakukan secara berulang.
Mulai
Request data ke
server
Terima data durasi
lampu lalu lintas dari
server
Menyimpan data ke
EEPROM
Request data ke
server
Ada respon ?
Menunggu respon
dari server
maksimal 3 detik
Menyalakan
lampu pada
modul lalu lintas
Client berubah
menjadi server
Tidak
Ya
A
AB
B
Gambar 3.10 Diagram Alir Sub Rutin Client
3.4.5 Diagram Alir Sub Rutin Pergantian Client
Diagram alir sub rutin pergantian client dapat dilihat pada gambar 3.11. Pergantian
modul client dilakukan jika modul mengalami kerusakan. Mula – mula ganti modul yang
rusak dengan modul yang baru. Alamat IP modul yang baru diatur sesuai dengan modul yang
lama. Tujuan pemberian IP yang sama dengan modul yang lama adalah agar modul dapat
langsung dikenali oleh server. Data yang diberi oleh server ke modul yang baru juga sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
31
seperti data yang ada pada modul yang lama. Kemudian berikan daya pada modul yang baru
diganti dan tunggu beberapa saat hingga modul terhubung ke dalam jaringan. Modul akan
melakukan proses sinkroninasi seperti pada gambar 3.10.
Mulai
Atur alamat IP modul
yang baru
Aktifkan modul
Menghubungkan modul
dalam jaringan
Sinkronisasi modul baru dengan
modul alinnya
Selesai
Gambar 3.11 Diagram Alir Sub Rutin Pergantian Client
3.4.6 Diagram Alir Sub Rutin Pergantian Server
Diagram alir sub rutin pergantian server yang rusak dapat dilihat pada gambar 3.12.
Jika server tidak memberi respon kepada client lebih dari 3 detik maka client akan
melakukan fungsi tunda. Setiap modul memiliki durasi tunda yang berbeda yang dapat
dilihat pada tabel 3.5. Setelah modul melakukan fungsi tunda, modul yang memiliki durasi
tunda terkecil akan ter-reset dan berubah menjadi server, sedangkan modul yang memiliki
tunda lebih lama akan menjadi client. Modul server yang mengalami kerusakan dapat
digantikan dengan modul yang baru dengan alamat IP ayang sama dan berfungsi sebagai
client. Proses selanjutnya adalah menekan tombol start pada modul server yang baru.
Prosedur penyalaan lampu mengikuti pengaturan sebelum server mengalami masalah yang
data durasi penyalaan lampu telah disimpan pada EEPROM.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
32
Tabel 3.5 Durasi Tunda Modul Berdasarkan Alamat IP
Mulai
Mengaktifkan
fungsi delay
Mengaktifkan
fungsi reset
Mengganti modul server
yang rusak dengan
modul baru
Tekan tombol
start pada server
yang baru
Selesai
Gambar 3.12 Diagram Alir Sub Rutin Pergantian Server
3.4.7 Daigram Alir Utama Web
Diagram alir utama web dapat dilihat pada gambar 3.13. Mula-mula hubungkan
smartphone atau laptop dalam jaringan modul lampu lalu lintas dengan cara memasukkan
SSID dan password access point. Contoh SSID adalah “SMTFESP8266” dan password
adalah “@Setting20”. Setelah terhubung, buka web browser dan masukkan alamat url
(uniform resource locator) berupa alamat IP server untuk mengakses web server. Setelah
memasuki halaman web, langkah selanjutnya adalah memberi input durasi pewaktuan tiap
modul dan megatur jam RTC sesaui dengan waktu saat melakukan pengaturan durasi lampu
lalu lintas, kemudian tekan “submit” agar data pewaktuan pada web server berubah sesuai
dengan data yang dimasukkan.
Alamat IP Durasi Tunda
192.168.11.2 1 detik
192.168.11.3 2 detik
192.168.11.4 3 detik
192.168.11.5 4 detik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
33
Mulai
Buka web
browser
Masukkan URL
web server
Mengatur durasi
waktu tiap modul
dan waktu RTC
Tekan Submit
Selesai
Gambar 3.13 Diagram Alir Utama Web
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
34
4 BAB IV
HASIL DAN PEMBAHASAN
Pada bab ini akan dibahas mengenai hasil dan implementasi dari perancangan yang
telah dibuat pada bab sebelumnya, perubahan hardware, perubahan software serta analisis
dari hasil pengujian. Pengujian modul lampu lalu lintas dibutuhkan untuk mengetahui
kinerja yang dihasilkan oleh modul lampu lalu lintas yang dibuat. Data yang didapat dari
pengujian modul lampu lalu lintas digunakan dalam proses analisis. Proses analisis dapat
digunakan untuk mengembangkan modul lampu lalu lintas yang dibuat agar dapat bekerja
secara maksimal.
4.1 Perubahan Perancangan
Perubahan dalam implementasi penelitian bertujuan memperbaiki kesalahan yang
terjadi pada proses pengujian. Perubahan desaian, hardware dan software bertujuan untuk
memaksimalkan kinerja alat yang telah dibuat. Berikut ini merupakan perubahan yang
dilakukan.
4.1.1 Perubahan Desain Prototype
Perubahan pada desain prototype dilakukan karena pada saat implementasi, prototype
dari desain perancangan yang dapat dilihat pada gambar 3.2 mengalami kendala bila hendak
mengganti komponen pada modul. Pergantian komponen sulit dilakukan karena PCB sulit
dikeluarkan dari dalam modul kerena kerterbatasan ruang di dalam casis modul. Perubahan
desaian prototype dapat dilihat pada gambar 4.1. Gambar 4.1(a) merupakan desain modul
tampak depan, gambar 4.1(b) merupakan desain modul tampak belakang, gambar 4.1(c)
merupakan desain modul tampak samping dan gambar 4.1(d) merupakan komponen yang
terdapat di dalam modul.
Pada perubahan desain terdapat penutup casis yang dapat dilihat pada gambar 4.1(e).
Tujuan dibuatnya penutup casis adalah agar mudah mengakses komponen yang terdapat di
dalam casis modul. Hal ini memudahkan pergantian komponen yang ada di dalam casis
modul jika terjadi kerusakan dan hendak mengganti komponen.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
35
(a) (b)
(c) (d)
(e)
Gambar 4.1 Perubahan Desain Prototype (a) tampak depan, (b) tampak belakang, (c)
tampak samping, (d) tampak atas, (e) penutup casis
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
36
4.1.2 Penambahan Software untuk Menyimpan Data ke EEPROM
Penambahan pada software dilakukan dengan menambahkan data yang dikirim dan
disimpan oleh modul lampu lalu lintas. Tambahan data yang dikirim berupa data
“status_mulai: [88]” ketika tombol start ditekan. Data “status_mulai: [88]” kemudian
disimpan ke EEPROM semua modul. Tujuan menyimpan data “status_mulai: [88]” adalah
apabila terjadi kerusakan server, server yang baru akan langsung melakukan proses
pengiriman data tanpa harus menekan tombol start terlebih dalahu. Apabila modul yang
rusak telah diganti, modul server harus deberi data “status_mulai: [90]” melalui web dengan
memberi URL ‘192.168.11.1/reset’ pada web browser.
Tujuan pemberian data “status_mulai: [90]” adalah agar modul yang baru dapat
menyimpan data durasi lampu ke EEPROM. Pada proses ini, counter waktu lampu lalu lintas
berhenti pada kondisi terakhir sesaat sebelum data “status_mulai: [90]” dikirim ke server.
Counter waktu pada lampu lalu lintas akan kembali aktif ketika server diberi data
“status_mulai: [88]” dengan memasukan URL ‘192.168.11.1/lanjut’ pada web browser atau
menekan tombol start pada modul server.
4.1.3 Perubahan dan Penambahan Tampilan Web
4.1.3.1 Perubahan Tampilan Web Setting Durasi
Perbandingan rancangan dan implementasi tampilan web yang digunakan untuk
mengatur durasi lampu lalu lintas dapat dilihat pada tabel 4.1. Perubahan pada tampilan web
berupa perubahan jumlah data yang di-input pada web server. Pada perancangan, durasi
setiap warna lampu diatur melalui web sedangkan pada implementasi, setting durasi yang
dilakukan pada lampu hijau dan lampu kuning setiap modul. Durasi lampu kuning secara
default diisi 5 detik, namun dapat diubah sewaktu-waktu jika dibutuhkan. Perubahan
dilakukan guna meningkatkan efiseiensi data yang dikirim dari web ke server.
Durasi lampu merah merupakan penjumlahan dari durasi lampu hijau dan durasi lampu
kuning serta durasi lampu merah yang menyala secara bersamaan pada semua modul. Durasi
lampu merah yang menyala bersamaan telah ditetapkan yaitu 3 detik sehingga tidak diatur
melalui web. Oleh karena itu, durasi lampu merah setiap modul dapat dilihat pada persamaan
3.1, persamaan 3.2, persamaan 3.3 dan persamaan 3.4.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
37
Tabel 4.1 Perubahan Tampilan Web Setting Durasi
4.1.3.2 Penambahan Halaman Web Monitoring
Penambahan tampilan web bertujuan untuk mengetahui jumlah client yang terhubung
ke server dan mengetahui warna lampu yang dinyalakan setiap modul secara real time. URL
untuk mengkases tampilan web ini adalah ‘192.168.11.1/monitor’. Tampilan web tambahan
ini dapat dilihat pada gambar 4.2(a) dan gambar 4.2(b). Ada beberapa bagian penting pada
halaman web monitoring yaitu jumlah client, alamat IP yang terhubung serta warna lampu.
Pada bagian jumlah client angka ‘4’ menunjukkan tiga modul client telah terhubung ke
server dan satu client tambahan berupa laptop atau smartphone yang menampilkan halaman
web tersebut. Pada bagian alamat IP yang terhubung menunjukkan semua alamat IP yang
terhubung serta posisi modul yang menjadi server.
Pada bagian warna lampu menunjukkan warnya lampu yang dinyalakan oleh setiap
modul secara real time. Apabila terdapat modul client yang tidak terkoneksi dengan server,
pada tampilan halaman monitoring akan memunculkan halaman seperti yang ditunjukkan
pada gambar 4.2(b). Jika terdapat modul yang tidak terhubung ke server, pada kolom alamat
IP yang terhubung berisisi ‘Disconnected’ dan kolom warna lampu menampilkan karakter
‘*****’ serta jumlah client yang terhubung kurang dari 4. Pada gambar 4.2(b), modul yang
tidak terkoneksi ke jaringan adalah modul 3 dengan alamat IP 192.168.11.4.
Perancangan Tampilan Web Implementasi Tampilan Web
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
38
(a) (b)
Gambar 4.2 Perubahan Desain Prototype (a) tampilan halaman web monitoring semua
client terhubung, (b) tampilan halaman web monitoring tidak semua client terhubung
4.1.4 Perubahan Nilai Resistor yang Digunakan
Perbandingan nilai resistor untuk membatasi arus LED yang digunakan dalam
implementasi dengan nilai resistor yang terdapat pada perancangan dapat dilihat pada tabel
4.2. Perbedaan besar nilai resistor disebabkan ketersediaan resistor yang ada di pasaran.
Tabel 4.2 Perbandingan Nilai Resistor
4.2 Implementasi Penelitian
4.2.1 Bentuk Fisik Modul
Bentuk fisik dari modul lampu lalu lintas yang dibuat terdiri dari casis modul dan
komponen pada PCB. Cacis modul lampu lalu lintas sisi depan dapat dilihat pada gambar
4.3(a). Gambar 4.3(b) menunjukan gambar casis modul sisi samping dan gambar 4.3(c)
menunjukan casis modul sisi belakang serta sisi atas ditunjuk oleh gambar 4.3(d).
(a) (b) (c)
Warna
LED
Nilai Resistor pada
Perancangan (Ω)
Nilai Resistor pada
Implementasi (Ω)
Merah 125 127
Kuning 100 100
Hijau 91 95
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
39
(d)
Gambar 4.3 Bentuk Fisik Modul (a) tampak depan, (b) tampak samping, (c) tampak
belakang, (d) tampak atas
Keterangan gambar 4.3:
1. LED sebagai lampu lalu lintas
2. Lubang - lubang untuk sirkulasi udara
3. Tombol Start
4. Posisi Port Micro USB
5. 3 buah Switch
6. Penutup casis modul
4.2.2 Rangkaian Elektronik Modul
Rangkaian elektronik modul lampu lalu lintas terdapat di dalam casis. Rangkaian
elektronik modul dapat dilihat pada gambar 4.4.
Gambar 4.4 Rangkaian Elektronik Modul
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
40
Keterangan gambar 4.4:
1. NodeMCU ESP8266
2. Port Micro USB untuk catudaya NodeMCU ESP8266
3. Resistor
4. T-Blok untuk LED merah, kuning dan hijau
5. Modul RTC DS3231
6. T-Blok untuk tombol Start
7. T-Blok untuk Switch SW1, SW2 dan SW3
8. Kabel merah, kabel hitam dan kabel hijau
Pada T-blok switch, kabel hijau terhubung dengan pin NodeMCU Esp82666 sebagai
input. Kabel merah dan hitam masing-masing terhubung pada pin 3.3V dan GND NodeMCU
Esp8266. Pada T-blok LED, kabel warna merah terhubung dengan pin output NodeMCU
dan kaki anode LED dan kabel hitam terhubung ke GND dan kaki katode LED. Pada T-
blok tombol, kabel merah terhubung ke pin 3.3V dan satu pin tombol sedangkan kabel hitam
terhubung ke GND dan satu pin tombol.
Pada rangkaian terdapat 6 buah resistor. Lima resistor digunakan untuk membatasi
arus pada LED dan satu resistor digunakan sebagai pull-up tombol. Rangkaian pull-up
resistor dapat dilihat pada gambar 4.5. Besar resistor yang digunakan untuk pull-up tombol
adalah 10 kΩ agar tidak terjadi kondisi mengambang. Jika tombol ditekan, logika yang
dihasilkan adalah high dan saat tidak ditekan logikanya low.
Gambar 4.5 Rangkaian Pull-up Resistor
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
41
4.3 Proses Kerja Sistem
Proses kerja sistem merupakan gambaran umun proses kerja modul lampu lalu lintas
yang dibuat. Modul lampu lalu lintas yang dibuat diimplementasikan untuk simpang empat
jalan raya. Oleh karena itu, dibutuhkan empat modul yang masing-masing mewakili satu sisi
jalan.
Mula-mula atur alamat IP setiap modul melalui tiga buah switch dengan kombinasi
logika yang ada pada tabel 3.1. Kemudian aktifkan salah satu modul yang menjadi server.
Atur durasi lampu hijau dan kuning keempat modul melalui web. Aktifkan ketiga modul
yang lain. Tekan tombol start pada modul server agar counting durasi aktif. Modul secara
bergantian menyalakan lampu hijau. Satu siklus penyalaan lampu dimulai dari modul 1
menyalakan lampu hijau kemudian kuning dilanjutkan dengan merah hingga modul 1
menyalakan lampu hijau kembali.
Urutan penyalaan lampu hijau dimulai dari modul yang memiliki alamat IP terkecil,
kemudian diikuti dengan alamat IP yang lebih besar. Pengaturan urutan penyalaan warna
lampu pada modul dapat dilihat pada gambar 4.6.
Gambar 4.6 Urutan Penyalaan Warna Lampu
4.4 Cara penggunaan Modul
Pada simpang empat jalan, modul yang digunakan berjumlah 4 modul. Satu modul
berfungsi sebagai server dan tiga modul lainnya berfungsi sebagai client. Cara penggunaan
modul lampu lalu lintas untuk perempatan jalan adalah sebagai berikut:
1. Atur semua alamat IP modul dengan mengatur input melalui tiga buah switch yang ada
pada modul.
2. Berikan catudaya pada salah satu modul melalui port micro USB, tunggu beberapa
saat. Modul ini akan berfungsi sebagai server.
3. Lakukan log-in ke jaringan untuk mengakses web server yang dimiliki modul dengan
cara memasukan SSID dan password pada smartphone atau laptop. SSID:
ESP8266_TA dan password: g00dluck.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
42
4. Ketikan URL ‘192.168.11.1/reset’ pada web browser untuk memastikan modul tidak
melakukan counting durasi lampu lalu lintas.
5. Ketikan URL ‘192.168.11.1’ pada web browser untuk melakukan pengaturan durasi
lampu lalu lintas semua modul. Pada halaman web terdapat beberapa bagian yang
harus diisi yaitu durasi lampu hijau dan kuning setiap modul, waktu untuk RTC dan
interval waktu untuk modul menyalakan lampu kuning blink. Kemudian tekan tombol
‘SUBMIT’ pada halaman web untuk mengirimkan data yang telah diatur ke server.
6. Aktifkan modul lainnya dengan memberi catudaya melalui port micro USB pada
modul, tunggu beberapa saat agar client dapat melakukan proses penyimpanan data
yang diterima dari server.
7. Tunggu hingga semua modul meyalakan lampu. Bila semua modul telah menyakan
lampu, modul siap digunakan.
8. Tekan tombol start pada server agar proses counting durasi lampu lalu lintas pada
semua modul aktif.
Ada dua cara yang dapat dilakukan utuk memastikan semua modul bekerja dengan
baik yaitu dengan melihat secara langsung warna lampu yang dinyalakan semua modul dan
melihat warna lampu modul melalui halaman web monitoring. Apabila hendak melihat
kondisi semua warna lampu modul, smartphone atau laptop harus terhubung ke jaringan
modul lampu lalu lintas. Pada web browser, ketikan URL ‘192.168.11.1/monitor’ maka
muncul halaman web yang menampilkan warna lampu setiap modul dan jumlah client yang
terhubung dengan server seperti gambar 4.2(a) jika semua modul terhubung atau seperti
gambar 4.2(b) jika modul yang terhubung ke server kurang dari 3.
Berikut adalah beberapa cara yang dapat dilakukan ketika modul mengalami kondisi
tertentu seperti jika hendak mengganti durasi lampu lalu lintas dan jika salah satu client
mengalamai kerusakan yang meyebabkan client tidak terhubung dengan server serta bila
server mengalami kerusakan yang menyababkan server tidak mampu mengirim data ke
client.
Ketika hendak mengganti durasi lampu lalu lintas, langkah-langkah yang dapat
dilakukan adalah pertama-tama log-in ke jaringan modul kemudian ketikkan URL
‘192.168.11.1’ pada web browser. Pada halaman web pengaturan pewaktuan, ubah durasi
lampu hijau modul yang diinginkan kemudian tekan ‘SUBMIT’ maka data durasi yang baru
dikirimkan ke server. Ketika server menerima data durasi, server akan melakukan counting
pada darusi yang talah diubah. Agar semua modul memilki data durasi terbaru, ketikan URL
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
43
‘192.168.11.1/ resert’ sehingga proses penyimpanan data ke EEPROM dilakukan kemudian
akses URL ‘192.168.11.1/lanjut’ untuk melanjutkan counting durasi lampu lalu lintas.
Apabila terdapat client yang mengalami kerusakan dan tidak terhubung ke server,
modul client yang lama diganti dengan modul yang baru. Langkah-langkah yang dapat
diambil untuk menangani masalah ini adalah ganti modul yang lama dengan modul yang
baru. Kemudian atur alamat IP modul yang baru sama dengan modul yang lama. Berikan
catudaya pada modul yang baru. Kemudian log-in ke jaringan, ketikan URL
‘192.168.11.1/reset’ pada web browser untuk menghentikan proses counting durasi lampu
lalu lintas. Tunggu beberapa saat agar modul yang baru menyimpan data durasi lampu ke
EEPROM. Ketikkan URL ‘192.168.11.1/lanjut’ pada web browser atau menekan tombol
start pada modul server untuk melanjutkan proses counting durasi lampu lalu lintas.
Jika server mengalami kerusakan dan tidak mampu mengirim data kepada client, client
yang memiliki alamat IP terkecil akan berubah menjadi server dan proses counting langsung
berjalan. Modul server yang lama diganti dengan modul yang baru dan berubah menjadi
client. Proses selanjutnya sama dengan penjelasan di atas tentang pergantian client yang
mengalami kerusakan.
4.5 Pengujian Keberhasilan
Pengujian untuk mengukur tingkat keberhasilan modul lampu lalu lintas dilakukan
dengan beberapa pengujian yaitu pengujian kemampuan modul yang dapat berfungsi sebagai
server maupun client, pengujian pengiriman data dari web ke server dan dari server ke web,
pengujian pengiriman data dari server ke client, pengujian sinkronisasi keempat modul
lampu lalu lintas, pengujian perubahan server menjadi client, pengujian pergantian client,
pengujian ketepatan durasi lampu lalu lintas yang telah diatur, pengujian jarak komunikasi
antara server dan client serta pengujian ketahan komunikasi antara server dan client.
4.5.1 Pengujian Kemampuan Modul sebagai Server/Client
4.5.1.1 Pengujian Kemampuan Modul Sebagai Server
Pengujian kemampuan modul sebagai server dilakukan dengan memberi catudaya
pada modul kemudian memeriksa SSID modul yang muncul pada laptop atau smartphone
dan melakukan log-in ke jaringan dengan cara memasukan password jaringan. Pada web
browser diakses URL ‘192.168.11.1’. Apabila modul berhasil menjadi server maka akan
muncul halaman web seperti pada gambar 4.7. Hasil uji coba kemampuan server dapat
dilihat pada gambar 4.8(a) dan 4.8(b). Hasil pengujian dapat dilihat pada tabel 4.2.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
44
Gambar 4.7 Tampilan Halaman Web Pengaturan Pewaktuan
(a)
SSID jaringan:
ESP8266_TA
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
45
(b)
Gambar 4.8 Hasil Pengujian Kemampuan Modul sebagai Server (a) tampilan SSID
jaringan, (b) tampilan halaman web pengaturan
Tabel 4.3 Hasil Pengujian Kemampuan Modul sebagai Server
Berdasarkan tabel 4.3, semua modul yang diuji mampu berubah menjadi access point
dengan SSID ‘ESP8266_TA’ yang muncul pada perangkat smartphone atau laptop. Setelah
melakukan log-in dan mengetikan URL ‘192.168.11.1’ pada web browser, semua modul
mampu menampilkan tampilan halaman pengaturan pewaktuan seperti pada gambar 4.7.
Modul
yang Diuji SSID
Tampilan
Halaman Web Keterangan
Modul 1 ESP8266_TA
Tampil Halaman
web Pengaturan
pewaktuan
Berhasil
sebagai server
Modul 2 ESP8266_TA
Tampil Halaman
web Pengaturan
pewaktuan
Berhasil
sebagai server
Modul 3 ESP8266_TA
Tampil Halaman
web Pengaturan
pewaktuan
Berhasil
sebagai server
Modul 4 ESP8266_TA
Tampil Halaman
web Pengaturan
pewaktuan
Berhasil
sebagai server
Halaman Web
Pengaturan Pewaktuan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
46
4.5.1.2 Pengujian Kemampuan Modul sebagai Client
Pengujian kemampuan modul sebagai client dilakukan dengan melihat tampilan serial
monitor. Modul berfungsi sebagai client jika pada serial monitor terdapat kaliamat ‘Client
sedang Aktif’ dan alamat IP modul. Tahapan pengujian adalah sebagai berikut, mula-mula
aktifkan modul server. Atur alamat IP pada modul client yang hendak diuji. Kemudian
berikan catudaya pada modul client melalui port micro USB yang terhubung ke laptop. Buka
serial monitor Arduino IDE untuk melihat tampilannya. Hasil uji coba kemampuan modul
sebagai client dapat dilihat pada gambar 4.9 (a), 4.9 (b), 4.9 (c), dan 4.9 (d). Hasil pengujian
kemampuan modul sebagai client dapat dilihat pada tabel 4.4.
(a)
(b)
Alamat IP Modul 1:
192.168.11.2
Modul 1: Client SERVER Modul 4
Alamat IP Modul 2:
192.168.11.3
Modul 2: Client SERVER Modul 4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
47
(c)
(d)
Gambar 4.9 Hasil Pengujian Kemampuan Modul sebagai Client (a) modul 1, (b) modul
2, (c) modul 3, (d) modul 4
Alamat IP Modul 3:
192.168.11.4
Modul 3: Client
Modul 4: Client
Alamat IP Modul 3:
192.168.11.5
SERVER Modul 4
SERVER Modul 3
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
48
Tabel 4.4 Hasil Pengujian Kemampuan Modul sebagai Client
Modul
yang
Diuji
Hasil Pengujian pada Serial
Monitor Arduino IDE Keterangan
Modul 1
Berhasil
sebagai
client
Modul 2
Berhasil
sebagai
client
Modul 3
Berhasil
sebagai
client
Modul 4
Berhasil
sebagai
client
Berdasarkan hasil pengujian pada tabel 4.4, dapat dilihat bahwa semua modul mampu
berfungsi sebagai client. Hal ini ditunjukan dengan hasil pada serial monitor yang
menampilkan IP client dan kalimat ‘Client sedang aktif’.
4.5.2 Pengujian Pengiriman Data
4.5.2.1 Pengujian Pengiriman Data dari Web ke Server
Pengujian pengiriman data dari web ke server dilakukan dengan membandingkan data
yang diatur pada web dengan data yang tampil pada serial monitor Arduino IDE. Data yang
dibandingkan adalah durasi lampu hijau, waktu RTC dan waktu interval menyalakan lampu
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
49
kuning blink. Data yang diatur pada web dengan data pada serial monitor Arduino IDE
dapat dilihat pada gambar 4.10 dan gambar 4.11.
Gambar 4.10 Data yang Diatur pada Web
Gambar 4.11 Data yang Tampil Pada Serial Monitor
Berdasarkan gambar 4.8 dan 4.9 dapat dilihat bahwa data yang terdapat pada web sama
dengan data yang tampil pada serial monitor arduino IDE. Keterangan angka yang terdapat
pada gambar 4.8 dan 4.9 adalah sebagai berikut:
1. Waktu RTC
2. Waktu (jam) mulai menyalakan lampu kuning blink
3. Waktu (jam) selesai menyalakan lampu kuning blink
4. Durasi lampu hijau modul dengan alamat IP 192.168.11.2
5. Durasi lampu hijau modul dengan alamat IP 192.168.11.3
6. Durasi lampu hijau modul dengan alamat IP 192.168.11.4
3
2 1
5
4
6
7
11
10
9
8
8
9 11
10
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
50
7. Durasi lampu hijau modul dengan alamat IP 192.168.11.5
8. Durasi lampu kuning modul dengan alamat IP 192.168.11.2
9. Durasi lampu kuning modul dengan alamat IP 192.168.11.3
10. Durasi lampu kuning modul dengan alamat IP 192.168.11.4
11. Durasi lampu kuning modul dengan alamat IP 192.168.11.5
Selain pengaturan durasi lampu lalu lintas dan waktu RTC, terdapat dua data lain yang
dikirim dari web ke server yaitu data “status_mulai: [90]” dan data “status_mulai: [88]”.
Data “status_mulai: [90]” bertujuan untuk menghentikan counting durasi lampu lalu lintas
dan kondisi untuk modul menyimpan data durasi lampu lalu lintas ke EEPROM. Data
“status_mulai: [88]” menandakan proses counting sedang berlangsung. Jika hendak
memberi data “status_mulai: [90]” pada server, ketikan URL ‘192.168.11.1/reset’ pada web
browser, sedangkan untuk memberi data “status_mulai: [88]” ketikan URL
‘192.168.11.1/lanjut’ pada web browser. Gambar 4.12(a) dan gambar 4.12(b) menunjukkan
perubahan data “status_mulai” di Arduino IDE ketika URL diakses pada web browser.
Gambar 4.13(a) menunjukan perubahan data ‘status_mulai: [90]’ pada serial monitor
Arduino IDE ketika URL ‘192.168.11.1/reset’ diakses dan gambar 4.13(b) menunjukan
perubahan perubahan data ‘status_mulai: [88]’ pada serial monitor Arduino IDE ketika URL
‘192.168.11.1/lanjut’ diakses.
(a) (b)
Gambar 4.12 Tampilan Web Pengiriman Data “status_lampu” (a) krtika URL
‘192.168.11.1/reset’ diakses, (b) ‘192.168.11.1/lanjut’ diakses
(a)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
51
(b)
Gambar 4.13 Tampilan Serial Monitor Data “status_lampu” (a) krtika URL
‘192.168.11.1/reset’ diakses, (b) ‘192.168.11.1/lanjut’ diakses
Untuk memastikan data yang yang dikirim dari web ke server sesuai dengan yang
diharapkan, dilakukan percobaan pengiriman data yang diulang sebanyak 10 kali. Data yang
dikirim berupa durasi lampu hijau dan pengiriman data ‘status_mulai’. Hasil uji coba
pertama pengiriman data dari web ke server dapat dilihat pada gambar 4.14. Data hasil
pengujian dapat dilihat pada tabel 4.4.
Gambar 4.14 Hasil Pengujian Pertama Pengiriman Data dari Web ke Server
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
52
Keterangan tabel 4.4:
M1 = Durasi Lampu Hijau Modul 1
M2 = Durasi Lampu Hijau Modul 2
M3 = Durasi Lampu Hijau Modul 3
M4 = Durasi Lampu Hijau Modul 4
URL1 = ‘192.168.11.1/reset’
URL2 = ‘192.168.11.1/lanjut’
X = Tidak Diakses
= Diakses
Tabel 4.5 Hasil Pengujian Pengiriman Dara dari Web ke Server
Uji
ke-
Data yang diatur pada web Data yang Tampil pada Serial Monitor
M1 M2 M3 M4 URL1 URL2 M1 M2 M3 M4 ‘status_mulai’
1 10 15 15 10 X 10 15 15 10 “status_mulai:[88]”
2 20 30 15 10 X 20 30 15 10 “status_mulai:[88]”
3 10 20 30 40 X 10 20 30 40 “status_mulai:[88]”
4 40 30 20 10 X 40 30 20 10 “status_mulai:[90]”
5 15 15 15 15 X 15 15 15 15 “status_mulai:[90]”
6 25 35 20 45 X 25 35 20 45 “status_mulai:[90]”
7 33 38 29 18 X 33 38 29 18 “status_mulai:[90]”
8 20 30 45 37 X 20 30 45 37 “status_mulai:[88]”
9 10 10 10 10 X 10 10 10 10 “status_mulai:[88]”
10 25 25 25 25 X 25 25 25 25 “status_mulai:[88]”
Berdasarkan hasil pengujian pada tabel 4.5, dapat dilihat bahwa dalam 10 kali
percobaan pengiriman data dari web ke server, semua data yang dikirim melalui web sama
dengan data yang diterima server.
4.5.2.2 Pengujian Pengiriman Data dari Server ke Client
Data yang dikirim server ke client adalah data durasi waktu, waktu RTC dan waktu
interval lampu kuning blink serta data “status_lampu”. Data durasi waktu dibagi menjadi
dua bagian yaitu data “ketetapan_lampu” dan data “d_lampu”. Data “ketetapan_lampu”
merupakan data yang disimpan pada EEPROM server dan client. Data “ketetapan_lampu”
tidak berubah pada saat counting durasi lampu lalu lintas berjalan. Data ini berubah jika data
pada web diubah sedangkan data “d_lampu” merupakan data yang digunakan sebagai
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
53
counting durasi lampu lalu lintas. Data yang dikirim dari server dan data yang diterima client
dapat dilihat pada gambar 4.15 dan gambar 4.16.
Gambar 4.15 Data yang Dikirim dari Server ke Client
Gambar 4.16 Data yang Diterima Client dari Server
Pengujian pengiriman data server ke client dilakukan dengan cara membandingkan
data yang dikirim server dan diterima client serta aksi yang dilakukan oleh masing-masing
modul ketika terjadi perubahan data yang dikirimkan. Pengujian dilakukan selama satu
siklus penyalaan keempat modul lampu lalu lintas. Selama 1 siklus, keepat modul memiliki
kesempatan menyalakan lampu hijau sekali sesuai dengan durasi yang diatur. Perubahan
penyalaan lampu diatur oleh server berupa data “status_lampu” yang akan dikirim ke client.
Urutan penyalaan lampu berdasarkan alamat IP yang dimiliki modul. Modul dengan alamat
IP terkecil akan menyalakan lampu hijau terlebih dahulu dilanjutkan dengan alamat IP yang
lebih besar. Durasi lampu hijau dan lampu kuning semua modul masing-masing adalah 3
detik, 5 detik. Hasil uji coba pengiriman data dari server ke client dapat dilihat pada gambar
4.17. Data hasil pengujian pengiriman data dari server ke client dapat dilihat pada tabel 4.6.
Gambar 4.17 Data yang Dikirim Server dan Data yang Diterima Client
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
54
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
1
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
2
"d_lampu":[[2,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[2,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
3
"d_lampu":[[1,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[1,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[2,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
4
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
5
"d_lampu":[[3,4,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,4,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
6
"d_lampu":[[3,3,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,3,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
7
"d_lampu":[[3,2,3],[3,5,3],
[3,5,3][3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,2,3],[3,5,3],
[3,5,3][3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
8
"d_lampu":[[3,1,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,1,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[1,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
55
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client (Lanjutan)
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
9 "d_lampu":[[3,5,3],3,5,3],[
3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],3,5,3],[
3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
10 "d_lampu":[[3,5,2],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,2],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 1 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
11 "d_lampu":[[3,5,1],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Tidak Tampil pada serial
monitor
Modul 1 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
12 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
13 "d_lampu":[[3,5,3],[2,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[2,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
14 "d_lampu":[[3,5,3],[1,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[1,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,2,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
15 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
16 "d_lampu":[[3,5,3],[3,4,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,4,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
56
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client (Lanjutan)
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
17 "d_lampu":[[3,5,3],[3,3,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,3,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
18 "d_lampu":[[3,5,3],[3,2,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,2,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
19 "d_lampu":[[3,5,3],[3,1,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,1,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,1,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
20 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
21 "d_lampu":[[3,5,3],[3,5,2],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,2],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
22 "d_lampu":[[3,5,3],[3,5,1],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,1],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 2 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
23 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,2,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,2,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
24 "d_lampu":[[3,5,3],[3,4,3],
[2,5,3],[3,5,3]],"status_lamp
u":[0,0,2,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,4,3],
[2,5,3],[3,5,3]],"status_lamp
u":[0,0,2,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
57
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client (Lanjutan)
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
25 "d_lampu":[[3,5,3],3,5,3],
[1,5,3],[3,5,3]],"status_lamp
u":[0,0,2,0],"status_mulai":[
88],"Waktu_RTC":[13]
Tidak Tampil pada serial
monitor
Modul 3 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
26 "d_lampu":[[3,5,2],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,2],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
27 "d_lampu":[[3,5,3],[3,5,3],
[3,4,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,4,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
28 "d_lampu":[[3,5,3],[3,5,3],
[3,3,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,3,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
29 "d_lampu":[[3,5,3],[3,5,3],
[3,2,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,2,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
30 "d_lampu":[[3,5,3],[3,5,3],
[3,1,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,1,3],[3,5,3]],"status_lamp
u":[0,0,1,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
31 "d_lampu":[[3,2,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,2,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
32 "d_lampu":[[3,1,3],[3,4,3],
[3,5,2],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,1,3],[3,4,3],
[3,5,2],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
58
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client (Lanjutan)
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
33 "d_lampu":[[3,5,3],3,5,3],
[3,5,1],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],3,5,3],
[3,5,1],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 3 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
34 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
35 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[2,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[2,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
36 "d_lampu":[[3,5,3],[3,5,3],
[3,3,3],[1,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,3,3],[1,5,3]],"status_lamp
u":[0,0,0,2],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu hijau, modul
lainnya merah, proses
counting sedang
berlangsung
37 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
38 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,4,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,4,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
39 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,3,3]],"status_lamp
":[0,0,0,1],"status_mulai":[8
8],"Waktu_RTC":[13]
Tidak Tampil pada serial
monitor
Modul 4 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
40 "d_lampu":[[3,5,3],[3,4,3],
[3,5,3],[3,2,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,4,3],
[3,5,3],[3,2,3]],"status_lamp
u":[0,0,0,1],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
59
Tabel 4.6 Hasil Pengujian Pengiriman Dara dari Server ke Client (Lanjutan)
Pada tabel 4.6 dapat dilhat bahwa hasil pengujian pengiriman data dari server ke client
berlangsung secara terus-menerus. Client selalu me-request data pada server dengan interval
1 detik dan server me-response pada saat yang sama. Perubahan warna lampu diatur oleh
server dengan mengirimkan data “status_lampu: [2,0,0,0]” yang nilainya berubah seiring
perubahan counting durasi lampu lalu lintas.
Pada data “status_lampu: [2,0,0,0]” , indeks array “status_lampu” menunjukan aksi
yang dilakukan modul berkaitan dengan penyalaan lampu. Indeks 0 menunjuk pada modul
1, indeks 1 menjunjuk pada modul 2, indeks 3 menunjuk pada modul 2 dan indeks 3
menunjukan pada modul 4. Nilai indeks berubah bila counter durasi telah mencapai 0 pada
setiap durasi. Bila nilai pada indeks 0 mula-mula 2, setelah counter durasi lampu hijau pada
modul 1 mencapai 0, nilai pada indeks 0 berubah menjadi 1 yang berarti modul menyalakan
lampu kuning dan counting durasi lampu kuning dilakukan, durasi lampu hijau kembali ke
nilai awal yang merupakan nilai pada data “ketetapan_lampu”. Bila counter durasi lampu
kuning telah mencapai 0, nilai pada indeks 0 berubah menjadi 0 yang berarti modul
menyalakan lampu merah dan counter durasi lampu merah pada modul 1 aktif serta durasi
lampu kuning kembali ke nilai semula yaitu 5 detik. Apabila counting durasi lampu merah
Data
ke- Data yang Dikirim Server Data yang Diterima Client Aksi pada Modul
41 "d_lampu":[[3,5,3],3,5,3],
[3,5,3],[3,1,3]],"status_lamp
u":[0,0,1,1],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],3,5,3],
[3,5,3],[3,1,3]],"status_lamp
u":[0,0,1,1],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu kuning, modul
lainnya merah, proses
counting sedang
berlangsung
42 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,3]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
43 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,2]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,2]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
44 "d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,1]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
"d_lampu":[[3,5,3],[3,5,3],
[3,5,3],[3,5,1]],"status_lamp
u":[0,0,0,0],"status_mulai":[
88],"Waktu_RTC":[13]
Modul 4 menyalakan
lampu merah, modul
lainnya merah, proses
counting sedang
berlangsung
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
60
mencapai 0, nilai indeks 0 tetap bernilai 0, durasi lampu merah modul 1 kembali ke nilai
semua yakni 3 detik yang merupakan saat semua modul menyalakan lampu merah
bersamaan. Nilai indeks 1 berubah menjadi 2, modul 2 menyalakan lampu hijau. Proses
selanjutnya sama seperti yang telah dijelaskan di atas mengenai perubahan nilai indeks pada
modul 1.
Berdasarkan hasil pengujian yang tertera pada tabel 4.6, dapat dilihat bahwa terdapat
tiga data yang dikirim server tidak dapat dapat ditampilkan oleh client pada serial monitor.
Penyebab tidak munculnya tiga data yang diterima oleh client belum diketahui dengan pasti.
Namun, semua data yang dikirim oleh server diterima oleh client karena client melakukan
perubahan warna lampu sesuai dengan data yang ada pada server.
4.5.2.3 Pengujian Pengiriman Data dari Server ke Web
Pengujian pengiriman data dari server ke web dilakukan membandingkan warna
lampu yang sedang menyala pada setiap modul dengan tampilan keterangan warna lampu
setiap modul pada halaman web monitoring yang memiliki URL ‘192.168.11.1/monitor’
selama satu siklus penyalaan keempat modul lampu lalu lintas. Data dari server dikirim ke
web secara real time ketika halaman web ini dibuka. Tampilan halaman web monitor dapat
dilihat pada gambar 4.2. Hasil uji coba pengiriman data dari server ke web dapat dilihat pada
gambar 4.18 (a), gmbar 4.18 (b), gambar 4.18 (c), gambar 4.18 (d). Hasil pengujian
pengiriman data dari server ke web dapat dilihat pada tabel 4.7.
(a)
HIJAU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
61
(b)
(c)
HIJAU
HIJAU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
62
(d)
Gambar 4.18 Hasil Uji Coba Pengiriman Data dari Server ke Web (a) kondisi modul 1
hijau, (b) kondisi modul 2 hijau, (c) kondisi modul 3 hijau, (d) kondisi modul 4 hijau
Tabel 4.7 Hasil Pengujian Pengiriman Dara dari Server ke Web
Warna Lampu Server Tampilan Halaman Web
Modul 1 Modul 2 Modul 3 Modul 4 Modul 1 Modul 2 Modul 3 Modul 4
Hijau Merah Merah Merah Hijau Merah Merah Merah
Kuning Merah Merah Merah Kuning Merah Merah Merah
Merah Merah Merah Merah Merah Merah Merah Merah
Merah Hijau Merah Merah Merah Hijau Merah Merah
Merah Kuning Merah Merah Merah Kuning Merah Merah
Merah Merah Merah Merah Merah Merah Merah Merah
Merah Merah Hijau Merah Merah Merah Hijau Merah
Merah Merah Kuning Merah Merah Merah Kuning Merah
Merah Merah Merah Merah Merah Merah Merah Merah
Merah Merah Merah Hijau Merah Merah Merah Hijau
Merah Merah Merah Kuning Merah Merah Merah Kuning
Merah Merah Merah Merah Merah Merah Merah Merah
Berdasarkan data hasil percobaan pada tabel 4.7, server mampu menirimkan data
warna lampu yang menyala pada setiap modul secara real time ke halaman web monitoring.
Namun, jika halaman web monitoring dibuka, proses pengiriman data dari server ke client
menjadi tertunda. Hal ini disebabkan server menjalankan ping ke semua client terlebih
dahulu, kemudian mengirim data ke client. Apabila halaman web monitoring ditutup, modul
HIJAU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
63
lampu lalu lintas akan melakukan sinkronisasi sesaat ditandai dengan lampu kuning blink
karena server tidak lagi menjalankan ping dan kembali pada proses pengiriman data durasi
lampu lalu lintas.
4.5.3 Pengujian Timer Lampu Lalu Lintas
Pengujian timer lampu alu lintas dilakukan dengan cara membandingkan durasi
warna lampu yang menyala pada modul dengan timer pada software FreeStopWatch.
Pengujian ini bertujuan untuk mengetahui keakuratan durasi yang diatur pada web dan durasi
yang dieksekusi untuk menyalakan lampu pada modul. Pengujian dilakukan dengan
membandingkan durasi lampu hijau, kuning dan merah pada modul dengan timer
smartphone selama satu siklus penyalaan lampu lalu lintas. Durasi lampu hijau dan kuning
serta durasi lampu merah menyala bersamaan masing-masing 20 detik, 5 detik dan 3 detik
untuk semua modul. Data hasil pengujian dapat dilihat pada tabel 4.8.
Tabel 4.8 Hasil Pengujian Timer Lampu Lalu Lintas
Modul
Durasi pada Web
(detik)
Durasi pada Modul
(detik)
Selisis waktu
(detik)
Hijau Kuning Merah Hijau Kuning Merah
Modul 1 20 5 87 20 5 88 1
Modul 2 20 5 87 20 5 88 1
Modul 3 20 5 87 20 5 88 1
Modul 4 20 5 87 20 5 88 1
Durasi lampu merah dihitung dengan menjumlahkan durasi lampu hijau dan lampu
kuning modul serta durasi lampu merah menyala bersamaan. Hasil perhitungan durasi lampu
merah didasarkan pada persamaan 3.1, persamaan 3.2, persamaan 3.3 dan persamaan 3.4
yaitu sebagai berikut:
𝑀𝑀1 = 3 × 4 + 𝐻2 + 𝐾2 + 𝐻3 + 𝐾3 + 𝐻4 + 𝐾4
𝑀𝑀1 = 12 + 20 + 5 + 20 + 5 + 20 + 5 = 87 𝑑𝑒𝑡𝑖𝑘
MM1 adalah durasi lampu merah pada modul 1. Oleh karena semua modul diatur
dengan pengaturan yang sama maka durasi lampu merah pada semua modul adalah 87 detik.
Berdasarkan hasil pengujian timer pada tabel 4.11, dapat dilihat bahwa durasi lampu hiaju
dan kuning sudah sesuai dengan yang diharapkan. Namun, pada durasi lampu merah yang
dieksekusi modul terlihat 1 detik lebih lambat. Hal ini terjadi karena timer yang digunakan
pada program menggunakan fungsi ‘delay ()’ dan timer pembanding yang digunakan adalah
software FreeStopwatch sehingga terdapat selisih waktu 1 detik lampu merah pada setiap
modul.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
64
4.5.4 Pengujian Sikronisasi Lampu Lalu Lintas
Pengujian sinkrinisasi lampu lalu lintas dilakukan dengan mengamati perubahan
warna lampu lalu lintas setiap modul. Pengamatan dilakukan selama 5 siklus penyalaan
lampu lalu lintas dengan durasi lampu yang diambil dari tabel 4.8 dengan durasi lampu hijau
setiap modul 20 detik, durasi lampu kuning 5 detik dan durasi lampu merah 87 detik. Tingkat
keberhasilan pada pengujian sinkronisasi adalah tidak ada modul yang menyalakan lampu
hijau secara bersamaan. Hasil uji coba sinkronisasi lampu lalu lintas siklus pertama dapat
dilihat pada gambar 4.19 (a), gambar 4.19 (b), gambar 4.19 (c), gambar 4.19 (d). Data hasil
pengujian sinkronisasi dapat dilihat pada tabel 4.9.
(a)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
65
(b)
(c)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
66
(d)
Gambar 4.19 Hasil Uji Coba Sinkronisasi (a) kondisi modul 1 hijau, (b) kondisi modul
2 hijau, (c) kondisi modul 3 hijau, (d) kondisi modul 4 hijau
Tabel 4.9 Hasil Pengujian Sikronisasi Lampu Lalu Lintas
Siklus
ke -
Urutan
Penyalaan
lampu
Warna Lampu
Sinkron Modul 1 Modul 2 Modul 3 Modul 4
1
1 HIJAU MERAH MERAH MERAH
SINKRON
2 KUNING MERAH MERAH MERAH
3 MERAH MERAH MERAH MERAH
4 MERAH HIJAU MERAH MERAH
5 MERAH KUNING MERAH MERAH
6 MERAH MERAH MERAH MERAH
7 MERAH MERAH HIJAU MERAH
8 MERAH MERAH KUNING MERAH
9 MERAH MERAH MERAH MERAH
10 MERAH MERAH MERAH HIJAU
11 MERAH MERAH MERAH KUNING
12 MERAH MERAH MERAH MERAH
2
1 HIJAU MERAH MERAH MERAH
SINKRON
2 KUNING MERAH MERAH MERAH
3 MERAH MERAH MERAH MERAH
4 MERAH HIJAU MERAH MERAH
5 MERAH KUNING MERAH MERAH
6 MERAH MERAH MERAH MERAH
7 MERAH MERAH HIJAU MERAH
8 MERAH MERAH KUNING MERAH
9 MERAH MERAH MERAH MERAH
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
67
Tabel 4.8 Hasil Pengujian Sikronisasi Lampu Lalu Lintas (Lanjutan)
Berdasarkan hasil pengujian sinkronisasi lampu lalu lintas pada tabel 4.9, dapat dilihat
bahwa selama 5 siklus penyalaan lampu, keempat modul lampu lalu lintas sudah
Siklus
ke -
Urutan
Penyalaan
Lampu
Warna Lampu
Sinkron Modul 1 Modul 2 Modul 3 Modul 4
2
10 MERAH MERAH MERAH HIJAU
SINKRON 11 MERAH MERAH MERAH KUNING
12 MERAH MERAH MERAH MERAH
3
1 HIJAU MERAH MERAH MERAH
SINKRON
2 KUNING MERAH MERAH MERAH
3 MERAH MERAH MERAH MERAH
4 MERAH HIJAU MERAH MERAH
5 MERAH KUNING MERAH MERAH
6 MERAH MERAH MERAH MERAH
7 MERAH MERAH HIJAU MERAH
8 MERAH MERAH KUNING MERAH
9 MERAH MERAH MERAH MERAH
10 MERAH MERAH MERAH HIJAU
11 MERAH MERAH MERAH KUNING
12 MERAH MERAH MERAH MERAH
4
1 HIJAU MERAH MERAH MERAH
SINKRON
2 KUNING MERAH MERAH MERAH
3 MERAH MERAH MERAH MERAH
4 MERAH HIJAU MERAH MERAH
5 MERAH KUNING MERAH MERAH
6 MERAH MERAH MERAH MERAH
7 MERAH MERAH HIJAU MERAH
8 MERAH MERAH KUNING MERAH
9 MERAH MERAH MERAH MERAH
10 MERAH MERAH MERAH HIJAU
11 MERAH MERAH MERAH KUNING
12 MERAH MERAH MERAH MERAH
5
1 HIJAU MERAH MERAH MERAH
SINKRON
2 KUNING MERAH MERAH MERAH
3 MERAH MERAH MERAH MERAH
4 MERAH HIJAU MERAH MERAH
5 MERAH KUNING MERAH MERAH
6 MERAH MERAH MERAH MERAH
7 MERAH MERAH HIJAU MERAH
8 MERAH MERAH KUNING MERAH
9 MERAH MERAH MERAH MERAH
10 MERAH MERAH MERAH HIJAU
11 MERAH MERAH MERAH KUNING
12 MERAH MERAH MERAH MERAH
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
68
tersinkronisasi yang ditandai dengan warna lampu yang dinyalakan modul sesuai dengan
urutan. Penyebab keempat modul dapat tersinkronisasi dengan baik adalah semua proses
counter durasi lampu lalu lintas semua modul dilakukan oleh server. Modul client hanya
bertugas untuk menyalakan lampu sesuai dengan data “status_lampu” yang dikirim oleh
server sehingga dapat menghindari modul menyalakan lampu hijau secara bersamaan.
4.5.5 Pengujian Perubahan Client Menjadi Server
Pengujia perubahan client menjadi server dilakukan dengan cara menghilangkan
power modul server sehingga terjadi kondisi tidak ada server. Apabila server hilang, modul
dengan alamat IP terkecil berubah menjadi server dalam beberapa saat. Untuk mengetahui
telah terjadi perubahan server, halaman web monitoring dapat dijadikan acuan untuk melihat
keberhasilan perubahan client menjadi server. Apabila modul yang menjadi server berbeda
dari posisi sebelumnya maka perubahan client berhasil. Proses pengujian ini dilakukan
sebanyak 12 kali pengujian.
Mula-mula ketika modul server rusak (tidak diberi catudaya) seperti yang terlihat pada
gambar 4.20, modul client kemudian melakukan proses reconnecting dan melakukan proses
restart yang ditandai dengan keadaan modul tidak menyalakan lampu seperti yang tampak
pada gambar 4.21. Setelah melakukan restart, modul server yang baru akan menyalakan
lampu terlebih dahulu dan diikuti dengan modul yang lain. Hasil uji coba perubahan client
menjadi server hingga kembali ke siklus normal dapat dilihat pada gambar 4.22 (a), gambar
4.22 (b), gambar 4.22 (c) dan gambar 4.22 (d) yang masing-masing merupakan percobaan
pertama perubahan client menjadi server oleh tiap modul.
Gambar 4.20 Kondisi Ketika Server Menalami Kerusakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
69
Gambar 4.21 Kondisi Ketika Client Melakukan Reconnecting dan Restart
(a)
(b)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
70
(c)
(d)
Gambar 4.22 Durasi perubahan server hingga kembali ke siklus normal (a) ketika server
modul 1 rusak, (b) ketika server modul 2 rusak, (c) ketika server modul 3 rusak, (d) ketika
server modul 4 rusak
Tabel 4.10 Hasil Pengujian Perubahan Client menjadi Server
Pengujian
Ke-
Modul Server
Sebelum
Modul
Server
Sesudah
Durasi
Perubahan
Server ( detik )
Durasi Perubahan
Server hingga ke
Siklus Normal
(detik)
1 Modul 1 Modul 2 14,27 15,38
2 Modul 1 Modul 2 14,32 20,66
3 Modul 1 Modul 2 14,5 18,48
4 Modul 2 Modul 1 14,7 17,62
5 Modul 2 Modul 1 14,25 15,67
6 Modul 2 Modul 1 13,89 20,29
7 Modul 3 Modul 1 13,43 16,09
8 Modul 3 Modul 1 13,60 15,15
9 Modul 3 Modul 2 14,11 18,39
10 Modul 4 Modul 2 14,69 15,47
11 Modul 4 Modul 1 13,63 14,26
12 Modul 4 Modul 1 13,53 15,03
Rata-rata Durasi Perubahan Server 14,07 16,87
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
71
Berdasarkan hasil pengujian perubahan client menjadi server pada tabel 4.10, dapat
dilihat bahwa dalam 12 kali pengujian semua modul dapat berubah menjadi server dengan
rata-rata durasi perubahan dari client ke server selama 14,07 detik dan rata-rata durasi
perubahan hingga kembali ke siklus normal adalah selama 16,87 detik yang ditandai dengan
ketiga modul menyalakan lampu. Pada pengujian ke 9 dan ke 10, modul yang seharusnya
menjadi server adalah modul 1, namun pada pengujian ini terlihat bahwa modul 2 yang
berubah menjadi sever. Hal ini terjadi karena jeda antara modul 1 dan modul 2 sebelum
melakukan restart hanya 1 detik, sehingga terkadang proses restart modul 2 lebih cepat
dibanding modul 1 yang menyebabkan modul 2 menjadi server.
4.5.6 Pengujian Pergantian Client yang Rusak
Pengujian pergantian client dilakukan untuk mengetahui kemampuan modul
melakukan proses komunikasi dengan modul lainnya ketika modul mengalami kerusakan
dan harus diganti dengan modul yang baru. Proses pengujian dilakukan dengan
mengaktifkan salah satu modul saat ketiga modul lainnya sedang aktif seperti yang dapat
dilihat pada gambar 4.23. Pegujian dilakukan sebanyak 12 kali pengujian. Hasil uji coba
pergantian client yang rusak dapat dilihat pada gambar 4.24 (a), gambar 4.24 (a), gambar
4.24 (a) dan gambar 4.24 (a), yang merupakan pengujian pertama tiap modul sebagi modul
client yang hendak diganti. Data hasil pengujian pergantian client dapat dilihat pada tabel
4.11.
Gambar 4.23 Kondisi Awal Ketika Modul Client Baru Diberi Catudaya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
72
(a)
(b)
(c)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
73
(d)
Tabel 4.11 Hasil Pengujian Pergantian Client yang Rusak
Pengujian
ke-
Modul yang
Diuji
Status
Pergantian
Durasi
Sinkronisasi
(detik)
1 Modul 1 Sukses 6,19
2 Modul 1 Sukses 5,96
3 Modul 1 Sukses 6,24
4 Modul 2 Sukses 5,85
5 Modul 2 Sukses 6,64
6 Modul 2 Sukses 6,57
7 Modul 3 Sukses 5,77
8 Modul 3 Sukses 5,99
9 Modul 3 Sukses 6,1
10 Modul 4 Sukses 5,54
11 Modul 4 Sukses 6,35
12 Modul 4 Sukses 6,7
Rata-rata Durasi Sinkronisasi 6,15
Pada tabel 4.11 dapat dilihat bahwa setiap modul diuji sebanyak tiga kali dan keempat
modul mampu melakukan proses komunikasi dengan server dengan rata-rata durasi
sinkronisasi selama 6,15 detik setelah modul client yang bru diberikan catudaya.
4.5.7 Pengujian Jarak Komunikasi Server dengan Client
Pengujian jarak komunikasi antara server dengan client bertujuan untuk mengetahui
jarak maksimum yang dapat dijangkau oleh modul untuk melakukan komunikasi. Skema
proses pengujian jarak dilakukan dengan meletakan server dan client dengan jarak tertentu
seperti pada gambar 4.14. Pengujian jarak komunikasi dilakukan pada tanah lapang tanpa
adanya halangan. Hasil pengujian dapat dilihat pada tabel 4.12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
74
Gambar 4.24 Skema Pengujian Jarak Komunikasi Modul
Dimana:
L = Jarak antara client dengan server
Tabel 4.12 Hasil Pengujian Jarak Komunikasi Server dengan Client
Modul
Server
Jarak Komunikasi
Maksimum (meter)
Modul 1 42
Modul 2 40,5
Modul 3 44
Modul 4 41
Berdasarkan hasil pengujian pada tabel 4.12, jarak maksimum rata-rata komunikasi
antara server dan client adalah 41,8 meter pada kondisi tidak ada penghalang apapun.
Apabila server melebihi jarak maksimum, komunikasi antara server dan client tidak berjalan
maksimal dengan ditandai client terus berusaha melakukan rekoneksi dengan server,
sehingga lampu yang dinyalakan tidak sesuai dengan yang diharapkan. Modul client
menyalakan lampu kuning blink sesaat sebelum melakukan proses rekoneksi ke server. Jika
client tidak menemukan server maka client akan berubah menjadi server.
Jarak maksimum rata-rata komunikasi modul yang dibuat adalah 41,8 meter, sehingga
modul hanya dapat digunakan untuk perempatan yang yang kecil yang memiliki jarak
antarsisi kurang dari 41,8 meter. Modul lampu lalu lintas yang dibuat tidak dapat digunakan
untuk perempatan jalan yang memiliki jarak antarsisi jalan lebih dari 41,8 meter.
4.5.8 Pengujian Ketahanan Komunikasi Server dengan Client
Pengujian ketahanan komunikasi antara seevr dan client bertujuan untuk mengetahui
kemampuan modul mengirim dan menerima data dalam jangka waktu tertentu. Pengujian
ketahanan modul dilakukan dengan menyalakan keempat modul selama 3 x 24 jam
menggunakan adaptor sebagai catudaya. Hasil pengujian ketahanan komunikasi antara
server dengan client selama 72 jam adalah keempat modul dapat berkomunikasi dengan baik
selama proses pengujian.
Client 1
Client 2
Client 3
Server L
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
75
4.6 Analisis Perangkat Lunak (Software)
Pada sub bab ini akan dibahas mengenai Listinging program yang digunakan pada
modul lampu lalu lintas. Listinging program Lengkap dapat dilihat pada lampiran L-2.
4.6.1 Library yang Digunakan pada Program
Library yang digunakan pada program dapat dilihat pada gambar 4.25. Library
digunakan untuk menjalankan fungsi-fungsi yang dibutuhkan pada program. Terdapat enam
library yang digunakan yaitu ‘ESP8266WiFi.h’, ‘ESP8266WebServer.h’,
‘ESP_EEPROM.h’, ‘ArduinoJson.h’, ‘RTClib.h’ dan ‘ESP8266Ping.h’. Library
‘ESP8266WiFi.h’ menyediakan fasilitas penggunaan Wi-Fi pada modul seperti pengaturan
mode station atau mode access point Esp8266 dan pengaturan alamat IP. Library
‘ESP8266WebServer.h’ berfungsi untuk membuat dan mengakses web server pada
Esp8266. Library ‘ESP_EEPROM.h’ berfungsi untuk menyimpan atau membaca data
EEPROM Esp8266. Library ‘ArduinoJson.h’ berfungsi untuk mengatur format pengiriman
data antar server dan client dalam bentuk JSON. Library ‘RTClib.h’ berfungsi untuk
mengkases dan mengatur RTC. Library ‘ESP8266Ping.h’ berfungsi untuk melakukan ping
pada modul.
Gambar 4.25 Library yang Digunakan pada Program
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
76
4.6.2 Variabel yang Digunakan pada Program
Variabel-variabel yang digunakanpada program dapat dilihat paa gambar 4.26.
Variabel pada program bertujuan agar nilai variabel dapat berubah-ubah sesuai kebutuhan
program. Keterangan penggunaan variabel dapat dilihat pada tabel 4.13.
Gambar 4.26 Variabel yang digunakan pada Program
Tabel 4.13 Fungsi Variabel yang Digunakan pada Program
Tipe Data Nama variabel Keterangan
Array
Integer
waktu-RTC Variabel data waktu pada server yang akan dikirim ke
client
durasi_lampu Variabel data counter durasi waktu yang dikirim dari
server ke client
detetapan_lampu Variabel Data durasi waktu yang dikirim dari web ke
server
lampu_apill Variabel data untuk menyalakan warna lampu pada modul
cc Variabel data ‘status_mulai’ pada modul
Array
Char
PARAM_INPUT Variabel data yang dikirim dari web ke server
warna_lampu Variabel tampilan warna lampu pada halaman web
ip_modul Variabel tampilan alamat IP modul pada halaman web
String tmpString Variabel Pengganti data dari server ke web
String Jam Variabel data jam RTC yang dikirim dari web
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
77
Tabel 4.13 Fungsi Variabel yang Digunakan pada Program (Lanjutan)
4.6.3 Listing Program Konfigurasi Jaringan
Listing program konfigurasi jaringan dapat dilihat pada gambar 4.27. Konfigurasi
jaringan meliputi pemberian nama jaringan (SSID) dan password untuk log-in ke dalam
dalam jaringan serta pengaturan alamat IP server, subnetmask, gateway dan IP client. SSID
yang digunakan adalah “ESP8266_TA” dengan password “g00dluck”. Alamat IP Server dan
gateway adalah 192.168.11.1 dengan subnetmask 255.255.255.0. Alamat IP client adalah
‘192.168.11.a’ dengan ‘a’ merupakan nilai kombinasi input dari switch yang dapat dilihat
pada gambar 4.18. “ESP8266WebServer server (80)” merupakan fasilitas untuk
menggunakan web server dengan nama “server” dengan port komunikasi HTTP adalah 80.
Gambar 4.27 Listing Program Konfiguras jaringan
Tipe Data Nama variabel Keterangan
String menit Variabel data menit RTC yang dikirim dari web
Boolean sbgClient Variabel status modul server/client
mulai Variabel kondisi modul sedang berjalan atau tidak
Integer
cursor Variabel penunjuk indeks pada variabel durasi_lampu
warna Variabel perubah data pada variabel lampu_apill
a Variabel penyimpan data input Switch
sw1,sw2,sw3,
tombol Variabel status logika input switch dan tombol
putus Variabel prioritas penyalaan modul ketika server rusak
jam1,jam2 Variabel interval lampu kuning menyalakan lampu kuning
blink
alamat_ip Variabel untuk menampilkan alamat IP yang terhubung ke
server
jam_server Variabel data waktu RTC real time
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
78
4.6.4 Listing Program Konfigurasi I/O
Listing program konfigurasi port I/O dapat dilihat pada gambar 4.28.
Gambar 4.28 Listing Program Konfigurasi Port I/O
4.6.5 Listing Program Scanning SSID
Listing program scanning SSID dapat dilihat pada gambar 4.29. Untuk melakukan
proses scanning SSID digunakan fungsi ‘WiFi.scanNetworks ()’. Fungsi ini merupakan
fungsi yang sudah terintegrasi pada NodeMCU. Pada program dilakukan proses
pengulangan untuk memeriksa SSID yang ada disekitar NodeMCU. Untuk mengetahui
SSID yang ada disekitar NodeMCU digunakan fungsi ‘WiFi.SSID ()’.
Jika terdapat SSID yang sama dengan yang dimiliki modul yaitu ‘ESP8266_TA’ maka
variabel ‘sbgClient’ diberi nilai ‘true’ sebagai tanda modul yang digunakan merupakan
client. Apabila NodeMCU tidak menemukan SSID yang sama dengan SSID miliknya maka
modul berubah menjadi access point dan menjadi server.
Gambar 4.29 Listing Program Scanning Jaringan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
79
4.6.6 Listing Program Pengaturan Modul sebagai Server/Client
Listing program konfigurasi modul sebagai server atau client merupakan Listing
program yang bertujuan mengatur mode modul sebagai access point (server) atau mode
station (client). Listing program konfigurasi modul sebagai server/client dapat dilihat pada
gambar 4.30.
Gambar 4.30 Listing Program Pengaturan Server dan Client
Jika modul sebagai client, mula-mula modul mengkatifkan fungsi ‘WiFi.begin
(ssid_ap, password_ap)’ yang bertujuan untuk mengkoneksikan client ke access point
dengan SSID yang terdapat pada variabel ‘ssid_ap’ yaitu ‘ESP8266_TA’ dengan
memasukan password yang sama dengan yang terdapat pada variabel ‘password_ap’ yaitu
‘g00dluck’. Fungsi ‘WiFi.config (ipClient, gateway, subnet, gateway)’ bertujuan untuk
memberikan alamat IP statis pada client yaitu yang ada pada variabel ‘ipClient’ dengan
variabel ‘gateway’ sebagai alamat IP server dan sebagai gateway pada jaringan sedangkan
variabel ‘subnet’ merupakan variabel subnetmask jaringan. Pada modul client juga terdapat
proses memeriksa koneksi client dengan server yaitu dengan menggunakan fungsi
‘WiFi.status ()’.
Jika modul sebagai server, mula-mula atur mode access point dengan fungsi
‘WiFi.mode (WIFI_AP)’. Konfigurasi alamat IP, submetmask dan gateway diatur
menggunakan fungsi ‘WiFi.softAPConfig (gateway, gateway, subnet)’ dengan ‘gateway’
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
80
adalah variabel alamat IP server dan gateway. Pengaturan nama SSID dan password
dilakukan dengan menggunakan fungsi ‘WiFi.softAp (ssid_ap, password)’ dengan ‘ssid-ap’
adalah ‘ESP8266_TA’ dan ‘password_ap’ adalah ‘g00dluck’. Server akan merespon request
client dengan fungsi ‘server.on (“/url_name”, function)’. Fungsi ‘server.on (“/”,
handleHome)’ berarti server akan mengeksekusi subrutin ‘handleHome’ jika pada web
browser diketikan URL “/”. Contoh pada penelitian ini yaitu jika hendak mengakses halaman
web pengaturan pewaktuan, URL yang diketik pada web browser adalah ‘192.168.11.1/’
atau ‘192.168.11.1’ sedangkan untuk melihat halaman monitoring, URL yang diketik pada
web browser adalah ‘192.168.11.1/monitor’. Untuk mengkatifkan server digunakan fungsi
‘server.begin ()’. Kata “server” pada ‘server.on ()’ atau ‘server.begin ()’ sendiri merupakan
nama yang dideklarasikan pada ‘ESP8266WebServer server (80)’ seperti pada gambar 4.17.
4.6.7 Listing Program Sub Rutin Request Data ke Server
Listing progran sub rutin request data ke server dapat dilihat pada gambar 4.31. Sub
rutin request data ke server merupakan peintah yang dilakukan oleh client untuk me-request
data ke server. Mula-mula untuk me-request, client diberi URL yaitu “/data”. Jika sub rutin
request data ke server dipanggil, program akan menjalankan perintah ke server untuk
merespon client dengan mengirimkan data yang ada pada URL “/data”. Perintah ini tampak
pada gambar 4.19 pada bagian ‘server.on (“/data”, handleData)’. ‘handleData’ merupakan
fungsi untuk membuat konversi data ke format JSON. Data dari format JSON inilah yang
diterima client sebagai respon dari server.
Terdapat format tertentu yang digunakan untuk melakukan request ke server. HTTP
request terdiri dari baris-baris yang diakhiri dengan suatu carriage return dan line feed yang
direpresentasikan dengan <CR><LF> atau ‘/r/n’. Baris pertama pertama berisi metode dan
tujuan HTTP dan baris sisanya berisi header HTTP termasuk header host yang diperlukan.
Terdapat beberapa metode HTTP salah satunya adalah metode ‘GET’[18]. Metode ‘GET’
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
81
digunakan untuk mengambil informasi dari server melalui URL yang diberikan dengan
hanya mengambil data tanpa merubah data[19].
Gambar 4.31 Listing Program Sub Rutin Request Data ke Server
Pada gambar 4.21 terdapat format pengiriman request ke server dengan metode ‘GET’
dengan tujuan ‘url’ yang berisi “/data” dengan header HTTP ‘HTTP/1.1’ yang diakhiri oleh
‘\r\n’ sebagai carriage return dan line feed. Baris berikutnya merupakan header host yaitu
‘Host: 192.168.11.1’ yang merupakan alamat IP server. Setelah melakukan request, request
HTTP ditutup dengan “Connection: close”. Setiap baris diakhiri dengan carriage return dan
line feed ‘\r\n’.
Setiap kali melakukan request, client selalu memeriksa koneksi dengan server. Untuk
memeriksa koneksi dengan server digunakan fungsi ‘WiFiClient client’ yang berisi
‘client.connect (IP_sever, HTTP_PORT)’. ‘IP-server’ merupakan alamata IP yang
digunakan yaitu 192.168.11.1 disimpan pada variabel ‘gateway’ dan ‘HTTP_PORT’ adalah
Format pengiriman
request ke server
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
82
port HTTP yaitu 80 yang disimpan pada variabel ‘httpPort’. Jika client tiba-tiba kehilangan
koneksi dengan server, client akan menyalakan lampu kuning blink sesaat sebelum
melakukan delay yang durasinya tergantung alamat IP kemudian me-restart dengan
menjalankan fungsi ‘ESP.restart ()’.
Selama client terkoneksi dengan server yang ditandai dengan fungsi ‘client.available
()’, client membaca semua infirmasi yang diterima dari server. Apabila client tidak mendapat
respone dari server lebih 5 detik, client akan menjalakan fungsi restart.
4.6.8 Listing Program Sub Rutin Konversi Data ke JSON
Format pengiriman data antara server dan client menggunakan format JSON. Listing
program sub rutin konversi format pengiriman data dapat dilihat pada gambar 4.32. Mula-
mula dibuat dokumen JSON dengan fungsi ‘DynamicJsonDocument ()’ dengan nama ‘doc’
yang memiliki ukuran data 512 bytes untuk menyimpan dokumen JSON. Pada JSON
terdapat objek yang berisi “key” dan “value”. “Key” dan “value” merupakan daya yang
dikirimkan. Oleh karena itu, perlu adanya objek pada JSON yang dibuat dengan fungsi
‘JsonObject’ untuk membaca konten yang terdapat pada dokumen JSON yang
direpresentasikan dengan ‘JsonObject obj = doc.to. <JsonObject>()’.
Untuk membuat array dibutuhkan fungsi ‘JsonArray _name’. Pada gambar 4.32,
terdapat beberapa nama dari ‘JsonArray’ yaitu ‘d_lampu’, ‘status_lampu’, ‘status_mulai’
dan ‘waktu’. Nama array tersebut dikenalkan pada dokumen JSON menggunakan fungsi
‘createNestedArray (key_name)’ yang bersisi “key” pada dokumen JSON. Data pada
dukumen JSON diisi dengan variabel yang dikenali oleh Esp8266 menggunakan fungsi
‘copyArray (Variabel_esp, Array_Json)’. Fungsi ‘coppyArray ()’ digunakan untuk menyalin
nilai pada variabel ‘durasi_lampu’, ‘lampu_apill’, ‘cc’ dan ‘waktu_RTC’ masing masing ke
JSON array. Hasil konversi format pengiriman data ke JSON dapat dilihat pada gambar 4.11.
Gambar 4.32 Listing Program Sub Rutin Konversi Data ke JSON
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
83
4.6.9 Listing Program Sub Rutin Konversi Data Pengaturan Web
Listing program konversi data pengaturan web bertujuan untuk mengubah data
pengaturan web yang berbentuk string ke integer agar dapat dieksekusi oleh program utama.
Listing program sub rutin konversi data pengaturan web dapat dilihat pada gambar 4.33.
Terdapat fungsi ‘server.arg (PARAM_INPUT [i])’ yang memiliki fungsi mengakses nama
argumen pada HTML di halaman web. Nama argumen tersebut dapat dilihat pada gambar
4.16 yaitu isi dari array ‘PARAM_INPUT [11]’, ‘warna_lampu [4]’ dan ‘ip_modul[4]’
memiliki nama yang sama dengan argumen yang ada pada Listing program halaman web
pengaturan durasi yang dapat dilihat pada gambar 4.38.
Nama argumen ini memiliki data yang berbentuk string. Untuk mengubah data dari
string ke integer digunakan fungi ‘_name.toInt ()’. “_name” merupakan nama variabel
penyimpan nama argumen pada web yang berbentuk string. Selain fungsi ‘toInt ()’, terdapat
fungsi ‘substring ()’ yang memiliki fungsi untuk mengambil bagian tertentu dari data string.
Pada Listing program yang ditunjuk pada gambar 4.23 terdapat script “jam =
dataaa.substring (0,2)” yang fungsinya untuk mengambil data jam yang diatur melalui web.
‘0’ meroakan indeks mulainya pengambilan data dan ‘2’ adalah indeks setelah data terakhir
diambil. Agar lebih memahami fungsi ‘substring ()’, berikut merupakan contoh penggunaan
fungsi ‘substring()’. “input9=20%3A30&input10=00%3A00&input11=06%3A00”
merupakan data yang dikirim dari web yang dapat dilihat pada baris pencarian web browser
setelah tombol “SUBMIT” pada halaman web ditekan. “input9”, “input10” dan “input11”
merupakan nama argumen pada HTML dengan data masing masing adalah ‘20%3A30’,
‘00%3A00’ dan ‘06%3A00’. Karakter ‘%3A’ merupakan karakter ‘:’ pada HTML sehingga
total indeks dari setiap data yang dikirim adalah 4 yaitu indeks 0 hingga indeks 3. Sehingga
untuk mengambil data ‘20’, ‘00’ dan ‘06’, parameter yang digunakan pada fungsi ‘substring
()’ adalah ‘substring (0, 2)’.
Pada sub rutin konversi pengaturan data web juga terdapat perintah untuk menyimpan
data pengaturan ke EEPROM server. Data yang disimpan ke EEPROM adalah data durasi
waktu lampu lalu lintas. Penyimpanan data ke EEPROM membutuhkan beberapa fungsi
yang berasa dari library ‘ESP_EEPROM.h’. Penjelasan lebih lengkap mengenai EEPROM
akan dibahas pada poin bahasan Listing program menyimpan data ke EEPROM.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
84
Gambar 4.33 Listing Program Sub Rutin Konversi Data Pengaturan Web
4.6.10 Listing Program Sub Rutin Pengaturan Penyalaan Lampu
Listing program pengaturan penyalaan lampu berfungsi untuk menentukan warna
lampu yang harus dinyalakan modul. Pada dasarnya isi sub rutin penyalaan lampu berisi
pengaturan nilai output pada port Esp8266. Untuk menyalakan lampu digunakan perintah
‘digitalWrite (pin_out, HIGH)’ dan untuk mematikan lampu digunakan perintah
‘digitalWrite (pin_out, LOW)’. “pin_out” menunjuk pada nama pin output yang dituju dan
“HIGH/LOW” merupakan logika yang diberikan untuk port output yang dituju. Listing
program sub rutin pengaturan penyalaaan lampu dapat dilihat pada gambar 4.34.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
85
Gambar 4.34 Listing Program Sub Rutin Pengaturan Penyalaan Lampu
4.6.11 Listing Program Penyimpanan Data ke EEPROM
Untuk mengakses EEPROM pada Esp8266 dibutuhkan library ‘ESP_EEPROM.h’
yang memiliki fungsi untuk menyimpan dan membaca data pada EEPROM. Fungsi
‘EEPROM.begin (size)’ adalah untuk memulai segala proses reading atau writing dengan
ukuran data tertentu dalam bentuk byte yang tepisah 4 byte dan 4096 byte[20]. Fungsi
‘EEPROM.put (address, data)’ adalah untuk menulis berbagai jenis tipe data dan objek pada
EEPROM pada alamat tertentu. Fungsi ‘EEPROM.get (address, data)’ adalah untuk
membaca berbagai jenis tipe data dan objek pada alamat tertentu. Terdapat juga fungsi
‘EEPROM.commit ()’ yang berfungsi untuk meyimpan perubahan data tiap kali ada
perubahan. Fungsi ‘EEPROM.commit ()’ harus dipanggil ketika proses menyimpan data
yang dilakukan fungsi EEPROM.put (address, data) selesai agar data dapat disimpan.
Listing program penyimpanan data ke EEPROM dapat dilihat pada gambar 4.35.
Gambar 4.25(a) merupakan pengaturan ukuran byte yang digunakan untuk EEPROM yaitu
128 byte. Gambar 4.25(b) merupakan proses menyimpan data durasi lampu dari dari web
yang telah diubah ke integer ke EEPROM server dan EEPROM client dan gambar 4.35(c)
merupakan proses membaca data EEPROM server. Gambar 4.35(d) menyimpan data
“status_mulai” pada EEPROM.
(a)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
86
(b)
(c)
(d)
Gambar 4.35 Listing Program Penyimpanan Data ke EEPROM (a) pengaturan
ukuran byte EEPROM, (b) menyimpan data durasi ke EEPROM server, (c) membaca data
dari EEPROM, (d) menyimpan data ‘cc[0]’ ke EEPROM
4.6.12 Listing Program Sub Rutin Monitoring
Listing program monitoring merupakan sub rutin yang berfungsi untuk mengetahui
jumlah dan alamat IP client yang terhubung ke server serta warna lampu yang sedang
dinyalakan oleh modul. Listing program sub rutin monitoring dapat dilihat pada gambar
4.27. Untuk mengetahui jumlah client yang tehubung ke access point digunakan ‘struct
station_info *stat_info’ yang terdapat pada file header yang tampak pada gambar 4.36.
Gambar 4.36 File Header untuk Mendapat Informasi Client
File header pada gambar 4.26 berfungsi untuk menampilkan informasi tentang client
berupa alamat IP Client (DHCP), mac address dan jumlah client yang terhubung pada access
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
87
point. Untuk mengetahui jumlah client yang tehubung digunkan fungsi
‘wifi_softap_get_station_num ()’. Untuk mengetahui alamat IP client yang terhubung ke
server digunakan fungsi ‘Ping.ping (IP_Address)’ yang terdapat pada library
‘ESP8266Ping.h’. Fngsi ‘Ping ()’ digunakan untuk memeriksa alamat IP client yang
terhubung ke server. Apabila proses ping berhasil, server akan mengirim data ke web berupa
alamat IP yang sudah diubah ke dalam bentuk string yang disimpan pada variabel
‘potong_ip’. Data pada alamat variabel ‘potong_ip’ merupakan nama argumen pada HTML
yaitu ‘%modul1%’, ‘%modul2%’, ‘%modul3%’ dan ‘%modul4%’.
Pengubahan alamat IP client dilakukan dengan script yang ditunjuk angka 1 pada gambar
4.37 bertujuan mengambil setiap nilai setiap byte pada alamat IP client karena ukuran alamat
IP adalah 4 byte yang setiap byte-nya dipisahkan dengan ‘,’ ( koma ). Oleh karena itu
pengambilan alamat IP dilakukan perbyte kemudian alamat IP dikirim ke web menggunakan
fungsi ‘repalce ()’. Fungsi ‘repalce ()’ juga digunakan untuk mengubah data nama argumen
pada web dengan data warna lampu yang sedang dinyalakan oleh keempat modul.
Gambar 4.37 Listing Program Sub Rutin Monitoring
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
88
4.6.13 Listing Program Halaman Web
Listing program halaman web terdiri dari dua bagian yaitu halaman web pengaturan
durasi lampu lalu lintas dan halaman web monitoring. Listing program halaman web
pengaturan durasi dan halaman web mobitoring masing-masing dapat dilihat pada gambar
gambar 4.38 dan gambar 4.29. Halaman web dibuat menggunakan HTML.
Gambar 4.38 Listing Program Halaman Web Pengaturan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
89
Gambar 4.38 Listing Program Halaman Web Pengaturan (Lanjutan)
Gambar 4.39 Listing Program Halaman Web Monitoring
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
90
Gambar 4.39 Listing Program Halaman Web Monitoring (Lanjutan)
Pada list program halaman web terdapat beberapa bagian penting yaitu tag <form >
..</form>, <input type = “text” name= “name” > dan tag <div>..</div> . Tag <form>
berfungsi membuat sebuah form HTML untuk melakukan input melalui user. Script ‘<form
action : “/get”>’ memiliki atribut ‘action’ yang berfungsi menentukan tempat untuk
mengirim data yang dimasukan dan “/get” merupakan tempat tujuan dari data yang dikirim
setelah “submit” ditekan. “/get” menunjuk pada sub rutin program konversi data pengaturan
web dengan nama ‘void balas()’ yang dapat dilihat pada gambar 4.20 bagian ‘server.on
(“/get”, balas)’. Script ‘<input type = “text” name= “name” >’ berfungsi untuk memberikan
input pada form HTML dengan atribut ‘type’ adalah jenis input dan atribut ‘name’ berisi
nama elemen input. Pada program halaman web terdapat dua jenis atribut ‘type’ yaitu ‘text’
dan ‘time’ dan nama elemen input pada web sama dengan isi variabel “PARAM_INPUT”
yang dapat dilihat pada gambar 4.16. Tag <div>..</div> berfungsi untuk mendefinisikan
suatu id atau class yang dapat dimanipulasi. Contoh penggunaan tag <div> pada script ‘<h4>
Jumlah_Client : <div id= 'anggota'> %anggota% </h4>’, id ‘anggota’ memiliki data yang
dapat berubah sesuai perubahan argumen ‘%anggota%’ yang terdapat pada sub sutin
program monitoring.
Selain tag-tag di atas, terdapat juga tag lain yaitu tag <table> untuk membuat tabel, tag
<tr> dan tag <td> masing-masing berfungsi untuk membuat kolom dan baris tabel dan
terdapat tag <style> yang berfungsi untuk mengatur tampilan tabel. Pada program halaman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
91
web monitoring terdapat script yang berfungsi untuk me-refresh halaman web yaitu ‘<meta
http-equiv='refresh' content='1'>’ yang melakukan refresh pada halaman web setiap 1 detik
guna meng-update data perubahan warna lampu lalu lintas dan jumlah client yang terhubung
ke server.
4.6.14 Listing Program Utama
Listing program utama dapat dilihat pada gambar 4.40. Program utama berisi program
counter durasi lampu lalu lintas dan sub rutin – sub rutin program yang sudah dijelaskan
sebelumnya.
Gambar 4.40 Listing Program Utama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
92
Gambar 4.40 Listing Program Utama (Lanjutan)
Jika modul menjadi server, mula-mula modul membaca data pada variabel ‘cc[0]’
yang disimpan pada EEPROM. Jika data ‘cc[0]’ = 90 proses counting durasi belum berjalan,
sedangkan jika ‘cc[0]’ = 88 artinya proses counting durasi sedang berjalan. Pada saat data
‘cc[o]’ = 88, server melakukan pengambilan keputusan untuk menyalakan lampu kuning
blink jika ‘jam_server’ lebih besar sama deengan variabel ‘jam1’ dan lebih kecil atau sama
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
93
variabel ‘jam2 -1’ atau menjalankan proses counting durasi jika’jam_server’ berada di luar
kondisi lampu kuning blink.
Counter durasi lampu lalu lintas dibuat menggunakan fungsi delay yang diatur 1 detik
yang terdapat pada script ‘durasi_lampu [cursor] [warna] -= 1’. Setiap detik, server akan
mengurangi data durasi yang terdapat pada array ‘durasi_lampu [cursor] [warna]’ dengan 1.
Pada array ‘durasi_lampu [cursor] [warna]’, “cursor” menunjuk pada modul yang sedang
dalam proses counting dan “warna” menunjukan warna lampu yang dinyalakan modul.
Untuk mengani request client, diperlukan fungsi ‘server.handleCleint ()’. Fungsi
‘server.handleCleint ()’ diulang setiap 1 detik untuk menyessuikan dengan request client
yang juga dilakukan setiap detik.
Jika modul sebagai client, mula-mula melakukan request ke server dengan memanggil
sub rutin request data ke server. Setelah menerima dari server, client melakukan proses
memilah data yang diterima dengan fungsi ‘deserializeJson (doc, data)’ yang sebelumnya
telah digabung oleh fungsi ‘serializeJson (doc, data)’ pada sub rutin konversi data ke JSON.
Jika data ‘cc’ = 90 maka client akan menyimpan data yang diterima dari server berupa data
ketetapan lampu ke EEPROM. Jika data ‘cc’ = 88, client menyalakan lampu sesuai dengan
data ‘status_lampu; yang diterima dari server. Client melakukan request ke server setiap
detik, namun pada implementasinya request server dilakukan setiap 900 ms untuk mentoleril
waktu yang digunakan untuk komunikasi antara client dan server.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
94
5 BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah melakukan perancangan, pembuatan dan pengujian pada prototype modul
lampu lalu lintas, dapat diambil kesimpulan sebagai berikut:
1. Semua modul yang dibuat dapat difungsikan sebagai server atau client,
2. Pengriman data dari web ke server, dari server ke web dan dari serve ke client berjalan
dengan baik secara wireless,
3. Keempat modul lampu lalu lintas dapat tersinkronisasi dengan baik,
4. Server yang rusak dapat digantikan dengan client yang memiliki alamat IP terkecil
5. Rata-rata durasi perubahan server menjadi client adalah 14,07 detik dan rata-rata
durasi perubahan server hingga kembali ke siklus normal adalah 16,87 detik,
6. Jarak rata-rata komunikasi ideal maksimun antara server dan client adalah 41,8 meter
7. Komunikasi antara server dengan client dapat berjalan dengan baik selama 72 jam.
5.2 Saran
Berdasarkan hasil yang diperoleh, untuk pengembangan selanjutnya terdapat
beberapa saran yaitu:
1. Agar jangkauan komunikasi antar server dan client lebih jauh dan lebih stabil, dapat
digunakan penguat sinyal berupa booster sinyal,
2. Agar modul dapat digunakan pada berbagai persimpangan jalan, pada program dapat
ditambahkan pengaturan jumlah client yang diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
95
6 DAFTAR PUSTAKA
[1] M. Aria and R. Faizal, 2017, “Sistem Lalu Lintas Terpadu Embedded Traffic System,”
Telekontran, vol. 5, no. 2, pp. 83–93.
[2] N. Warihandoko, M. Rivai, and T. Tasripan, 2016, “Pengaturan Lampu Lalu Lintas
Secara Nirkabel Bertenaga Surya,” Jurnal Teknik ITS, vol. 5, no. 2, pp. 1–6.
[3] “UU No. 22 Tahun 2009.” .
[4] V. Rahmawati, 2017, “NODEMCU V3,” eprints.akakom.ac.id. .
[5] Ramdom Nerd Tutorials, 2019, “ESP8266 GPIOs,” randomnerdtutorials.com. .
[6] Electronicswings, 2020, “NodeMCU GPIO with Arduino IDE,” electronicwings.com.
.
[7] P. P, 2017, “A Beginner’s Guide to the ESP8266.” .
[8] M. H. Wicaksono, 2017, Mudah Belajar Mikrokontroler Arduino. Bandung:
Informatika.
[9] H. Sidik, Betha dan Iskandar Pohan, 2007, Pemrograman Web dengan HTML,
Kelima. Bandung: INFORMATIKA.
[10] W. Stallings, 2005, Wireless Communications & Networks, Second. New Jersey: Alan
Apt.
[11] A. A. Zabar and F. Novianto, 2015, “Keamanan Http Dan Https Berbasis Web
Menggunakan Sistem Operasi Kali Linux,” Komputa : Jurnal Ilmiah Komputer dan
Informatika, vol. 4, no. 2, pp. 69–74.
[12] T. Kuntoro Priyambodo and D. Heridiadi, 2005, Jaringan Wi-Fi, Teori &
Implementasi. Yogyakerta: ANDI.
[13] Bakti, 2018, “Fungsi Access Point dan Cara Kerjanya dalam Koneksi Internet,”
www.baktikominfo.id. .
[14] Elektronika Dasar, 2015, “LED (Light Emitting Diode),” elektronika-dasar.web.id. .
[15] L. Boylestad, Robert L. ;Nashelsky, 2009, Electronic Devices and Circuit Theory,
Tenth. New Jersey: Pearson Education,Inc.
[16] Maxim Integrated, 2015, “DS 3231 RTC General Description,” Data Sheet, p. 20.
[17] json.org, “Pengenalan JSON.” .
[18] Citrix, “Notes on the format of HTTP requests and responses.” [Online]. Available
at: https://docs.citrix.com/en-us/netscaler/12/appexpert/http-callout/http-request-
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
96
response-notes-format.html. [Accessed: 17-Jul-2020].
[19] Tutorialspoint, “HTTP - Requests.” [Online]. Available at:
https://www.tutorialspoint.com/http/http_requests.htm. [Accessed: 17-Jul-2020].
[20] ESP8266 Arduino Core, 2017, “Libraries.” [Online]. Available at: https://arduino-
esp8266.readthedocs.io/en/latest/libraries.html. [Accessed: 19-Jul-2020].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-1
7 LAMPIRAN
L A M P I R A N
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-2
Lampiran 1
Listing Program
/*
Program Smart Modular Traffic Light berbasis NodeMCUEsp8266
2020
Author: 165114045
Company: TE, USD
*//*
Inisiasi Library yang digunakan pada program*/
#include <ESP8266WiFi.h> // Library untuk mengakses Wi-Fi pada NodeMCU
#include <ESP8266WebServer.h> // Library untuk NodeMCU bisa menjadi
server
#include <ESP_EEPROM.h> // Library untuk menggunakan EEPROM pada
NodeMCU
#include <ArduinoJson.h> // Library Untuk mengkonversi data dalam
bentuk JSON
#include "RTClib.h" // Library untuk mengakses RTC
#include <ESP8266Ping.h> // Library untuk mengakses fungsi Ping
Esp8266
// #include <WiFiClient.h>
//==============================================================//
RTC_DS3231 rtc; // Mengenal RTC yang digunakan adalah DS3231
extern "C" //file header untuk mengetahui info tentang client
#include<user_interface.h>
//==============================================================//
/* * Variabel-variabel yang digunakan pada program* dan
penjelasannya*/
int waktu_RTC [1];
int durasi_lampu[4][3] = 20,5,3,20,5,3,20,5,3,20,5,3;
//Durasi lampu keepat modul (berubah sesuai counter)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
int ketetapan_lampu[4][3] =
20,5,3,20,5,3,20,5,3,20,5,3//Ketetapan durasiLampu setiap
modul (tetap, tidak terpengaruh counter) 00
int lampu_apill[4] = 2,0,0,0; //status penyalaan lampu keepat modul
'2' = Hijau, '1' = kuning, '0' = merah
int cursor = 0; // untuk menunjuk urutan penyalaan lampu pada
modul
int warna = 0; // untuk menentukan warna lampu yang sedang menyala
int a = 0; // variabel untuk nilai masukkan switch
int sw1,sw2,sw3,tombol; // Variabel untuk switches dan pushbutton
// int putus = 0;
String tmpString ;
bool sbgClient = false; // kondisi pemilihan sub rutin sebagai
client atau server
bool mulai = false; // menunjukkan status mulai pada sistem
int cc[1] = 90;
char* PARAM_INPUT[11] = "input1","input2","input3","input4",
"input5","input6","input7","input8",
"input9","input10","input11"; //variabel
untuk data yang diatur pada web
char* warna_lampu[4] = "%hijau%","%merah2%","%merah3%","%merah4%";
char* ip_modul[4] = "%modul1%","%modul2%","%modul3%","%modul4%";
String jam, menit;
int jam1=23; // variabel jam mulai blink
int jam2 =6; // variabel jam selesai blink
int alamat_ip;
int jam_server; // mengatur jam RTC
//int r = 0;
//int waktu_blink[2];
//=============================================================/
/* * PENGATURAN IP
* Pengaturan SSID dan Password
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
* Pengaturan Nilai ketetapan lampu, status, dan durasi lampu pada
modul
*/
char* ssid_ap = "ESP8266_TA"; // SSID pada modul
char* password_ap = "g00dluck"; // passwaord
IPAddress gateway(192,168,11,1); // IP Server
IPAddress subnet(255,255,255,0); // submetmask
IPAddress ipclient (192,168,11,a); // IP Client
ESP8266WebServer server(8); // mengatur port HHTP
//============================================================//
/* * KODE UNTUK MEMBUAT HALAMAN WEB**/
String index_html = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<h1>Halaman Pengaturan Pewaktuan</h1>
<style>
table, th, td
border: 1px solid black;
</style>
<script>
function startTime()
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML =
h + ":" + m + ":" + s;
document.getElementById('jam').innerHTML = s ;
var t = setTimeout(startTime, 500);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
function checkTime(i)
if (i < 10) i = "0" + i;
return i;
</script>
</head>
<body style = "background-color:lightgrey"
onload="startTime()">
<h3> Waktu Saat Ini : <div id="txt" align =
"left"></div></h3>
<form action="/get">
<h3> Setting RTC</h3>
<p>Setting Waktu <input type="time" name="input9"></p>
<p> Setting Lampu Blink <input type="time" name="input10">
<input type="time" name="input11"> </p>
<h3> Setting Durasi Tiap Modul</h3>
<p>Durasi Lampu Kuning Default : 5 detik</p>
<table>
<colgroup>
<col style="background-color:honeydew">
<col style="background-color:green">
<col style="background-color:yellow">
</colgroup>
<tr>
<th>Alamat IP</th>
<th>Hijau</th>
<th>Kuning</th>
</tr>
<tr>
<td>192.168.11.2</td>
<td><input type="text" name="input1"></td>
<td><input type="text" name="input5"></td>
</tr>
<tr>
<td>192.168.11.3</td>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
<td><input type="text" name="input2"></td>
<td><input type="text" name="input6"></td>
</tr>
<tr>
<td>192.168.11.4</td>
<td><input type="text" name="input3"></td>
<td><input type="text" name="input7"></td>
</tr>
<tr>
<td>192.168.11.5</td>
<td><input type="text" name="input4"></td>
<td><input type="text" name="input8"></td>
</tr>
</table>
<p></p>
<h4></h4>
<input type="submit" value="SUBMIT">
</form>
<p></p>
</body>
</html>)rawliteral";
//=============================================================//
String ceklampu_html = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<h2> STATUS WARNA LAMPU MODUL </h2>
<h4> Jumlah_Client : <div id= 'anggota'> %anggota% </h4>
<h4> Waktu_RTC : <div id= 'jam_server'> %jam_server% </h4>
<meta name='viewport' content='width=device-width, initial-
scale=1.0'/>
<meta charset='utf-8'>
<meta http-equiv='refresh' content='1'>
<style>
table, th, td
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
border: 1px solid black;
</style>
</head>
<body style = "background-color:grey" onload="startTime()">
<table>
<colgroup>
<col style="background-color:honeydew">
<col style="background-color:honeydew">
<col style="background-color:honeydew">
<col style="background-color:honeydew">
</colgroup>
<tr>
<th>Alamat IP Terhubung</th>
<th>Warna Lampu</th>
</tr>
<tr>
<td><div id= 'modul1'> %modul1%</td>
<td> <div id= 'merah1'> %hijau%</td>
</tr>
<tr>
<td><div id= 'modul2'> %modul2%</td>
<td> <div id= 'merah2'> %merah2%</td>
</tr>
<tr>
<td><div id= 'modul3'> %modul3%</td>
<td> <div id= 'merah3'> %merah3%</td>
</tr>
<tr>
<td><div id= 'modul4'> %modul4%</td>
<td> <div id= 'merah4'> %merah4%</td>
</tr>
</table>
</body>
</head>
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
</html>
)rawliteral";
//------------------------------------------------------------------//
void reset_paksa()
//memberi nilai ‘cc[0]’ = 90 ketika URL 192.168.11.1/reset diakses
EEPROM.put(100,90); EEPROM.commit();
server.send(200, "text/plain", "RESET BERHASIL");
void lanjut()
//memberi nilai ‘cc[0]’ = 88 ketika URL 192.168.11.1/lanjut diakses
EEPROM.put(100,88); EEPROM.commit();
server.send(200, "text/plain", "Counting is Running");
//=============================================================//
/* SUB RUTIN - SUB RUTIN YANAG ADA PADA PROGRAM*/
//----------------------------------------------------------------------
------//
/* * SUB RUTIN REQUEST DATA KE SERVER */
String request_data_ke_server()
String url = "/data"; // membuat URL untuk request
WiFiClient client;// Gunakan class WiFiClient untuk membuat koneksi
TCP
const int httpPort = 80; // inisiasi port HTTP
if (!client.connect(gateway, httpPort)) // jika client tidak
terkoneksi dengan server
// Serial.println("BLINKING ");
//Serial.println("connection failed");
digitalWrite(0,LOW);digitalWrite(15,LOW);
if ( a == 2)delay(1000);ESP.restart();
else if ( a == 3 ) delay(2000);ESP.restart();
else if ( a == 4 ) delay(3000);ESP.restart();
else if ( a == 5 ) delay(4000);ESP.restart();
String kk =
R"rawliteral("d_lampu":[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],"sta
tus_lampu":[4,4,4,4],"status_mulai":[88])rawliteral";
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
return kk;
// untuk mengirim request ke server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: 192.168.11.1\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0)
if (millis() - timeout > 5000)
Serial.println(">>> Client Timeout !");
client.stop();
// Lampu Blink Jika Lost Connection
String kk =
R"rawliteral("d_lampu":[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],
"status_lampu":[4,4,4,4],"status_mulai":[88])rawliteral";
return kk;
// Membaca semua baris balasan dari server
String line;
while(client.available())
line = client.readStringUntil('\r');
return line;
//-------------------------------------------------------------------//
/* * SUB RUTIN MENYALAN LAMPU PADA MODUL */
void menyalakan_lampu(int status)
if(status == 2)
// Menyalakan Lampu Hiaju
//Serial.println("HIJAU");
digitalWrite(0, LOW);digitalWrite(2, LOW); digitalWrite(15,
HIGH);
else if(status == 1)
// Menyalakan Lampu Kuning
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
//Serial.println("KUNING");
digitalWrite(0, LOW); digitalWrite(2, HIGH); digitalWrite(15,
LOW);
else if(status == 0)
// Menyalakan Lampu Merah
//Serial.println("MERAH");
digitalWrite(0, HIGH);digitalWrite(2, LOW); digitalWrite(15,
LOW);
else if(status == 3)
// matikan semua lampu
//Serial.println("MERAH");
digitalWrite(0, LOW);digitalWrite(2, LOW); digitalWrite(15,
LOW);
else if(status == 4)
// Lampu kuning Blinking
digitalWrite(0,LOW);
digitalWrite(15,LOW);
digitalWrite(2,HIGH);delay(500);digitalWrite(2,LOW);
//------------------------------------------------------------------//
/* * SUB RUTIN MENGUBAH DATA KE FORMAT JSON */
String konversi_ke_Json()
waktu_RTC[0] = jam_server;
//waktu_blink[0] = jam1; waktu_blink[1] = jam2;
DynamicJsonDocument doc(512); //membuat dokumen JSON
JsonObject obj = doc.to<JsonObject>(); //Membuat JSON Objek
// Membuat JSON array dan diletakan pada Json Objek
JsonArray d_lampu = doc.createNestedArray("d_lampu");
JsonArray status_lampu = doc.createNestedArray("status_lampu");
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
JsonArray status_mulai = doc.createNestedArray("status_mulai");
JsonArray waktu = doc.createNestedArray("Waktu_RTC");
//JsonArray jam_blink = doc.createNestedArray("Waktu_Blinking");
// salin nilai dari variabek yang dibuat ke array JSON
copyArray(durasi_lampu, d_lampu);
copyArray(lampu_apill, status_lampu);
copyArray(cc, status_mulai);
copyArray(waktu_RTC, waktu);
//copyArray(waktu_blink, jam_blink);
char json[256];
serializeJson(doc, json); // Gabungkan Semua Json Array dalam
dokumen JSON
return json;
//-------------------------------------------------------------------//
/* * SUB RUTIN MENDETEKSI JUMLAH CLIENT YANG TERHUBUNG KE SERVER */
void client_status()
tmpString = ceklampu_html;
//tmpString.replace("%jam_server%", String(jam_server));
unsigned char number_client;
struct station_info *stat_info; // Struktur untuk mengetahui info
tentang client
//struct ip4_addr *IPaddress;
//IPAddress address;
int i=1;
number_client= wifi_softap_get_station_num(); // memberi nilai
number_client jumlah client yang terkoneksi
tmpString.replace("%anggota%", String(number_client) ); //mereplace
nama eleman anggota dengan bunber_client
bool tes[4]=0,0,0,0;
for (alamat_ip = 2; alamat_ip < 6; alamat_ip++)
String potong_ip;
IPAddress ipClient(192,168,11,alamat_ip);
potong_ip = "%modul"+String(alamat_ip-1)+"%";
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
// Kode untuk melakukan ping dan mereplace alamat IP yang terhubung
ke server ke nama elemen %modulx%
if (Ping.ping(ipClient,1))
tmpString.replace(potong_ip,(String(ipClient[0]))+"."+(String(ip
Client[1]))+ "."+(String(ipClient[2]))+"."+(String(ipClient[3]))
);
//Serial.println(ipClient);
tes[alamat_ip-2]=1;
else
if ( alamat_ip == a)
tmpString.replace(potong_ip, String("SERVER"));
tes[alamat_ip-2]=1;
else tmpString.replace(potong_ip, String("Disconnected"));
// kode untuk menampilkan warna lampu yang dinyalakan modul ke halaman
web monitoring
for ( int u = 0 ; u < 4; u++)
if(lampu_apill[u]==0 && tes[u]==1)
tmpString.replace(warna_lampu[u],String("MERAH"));
else if (lampu_apill[u] == 1 && tes[u]==1)
tmpString.replace(warna_lampu[u],String("KUNING"));
else if (lampu_apill[u] == 2&& tes[u]==1)
tmpString.replace(warna_lampu[u],String("HIJAU"));
else if (lampu_apill[u] == 4&& tes[u]==1)
tmpString.replace(warna_lampu[u],String("blink"));
else tmpString.replace(warna_lampu[u],String("*****"));
//--------------------------------------------------------------//
void balas()
for (int i = 0; i<11;i++)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
String dataaa = server.arg(PARAM_INPUT[i]);
//Serial.print("\t"+dataaa);
if (dataaa != "") // mengkonversi data ke integer dan meletakan
data pada elemen - elemen array ketetapan_lampu
if (i == 0)ketetapan_lampu[0][0]= dataaa.toInt();
else if (i == 1)ketetapan_lampu[1][0]= dataaa.toInt();
else if (i == 2)ketetapan_lampu[2][0]= dataaa.toInt();
else if (i == 3)ketetapan_lampu[3][0]= dataaa.toInt();
else if (i == 4)ketetapan_lampu[0][1]= dataaa.toInt();
else if (i == 5)ketetapan_lampu[1][1]= dataaa.toInt();
else if (i == 6)ketetapan_lampu[2][1]= dataaa.toInt();
else if (i == 7)ketetapan_lampu[3][1]= dataaa.toInt();
else if (i==8)
menit = dataaa.substring(3,5); // mengambil data menit dari
web
jam = dataaa.substring(0,2); // mengambil data jam dari web
rtc.adjust(DateTime(2014, 7, 21, jam.toInt(), menit.toInt(),
0));
else if (i==9) // data jam lampu kuning blinking
String bbb = dataaa.substring(0,2);
jam1 = bbb.toInt();
Serial.println();
Serial.print("jam Blink mulai: ");
Serial.println(jam1);
else if (i==10)
String bbb = dataaa.substring(0,2);
jam2 = bbb.toInt();
Serial.print("jam Blink selesai: ");
Serial.println(jam2);
//Menyimpan data dari server ke EEPROM
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
for (int a =0 ; a<4; a++)
for ( int b = 0; b< 2; b++)
durasi_lampu[a][b] = ketetapan_lampu[a][b];
EEPROM.put(4*b+16*a+1,ketetapan_lampu[a][b]);
EEPROM.commit();
server.send(200,"text/plain", "Data Berhasil Dikirim");
//-------------------------------------------------------------------//
/* * SUB RUTIN MENAMPILKAN HALAMAN WEB */
void handleHome()
server.send(200,"text/html", index_html);
/* * SUB RUTIN MEMANGGIL FUNGSI MENGUBAH FORMAT DATA KE JSON */
void handleData()
server.send(200,"text/plain", konversi_ke_Json() + '\r');
/* * SUB RUTIN MONITORING WARNA LAMPU */
void ceklampu ()
client_status();
server.send (200,"text/html", tmpString);
//===========================================================//
void setup()
Serial.begin(115200); // memulai komunikasi Serial
EEPROM.begin(128); //memulai EEPROM
if (! rtc.begin())
Serial.println("Couldn't find RTC");
while (1);
//konfigurasi I/O ESP8266
pinMode(12,INPUT);
pinMode(13,INPUT); // input switch
pinMode(14,INPUT);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
pinMode(16,INPUT); // input tombol
pinMode(0,OUTPUT); //merah
pinMode(2,OUTPUT); //kuning // output lampu
pinMode(15,OUTPUT);// hijau
//Baca Input Switch
sw1 = digitalRead(14);
sw2 = digitalRead(12);
sw3 = digitalRead(13);
//Pengaturan Alamat IP berdasarkan input Switches
// Serial.println("pin :");
if ((sw1 == LOW && sw2 == LOW) && (sw3 == LOW)) a = 2;
//IPAddress ipClient(192,168,11,2);
else if ((sw1 == HIGH && sw2 == LOW) && (sw3 == LOW)) a = 3;
//IPAddress ipClient(192,168,11,3);
else if ((sw1 == LOW && sw2 == HIGH) && (sw3 == LOW))a = 4;
// IPAddress ipClient(192,168,11,4);
else if ((sw1 == LOW && sw2 == LOW) && (sw3 == HIGH))a = 5;
//IPAddress ipClient(192,168,11,5);
IPAddress ipClient(192,168,11,a); // Alamat IP Client
// Pengaturan ESP Sebagai Station ( client )
WiFi.mode(WIFI_STA);
WiFi.disconnect();
// Kode Untuk Scanning Jaringan
int n = WiFi.scanNetworks();
for (int i = 0; i < n; i++)
Serial.println(WiFi.SSID(i)); //menampilkan SSID yang terdeteksi
if(WiFi.SSID(i) == ssid_ap) // bila modul mendeteksi SSID yang
sesui dengan variabel ssid_ap
Serial.println("wifi terdeteksi"); // makan modul akan otomatis
menjadi client
sbgClient = true;
if(sbgClient == true )
// mengkoneksikan client ke modul server
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
WiFi.begin(ssid_ap, password_ap);
WiFi.config(ipClient,gateway,subnet,gateway);
//mengecek status konensi antara client dan server
while (WiFi.status() != WL_CONNECTED)
yield();delay(250);Serial.print("*");
Serial.println();Serial.print("IP Client : ");
Serial.println(WiFi.localIP());
Serial.println("Client sedang aktif ");
else
//mengatur Modul Sebagi Access point dan server
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(gateway,gateway,subnet);
WiFi.softAP(ssid_ap,password_ap);
//menjalankan server
server.on("/", handleHome); // tampilan di browser
server.on("/data", handleData); // Ambil data aja
server.on("/get", balas); // konversi data dari web
server.on("/monitor",ceklampu); //melihat warna lampu setiap modul
real time
server.on("/reset",reset_paksa); // mengembalikan nilai tombol saat
sebelum ditekan
server.on("/lanjut",lanjut); // mengeset nilai status Mulai = 88==>
jalankan counter
server.begin(); // memulai server
// simpan data durasi lampu merah menyala bersama ke EEPROM
for (int w = 0; w < 4 ; w++ )
durasi_lampu[w][2] = ketetapan_lampu[w][2];
EEPROM.put(8+16*w+1,ketetapan_lampu[w][2]);
EEPROM.commit();
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
//==========================================================//
void loop()
// pengarutan jika modul sebagai server
DateTime now = rtc.now();
EEPROM.get(100,cc[0]);
jam_server =now.hour();
menit = now.minute();
Serial.print("Jam sekarang = ");Serial.print(jam_server);
Serial.print(" : "); Serial.println(menit);
if(sbgClient == false)
// Sub Rutin Untuk Server
tombol = digitalRead(16);
if(tombol==HIGH)mulai = 1;Serial.println("mulai");cc[0]=88;
EEPROM.put(100,cc[0]); EEPROM.commit();
if (cc[0]==88) //proses counting dimulai
// pengaturan Modul Blinking pada jam yang telah diatur
if ( jam_server >= jam1 && jam_server <= (jam2-1) )
for(int i =0 ; i<4;i++)lampu_apill[i] = 4;
int status = lampu_apill[a-2];
Serial.println(konversi_ke_Json());
for(int i=0; i <10; i++)
server.handleClient();
if (i<=5)
menyalakan_lampu(1);
elsemenyalakan_lampu(3);
yield();
delay(50);
else
// pengaturan penyalaan lampu/timer diisi di sini
durasi_lampu[cursor][warna] -= 1; //counter waktu
if(durasi_lampu[cursor][0] == 0)
warna = 1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
lampu_apill[cursor] = 1;
durasi_lampu[cursor][0] = ketetapan_lampu[cursor][0];
else if(durasi_lampu[cursor][1] == 0)
warna = 2;
lampu_apill[cursor] = 0;
durasi_lampu[cursor][1] = ketetapan_lampu[cursor][1];
else if(durasi_lampu[cursor][2] <= 0)
durasi_lampu[cursor][2] = ketetapan_lampu[cursor][2];
warna = 0;
lampu_apill[cursor] = 0 ;
cursor++;
if(cursor>=4)
cursor = 0;
lampu_apill[cursor] = 2 ;
for(int i=0; i<10; i++)
// memrespon requet dari server setiap detik
server.handleClient();
yield();
delay(100);
else
for(int i=0; i<10; i++)
// memrespon requet dari server setiap detik
server.handleClient();
delay(100);
for (int i = 0; i<4;i++)
for (int j = 0; j<3;j++)
int sementara ;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
EEPROM.get(4*j+16*i+1, sementara);
durasi_lampu[i][j]= sementara;
ketetapan_lampu[i][j]= sementara;
Serial.print("jam server sekarang : ");Serial.println(jam_server);
if ( jam_server >=jam1 && jam_server <= (jam2-1)
Serial.println("Blink Aktif :: Hati-hati");
else
int status = lampu_apill[a-2];
menyalakan_lampu(status);
Serial.println(konversi_ke_Json());
else // Jika Modul Sebagai Client
//Serial.println(" Client Aktif");
String data = request_data_ke_server(); // pangggil sub rutin request
data ke server
Serial.println(data);
DynamicJsonDocument doc(512);
deserializeJson(doc, data); // memilah data dokumen JSON
JsonArray d_lampu = doc["d_lampu"];
JsonArray status_lampu = doc["status_lampu"];
JsonArray status_mulai = doc["status_mulai"];
JsonArray waktu = doc["Waktu_RTC"];
//JsonArray jam_blink = doc["Waktu_Blinking"];
//Serial.println(a);
for (int i = 0; i<4;i++)
for (int j = 0; j<3;j++)
durasi_lampu[i][j] = d_lampu[i][j];
if (status_mulai[0] ==90) //Read EEPROM
for (int i = 0; i<4;i++)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
for (int j = 0; j<3;j++)
int sementara = d_lampu[i][j];
EEPROM.put(4*j+16*i+1,sementara);
EEPROM.commit();
//Serial.println("Data disimpan ke EEPROM");
rtc.adjust(DateTime(2020, 7, 21, waktu[0], 0, 0));
//Serial.print("Jam Sekarang : " );Serial.println(jam_server);
EEPROM.put(100,cc[0]);
EEPROM.commit();
int status = status_lampu[a-2];
menyalakan_lampu(status);
if (status <=3 )
delay(900);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-3
Lampiran 2
Tabel Hasil Pengujian Input Switch Setiap Modul
Modul Input Alamat IP ( pada Serial
Monitor ) SW3 SW2 SW1
Modul 1
0 0 0
0 0 1
0 1 0
1 0 0
Modul 2
0 0 0
0 0 1
0 1 0
1 0 0
Modul 3
0 0 0
0 0 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Tabel Hasil Pengujian Input Switch Setiap Modul
Modul Input Alamat IP ( pada Serial
Monitor ) SW3 SW2 SW1
Modul 3
0 1 0
1 0 0
Modul 4
0 0 0
0 0 1
0 1 0
1 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
L-4
Lampiran 3
Tutorial Menggunakan NodeMCU ESP8266
NodeMCU merupakan sebuah board modul embedded system yang mempunyai
feature WiFi, menggunakan chip ESP8266 dengan firmware berbasis Lua. Pada NodeMcu
dilengkapi dengan port Micro USB yang berfungsi untuk pemorgaman sekaligus power
supply.
Karena banyak pihak baik individu, pelajar, engineer, developer lebih familiar dengan
bahasa C dan Arduino, maka komunitas pengguna maupun pengembang ESP8266
melakukan porting board supaya dapat berjalan dan dapat diprogram dengan menggunakan
Arduino IDE.
Untuk itu, pada artikel ini akan dibahas bagaimana cara pemrograman NodeMCU
dengan Arduino IDE.
NodeMCU V3
Spesifikasi Modul NodeMCU ESP8266
Mikrokontroller / Chip : ESP8266-12E
Tegangan Input : 3.3 ~ 5V
GPIO : 13 Pin
Kanal PWM : 10 Kanal
10 bit ADC Pin : 1 Pin
Flash Memory : 4 MB
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Clock Speed : 40/26/24 MHz
WiFi : IEEE 802.11 b/g/n
Frekuensi : 2.4 GHz – 22.5 Ghz
USB Port : Micro USB
USB Chip : CH340G
Pin Out NodeMCU
Untuk menggunakan baord NodeMCU dengan baik, kita harus mengetahui header pin
out agar tidak salah atau keliru menggunakan I/O dalam pemrograman. Berikut ini
adalah header pin out dari modul NodeMCU:
Header Pin Out GPIO NodeMCU
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Hardware Yang Diperlukan
Adapun kebutuhan hardware yang diperlukan pada tutorial ini adalah :
Board Modul NodeMCU V3 (Lolin)
Kabel Data USB to MicroUSB / Kabel Data standart HP
Instalasi Board Modul NodeMCU ESP8266
Supaya board modul NodeMCU dapat digunakan dan diprogram dengan Arduino IDE maka
harus dinstall terlebih dahulu boardnya. Adapun langkah-langkahnya adalah sebagai berikut
:
Buka / Jalankan Arduino IDE
Buka menu File -> Preferences
Arduino IDE Preferences
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Masukkan /
Ketik http://arduino.esp8266.com/stable/package_esp8266com_index.json pada
field Additional Board Manager URLs, lalu klik OK
Kemudian buka menu Tools -> Board -> Boards Manager
Board Manager Menu
Masukkan / Ketik : ESP8266 pada field Search Board Manager maka pilihan board
ESP8266 akan muncul pada list.
Pilih versi board ESP8266 yang terbaru kemudian klik Install.
Install Board NodeMCU
Setelah proses download dan install board nya selesai maka sudah siap untuk program
NodeMCU dengan Arduino IDE dengan ditandai tulisan : Installed pada list board
ESP8266.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Testing Program Blink LED
Untuk memastikan semuanya berjalan dengan baik, selanjutnya kita lakukan tes program
sederhana yaitu Blink LED.
Pilih Board NodeMCU dengan klik menu Tools -> Board -> NodeMCU 1.0 (ESP-
12E Module)
Kemudian buka menu File -> Examples -> ESP8266 -> Blink atau copy sketch
program berikut :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
/*
ESP8266 Blink by Simon Peter
Blink the blue LED on the ESP-01 module
This example code is in the public domain
The blue LED on the ESP-01 module is connected to GPIO1
(which is also the TXD pin; so we cannot use Serial.print() at the same time)
Note that this sketch uses LED_BUILTIN to find the pin with the internal LED
*/
#define LED_PIN 2
void setup()
pinMode(LED_PIN,OUTPUT); // Initialize the LED_BUILTIN pin as an output
// the loop function runs over and over again forever
void loop()
digitalWrite(LED_PIN,LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is active low on the ESP-01)
delay(1000); // Wait for a second
digitalWrite(LED_PIN,HIGH); // Turn the LED off by making the voltage HIGH
delay(1000); // Wait for a seconds (to demonstrate the active low LED)
Upload Sketch program diatas ke board NodeMCU
Segera setelah proses compile dan upload selesai, LED internal pada board NodeMCU
akan berkedip nyala dan mati dengan jeda waktu 1 detik.
Sumber: https://www.nn-digital.com/blog/2019/07/27/memulai-pemrograman-nodemcu-
esp8266-menggunakan-arduino-ide/
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI