• Tidak ada hasil yang ditemukan

IMPLEMENTASI PEMILIHAN CLUSTER HEAD DAN KOORDINASI ANTAR NODE SENSOR PADA JARINGAN SENSOR

N/A
N/A
Protected

Academic year: 2019

Membagikan "IMPLEMENTASI PEMILIHAN CLUSTER HEAD DAN KOORDINASI ANTAR NODE SENSOR PADA JARINGAN SENSOR"

Copied!
99
0
0

Teks penuh

(1)

i

TUGAS AKHIR – KI141502

PERANCANGAN

DAN

IMPLEMENTASI

PEMILIHAN CLUSTER HEAD DAN KOORDINASI

ANTAR NODE SENSOR PADA JARINGAN

SENSOR

NIRKABEL

DENGAN

MODUL

WIRELESS NRF24L01

MOCH IMAM ZARQONI NRP 5113100154

Dosen Pembimbing I

Waskitho Wibisono, S.Kom., M.Eng., Ph.D

Dosen Pembimbing II

Hudan Studiawan, S.Kom., M.Kom.

Jurusan Teknik Informatika Fakultas Teknologi Informasi

(2)
(3)

i TUGAS AKHIR – KI141502

PERANCANGAN

DAN

IMPLEMENTASI

PEMILIHAN CLUSTER HEAD DAN KOORDINASI

ANTAR NODE SENSOR PADA JARINGAN

SENSOR

NIRKABEL

DENGAN

MODUL

WIRELESS NRF24L01

MOCH IMAM ZARQONI NRP 5113100154

Dosen Pembimbing I

Waskitho Wibisono, S.Kom., M.Eng., Ph.D.

Dosen Pembimbing II

Hudan Studiawan, S.Kom., M.Kom.

Jurusan Teknik Informatika Fakultas Teknologi Informasi

(4)

ii

(5)

iii UNDERGRADUATE THESES – KI141502

DESIGN AND IMPLEMENTATION OF CLUSTER

HEAD

SELECTION

AND

INTER

NODE

COORDINATION FOR WIRELESS SENSOR

NETWORK

USING

NRF24L01

WIRELESS

MODULE

MOCH IMAM ZARQONI NRP 5113100154

First Advisor

Waskitho Wibisono, S.Kom., M.Eng., Ph.D.

Second Advisor

Hudan Studiawan, S.Kom., M.Kom.

Department of Informatics

Faculty of Information Technology

(6)

iv

(7)

v

LEMBAR PENGESAHAN

PERANCANGAN DAN IMPLEMENTASI PEMILIHAN CLUSTER HEAD DAN KOORDINASI ANTAR NODE

SENSOR PADA JARINGAN SENSOR NIRKABEL DENGAN MODUL WIRELESS NRF24L01

TUGAS AKHIR

Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

pada

Bidang Studi Komputasi Berbasis Jaringan Program Studi S-1 Jurusan Teknik Informatika

Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember

Oleh:

MOCH IMAM ZARQONI NRP: 5113100154

Disetujui oleh Pembimbing Tugas Akhir:

1. Waskitho Wibisono, S.Kom., M.Eng., Ph.D. ... (NIP. 197410222000031001) (Pembimbing 1)

2. Hudan Studiawan, S.Kom., M.Kom. ... (NIP. 198705112012121003) (Pembimbing 2)

SURABAYA

(8)

vi

(9)

vii

PERANCANGAN DAN IMPLEMENTASI PEMILIHAN CLUSTER HEAD DAN KOORDINASI ANTAR SENSOR NODE PADA JARINGAN SENSOR NIRKABEL DENGAN

MODUL WIRELESS NRF24L01

Nama Mahasiswa : MOCH IMAM ZARQONI

NRP : 5113100154

Jurusan : Teknik Informatika FTIF-ITS Dosen Pembimbing 1 : Waskitho Wibisono, S.Kom.,

M.Eng., Ph.D.

Dosen Pembimbing 2 : Hudan Studiawan, S.Kom., M.Kom.

Abstrak

Wireless Sensor Network (WSN) adalah sebuah jaringan yang terdiri dari node-node yang didistribusikan baik secara strategis mauun secara random yang bertujuan untuk mengamati suatu kejadian tertentu. Jaringan dalam tugas akhir ini dibangun menggunakan modul wireless nRF24L01+. Modul ini didesain untuk jaringan nirkabel yang membutuhkan daya sangat rendah. Sehingga cocok digunakan pada node-node dalam jaringan sensor nirkabel.

(10)

viii

dibuat, penulis juga membuat sebuah aplikasi antarmuka untuk menampilkan simulasi pergantian cluster head dan menampilkan data yang dikirim.

Pada tugas akhir ini, penulis menguji coba sistem dari sisi fungsionalitasnya dan dari sisi performanya menggunakan scenario yang telah ditentukan. Berdasarkan hasil uji coba, fungsionalitas sistem berjalan dengan baik dan tingkat keberhasilan pengiriman data ketika delay pengiriman 0.5 detik dan 30 data yang diolah sebesar 92.86%, ketika delay pengiriman 1 detik dan 15 data yang diolah, tingkat keberhasilan sebesar 94.01%, dan ketika delay pengiriman 2 detik dan 30 data yang diolah, tingkat keberhasilan sebesar 91.30%.

(11)

ix

DESIGN AND IMPLEMENTATION OF CLUSTER HEAD SELECTION AND COORDINATION OF SENSOR NODE IN WIRELESS SENSOR NETWORK WITH WIRELESS

MODULE NRF24L01

Student’s Name : MOCH IMAM ZARQONI

Student’s ID : 5113100154

Department : Teknik Informatika FTIF-ITS First Advisor : Waskitho Wibisono, S.Kom., M.Eng.,

Ph.D.

Second Advisor : Hudan Studiawan, S.Kom., M.Kom.

Abstract

Wireless Sensor Network (WSN) is a network of nodes that are distributed strategically in a random manner that aims to observe a particular event. Network in this final project is built using wireless module nRF24L01 +. This module is designed for wireless networks that require very low power. It is suitable for use on nodes in wireless sensor networks.

(12)

x

In this thesis, the author tested the system from the side of its functionality and in terms of performance using a predetermined scenario. Based on the test results, the system functionality is running well and the success rate of data transmission when the delay of transmission of 0.5 seconds and 30 data processed equal to 92.94%, when delivery delay 1 second and 15 data are processed, the success rate is 94.01%, and when delivery delay 2 seconds and 30 data is processed, the success rate is 91.30%.

(13)

xi

KATA PENGANTAR

Alhamdulillahirabbil‟alamin, segala puji bagi Allah Swt yang telah melimpahkan rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan Tugas Akhir yang berjudul:

PERANCANGAN DAN IMPLEMENTASI PEMILIHAN CLUSTER HEAD DAN KOORDINASI ANTAR SENSOR NODE PADA JARINGAN SENSOR NIRKABEL DENGAN

MODUL WIRELESS NRF24L01

yang merupakan salah satu syarat dalam menempuh ujian sidang guna memperoleh gelar Sarjana Komputer. Selesainya Tugas Akhir ini tidak terlepas dari bantuan dan dukungan beberapa pihak, sehingga pada kesempatan ini penulis mengucapkan terima kasih kepada:

1. Bapak Munthohar Amin (Alm) dan Ibu Siti Fatwiyatun selaku orang tua penulis yang selalu memberikan dukungan doa, moral, dan material yang tak terhingga kepada penulis sehingga penulis dapat menyelesaikan Tugas Akhir ini.

2. Bapak Waskitho Wibisono, S.Kom., M.Eng., Ph.D. selaku pembimbing I dan dosen wali saya yang telah membimbing dan memberikan motivasi, nasehat dan bimbingan dalam menyelesaikan Tugas Akhir ini.

3. Bapak Hudan Studiawan, S.Kom., M.Kom. selaku II yang telah membimbing dan memberikan motivasi, nasehat dan bimbingan dalam menyelesaikan Tugas Akhir ini.

4. Bapak Darlis Herumurti, S.Kom., M.Kom. selaku kepala jurusan Teknik Informatika ITS.

(14)

xii

6. Ibu Eva Mursidah dan Ibu Sri Budiati yang selalu mempermudah penulis dalam peminjaman buku di RBTC.

7. Teman-teman Keluarga Muslim Informatika, yang sudah banyak meluruskan penulis.

8. Teman-teman seperjuangan RMK NCC/KBJ, yang telah menemani dan menyemangati penulis.

9. Teman-teman angkatan 2013, yang sudah mendukung saya selama perkuliahan.

10. Sahabat penulis yang tidak dapat disebutkan satu per satu yang selalu membantu, menghibur, menjadi tempat bertukar ilmu dan berjuang bersama-sama penulis. Penulis menyadari bahwa Tugas Akhir ini masih memiliki banyak kekurangan sehingga dengan kerendahan hati penulis mengharapkan kritik dan saran dari pembaca untuk perbaikan ke depan.

