Anda di halaman 1dari 156

SISTEM KOMUNIKASI NIRKABEL BERBASIS

MODUL NRF24L01 PADA ALAT SARUNG


TANGAN PINTAR PENGENDALI KURSI RODA

Skripsi
Untuk Memenuhi Sebagai Persyaratan Mencapai
Sarjana Teknik

Oleh:
Iqbal Cahya Kurniawan
1600022043

PROGRAM STUDI TEKNIK ELEKTRO


FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
YOGYAKARTA
2019
HALAMAN PERSETUJUAN
Skripsi

SISTEM KOMUNIKASI NIRKABEL BERBASIS MODUL NRF24L01


PADA ALAT SARUNG TANGAN PINTAR PENGENDALI KURSI RODA

Yang dipersiapkan dan disusun oleh

Iqbal Cahya Kurniawan


1600022043

Kepada
Program Studi Teknik Elektro
Fakultas Teknologi Industri
Universitas Ahmad Dahlan

telah disetujui untuk diuji oleh:

Pembimbing, Tanggal,………………...........

Anton Yudhana,S. T., M. T., Ph. D


NIY: 60010383

ii
HALAMAN PENGESAHAN
SKRIPSI
SISTEM KOMUNIKASI NIRKABEL BERBASIS MODUL
NRF24L01 PADA ALAT SARUNG TANGAN PINTAR
PENGENDALI KURSI RODA

Yang dipersiapkan dan disusun oleh


Iqbal Cahya Kurniawan
1600022043

Telah dipertahankan didepan Dewan Penguji


Pada tanggal …….
Dan dinyatakan telah memenuhi syarat

Susunan Dewan Penguji


Ketua : Anton Yudhana, S.T., M.T., Ph.D ……………….
Anggota : 1. .………………
2. ………………..

Dekan
Fakultas Teknologi Industri
Universitas Ahmad Dahlan

Sunardi, S.T., M.T., Ph.D.


NIY 60010313

iii
PERNYATAAN TIDAK PLAGIAT

iv
PERNYATAAN PERSETUJUAN AKSES

v
PERNYATAAN KEASLIAN TULISAN

Saya yang bertanda tangan dibawah ini:

Nama : Iqbal Cahya Kurniawan

NIM : 1600022043

Program Studi : Teknik Elektro

Fakultas : Teknologi Industri

Menyatakan dengan sebenarnya bahwa skripsi/tugas akhir yang saya tulis ini

benar-benar merupakan hasil karya saya sendiri; bukan merupakan pengambil

alihan tulisan atau pikiran orang lain yang saya akui sebagai hasil tulisan atau

pikiran saya sendiri.

Apabila di kemudian hari terbukti atau dapat dibuktikan skripsi/tugas akhir ini

hasil jiplakan, maka saya bersedia menerima sanksi atas perbuatan tersebut.

Yogyakarta, 21 Desember 2019

Yang Membuat Pernyataan

Iqbal Cahya Kurniawan

vi
MOTTO

“Karena Sesungguhnya Sesudah Kesulitan Itu Ada Kemudahan,


Sesungguhnya Sesudah Kesulitan Itu Ada Kemudahan”– Q.S Al-Insyirah
Ayat 5-6

“Maju Terus, Pantang Mundur, Jangan Berhenti dan Jadikan Pengalaman


Sebagai Guru Terbaik Dalam Hidup”

vii
PERSEMBAHAN

Skripsi ini saya persembahkan untuk:

Bapak dan Ibuku tersayang,

(Alm) Arry Sudariyanto & Siti Wartikah

Serta Kakak ku tercinta,

Fitry Arry Ika Wahyuni, Ganjar Wicaksono, Bagus Syaifani

viii
KATA PENGANTAR

Assalamu’alaikum Wr.Wb.
Dengan mengucapkan Alhamdulillahirobbil’alamin, penulis memanjatkan puji
dan syukur kepada Allah SWT atas rahmat dan hidayat –Nya sehingga penulis
dapat menyelesaikan skripsi dengan judul “Sistem Komunikasi Nirkabel
Berbasis Modul Nrf24l01 Pada Alat Sarung Tangan Pintar Pengendali Kursi
Roda”. Skripsi ini disusun untuk memenuhi sebagian persyaratan mencapai
derajat Sarjana Teknik di Program Studi Teknik Elektro Fakultas Teknologi
Industri Universitas Ahmad Dahlan Yogyakarta.
Selama penulisan ini penulis menyadari bahwa banyak pihak telah
memberikan bantuannya, sehingga pada kesempatan ini penulis ingin
mengucapkan terimakasih yang tulus kepada :
1. Allah SWT yang telah memberikan kemudahan dan kelancaran selama
proses pengerjaan skripsi.
2. Ayahanda (alm. Arry Sudariyanto) dan Ibunda (Siti Wartikah) yang
telah senantiasa memotivasi, menasehati, menyemangati setiap saat.
3. Kakak Kandung ku Mba Fitri, Mas Ganjar, Mas Bagus yang telah
memberi semangat dan motivasi selama ini.
4. Bapak Sunardi, S.T., M.T., Ph.D., selaku Dekan Fakultas Teknologi
Industri Universitas Ahmad Dahlan.
5. Bapak Nuryono Satya Widodo, S.T.,M.Eng selaku kepala program studi
teknik elektro.
6. Bapak Anton Yudhana, S.T., M.T., Ph.D., selaku dosen pembimbing
tugas akhir yang telah memberikan pengarahan dalam tugas akhir saya.
7. Bapak Ir. Wahyu Sapto Aji, S.T., M.T selaku dosen pembimbing
akademik yang selalu memberikan motivasi, dukungan, semangat dan
pengarahan.

ix
8. Muhammad Annas, Ahmad Yogaswara, Febryarta Tryhamsyah, Ponco
Sukaswanto selaku kerabat yang telah memberikan informasi dan
pandangan kepada penulis.
9. Estu Ilham Kumara, Andrean Dwi Cahyo,Febryarta Tryhamsyah selaku
teman seperjuangan bimbingan bapak Anton Yudhana.
10. Segenap Dosen Teknik Elektro Universitas Ahmad Dahlan, yang telah
membagikan ilmunya sehingga skripsi ini dapat diselesaikan.
11. Kawan-kawan ku teknik elektro UAD 2016 yang menjadi teman
seperjuangan.
12. Pihak-pihak yang belum disebutkan satu- persatu.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna. Oleh karena
itu, penulis mengharapkan kritik dan saran bersifat membangun demi
sempurnanya skripsi ini dan untuk penulisan skripsi selanjutnya.
Harapan penulis, semoga do’a dan bantuan yang sangat berharga tersebut
mendapat imbalan dari Allah SWT, amin ya robal alamin.
Wasslamualaikum Wr.Wb.
Yogyakarta,21 Desember 2019

Penulis

x
DAFTAR ISI

HALAMAN PERSETUJUAN................................................................................ii

HALAMAN PENGESAHAN................................................................................iii

PERNYATAAN TIDAK PLAGIAT......................................................................iv

PERNYATAAN PERSETUJUAN AKSES............................................................v

PERNYATAAN KEASLIAN TULISAN..............................................................vi

MOTTO.................................................................................................................vii

PERSEMBAHAN.................................................................................................viii

KATA PENGANTAR............................................................................................ix

DAFTAR ISI...........................................................................................................xi

DAFTAR GAMBAR............................................................................................xiv

DAFTAR TABEL.................................................................................................xvi

ABSTRAK...........................................................................................................xvii

BAB 1 PENDAHULUAN.....................................................................................1

1.1 Latar Belakang...............................................................................1

1.2 Identifikasi Masalah.......................................................................4

1.3 Batasan Masalah.............................................................................4

1.4 Rumusan Masalah..........................................................................5

1.5 Tujuan Penelitian............................................................................5

1.6 Manfaat Penelitian..........................................................................6

BAB 2 KAJIAN PUSTAKA..................................................................................7

2.1 Kajian Hasil Penelitian Terdahulu.................................................7

2.2 Kerangka Teori.............................................................................16

2.2.1 Jaringan Sensor Nirkabel (JSN)................................................16

xi
2.2.2 Error detection..........................................................................17

2.2.3 Cyclic Redudancy Check (CRC)...............................................18

2.2.4 Prinsip Kerja Cyclic Redudancy Check (CRC)........................18

2.2.5 Perhitungan Cyclic Redudancy Check (CRC)..........................19

2.2.6 Quality Of Service (QoS)..........................................................21

2.2.7 Parameter Quality Of Service...................................................22

2.2.8 Modul Nrf24L01.......................................................................25

2.2.9 Arduino Uno R3.......................................................................26

2.2.10 Sensor Flex..............................................................................28

2.2.11 Motor DC................................................................................29

BAB 3 METODOLOGI PENELITIAN..............................................................30

3.1 Bahan Penelitian...........................................................................30

3.2 Alat Penelitian..............................................................................30

3.3 Perancangan Sistem......................................................................31

3.3.1 Perancangan Perangkat Keras...................................................31

3.3.2 Perancangan Perangkat Lunak..................................................33

3.4 Pengujian Sistem..........................................................................38

3.4.1 Pengujian Perangkat Keras.......................................................38

3.4.2 Pengujian Perangkat Lunak......................................................40

BAB 4 HASIL DAN PERMBAHASAN.............................................................41

4.1 Pengujian Sistem..........................................................................41

4.1.1 Pengujian Perangkat Keras.......................................................41

4.1.2 Pengujian Perangkat Lunak.....................................................45

4.2 Pengujian Keseluruhan.................................................................51

4.2.1 Pengujian quality of service (Qos)............................................52

xii
4.2.2 Pengujian Komunikasi Modul Nrf24L01.................................73

BAB 5 KESIMPULAN DAN SARAN.............................................................100

5.1 Kesimpulan.................................................................................100

5.2 Saran...........................................................................................100

DAFTAR PUSTAKA..........................................................................................102

LAMPIRAN.........................................................................................................105

L.1 Program Pengontrol Kursi Roda.........................................................105

L.2 Program Quality of Service (QoS).......................................................116

xiii
DAFTAR GAMBAR
Gambar 2.1 Struktur Jaringan Sensor Nirkabel..........................................17

Gambar 2.2 Proses Error detection.............................................................17

Gambar 2.3 Contoh Perhitungan CRC........................................................20

Gambar 2.4 Modul Nrf24L01.....................................................................26

Gambar 2.5 Arduino Uno R3......................................................................28

Gambar 2.6 Sensor Flex..............................................................................28

Gambar 2.7 Motor DC PG45......................................................................29

Gambar 3.1 Diagram Blok Perancangan Perangkat Keras.........................32

Gambar 3.2 Desain Alat Sarung Tangan....................................................32

Gambar 3.3 Desain Alat Kursi Roda..........................................................33

Gambar 3.4 Diagram Alir Sistem Sarung Tangan......................................34

Gambar 3.5 Diagram Alir Sistem Kursi Roda............................................35

Gambar 3.6 Diagram alir CRC bagian Transmitter....................................36

Gambar 3.7 Diagram Alir CRC bagian Receiver.......................................37

Gambar 4. 1 Sarung Tangan.......................................................................42

Gambar 4. 2 Rangkaian Perangkat keras pada sarung tangan....................42

Gambar 4. 3 Perangkat Keras Kursi Roda..................................................43

Gambar 4. 4 Rangkaian kursi roda.............................................................44

Gambar 4. 5 Listing Pembacaan nilai resistansi sensor flex.......................47

Gambar 4. 6 Program Komunikasi Modul Nrf24L01 (Transmitter).........48

Gambar 4. 7 Program komunikasi Modul Nrf24L01 (Receiver)................50

Gambar 4. 8 Sketch program menghitung Delay........................................52

Gambar 4. 9 Grafik Pengujian Delay..........................................................57

xiv
Gambar 4. 10 Sketch Troughput.................................................................58

Gambar 4. 11 Grafik Pengujian Throughput..............................................63

Gambar 4. 12 Sketch program Jitter...........................................................64

Gambar 4. 13 Grafik Pengujian Jitter.........................................................69

Gambar 4. 14 Grafik Pengujian Packet Loss (%).......................................72

Gambar 4.15 Rumus Konversi Decimal to Binary.....................................74

Gambar 4. 16 Output data Transmitter.......................................................75

Gambar 4. 17 Ouput Data Receiver............................................................77

Gambar 4. 18 Data Error pada Receiver.....................................................78

Gambar 4.19 Perhitungan Manual Algoritma CRC Bagian Transmitter....89

Gambar 4.20 Perhitungan Manual Algoritma CRC Bagian Receiver........90

Gambar 4.21 Perhitungan Manual Algoritma CRC Bagian Transmitter....91

Gambar 4. 22 Perhitungan Manual Algoritma CRC bagian Receiver........92

Gambar 4.23 Perhitungan Manual Algoritma CRC Bagian Transmitter....93

Gambar 4.24 Perhitungan Manual Algoritma CRC bagian Receiver.........94

Gambar 4. 25 Perhitungan Manual Algoritma CRC Bagian Transmitter...95

Gambar 4. 26 Perhitungan Manual Algoritma CRC Bagian Receiver.......96

Gambar 4. 27 Perhitungan Manual Algoritma CRC Bagian Transmitter...97

Gambar 4. 28 Perhitungan Manual Algoritma CRC Bagian Receiver.......98

DAFTAR TABEL

xv
Tabel 2.1 Penelitian terdahulu.....................................................................11

Tabel 2.2 Parameter Delay...........................................................................23

Tabel 2.3 Parameter Jitter............................................................................23

Tabel 2.4 Parameter Throughput.................................................................24

Tabel 2.5 Parameter Packet loss (%)...........................................................25

Tabel 2.6 Spesifikasi Arduino R3................................................................26

Tabel 4. 1 Nilai Flex Sensor........................................................................45

Tabel 4. 2 Data Transmitter.........................................................................49

Tabel 4. 3 Data Receiver..............................................................................51

Tabel 4. 4 Tabel pengujian Delay................................................................53

Tabel 4. 5 Tabel pengujian Throughput.......................................................59

Tabel 4. 6 Tabel Pengujian Jitter.................................................................65

Tabel 4. 7 Pengujian Packet Loss (%).........................................................71

Tabel 4. 8 Hasil Pengujian Error Detection.................................................79

Tabel 4. 9 Pengujian Jarak 50 Cm...............................................................83

Tabel 4. 10 Pengujian Jarak 100 Cm...........................................................84

Tabel 4. 11 Pengujian Jarak 150 Cm...........................................................86

Tabel 4. 12 Pengujian Jarak 200 Cm...........................................................87

Tabel 4. 13 Pengujian Jarak 250 Cm...........................................................88

Tabel 4. 14 Pengujian Jarak 300 Cm...........................................................89

SISTEM KOMUNIKASI NIRKABEL BERBASIS MODUL NRF24L01


PADA ALAT SARUNG TANGAN PINTAR PENGENDALI KURSI RODA

xvi
Iqbal Cahya Kurniawan
1600022043

ABSTRAK
Jaringan sensor nirkabel adalah suatu jaringan nirkabel yang terdiri dari
kumpulan node sensor yang tersebar di suatu area tertentu (sensor field). Tiap
node sensor memiliki kemampuan untuk mengumpulkan data dan berkomunikasi
dengan node sensor lainnya. Pada proses komunikasi nirkabel ini menggunakan
modul nrf24l01 terdapat banyak kendala salah satunya packet loss. Packet loss
merupakan kegagalan suatu transmisi dalam proses pengiriman yang ditunjukan
ke alamat (receiver). Hal ini menyebabkan hilangnya beberapa data dalam proses
pengiriman.
Dengan kendala tersebut ada metode yang dapat meminimalisir terjadinya
packet lossi yaitu metode error detection. Metode error detection adalah metode
yang secara sistem diatur untuk mendeteksi data yang mengalami packet loss.
Tetapi untuk proses mendeteksi terdapat proses matematika yaitu menggunakan
algoritma cyclic redundancy check (CRC). Sistem akan menghitung dengan
algoritma CRC pada bagian transmitter dan receiver. Lalu akan dikomparasi oleh
hasil CRC tersebut. Selain itu untuk mengetahui faktor-faktor lain penyebab
packet loss atau connection loss menggunakan quality of service. Parameter yang
digunakan adalah jitter, packet loss, delay, throughput.
Hasil pengujian dari error detection menghasilkan sistem dapat mendeteksi
error sebesar 30 % dari total pengujian sebanyak 120 kali dan 70 % data berhasil
diterima sesuai dengan data yang dikirimkan. Pengujian quality of service
dilakukan dengan jarak 50 – 300 cm, dengan nilai rata-rata delay sebesar 773.16
ms, Troughput sebesar 777.43 Kbps, Jitter 40.41 ms, packet loss 30%.

Kata Kunci: Jaringan sensor nirkabel, Modul nrf24l01, Error detection, Cyclic
redundancy check (CRC), Quality of service.

xvii
BAB 1
PENDAHULUAN

1.1 Latar Belakang

Pengertian penyandang disabilitas menurut Pasal 1 angka 1 Undang-Undang

Nomor 4 Tahun 1997 tentang Penyandang cacat (UU PC) yaitu setiap orang yang

memiliki kelainan fisik dan/atau mental yang dapat menganggu atau merupakan

rintangan dan hambatan baginya untuk melakukan secara selayaknya. ILO

(Internasional Labour Organization) memperkirakan hal tersebut dapat berimbas

dan merugikan negara sebanyak 1 hingga 7 persen dari produk domestik bruto

(Mustadi, 2012).

Padahal jika kita melihat kuantitas orang-orang disabilitas cukup signifikan

bagi negeri ini. Berdasar dari angka yang ditetapkan oleh WHO (World Health

Organization) terdapat 15% Penyandang Disabilitas di Indonesia. Dengan

demikian terdapat populasi mencapai 36.841, 956 dengan populasi keseluruhan

penduduk 245 juta (Thohari, 2014).

Modul transceiver (transmitter and receiver) bertanggung jawab terhadap

koneksi jaringan antar node. Sehingga modul transceiver juga berhubungan

langsung dengan Quality of Service (QoS) suatu jaringan. Transceiver bertugas

sebagai media komunikasi tanpa kabel (wireless) yang memanfaatkan teknologi

gelombang radio sehingga node-node pada jaringan dapat saling terhubung dan

berkomunikasi. Penelitian sebelumnya telah dilakukan analisis komunikasi data

jaringan sensor wireless terhadap tiga jenis modul transceiver yang berbeda, yaitu

modul transceiver nrf24L01, Xbee dan ESP2866. Hasil penelitian tersebut,

1
2

menunjukkan bahwa modul nrf24L01 lebih unggul dalam kecepatan pengiriman

paket dan memiliki konsumsi RAM paling rendah yaitu 32.00% dari kapasitas

RAM pada Arduino uno. Namun, transmisi data pada modul nrf24l01 pada

penelitian tersebut masih menunjukkan terjadinya error berupa packet loss

sebesar 2.38% pada jarak 16 meter dengan kondisi field terbuka (Shobrina,

Primananda and Maulana, 2018).

Perangkat yang digunakan sebagai media transmisi secara nirkabel yang ada

pada wireless sensor network dapat dikatakan sebagai modul transceiver. Modul

transceiver memanfaatkan radio frekuensi dalam transmisi data digital. Contoh

modul transceiv er diantaranya nRF24L01, Xbe e dan Modul Wifi ESP2866.

Modul transceiver tersebut harus dipilih sesuai dengan sistem yang akan dibuat

agar pengiriman dan penerimaan data dapat akurat dan dioperasikan pada

berbagai lingkungan (Faludi, 2012).

Wireless rentang terhadap adaptasi lingkungan dan noise,sehingga

komunikasi delay sulit diperkirakan. Kedua, banyak aplikasi wireless sensor

network (WSN) yang dibutuhkan untuk bekerja dalam rentang waktu yang lama

dengan menggunakan daya baterai, sehingga memerlukan pertimbangan

bagaimana mengurangi energi yang berlebihan. Ketiga, paket yang berbeda

