3.1 Alir Penelitian
Alir penelitian diadaptasi dari salah satu metode pengembangan software yaitu Waterfall. Penelitian ini terdiri dari beberapa tahap yang disusun dalam alir penelitian seperti ditunjukan pada Gambar 3.1 berikut.
Gambar 3.1 Alir Penelitian
Berdasarkan alir penelitian pada Gambar 3.1, dapat diketahui tahapan- tahapan yang digunakan untuk menyelesaikan penelitian tersebut dimulai dari dilakukannya analisis permasalahan, analisis kebutuhan dan tinjauan pustaka.
Selanjutnya yaitu perancangan sistem, tahap ini memastikan apakah rancangan
sistem sudah sesuai atau belum, jika sudah, maka dilanjut ke persiapan sistem.
Lalu dilakukannya impelementasi, dimana terdapat pengujian fungsional. Jika sistem sudah berjalan sesuai dengan rancangan, maka dilanjutkan dengan pengujian performa dan pengumpulan data. Tahap terakhir yaitu dilakukannya analisis data serta dibuat kesimpulan.
3.2 Komponen Penelitian
Penelitian ini menggunakan beberapa instrumen yang terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Proses implementasi program perangkat keras yang digunakan terdiri dari sebuah komputer dan sebuah Smartphone. Sementara untuk pengujian, perangkat keras yang diperlukan terdiri dari dua buah komputer dan satu Smartphone.
3.2.1 Hardware
Penelitian ini melibatkan tiga hardware yang terdiri dari dua komputer dan satu Smartphone. Masing-masing spesifikasi dan perannya sebagai berikut:
1. Komputer 1
Berikut merupakan spesifikasi lengkap yang ditunjukkan pada Tabel 3.1 di bawah.
Tabel 3.1 Spesifikasi komputer 1
Manufaktur Hawlett Packard
Arsitektur x86_64
Prosesor Intel® Core i3 CPU M 330 @ 2.13GHz
Memori 6 GB
Hardisk 250 GB
Sistem Operasi Linux Ubuntu OS 16.04 LTS (kernel: 4.4.0)
Berdasarkan Tabel 3.1, komputer 1 digunakan untuk proses implementasi membangun program, sebagai pengganti perangkat IoT dalam pengujian fungsional dan sebagai pengganti perangkat IoT pada pengujian performa IoT Platform.
2. Komputer 2
Berikut merupakan spesifikasi lengkap yang ditunjukkan pada Tabel 3.2 di bawah.
Tabel 3.2 Spesifikasi komputer 2
Manufaktur ASUS
Arsitektur x86_64
Prosesor Intel Celeron N3060
Memori 2 GB
Hardisk 500 GB
Sistem Operasi Linux Lubuntu OS 16.04 LTS (kernel: 4.4.0)
Berdasarkan Tabel 3.2, komputer 2 digunakan sebagai IoT Platform pada pengujian fungsional dan performa.
3. Smartphone
Berikut merupakan spesifikasi lengkap yang ditunjukkan pada Tabel 3.3 di bawah.
Tabel 3.3 Spesifikasi smartphone
Manufaktur Xiaomi
Prosesor Snapdragon Quad-core Max 2.00GHz
Memori (RAM) 2 GB
Memori (ROM) 16 GB Total
Sistem Operasi Android 8.1.0 (kernel: 4.9.77)
Berdasarkan Tabel 3.3, smartphone digunakan untuk proses implementasi program serta pengujian fungsional aplikasi mobile.
3.2.2 Software
Sementara pada penelitian ini menggunakan beberapa software pendukung yang dibutuhkan saat proses pengembangan sistem (development), instalasi dan saat berjalan di lingkungan kerja sebenarnya (production). Software di bawah ini merupakan yang dibutuhkan oleh komputer. Beberapa software hanya perlu dipasang di komputer 1, yaitu: Android Studio, Flutter SDK dan VS Code.
Sementara pada komputer 2, yaitu: MongoDB v4.2.7, Node.js v12.13.1 LTS, Yarn 1.22.4, Nginx, PM2, OpenSSL dan Wireshark.
3.3 Analisis Permasalahan
Berdasarkan uraian latar belakang (1.1) dan rumusan masalah (1.2), didapati beberapa analisis permasalahan. Berikut analisis permasalahan yang ditemukan:
1. Kemungkinan jumlah perangkat IoT yang digunakan sangat banyak dan beragam. Sehingga ada kemungkinan IoT Platform mendapat sangat banyak permintaan komunikasi dari perangkat tersebut.
2. Perangkat IoT diletakan di tempat yang berbeda-beda dan memiliki nilai pengukuran yang berbeda-beda tergantung peletakannya.
3. Ada kemungkinan satu pihak yang tidak bertanggung jawab mecoba mengirim data ke IoT Platform dengan meniru perangkat IoT.
4. Posisi pengguna aplikasi mobile secara geografis berbeda-beda. Sementara pengguna hanya perlu peringatan potensi banjir di daerah sekitarnya saja.
5. Pengguna perlu tahu perkembangan banjir berdasarkan rekaman data-data terakhir untuk bisa memperkirakan kemungkinan potensi terburuk.
6. Sangat ada kemungkinan aplikasi mobile sedang tidak dibuka saat potensi banjir mulai muncul.
3.4 Analisis Kebutuhan
Setelah melalui analisis permasalahan tersbut, berikut analisis kebutuhan sistem secara fungsional dari penelitian ini yang di antaranya:
1. IoT Platform harus sanggup menerima banyak permintaan komunikasi.
2. Perangkat IoT harus memiliki identitas masing-masing sesuai nama atau lokasi peletakannya.
3. Perangkat IoT harus di-autentikasi dan komunikasinya dienkripsi saat mengirimkan data ke IoT Platform.
4. Pengguna bisa memilih perangkat IoT yang ingin ditampilkan di aplikasi dan notifikasi.
5. Aplikasi mobile menampilkan rekaman data pengukuran berbanding waktu terakhir pembacaannya dalam bentuk grafik.
6. Aplikasi memunculkan notifikasi peringatan beserta status terakhirnya saat perangkat IoT meminta mengirimkannya.
3.5 Rancangan Sistem
Berlandaskan analisis kebutuhan tersebut, dibuat rancangan sistem yang dibuat. Hasil rancangan ini digunakan dalam implementasi yang sebenarnya.
3.5.1 Arsitektur IoT Platform
Penelitian ini menggunakan dua referensi arsitektur yaitu Tiga-Layer dan Lima-Layer. Arsitektur tiga-layer digunakan untuk menjelaskan gagasan IoT Platform yang dibuat. Sementara arsitektur lima-layer digunakan untuk menjelaskan secara rinci teknologi yang digunakan dan masing-masing perannya.
Berikut merupakan arsitektur tiga layer yang dapat dilihat pada Gambar 3.2.
Gambar 3.2 Arsitektur tiga layer
Berdasarkan pada Gambar 3.2, secara prinsip, IoT Platform ini bekerja dengan mengambil data pengukuran di lingkungan menggunakan IoT Device, mengirimnya melalui IoT Platform dan menampilkannya ke aplikasi mobile.
Berikut ini penjelasan untuk masing-masing layer:
1. Perception Layer
Pada lapisan ini ada IoT Device yang bertugas melakukan pengukuran di lingkungan dan mengirimkan datanya ke IoT Platform.
2. Network Layer
Pada lapisan ini terdapat IoT Platform yang merupakan jembatan untuk menyimpan dan mengirimkan data dari IoT Device ke Aplikasi Mobile.
3. Application Layer
Pada lapisan ini terdapat aplikasi mobile bernama Awas Banjir. Pengguna aplikasi ini merupakan masyarakat di daerah yang terpantau potensi banjir.
Aplikasi ini menampilkan hasil pengukuran dari IoT Device baik melalui tampilan utama sampai notifikasi. Berikut arsitektur lima layer yang dapat dilihat pada Gambar 3.3.
Gambar 3.3 Arsitektur lima layer
Berdasarkan pada Gambar 3.3, ini diperlihatkan arsitektur lima-layer yang menjelaskan hal secara teknis. Arsitektur lima-layer memiliki komponen masing- masing pada setiap layer-nya.
3.5.2 Alur Kerja
Perangkat IoT mengirim data ke IoT Platform, kemudian data direkam ke database di dalamnya. Jika perangkat IoT ingin menyebarkan notifikasi, maka IoT Platform mengirimnya ke Firebase Cloud Messaging yang kemudian diteruskan ke Smartphone pengguna. Smartphone pengguna mengambil data yang telah direkam saat pengguna membuka aplikasi mobile. Aplikasi mobile dan browser admin juga menggunakan Open Street Map untuk memunculkan peta lokasi perangkat IoT. Sementara Browser diperlukan oleh Administrator untuk mengatur identitas perangkat IoT. Alur kerja dari setiap komponen ditunjukan oleh Gambar 3.4 berikut.
Gambar 3.4 Alur kerja sistem
Berdasarkan pada Gambar 3.4, perangkat IoT mengirim data ke IoT Platform, kemudian data direkam ke database di dalamnya. Jika perangkat IoT ingin menyebarkan notifikasi, maka IoT Platform mengirimnya ke Firebase Cloud Messaging yang kemudian diteruskan ke Smartphone pengguna.
Smartphone pengguna mengambil data yang telah direkam saat pengguna membuka aplikasi mobile. Aplikasi mobile dan browser admin juga menggunakan Open Street Map untuk memunculkan peta lokasi perangkat IoT. Sementara Browser diperlukan oleh Administrator untuk mengatur identitas perangkat IoT.
3.5.3 Skema Database
Berikut skema database serta relasi antara satu sama lain yang dapat dilihat pada Gambar 3.5 di bawah.
Gambar 3.5 Skema database
Berdasarkan pada Gambar 3.5, Database pada sistem ini terdiri dari tiga yaitu Devices dan Records_origin dan Records_perhour. Terdapat field last_recorded yang merupakan embeded object dari nilai rekaman terakhir.
Hal ini berguna seperti cache agar sistem tidak perlu melakukan look-up database terlalu lama untuk mencarinya. Sementara itu Records_perhour merupakan agregasi nilai rata-rata setiap 1 jam dari Records_origin agar tidak melakukan perhitungan berulang kali saat mengambil data. Field recorded_at diberi index khusus yaitu Time To Live (TTL) untuk memberi tahu kapan data harus dihapus dari database karena sudah tidak diperlukan lagi. Pada penelitian ini nilai TTL yang diberikan adalah 1 jam pada Records_origin dan 2 minggu pada Records_perhour.
3.5.4 Skema Akses Protokol HTTP
Perancangan akses protokol HTTP digunakan untuk mendefinisikan aturan dalam mengirimkan HTTP request ketika ingin mengirim atau mengambil data dari IoT Platform. Pada penelitian ini terdapat beberapa endpoint dengan masing- masing fungsi yang detailnya didefinisikan dalam (Lampiran A-9).
3.5.5 Tampilan UI Admin
Web admin yang dibuat merupakan Single Page App (hanya terdiri dari satu halaman) dengan tiga layar seperti ditunjukan pada Gambar 3.6 berikut.
Gambar 3.6 Tampilan UI admin
Berdasarkan pada Gambar 3.6, admin bisa mengakses halaman admin melalui browser dengan mengetikan home-page domain aplikasi yang secara langsung mengakses endpoint GET /. Setelah itu muncul layar login, kemudian admin masuk menggunakan username dan password khusus admin. Halaman devices menampilkan daftar IoT Device. Jika diklik pada namanya maka muncul detail IoT Device dan admin bisa mengubah datanya pada halaman tersebut.
3.5.6 Tampilan UI Aplikasi Mobile
Tampilan aplikasi mobile terdiri dari tiga halaman yaitu List Devices, Add Device to List dan Detail Device seperti ditunjukan oleh Gambar 3.7 berikut.
Gambar 3.7 Tampilan UI aplikasi mobile
Berdasarkan pada Gambar 3.7, saat membuka aplikasi mobile ditampilkan daftar perangkat IoT yang sudah ditambahkan ke list sebelumnya. Jika diklik, maka muncul detail rekaman dari perangkat IoT dalam bentuk grafik sesuai dengan masing-masing pengukuran sensor. Pengguna juga bisa mendapatkan notifikasi saat aplikasi tertutup. Jika notifikasi itu ditekan, maka langsung ditujukan ke detail perangkat IoT yang terkait. Pengguna bisa menekan tombol tambahkan pada halaman awal untuk menuju halaman Add Device to List. Pada halaman tersebut pengguna bisa menambahkan perangkat IoT baru agar nantinya tampil di halaman List Device. Pengguna bisa menekan tombol hapus pada halaman Detail Device untuk menghapus perangkat IoT dari List.
3.6 Skenario Pengujian 3.6.1 Pengujian TLS
Berikut merupakan scenario pengujian TLS dengan pertukaran data antara Client dan Server yang dapat dilihat pada Gambar 3.8.
Gambar 3.8 Skenario pengujian TLS
Berdasarkan pada Gambar 3.8, pengujian TLS secara spesifik menguji enkripsi data pada lapisan transport. Pengujian TLS menggunakan Wireshark untuk melakukan sniffing packet data yang lewat antara perangkat IoT dengan IoT Platform atau aplikasi mobile dengan IoT Platform. Jika pertukaran data antara Client dan Server dienkripsi maka dianggap bahwa pengujian TLS berhasil.
3.6.2 Pengujian Fungsional
Pengujian fungsional dimaksudkan untuk memastikan bahwa sistem dapat melakukan sesuai yang perancangan (sesuai spesifikasi di Lampiran A-11).
Berikut skenario pengujian fungsional yang dapat dilihat pada Gambar 3.9.
Gambar 3.9 Skenario pengujian fungsional
Berdasarkan pada Gambar 3.9, perangkat IoT diperankan oleh sebuah program pada komputer 1 yang meniru cara kerja perangkat IoT yang sebenarnya.
Sementara IoT Platform diperankan oleh komputer 2 dan aplikasi mobile langsung diinstal di Smartphone.
3.6.3 Pengujian Performa
Pengujian performa terdiri dari dua kelompok yaitu antara perangkat IoT dengan IoT Platform dan aplikasi mobile dengan IoT Platform. Pengujian performa 1 mensimulasikan sejumlah 20 sampai 200 perangkat IoT yang mengirim ke IoT Platform. Skenario pengujian performa 1 dapat dilihat pada Gambar 3.10 berikut.
Gambar 3.10 Skenario pengujian performa 1
Berdasarkan pada Gambar 3.10, setiap perangkat IoT mengirim sebuah request. Namun, sebelumnya perlu dipersiapkan terlebih dahulu identitas perangkat IoT sebanyak 200 perangkat. Sehingga seluruh perangkat IoT menggunakan identitas yang berbeda.
Sementara pada pengujian performa 2 mensimulasikan 50 sampai 500 smartphone yang mengambil data dari IoT Platform. Skenario pengujian performa 1 dapat dilihat pada Gambar 3.11 berikut.
Gambar 3.11 Skenario pengujian performa 2
Berdasarkan pada Gambar 3.11, setiap smartphone mengirim sebuah request berisi permintaan mengambil 10 perangkat IoT yang terdaftar.
3.7 Tempat dan Jadwal Penelitian
Penelitian dilaksanakan di Laboratorium Student Research Club Teknik Elektro Universitas Sultan Ageng Tirtayasa dari tanggal 7 Januari sampai dengan 7 Maret 2021.