(15)

xiii

DAFTAR KODE SUMBER ... xxi

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Batasan Permasalahan ... 2

1.4 Tujuan ... 3

1.5 Manfaat ... 3

1.6 Metodologi ... 3

1.6.1 Penyusunan Proposal ... 3

1.6.2 Studi Literatur ... 3

1.6.3 Implementasi Metode ... 4

1.6.4 Pengujian dan Evaluasi ... 4

1.6.5 Penyusunan Buku ... 4

1.7 Sistematika Penulisan Laporan ... 4

BAB II TINJAUAN PUSTAKA ... 7

2.1 Mikrokontroler Arduino ... 7

2.2 Modul Wireless nRF24L01+ ... 7

2.3 Arduino IDE ... 8

2.9 Jaringan Sensor Nirkabel ... 12

BAB III PERANCANGAN PERANGKAT LUNAK ... 13

(16)

xiv

3.2 Arsitektur Umum Sistem ... 13

3.3 Perancangan Perangkat Keras ... 15

3.4 Diagram Alir Jaringan ... 16

3.4.1 Diagram Alir Subproses GantiCH ... 18

3.4.2 Diagram Alir Subproses OlahData ... 19

BAB IV IMPLEMENTASI... 21

4.1 Lingkungan Implementasi ... 21

4.1.1 Lingkungan Implementasi Perangkat Keras ... 21

4.1.2 Lingkungan Implementasi Perangkat Lunak ... 22

4.2 Implementasi Perangkat Lunak ... 22

4.2.1 Implementasi Bagian Node Klien / Cluster Head .... 23

4.2.1.1 Inisialisasi Sistem ... 23

4.2.1.2 Sistem Utama Dalam Fungsi Loop ... 26

4.2.1.3 Proses CheckIndex ... 26

4.2.1.4 Proses OlahData ... 27

4.2.1.5 Proses sendToSink ... 27

4.2.1.6 Proses sendReceive ... 28

4.2.1.7 Proses GantiCH ... 30

4.2.2 Implementasi Bagian Node Server / Sink ... 32

4.2.2.1 Inisialisasi Sistem ... 32

4.2.2.2 Sistem Utama dalam Fungsi Loop ... 33

4.2.3 Implementasi Antarmuka Sistem... 34

4.2.3.1 Tampilan Antarmuka ... 34

4.2.3.2 Class SerialReading ... 35

4.2.3.3 Class Database ... 38

BAB V HASIL UJI COBA DAN EVALUASI ... 41

5.1 Lingkungan Uji Coba ... 41

5.2 Uji Coba Fungsionalitas ... 41

5.2.1 Uji Coba Fungsionalitas Node Klien / Cluster Head 42 5.2.1.1 Uji Coba Pengolahan Data ... 42

(17)

xv

5.2.2 Uji Coba Fungsionalitas Node Server ... 44

5.2.3 Uji Coba Fungsionalitas Tampilan Antarmuka Sistem 45 5.2.3.1 Uji Coba Membaca Port Serial ... 45

5.2.3.2 Uji Coba Menampilkan Data ... 46

5.2.3.3 Uji Coba Memasukkan Data ke Database ... 47

5.3 Hasil dan Evaluasi Uji Coba Fungsionalitas ... 47

5.3.1 Hasil Uji Coba Fungsionalitas Node Klien / Cluster Head ... 48

5.3.1.1 Hasil Uji Coba Pengolahan Data ... 48

5.3.1.2 Hasil Uji Coba Pengiriman Hasil Olah Data ke Node Server ... 49

5.3.1.3 Hasil Uji Coba Pergantian Cluster Head ... 50

5.3.2 Hasil Uji Coba Fungsionalitas Node Server ... 51

5.3.3 Hasil Uji Coba Fungsionalitas Aplikasi Antarmuka .. 52

5.3.3.1 Hasil Uji Coba Membaca Port Serial ... 52

5.3.3.2 Hasil Uji Coba Menampilkan Data ... 52

5.3.3.3 Hasil Uji Coba Memasukkan Data ke Database 53 5.4 Uji Coba Performa ... 54

5.4.1 Uji Coba dengan Delay Pengiriman Sebesar 0.5 Detik dan Data yang Diolah Sebanyak 30 Data ... 56

5.4.2 Uji Coba dengan Delay Pengiriman Sebesar 1 Detik dan Data yang Diolah Sebanyak 15 Data ... 56

5.4.3 Uji Coba dengan Delay Pengiriman Sebesar 2 Detik dan Data yang Diolah Sebanyak 30 Data ... 57

5.5 Hasil dan Evaluasi Uji Coba Performa ... 57

5.5.1 Hasil Uji Coba dengan Delay Pengiriman Sebesar 0.5 Detik dan Data yang Diolah Sebanyak 30 Data ... 57

5.5.2 Hasil Uji Coba dengan Delay Pengiriman Sebesar 1 Detik dan Data yang Diolah Sebanyak 15 Data ... 61

(18)

xvi

BAB VI KESIMPULAN DAN SARAN ... 71

6.1 Kesimpulan ... 71

6.2 Saran ... 72

DAFTAR PUSTAKA ... 73

(19)

xvii

DAFTAR GAMBAR

Gambar 2.1 Perangkat nRF24L01+ ... 8

Gambar 2.2 Antarmuka Arduino IDE ... 9

Gambar 2.3 Arduino Uno Revision 3 ... 10

Gambar 2.4 Tampilan Antarmuka NetBeans IDE ... 11

Gambar 3.1 Arsitektur Umum Sistem ... 14

Gambar 3.2 Rangkaian Perangkat Node ... 15

Gambar 3.3 Diagram Alir Sistem ... 18

Gambar 3.4 Diagram Alir Subproses GantiCH ... 19

Gambar 3.5 Diagram Alir Subproses OlahData ... 20

Gambar 4.1 Implementasi Tampilan Antarmuka Sistem ... 35

Gambar 5.1 Hasil Uji Coba Pengolahan Data ... 48

Gambar 5.2 Hasil Uji Coba Pengiriman Hasil Olah Data ke Node Server ... 49

Gambar 5.3 Hasil Uji Coba Pengiriman Data ke Node Server di Sisi Node Server ... 50

Gambar 5.4 Hasil Uji Coba Pergantian Node Cluster Head ... 50

Gambar 5.5 Node Server Menerima Paket dari Node Cluster Head ... 51

Gambar 5.6 Hasil Uji Coba Membaca Port Serial ... 52

Gambar 5.7 Hasil Uji Coba Menampilkan Data ... 53

Gambar 5.8 Hasil Uji Coba Memasukkan Data ke Database ... 53

Gambar 5.9 Lapangan Lokasi Uji Coba Performa ... 54

Gambar 5.10 Peletakkan node 1 ... 55

Gambar 5.11 Peletakkan node 2 ... 55

Gambar 5.12 Peletakkan node 3 ... 56

Gambar 5.13 Kondisi baterai node 1 ... 59

Gambar 5.14 Kondisi baterai node 2 ... 59

Gambar 5.15 Kondisi baterai node 3 ... 59

Gambar 5.16 Perbandingan baterai node 1... 60

Gambar 5.17 Perbandingan baterai node 2... 60

Gambar 5.18 Perbandingan baterai node 3... 61

Gambar 5.19 Kondisi Baterai Node Pertama ... 63

(20)

xviii

Gambar 5.21 Kondisi Baterai Node Ketiga ... 63

Gambar 5.22 Perbandingan Baterai Node Pertama ... 64

Gambar 5.23 Perbandingan Baterai Node Kedua ... 64

Gambar 5.24 Perbandingan Baterai Node Ketiga ... 65

Gambar 5.25 Status Baterai Node 1 ... 67

Gambar 5.26 Status Baterai Node 2 ... 67

Gambar 5.27 Status Baterai Node 3 ... 67

Gambar 5.28 Perbedaan Baterai Node 1 ... 68

Gambar 5.29 Perbedaan Baterai Node 2 ... 68

(21)

xix

DAFTAR TABEL

Tabel 3.1 Koneksi Pin antar Arduino dan nRF24L01+ ... 16

Tabel 4.1 Lingkungan Implementasi Perangkat Keras ... 21

Tabel 4.2 Lingkungan Implementasi Perangkat Lunak ... 22

Tabel 5.1 Skenario Uji Coba Pengolahan Data Pada Node Cluster Head ... 42

Tabel 5.2 Skenario Uji Coba Pengiriman Hasil Olah Data ke Node Server ... 43

Tabel 5.3 Skenario Uji Coba Pergantian Cluster Head ... 44

Tabel 5.4 Skenario Uji Coba Menerima Paket Data dari Node Cluster Head ... 44

Tabel 5.5 Skenario Uji Coba Membaca Port Serial ... 45

Tabel 5.6 Uji Coba Menampilkan Data ... 46