memiliki kebutuhan delay yang berbeda juga (Arrosyid and Sunarno, 2009).

Transmisi data antar modul transceiver pada jaringan sensor wireless

berpotensi untuk mengalami kegagalan penerimaan data pada receiver yang

diakibatkan oleh beberapa faktor seperti terjadinya tabrakan data (collision) saat

proses transmisi, adanya noise pada jaringan, atau faktor perangkat transceiver
3

yang tidak reliable. Kegagalan penerimaan data dalam jaringan disebut dengan

packet loss. Oleh karena itu dibutuhkan adanya rekayasa penanganan kesalahan

dengan mekanisme tertentu untuk menangani terjadinya packet loss tersebut

(Aeni, Data and Bhawiyuga, 2017).

Quality of Service merupakan sekumpulan parameter yang menunjukkan

kualitas jaringan yang memungkinkan sebuah aplikasi beroperasi sesuai yang

diharapkan. QoS bertujuan untuk memberikan layanan yang lebih baik pada

sebuah aplikasi dengan meningkatkan kualitas pada suatu jaringan. Kualitas

layanan pada sebuah aplikasi pada jaringan dapat diketahui dari beberapa

parameter untuk menentukannya yaitu delay, jitter, dan troughput (Asri et al.,

2018).

Kesalahan data pada proses komunikasi transceiver seperti pergantian bit

dan pertukaran tempat antara datu satu dengan yang lain dapat dihindari dengan

metode error detection yang diterapkan pada sistem komunikasi. Banyak sekali

algoritma untuk menunjang metode error detection seperti cyclic redundancy

check (CRC) merupakan algoritma yang dapat melakukan proses matematika

sehingga sistem dapat mengidentifikasi data error(Novaldi, Akbar and

Primananda, 2019).

Berdasarkan uraian diatas, penulis bermaksud untuk melakukan penelitian

yang berjudul “Sistem Komunikasi Nirkabel Berbasis Sensor Nrf24l01 Pada Alat

Sarung Tangan Pintar Pengendali Kursi Roda”. Dimana sistem komunikasi

nirkabel pada sarung tangan pintar pengendali kursi roda sangatlah penting karena

sering terjadinya kegagalan pengiriman data atau packet sehingga menyebabkan


4

tidak terjadinya sinkronisasi antara sarung tangan pintar dan kursi roda. Oleh

karena itu peeliti menggunakan metode error detection agar sistem dapat secara

otomatis medeteksi data yang dikirim dan data yang diterima mengalami corrupt

atau error. Untuk mempresisikan sistem dalam mendeteksi sebuah data

mengalami error atau tidak, penulis menggunakan algoritma cyclic redundancy

check (CRC). Selain peneliti juga ini menganalisis quality of service (QoS) dari

komunikasi nirkabel pada alat seperti delay, jitter, throughput, packet loss.

1.2 Identifikasi Masalah

Permasalahan penelitian yang diteliti ini dapat diidentifikasi

permasalahannya sebagai berikut:

1. Rentan terjadinya packet loss atau kegagalan pengiriman data pada proses

komunikasi jaringan nirkabel.

2. Komunikasi nirkbael antara transreceiver tidak terhubung.

3. Komunikasi nirkabel sangat sensitif dengan lingkungan sekitar.

1.3 Batasan Masalah

Mengingat luasnya objek penelitian yang diteliti maka perlu dibatasi

permasalahannya sebagai berikut:

1. Alat yang digunakan menggunakan board mikrokontroler Arduino mega dan

Arduino nano

2. Modul yang digunakan adalah modul Nrf24L01.

3. Bahasa pemograman yang diterapkan pada sistem adalah C++.


5

4. Pengujian dilakukan pada alat sarung tangan pintar dan kursi roda yang sudah

jadi.

5. Parameter pengujian quality of service hanya mencakup packet loss, delay,

throughput, jitter.

6. Jarak komunikasi modul nrf24l01 sejauh 3 meter.

7. Metode yang digunakan adalah error detection.

8. Algoritma yang digunakan adalah algoritma cyclic redundancy check (CRC).

1.4 Rumusan Masalah

Rumusan masalah pada penlitian ini adalah sebagai berikut:

1. Bagaiamana cara mengimplementasi metode error detection dan algoritma

cyclic redundancy check (CRC) dalam jaringan transceiver Nrf24L01?

2. Bagaimana cara menguji fungsionalitas metode error detection dan algoritma

cyclic redundancy check (CRC) dalam jaringan transceiver Nrf24L01?

3. Bagaimana menguji quality of service (QoS) pada jaringan transceiver

Nrf24L01?

1.5 Tujuan Penelitian

Dari rumusan masalah yang dikemukakan maka tujuan dari penelitian ini

adalah sebagai berikut:

1. Dapat merancang dan membuat sistem elektronis pada sarung tangan yang

dapat mengontrol kursi roda dan dapat melakukan komunikasi nirkabel dengan

baik.
6

2. Dapat menganalisis quality of service (QoS) modul Nrf24L01 dalam proses

komunikasi nirkabel antara kursi roda dan sarung tangan.

3. Dapat mengimplementasi metode metode error detection dan algoritma cyclic

redundancy check (CRC) pada komunikasi nirkabel antara kursi roda dan

sarung tangan.

4. Dapat membuat program agar transreceiver dapat berkomunikasi dengan baik.

1.6 Manfaat Penelitian

Pada penelitian ini diharapkan memberi manfaat sebagai berikut:

1. Bagi IPTEK, untuk menghasilkan alat sarung tangan pintar pengendali kursi

dengan memanfaatkan teknologi Jaringan Sensor Nirkabel (JSN) berbasis

Modul Nrf24l01 dan Arduino IDE dengan bahasa pemograman C++.

2. Bagi Masyarakat, untuk membantu para penyandang disabilitas dalam

melakukan aktivitas sehari-hari dengan lebih efektif dan efisien.


BAB 2
KAJIAN PUSTAKA

2.1 Kajian Hasil Penelitian Terdahulu

Pada penelitian terdahulu yang dilakukan oleh (Wulandari, 2016) dengan

judul “Analisis Qos ( Quality Of Service ) Pada Jaringan Internet ( Studi Kasus :

Upt Loka Uji Teknik Penambangan Jampang Kulon – Lipi )”. Pada penelitian ini

dilaksanakan oleh Unit Pelaksana Teknis untuk Penilaian Teknologi Tambang

Jampang Kulon - LIPI, secara organisasi berada di bawah dan bertanggung jawab

kepada Kepala Pusat Penelitian Geoteknologi, Deputi Ilmu Bumi, Institut Ilmu

Pengetahuan Indonesia. Untuk mendukung kegiatan penelitian dan

pengembangan, administrasi dan kerja sama memerlukan sistem informasi

berbasis Internet. Quality of Service (QoS) didefinisikan sebagai ukuran seberapa

baik jaringan dan upaya untuk mendefinisikan karakteristik dan sifat layanan.

Dalam Protokol Internet (IP), IP QoS mengacu pada kinerja paket -Package IP

yang melewati satu atau lebih jaringan. QoS dirancang untuk membantu pengguna

akhir menjadi lebih produktif dengan memastikan bahwa pengguna akhir

mendapatkan kinerja aplikasi berbasis jaringan yang andal. QoS mengacu pada

kemampuan jaringan untuk memberikan layanan yang lebih baik pada lalu lintas

jaringan tertentu melalui berbagai teknologi. Kinerja jaringan komputer dapat

bervariasi karena beberapa masalah, seperti masalah bandwidth, latensi dan jitter,

yang dapat membuat efek besar untuk banyak aplikasi. Fitur Quality of Service

(QoS) dapat membuat bandwidth, latensi dan jitter diprediksi dan disesuaikan

dengan kebutuhan aplikasi dalam jaringan yang ada.

7
8

Pada penelitian terdahulu yang dilakukan oleh (Wicaksono, Widasari and

Utaminingrum, 2017) dengan judul “Implementasi Sistem Kontrol dan

Monitoring pH pada Tanaman Kentang Aeroponik secara Wireless”. Pada

penelitian ini dirancang bangun sebuah alat untuk mengontrol sekaligus

memonitoring pH pada tanaman kentang yang dilakukan dengan wireless. Pada

sistem ini menggunakan beberapa komponen utama yaitu Arduino Uno, Modul

Nrf24L01, Sensor pH. Kemudian bagian komunikasi data pada sistem ini

dirancang oleh 3 algoritma yaitu algoritma fungsi broadcast, algoritma fungsi

request data response, algoritma fungsi interrupt dan interrupt response.

Algoritma fungsi broadcast digunakan node koordinator agar mengetahui bahwa

node sensor telah aktif. Algoritma fungsi request data dan response digunakan

oleh node koordinator untuk mengirimkan data ke node sensor lalu node sensor

merespon perintah dari node koordinator. Algoritma fungsi interrupt dan

interrupt response digunakan node koordinator melakukan perintah interrupt pada

node aktuator. Pengujian pengiriman data dengan komunikasi wireless pada

penelitian ini yaitu untuk melihat akurasi pengiriman data pada setiap node sensor

dengan 10 kali per jam. Hasil nya dalam 10 kali percobaan komunikasi wireless

mengalami Request Time Out (RTO) sebanyak 5 data dan keakuratan pengiriman

data sebesar 99,93%.

Pada penelitian terdahulu yang dilakukan oleh (Arrosyid and Sunarno,

2009) dengan judul “Implementasi Wireless Sensor Network Untuk Monitoring

Parameter Energi Listrik Sebagai Peningkatan Layanan Bagi Penyedia Energi

Listrik”. Pada penelitian ini membahas tentang pengimplementasian komunikasi


9

wireless yang digunakan memonitoring parameter energi listrik kepada pelanggan

di daerah pedesaan. Penelitian membuat sebuah alat yang pengukur tegangan dan

arus dengan menggunakan sensor arus dan tegangan. Hasil pembacaan tersebut

dikirim melalui jaringan nirkabel/komunikasi wireless ke gateway dengan modul

X-Beee Pro. Kemudian dari gateway dikoneksikan dengan jaringan GPRS ke web

server. Setelah itu disampan pada database lalu dikirim kan ke setiap handphone

pelanggan melalui koneksi GPRS. Hasil penelitian yaitu pengiriman data yang

berasal dari pembacaan sensor tegangan dan sensor arus berhasil dengan baik

tanpa adanya gangguan sehingga pelanggan dapat memonitoring arus dan

tegangan melalui handphone masing-masing.

Pada penelitian terdahulu yang dilakukan oleh (Rochim et al., 2014) dengan

judul “Perancangan Jaringan Sensor Nirkabel (Jsn) Untuk Memantau Suhu Dan

Kelembaban Menggunakan Nrf24l01+”. Pada penelitian ini merancang sebuah

alat monitoring suhu dan kelembaban dengan jaringan sensor nirkabel

menggunakan modul Nrf24l01, dimana pemantauannya dapat lihat di web server.

Sensor DHT 11 yang berfungsi untuk membaca suhu dan kelembaban pada

ruangan akan ditempatkan pada beberapa titik, dimana setiap titik itu juga terdapat

node sensor yaitu modul Nrf24L01 untuk komunikasi ke node sensor utama.

Kemudian pemantauan tersebut dapat di lihat pada web server. Pengujian jarak

terjauh komunikasi node sensor pada setiap cabang ke node sensor utama

dilakukan dengan mengambil sample jarak 93 meter dan 94 meter. Hasilnya 2

data dari 10 data yang akan dikirim pada jarak 93 meter gagal terkirim, kemudian

3 data dari 10 data yang akan dikirim pada jarak 94 meter gagal terkirim.
10

Pada penelitian terdahulu yang dilakukan oleh (Asri et al., 2018) dengan

judul “Analisis Performa Jaringan Sensor Nirkabel Berdasarkan Penentuan Lokasi

Node Yang Telah Diimplementasikan Dengan Algoritma Genetika”. Pada

penelitian ini membahas Faktor penentu keberhasilan komunikasi dalam wireless

sensor network atau jaringan sensor nirkabel adalah konektivitas dari node sensor

dalam jaringannya. Konektivitas dari node sensor tergantung pada posisi node

sensor tersebut, sehingga dalam perancangan wireless sensor network perlu

memperhatikan peletakan node sensor agar dapat meningkatkan kinerja jaringan

sensor. Algoritma Genetika merupakan sutu metode yang memiliki sifat yang

lentur sehingga dapat digunakan untuk menentukan posisi node. Terdapat

penelitian dengan menggunakan algoritma genetika untuk menentukan posisi

terbaik yang belum melakukan implementasi. Oleh sebab itu dilakukan

implementasi dan analisis pada performa jaringan sensor nirkabel yang peletakan

nodenya telah diimplementasikan dengan algoritma genetika. Analisis dilakukan

dengan menganalisa nilai quality of service (delay, jitter, throughput) dari

komunikasi antar node-node sampai ke komputer pengguna, serta dengan

menganalisa hasil uji dari coverage area sensor api 5 channel. Dan untuk

membuat sistem sebelumnya menjadi dinamis, dilakukan penambahan fitur. Hasil

dari analisis tersebut menunjukkan nilai dari quality of service delay sebesar 7,66

s. Nilai dari jitter adalah 1,01 dan nilai dari throughput sebesar 77,01. Analisis

dari hasil uji sensor api 5 channel adalah sensor tersebut dapat meng-cover dengan

jarak lebih dari 100 cm dengan volume api sedang atau besar. Hasil uji dari sistem

agar dapat lebih dinamis memiliki keberhasilan 100%, yaitu dengan


11

menambahkan fitur bagian masukan jari-jari dari sensor dan luas ruangan sesuai

dengan kebutuhan pengguna.

Berdasarkan beberapa penjelasan mengenai penelitian terdahulu diatas maka

pada Tabel 2.1 dibawah ini dimuat perbandingan yang akan menjadi bahan

pengembangan penelitian yang saya lakukan.

Tabel 2.1 Penelitian terdahulu

Metode
No Nama Peneliti Judul Penelitian Hasil Penelitian
Penelitian

1. Wulandari, Analisis Qos ( Metode yang Pengujian pada

2016 Quality Of digunakan penelitian ini

Service ) Pada pada penilitian menggunakan

Jaringan Internet ( ini adalah beberapa

Studi Kasus : Upt Quality of parameter pada

Loka Uji Teknik Service quality of service

Penambangan yaitu

Jampang Kulon – throughput,pack

Lipi ) et

loss,delay,jitter

2. Andrika Implementasi Penelitian ini


Hasil nya dalam
Wahyu Sistem Kontrol menggunakan
10 kali
Wicaksono(20 dan Monitoring algoritma
percobaan
17) pH pada Tanaman fungsi
komunikasi
12

Kentang broadcast,
wireless
Aeroponik secara algoritma
mengalami
Wireless fungsi request
Request Time
data response,
Out (RTO)
algoritma
sebanyak 5 data
fungsi
dan keakuratan
interrupt dan
pengiriman data
interrupt
sebesar 99,93%.
response

3 Arrosyid and Implementasi Penelitian ini Hasilnya

Sunarno (2009) Wireless Sensor menggunakan komunikasi

Network Untuk komunikasi wireless

Monitoring wireless ke menggunakan

Parameter Energi gateway modul X-Bee

Listrik Sebagai menggunakan Pro tidak

Peningkatan modul X-Bee mengalami

Layanan Bagi Pro, kemudian masalah dalam

Penyedia Energi dikirimkan mengirim data ke

Listrik menuju ke gateway

handphone Sehingga data

pelanggan. yang tersebut

dapat diterima

pada handphone
13

pelanggan.

4 Rochim (2014) Perancangan penelitian ini Pengujian jarak

Jaringan Sensor merancang terjauh

Nirkabel (Jsn) sebuah alat komunikasi node

Untuk Memantau monitoring sensor pada

Suhu Dan suhu dan setiap cabang ke

Kelembaban kelembaban node sensor

Menggunakan dengan utama dilakukan

Nrf24l01+ jaringan dengan

sensor mengambil

nirkabel sample jarak 93

menggunakan meter dan 94

modul meter. Hasilnya

Nrf24l01, 2 data dari 10

dimana data yang akan

pemantauanny dikirim pada

a dapat lihat di jarak 93 meter

web server gagal terkirim,

kemudian 3 data

dari 10 data yang

akan dikirim

pada jarak 94

meter gagal
14

terkirim.

5 (Asri et al., Analisis Performa Metode yang


Dari analisis
2018) Jaringan Sensor digunakan
tersebut
Nirkabel pada paper
menunjukkan
Berdasarkan adalah metode
nilai dari quality
Penentuan Lokasi algoritma
of service delay
Node Yang Telah genetika.
sebesar 7,66 s.
Diimplementasika
Nilai dari jitter
n Dengan
adalah 1,01 dan
Algoritma
nilai dari
Genetika
throughput

sebesar 77,01.

Analisis dari

hasil uji sensor

api 5 channel

adalah sensor

tersebut dapat

meng-cover

dengan jarak

lebih dari 100

cm dengan

volume api

sedang atau
15

besar.

Dari penelitian dan Tabel 2.1 mengenai perbandingan penelitian terdahulu


diatas salah satu akan di implementasi ke dalam penelitian ini. Sehingga
komunikasi wireless antara sarung tangan dan kursi roda dapat ketahui quality of
service seperti delay, throughput, packet loss, jitter.
16

2.2 Kerangka Teori

2.2.1 Jaringan Sensor Nirkabel (JSN)

Secara umum Jaringan Sensor Network yang terdiri dari sejumlah node

sensor dan sebuah node coordinator. Seluruh informasi dikirimkan ke node

coordinator dari node sensor secara langsung melalui node-node lain sebagai

pengulangan di dalam satu jaringan. Node sensor merupakan bagian yang

terpenting pada JSN, karena dari node sensor inilah informasi data sensor akan

dikumpulkan, kemudian dikonversi ke dalam informasi digital.(Rochim et al.,

2014)

Sebuah JSN dapat terdiri dari 2 buah node, yaitu node client dan node

server. Setiap node mampu mengirimkan data ke node lainnya secara single-hop

atau sekali pengiriman. Selain itu node server dan node client terhubung dengan

PC dan keduanya berfungsi sebagai sensing device atau node sensor. Pada

penelitian yang lain digunakan empat node, yang saling terhubung dengan

koneksi multi-hop nirkabel. Masing-masing node dapat melakukan pengukuran

suhu dengan data yang dapat dikirimkan ke PC yang terhubung dengan node

master. Sementara data pengukuran suhu yang didapat dari node-node slave,

harus dikirimkan ke node master untuk kemudian ditampilkan di PC. Dalam hal

ini, pengiriman dilakukan satu kali (single hop) pada node slave1, dan dilakukan

dua kali (multi hop) pada node slave2 dan node slave3.(Ardiyanto and Sumiharto,

2012)
17

Gambar 2.1 Struktur Jaringan Sensor Nirkabel

2.2.2 Error detection

Error detection terjadi pada proses transmisi sebuah data yang proses
transmisinya tidak berjalan dengan semestinya. Error detection merupak proses
pendeteksina kesalahan yang dilakukan ketika data pada proses transmisi.
Kesalahan yang dimaksud disini adalah terjadi perubahan 1 bit atau lebih dari
satu bit yang seharusnya tidak terjadi.

Gambar 2.2 Proses Error detection


18

2.2.3 Cyclic Redudancy Check (CRC)

CRC merupakan teknik untuk mendeteksi kesalahan-kesalahan di dalam

data digital, tetapi tidak bisa memperbaiki kesalahan apabila terdeteksi. Teknik ini

digunakan di dalam proses pengiriman data. Pada saat pengiriman data, terkadang

data yang yang diterima oleh penerima tidak sesuai dengan data yang dikirimkan.

Kondisi ini terjadi karena adanya kerusakan data pada saat proses pengiriman

data, disebabkan adanya gangguan yang biasanya terjadi pada media komunikasi.

Dengan adanya kerusakan data yang mungkin terjadi, maka untuk mendeteksi

