LAMPIRAN
Lampiran A Berkas Konfigurasi dan Catatan
Lampiran A.1 Struktur Program IoT Platform
Lampiran A.3 Catatan Instal Packages API Gateway
Lampiran A.5 Berkas self-signed-skripsi.key
Lampiran A.7 Berkas fcm-key.json
Lampiran A.8 Struktur Program Aplikasi Mobile
Lampiran A.9 Catatan Keygen Android
Lampiran A.11 Catatan Flutter Build APK
Lampiran A.12 Catatan Instalasi Alat Utilitas Pengujian
Lampiran A.14 Berkas skripsi-public.pem
Lampiran A.15 Berkas .env
Lampiran A.16 Berkas konfigurasi Nginx
Lampiran A.17 Skema HTTP
Authorization: Bearer <jwt>
}
GET /device/list Query {
search: string, ids: string[], limit: number }
Header {
Authorization: Bearer <jwt>
}
Code 200 Body {
_id: string, name: string, description: string, last_recorded: date, coordinate: {
lat: number, lng: number }
}[]
Berguna untuk mengambil list IoT Device yang tersedia. Header Authorization hanya diperlukan oleh Web admin IoT Platform agar bisa mengakses data konfidensial seperti secret_key.
GET /device/:id/write Query {
ultrasonic: number, waterlevel: number, power: number, notify: number, _token: string }
Code 201 Digunakan untuk merekam data dari IoT Device dengan ID tertentu. Query notify diatur ke true jika IoT Device ingin memberikan notifikasi.
POST /device Header {
Authorization: Bearer <jwt>
} Body {
name: string, description: string, secret_key: string, coordinate: {
lat: number, lng: number }
}
Code 201 Body {
_id: string, name: string, description: string, last_recorded: date, coordinate: {
lat: number, lng: number }
}
Digunakan oleh Web admin IoT Platform untuk menambahkan perangkat IoT baru yang belum terdaftar.
PUT /device/:id Header {
Authorization: Bearer <jwt>
} Body {
name: string,
Code 200 Body {
_id: string, name: string, description: string, last_recorded: date, coordinate: {
Berguna untuk memperbaharui data IoT Device dengan ID tertentu.
Authorization: Bearer <jwt>
}
GET /device/:id Header {
Authorization: Bearer <jwt>
} Query {
with_log: boolean, log_mode: enum (realtime | 1hour | 2days | 2weeks) }
Code 200 Body {
_id: string, name: string, description: string, last_recorded: date, coordinate: {
lat: number, lng: number }
}
Untuk mengambil rekaman data dari suatu IoT Device dengan ID tertentu.
Lampiran A.18 Spesifikasi Pengujian Fungsional
No Spesifikasi Masukan Tindakan Keluaran Diharapkan
1 Login web admin Memasukan username,
password, lalu Login Muncul layar utama berisi list perangkat IoT 2
Membuat identitas perangkat IoT
Muncul form perangkat IoT
Mengisi data Pindah ke layar utama
Perangkat IoT (sesuai data) baru muncul 3Mengubah data identitas perangkat IoT
Menekan nama perangkat
IoT pada list Muncul form perangkat IoT yang terisi data lama
Mengubah data Pindah ke layar utama
Perangkat IoT yang baru diubah muncul
4
Menghapus identitas perangkat IoT
Menekan nama perangkat
IoT pada list Muncul form perangkat IoT yang terisi data lama Muncul alert konfirmasi Alert tertutup
Muncul alert konfirmasi Pindah ke layar utama Perangkat IoT yang dihapus tidak ada di list
7
IoT Platform menolak pengiriman data yang tidak valid oleh perangkat IoT
Perangkat IoT mengirim data pengukuran dengan Id yang tidak terdaftar
Operasi ditolak dan menghasilkan error 404 Perangkat IoT mengirim
data pengukuran dengan Id yang terdaftar, tapi dengan secret key salah
Operasi ditolak dan menghasilkan error 401 Perangkat IoT mengirim
data pengukuran tidak lengkap dengan Id dan secret key benar
Operasi ditolak dan menghasilkan error 400 8
Menghapus perangkat IoT dari list di aplikasi mobile
Pengguna menekan tombol
Device Muncul alert konfirmasi Alert tertutup
Muncul alert konfirmasi Pindah ke layar utama Perangkat IoT yang dihapus tidak ada di list 9
Perangkat IoT mengirim data pengukuran dengan notifikasi peringatan
Perangkat IoT mengirim data pengukuran beserta permintaan notifikasi dengan Id yang
sebelumnya ditambahkan pada List aplikasi mobile
Muncul notifikasi pada Smartphone pengguna aplikasi mobile
Pengguna aplikasi mobile menekan notifikasi
Aplikasi mobile memunculkan halaman perangkat IoT sesuai ID
Lampiran B Kode Program IOT Platform
Lampiran B.1 cloud/admin/babel.config.js
Lampiran B.2 cloud/admin/package.json
Lampiran B.7 cloud/admin/src/assets/styles/_overrides.scss
Lampiran B.8 cloud/admin/src/assets/styles/_variables.scss
Lampiran B.9 cloud/admin/src/main.js
Lampiran B.10 cloud/admin/src/main.scss
Lampiran B.11 cloud/admin/src/registerServiceWorker.scss
Lampiran B.12 cloud/admin/src/router/index.js
Lampiran B.13 cloud/admin/src/views/Device.vue
Lampiran B.14 cloud/admin/src/views/List.vue
Lampiran B.15 cloud/admin/src/views/Login.vue
Lampiran B.16 cloud/admin/vue.config.js
Lampiran B.17 cloud/server/index.js
Lampiran B.18 cloud/server/package.json
Lampiran B.19 cloud/server/scripts/cron-aweek-aggregate.js
Lampiran B.20 cloud/server/src/admin-actions.js
Lampiran B.22 cloud/server/src/device-actions.js
Lampiran B.24 cloud/server/src/mongodb.js
Lampiran B.24 cloud/utils/pacakge.json
Lampiran B.25 cloud/utils/src/create-bot.js
Lampiran B.26 cloud/utils/src/create-jwt.js
Lampiran B.27 cloud/utils/src/create-key-pairs.js
Lampiran B.29 cloud/utils/src/simulate-device-write-log.js
Lampiran B.30 cloud/utils/src/simulate-mobile-app-endpoint.js
Lampiran B.31 cloud/utils/util.js
Lampiran C Kode Program Aplikasi Mobile
Lampiran C.1 mobile/android/app/build.gradle
Lampiran C.3 mobile/android/app/src/main/AndroidManifest.xml
Lampiran C.9 mobile/android/build.gradle
Lampiran C.10 mobile/android/gradle/wrapper/gradle-wrapper.properties
Lampiran C.15 mobile/lib/entities/sensor_data.dart
Lampiran C.16 mobile/lib/entities/sensor_record_data.dart
Lampiran C.17 mobile/lib/main.dart
Lampiran C.18 mobile/lib/screens/sensoraddtolist_screen.dart
Lampiran C.19 mobile/lib/screens/sensoritem_screen.dart
Lampiran C.20 mobile/lib/screens/sensorlist_screen.dart
Lampiran C.21 mobile/lib/widgets/sensor_add_to_list_item.dart
Lampiran C.23 mobile/lib/widgets/sensor _parameter_chart.dart
Lampiran C.25 mobile/pubspec.yaml
Lampiran D Data Pengukuran Performa
Lampiran D.1 Performa saat perangkat IoT mengirim data (client)
Total Mulai Selesai L ms SR Bytes R Bytes W %SR Req/s Read/R Write/R20 9:14:18 9:14:18 150 20 2740 6850 100 133,33 137 342,5 20 9:14:19 9:14:19 81 20 2740 6847 100 246,91 137 342,35 20 9:14:19 9:14:19 89 20 2740 6849 100 224,72 137 342,45 40 9:14:24 9:14:24 296 40 5480 13700 100 135,14 137 342,5 40 9:14:24 9:14:25 173 40 5480 13698 100 231,21 137 342,45 40 9:14:25 9:14:25 187 40 5480 13697 100 213,9 137 342,43 60 9:14:30 9:14:30 233 60 8220 20544 100 257,51 137 342,4 60 9:14:30 9:14:31 240 60 8220 20549 100 250 137 342,48 60 9:14:31 9:14:31 219 60 8220 20553 100 273,97 137 342,55 80 9:14:36 9:14:37 291 80 10960 27400 100 274,91 137 342,5 80 9:14:37 9:14:37 284 80 10960 27400 100 281,69 137 342,5 80 9:14:37 9:14:37 303 80 10960 27408 100 264,03 137 342,6 100 9:14:43 9:14:43 367 100 13700 34248 100 272,48 137 342,48 100 9:14:43 9:14:43 353 100 13700 34246 100 283,29 137 342,46 100 9:14:44 9:14:44 338 100 13700 34259 100 295,86 137 342,59 120 9:14:49 9:14:52 341 120 16440 41095 100 351,91 137 342,46 120 9:14:53 9:14:53 418 120 16440 41090 100 287,08 137 342,42 120 9:14:53 9:14:54 385 120 16440 41102 100 311,69 137 342,52 140 9:14:59 9:14:59 441 140 19180 47950 100 317,46 137 342,5 140 9:14:59 9:15:00 430 140 19180 47951 100 325,58 137 342,51 140 9:15:00 9:15:00 424 140 19180 47928 100 330,19 137 342,34 160 9:15:05 9:15:07 528 160 21920 54793 100 303,03 137 342,46 160 9:15:07 9:15:08 533 160 21920 54789 100 300,19 137 342,43 160 9:15:08 9:15:08 565 160 21920 54779 100 283,19 137 342,37 180 9:15:14 9:15:14 594 180 24660 61633 100 303,03 137 342,41 180 9:15:14 9:15:15 558 180 24660 61639 100 322,58 137 342,44
Lampiran D.2 Performa saat perangkat IoT mengirim data (server)
Waktu CPU (%) Memory (%) Memory (KB)9:14:12 6.481 36.093 699380
9:14:14 7.407 36.102 699536
9:14:16 6.542 36.103 699556
9:14:18 5.607 36.096 699436
9:14:20 7.339 36.136 700208
9:14:22 6.481 36.137 700224
9:14:23 4.673 36.139 700260
9:14:25 12.264 36.144 700360
9:14:27 4.717 36.163 700724
9:14:29 8.411 36.165 700772
9:14:31 21.101 36.203 701508
9:14:33 7.477 36.297 703324
9:14:35 5.556 36.298 703352
9:14:37 28.155 36.232 702072
9:14:39 7.407 36.469 706652
9:14:41 5.556 36.466 706596
9:14:43 35.577 36.463 706536
9:14:45 7.339 36.539 708016
9:14:47 8.333 36.537 707976
9:14:49 6.481 36.541 708044
9:14:51 6.481 36.544 708108
9:14:53 29.126 36.355 704456
9:14:55 5.607 36.569 708588
9:14:57 5.607 36.575 708716
9:14:59 6.542 36.571 708632
9:15:20 6.422 36.799 713048 9:15:22 39.604 36.531 707856
9:15:24 4.673 36.639 709956
9:15:26 12.150 36.636 709896
9:15:28 7.339 36.642 710004
9:15:30 6.542 36.638 709932
9:15:32 5.607 36.638 709936
9:15:34 7.407 36.641 709988
9:15:36 6.481 36.645 710072
9:15:38 6.604 36.639 709960
Lampiran D.3 Performa saat aplikasi mobile mengambil data (client)
Total Mulai Selesai L ms SR Bytes R Bytes W %SR Req/s Read/R Write/R50 9:16:07 9:16:08 277 50 76908 4200 100 180,51 1538,16 84 50 9:16:08 9:16:08 223 50 77006 4200 100 224,22 1540,12 84 50 9:16:08 9:16:08 203 50 77104 4200 100 246,31 1542,08 84 100 9:16:14 9:16:14 381 100 153032 8400 100 262,47 1530,32 84 100 9:16:14 9:16:15 381 100 153718 8400 100 262,47 1537,18 84 100 9:16:15 9:16:15 336 100 154208 8400 100 297,62 1542,08 84 150 9:16:20 9:16:21 523 150 231508 12600 100 286,81 1543,39 84 150 9:16:21 9:16:22 599 150 230724 12600 100 250,42 1538,16 84 150 9:16:22 9:16:23 508 150 231606 12600 100 295,28 1544,04 84 200 9:16:28 9:16:28 733 200 306946 16800 100 272,85 1534,73 84 200 9:16:29 9:16:29 685 200 304594 16800 100 291,97 1522,97 84 200 9:16:29 9:16:30 705 200 304888 16800 100 283,69 1524,44 84 250 9:16:35 9:16:36 826 250 385422 21000 100 302,66 1541,69 84 250 9:16:37 9:16:37 817 250 382678 21000 100 306 1530,71 84 250 9:16:38 9:16:39 876 250 383756 21000 100 285,39 1535,02 84 300 9:16:44 9:16:45 958 300 462624 25200 100 313,15 1542,08 84 300 9:16:45 9:16:46 1062 300 456940 25200 100 282,49 1523,13 84 300 9:16:46 9:16:47 991 300 458508 25200 100 302,72 1528,36 84 350 9:16:53 9:16:54 1074 350 539728 29400 100 325,88 1542,08 84 350 9:16:54 9:16:55 1113 350 540806 29400 100 314,47 1545,16 84 350 9:16:55 9:16:56 1096 350 538748 29400 100 319,34 1539,28 84 400 9:17:01 9:17:03 1204 400 617028 33600 100 332,23 1542,57 84 400 9:17:03 9:17:05 1165 400 617910 33600 100 343,35 1544,78 84 400 9:17:05 9:17:07 1254 400 616734 33600 100 318,98 1541,84 84
Lampiran D.4 Performa saat aplikasi mobile mengambil data (server)
Waktu CPU (%) Memory (%) Memory (KB)9:16:03 5.607 36.642 701000
9:16:05 5.556 36.638 709940
9:16:07 5.660 36.635 709880
9:16:09 38.462 36.419 705684 9:16:10 16.981 36.396 705236
9:16:12 5.556 36.399 705300
9:16:14 39.806 36.426 705820
9:16:16 8.182 36.784 712756
9:16:18 6.422 36.785 712780
9:16:20 10.577 36.785 712788 9:16:22 35.238 36.855 714140
9:16:24 6.481 36.980 716556
9:16:26 8.411 36.970 716360
9:16:28 31.068 36.978 716528 9:16:30 64.078 37.048 717876
9:16:32 5.556 37.149 719824
9:16:34 7.547 37.153 719908
9:16:36 60.748 37.153 719908 9:16:38 32.000 37.248 721752
9:16:40 6.481 37.370 724112
9:16:42 6.542 37.371 724144
9:16:44 10.185 37.375 724216 9:16:46 58.095 37.386 724424 9:16:48 25.243 37.655 729644
9:16:50 8.333 37.759 731644
9:16:52 5.660 37.757 731616
9:16:54 61.905 38.032 736944 9:16:56 64.762 38.032 736948
9:17:07 10.577 38.041 737108
9:17:09 5.607 38.037 737032
9:17:11 6.422 38.042 737128
9:17:13 27.347 38.119 738624 9:17:15 49.048 38.137 738984 9:17:17 15.660 38.133 738900
9:17:19 7.477 38.136 738952
9:17:21 5.714 38.129 738828
9:17:23 28.269 38.143 739100 9:17:25 51.782 38.138 739004 9:17:27 16.604 38.155 739336
9:17:29 7.477 38.157 739372
9:17:31 5.607 38.156 739348
9:17:33 6.481 38.157 739368
9:17:35 6.422 38.149 739208
9:17:37 8.491 38.155 739336
9:17:39 5.607 38.159 739396
9:17:41 6.542 38.156 739352