Tabel 5.7 Uji Coba Memasukkan Data ke Database ... 47

Tabel 5.8 Hasil Uji Coba pengiriman dengan Delay 0.5 Detik dan Pengolahan 30 Data ... 58

Tabel 5.9 Hasil Uji Coba penurunan baterai dengan Delay 0.5 Detik dan Pengolahan 30 Data ... 58

Tabel 5.10 Hasil Uji Coba dengan Delay 1 Detik dan Pengolahan 15 Data ... 62

Tabel 5.11 Hasil Uji Coba penurunan baterai dengan Delay 1 Detik dan Pengolahan 15 Data ... 62

Tabel 5.12 Hasil Uji Coba dengan Delay 2 Detik dan Pengolahan 30 Data ... 66

(22)

xx

(23)

xxi

DAFTAR KODE SUMBER

(24)

xxii

(25)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi komunikasi saat ini telah berkembang dengan sangat pesat, salah satunya dibidang Wireless Sensor Network (WSN). WSN adalah sebuah jaringan yang terdiri dari node-node yang didistribusikan baik secara strategis maupun secara random yang bertujuan untuk mengamati suatu kejadian tertentu. WSN sudah dianggap sebagai salah satu penemuan yang sangat penting karena harganya murah dan kuat.

Modul Wireless nRF24L01 adalah sebuah modul komunikasi jarak jauh yang dapat digunakan untuk WSN. Modul memanfaatkan pita gelombang RF 2.4GHz ISM (Industrial, Scientific and Medical). Modul ini menggunakan antarmuka SPI (Serial Peripheral Interface) untuk berkomunikasi. Modul ini didesain untuk jaringan nirkabel yang membutuhkan daya sangat rendah. Sehingga cocok digunakan pada node-node dalam jaringan sensor network [1].

(26)

2

Metode dalam melakukan pemilihan cluster head diawali dengan menentukan node 1 sebagai cluster head pertama. Kemudian setiap node dalam jaringan akan mengirimkan paket yang berisi informasi tingkat energi masing-masing node dan data angka random ke node 1. Kemudian ketika waktu sudah habis, node 1 akan memilih node cluster head selanjutnya. Metode dalam memilih node cluster head selanjutnya menggunakan metode round-robin [4].

Hasil yang diharapkan dari pengerjaan tugas akhir ini adalah berupa jaringan sensor nirkabel yang dapat berkoordinasi secara dinamis dalam menentukan cluster head yang dapat menyeimbangkan energi dalam jaringan tersebut.

1.2 Rumusan Masalah

Rumusan masalah yang berusaha diselesaikan dalam tugas akhir ini adalah :

1. Bagaimana membuat sebuah jaringan sensor nirkabel menggunakan modul wireless nRF24l01?

2. Bagaimana menerapkan metode pemilihan cluster head pada jaringan sensor nirkabel?

3. Bagaimana mengimplementasikan metode round-robin dalam pemilihan cluster head?

1.3 Batasan Permasalahan

Pada tugas akhir ini ada beberapa batasan yang menjadi pertimbangan, berikut ini batasan-batasan yang menjadi pertimbangan :

1. Jaringan yang digunakan adalah jaringan sensor nirkabel menggunakan modul wireless nRF24L01. 2. Jumlah node yang digunakan sebanyak 4 dengan 1

sebagai server / coordinator dan 3 sebagai end device / cluster head yang dipilih secara bergantian.

(27)

3

1.4 Tujuan

Tujuan dari pengerjaan Tugas Akhir ini adalah :

1. Membangun sebuah jaringan sensor nirkabel yang dapat berkoordinasi secara dinamis dalam pemilihan cluster head.

2. Membangun sebuah aplikasi antarmuka yang dapat menampilkan simulasi pergantian cluster head dan memasukkan data dari node server ke dalam database.

1.5 Manfaat

Hasil dari pengerjaan Tugas Akhir ini memiliki manfaat untuk menghasilkan sebuah jaringan sensor nirkabel yang dapat berkoordinasi secara dinamis dan memiliki penggunaan energi yang seimbang dan tahan lama.

1.6 Metodologi

Pembuatan tugas akhir ini dilakukan dengan menggunakan metodologi sebagai berikut:

1.6.1 Penyusunan Proposal

Tahap awal tugas akhir ini adalah menyusun proposal tugas akhir. Proposal Tugas Akhir ini berisi tentang perencanaan penerapan metode pemilihan cluster head sebagai solusi optimal dari permasalahan dalam pemilihan cluster head dan penyeimbangan energy dalam jaringan sensor nirkabel.

1.6.2 Studi Literatur

(28)

4

dilakukan studi literatur mengenai implementasi pemilihan cluster head menggunakan metode round-robin [4]. Sehingga, studi literatur ini dapat diterapkan pada perancangan jaringan sensor nirkabel yang dapat melakukan pemilihan cluster head secara dinamis.

1.6.3 Implementasi Metode

Implementasi metode yang dipakai dalam tahapan membangun jaringan ini adalah untuk memilih cluster head dari node-node yang ada dengan menggunakan metode round-robin agar node-node dapat bergantian menjadi cluster head secara berurutan [4]. Jika rentang waktu node cluster head, sudah mencapai batas, maka akan dilakukan pemilihan cluster head yang baru. Kemudian jika semua node sudah pernah menjadi cluster head, maka pengurutan akan dimulai dari awal dengan node pertama kembali menjadi cluster head.

1.6.4 Pengujian dan Evaluasi

Pengujian dan evaluasi dari hasil Tugas Akhir ini akan diujicobakan dengan membangun jaringan sensor nirkabel menggunakan modul wireless nRF24L01 yang berlokasi di jurusan Teknik Informatika Institut Teknologi Sepuluh Nopember Surabaya.

1.6.5 Penyusunan Buku

Pada tahap ini disusun buku sebagai dokumentasi dari pelaksanaan tugas akhir yang mencangkup seluruh konsep, teori, implementasi, serta hasil yang telah dikerjakan.

1.7 Sistematika Penulisan Laporan

(29)

5

1. Bab I. Pendahuluan

Bab ini berisikan penjelasan mengenai latar belakang, rumusan masalah, batasan masalah, tujuan, manfaat, metodologi, dan sistematika penulisan dari pembuatan tugas akhir.

2. Bab II. Tinjauan Pustaka

Bab ini meliputi dasar teori dan penunjang yang berkaitan dengan pokok pembahasan dan mendasari pembuatan Tugas Akhir ini.

3. Bab III. Perancangan Perangkat Lunak dan Perangkat Keras Bab ini membahas desain dari jaringan yang akan dibuat meliputi arsitektur dan proses perangkat lunak dan keras. 4. Bab IV. Implementasi

Bab ini membahas implementasi dari desain jaringan yang akan dilakukan pada tahap desain, meliputi potongan pseudocode yang terdapat dalam perangkat lunak dan perangkat keras yang digunakan.

5. Bab V. Hasil Uji Coba dan Evaluasi

Bab ini membahas uji coba dari jaringan yang dibuat dengan melihat keluaran yang dihasilkan, analisa dan evaluasi untuk mengetahui kemampuan jaringan.

6. Bab VI. Kesimpulan dan Saran

Bab ini merupakan bab yang menyampaikan kesimpulan dari hasil uji coba yang dilakukan, masalah-masalah yang dialami pada proses pengerjaan Tugas Akhir, dan saran untuk pengembangan solusi ke depannya.

7. Daftar Pustaka

Bab ini berisi daftar pustaka yang dijadikan literatur dalam tugas akhir.

(30)

6

(31)

7

BAB 2

BAB II

TINJAUAN PUSTAKA

Pada bab ini akan dibahas mengenai teori-teori yang menjadi dasar dari pembuatan tugas akhir ini. Pembahasan bertujuan untuk memberikan gambaran secara umum terhadap sistem yang dibuat dan berguna sebagai penunjang dalam pengembangan tugas akhir.

2.1 Mikrokontroler Arduino

Arduino merupakan sebuah mikrokontroler single-board yang bersifat open-source. Arduino dirancang sedemikian rupa sehingga memudahkan para penggunanya dibidang elektronika. Board Arduino didesain menggunakan processor Atmel AVR dan mendukung masukan dan keluaran pada board-nya [5]. Bahasa pemrograman yang digunakan adalah C/C++. Dalam sebuah mikrokontroler Arduino dapat pula ditanamkan berbagai macam library maupun metode selama kapasitas memorinya mencukupi.

2.2 Modul Wireless nRF24L01+

Modul Wireless nRF24L01+ adalah modul komunikasi jarak jauh yang memanfaatkan pita gelombang RF (Radio Frequency) 2.4GHz ISM (Industrial, Scientific and Medical) yang didesain untuk jaringan nirkabel yang membutuhkan penggunaan daya sangat rendah. Modul ini berupa sebuah chip transreceiver tunggal yang memiliki baseband logic Enhanced Shockburst. Modul ini cocok digunakan dengan Microcontroller Arduino [6].