kerusakan data tersebut digunakan suatu cara untuk menghitung suatu nilai

terhadap data tersebut. Salah satu cara yang digunakan adalah CRC (Cyclic

Redundancy Check) yang mempunyai beberapa varian bergantung pada bilangan

polynomial yang digunakan dalam proses komputasinya.

2.2.4 Prinsip Kerja Cyclic Redudancy Check (CRC)

Pada intinya prinsip kerja CRC adalah, kita menganggap suatu file yang

kita proses sebagai suatu string yang besar, yang terdiri dari bit-bit. Dan kita

operasikan suatu bilangan polynomial yang sangat besar. Untuk menghitung nilai

CRC, kita membagi bilangan polynomial sebagai representasi dari file, dengan

suatu bilangan polynomial kecil yang sudah terdefinisi untuk jenis varian CRC

tertentu. Nilai CRC adalah sisa hasil bagi tersebut yang biasa disebut dengan

checksum. Setiap pembagian pasti menghasilkan suatu sisa hasil bagi (meskipun

bernilai 0), tetapi ada perbedaan dalam melakukan pembagian pada perhitungan

CRC. Secara umum (prinsip aljabar biasa), pembagian dapat kita lakukan dengan

mengurangi suatu bilangan dengan pembaginya secara terus-menerus sampai


19

menghasilkan suatu sisa hasil bagi (yang lebih kecil dari bilangan pembagi). Dari

nilai hasil bagi, sisa hasil bagi dan bilangan pembagi kita bias mendapat bilangan

yang dibagi dengan mengalikan bilangan pembagi dengan hasil bagi dan

menambahkan dengan sisa hasil bagi. Dalam perhitungan CRC, operasi

pengurangan dan penjumlahan dilakukan dengan mengabaikan setiap carry yang

didapat. Tentu saja hal ini juga akan berpengaruh pada proses pembagian yang

menjadi dasar utama dalam melakukan perhitungan CRC. Operasi dalam CRC

juga hanya melibatkan nilai 0 dan 1, karena secara umum kita beroperasi dalam

level bit.

2.2.5 Perhitungan Cyclic Redudancy Check (CRC)

Untuk melakukan perhitungan CRC terhadap suatu data, maka yang

pertama diperlukan adalah suatu bilangan polinom yang akan menjadi pembagi

dari data yang akan diolah yang disebut divisor. Dan kita juga menghitung lebar

suatu divisor, yang merupakan posisi bit tertinggi. Misalkan kita sebut lebar

divisor adalah appended, maka jika kita mempunyai divisor 1001, maka

appended tersebut adalah 3. Bit tertinggi ini harus kita pastikan bernilai 1. Dengan

mengetahui appended secara tepat sangat penting, karena berpengaruh pada jenis

CRC yang dapat digunakan (CRC 16, CRC 32, dan lain-lain).

Data yang diolah mungkin saja hanya beberapa bit saja, lebih kecil dari

nilai poly yang akan digunakan. Hal ini akan menyebabkan kita tidak mengolah

semua nilai poly yang telah ditentukan. Untuk mengatasi hal ersebut, dalam

perhitungan dasar secara aljabar, kita menambahkan suatu string bit sepanjang W
20

pada data yang akan kita olah. Tujuannya untuk menjamin keseluruhan data dapat

kita olah dengan benar.

Sebagai contoh misalkan mempunyai divisor yaitu 10011. Maka

mempunyai panjang bit pada appended adalah 4 dengan nilai 0000. Lalu

mempunyai sebuah code word yang ditambah dengan appended adalah

101101000 + 0000. Hasil perhitungan sebagai berikut.

Gambar 2.3 Contoh Perhitungan CRC


Nilai remainder inilah yang menjadi nilai CRC. Pada proses pembagian di

atas, kita mendapat hal penting yang perlu diperhatikan dalam perhitungan secara
21

aljabar ini adalah kita tidak perlu melakukan operasi XOR ketika bit tertinggi

bernilai 0, tapi kita hanya melakukan pergeseran (shift) sampai didapat bit

tertinggi yang bernilai 1. Hal ini akan sedikit mempermudah dan mempercepat

operasi aljabar. Secara notosi dapat ditulis sebagai berikut.

a ( x ) . xN =b ( x ) . p ( x ) +r ( x) (1)

Dengan Keterangan:

a (x) = Bilangan polynomial yang mempresentasikan data.

b (x) = Nilai 0 sebanyak appended.

p (x) = Divisor.

r (x) = Sisa Hasil Bagi, nilai CRC.

Karena nilai CRC adalah sisa hasil bagi , maka untuk mengidentifikasi

integritas sebuah data dapat dilakukan dengan beberapa cara, diantaranya:

a. Menghitung nilai CRC dari data asli, lalu kita cocokan degan nilai CRC

yang disimpan (di append dengan data). Data yang didapatkan karena nilai CRC

sepanjang N-1.

b. Data yang asli kita tambah dengan nilai CRC, lalu kita bagi dengan

divisor. Maka sisa hasul bagi adalah 0 jika data benar.

2.2.6 Quality Of Service (QoS)

Quality of Service (QoS) merupakan metode pengukuran tentang seberapa

baik jaringan dan merupakan suatu usaha untuk mendefinisikan karakteristik dan

sifat dari satu servis. QoS digunakan untuk mengukur sekumpulan atribut kinerja

yang telah dispesifikasikan dan diasosiasikan dengan suatu servis (Wulandari,


22

2016). Model Monitoring QoS terdiri dari komponen monitoring application, QoS

monitoring, monitor, dan monitored objects.

1) Monitoring

Application Merupakan sebuah antarmuka bagi administrator jaringan.

Komponen ini berfungsi mengambil informasi lalu lintas paket data dari monitor,

menganalisanya dan mengirimkan hasil analisis kepada pengguna. Berdasarkan

hasil analisis tersebut, seorang administrator jaringan dapat melakukan operasi-

operasi yang lain.

2) QoS Monitoring

Menyediakan mekanisme monitoring QoS dengan mengambil informasi

nilai-nilai parameter QoS dari lalu lintas paket data.

3) Monitor Application

Mengumpulkan dan merekam informasi lalu lintas paket data yang

selanjutnya akan dikirimkan kepada monitoring application. Monitor melakukan

pengukuran aliran paket data secara waktu nyata dan melaporkan hasilnya kepada

monitoring application.

2.2.7 Parameter Quality Of Service

Parameter quality of service sebagai berikut.


1) Delay
Delay merupakan lamanya waktu atau keterlambatan didalam proses

transmisi paket data ke penerima. Factor yang mempengaruhi delay transmisi


23

adalah jumlah paket data yang dikirim (bit) dan laju kecepatan pengiriman paket

data untuk setiap detik. Parameter untuk delay dapat dilihat pada Tabel 2.2.

Tabel 2.2 Parameter Delay

Kategori Delay Besar Delay (ms) Indeks

Sangat Bagus <150 ms 4

Bagus 150 ms s/d 300 ms 3

Sedang 300 ms s/d 450 ms 2

Jelek >450 ms 1

Persamaan dari delay adalah sebagai berikut:

Delay=Data Diterima ( ms )−Data Dikirim ( ms ) (2)

2) Jitter
Jitter merupakan variasi delay antar paket yang terjadi pada jaringan

Internet Protocol (IP). Semakin besar beban trafik yang ada pada jaringan, maka

peluang terjadinya tumbukan antar paket/perlambatan (congestion) semakin besar,

dengan demikian nilai jitter akan semakin besar. Semakin besar nilai jitter maka

nilai QoS akan semakin turun dan apabila semakin kecil nilai jitter maka nilai

QoS akan semakin baik. Besarnya nilai jitter dapat diperoleh dari selisih waktu

tempuh suatu paket dengan paket sebelumnya dari sumber ke tujuan pengiriman

dapat dilihat pada Tabel 2.3.

Tabel 2.3 Parameter Jitter

Kategori Jitter Besar Jitter (ms) Indeks

Sangat Bagus 0 ms 4
24

Bagus 0 ms s/d 75 ms 3

Sedang 75 ms s/d 125 ms 2

Jelek 125 ms s/d 225 ms 1

Persamaan jitter adalah sebaagai berikut:

Total variasi Delay


Jitter= (3)
Total Paket yang diterima−1

Delay variasi=delay akhir−delay sebelumnya (4)

3) Throughput

Throughput menunjukkan kecepatan rata-rata yang diterima dalam selang

waktu pengamatan tertentu, throughput disebut juga sebagai bandwidth yang

sebenarnya. Pengukuran throughput dilakukan dalam satuan bits per second (bps)

dengan parameter yang dapat dilihat pada Tabel 2.4.

Tabel 2.4 Parameter Throughput

Kategori Througput Besar Througput (bps) Indeks

Sangat Bagus >100 4

Bagus 75 3

Sedang 50 2

Jelek <25 ms 1

Persamaan throughput adalah

total data yang diterima(bits)


Throughput=
Waktu diterima ( second )−waktu dikirim( second )

(5)

4) Packet Loss
25

Packet Loss merupakan suatu parameter yang menggambarkan suatu

kondisi yang menunjukkan jumlah total paket yang hilang dapat terjadi karena

collision dan congestion pada jaringan dapat dilihat pada Tabel 2.5.

Tabel 2.5 Parameter Packet loss (%)

Kategori Packet Loss Besar Packet Loss (%) Indeks

Sangat Bagus 0 4

Bagus 3 3

Sedang 15 2

Jelek >25 1

Persamaan packet loss sebagai berikut.

( paket data dikirim−paket data diterima ) x 100 %


Packet loss=
paket data dikirim

(6)

2.2.8 Modul Nrf24L01

Modul NRF24L01 merupakan modul transceiver frekuensi radio yang dapat

berfungsi sebgai transmitter ataupun reciever. Tra nsmitter terdiri dari sumber

data, sinyal coder, pemancar, dan antena, dan untuk reciever terdiri dari antena,
26

penerima sinyal encoder dan data interface.(Nugroho, Sumaryo and Pangaribuan,

2018)

Modul Nrf24L01 mengintegrasikan pengirim lengkap 2,4 Ghz RF, RF

pengumpul dan akselerator protocol berupa enhance shockburst yang mendukung

antarmuka SPO kecepatan tinggi untuk kontroler aplikasi. Modul Nrf 24L01

memiliki 8 buah PIN yaitu VCC (3,3 Volt), GND, CE, CSN, MOSI, MISO, SCK,

dan IRQ.(Nordic Semiconductor, 2008)

Gambar 2.4 Modul Nrf24L01