(32)

8

meng-compile firmware langsung pada EEPROM [6]. Bentuk dari nRF24L01+ dapat dilihat di Gambar 2.1.

Gambar 2.1 Perangkat nRF24L01+

2.3 Arduino IDE

(33)

9

Gambar 2.2 Antarmuka Arduino IDE

2.4 Metode Round-robin

(34)

10

2.5 Arduino Uno Revision 3

Arduino Uno adalah salah satu produk berlabel Arduino yang sebenarnya adalah suatu papan elektronik yang mengandung mikrokontroler ATmega328, sebuah keeping yang secara fungsional bertindak seperti sebuah komputer. Piranti ini dapat dimanfaatkan untuk mewujudkan rangkaian elektronik dari yang sederhana hingga yang kompleks [5]. Pengendalian LED hingga pengendalian robot dapat diimplementasikan dengan menggunakan papan yang berukuran cukup kecil ini. Bahkan dengan penambahan komponen tertentu, piranti ini bisa digunakan untuk pemantauan jarak jauh melalui internet. Gambar 2.3 merupakan bentuk dari Arduino Uno R3.

Gambar 2.3 Arduino Uno Revision 3

2.6 MySQL Database

(35)

11

2.7 Bahasa Pemrograman Java

Bahasa pemrograman java adalah sebuah bahasa pemrograman yang berorientasi objek. Bahasa pemrograman ini dirancang agar cukup sederhana sehingga banyak programmer dapat menguasai bahasa ini. Bahasa pemrograman java berhubungan dengan bahasa pemrograman C dan C++ namun diatur dengan berbeda, dengan sejumlah aspek dari bahasa C dan C++ dihilangkan dan beberapa gagasan dari bahasa lain disertakan [8].

2.8 NetBeans IDE

NetBeans IDE merupakan sebuah perangkat lunak yang digunakan untuk pengembangan aplikasi yang menggunakan bahasa pemrograman java. NetBeans IDE juga merupakan aplikasi cross-platform, dapat digunakan di sistem operasi Windows, Linux, dan Mac OS [9]. Gambar 2.4 merupakan tampilan antarmuka NetBeans IDE.

Gambar 2.4 Tampilan Antarmuka NetBeans IDE

(36)

12

antarmuka. Dalam tugas akhir ini, penulis menggunakan NetBeans IDE untuk membangun aplikasi antarmuka sistem yang menampilkan pergantian cluster head dari node-node dalam jaringan.

2.9 Jaringan Sensor Nirkabel

(37)

13

BAB 3

BAB III

PERANCANGAN PERANGKAT LUNAK

Perancangan merupakan bagian penting dalam pembuatan perangkat lunak dan perangkat keras yang berupa perencanaan secara teknis dari sistem jaringan yang dibuat. Pada bab ini akan dibahas mengenai perancangan dan implementasi metode pemilihan cluster head pada sebuah jaringan sensor nirkabel yang dibangun menggunakan Arduino sebagai nodenya dan menggunakan modul Wireless nRF4L01+ untuk berkomunikasi antar node.

3.1 Deskripsi Umum

Jaringan sensor nirkabel dalam Tugas Akhir ini akan dibuat menggunakan mikrokontroler Arduino dan modul Wireless nRF24L01+. Terdapat 4 node yang akan digunakan untuk membangun jaringan ini. Satu node dijadikan server / coordinator yang bertugas untuk menerima data dari node cluster head. 3 node lainnya dijadikan sebagai end device / calon cluster head dalam jaringan. Node yang menjadi server akan terhubung dengan sebuah komputer, sedangkan node lainnya akan berjalan menggunakan baterai 9 volt sebagai sumber tenaganya. Komunikasi antar node akan dilakukan dengan bantuan library RF24Network pada Arduino.

3.2 Arsitektur Umum Sistem

(38)

14

diimplementasikan kepada ketiga node tersebut sehingga node-node tersebut dapat bergantian menjadi cluster head. Setelah metode terimplementasikan, kemudian node-node tersebut diletakkan secara strategis dan diaktifkan untuk membentuk sebuah jaringan sensor nirkabel yang dinamis.

Gambar 3.1 menunjukkan ketika node-node pada jaringan baru dipasang, dengan kriteria, satu node menjadi server / remote coordinator yang letaknya cukup jauh dari yang lain dan tiga node lainnya menjadi end device / calon cluster head.

Gambar 3.1 Arsitektur Umum Sistem

(39)

15

3.3 Perancangan Perangkat Keras

Dalam jaringan yang akan dibuat, node-nodenya merupakan gabungan mikrokontroler Arduino dan modul wireless nRF24L01+.

Pada jaringan ini, perangkat keras yang digunakan untuk membuat node adalah sebagai berikut :

 Satu buah mikrokontroler Arduino Uno R3  Satu buah modul wireless nRF24L01+  Satu buah baterai 9 V

Gambar 3.2 Rangkaian Perangkat Node

(40)

16

dayanya. Untuk pin yang menghubungkan Arduino dan nRF24L01+, dijelaskan pada Tabel 3.1.

Tabel 3.1 Koneksi Pin antar Arduino dan nRF24L01+

PIN Deskripsi

3.3 V Sumber daya untuk mengaktifkan nRF24L01+ GND Ground nRF24L01+

D7 SPI Chip Enable D8 SPI Chip Select

MISO SPI Slave Data Output, with tri-state option MOSI SPI Slave Data Input

SCK SPI Clock

Pada rangkaian diatas, mikrokontroler Arduino berfungsi sebagai „otak‟ dari node yang berfungsi untuk mengatur pengiriman dan penerimaan data, pergantian cluster head, dan pengiriman hasil olahan data ke server. Sedangkan nRF24L01+ berfungsi sebagai sarana komunikasi antar node dalam jaringan.

3.4 Diagram Alir Jaringan

Pada subbab ini akan dibahas alur jaringan secara keseluruhan yang melibatkan seluruh node-node yang ada dalam jaringan. Perancangan diagram alir keseluruhan dilakukan untuk lebih dapat memahami dan memberikan pandangan secara menyeluruh mengenai jaringan yang dibangun, serta menunjukkan tentang fungsi-fungsi utama atau proses-proses yang ada dan aliran logika dari jaringan.

(41)

17

dari tiap node ditetapkan berdasarkan urutan dan keberadaannya dalam jaringan.

(42)

18

START

Node address 1 Node address 2 Node address 3

Node 1 menjadi cluster head

pertama

Waktunya ganti cluster head?

GantiCH

Terpilih cluster head baru

Kirim hasil olahan data ke server

END Y

T

OlahData

Gambar 3.3 Diagram Alir Sistem

3.4.1 Diagram Alir Subproses GantiCH

(43)

19

dicari indeks dari node yang sedang menjadi cluster head dalam list node tersebut. Maka setelah indeks diketahui, subproses akan memilih node pada indeks setelahnya untuk menjadi cluster head baru. Gambar 3.4 merupakan diagram alir dari subproses GantiCH.

START

List Node

Cari Indeks Node cluster head

Jadikan indeks node selanjutnya sebagai cluster head baru

END

Gambar 3.4 Diagram Alir Subproses GantiCH

3.4.2 Diagram Alir Subproses OlahData

(44)

20

yang diterima oleh node cluster head akan diolah untuk mencari data minimal, data maksimal, dan rata-rata data. Gambar 3.5 merupakan diagram alir dari subproses OlahData.

START

Data dari Node

Cari data minimal dan maksimal Hitung rata-rata

END Data hasil

olahan

(45)

21

BAB 4

BAB IV

IMPLEMENTASI

Pada bab ini akan dibahas mengenai implementasi dari perancangan perangkat lunak dan perangkat keras dari sistem jaringan. Cakupan implementasi meliputi proses pengiriman dan penerimaan data, proses pergantian cluster head, proses pengolahan data, dan pemasukan data ke database.

4.1 Lingkungan Implementasi

Lingkungan implementasi merupakan suatu lingkungan dimana sistem akan dibangun. Karena sistem merupakan sistem embedded pada perangkat mikrokontroler, maka lingkungan implementasi dibagi menjadi dua bagian, yaitu lingkungan implementasi perangkat keras dan implementasi perangkat lunak.

4.1.1 Lingkungan Implementasi Perangkat Keras

Lingkungan implementasi perangkat keras dari sistem yang akan dibangun secara lebih lengkap dijelaskan pada Tabel 4.1 di bawah ini.

Tabel 4.1 Lingkungan Implementasi Perangkat Keras

Perangkat Komputer

Model :

 ASUS K45VD

Manufaktur :

 ASUSTek Computer Inc.

Processor :

 Intel(R) Core(TM) i3-2370M @2.4 GHz ~2.4 GHz

Memori :  4 GB

Sistem Operasi :

(46)

22

4.1.2 Lingkungan Implementasi Perangkat Lunak

Lingkungan implementasi perangkat lunak dari sistem yang akan dibangun secara lebih lengkap dijelaskan pada Tabel 4.2 di bawah ini.

Tabel 4.2 Lingkungan Implementasi Perangkat Lunak

Perangkat Komputer

Sistem Operasi :

 Microsoft Windows 7 Ultimate 32-bit

4.2 Implementasi Perangkat Lunak

(47)

23

menjadid tiga bagian, yaitu bagian node klien / cluster head, bagian node server, dan bagian tampilan antarmuka. Penjelasan masing-masing bagian akan dijelaskan lebih lengkap pada masing-masing subbab.

4.2.1 Implementasi Bagian Node Klien / Cluster Head

Pada bagian node klien / cluster head, akan diimplementasikan 5 fungsi termasuk dua subproses yang dijelaskan di bab sebelumnya. Kelima fungsi tersebut adalah checkIndex yang berfungsi untuk mencari indeks posisi node dalam list, olahData yang berfungsi untuk mengolah data dari node, sendToSink yang berfungsi untuk mengirim hasil olahan data ke node server, sendReceive yang berfungsi untuk meng-handle pergantian mode TX dan mode RX pada node, dan gantiCH yang berfungsi untuk melakukan pergantian cluster head pada node. Penjelasan masing-masing fungsi akan dijelaskan lebih lengkap pada masing-masing subbab.

4.2.1.1 Inisialisasi Sistem

Proses inisialisasi pada Arduino merupakan suatu hal yang penting. Inisialisasi dilakukan hanya diawal ketika perangkat pertama kali dinyalakan. Inisialisasi yang dilakukan adalah inisialisasi fungsi setup() dan variabel global. Inisialisasi fungsi seperti yang ditunjukkan pada Kode Sumber 4.1 dapat dijelaskan melalui beberapa tahapan berikut:

1. Buka port serial dan inisialisasi baud rate.

2. Inisialisasi objek “control” sebagai ThreadController yang berfungsi untuk meng-handle multithreading.

3. Insialisasi Thread “tSendReceive” yang bertugas meng-handle mode TX dan RX node.

(48)

24

5. Insialisasi Thread “tSendSink” yang bertugas mengirimkan data ke node server.

6. Inisialisasi pin yang digunakan untuk radio pada RF24 pada objek “radio”.

7. Inisialisasi objek “network” untuk jaringan RF24Network dengan dasar objek “radio”.

8. Buka port SPI untuk komunikasi nRF24L01+ dengan Arduino.

9. Jalankan nRF24L01+.

10. Jalankan jaringan RF4 dengan channel dan alamat node yang sudah ditentukan.

11. Jalankan Thread “tSendReceive”, “tGantiCH”, dan “tSendSink”.

12. Masukkan Thread “tSendReceive”, “tGantiCH”, dan “tSendSink” ke dalam objek “control”.

1

Open Serial.begin(baud rate)

Set ThreadController control

Set Thread tSendReceive

Set Thread tGantiCH

Set Thread tSendSink

Set RF24 radio(Radio pin)

Set RF24Network network(radio)

Open SPI.begin

Start radio.begin

Start network.begin(channel, this_node)

Start tSendReceive

Start tGantiCH

Start tSendSink

Add tSendReceive to control

Add tGantiCH to control

Add tSendSink to control

Kode Sumber 4.1 Pseudocode inisialisasi awal sistem

(49)

25

dalam sistem seperti yang ditunjukkan di Kode Sumber 4.2 dapat dijelaskan sebagai berikut :

1. This_node merupakan inisialisasi alamat dari node dimana program dijalankan.

2. First_node merupakan inisialisasi alamat dari node yang menjadi cluster head.

3. Count merupakan variabel yang menghitung jumlah node dalam jaringan.

4. Ch merupakan variabel flag untuk membedakan antara node cluster head dan node biasa.

5. Payload_t merupakan inisialisasi paket pesan dalam jaringan yang dikirim node biasa ke node cluster head. Payload_t berisi 3 variabel, yaitu “node” yang berisi node asal paket, “data” yang berisi angka random, dan “persen” yang berisi persentase baterai dari node asal paket.

6. Inisialisasi array untuk menampung paket pesan dari semua node dalam jaringan.

7. dataToSink merupakan inisialisasi paket hasil olahan data dari payload_t yang kemudian dikirimkan ke node server. diolah, dan “datamax” yang berisi nilai maksimal dari data yang diolah.

Initialize struct payload_t node

Data Persen

(50)

26

Initialize struct dataToSink

CHnode

Kode Sumber 4.2 Pseudocode Inisialisasi variabel global

4.2.1.2 Sistem Utama Dalam Fungsi Loop

Proses berjalannya sistem utama terdapat di dalam fungsi loop() pada Arduino. Sistem utama dijalankan terus menerus selama node dijalankan. Didalam sistem utama, terdapat 3 perintah yang mengatur jalannya node secara keseluruhan. Yaitu perintah untuk generasi data, perintah untuk update network, dan perintah untuk menjalankan kontroler multithread. Pada Kode Sumber 4.3 diperlihatkan mengenai jalannya proses loop pada sebuah pseudocode.

Kode Sumber 4.3 Pseudocode Sistem Utama Loop()

4.2.1.3 Proses CheckIndex

Proses checkIndex merupakan proses pencarian indeks dilakukan ketika sistem ingin mengetahui posisi node dalam array list_node.

(51)

27

Kode Sumber 4.4 Pseudocode Fungsi checkIndex

4.2.1.4 Proses OlahData

Proses olahData merupakan proses yang bertugas untuk mengolah data-data yang dikirim oleh node-node dalam jaringan yang kemudian hasil olahannya akan dikirimkan ke node server.

Pada Kode Sumber 4.5 diperlihatkan mengenai jalannya proses olahData pada sebuah pseudocode. Fungsi ini mengolah data-data yang ada dalam variabel list_node dan menggunakan struct dataToSink untuk menyimpan hasil olahan datanya.

1

Set dataToSink dataAkhir FUNCTION olahData() dataAkhir.counter += 1 FOR i = 0 to count

dataAkhir.jumlah += list_node[i].data

IF list_node[i].data > dataAkhir.datamax THEN dataAkhir.datamax = list_node[i].data END IF

IF list_node[i].data < dataAkhir.datamin THEN dataAkhir.datamin = list_node[i].data END IF

END FOR ENDFUNCTION

Kode Sumber 4.5 Pseudocode Fungsi olahData

4.2.1.5 Proses sendToSink

(52)

28

Di dalam fungsi sendToSink, terdapat tiga tahap yang penting. Yaitu, penentuan alamat node server, pengiriman paket dataAkhir, dan pengkosongan paket dataAkhir setelah paket berhasil dikirim. Proses ini dapat dilihat lebih jelas pada Kode

Set RF24NetworkHeader header(sink)

Start network.write

(header,&dataAkhir,sizeof(dataAkhir)) dataAkhir = 0

ENDFUNCTION

Kode Sumber 4.6 Pseudocode Fungsi sendToSink

4.2.1.6 Proses sendReceive

Proses sendReceive merupakan proses yang bertanggung jawab untuk meng-handle mode TX dan mode RX dari node dengan menggunakan variabel flag “ch”. Ketika ch bernilai 0, maka node akan menjadi node biasa yang mengirimkan paket ke node cluster head secara periodic. Dan ketika ch bernilai 1, maka node akan menjadi cluster head yang akan menerima data dari node yang lain. Proses berjalannya fungsi sendReceive yang ditunjukkan pada Kode Sumber 4.7 akan dijelaskan secara bertahap sebagai berikut:

1. Mengecek nilai ch untuk mengetahui apakah node sedang menjadi cluster head atau tidak.

2. Jika ch bernilai 0, siapkan paket payload untuk dikirim 3. Set objek “header” sebagai RF24NetworkHeader dengan

parameter alamat node cluster head.

4. Jalankan network.write untuk mengirimkan paket.

5. Jika ch bernilai 1, jalankan pengecekan network.available untuk mengetahui apakah ada pesan yang masuk.

6. Set objek “header” sebagai RF24NetworkHeader.

(53)

29

8. Lakukan pengulangan sebanyak jumlah node untuk mengecek apakah alamat node sudah terdaftar dalam list_node.

9. Jika sudah, maka update data dari alamat node tersebut. 10. Jika belum, maka tambahkan alamat node tersebut ke

Set RF24NetworkHeader header(first_node)

Start network.write

(header,&payload,sizeof(payload))

ELSE

WHILE network.available

Set RF24NetworkHeader header2

(54)

30

4.2.1.7 Proses GantiCH