(Sumber: https://elektrokit.com )

2.2.9 Arduino Uno R3

Arduino Uno R3 adalah papan pengembangan mikrokontroler yang berbasis

chip ATmega328P. Dalam kemasan Arduino sudah disediakan berbagai port yang

dapat digunakan secara langsung melalui pin header female yang sudah ada pada

papan tersebut. Arduino Uno R3 merupakan penamaan yang menandakan bahwa

papan mikrokontroler sudah dilakukan pengembangan atau sudah direvisi

sebanyak 3 kali. Peneliti menggunakan papan mikrokontroler ini karena tingkat

kompatibilitas yang dimiliki dari Arduino Uno R3 cukup banyak dan port serta
27

fitur yang dibutuhkan telah mencukupi dalam pembuatan prototype ini.

Spesifikasi dari Arduino Uno R3 dapat dilihat pada Tabel 2.2.

Tabel 2.6 Spesifikasi Arduino R3

Spesifikasi Keterangan

Mikrokontroler ATmega328P

Tegangan Kerja 5 Volt

Tegangan Masukan 7 – 12 Volt

Pin I/O Digital 14

Pin Analog 6

Arus DC setiap pin I/O 20 mA

Arus DC saat 3,3 V 50 mA

Memori Flash 32 Kb

SRAM 2 Kb

EEPROM 1 Kb

Clock Speed 16 MHz

LED Built In 13

Panjang 68,6 mm

Lebar 53,4 mm

Berat 25 g

Arduino Uno memiliki 14 pin yang dapat dijadikan input maupun output,

dimana 6 diantaranya dapat digunakan sebagai output pulse width modulation,

selain itu terdapat juga 6 pin analog input, crystal oscillator 16 MHz, socket jack
28

power, kepala ISP, tombol reset dan koneksi USB(Arduino, no date). Pada

pemrograman Arduino Uno R3 ini dapat langsung menggunakan kabel USB yang

dihubungkan antara Arduino Uno dengan PC. Bentuk dari Arduino R3 dapat

dilihat pada Gambar 2.3

Gambar 2.5 Arduino Uno R3

2.2.10 Sensor Flex

Sensor flex adalah sensor yang memiliki perubahan resistansi akibat adanya

perubahan lekukan pada bagian sensor, untuk mendeteksi suatu kelengkungan.

Prinsip kerjanya sama seperti potensiometer. Sensor ini memiliki output berupa

resistansi. Dua pin kaki tersebut, jika salah satu pin diberikan tegangan sebesar +5

V maka pin yang lainnya sebagai output serta tegangan 0 Volt.(Sparkfun

dataseheet, 2014) Prinsip kerja sensor flex ini mirip dengan variabel resistor.

Sensor flex memberikan resistansi kepada mikrokontroler melalui rangkaian

pembagi tegangan. Output resistansi ini akan diberikan tegangan yang nantinya

akan dibaca oleh mikrokontroler.


29

Gambar 2.6 Sensor Flex

2.2.11 Motor DC

Motor DC (Direct Current) adalah peralatan elektromekanik dasar yang

berfungsi untuk mengubah tenaga listrik menjadi tenaga mekanik. Dengan

memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar

pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran

motor akan terbalik pula. Polaritas dari tegangan yang diberikan pada dua

terminal menentukan arah putaran motor sedangkan besar dari beda tegangan

pada kedua terminal menentukan kecepatan motor.

Gambar 2.7 Motor DC PG45


BAB 3

METODOLOGI PENELITIAN

3.1 Bahan Penelitian

Bahan-bahan yang dibutuhkan pada penelitian ini adalah sebagai berikut:

1. Arduino Uno R3 digunakan sebagai sarana menerima masukan dari sensor

flex yang berupa pembacaan nilai ADC dan untuk mengolah data yang akan

dikirim oleh modul Nrf24l01 dan diterima dari Nrf24l01

2. Sensor Flex berfungsi sebagai kontroler dengan memberikan kode-kode jari

untuk menggerakan kursi roda.

3. Modul Nrf24L01 transceiver berfungsi sebagai penghubung komunikasi

antara sarung tangan dan kursi roda melalui sinyal radio frekuensi.

4. Arduino IDE digunakan untuk memrogram

5. Motor DC PG45 berfungsi untuk menggerakan kursi roda

3.2 Alat Penelitian

Penelitian ini memerlukan beberapa peralatan yang dibutuhkan antara lain:

1. Laptop/PC digunakan untuk merancang dan mensimulasikan program

2. Kabel jumper digunakan untuk menghubungkan pin-pin pada Arduino

dengan sensor sensor Flex.

3. Sarung tangan digunakan untuk pengontrol gerakan kursi roda melalui

kode-kode jari.

4. Kursi roda digunakan sebagai alat yang akan dikontrol atau digerakan.

30
31

5. Perkakas elektronik digunakan untuk memasang komponen elektronik pada

alat yang akan dibuat, perkakas tersebut diantaranya adalah solder, tenol,

atraktor, obeng dan lain-lain.

3.3 Perancangan Sistem

Dalam tahap ini, penulis akan melakukan perancangan sistem yang akan

dibuat. Dalam merancang sistem ini, peneliti merancang sistem dengan dua tahap

perancangan yaitu perancangan perangkat keras dan perancangan perangkat lunak

untuk menghasilkan sistem yang sesuai, perancangan sistem dilakukan dengan

mengacu pada teori–teori dan penelitian sebelumnya.

3.3.1 Perancangan Perangkat Keras

Perancangan perangkat keras sistem agar dapat melakukan kontroling dan

dapat berkomunikasi dengan baik. Setalah itu keluaran dari sensor flex yang

berupa analog akan dikonversikan ke digital dengan Analog to Digital Converter

(ADC) melalui mikrokontroler yang peneliti gunakan. Pada penelitian ini peneliti

menggunakan mikrokontroler ATmega328P yang dikemas dalam bentuk board

mikrokontroler yaitu Arduino Uno R3. Alasannya karena terdapat salah fitur

yang dapat mengkonversi nilai analog ke nilai digital yaitu Analog to Digital

Converter (ADC). Setelah nilai keluaran dari sensor flex dikonversikan oleh

Arduino Uno R3, kemudian data tersebut dikirim kan oleh modul Nrf24L01

(transmitter) yang berfungsi untuk komunikasi secara serial pheripheral interface

(SPI). Data tersebut diterima oleh modul Nrf24L01 (Receiver) kemudian

dikirimkan ke Arduino Uno p ada kursi roda untuk diproses lalu akan
32

menimbulkan pergerakan pada motor DC PG45. Diagram blok pada perancangan

alat ditunjukan Gambar 3.1

Gambar 3.8 Diagram Blok Perancangan Perangkat Keras

Proses pertama yaitu melakukan kode jari dengan cara melekukan jari yang

nantinya akan di deteksi dengan menggunakan sensor Flex, hasil pembacaan

sensor flex akan dikonversi dan diproses oleh Arduino Uno R3 yang telah

tersambung dengan sumber tegangan, Data hasil prosesnya akan dikirim kan oleh

modul Nrf24L01(Transmitter). Rancangan perangkat keras sarung tangan akan

tampak pada Gambar 3.2.

Gambar 3.9 Desain Alat Sarung Tangan


33

Setelah itu data akan diterima oleh modul Nrf24L01 (receiver) lalu

dikirimkan ke Arduino Uno R3 akan diproses, kemudian data tersebut akan

dikirimkan ke Motor DCPG45 sehingga Motor DC PG45 dapat berputar sesuai

kode yang diberikan. Rangcangan perangkat keras kursi roda akan tampak pada

gambar 3.3.

Gambar 3.10 Desain Alat Kursi Roda

3.3.2 Perancangan Perangkat Lunak

Setelah perancangan perangkat keras selesai kemudian langkah selanjutnya

yaitu dengan merancang perangkat lunak (software). Pada pembuatan program

yang akan diunduh kedalam board Arduino Uno, peneliti menggunakan software

Arduino IDE. Aplikasi ini berguna untuk membuat, membuka, dan mengedit

source code Arduino (Santoso, 2015). Bahasa yang digunakan dalam

pemrograman Arduino IDE ini adalah Bahasa C. Berikut ini adalah diagram alir

dari sistem alat sarung tangan pengendali kursi roda (Sarpin) dan diagram alir

Metode Error detection dan CRC.


34

3.3.2.1 Diagram alir sistem pada hardware

Gambar 3.11 Diagram Alir Sistem Sarung Tangan

Kerangka berpikir yang dibagun peneliti yang pertama seperti pada gambar

3.3 yaitu ketika sistem ON maka pertama kali tangan akan melekukan jari-jarinya

sesuai kode-kode perintah yang sebelumnya diatur, lalu sistem akan mencocokan

lekukan-lekukan tersebut apakah cocok dengan kode-kode yang sudah diatur pada

program.jika tidak, sistem tidak merespon dan terjadi perobaan ulang pada

lekukan jari tangan. Jika sesuai, data yang berasal dari sistem akan dikirimkan
35

oleh modul Nrf24l01. Apabila kursi roda dapat merespon tandanya data dari

sistem sudah terkirim. Jika tidak, maka kembali ke percobaan penginputan kode-

kode perintah melalui jari.

Gambar 3.12 Diagram Alir Sistem Kursi Roda

Kerangka berpikir kedua yang dibangun oleh peneliti pada kursi roda dapat

terlihat pada Gambar 3.5 yaitu ketika sistem pada kursi roda ON, kursi roda masih

pada posisi diam. Lalu mengecek apakah kursi roda sudah terkoneksi dengan

sarung tangan, jika tidak maka akan kursi roda tetap diam. Jika iya, sistem akan

merespon apakah ada perintah yang masuk ke sistem. Setelah itu kursi roda akan

bergerak sesuai dengan perintah yang masuk kedalam sistem.


36

3.3.2.2 Diagram alir error detection dan CRC

Gambar 3.13 Diagram alir CRC bagian Transmitter


Kerangka berpikir yang dibangun peneliti pada bagian proses implementasi

metode error detection dan algoritma CRC yang terdapat pada gambar 3.6 yaitu

ketika sistem mendapat kan input dari data flex sensor, data tersebut akan di

konversika ke dalam bentuk binary. Setelah itu proses perhitungan matematika

algoritma Cyclic Redudancy Check (CRC). Ketika mendapatkan hasil CRC,akan

terjadi penjumlahan antara data flex sensor dan nilai CRC. Lalu nilai tersebut

dikonversikan lagi ke dalam bentuk decimal. Alasan peneliti memutuskan untuk

mengkonversikan ke dalam bentuk decimal karena untuk meminimalisir besarnya

packet loss yang terjadi. Jika packet yang dikirimkan dalam bentuk binary, data
37

yang dikirimkan binary digit (bit) per binary digit (bit). Hal ini dapat

meningkatkan persentase packet loss yang tinggi.

Gambar 3.14 Diagram Alir CRC bagian Receiver


Kerangka pikir yang dibangun oleh penulis pada gambar 3.7 adalah ketika

sistem menerima packet yang berasal dari transmitter, terjadi pengecekan

terhadap packet yang diterima. Pengecekan ini memastikan bahwa data yang

diterima bukanlah bernilai 0, jika data yang diterima bukan 0 maka akan masuk

tahap berikutnya. Sebaliknya jika data yang diterima adalah 0 maka sistem akan

langsung memastikan data tersebut tergolong data error. Setelah dipastikan data

tersebut bukanlah 0, akan terjadi konversi ke dalam bentuk binary. Kemudian data

binary tersebut akan menjalani proses perhitungan CRC. Setelah Perhitungan

CRC selesai, sistem akan menghasil sebuah data hasil bagi dari perhitungan CRC
38

yang disebut remainder. Sistem akan mengidentifikasi lagi untuk memastikan

data yang diterima tidak mengalami error. Jika remainder bernilai 0 maka data

tersebut teridentifikasi data correct, namun sebaliknya jika nilai remainder

bernilai bukan 0 maka nilai yang diterima error. Perbedaan proses identifikasi

error pada bagian decision 1 dan decision 2 adalah nilai error pada decision 1

dapat dipastikan terjadi packet loss artinya pada saat sistem menerima packet

sudah berupa nilai 0, sedangkan nilai error pada decision 2 merupakan nilai yang

memang sudah melalui proses perhitungan CRC.

3.4 Pengujian Sistem

Setelah alat berhasil dibuat, maka alat tersebut akan diuji coba terlebih

dahulu. Pengujian sistem ini dilakukan untuk memastikan bahwa sistem yang

telah dibuat sesuai dengan apa yang diharapkan oleh peneliti. Tahapan pengujian

sistem dimulai dalam beberapa tahap sebagai berikut.

3.4.1 Pengujian Perangkat Keras

Pengujian perangkat keras sistem ini awalnya dilakukan dengan melakukan

pengecekan terhadap koneksi antara Arduino Uno dengan sensor flex, modul

Nrf24L01 (transceiver) serta berbagai perangkat lainnya agar dapat dipastikan

koneksi yang ada pada sistem ini sudah terpasang dengan baik. Kemudian

dilakukan juga pengujian terhadap kemasan dalam alat ini, seperti memastikan

sekrup, mur serta baut yang digunakan dalam alat ini sudah terpasang dengan kuat

dan tidak longgar sehingga nantinya saat pengambilan data alat ini sesuai yang

diinginkan.
39

3.4.1.1 Pengujian Komunikasi Modul Nrf24L01

Pada tahap ini Modul Nrf24L01 yang sudah terkoneksi dengan board

arduimo akan dilakukan pengujian seberapa jauh jarak modul tersebut dapat

berkomunikasi dengan baik, lalu melakukan pengujian dengan quality of service

(QoS) pada modul tersebut agakr mengetahui delay,jitter, throughput dan packet

loss dalam proses komunikasi nirkabel pada transceiver modul Nrf24L01

3.4.1.2 Pengujian Sensor Flex

Pada tahap ini sensor flex yang sudah terintegrasi dengan board arduino

akan dilakukan pengujian fleksibilitas dan kepekaan sensor flex terhadap lekukan

jari-jari. Indikasi sensor flex dapat membaca dengan baik yaitu dengan berkurang

nya nilai adc ketika jari-jari menekuk.

3.4.1.3 Pengujian Motor DC PG45

Pada tahap ini motor dc pg45 yang sudah terintegrasi ke board arduino akan

dilakukan pengujia pergerakan motor dc pg 45. Indikasi motor dc pg45 dapat

berfungsi dengan baik yaitu apabila motor dapat bergerak atau berputar selaras

dengan sarung tangan pintar memberi perintah.


40

3.4.2 Pengujian Perangkat Lunak

Pada pengujian tahap kedua ini merupakan pengujian yang berkaitan dengan

program yang sudah dibuat apakah berjalan dengan baik dan sesuai dengan apa

yang diharapkan, pengujian pada perangkat lunak ini terbagi menjadi beberapa

tahap sebagai berikut.

3.4.2.1 Pengujian Program

Pada tahap ini program yang sudah dituliskan didalam software Arduino

IDE akan dilakukan pengujian apakah program yang sudah dibuat ini sudah benar

dan tidak terdapat error yang dapat mengganggu kinerja dari sistem.
41

BAB 4
HASIL DAN PERMBAHASAN

4.1 Pengujian Sistem

Pada bagian pengujian sistem ini dilaksanakan dengan tujuan untuk

mengetahui hasil dari perancangan yang telah dibuat pada bab sebelumnya.

Pengujian sistem ini dilaksanakan dengan melakukan pengujian pada perangkat

keras dan pengujian perangkat lunak agar mendapat dara yang diharapkan saat

dilakukan pengujian secara keseluruhan.

4.1.1 Pengujian Perangkat Keras

Setelah melakukan proses perancangan perangkat keras sistem komunikasi

nirkabel berbasis modul nrf24l01 pada alat sarung tangan pintar pengendali kursi

roda, didapatkan hasil berupa alat berserta pendukung lainnya yang siap

digunakan. Perangkat keras ini dibagi menjadi dua bagian yaitu Bagian sarung

tangan dan kursi roda.

A. Sarung Tangan

Setelah melaksanakan proses perancangan perangkat keras, menghasilkan

hardware sarung tangan pada alat sistem komunikasi nirkabel berbasis modul

nrf24l01 pada alat sarung tangan pintar pengendali kursi roda dapat dilihat pada

Gambar 4.1.
42

Gambar 4. 1 Sarung Tangan


Perangkat keras sarung tangan dari alat sistem komunikasi nirkabel berbasis

modul nrf24l01 pada alat sarung tangan pintar pengendali kursi roda terdiri dari

Arduino nano, Sensor Flex dan Modul Nrf24l01 yang telah dirangkai seperti

gambar 4.2.

Gambar 4. 2 Rangkaian Perangkat keras pada sarung tangan


43

Pada gambar 4.1 dan 4.2 adalah gambar perangkat keras dan skematik dari

dari sarung tangan yang berisikan komponen-komponen pendukung seperti yang

disebutkan pada bab sebelumnya. Komponen satu dan lainnya kemudian

dihubungkan dengan sebuah rangkaian/mini sistem dan kabel jumper agar antar

komponen berfungsi untuk membentuk sistem perangkat keras. Pertama-tama

menghubungkan port ground dan port tegangan untuk semua komponen baik

nrf24L01 dan sensor flex, kemudian dihubungkan pada port ground dan port

tegangan 3.3V pada board Arduino nano. Selanjutnya pada komponen nrf24L01

pada port CSN dan CE terhubung ke port 7 dan 8, kemudian pada port MOSI,

MISO, SCK terhubung ke port 11, 12, 13 pada board Arduino nano. Pada

komponen sensor flex pada kaki pertama terhubung dengan ground dan kaki

kedua terhubung dengan resistor 10k dan A0,A1,A2,A3,A4 pada analog input

pada Arduino nano serta pada kaki resistor 10k terhubung Vin pada Arduino

nano.

B. Kursi Roda

Setelah melaksanakan proses perancangan perangkat keras, menghasilkan

hardware kursi roda pada alat sistem komunikasi nirkabel berbasis modul

nrf24l01 pada alat sarung tangan pintar pengendali kursi roda dapat dilihat pada

Gambar 4.3.
44

Gambar 4. 3 Perangkat Keras Kursi Roda


Perangkat keras kursi roda dari alat tersebut terdiri dari Arduino mega,
nrf24l01, motor dc, dan EMS 30A H-Brigde yang telah dirangkai seperti gambar
4.4.

Gambar 4. 4 Rangkaian kursi roda


Pada gambar 4.3 dan 4.4 merupakan perangkat keras bagian kursi roda dan

rangkaian elektronik yang sudah dihubungkan dengan kabel jumper. Pada

komponen nrf24L01 port ground dihubungkan ke port ground pada Arduino

mega dan port Vcc pada nrf24l01 dihubungkan port 3.3 V pada Arduino mega.

Kemudian port CSN dan CE pada nrf24l01 dihubungkan port 9 dan 10 pada
45

Arduino mega serta port MISO, MOSI, SCK pada nrf24l01 dihubungkan pada

port 50, 51, 52. Pada rangkaian H-brigde sama Arduino mega dan motor dc, port

IN1 dan IN2 pada H-brigde dihubungkan ke port 7 dan 8 pada Arduino mega, lalu

port IN3 dan IN4 pada H-brigde dihubungkan ke port 11 dan 12 pada Arduino

mega. Sedangkan pada port Vin 12v dihubungkan ke batteray 12v dan ground

pada h-brigde dihubungkan ke ground batteray dan Arduino mega. Pada Motor

DC pada wire 2 (cokelat) dan wire 4 (pink) di hubungkan ke port motor A pada

H-brigde, lalu wire 1 (kuning) dan wire 3 (cokelat) dihubungkan ke port motor

B pada H-brigde.

4.1.2 Pengujian Perangkat Lunak

A. Flex Sensor

Pada pengujian sensor flex yang mengalami perubahan nilai resistansi

akibat adanya lekukan pada bagian sensor. Sensor ini mempunyai output berupa

resistansi. Proses pembacaan nilai resistansi ini dengan menghubungkan sensor

ke Arduino nano dengan tegangan 5-12 Volt daan mengeksekusi program

pembacaan nilai resistansi seperti yang ditunjukan niali pada listing 4.1. Nilai

resistansi akan default apabila sensor flex tidak ada lekukan.

Hasil dari nilai resistansi pada sensor flex saat tidak ada dan adanya

lekukan ditunjukan pada tabel 4.1.

Tabel 4. 1 Nilai Flex Sensor

Data Sensor Flex


No
Sensor 1 Sensor 2 Sensor 3 Sensor 4 Sensor 5
1 355 413 373 393 416
2 350 390 350 379 415
46

Data Sensor Flex


No
Sensor 1 Sensor 2 Sensor 3 Sensor 4 Sensor 5
3 357 405 391 386 416
4 357 388 396 390 415
5 354 391 403 381 416
6 360 400 394 369 416
7 365 393 391 380 414
8 369 394 400 379 415
9 360 392 405 379 416
10 349 421 384 381 415
11 368 401 376 379 415
12 360 429 378 381 415
13 354 413 396 376 416
14 358 413 414 379 415
15 350 420 414 391 416
16 350 390 417 389 415
17 373 413 393 372 415
18 363 386 386 369 416
19 371 390 387 388 415
20 349 408 386 369 415
21 369 408 371 388 414
22 352 418 379 390 413
23 346 368 371 384 422
24 350 371 395 384 418
25 367 401 371 379 415
26 367 412 372 370 416
27 349 423 376 370 414
28 360 402 403 383 416
29 365 422 402 371 415
30 362 412 403 363 414
31 366 426 371 389 413
32 364 416 397 372 413
33 357 434 397 386 414
34 360 427 389 377 414
35 361 402 377 367 414

Dari hasil diatas diperoleh nilai resistansi yang adanya lekukan pada

sensor dimana nilai resitansi yang didapat tidak stabil dan terus mengalami
47

perubahan nilai resistansinya karena dipengaruhi oleh lekukan dari sensor flex.

Berikut Program untuk menentukan nilai resistansi pada Gambar 4.6.

Gambar 4. 5 Listing Pembacaan nilai resistansi sensor flex


B. Modul Nrf24L01
48

Pengujian moduk nrf24L01 ini dilakukan dengan proses respon komunikasi

frekuensi dari transceiver. Modul Nrf24L01 merupakan modul komunikasi

dengan metode serial. Dengan menggunakan pin CE dan CSN untuk

menyambung antara transceiver. Cara mengkomunkasikannya dengan

dihubungkan Vcc 3.3v dari Arduino nano dan Arduino mega lalu mengeksekusi

program transmitter seperti yang ditunjukan pada Gambar 4.7.

Gambar 4. 6 Program Komunikasi Modul Nrf24L01 (Transmitter)


Kemudian kita upload listing program ke board Arduino nano. Berikut hasil

data dari transmitter terdapat pada tabel 4.2.


49

Tabel 4. 2 Data Transmitter

Data Sensor Flex


No
Sensor 1 Sensor 2 Sensor 3 Sensor 4 Sensor 5
1 355 413 373 393 416
2 350 390 350 379 415
3 357 405 391 386 416
4 357 388 396 390 415
5 354 391 403 381 416
6 360 400 394 369 416
7 365 393 391 380 414
8 369 394 400 379 415
9 360 392 405 379 416
10 349 421 384 381 415
11 368 401 376 379 415
12 360 429 378 381 415
13 354 413 396 376 416
14 358 413 414 379 415
15 350 420 414 391 416
16 350 390 417 389 415
17 373 413 393 372 415
18 363 386 386 369 416
19 371 390 387 388 415
20 349 408 386 369 415
21 369 408 371 388 414
22 352 418 379 390 413
23 346 368 371 384 422
24 350 371 395 384 418
25 367 401 371 379 415

Pada tabel 4.2 merupakan nilai yang berasal dari sensor flex yang nantinya

akan dikirimkan oleh modul nrf24l01 (transmitter). Kemudian pada bagian


50

receiver juga diberlakukan step yang sama seperti transmitter yaitu dengan

upload program ke board Arduino mega 2860 dapat dilihat di Gambar 4.9.

Gambar 4. 7 Program komunikasi Modul Nrf24L01 (Receiver)


Jika komunikasi berhasil maka data yang dikirim oleh transmitter bernilai

sama dengan data yang diterima oleh receiver. Hasil dari nilai komunikasi

penerima (receiver) ditunjukan pada tabel 4.3.


51

Tabel 4. 3 Data Receiver

Data Sensor Flex


No Sensor Sensor Sensor Sensor Sensor
1 2 3 4 5
1 355 413 373 393 416
2 350 390 350 379 415
3 0 405 0 386 416
4 357 388 396 390 415
5 354 391 403 381 416
6 360 400 394 369 416
7 365 0 0 0 414
8 369 0 0 0 415
9 360 0 0 379 416
10 349 421 384 381 415
11 368 401 0 379 415
12 360 429 0 0 415
13 354 413 396 376 416
14 358 413 414 379 415
15 350 420 414 391 416
16 350 390 417 389 415
17 373 413 393 372 415
18 363 386 386 369 416
19 371 390 387 388 415
20 349 408 386 369 415
21 369 0 0 388 0
22 352 418 379 390 413
23 346 0 0 384 422
24 0 0 0 0 0
25 367 401 371 379 415

4.2 Pengujian Keseluruhan

Pada pengujian keseluruhan yang dilakukan oleh penguji yaitu dengan

melakukan pengujian quality of service (Qos) dan pengujian metode automatic


52

repeat request (ARQ) yang pengambilan datanya memberikan jarak antara

transmitter dan receiver dengan range 50 cm, 100 cm, 150 cm, 200 cm, 250 cm,

300 cm dan menggunakan natural obstacle yang bermaksud yaitu penghalang

yang digunakan sesuai dengan kondisi lokasi pengambilan data. Lokasi

pengambilan data dilaksanakan secara fleksibel yang terpenting memiliki luas

yang memadai.

4.2.1 Pengujian quality of service (Qos)

Pada pengujian quality of service (Qos) mempunyai 4 parameter yang akan

diujikan seperti yang sudah saya sebutkan di Bab 3 yaitu delay, throughput, Jitter,

packet loss. Pengujian ini dilakukan 10 kali dengan masing-masing jarak dengan

total pengujian sebanyak 240 kali. Hasil pengujian dari qualti of service (Qos)

sebagai berikut.

4.2.1.1 Delay

Tujuan dilaksanakannya pengujian ini agar dapat mengetahui waktu yang

dibutuh oleh transceiver dalam melakukan satu kali proses transmisi dengan

menerapakan rumus (1). Proses perhitungan waktu dimulai ketika sensor mulai

mengirimkan paket sampai sensor menerima paket. Implementasi rumus ke sketch

program ditunjukan pada gambar 4.11.

Gambar 4. 8 Sketch program menghitung Delay


53

Skenario pengujian dilakukan dengan mengirimkan data dari transmitter ke

receiver dengan metode pengambilan data yang sudah penulis jelaskan pada sub

bab 4.2. Berikut ini merupakan tabel hasil dari delay pada komunikasi transceiver.

Tabel 4. 4 Tabel pengujian Delay

Jarak Jitter Delay Throughput


No (cm) (ms) (ms) (bps)
1 96
2 167
3 20.4 231 49.02
4 168
5 230
6 198
7 82
8 20.8 231 48.07
9 141
10 84
11 94
12 167
13 50 21.4 183 46.72
14 209
15 229
16 201
17 229
18 21.6 196 46.29
19 77
20 34
21 93
22 120
23 10.2 106 98.03
24 188
25 105
26 144
27 172
28 10.4 114 384.61
29 100 96
28
30
31 13.2 157 833.33
54

32 264
33 11
34 13
35 16
36 151
37 260
38 11.6 116 86.2
39 64
40 16
41 93
42 15
43 34 261 29.41
44 14
45 91
46 263
47 94
48 47.6 14 21.01
49 88
50 256
51 25
52 97
53 14.8 29 67.56
54 260
55 34
56 99
57 255
58 16.4 3 60.97
59 -12
60 259
61 150 17
62 140
63 38.2 259 26.17
64 262
65 269
66 208
67 281
68 17 281 58.82
69 267
70 259
71 11 293 19.61
55

72 229
73 46
74 15
75 52
76 38
77 123
78 38,8 252 32.46
79 241
80 164
81 192
82 177
83 9.2 160 108.69
84 61
85 301
86 238
87 264
88 200 33.2 99 30.12
89 21
90 290
91 72
92 26
93 28.4 98 35.21
94 169
95 187
96 214
97 260
98 6.4 129 156.25
99 230
100 229
101 182
102 80
103 17.8 48 56.18
104 93
105 262
106 250 93
107 262
108 34 14 29.41
109 17
110 95
111 19.2 263 52.08
56

112 15
113 17
114 98
115 262
116 167
117 85
118 17.4 113 57.47
119 91
120 272
121 80
122 98
123 33.8 111 56.17
124 321
125 176
126 169
127 131
128 17.6 163 56.82
129 185
130 109
131 257
132 228
133 32.6 173 30.48
134 74
135 46
136 93
137 260
138 300 15.6 18 64.93
139 16
140 94
141 16
142 259
143 24.4 115 36.76
144 264
145 138
146 152
147 22
148 30.4 258 32.95
149 36
150 85
57

Dari pengujian yang ditunjukan tabel 4.4, penulis ingin bahwa dalam

proses perhitungan delay ini dihitung ketika receiver menerima data lalu sebelum

receiver menerima data selanjutnya delay akan melakukan proses perhitungan.

Misalkan receiver menerima data pertama dari transmitter pada kondisi delay

mulai melakukan proses perhitungan sampai data yang ke dua yang dikirimkan

oleh transmitter diterima oleh receiver. Delay yang terjadi pada pengiriman data

jarak 50 cm rata-rata delay yang diperoleh 145.88 ms. Pengiriman data pada jarak

100 cm diperoleh rata-rata delay 95.80 ms. Pengiriman data pada jarak 150 cm

rata-rata delay yang diperoleh 157.08 ms. Pengiriman data pada jarak 200 cm

rata-rata delay yang diperoleh 190.60 ms. Pengiriman data pada jarak 250 cm

rata-rata delay yang diperoleh 115.28 ms. Pengiriman data pada jarak 300 cm

rata-rata delay yang diperoleh 150.84 ms. Grafik rata-rata delay dapat dilihat pada

gambar 4.12.

Rata-Rata Delay (ms)


250.00
190.60
200.00
Delay (ms)

157.08 150.84
145.88
150.00
115.28
95.80
100.00

50.00

0.00
50 100 150 200 250 300
Jarak (Cm)

Gambar 4. 9 Grafik Pengujian Delay


Dari hasil analisis, nilai delay yang diperoleh pada setiap pengujian mulai

dari jarak 50 cm hingga 300 cm diperoleh rata-rata keseluruhan 142.58


58

milisecond. Berdasarkan tabel 2.2 dengan nilai rata-rata tersebut dapat

dikategorikan sangat bagus. Hal ini disebabkan oleh beberapa faktor diantaranya

yaitu beban data yang dikirimkan membutuhkan waktu yang lebih lama. Sehingga

ukuran paket data yang ditransmisikan semakin besar, hal ini juga membuat

transmisi yang dibutuhkan juga semakin lama. Selain itu faktor obstacle yang

terjadi ketika pengmbilan data juga mempengaruhi transmisi data.

4.2.1.2 Throughput

Pengujian throughput dilakukan untuk mengetahui kecepatan data aktual

(data rate) berdasarkan satuan waktu. Untuk mengetahui throughput digunakan

rumus (4). Untuk mengetahui throughput pada komunikasi data antar node,

diimplementasikan sketch program untuk menghitung throughput yang ditunjukan

pada gambar 4.13.

Gambar 4. 10 Sketch Troughput


Skenario pengujian throughput dilakukan dengan cara melakukan

pengiriman sejumlah paket data dari transmitter ke receiver dan dilakukan

sebanyak 60 kali dengan jarak 50 cm – 300 cm. Berikut hasil pengujian

trhoughput daopat dilihat pada tabel 4.5.

Tabel 4. 5 Rata-Rata Throughput


59

Jarak Jitter Delay Throughput


No (cm) (ms) (ms) (bps)
1 96
2 167
3 20.4 231 49.02
4 168
5 230
6 198
7 82
8 20.8 231 48.07
9 50 141
10 84
11 94
12 167
13 21.4 183 46.72
14 209
15 229
16 201
21.6 46.29
17 229
60

18 196
19 77
20 34
21 93
22 120
23 10.2 106 98.03
24 188
25 105
26 144
27 172
28 10.4 114 384.61
29 96
30 28
31 157
32 264
33 13.2 11 833.33
34 13
35 16
36 151
37 260
38 100 11.6 116 86.2
39 64
40 16
41 93
42 15
43 34 261 29.41
44 14
45 91
46 263
47 94
48 47.6 14 21.01
49 88
50 256
51 25
52 97
53 14.8 29 67.56
54 150 260
55 34
56 99
16.4 60.97
57 255
61

58 3
59 -12
60 259
61 17
62 140
63 38.2 259 26.17
64 262
65 269
66 208
67 281
68 17 281 58.82
69 267
70 259
71 293
72 229
73 11 46 19.61
74 15
75 52
76 38
77 123
78 38,8 252 32.46
79 241
80 164
81 192
82 177
83 9.2 160 108.69
84 61
85 301
86 238
200
87 264
88 33.2 99 30.12
89 21
90 290
91 72
92 26
93 28.4 98 35.21
94 169
95 187
96 214
6.4 156.25
97 260
62

98 129
99 230
100 229
101 182
102 80
103 17.8 48 56.18
104 93
105 262
106 93
107 262
108 34 14 29.41
109 17
110 95
111 263
112 15
113 250 19.2 17 52.08
114 98
115 262
116 167
117 85
118 17.4 113 57.47
119 91
120 272
121 80
122 98
123 33.8 111 56.17
124 321
125 176
126 169
127 131
128 17.6 163 56.82
129 185
130 109
131 257
300
132 228
133 32.6 173 30.48
134 74
135 46
136 93
15.6 64.93
137 260
63

138 18
139 16
140 94
141 16
142 259
143 24.4 115 36.76
144 264
145 138
146 152
147 22
148 30.4 258 32.95
149 36
150 85

Dari tabel 4.5 merupakan hasil pengujian throughput, Penulis dalam

mendapat nilai throughput yaitu ketika receiver menerima data pertama

melakukan proses perhitungan throughput hingga data yang ke 5. Karena

throughput sangat berpangaruh dengan delay, delay yang merupakan rata-rata dari

delay dari pertama sampai data yang ke 5. Maka dari nilai troughput semakin

besar bersamaan dengan jumlah data yang diterima. Dapat diperhatikan bahwa

kenaikan ukuran paket data pada setiap 50 cm mempengaruhi transmisi dalam

satuan detik (data rate). Pada jarak 50 cm pengiriman paket data diperoleh

kecepatan transmisi sebesar 90.38 bps. Jarak 100 cm pengiriman paket data

diperoleh kecepatan transmisi data sebesar 270.91 bps. Jarak 150 cm kecepatan

transmisi data yang didapatkan dari pengiriman paket data sebesar 45.62 Kpbs.

Kemudian pada jarak 200 cm kecepatan transmisi data yang diperoleh adalah

72.54 Kbps. Jarak 250 cm pengiriman data yang diperoleh dari kecepatan transmis

sebesar 251.31 bps. Dan pada jarak 300 cm kecepatan pengiriman data yang
64

diperoleh sebesar 44.38 bps. Grafik rata-rata throughput dapat dilihat pada

gambar 4.14.

Rata-Rata Throughput (bps)


300 270.91
251.31
250
Throughput (Bps)

200
150
90.39
100 72.54
46.62 44.38
50
0
0 50 100 150 200 250 300
Jarak ( cm)

Gambar 4. 11 Grafik Pengujian Throughput

Dari hasil dari analisis didapatkan bahwa performance dengan quality of

service dengan parameter thtroughput yang pengujiannya denga range 50 cm -300

cm disimpulkan bahwa rata-rata keseluruhan throughput yaittu sebesar 129.38

bps. Berdasarkan tabel 2.4 dengan nilai rata-rata keseluruhan tersebut kualitas

throughput dapat dikategorikan sangat baik. Dan pada pengujian menghasilkan

kecepatan maksimal transmisi sebesar 270.91 bps dimana kecepatan transmisi ini

masih jauh dari kecepatan maksimal modul nrf24l01 yaitu 2 Mbps atau 2 x 103

Kbps atau 2 x 106 bps.

4.2.1.3 Jitter

Tujuan dilakukan pengujian quality of service dengan parameter jitter ini

adalah untuk menganalisi variasi delay yang terjadi pada transceiver dari

pengolahan data pada sistem yang menyebabkan perbedaan delay dari suatu
65

pengiriman ke pengiriman lainnya. Jitter dihitung dengan mengimplentasikan

rumus (2) (3). Untuk mengetahui jitter pada komunikasi data transceiver,

diimplementasi sketch program menghitung jitter ditunjukan pada gambar 4.15.

Gambar 4. 12 Sketch program Jitter


Skenario pengujian throughput dilakukan dengan cara melakukan

pengiriman sejumlah paket data dari transmitter ke receiver dan dilakukan

sebanyak 60 kali dengan jarak 50 cm – 300 cm. Berikut hasil pengujian

trhoughput daopat dilihat pada tabel 4.6.

Tabel 4. 6 Tabel Pengujian Jitter

Jarak Jitter Delay Throughput


No (cm) (ms) (ms) (bps)
1 96
2 167
3 20.4 231 49.02
4 168
5 230
6 198
7 82
8 50 20.8 231 48.07
9 141
10 84
11 94
12 167
13 21.4 183 46.72
14 209
15 229
66

16 201
17 229
18 21.6 196 46.29
19 77
20 34
21 93
22 120
23 10.2 106 98.03
24 188
105
25
26 144
27 172
28 10.4 114 384.61
29 96
30 28
31 157
32 264
33 13.2 11 833.33
34 13
35 16
36 151
37 260
38 100 11.6 116 86.2
39 64
40 16
41 93
42 15
43 34 261 29.41
44 14
45 91
46 263
47 94
48 47.6 14 21.01
49 88
50 256
51 25
52 97
53 150 14.8 29 67.56
54 260
55 34
67

56 99
57 255
58 16.4 3 60.97
59 -12
60 259
61 17
62 140
63 38.2 259 26.17
64 262
65 269
66 208
67 281
68 17 281 58.82
69 267
70 259
71 293
72 229
73 11 46 19.61
74 15
75 52
76 38
77 123
78 38,8 252 32.46
79 241
80 164
81 192
82 177
83 9.2 160 108.69
84 61
85 301
200
86 238
87 264
88 33.2 99 30.12
89 21
90 290
91 72
92 26
93 28.4 98 35.21
94 169
95 187
68

96 214
97 260
98 6.4 129 156.25
99 230
100 229
101 182
102 80
103 17.8 48 56.18
104 93
105 262
106 93
107 262
108 34 14 29.41
109 17
110 95
111 263
112 15
113 19.2 17 52.08
250
114 98
115 262
116 167
117 85
118 17.4 113 57.47
119 91
272
120
121 80
122 98
123 33.8 111 56.17
124 321
176
125
126 169
127 131
128 17.6 163 56.82
129 185
300 109
130
131 257
132 32.6 228 30.48
133 173
69

134 74
46
135
93
136
137 260
138 15.6 18 64.93
139 16
94
140
141 16
142 259
143 24.4 115 36.76
144 264
138
145
146 152
147 22
148 30.4 258 32.95
149 36
150 85

Dari tabel 4.6 untuk nilai jitter dalam proses perhitunganya dari data

pertama hingga data yang ke 5 Karena jitter variasi delay maka delay yang

digunakan yaitu rata-rata delay dari delay setiap data pertama hingga delay data

ke lima. Selain variasi delay yang mempengaruhi besarnya jitter, jumlah data

yang diterima juga dapat mempengaruhinya. Pada tabel tersebut memperlihatkan

bahwa jitter yang terjadi pada pengiriman data dengan jarak 50 cm diperoleh

18.88 ms. Lalu jitter pada 100 cm pengiriman data yang diperoleh 23.36 ms. Pada

jarak 150 cm pengiriman data yang diperoleh 19.48 ms. Kemudian jarak 200 cm

jitter yang diperoleh dari pengiriman data 19.30 ms. Jarak 250 cm pengiriman

data yang diperoleh sebesar 24.44 ms. Dan Jarak 300 cm jitter yang diperoleh dari
70

pengiriman data sebesar 24.12 ms. Grafik pengujian rata-rata jitter dapat dilihat

pada gambar 4.13.

Rata-Rata Jitter (ms)


30
23.36 24.44 24.12
25
18.88 19.48 19.30
20
Jitter (Ms)

15
10
5
0
0 50 100 150 200 250 300 350
Jarak (cm)

Gambar 4. 13 Grafik Pengujian Jitter

Dari hasil analisis, nilai jitter pada pengujian di setiap 50 cm terdapat rata-

rata keseluruhan jitter sebesar 21.60 ms. Berdasarkan tabel 2.3 nilai rata-rata jitter

tersebut termasuk kategori baik. Komunikasi data antara transceiver dimana

dipengaruhi oleh ukuran data yang dikirim. Dimana, semakin besar ukuran data

yang ditransmisikan, maka nilai jitter yang diperoleh juga semakin besar.
71

4.2.1.4 Packet Loss

Pengujian packet loss ini bertujuan untuk mengetahui persentase yang

terjadi pada packet loss yang terjadi dalam suatu proses komunikasi data antara

transmitter dan receiver. Packet loss dihitung dengan rumus (5). Proses pengujian

packet loss dikerjakan dengan melakukan proses komunikasi transceiver dengan

jarak 50 cm, 100 cm, 150 cm, 200 cm, 250 cm, 300 cm. Hasil pengujian packet

loss dapat dilihat pada tabel 4.7.

Tabel 4. 7 Pengujian Packet Loss (%)

Paket Data
Jarak Packet Loss
No Receive
(Cm) Transmitter (%)
r
1 Berhasil Berhasil
2 Berhasil Berhasil
3 Berhasil Berhasil
4 Berhasil Berhasil
5 Berhasil Berhasil
50 3
6 Berhasil Berhasil
7 Berhasil Berhasil
8 Berhasil Gagal
9 Berhasil Gagal
10 Berhasil Gagal
11 Berhasil Gagal
12 Berhasil Gagal
13 Berhasil Berhasil
14 Berhasil Berhasil
15 Berhasil Berhasil
100 2
16 Berhasil Berhasil
17 Berhasil Berhasil
18 Berhasil Berhasil
19 Berhasil Berhasil
20 Berhasil Berhasil
21 Berhasil Berhasil
22 150 Berhasil Berhasil 4
23 Berhasil Berhasil
72

Paket Data
Jarak Packet Loss
No Receive
(Cm) Transmitter (%)
r
24 Berhasil Gagal
25 Berhasil Gagal
26 Berhasil Gagal
27 Berhasil Gagal
28 Berhasil Berhasil
29 Berhasil Berhasil
30 Berhasil Berhasil
31 Berhasil Berhasil
32 Berhasil Berhasil
33 Berhasil Berhasil
34 Berhasil Berhasil
35 Berhasil Gagal
200 5
36 Berhasil Gagal
37 Berhasil Gagal
38 Berhasil Gagal
39 Berhasil Gagal
40 Berhasil Berhasil
41 Berhasil Berhasil
42 Berhasil Berhasil
43 Berhasil Berhasil
44 Berhasil Berhasil
45 Berhasil Berhasil
250 0
46 Berhasil Berhasil
47 Berhasil Berhasil
48 Berhasil Berhasil
49 Berhasil Berhasil
50 Berhasil Berhasil
51 Berhasil Gagal
52 Berhasil Gagal
53 Berhasil Gagal
54 Berhasil Gagal
55 Berhasil Berhasil
300 4
56 Berhasil Berhasil
57 Berhasil Berhasil
58 Berhasil Berhasil
59 Berhasil Berhasil
60 Berhasil Berhasil
73

Dalam hasil quality of service dengan parameter packet loss dapat

diperhatikan bahwa sejumlah paket data telah ditransmisikan pada jalur

komunikasi antara transmitter dan receiver dengan variasi jarak yang berbeda.

Hasilnya menunujukan bahwa, pada jarak 50 cm mendapatkan packet loss sebesar

3%, lalu pada jarak 100 cm mendapatkan packet loss sebesar 2%, Jarak 150 cm

mendapatkan packet loss 4%, jarak 200 cm mendapatkan packet loss 5%, jarak

250 cm mendapatkan packet loss sebesar 0%, dan pada jarak 300 cm

mendapatkan packet loss sebesar 4%.

Grafik P en gu jian P ack et L oss (%)


Series1
6
5
5
4 4
4
Packet Loss (%)

3
3
2
2

1
0
0
50 100 150 200 250 300
Jarak Pengujian (CM)

Gambar 4. 14 Grafik Pengujian Packet Loss (%)


Hasil analisis pengujian quality of service dari parameter packet loss yang

ditunjukan pada gambar 4.17 mendapat rata-rata packet loss dari seluruh variasi

jarak adalah 3%. Berdasarkan tabel 2.5 dengan nilai rata-rata packet loss tersebut

dapat dikategorikan baik. Dengan packet loss sebesar 3% dapat dikategorikan

baik dalam proses transmisi paket data dari transceiver, karena dalam proses

komunikasi transceiver menggunkan komunikasi yang reliable yaitu memastikan


74

paket data yang dikirim oleh transmitter dapat diterima oleh receiver dengan baik

walaupun ada beberapa paket yang tidak dapat diterima oleh receiver disebabkan

beberapa faktor yaitu kerusakan paket data atau corrupt dan loss connection.

4.2.2 Pengujian Komunikasi Modul Nrf24L01

Pada pengujian komunikasi modul nrf24l01, penulis membahas tentang

pendeteksian error pada data flex sensor yang dikirimkan oleh transmitter.

Pendeteksian error ini menggunakan metode error detection dan algorima Cyclic

Redundancy Check (CRC), Jika data dari flex sensor yang sudah dideteksi

terdapat error maka dengan metode automatic repeat request (ARQ) bagian

receiver akan memberikan notifikasi ke transmitter untuk melakukan pengiriman

ulang. Pengujian ini dilakukan dengan range jarak 0 – 300 cm dengan total

pengujian 180 kali.

4.2.2.1 Error Detection

Tujuan dari pengujian ini adalah mengetahui apakah program error

detection pada automatic repeat request (ARQ) yang telat dibuat ini dapat bekerja

dengan fungsi sesuai bab perancangan.

Skenario dari pengujian error detection adalah, data flex sensor dari

transmitter yang berupa integer dikonversikan string. Nilai yang berupa string

tersebut dikonversikan dari decimal to binary. Setelah nilai flex sensor sudah

diubah menjadi binary, kemudian ada proses matemitika dengan implementasi

algoritma cyclic redundancy check (CRC) dimana nilai flex sensor yang berupa

binary akan dibagi dengan divisor yaitu 10011. Hasil pembagian tersebut

menghasilkan nilai CRC yang berukuran kurang dari sama dengan 4 bit. Lalu nilai
75

CRC ini di gabungkan dengan nilai binary dari flex sensor, nilai ini disebut

Transmitter Frame. Transmitter Frame ini yang dikirimkan oleh transmitter ke

receiver.

Pada receiver merupakan bagian decision terhadap nilai yang diterima dari

transmitter. Penulis menyebutkan nilai transmitter frame yang diterima oleh

receiver disebut receiver frame. Skenarionya adalah nilai binary dari transmitter

frame yang sudah diterima di receiver mengalami juga pengecekan dengan

algoritma CRC. Nilai receiver frame dibagi dengan divisor yang sama dengan

pada bagian transmitter lalu hasil dari pembagian tersebut berupa nilai CRC, Jika

hasil dari nilai CRC adalah 0 maka data yang diterima sesuai / Correct. Dan jika

hasil nilai CRC yang diterima selain 0 maka data yang diterima error / tidak

sesuai.

Gambar 4.15 Rumus Konversi Decimal to Binary

Pada gambar 4.18 dapat dilihat bahwa dalam proses konversi decimal to

binary menggunakan fungsi decToBinary. Dimana didalam fungsi tersebut

terdapat rumus matematika yaitu binaryNum[i] = n % 2, rumus tersebut

merupakan proses aritmatika pada pemograman C++ atau C# yaitu jenis operator
76

sisa bagi atau sering disebut modulus. Makna dari operator modulus pada rumus

decTobinary yaitu memakai nilai sisa bagi dari semua pembagian antara n dan 2,

Sehingga ada kemungkinan hasil pembagian dari n % 2 adalah 1 atau 0.

Gambar 4. 16 Output data Transmitter

Pada gambar 4.19 merupakan output data yang berasala dari transmitter,

nilai dari data1 dan num merupakan nilai flex sensor, lalu di konversikan nilai

data1 yang berupa nilai decimal ke nilai binary. Dalam proses perhitungan

algoritma cyclic redundancy check (CRC) membutuhkan nilai divisor atau

generator yang mempunyai berkapasitas 5 bit yaitu 10011. Nilai divisor atau

generator nilai tetap yang dijadikan sebagai pembagi. Lalu nilai yang dibagi

adalah nilai data1 (binary) + nilai dividen (appended). Nilai dividen (appended)

merupakan nilai yang ditambahkan ke paling belakang dari setiap nilai data1
77

(binary). Nilai dividen (appended) yaitu nilai divisor (bit) – 1, maksudnya jika

nilai divisor (bit) adalah 5 bit. Maka nilai dividen (appended) adalah 5 bit – 1 bit

yaitu 4 bit. Misalkan binary dari 588 yang dibagi dengan dividen (appended)

adalah 10010011000000, dari data binary tersebut nilai 0 merupakan nilai dividen

(appended). Hasil yang digunakan dari pembagian antara divisor dan nilai data 1

+ dividen (appended) adalah sisa bagi dan sisa bagi inilah yang disebut dengan

nilai CRC. Pada gambar 4.19 nilai CRC nya adalah 1110 dan 1101. Setelah itu

data yang dikirim oleh transmitter adalah penggabungan antara nilai CRC dan

niali data1 (binary), nilai ini oleh penulis disebut transmitter frame. Jika dilihat

pada gambar 4.19 data yang dikirimkan oleh transmitter bukan nilai binary tetapi

nilai decimal. Penulis memilih lebih mengirimkan nilai decimal karena alasan

teknis yang terjadi ketika uji coba pada proses transmisi data modul Nrf24L01.

Pengalaman penulis pada ujicoba transmisi dengan nrf24L01 memiliki resiko

sangat besar mengalami packetloss, dan jika mengalami packetloss berapapun

nilai yang dikirimkan oleh transmitter pasti pada receiver bernilai 0. Pada kasus

pengiriman transmitter frame, jika data yang akan dikirim berupa binary maka

proses pengiriman bukan 1 packet data tetapi yang dikirim per bit dan ini akan

menyulitkan penulis mengidentifikasi mana data yang packet loss / error dan data

yang asli dari transmitter frame. Maka dari itu penulis memilih mengirimkan nilai

berupa decimal bukan nilai binary karena jika data yang dikirimkan berupa

decimal terdapat dua kemungkinan yaitu data correct atau data error. Data yang

mengalami error bernilai 0.


78

Gambar 4. 17 Ouput Data Receiver


Penulis sudah menjalaskan bahwa pada transmitter mengirimkan nilai

decimal yang merupakan konversi binary to decimal dari nilai transmitter frame.

Pada gambar 4.20 nilai transmitter frame dalam bentuk decimal yang diterima

oleh receiver disebut nilai receiver frame. Nilai dari receiver frame dibagi dengan

divisor yang sama dengan transmitter yaitu 0011. Hasil dari pembagian, penulis

menyebutnya dengan remainder. Remainder sama hal nya dengan CRC perbedaan

nya yaitu remainder merupakan hasil akhir dari perhitungan algoritma CRC untuk

menentukan data yang diterima correct atau error. Pada gambar diatas merupakan

hasil yang correct artinya data yang dikirim sesuai dengan data yang diterima

dengan indikasi dari remainder bernilai 0000.


79

Gambar 4. 18 Data Error pada Receiver

Kemudian Pada gambar 4.21 merupakan salah satu data yang error, Penulis
mengidentifikasi selama ujicoba maupun pengambilan data, data error yang
teridentifikasi adalah bernilai 0, sehingga ketika mengalami perhitungan algoritma
CRC remainder yang dihasilkan adalah 0. Akan tetapi klasifikasi remainder 0 dari
nilai data 1 yang tidak terkirim atau mengalami packet loss adalah error. Berikut
ini hasil pengujian error detection dapat dilihat tabel 4.8.
Tabel 4. 8 Hasil Pengujian Error Detection

Transmitter Receiver
conversion Dec to Binary Data
Data
No Flex Status
Flex Transmit Receiver
Binary CRC Remainder Senso
Sensor Frame Frame r
1 364 101101100 0101 1011011000101 0 0 0 Error
2 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
3 359 101100111 1011 1011001111011 1011001111011 0 359 Berhasil
4 361 101101001 1010 1011010011010 0 0 0 Error
5 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
6 362 101101010 1111 1011010101111 1011010101111 0 362 Berhasil
7 363 101101011 1100 1011010111100 1011010111100 0 363 Berhasil
8 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
9 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
10 353 101100001 0001 1011000010001 0 0 0 Error
11 359 101100111 1011 1011001111011 0 0 0 Error
12 352 101100000 0010 1011000000010 0 0 0 Error
13 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
80

Transmitter Receiver
Data conversion Dec to Binary Data
No Flex Status
Flex Transmit Receiver
Sensor Binary CRC Remainder Senso
Frame Frame
r
14 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
15 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
16 356 101100100 1110 1011001001110 0 0 0 Error
17 365 101101101 0110 1011011010110 1011011010110 0 365 Berhasil
18 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
19 361 101101001 1010 1011010011010 1011010011010 0 361 Berhasil
20 353 101100001 0001 1011000010001 1011000010001 0 353 Berhasil
21 365 101101101 0110 1011011010110 0 0 0 Error
22 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
23 358 101100110 1000 1011001101000 0 0 0 Error
24 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
101001000
25 656 0110 10100100000110 0 0 0 Error
0
101100000
26 704 0100 10110000000100 10110000000100 0 704 Berhasil
0
100111011
27 630 1111 10011101101111 10011101101111 0 630 Berhasil
0
28 454 111000110 1100 1110001101100 1110001101100 0 454 Berhasil
29 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
30 422 110100110 0001 1101001100001 0 0 0 Error
31 384 110000000 0001 1100000000001 1100000000001 0 384 Berhasil
101001000
32 656 0110 10100100000110 0 0 0 Error
0
101100000
33 704 0100 10110000000100 10110000000100 0 704 Berhasil
0
100111011
34 630 1111 10011101101111 10011101101111 0 630 Berhasil
0
35 454 111000110 1100 1110001101100 1110001101100 0 454 Berhasil
36 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
37 422 110100110 0001 1101001100001 0 0 0 Error
38 459 111001011 1000 1110010111000 1110010111000 0 459 Berhasil
101000001
39 642 0101 10100000100101 10100000100101 0 642 Berhasil
0
101001110
40 668 0001 10100111000001 10100111000001 0 668 Berhasil
0
41 362 101101010 1111 1011010101111 0 0 0 Error
42 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
43 360 101101000 1001 1011010001001 0 0 0 Error
44 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
45 362 101101010 1111 1011010101111 1011010101111 0 362 Berhasil
46 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
81

Transmitter Receiver
Data conversion Dec to Binary Data
No Flex Status
Flex Transmit Receiver
Sensor Binary CRC Remainder Senso
Frame Frame
r
47 358 101100110 1000 1011001101000 0 0 0 Error
48 351 101011111 1111 1010111111111 1010111111111 0 351 Berhasil
49 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
50 360 101101000 1001 1011010001001 0 0 0 Error
51 352 101100000 0010 1011000000010 1011000000010 0 352 Berhasil
52 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
53 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
54 353 101100001 0001 1011000010001 0 0 0 Error
55 362 101101010 1111 1011010101111 0 0 0 Error
56 362 101101010 1111 1011010101111 1011010101111 0 362 Berhasil
57 363 101101011 1100 1011010111100 1011010111100 0 363 Berhasil
58 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
59 363 101101011 1100 1011010111100 1011010111100 0 363 Berhasil
60 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
61 357 101100101 1101 1011001011101 0 0 0 Error
62 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
63 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
64 360 101101000 1001 1011010001001 0 0 0 Error
65 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
66 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
67 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
68 357 101100101 1101 1011001011101 1011001011101 0 357 Berhasil
69 357 101100101 1101 1011001011101 1011001011101 0 357 Berhasil
70 357 101100101 1101 1011001011101 0 0 0 Error
71 356 101100100 1110 1011001001110 0 0 0 Error
72 356 101100100 1110 1011001001110 0 0 0 Error
73 356 101100100 1110 1011001001110 0 0 0 Error
74 359 101100111 1011 1011001111011 1011001111011 0 359 Berhasil
75 350 101011110 1100 1010111101100 1010111101100 0 350 Berhasil
76 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
77 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
78 357 101100101 1101 1011001011101 1011001011101 0 357 Berhasil
79 363 101101011 1100 1011010111100 1011010111100 0 363 Berhasil
80 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
81 357 101100101 1101 1011001011101 0 0 0 Error
82 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
83 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
84 355 101100011 0111 1011000110111 0 0 0 Error
82

Transmitter Receiver
Data conversion Dec to Binary Data
No Flex Status
Flex Transmit Receiver
Sensor Binary CRC Remainder Senso
Frame Frame
r
85 351 101011111 1111 1010111111111 1010111111111 0 351 Berhasil
86 356 101100100 1110 1011001001110 0 0 0 Error
87 356 101100100 1110 1011001001110 0 0 0 Error
88 351 101011111 1111 1010111111111 0 0 0 Error
89 359 101100111 1011 1011001111011 0 0 0 Error
90 356 101100100 1110 1011001001110 0 0 0 Error
91 357 101100101 1101 1011001011101 1011001011101 0 357 Berhasil
92 354 101100010 0100 1011000100100
93 351 101011111 1111 1010111111111 1010111111111 0 351 Berhasil
94 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
95 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
96 357 101100101 1101 1011001011101 0 0 0 Error
97 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
98 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
99 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
100 359 101100111 1011 1011001111011 0 0 0 Error
101 357 101100101 1101 1011001011101 0 0 0 Error
102 355 101100011 0111 1011000110111 1011001101000 0 355 Berhasil
103 351 101011111 1111 1010111111111 0 0 0 Error
104 359 101100111 1011 1011001111011 0 0 0 Error
105 356 101100100 1110 1011001001110 0 0 0 Error
106 355 101100011 0111 1011000110111 1011001101000 0 355 Berhasil
107 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
108 357 101100101 1101 1011001011101 0 0 0 Error
109 355 101100011 0111 1011000110111 1011001101000 0 355 Berhasil
110 354 101100010 0100 1011000100100 0 0 0 Error
111 353 101100001 0001 1011000010001 1011000010001 0 353 Berhasil
112 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
113 359 101100111 1011 1011001111011 1011001111011 0 359 Berhasil
114 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
115 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
116 353 101100001 0001 1011000010001 0 0 0 Error
117 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
118 355 101100011 0111 1011000110111 0 0 0 Error
119 351 101011111 1111 1010111111111 0 0 0 Error
120 359 101100111 1011 1011001111011 1011001111011 0 359 Berhasil
83

Dari tabel 4.8 diatas dapat dilihat bahwa dari 20 x kali percobaan dengan

jarak 50 cm sampai 300 cm terdapat 42 kali percobaan yang terdeteksi error

diakibatkan oleh packetloss yang terjadi pada proses komunikasi nrf24L01. Dari

17 data yang error tersebut semuanya berniali 0 artinya receiver gagal menerima

atau mendeteksi data yang dikirim oleh transmitter. Berdasarkan hasi percobaan

diatas, didapatkan nilai hasil pesentase keberhasilan sebagai berikut.

Jumlah Pengujian−Pengujian Gagal


Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

120−42
¿ x 100 %=0,65 x 100 %=65 %
120

Dari hasil perhitungan tingkat keberhasilan pengujian didapatkan tingkat

keberhasilannya yaitu sebesar 0,65 atau 65% dari total pengujian berjumlah 120

kali. Kemudian dari hasil 120 data keseluruhan , penulis membagi data tersebut

menjadi 20 data pada setiap 50 cm , hasil tersebut dapat dilihat sebagai berikut.

Tabel 4. 9 Pengujian Jarak 50 Cm

Transmitter Receiver
Data conversion Dec to Binary Data
No Status
Flex Transmit Receiver Flex
Binary CRC Remainder
Sensor Frame Frame Sensor
1 364 101101100 0101 1011011000101 0 0 0 Error
2 354 101100010 0100 1011000100100 1011000100100 0 354 Berhasil
3 359 101100111 1011 1011001111011 1011001111011 0 359 Berhasil
4 361 101101001 1010 1011010011010 0 0 0 Error
5 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
6 362 101101010 1111 1011010101111 1011010101111 0 362 Berhasil
7 363 101101011 1100 1011010111100 1011010111100 0 363 Berhasil
8 364 101101100 101 1011011000101 1011011000101 0 364 Berhasil
9 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
10 353 101100001 0001 1011000010001 0 0 0 Error
11 359 101100111 1011 1011001111011 0 0 0 Error
12 352 101100000 0010 1011000000010 0 0 0 Error
13 355 101100011 0111 1011000110111 1011000110111 0 355 Berhasil
14 360 101101000 1001 1011010001001 1011010001001 0 360 Berhasil
84

Transmitter Receiver
Data conversion Dec to Binary Data
No Status
Flex Transmit Receiver Flex
Binary CRC Remainder
Sensor Frame Frame Sensor
15 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
16 356 101100100 1110 1011001001110 0 0 0 Error
17 365 101101101 0110 1011011010110 1011011010110 0 365 Berhasil
18 364 101101100 0101 1011011000101 1011011000101 0 364 Berhasil
19 361 101101001 1010 1011010011010 1011010011010 0 361 Berhasil
20 353 101100001 0001 1011000010001 1011000010001 0 353 Berhasil

Berdasarkan 20 pengujian pada jarak 50 cm yang dilakukan oleh peneliti,

kemudian peneliti menghitung tingkat keberhasilan dari data yang didapatkan dan

hasilnya sebagai berikut.

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−6
¿ x 100 %=0,7 x 100 %=70 %
20

Berdasarkan dari 20 data yang berada pada tabel 4.9, penulis mendapat nilai

error sebesar 6 kali dari 20 kali percobaan. Dengan tingkat keberhasilan pada

proses komunikasi modul nrf24L01 pada jarak 50 cm sebesar 70 %. Selanjutnya

hasil pengujian pada jarak 100 cm sebagai berikut.

Tabel 4. 10 Pengujian Jarak 100 Cm


Transmitter Receiver
conversion Dec to Binary Data
N Data
Flex Status
o Flex CR Transmit Receiver Remainde
Binary Senso
Sensor C Frame Frame r
r
1 365 101101101 0110 1011011010110 0 0 0 Error
Berhasi
2 360 101101000 1001 1011010001001 1011010001001 0 360
l
3 358 101100110 1000 1011001101000 0 0 0 Error
Berhasi
4 360 101101000 1001 1011010001001 1011010001001 0 360
l
101001000 1010010000011
5 656 0110 0 0 0 Error
0 0
85

Transmitter Receiver
N Data conversion Dec to Binary Data
Status
o Flex CR Transmit Receiver Remainde Flex
Binary
Sensor C Frame Frame r Senso
101100000 1011000000010 1011000000010 r Berhasi
6 704 0100 0 704
0 0 0 l
100111011 1001110110111 1001110110111 Berhasi
7 630 1111 0 630
0 1 1 l
Berhasi
8 454 111000110 1100 1110001101100 1110001101100 0 454
l
Berhasi
9 358 101100110 1000 1011001101000 1011001101000 0 358
l
10 422 110100110 0001 1101001100001 0 0 0 Error
Berhasi
11 384 110000000 0001 1100000000001 1100000000001 0 384
l
101001000 1010010000011
12 656 0110 0 0 0 Error
0 0
101100000 1011000000010 1011000000010 Berhasi
13 704 0100 0 704
0 0 0 l
100111011 1001110110111 1001110110111 Berhasi
14 630 1111 0 630
0 1 1 l
Berhasi
15 454 111000110 1100 1110001101100 1110001101100 0 454
l
Berhasi
16 358 101100110 1000 1011001101000 1011001101000 0 358
l
17 422 110100110 0001 1101001100001 0 0 0 Error
Berhasi
18 459 111001011 1000 1110010111000 1110010111000 0 459
l
101000001 1010000010010 1010000010010 Berhasi
19 642 0101 0 642
0 1 1 l
101001110 1010011100000 1010011100000 Berhasi
20 668 0001 0 668
0 1 1 l

Dari 20 data pengujian tersebut penulis menganalisi tingkat keberhasilan

pada pengujian jarak 100 cm dengan hasil sebagai berikut.

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−6
¿ x 100 %=0,7 x 100 %=70 %
20

Berdasarkan tabel 4.10 hasil pengujian pada jarak 100 cm memiliki tingkat

keberhasilan sebesar 70 % dengan jumlah error yang diperoleh adalah 6 data


86

pengujian. Hasil ini sama dengan persentase keberhasilan pada jarak 50 cm.

Kemudian penulis akan menunjukan hasil pengujian pada jarak 150 cm sebagai

berikut.

Transmitter Receiver
Data conversion Dec to Binary Data
No St
Flex Transmit Receiver Remainde Flex
Binary CRC
Sensor Frame Frame r Sensor
1 362 101101010 1111 1011010101111 0 0 0 E
2 358 101100110 1000 1011001101000 1011001101000 0 358 Be
3 360 101101000 1001 1011010001001 0 0 0 E
4 364 101101100 101 1011011000101 1011011000101 0 364 Be
5 362 101101010 1111 1011010101111 1011010101111 0 362 Be
6 356 101100100 1110 1011001001110 1011001001110 0 356 Be
7 358 101100110 1000 1011001101000 0 0 0 E
8 351 101011111 1111 1010111111111 1010111111111 0 351 Be
9 355 101100011 111 1011000110111 1011000110111 0 355 Be
10 360 101101000 1001 1011010001001 0 0 0 E
11 352 101100000 10 1011000000010 1011000000010 0 352 Be
12 356 101100100 1110 1011001001110 1011001001110 0 356 Be
13 356 101100100 1110 1011001001110 1011001001110 0 356 Be
14 353 101100001 1 1011000010001 0 0 0 E
15 362 101101010 1111 1011010101111 0 0 0 E
16 362 101101010 1111 1011010101111 1011010101111 0 362 Be
17 363 101101011 1100 1011010111100 1011010111100 0 363 Be
18 358 101100110 1000 1011001101000 1011001101000 0 358 Be
19 363 101101011 1100 1011010111100 1011010111100 0 363 Be
20 358 101100110 1000 1011001101000 1011001101000 0 358 Be
Tabel 4. 11 Pengujian Jarak 150 Cm
87

Dari jumlah 20 data pada pengujian jarak 150 cm penulis melakukan

identifikasi tingkat keberhasilan dengan hasil sebagai berikut.

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−6
¿ x 100 %=0,7 x 100 %=70 %
20

Dapat dilihat dari tabel 4.11 pengujian pada jarak 150 cm memiliki tingkat

keberhasilan yang sama dengan jarak 50 cm dan 100 cm yaitu 70 % dengan

jumlah error yaitu 6 data. Selanjutnya penulis akan menunjukan hasil pengujian

beserta tingkat keberhasil pengujian pada jarak 200 cm sebagai berikut.

Tabel 4. 12 Pengujian Jarak 200 Cm

Transmitter Receiver
Data conversion Dec to Binary Data
No Flex Flex Status
CR Transmit Receiver Remainde
Senso Binary Senso
C Frame Frame r
r r
10110010 101100101110
1 357 1101 0 0 0 Error
1 1
10110011 101100110100 101100110100 Berhasi
2 358 1000 0 358
0 0 0 l
10110011 101100110100 101100110100 Berhasi
3 358 1000 0 358
0 0 0 l
10110100 101101000100
4 360 1001 0 0 0 Error
0 1
10110001 101100011011 101100011011 Berhasi
5 355 111 0 355
1 1 1 l
10110010 101100100111 101100100111 Berhasi
6 356 1110 0 356
0 0 0 l
10110001 101100011011 101100011011 Berhasi
7 355 111 0 355
1 1 1 l
10110010 101100101110 101100101110 Berhasi
8 357 1101 0 357
1 1 1 l
10110010 101100101110 101100101110 Berhasi
9 357 1101 0 357
1 1 1 l
10 357 10110010 1101 101100101110 0 0 0 Error
88

1 1
10110010 101100100111
11 356 1110 0 0 0 Error
0 0
10110010 101100100111
12 356 1110 0 0 0 Error
0 0
10110010 101100100111
13 356 1110 0 0 0 Error
0 0
10110011 101100111101 101100111101 Berhasi
14 359 1011 0 359
1 1 1 l
10101111 101011110110 101011110110 Berhasi
15 350 1100 0 350
0 0 0 l
10110011 101100110100 101100110100 Berhasi
16 358 1000 0 358
0 0 0 l
10110010 101100100111 101100100111 Berhasi
17 356 1110 0 356
0 0 0 l
10110010 101100101110 101100101110 Berhasi
18 357 1101 0 357
1 1 1 l
10110101 101101011110 101101011110 Berhasi
19 363 1100 0 363
1 0 0 l
10110001 101100010010 101100010010 Berhasi
20 354 100 0 354
0 0 0 l

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−6
¿ x 100 %=0,7 x 100 %=70 %
20

Dapat dilihat dari tabel 4.12 pengujian pada jarak 150 cm memiliki tingkat

keberhasilan yang sama dengan jarak 50 cm dan 100 cm yaitu 70 % dengan

jumlah error yaitu 6 data. Selanjutnya adalah hasil pengujian beserta tingkat

keberhasilan pengujian pada jarak 250 cm sebagai berikut.

Tabel 4. 13 Pengujian Jarak 250 Cm

No Transmitter Receiver Status


Data conversion Dec to Binary Data
Flex Binary CR Transmit Receiver Remainder Flex
89

C Frame Frame
Sensor Sensor
1 357 101100101 1101 1011001011101 0 0 0 Error
2 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
3 358 101100110 1000 1011001101000 1011001101000 0 358 Berhasil
4 355 101100011 111 1011000110111 0 0 0 Error
5 351 101011111 1111 1010111111111 1010111111111 0 351 Berhasil
6 356 101100100 1110 1011001001110 0 0 0 Error
7 356 101100100 1110 1011001001110 0 0 0 Error
8 351 101011111 1111 1010111111111 0 0 0 Error
9 359 101100111 1011 1011001111011 0 0 0 Error
10 356 101100100 1110 1011001001110 0 0 0 Error
11 357 101100101 1101 1011001011101 1011001011101 0 357 Berhasil
12 354 101100010 100 1011000100100 1011000100100 0 354 Berhasil
13 351 101011111 1111 1010111111111 1010111111111 0 351 Berhasil
14 355 101100011 111 1011000110111 1011000110111 0 355 Berhasil
15 355 101100011 111 1011000110111 1011000110111 0 355 Berhasil
16 357 101100101 1101 1011001011101 0 0 0 Error
17 355 101100011 111 1011000110111 1011000110111 0 355 Berhasil
18 356 101100100 1110 1011001001110 1011001001110 0 356 Berhasil
19 354 101100010 100 1011000100100 1011000100100 0 354 Berhasil
20 359 101100111 1011 1011001111011 0 0 0 Error

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−9
¿ x 100 %=0,55 x 100 %=55 %
20

Pada tabel 4.13 dapat dilihat bahwa error yang didapatkan lebih besar dari
pengujian sebelumnya, error yang didapatkan sebesar 9 data. Dengan
meningkatnya jumlah error yang terdeteksi berpengaruh juga dengan persentase
keberhasilan yang didapat, persentasenya sebesar 55 %. Dengan persentase
tersebut merupakan persentase yang paling rendah dari pada persentase pengujian
sebelumnya. Terakhir, penulis ingin menunjukan hasil pengujian pada jarak 300
cm dan tingkat keberhasil pengujiannya sebagai berikut.

Tabel 4. 14 Pengujian Jarak 300 Cm

No Transmitter Receiver Status


90

Data conversion Dec to Binary Data


Flex Transmit Receiver Flex
Binary CRC Remainder
Sensor Frame Frame Sensor
1 357 101100101 1101 1011001011101 0 0 0 Error
101100110100
2 355 101100011 111 1011000110111 0 355 Berhasil
0
3 351 101011111 1111 1010111111111 0 0 0 Error
4 359 101100111 1011 1011001111011 0 0 0 Error
5 356 101100100 1110 1011001001110 0 0 0 Error
101100110100
6 355 101100011 111 1011000110111 0 355 Berhasil
0
101100010010
7 354 101100010 100 1011000100100 0 354 Berhasil
0
8 357 101100101 1101 1011001011101 0 0 0 Error
101100110100
9 355 101100011 111 1011000110111 0 355 Berhasil
0
10 354 101100010 100 1011000100100 0 0 0 Error
101100001000
11 353 101100001 1 1011000010001 0 353 Berhasil
1
101100110100
12 358 101100110 1000 1011001101000 0 358 Berhasil
0
101100111101
13 359 101100111 1011 1011001111011 0 359 Berhasil
1
101101000100
14 360 101101000 1001 1011010001001 0 360 Berhasil
1
101100010010
15 354 101100010 100 1011000100100 0 354 Berhasil
0
16 353 101100001 1 1011000010001 0 0 0 Error
101100110100
17 358 101100110 1000 1011001101000 0 358 Berhasil
0
18 355 101100011 111 1011000110111 0 0 0 Error
19 351 101011111 1111 1010111111111 0 0 0 Error
101100111101
20 359 101100111 1011 1011001111011 0 359 Berhasil
1

Jumlah Pengujian−PengujianGagal
Tingkat Keberhasilan= x 100 %
Jumlah Pengujian

20−9
¿ x 100 %=0,55 x 100 %=55 %
20

Pada tabel 4.14 dapat dilihat bahwa error yang didapatkan memiliki
kesamaan dengan pengujian pada jarak 250 cm yaitu 9 data dengan tingkat
persentase keberhasilan pengujian sebesar 55 %.
91

4.2.2.2 Analisis Algoritma Cyclic Redudancy Check (CRC)

Dalam bagian analisis algoritma CRC, penulis ingin melakukan komparasi

hasil dari CRC yang rumus perhitungannya sudah include ke program C++

dengan Hasil dari CRC dengan proses perhitungan manual. Tujuannya adalah

untuk membuktikan bahwa hasil data yang didapatkan perhitungan CRC pada

bagian error detection adalah benar. Pada contoh pertama saya mengambil nilai

data pada tabel 4.5 nomor 2 bagian transmitter yaitu nilai 354 dengan nilai biner

101100010 yang mempunyai hasil CRC adalah 0100. Hasil perhitungan algoritma

CRC sebagai berikut.

Gambar 4.19 Perhitungan Manual Algoritma CRC Bagian Transmitter


Pada gambar 4.22 dapat dilihat bahwa dalam perhitungan algoritma secara

manual yang dikerjakan oleh penulis mempunyai hasil CRC adalah 0100, Maka

hasil dari perhitungan manual dengan perhitunga yang di inputkan ke dalam

program memiliki nilai yang sama. Selanjutnya pada bagian receiver, pada bagian
92

receiver frame mempunyai nilai 1011000100100 dengan nilai remainder adalah

0000. Berikut ini hasil perhitungan manual algoritma CRC bagian receiver.

Gambar 4.20 Perhitungan Manual Algoritma CRC Bagian Receiver


Pada gambar 4.23 dapat dilihat bahwa remainder yang dihasilkan dari

perhitungan manual algoritma CRC adalah 0000, hasil ini membuktikan bahwa

nilai remainder dari perhitungan CRC yang di includekan ke dalam program

mempunyai nilai yang sama.

Kemudian pada contoh yang ke 2, penulis mengambil nilai 360 pada baris

nomor 9 bagian transmitter pada tabel 4.5 dengan nilai CRC adalah 1001. Berikut

hasil perhitungannya.
93

Gambar 4.21 Perhitungan Manual Algoritma CRC Bagian Transmitter


Pada gambar 4.24 dapat dilihat bahwa nilai CRC yang didapatkan dari

perhitungan manual adalah 1001, hasil tersebut mempunyai kesamaan dengan

nilai yang diapat dari perhitungan algoritma yang di inputkan ke program.

Selanjutnya hasil dari perhitungan algoritma CRC pada bagain receiver yang

mempunyai receiver frame adalah 1011010001001. Hasil perhitungan algoritma

CRC secara manual sebagai berikut


94

Gambar 4. 22 Perhitungan Manual Algoritma CRC bagian Receiver


Pada gambar 4.25 mempunyai nilai remainder adalah 0000, nilai tersebut

memiliki kesamaan dengan nilai remainder yang tertulis pada tabel 4.5 baris

nomor 9. Kemudian contoh ke 3 penulis mengambil data dengan nilai 704, nilai

tersebut terdapat pada tabel 4.5 dengan baris nomor 26. Berikut hasil

perhitungannya.
95

Gambar 4.23 Perhitungan Manual Algoritma CRC Bagian Transmitter


Pada gambar 4.26 dapat dilihat bahwa nilai CRC yang dihasil adala 0100,

nilai tersebut memiliki kesamaan dengan nilai CRC yang berada pada tabel 4.5

pada baris 26 yaitu 0100. Selanjut perhitungan algoritma pada bagian receiver,

nilai receiver frame adalah 10110000000100. Berikut hasil perhitungannya.


96

Gambar 4.24 Perhitungan Manual Algoritma CRC bagian Receiver

Pada gambar 4.27 mempunyai nilai remainder adalah 0000, artinya nilai

tersebut memilik kesamaan dengan nilai remainder yang ada pada tabel 4.5 baris

nomor 29. Selanjut contoh ke 4, penulis mengambil data 630 pada tabel 4.5 baris

nomor 34. Nilai 630 memiliki angka binary adalah 1001110110 dengan nilai CRC

yaitu 1111. Hasil perhitungannya sebagai berikut.


97

Gambar 4. 25 Perhitungan Manual Algoritma CRC Bagian Transmitter

Pada gambar 4.28 dapat dilihat bahwa nilai CRC yang dihasil adala 1111,

nilai tersebut memiliki kesamaan dengan nilai CRC yang berada pada tabel 4.5

pada baris 34 yaitu 1111. Selanjut perhitungan algoritma pada bagian receiver,

nilai receiver frame adalah 10011101101111. Hasil perhitungan remainder dapat

dilihat pada gambar 4.29.


98

Gambar 4. 26 Perhitungan Manual Algoritma CRC Bagian Receiver

Pada gambar 4.29 mempunyai nilai remainder adalah 0000, artinya nilai

tersebut memilik kesamaan dengan nilai remainder yang ada pada tabel 4.5 baris

nomor 34. Selanjut contoh ke 4, penulis mengambil data 459 pada tabel 4.5 baris

nomor 38. Nilai 459 memiliki angka binary adalah 111001011 dengan nilai CRC

yaitu 1000. Hasil perhitungannya sebagai berikut.


99

Gambar 4. 27 Perhitungan Manual Algoritma CRC Bagian Transmitter

Pada gambar 4.30 dapat dilihat bahwa nilai CRC yang dihasil adala 1000,

nilai tersebut memiliki kesamaan dengan nilai CRC yang berada pada tabel 4.5

pada baris 38 yaitu 1000. Selanjut perhitungan algoritma pada bagian receiver,

nilai receiver frame adalah 1110010111000. Hasil perhitungan remainder dapat

dilihat pada gambar 4.29.


100

Gambar 4. 28 Perhitungan Manual Algoritma CRC Bagian Receiver

Pada gambar 4.31 dapat dilihat bahwa hasil remainder yang didapatkan
adalah 0000, nilai tersebut memiliki kesamaan dengan nilai remainder yang ada
pada tabel 4.5 nomor 38.
BAB 5
KESIMPULAN DAN SARAN

5.1 Kesimpulan

Setelah dilakukan penelitian dan pengolah data pada penelitian ini, penulis

memberikan kesimpulan bahwa proses komunikasi antar transceiver

menggunakan modul nrf24L01 dapat berjalan dengan baik. Kemudian dalam

proses pengidentifikasi serta analsisis menggunakan quality of service

menghasilkan persentase packet los 30% dengan tingkat keberhasilan 70%,

Paramater throughtput sebesar 777.43 Kbps, Untuk parameter delay sebesar

733.16 ms, kemudian yang terakhir adalah jitter menghasilkan sebesar 40.41 ms.

Kemudian pada analisis error detection yang menggunakan algoritma cyclic

redundancy check (CRC) pada pengambilan data sebanyak 120 kali menghasil

error detection 30 % dan Tingkat keberhasilnya adalah 70 %.

5.2 Saran

Berdasarkan penelitian yang telah dilakykan, saran yang dapat diberikan


penulis dalam pengambangan alat ini untuk kedepannya adalah sebagai berikut.
1. Dalam proses komunikasi dengan modul nrf24L01 tidak
direkomendasikan ketika data yang dikirim lebih dari satu data, sebagai
pada penilitian mengirimkan 5 data flex sensor Karena semakin banyak
yang dikirimkan potensi mengalami packet loss juga semakin besar
sehingga banyak data yang corrupt.
2. Modul komunikasi yang compatible untuk alat ini disarankan
menggunakan xbee module karena dari segi spefikasi dan kekuatan
dalam pengiriman lebih bagus dari pada nrf24l01 module.
3. Komunikasi nrf24l01 module sering mengalami noise dikarenakan
faktor lingkungan ketika pengambilan data, Penulis menyarankan ketika
102

pengambilan data diruang yang terbuka sehingga noise dapat


diminimalisir.
4. Metode yang bisa digunakan dalam pengembangan alat ini yaitu error
correction, sehingga ketika ada data yang mengalami error atau corrupt
dapat secara otomatis diperbaiki oleh sistem.
5. Menambahkan algoritma lain selain algoritma cyclic redundancy check
(CRC) agar didapatkan data yang lebih akurat.
DAFTAR PUSTAKA

Aeni, K., Data, M. and Bhawiyuga, A. (2017) ‘Analisis Performa


Mekanisme Error Recovery Menggunakan Automatic Repeat Request ( ARQ )
dan Forward Error Correction ( FEC ) pada Multi Receiver File Transfer’, Jurnal
Pengembangan Tekno logi Informasi dan Ilmu Komputer, 1(9), pp. 793–802.

Ardiyanto, L. and Sumiharto, R. (2012) ‘Implementasi Jaringan Sensor


Nirkabel Berbasis Xbee Studi Kasus Pemantauan Suhu dan Kelembaban’, IJEIS
(Indonesian Journal of Electronics and Instrumentation Systems), 2(2), pp. 119–
130. doi: 10.22146/ijeis.2422.

Arduino (no date) DataSheets Arduino Uno R3. Available at:


https://datasheet.octopart.com/Arduino-datasheet.pdf.

Arrosyid, M. H. and Sunarno, E. (2009) ‘Implementasi Wireless Sensor


Network untuk Monitoring Parameter Energi Listrik Sebagai Peningkatan
Layanan Bagi Penyedia Energi Listrik’, pp. 1–10.

Asri, I. et al. (2018) ‘Analisis Performa Jaringan Sensor Nirkabel


Berdasarkan Penentuan Lokasi Node Yang Telah Diimplementasikan Dengan
Algoritma Genetika’, Jurnal Pengembangan Teknologi Informasi dan Ilmu
Komputer, 2(10), pp. 3421–3431.

Faludi, R. (2012) Building Wireless Sensor Network. First Edit. Edited by B.


Jepson. United States of America: O’Reilly Media, Inc.

Mustadi (2012) Disabilitas. Available at: https://betterwork.org/indonesia/


(Accessed: 15 April 2018).

Nordic Semiconductor (2008) Preliminary Product Specification v1.0.


Available at: https://www.sparkfun.com/datasheets/nRF24L01.pdf (Accessed: 25
June 2019).
104