Proses gantiCH merupakan proses terpenting dalam sistem ini, dikarenakan proses inilah yang bertugas mengatur pergantian cluster head. Fungsi ini memiliki dua proses yang berjalan bergantian sesuai dengan nilai variabel flag ch. Ketika ch bernilai 1, maka fungsi ini akan menjalankan proses pergantian cluster head pada interval waktu tertentu. Dan ketika ch bernilai 0, maka fungsi akan menjalankan fungsi untuk mencari alamat node yang sedang menjadi cluster head pada saat itu.

Fungsi gantiCH seperti yang ditunjukkan pada Kode Sumber 4.8 akan dijelaskan lebih lengkap sebagai berikut :

1. Inisialisasi objek “chBaru” untuk mencari cluster head baru.

2. Periksa apakah ch bernilai 1 atau 0.

3. Jika ch bernilai 1, maka jalankan fungsi sort dengan parameter list_node untuk mengurutkan node dalam jaringan.

4. Set objek “index” untuk mengetahui posisi node cluster head saat ini.

5. Set objek “now” untuk pengecekan waktu.

6. Periksa apakah sudah waktunya melakukan pergantian cluster head.

7. Jika posisi “index” bukan berada diakhir urutan, maka cluster head baru yang dipilih adalah node yang berada diurutan selanjutnya. Jika posisi “index” berada diakhir urutan, maka cluster head baru adalah node diurutan pertama.

8. Kirimkan pemberitahuan alamat node cluster head baru ke semua node dalam jaringan.

9. Ubah ch menjadi 0.

10. Jika ch bernilai 0, maka lakukan pengecekan berkala untuk mengetahui alamat node cluster head.

(55)

31

WHILE network.available

Set RF2NetworkHeader header4

(56)

32

4.2.2 Implementasi Bagian Node Server / Sink

Pada bagian ini, akan dijelaskan mengenai implementasi perangkat lunak yang dilakukan untuk node server / sink. Node server ini berfungsi untuk menerima data hasil olahan yang dikirimkan oleh node yang menjadi cluster head. Terdapat dua implementasi penting yang harus dilakukan agar node server ini dapat berjalan. Penjelasan selanjutnya akan dibahas di masing-masing subbab.

4.2.2.1 Inisialisasi Sistem

Proses inisialisasi pada Arduino merupakan suatu hal yang penting. Inisialisasi dilakukan hanya diawal ketika perangkat pertama kali dinyalakan. Inisialisasi yang dilakukan adalah inisialisasi fungsi setup() dan variabel global. Inisialisasi fungsi seperti yang ditunjukkan pada Kode Sumber 4.9 dapat dijelaskan melalui beberapa tahapan berikut:

1. Buka port serial dan inisialisasi baud rate.

2. Inisialisasi objek “radio” sebagai radio pada RF24 dengan parameter pin radio pada Arduino.

3. Inisialisasi objek “network” sebagai jaringan RF24Network dengan dasar objek “radio”.

4. Buka port SPI untuk komunikasi antara nRF24L01+ dengan Arduino.

5. Jalankan radio nRF24L01+.

6. Jalankan jaringan RF24Network dengan channel dan alamat node yang sudah ditentukan.

1

Open Serial.begin(baud rate)

Set RF24 radio(Radio pin)

Set RF24Network network(radio)

Open SPI.begin

Start radio.begin

Start network.begin(channel, this_node)

(57)

33

Proses inisialisasi variabel global dilakukan di awal sistem berjalan, untuk menentukan variabel-variabel yang dapat digunakan pada keseluruhan sistem. Inisialisasi variabel global dalam sistem seperti yang ditunjukkan di Kode Sumber 4.10 dapat dijelaskan sebagai berikut :

1. Inisialisasi alamat node server dengan variabel this_node. 2. dataToSink merupakan inisialisasi paket hasil olahan data

dari payload_t yang kemudian dikirimkan ke node server. diolah, dan “datamax” yang berisi nilai maksimal dari data yang diolah.

Initialize struct dataToSink

CHnode

Kode Sumber 4.10 Pseudocode Inisialisasi variabel global

4.2.2.2 Sistem Utama dalam Fungsi Loop

(58)

34

perintah untuk menampilkan data hasil olahan. Pada Kode Sumber 4.11 diperlihatkan mengenai jalannya proses loop pada sebuah pseudocode. WHILE network.available Set RF2NetworkHeader header

Kode Sumber 4.11 Pseudocode Sistem Utama Fungsi Loop()

4.2.3 Implementasi Antarmuka Sistem

Pada bagian ini, akan dijelaskan mengenai implementasi perangkat lunak yang dilakukan untuk membuat antarmuka dari sistem. Tampilan antarmuka ini berfungsi untuk mensimulasikan pergantian cluster head, menampilkan data yang diterima node server, dan memasukkan data ke dalam database. Terdapat 3 bagian implementasi penting yang harus dilakukan agar antarmuka dapat berjalan. Penjelasan selanjutnya akan dibahas di masing-masing subbab.

4.2.3.1 Tampilan Antarmuka

(59)

35

Gambar 4.1 Implementasi Tampilan Antarmuka Sistem

4.2.3.2 Class SerialReading

Class SerialReading merupakan salah satu class dalam pembuatan tampilan antarmuka sistem. Class ini berfungsi untuk membaca data dari node server melalui port serial untuk selanjutnya ditampilkan di tampilan antarmuka sistem. Pada Kode Sumber 4.12 diperlihatkan secara jelas isi dari class SerialReading pada sebuah pseudocode. Mengenai bagian-bagian dari class SerialReading, akan dijelaskan sebagai berikut :

1. Deklarasikan nama class.

2. Inisialisasi port serial yang akan dibaca.

3. Inisialisasi objek untuk menampung input dan output. 4. Fungsi initialize() untuk memulai membaca port serial. 5. Fungsi close() untuk menutup port setelah selesai dibaca. 6. Fungsi serialEvent() untuk menampung data dari port serial

ke variabel yang nantinya akan ditampilkan di tampilan antarmuka dan juga dikirim ke database.

1 SerialPort serialPort

String PORT_NAMES[] := { "/dev/tty.usbserial-A9007UX1",

"/dev/ttyACM0",

(60)

36 BufferedReader input OutputStream output TIME_OUT := 2000 DATA_RATE := 57600

Call function initialize() Call function close() Call function serialEvent() END Class

Kode Sumber 4.12 Pseudocode class SerialReading

Seperti yang dijelaskan sebelumnya, didalam class SerialReading ini terdapat 3 fungsi penting yang harus diperhatikan. Fungsi yang pertama adalah fungsi initialize. Fungsi ini berfungsi untuk membaca port serial dari arduino. Kode Sumber 4.13 menunjukkan pseudocode dari fungsi initialize.

1

CommPortIdentifier portId := NIL Enumeration portEnum :=

CommPortIdentifier.getPortIdent ifiers()

while (portEnum.hasMoreElements()) CommPortIdentifier currPortId :=

(CommPortIdentifier) portEnum.nextElement( )

(61)

37

serialPort.setSerialPortParams(DATA_RATE, SerialPort.DATABITS_8,

output := serialPort.getOutputStream() serialPort.addEventListener(this) serialPort.notifyOnDataAvailable(true) catch (Exception e)

System.err.println(e.toString()) ENDFUNCTION

Kode Sumber 4.13 Pseudocode fungsi initialize dalam class SerialReading

Fungsi penting yang kedua dalam class SerialReading adalah fungsi close yang berfungsi untuk menutup port setelah selesai dibaca. Kode Sumber 4.14 menunjukkan pseuducode dari fungsi close.

synced function close() if(serialPort != NIL)

serialPort.removeEventListener() serialPort.close()

ENDFUNCTION

Kode Sumber 4.14 Pseudocode fungsi close dalam class SerialReading

(62)

38

Kode Sumber 4.15 Pseudocode fungsi serialEvent dalam class SerialReading

4.2.3.3 Class Database

Class ini digunakan untuk melakukan koneksi ke database MySQL dan juga untuk memasukkan data dari node server ke dalam database. Pada Kode Sumber 4.16 diperlihatkan secara jelas isi dari class Database pada sebuah pseudocode. Mengenai bagian-bagian dari class Database, akan dijelaskan sebagai berikut :

1. Deklarasikan class Database.

2. Inisialisasi objek untuk koneksi ke database.

(63)

39

4. Fungsi InsertToDB() untuk memasukkan data ke dalam table yang sudah ditentukan.

1

Kode Sumber 4.16 Pseudocode untuk Class Database

Seperti yang dijelaskan sebelumnya, didalam class Database ini terdapat dua fungsi yang perlu diperhatikan. Yang pertama adalah fungsi ConInit. Fungsi ini bertugas untuk membuat koneksi antara aplikasi dengan basis data MySQL yang telah dibuat. Kode Sumber 4.17 menunjukkan pseudocode dari fungsi ConInit.

function ConInit() throws ClassNotFoundException, SQLException

Class.forName("com.mysql.jdbc.Driver") con := DriverManager.getConnection

Kode Sumber 4.17 Pseudocode fungsi ConInit dalam class Database

Kemudian fungsi berikutnya dalam class Database adalah fungsi InsertToDB. Fungsi ini bertugas untuk memasukkan data ke dalam table dalam basis data MySQL yang telah dibuat. Kode Sumber 4.18 menunjukkan pseudocode dari fungsi InsertToDB.

1 2

(64)

40

3 4 5 6 7 8 9 10

stmt.executeUpdate("INSERT INTO datanode (ch_node,jumlah, rata_rata,

datamin,datamax) VALUES " + "('" + node + "'," + j + "," + r + "," + dmin + "," + dmax + ")")

ENDFUNCTION

(65)

41

BAB 5

BAB V

HASIL UJI COBA DAN EVALUASI

Pada bab ini akan dijabarkan mengenai uji coba dan evaluasi Tugas Akhir yang telah dikerjakan. Sistem akan diuji coba fungsionalitas dan performanya dengan menjalankan serangkaian skenario pengujian yang telah ditentukan. Hasil evaluasi menjelaskan tentang rangkuman dari hasil pengujian, yang akan dijelaskan pada akhir bab ini.

5.1 Lingkungan Uji Coba

Lingkungan uji coba mencakup perangkat dan peralatan apa saja yang digunakan dalam uji coba. Uji coba fungsionalitas dilakukan di laboratorium Komputasi Berbasis Jaringan di Kampus Teknik Informatika ITS dan uji coba performa dilakukan di lapangan yang terletak di kompleks Blok U ITS. Lingkungan uji coba memiliki spesifikasi seperti di bawah ini :

 Laptop ASUS K45VD

o Intel(R) Core(TM) i3-2370M @2.40 GHz ~2.4 GHz

o RAM 4 GB

o Microsoft Windows 7 Ultimate 32-bit

 Empat node dengan setiap node memiliki komponen sebagai berikut :

o Mikrokontroler Arduino UNO R3 o Modul transceiver nRF24L01+ o Kabel USB

o Baterai 9 V

o Satu set kabel jumper

5.2 Uji Coba Fungsionalitas

(66)

42

yang dimaksud meliputi node klien / cluster head, node server, dan tampilan antarmuka sistem.

5.2.1 Uji Coba Fungsionalitas Node Klien / Cluster Head

Bagian pertama dari uji coba fungsionalitas adalah uji coba fungsionalitas pada node klien / cluster head. Fungsionalitas yang akan diuji mencakup pengolahan data, pengiriman data ke node server, dan pergantian cluster head.

5.2.1.1 Uji Coba Pengolahan Data

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas pengolahan data dari node cluster head. Pada uji coba ini, node cluster head akan mengumpulkan 5 gelombang data yang berupa angka random dari 3 node di jaringan lalu kemudian mengolahnya untuk mendapatkan data rata-rata, data minimal, dan data maksimal. Tabel 5.1 adalah tabel mengenai skenario uji coba pengolahan data pada node cluster head.

Tabel 5.1 Skenario Uji Coba Pengolahan Data Pada Node Cluster Head

ID UJ-F01

Nama Uji Coba Pengolahan Data Pada Node Cluster Head

Tujuan Uji Coba

Menguji fungsionalitas node untuk mengolah data dari node-node lain di jaringan.

Kondisi Awal Semua node terhubung ke jaringan Skenario 1. Menentukan node cluster head

2. Mengumpulkan data dari node-node klien 3. Menampilkan hasil olahan data

Masukan Data dari node-node klien

Keluaran Data rata-rata, data minimal, data maksimal Hasil yang

Diharapkan

(67)

43

5.2.1.2 Uji Coba Pengiriman Hasil Olah Data ke Node Server

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas pengiriman hasil olah data ke node server. Pada uji coba ini, node cluster head setelah melakukan pengolahan data akan mengirimkan hasil olah data tersebut ke node server. Tabel 5.2 adalah tabel mengenai skenario uji coba pengiriman hasil olah data ke node server.

Tabel 5.2 Skenario Uji Coba Pengiriman Hasil Olah Data ke Node Server

ID UJ-F02

Nama Uji Coba Pengiriman Hasil Olah Data ke Node Server

Tujuan Uji Coba

Menguji fungsionalitas node cluster head dalam mengirimkan data ke node server.

Kondisi Awal Semua node terhubung ke jaringan

Skenario 1. Node cluster head mengolah data dari node klien

2. Node cluster head mengirimkan data ke node server

3. Node server menampilkan paket data yang diterima

Masukan Data hasil olahan

Keluaran Node server menampilkan data hasil olahan Hasil yang

Diharapkan

Data berhasil dikirim ke node server

5.2.1.3 Uji Coba Pergantian Cluster Head

(68)

44

Tabel 5.3 Skenario Uji Coba Pergantian Cluster Head

ID UJ-F03

Nama Uji Coba Pergantian Cluster Head

Tujuan Uji Coba

Menguji fungsionalitas node untuk melakukan pergantian cluster head.

Kondisi Awal Semua node terhubung ke jaringan Skenario 1. Node 1 menjadi cluster head

2. Setelah berjalan selama waktu yang ditentukan, maka akan melakukan pergantian cluster head

3. Node 2 terpilih menjadi cluster head

4. Setelah berjalan selama waktu yang ditentukan, maka akan melakukan pergantian cluster head

5. Node 3 terpilih menjadi cluster head

Masukan List node dalam jaringan Keluaran -

Hasil yang Diharapkan

Pergantian cluster head berjalan dengan lancer dan semua node mendapat giliran

5.2.2 Uji Coba Fungsionalitas Node Server

Pembahasan berikutnya adalah uji coba pada sisi node server. Fungsionalitas yang diuji pada bagian ini adalah fungsi menerima data hasil olahan yang dikirim node cluster head.

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas penerimaan paket data pada node server. Pada uji coba ini, node server akan menerima dan menampilkan paket data yang dikirimkan oleh node cluster head. Tabel 5.4 adalah tabel mengenai skenario uji coba.

Tabel 5.4 Skenario Uji Coba Menerima Paket Data dari Node Cluster Head

ID UJ-F04

Nama Uji Coba Menerima Paket Data dari Node Cluster Head

Tujuan Uji Coba

(69)

45

Skenario 1. Node cluster head mengirimkan data ke node server

2. Dilakukan pemantauan apakah pengiriman berhasil dilakukan

3. Jika iya, kemudian dilakukan pemantauan apakah paket diterima dengan benar oleh node server

4. Melihat apakah node server menampilkan data atau tidak

Masukan Paket dari node cluster head

Keluaran Tampilan node server yang menunjukkan data yang sudah berhasil diterima

Hasil yang Diharapkan

Node server dapat menerima paket data dengan benar

5.2.3 Uji Coba Fungsionalitas Tampilan Antarmuka Sistem

Pembahasan berikutnya adalah uji coba pada sisi tampilan antarmuka sistem. Fungsionalitas yang diuji pada bagian ini adalah fungsi membaca port serial, fungsi menampilkan data, dan fungsi memasukkan data ke dalam database.

5.2.3.1 Uji Coba Membaca Port Serial

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas membaca port serial yang dilakukan oleh tampilan antarmuka sistem. Pada uji coba ini, aplikasi antarmuka sistem akan membaca data dari port serial milik node server untuk kemudian menampilkannya. Tabel 5.5 adalah tabel mengenai skenario uji coba.

Tabel 5.5 Skenario Uji Coba Membaca Port Serial

ID UJ-F05

Nama Uji Coba Membaca Port Serial Tujuan Uji

Coba

Menguji fungsionalitas aplikasi antarmuka sistem dalam membaca port serial milik node server. Kondisi Awal Membuka aplikasi antarmuka

(70)

46

antarmuka

2. Menentukan nomor port serial yang dibaca 3. Memantau apakah port serial dapat dibaca atau

tidak

4. Jika iya, baca port serial dan tampilkan di layar Masukan Data dari port serial node server

Keluaran Tampilan data yang diterima oleh aplikasi antarmuka

Hasil yang Diharapkan

Aplikasi antarmuka dapat membaca data dari port serial milik node server

5.2.3.2 Uji Coba Menampilkan Data

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas menampilkan data yang dilakukan oleh tampilan antarmuka sistem. Pada uji coba ini, aplikasi antarmuka sistem akan menampilkan data dari port serial yang sudah berhasil dibaca ke dalam layar. Tabel 5.6 adalah tabel mengenai skenario uji coba.

Tabel 5.6 Uji Coba Menampilkan Data

ID UJ-F06

Nama Uji Coba Menampilkan Data Tujuan Uji

Coba

Menguji fungsionalitas aplikasi antarmuka sistem dalam menampilkan data yang diterima dari port serial.

Kondisi Awal Membuka aplikasi antarmuka Skenario 5. Membaca port serial

6. Memantau apakah aplikasi menampilkan data dengan benar

Masukan Data dari port serial node server

Keluaran Tampilan data yang diterima oleh aplikasi antarmuka

Hasil yang Diharapkan

(71)

47

5.2.3.3 Uji Coba Memasukkan Data ke Database

Uji coba ini dijalankan dengan tujuan untuk menguji fungsionalitas memasukkan data yang diterima oleh aplikasi antarmuka ke dalam database MySQL. Pada uji coba ini, aplikasi antarmuka sistem akan memasukkan data yang diterima ke dalam database MySQL untuk disimpan. Tabel 5.7 adalah tabel mengenai skenario uji coba.

Tabel 5.7 Uji Coba Memasukkan Data ke Database

ID UJ-F07

Nama Uji Coba Memasukkan Data ke Database Tujuan Uji

Coba

Menguji fungsionalitas aplikasi antarmuka sistem dalam memasukkan data ke database MySQL. Kondisi Awal Membuka aplikasi antarmuka

Skenario 7. Membaca port serial

8. Memantau apakah aplikasi menampilkan pesan error dalam memasukkan data ke database 9. Jika tidak, lakukan pemantauan pada database

yang telah dibuat apakah data berhasil masuk atau tidak

Masukan Data dari port serial node server Keluaran -

Hasil yang Diharapkan

Aplikasi antarmuka dapat memasukkan data ke dalam database dengan benar

5.3 Hasil dan Evaluasi Uji Coba Fungsionalitas

(72)

48

5.3.1 Hasil Uji Coba Fungsionalitas Node Klien / Cluster Head

Berdasarkan uji coba yang telah dilakukan untuk menguji fungsionalitas node klien / cluster head, berikut ini hasil dari uji coba yang dilakukan :

5.3.1.1 Hasil Uji Coba Pengolahan Data

Menurut skenario pada Tabel 5.1, yang pertama kali dilakukan adalah menentukan node cluster head. Setelah node cluster head terpilih, maka node akan mengumpulkan data dari node-node klien dalam jaringan. Kemudian, setelah terkumpul lima gelombang data, maka node cluster head akan mengolah data untuk mendapatkan rata-rata, minimal dan minimal dari data. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.1. Hal ini menunjukkan bahwa fungsionalitas pengolahan data bekerja dengan baik.

(73)

49

5.3.1.2 Hasil Uji Coba Pengiriman Hasil Olah Data ke Node Server

Menurut skenario pada Tabel 5.2, yang pertama kali dilakukan adalah node cluster head menjalankan fungsi pengolahan data. Setelah data berhasil diolah, maka data dimasukkan ke dalam sebuah paket. Kemudian, paket tersebut dikirimkan ke node server. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.2. Hal ini menunjukkan bahwa fungsionalitas pengiriman hasil olah data ke node server bekerja dengan baik.

Gambar 5.2 Hasil Uji Coba Pengiriman Hasil Olah Data ke Node Server

(74)

50

Gambar 5.3 Hasil Uji Coba Pengiriman Data ke Node Server di Sisi Node Server

5.3.1.3 Hasil Uji Coba Pergantian Cluster Head

Menurut skenario pada Tabel 5.3, yang pertama kali dilakukan adalah menentukan node 1 sebagai node cluster head. Setelah itu dilakukan pengecekan berkala untuk mengecek apakah sudah waktunya ganti. Jika waktu pergantian sudah dating, maka node 1 akan menjalankan fungsi pergantian untuk memilih cluster head baru. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.4. Hal ini menunjukkan bahwa fungsionalitas pergantian node cluster head berjalan dengan baik.

(75)

51

5.3.2 Hasil Uji Coba Fungsionalitas Node Server

Berdasarkan uji coba yang telah dilakukan untuk menguji fungsionalitas node server, berikut ini hasil dari uji coba yang dilakukan.

Menurut skenario pada Tabel 5.4, yang pertama kali dilakukan adalah node 1 sebagai node cluster head mengirimkan data hasil olahan ke node server. Setelah itu dilakukan pemantauan apakan data berhasil dikirim atau tidak. Kemudian, data yang berhasil diterima akan ditampilkan oleh node server. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.5. Hal ini menunjukkan bahwa fungsionalitas penerimaan paket data dari node cluster head berjalan dengan baik.

(76)

52

5.3.3 Hasil Uji Coba Fungsionalitas Aplikasi Antarmuka

Berdasarkan uji coba yang telah dilakukan untuk menguji fungsionalitas aplikasi antarmuka sistem, berikut ini hasil dari uji coba yang dilakukan :

5.3.3.1 Hasil Uji Coba Membaca Port Serial

Menurut skenario pada Tabel 5.5, yang pertama kali dilakukan adalah menghubungkan node serve ke komputer tempat aplikasi antarmuka berjalan menggunakan kabel USB. Setelah itu aplikasi akan mencari port serial yang aktif. Kemudian, aplikasi akan membaca data dari port serial tersebut. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.8. Hal ini menunjukkan bahwa fungsionalitas penerimaan paket data dari node cluster head berjalan dengan baik.

Gambar 5.6 Hasil Uji Coba Membaca Port Serial

5.3.3.2 Hasil Uji Coba Menampilkan Data

(77)

53

menjadi cluster head memiliki warna background yang berbeda dari node yang lain.

Gambar 5.7 Hasil Uji Coba Menampilkan Data

5.3.3.3 Hasil Uji Coba Memasukkan Data ke Database

Menurut skenario pada Tabel 5.7, yang pertama kali dilakukan adalah aplikasi membaca data dari port serial. Setelah itu aplikasi akan memeriksa apakah data error atau tidak. Kemudian, aplikasi akan menjalankan fungsi untuk memasukkan data ke database. Pada uji coba yang telah dilakukan, didapatkan hasil seperti pada Gambar 5.8. Hal ini menunjukkan bahwa fungsionalitas memasukkan data ke database berjalan dengan baik.

(78)

54

5.4 Uji Coba Performa

Pada jaringan ini, ada beberapa hal penting yang performanya harus diuji. Uji coba performa pada sistem ini dilakukan dengan mengecek keberhasilan pengiriman data ke server dan mengukur penurunan daya tahan baterai dengan membandingkan sistem dengan jaringan yang tidak menggunakan metode pergantian cluster head dengan mengubah delay pengiriman dan jumlah data yang diolah.

Uji coba performa ini dilakukan di sebuah lapangan yang berlokasi di perumahan kompleks Blok U Kampus ITS. Gambar 5.9 menunjukkan tampilan lapangan beserta lokasi peletakan node.

Gambar 5.9 Lapangan Lokasi Uji Coba Performa

1

(79)

55

Pada gambar diatas, dapat dilihat lokasi uji coba performa yang akan dilakukan. Nomor-nomor yang berada pada Gambar 5.9 menunjukkan lokasi peletakkan node-node klien dalam jaringan. Nomor 1 menunjukkan lokasi node 1, nomor 2 menunjukkan lokasi node 2, dan node 3 menunjukkan lokasi node 3. Gambar 5.10, Gambar 5.11, dan Gambar 5.12 menunjukkan lebih jelas peletakkan node-node dalam jaringan.

Gambar 5.10 Peletakkan node 1

Gambar

Gambar 2.1 Perangkat nRF24L01+
Gambar 2.2 Antarmuka Arduino IDE
Gambar 2.3 Arduino Uno Revision 3
Gambar 3.1 Arsitektur Umum Sistem
+7

Referensi

Dokumen terkait

Third World Network yaitu Chakravarti Raghavan mengatakan bahwa, dilihat dari perspektif negara sedang berkembang secara umum (trutama negara miskin dan pinggiran), tatanan

Berdasarkan hasil penelitian yang dilakukan diKelurahan Simpang kecamatan berbak kabupaten Tanjung jabung Timur diperoleh dari informan yang merupakan hasil penilaian

Dalam pertemuan yang pertama kali dihadiri oleh pemimpin agama Kristen, Islam, Yahudi, Budha, Hindu, dan Tao bergabung dengan masyarakat adat dari Brasil, Kolombia, Republik

Bapak dan Ibu, Yohanes Yosef Sudarso dan Maria Setyawati yang terkasih, peluk, cium, dan rasa terimakasih yang mendalam untuk segala doa, perhatian, dukungan, kasih

Oleh sebab itu, kajian ini merupakan kajian asli, yang boleh melengkapkan ruang-ruang yang belum diterokai untuk kejayaan dakwah Islam pada masa hadapan, iaitu kajian

[r]

Dalam melakukan penelitian ini, terdapat penelitian sebelumnya yang juga mengembangkan sistem informasi pengelolaan UMKM yang dilakukan oleh Latifah Rifani (2016)

Permasalahan yang dihadapi atau yang menjadi hambatan dalam upaya melaksanakan program dan kegiatan pelestarian kebudayaan di Papua selama ini adalah; pertama