Novaldi, R., Akbar, S. R. and Primananda, R. (2019) ‘Implementasi Error


Detection System Pada Komunikasi Serial Arduino Menggunakan Metode Cyclic
Redundancy Check ( CRC )’, 3(2), pp. 1480–1485.

Nugroho, E. A., Sumaryo, S. and Pangaribuan, P. (2018) ‘Perancangan


Sistem Komunikasi Keyless pada Sepeda Motor Berbasis Algoritma AES’, 5(3),
pp. 4151–4158.

Rochim, A. F. et al. (2014) ‘Perancangan Jaringan Sensor Nirkabel ( JSN )


Untuk Memantau Suhu dan Kelembaban Menggunakan nRF24L01 +’, Jurnal
Teknologi dan Sistem Komputer, 2(4), pp. 267–276.

Santoso, H. (2015) ‘Panduan Gratis Arduino untuk Pemula’, 1.

Shobrina, U. J., Primananda, R. and Maulana, R. (2018) ‘Analisis Kinerja


Pengiriman Data Modul Transceiver NRF24l01 , Xbee dan Wifi ESP8266 Pada
Wireless Sensor Network’, Jurnal Pengembangan Teknologi Informasi dan Ilmu
Komputer, 2(4), pp. 1510–1517. Available at: http://j-ptijk.ub.ac.id.

Sparkfun dataseheet (2014) Dataseheet Flex Sensor. Available at:


https://www.sparkfun.com/datasheets/Sensors/Flex/flex22.pdf (Accessed: 2 April
2019).

Thohari, S. (2014) ‘Pandangan Disabilitas dan Aksesibilitas Fasilitas Publik


bagi Penyandang Disabilitas di Kota Malang’, Indonesia Journal of Disability
Studies, 1(1), pp. 27–37.

Wicaksono, A. W., Widasari, E. R. and Utaminingrum, F. (2017)


‘Implementasi Sistem Kontrol dan Monitoring pH pada Tanaman Kentang
Aeroponik secara Wireless’, Jurnal Pengembangan Teknologi Informasi dan Ilmu
Komputer, 1(5), pp. 386–398. Available at: http://j-ptijk.ub.ac.id.
105

Wulandari, R. (2016) ‘ANALISIS QoS ( QUALITY OF SERVICE ) PADA


JARINGAN INTERNET ( STUDI KASUS : UPT LOKA UJI TEKNIK
PENAMBANGAN JAMPANG KULON – LIPI )’, Jurnal Teknik Informatika
dan Sistem Informasi, 2, pp. 162–172.
LAMPIRAN

L.1 Program Pengontrol Kursi Roda

1. Transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CSN_PIN 8
#define CE_PIN 7
#define led
//TX sarung tangan.
RF24 radio(CE_PIN,CSN_PIN);
//const byte alamat[][6]={ "00001","00002"}; //adres TX RX
const byte alamat [6]="00005";
boolean buttonState=0;
int data1,data2,data3,data4,data5;
const int adc1=A0;
const int adc2=A1;
const int adc3=A2;
const int adc4=A3;
const int adc5=A6;

void setup() {
pinMode(3,OUTPUT);
Serial.begin(9600);
radio.begin();

radio.openWritingPipe(alamat);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
107

void loop() {
//================mengirim data 1==================
radio.stopListening();
int satu=1;
radio.write(&satu, sizeof(satu));
delay(20);
radio.stopListening();
data1=analogRead(adc1);
radio.write(&data1, sizeof(data1));
Serial.print(" SENSOR 1 = ");
Serial.print(data1);
delay(20);
//================mengirim data 2==================
radio.stopListening();
int dua=2;
radio.write(&dua, sizeof(dua));
delay(20);
radio.stopListening();
data2=analogRead(adc2);
radio.write(&data2, sizeof(data2));
Serial.print(" SENSOR 2 = ");
Serial.print(data2);
delay(20);
//================mengirim data 3==================
radio.stopListening();
int tiga=3;
radio.write(&tiga, sizeof(tiga));
delay(20);
radio.stopListening();
data3=analogRead(adc3);
108

radio.write(&data3, sizeof(data3));
Serial.print(" SENSOR 3 = ");
Serial.print(data3);
delay(20);
//================mengirim data 4==================
radio.stopListening();
int empat=4;
radio.write(&empat, sizeof(empat));
delay(20);
radio.stopListening();
data4=analogRead(adc4);
radio.write(&data4, sizeof(data4));
Serial.print(" SENSOR 4 = ");
Serial.print(data4);
delay(20);
//================mengirim data 5==================
radio.stopListening();
int lima=5;
radio.write(&lima, sizeof(lima));
delay(20);
radio.stopListening();
data5=analogRead(adc5);
radio.write(&data5, sizeof(data5));
Serial.print(" SENSOR 5 = ");
Serial.println(data5);
delay(500);
109

2. Receiver
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
//penerima
#define led
RF24 radio(49,48);//pin CE, CSN
//const byte alamat[][6]={"00001","00002"}; //addres rx tx
const byte alamat [6]="00005";
boolean buttonState=0;
int data[12];
int data1,data2,data3,data4,data5;
int incoming;
//pin set motor
const int pin_forward1=2;
const int pin_reserve1=3;
const int pin_pwm1=4;
const int pin_forward2=5;
const int pin_reserve2=6;
const int pin_pwm2=7;
/*const int trigPin1 = 14;
const int echoPin1 = 15;
long duration1;
int distance1;*/

void setup() {
lcd.init();
lcd.init();
110

lcd.backlight();
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
for(int i=0;i<1;i++){
pinMode(pin_forward1,OUTPUT);
pinMode(pin_forward2,OUTPUT);
pinMode(pin_reserve1,OUTPUT);
pinMode(pin_reserve2,OUTPUT);
pinMode(pin_pwm1,OUTPUT);
pinMode(pin_pwm2,OUTPUT);
// pinMode(trigPin1, OUTPUT);
//pinMode(echoPin1, INPUT);
Serial.begin(9600);
pinMode(3,OUTPUT);
Serial.begin(9600);
radio.begin();

// radio.openWritingPipe(alamat[0]); // tx
radio.openReadingPipe(0,alamat); //rx
radio.setPALevel(RF24_PA_MIN);
radio.startListening();

}
void loop() {
/* digitalWrite(trigPin1, LOW);
delayMicroseconds(20);
digitalWrite(trigPin1, HIGH);
111

delayMicroseconds(10);
digitalWrite(trigPin1, LOW);
duration1 = pulseIn(echoPin1, HIGH);
distance1= duration1*0.034/2;
Serial.print("SRF1 = ");Serial.println(distance1);*/
set_motor(0,data1, data2, data3,data4, data5);
if (radio.available()){
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==1){
radio.startListening();
radio.read(&data1, sizeof(data1));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==2){
radio.startListening();
radio.read(&data2, sizeof(data2));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==3){
radio.startListening();
radio.read(&data3, sizeof(data3));
}
delay(20);
112

radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==4){
radio.startListening();
radio.read(&data4, sizeof(data4));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==5){
radio.startListening();
radio.read(&data5, sizeof(data5));

}
delay(20);
Serial.print("data1 : ");Serial.print(data1);
Serial.print(" data2 : ");Serial.print(data2);
Serial.print(" data3 : ");Serial.print(data3);
Serial.print(" data4 : ");Serial.print(data4);
Serial.print(" data5 : ");Serial.println(data5);
//code here
/* lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" CONNECT");*/

}else {
analogWrite(pin_pwm1,120);
113

analogWrite(pin_pwm2,120);
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" TIDAK KONEK");
delay(100);
// stop motor
// while (1){}
//kondisi radio tdk konek
}
}

// put your main code here, to run repeatedly:


void set_motor(int chanel, int data1a, int data2a, int data3a, int data4a, int
data5a){
//maju
if(data5a > 930 ) {
analogWrite(pin_pwm1,180);
analogWrite(pin_pwm2,180);
digitalWrite(pin_forward1,HIGH);
digitalWrite(pin_forward2,HIGH);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
114

lcd.setCursor(0,1);
lcd.print(" KONEK 'MAJU'");
}
//mundur
if( data4a > 895 ){//&& data5a > 910){
analogWrite(pin_pwm1,(180));
analogWrite(pin_pwm2,(180));
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,HIGH);
digitalWrite(pin_reserve2,HIGH);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" KONEK 'MUNDUR'");
}
//kiri
if(data1a > 890 && data2a > 880 && data3a > 870){
analogWrite(pin_pwm1,180);
analogWrite(pin_pwm2,180);
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,HIGH);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" KONEK 'KIRI'");
}
115

//kanan
if(data1a > 890 && data2a > 890 && data5a > 920){
analogWrite(pin_pwm1,180);
analogWrite(pin_pwm2,180);
digitalWrite(pin_forward1,HIGH);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" KONEK 'KANAN'");
}
//stop
if(data1a < 870 && data2a < 870 && data3a < 870 && data4a < 870 &&
data5a < 920){
analogWrite(pin_pwm1,120);
analogWrite(pin_pwm2,120);
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ''KUDA SARPIN''");
lcd.setCursor(0,1);
lcd.print(" KONEK 'STOP'");
}
/*if(distance1 <= 65 )
{
116

analogWrite(pin_pwm1,255);
analogWrite(pin_pwm2,255);
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,LOW);
digitalWrite(pin_reserve2,LOW);
delay (100);
analogWrite(pin_pwm1,(140));
analogWrite(pin_pwm2,(140));
digitalWrite(pin_forward1,LOW);
digitalWrite(pin_forward2,LOW);
digitalWrite(pin_reserve1,HIGH);
digitalWrite(pin_reserve2,HIGH);
delay(1000);*/
//}
//delay(10);
}
117

L.2 Program Quality of Service (QoS)

1. Transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CSN_PIN 8
#define CE_PIN 7
#define led
//TX sarung tangan.
RF24 radio(CE_PIN,CSN_PIN);
//const byte alamat[][6]={ "00001","00002"}; //adres TX RX
const byte alamat [6]="00005";
boolean buttonState=0;
int data1,data2,data3,data4,data5;
const int adc1=A0;
const int adc2=A1;
const int adc3=A2;
const int adc4=A3;
const int adc5=A6;

void setup() {
pinMode(3,OUTPUT);
Serial.begin(9600);
radio.begin();

radio.openWritingPipe(alamat);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}
118

void loop() {
//================mengirim data 1==================
radio.stopListening();
int satu=1;
radio.write(&satu, sizeof(satu));
delay(20);
radio.stopListening();
data1=analogRead(adc1);
radio.write(&data1, sizeof(data1));
Serial.print(" SENSOR 1 = ");
Serial.print(data1);
delay(20);
//================mengirim data 2==================
radio.stopListening();
int dua=2;
radio.write(&dua, sizeof(dua));
delay(20);
radio.stopListening();
data2=analogRead(adc2);
radio.write(&data2, sizeof(data2));
Serial.print(" SENSOR 2 = ");
Serial.print(data2);
delay(20);
//================mengirim data 3==================
radio.stopListening();
int tiga=3;
radio.write(&tiga, sizeof(tiga));
delay(20);
radio.stopListening();
data3=analogRead(adc3);
119

radio.write(&data3, sizeof(data3));
Serial.print(" SENSOR 3 = ");
Serial.print(data3);
delay(20);
//================mengirim data 4==================
radio.stopListening();
int empat=4;
radio.write(&empat, sizeof(empat));
delay(20);
radio.stopListening();
data4=analogRead(adc4);
radio.write(&data4, sizeof(data4));
Serial.print(" SENSOR 4 = ");
Serial.print(data4);
delay(20);
//================mengirim data 5==================
radio.stopListening();
int lima=5;
radio.write(&lima, sizeof(lima));
delay(20);
radio.stopListening();
data5=analogRead(adc5);
radio.write(&data5, sizeof(data5));
Serial.print(" SENSOR 5 = ");
Serial.println(data5);
delay(500);
120

2. Receiver
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
//penerima
#define led
#define CSN_PIN 48
#define CE_PIN 49

RF24 radio(CE_PIN, CSN_PIN);


//const byte alamat[][6]={"00001","00002"}; //addres rx tx
const byte alamat [6]="00005";
boolean buttonState=0;
int data[12];
int nextPacketId=1;
int jumlah_data=1;

unsigned long started_waiting_at;


unsigned long allDelay;
unsigned long startTime, stopTime, lapse;
unsigned long allAvg;
byte packetSize;

struct dataStruct
{
int packetId;
char value[6];
uint32_t crc_Checksum;
}myData;
121

void setup() {
pinMode(3,OUTPUT);
Serial.begin(9600);
radio.begin();

// radio.openWritingPipe(alamat[0]); // tx
radio.openReadingPipe(0,alamat); //rx
radio.setPALevel(RF24_PA_MIN);
radio.startListening();

}
int data1,data2,data3,data4,data5;
int incoming;
void loop() {
if (radio.available())
{
myData.packetId = nextPacketId;
started_waiting_at = millis();
startTime = millis();

radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==1){
radio.startListening();
radio.read(&data1, sizeof(data1));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
122

delay(20);
if (incoming==2){
radio.startListening();
radio.read(&data2, sizeof(data2));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==3){
radio.startListening();
radio.read(&data3, sizeof(data3));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==4){
radio.startListening();
radio.read(&data4, sizeof(data4));
}
delay(20);
radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==5){
radio.startListening();
radio.read(&data5, sizeof(data5));

}
delay(500);
123

Serial.print("Jumlah Data : ");


Serial.println(jumlah_data);

Serial.print("Sequence number : ");


Serial.println(myData.packetId);

Serial.print("data1 : ");Serial.print(data1);
Serial.print(" data2 : ");Serial.print(data2);
Serial.print(" data3 : ");Serial.print(data3);
Serial.print(" data4 : ");Serial.print(data4);
Serial.print(" data5 : ");Serial.println(data5);
Serial.println(" ");
cekdelay();
nextPacketId++;
jumlah_data++;

if(nextPacketId > 5)
{
nextPacketId=1;
jitter_TP();
}
//code here
Serial.println("====================================="
);
Serial.println(" ");
}else{

//kondisi radio tdk konek


}
}
124

void cekdelay()
{
Serial.print("Lama Delay : ");
Serial.print(millis() - started_waiting_at);
Serial.println("mS."); Serial.println(" ");
delay(20);
}

void jitter_TP()
{
//=================Jitter=================
stopTime = millis();
lapse = stopTime - startTime;
Serial.print("Round Trip Time : ");
Serial.print(lapse);
Serial.println(" mS");
allDelay += lapse;
float avg = (allDelay / myData.packetId -1);
float jitter = avg / jumlah_data;

Serial.print("Jitter : ");
Serial.print(jitter);
Serial.println(" milisecond"); Serial.println(" ");

//==================Tp=======================
int bps = 14 * 1024 / lapse;
allAvg += bps;
float TP = allDelay / 10;
Serial.print("BPS : ");
Serial.println(bps);
125

Serial.print("Avg : ");
Serial.println(allAvg);
Serial.print("Throughput Avg : ");
Serial.print(TP);
Serial.println(" KB/s");
}

L.3 Program Cyclic Redudancy Check (CRC)

1. Transmitter
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

#define led

//TX sarung tangan.


RF24 radio(7,8);//pin CNS, CE
//const byte alamat[][6]={ "00001","00002"}; //adres TX RX
const byte alamat [6]="00005";
boolean buttonState=0;
int data1,data2,data3,data4,data5,des;
int a=0;

const int adc1=A0;


const int adc2=A1;
const int adc3=A2;
const int adc4=A3;
const int adc5=A6;

int Data_ke;
int Data;
126

void setup() {
pinMode(3,OUTPUT);
Serial.begin(9600);
radio.begin();

radio.openWritingPipe(alamat);
radio.setPALevel(RF24_PA_MIN);
radio.stopListening();
}

void loop() {
//================mengirim data 1==================
radio.stopListening();
int satu=1;
radio.write(&satu, sizeof(satu));
delay(20);
CRC();

//kirim_CRC();
delay(500);
Void CRC ()
String decToBinary(int n)
{
char hasil[50], ds[20];
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
127

}
int hg = 0;
for (int j = i - 1; j >= 0; j--){
//cout << binaryNum[j];
sprintf(hasil, "%d",binaryNum[j]);
ds[hg] = hasil[0];
hg++;
}
//cout << " =" << ds;
return ds;
}

void CRC()
{
int i,j,k,l,num,fs,des;
int bin[20];
int f[20],arayD[50];
int gs = 5;
int g[20]={1,0,0,1,1};
byte cRc;
data1=analogRead(adc1);
Serial.println(" ");
Serial.print("data1: ");
Serial.println(data1);
num = data1;
//Serial.println(" ");
Serial.print("num : "); Serial.println(num);
String data;
data = decToBinary(num);
Serial.print("Biner : ");
if (data1 >=512)
128

{
fs = 10;
for(int i=0; i<1; i++)
{
char k = data[i];
f[0] = atoi (&k);
arayD[0] = atoi(&k);
Serial.print(arayD[0]);
}

for(int i = 1; i <10; i++ )


{
char k = data[i];
f[i] = atoi (&k);
arayD[i] = atoi(&k);
Serial.print(arayD[i]);
}
}

if(data1 <512)
{
fs = 9;
for(int i = 0; i <9; i++ )
{
char k = data[i];
f[i] = atoi (&k);
arayD[i] = atoi(&k);
Serial.print(arayD[i]);
}
}
Serial.println(" ");
129

//Get Generator
Serial.print("Generator : ");
Serial.println(gs);
//cout<<"\n Enter Generator size: ";
//cin>>gs;

Serial.print("generator : ");
for(int i=0; i<gs; i++)
{
Serial.print(g[i]);
}
Serial.println(" ");
//Append 0's
int rs=gs-1;
Serial.print("Number of 0's to be appended: "); Serial.println(rs);
for (int i=fs; i<fs+rs; i++)
{
f[i]=0;
}

int temp[20];
for(int i=0;i<20;i++)
{
temp[i]=f[i];
}

Serial.print("Message after appending 0's : ");


for(i=0; i<fs+rs;i++)
{
Serial.print(temp[i]);
}
130

Serial.println(" ");

//Division
for(i=0;i<fs;i++)
{
j=0;
k=i;
//check whether it is divisible or not
if (temp[k]>=g[j])
{
for(j=0,k=i;j<gs;j++,k++)
{
if((temp[k]==1 && g[j]==1) || (temp[k]==0 && g[j]==0))
{
temp[k]=0;
}
else
{
temp[k]=1;
}
}
}
}

//CRC
int crc[15];
for(i=0,j=fs;i<rs;i++,j++)
{
crc[i]=temp[j];
}
131

Serial.print("CRC bits: ");


for(i=0;i<rs;i++)
{
Serial.print(crc[i]);
}
Serial.println(" ");

Serial.print("Transmitted Frame: ");


int tf[15];
for(i=0;i<fs;i++)
{
tf[i]=f[i];
}
for(i=fs,j=0;i<fs+rs;i++,j++)
{
tf[i]=crc[j];
}
for(i=0;i<fs+rs;i++)
{
Serial.print(tf[i]);
}

//==================BinToDes======================
for(int i=0;i<fs+rs;i++)
{
int z, x, c;
z= i-((fs+rs)-1);
x= abs(z);
c=pow(2,x);
if(x>=2)
{
132

bin[i]= ((tf[i]*c)+1) ;
if(bin[i]==1) bin[i]=0;
}
if(x<2) bin[i]= (tf[i]*c);
//Serial.print("c: ");
//Serial.println(c);
//bin[i]= ((tf[i]*c)+1) ;
}

if(data1 >= 512)


{
des=((bin[0]+bin[1]+bin[2]+bin[3]+bin[4]+bin[5]+bin[6]+bin[7]+bin[8]+bi
n[9]+bin[10]+bin[11]+bin[12]+bin[13])-1);
}
if(data1 < 512)
{
des=((bin[0]+bin[1]+bin[2]+bin[3]+bin[4]+bin[5]+bin[6]+bin[7]+bin[8]+bi
n[9]+bin[10]+bin[11]+bin[12]));
}

Serial.println(" ");
radio.stopListening();
radio.write(&des, sizeof(des));
Serial.print(" dec Transmitted Frame: = ");
Serial.println(des);
Serial.println(" "); Serial.println(" ");
}

3. Receiver
#include <SPI.h>
133

#include <nRF24L01.h>
#include <RF24.h>
//penerima
#define led
#define CSN_PIN 48
#define CE_PIN 49

RF24 radio(CE_PIN, CSN_PIN);


//const byte alamat[][6]={"00001","00002"}; //addres rx tx
const byte alamat [6]="00005";
boolean buttonState=0;
int data[12], CRC[5];

void setup() {
pinMode(3,OUTPUT);
Serial.begin(9600);
Serial.println (" Receiviing Data . . .");
radio.begin();

// radio.openWritingPipe(alamat[0]); // tx
radio.openReadingPipe(0,alamat); //rx
radio.setPALevel(RF24_PA_MIN);
radio.startListening();

}
int data1,data2,data3,data4,data5,crc;
int codeword;
int incoming;

void loop() {
if (radio.available()){
134

radio.startListening();
radio.read(&incoming, sizeof(incoming));
delay(20);
if (incoming==1){
radio.startListening();
radio.read(&data1, sizeof(data1));
Remainder();
}
delay(20);
//=========================terimaCRC==================
delay(500);
//Serial.print("data1 : ");Serial.println(data1);
}else{

//kondisi radio tdk konek


}
}
Void Remainder ()
String decToBinary(int n)
{
char hasil[50], ds[20];
int binaryNum[32];
int i = 0;
while (n > 0) {
binaryNum[i] = n % 2;
n = n / 2;
i++;
}
int hg = 0;
for (int j = i - 1; j >= 0; j--){
//cout << binaryNum[j];
135

sprintf(hasil, "%d",binaryNum[j]);
ds[hg] = hasil[0];
hg++;
}
//cout << " =" << ds;
return ds;
}

void Remainder()
{
int i,j,k,l,num,fs,des;
int bin[20];
int f[20],arayD[50];
int temp[20];
int gs = 5;
int RS = gs-1;
int g[20]={1,0,0,1,1};
byte cRc;
//codeword=analogRead(data1);
Serial.println(" ");
Serial.print("data1: ");
Serial.println(data1);
num = data1;
//Serial.println(" ");
//Serial.print("num : "); Serial.println(num);
String data;
data = decToBinary(num);
Serial.print("Biner : ");

if (data1 >= 8200)


{
136

fs = 14;
for(int i=0; i<1; i++)
{
char k = data[i];
f[0] = atoi(&k);
arayD[0] = atoi(&k);
Serial.print(arayD[0]);
}

for(int i = 1; i <14; i++ )


{
char k = data[i];
f[i] = atoi(&k);
arayD[i] = atoi(&k);
Serial.print(arayD[i]);
}
}

if(data1 < 8200)


{
fs = 13;
for(int i = 0; i <13; i++ )
{
char k = data[i];
f[i] = atoi (&k);
arayD[i] = atoi(&k);
//temp[i]=arayD[i];
Serial.print(arayD[i]);
}
}
137

Serial.println("");
//Serial.print("Receiver side : ");
Serial.print("Received Frame: ");
for(int i=0; i<fs; i++)
{
Serial.print(arayD[i]);
}

for(int i=0; i<fs; i++)


{
temp[i]=arayD[i];
}

//Division
for(int i=0; i<fs; i++)
{
j=0;
k=i;
if (temp[k]>=g[j])
{
for(j=0,k=i;j<gs;j++,k++)
{
if((temp[k]==1 && g[j]==1) || (temp[k]==0 && g[j]==0))
{
temp[k]=0;
}
else
{
temp[k]=1;
}
}
138

}
}
Serial.println("");
Serial.print("Reaminder: ");
int rrem[15];

for (i=fs-RS,j=0;i<fs;i++,j++)
{
rrem[j]= temp[i];
}

for(i=0;i<RS;i++)
{
Serial.print(rrem[i]);
}

int flag=0;
for(i=0;i<RS;i++)
{
if(rrem[i]!=0)
{
flag=1;
}
}

if(data1==0) flag=1;

Serial.println(" ");
if(flag==0)
{
Serial.println("DATA CORRECT");
139

}
else
{
Serial.println("DATA ERROR");
}
Serial.println(" "); //Serial.println(" ");
}

Anda mungkin juga menyukai