2.2.1 Deskripsi Pekerjaan dan Kebutuhan Klien
Penulis masuk ke Tim Developer IoT selama tiga bulan pelaksanaan magang di PT. Inspiro. Tim Developer IoT bertugas untuk membuat dan mengembangkan sistem antifraud dengan Internet of Things (IoT). Klien kami adalah perusahaan yang bergerak di bidang jasa haircutting. Teknologi yang sudah diterapkan klien adalah kiosk machine sehingga pembayaran lebih efisien dan mengurangi waktu antri. Saat itu, ada kebutuhan klien dalam membuat sistem antifraud, yaitu sistem untuk mencegah kecurangan yang dapat dilakukan oleh Hair Stylist (HS). Contohnya seperti menghindari HS melakukan haircutting tanpa izin, atau aktivitas lain yang tidak melalui proses pembayaran di mesin kiosk.
Bisnis klien tidak menggunakan kasir, karena sudah digantikan dengan mesin kiosk untuk proses pembayaran. Modul penerima uang (bill acceptor) berada di dalam mesin kiosk dan menerima uang pembayaran berupa mata uang Rupiah. Proses bisnis klien dimulai saat kustomer melakukan pembayaran dengan cara menekan tombol cash di mesin kiosk. Setelah itu, kustomer memasukkan uang ke slot penerima uang sampai memenuhi tarif yang ditagihkan. Mesin kiosk akan membuat struk dan kustomer bisa mengambil kertas nomor antrian itu dari mesin kiosk. Selanjutnya, kustomer menunggu nomor antriannya dipanggil oleh HS dan diarahkan menuju box kursi yang telah disediakan. Kustomer akan memperoleh potongan rambut yang sesuai, pembersihan rambut yang ramah lingkungan, dan sisir baru yang digunakan HS pada saat memotong rambut kustomer.
Klien mengharapkan aplikasi dan hardware sistem antifraud ini bisa berjalan secara terus-menerus dan selalu online supaya seluruh aktivitas bisnis bisa dikontrol dari pusat. Oleh karena sistemnya kontinyu dan dipasang di banyak cabang, maka sistem antifraud ini memakai prinsip failover. Prinsipnya apabila device utama (Master) rusak, maka secara otomatis sistem memfungsikan device cadangan (Slave).
61
HS tidak lagi dibebankan masalah teknis ketika terjadinya gangguan sistem, sehingga aktivitas bisnis tetap berjalan sembari teknisi pusat melakukan perbaikan.
2.2.2 Arsitektur Sistem Antifraud
Gambar 2.2.1 – Arsitektur Sistem Antifraud Versi 1
Sistem antifraud yang dikerjakan oleh penulis memiliki dua arsitektur. Arsitektur pertama memakai komunikasi Serial Ethernet, sedangkan arsitektur kedua memakai WiFi. Arduino Master/Slave berfungsi untuk mengontrol relay di setiap box kursi. Durasi waktu untuk menyalanya box kursi sudah diprogram di Arduino dengan threading dari fungsi milis. Konsep ini memungkinkan Arduino mengontrol relay secara bersamaan atau paralel tanpa menunggu aksi sebelumnya terpenuhi.
62
Sistem antifraud bekerja dengan mengatur relay melalui sinyal bit (Hexabyte) yang dikirimkan dari aplikasi (desktop / web) ke perangkat Arduino atau NodeMCU. Sinyal itu akan mematikan atau mengalirkan listrik 220v AC ke box kursi. Aplikasi juga mengirimkan data seperti nomor HS, nomor kursi, dan durasi waktu menyalanya box kursi yang dipilih user. Status listrik di setiap box kursi akan dikirimkan secara realtime ke cloud server sehingga status kursi bisa dipantau dari pusat. Namun, penulis hanya ditugaskan membuat simulasinya di jaringan lokal saja untuk mengirim perintah dari aplikasi (desktop / web) ke perangkat Arduino /NodeMCU dan sebaliknya.
Gambar 2.2.2 – Arsitektur Sistem Antifraud Versi 2
Master/Slave pada arsitektur Gambar 2.2.2 dibentuk dari NodeMCU dan modul keypad 4x4 saja, karena interface program bisa dilihat melalui smartdevice. User bisa mengakses Arduino (Web Server) melalui protokol http (web) dari web browser
63
smartdevice (Android atau perangkat lain), asalkan host user masih terhubung ke dalam jaringan yang sama dengan sistem dan user mengetahui ip address Arduino.
Baik perangkat Master atau Slave mempunyai ip static yang sudah didefinisikan dari awal. Keduanya hidup secara terus menerus untuk mendukung konsep failover. Perangkat yang menerima perintah secara terus menerus adalah Master. Namun, ketika Master mengalami kerusakan atau gangguan, maka Slave akan menggantikan peran Master. Setelah smartdevice mengirimkan perintah ke Master tapi tidak menerima handshake, maka smartdevice akan mengirimkan perintah ke Slave. Perangkat Master lalu bisa diperbaiki tanpa mengganggu jalannya bisnis klien.
2.2.3 Metode Pengerjaan Proyek
Selama pelaksanaan magang, penulis melakukan tiga aktivitas utama, yaitu riset dan pengembangan (R&D), perancangan, dan dokumentasi. Riset dan pengembangan adalah kegiatan mencari solusi dari suatu masalah secara iteratif, seperti coding dan wiring hardware. Aktivitas perancangan lalu dilakukan setelah menemukan solusi yang paling tepat. Dari situ terbentuk sebuah arsitektur, skema, atau rancangan kerja baik sebelum atau sesudah proyek karena kebutuhan bisnis klien yang dinamis dan berubah-ubah. Aktivitas dokumentasi dilakukan supaya penulis bisa menyimpan perubahan sistem itu ke dalam bentuk dokumen dan gambar.
Aktivitas riset dan pengembangan dilakukan untuk menguji solusi yang ditemukan dari internet. Di tahap ini, penulis secara berulang mencoba kode program yang tepat sehingga Arduino / NodeMCU bisa melakukan perintah tiap case sesuai dengan flowchart pada Gambar 2.2.3. Penulis melakukan pembuatan dan pengembangan program untuk Arduino / NodeMCU dengan bahasa pemrograman C dari IDE Arduino. Program itu lalu dikoneksikan ke aplikasi desktop / web memakai Visual Studio 2017 dengan bahasa pemrograman C# dan markup HTML.
Pada aktivitas perancangan, penulis bertugas untuk merancang arsitektur, flowchart, dan wiring diagram yang dibutuhkan untuk pengembangan proyek sesuai
64
dengan keinginan klien dan perusahaan PT. Inspiro. Penulis banyak dibantu oleh Bapak Arvin untuk merancang arsitektur dan case flowchart, serta Bapak Andi Haloho membantu penulis dalam pembuatan skematik / wiring diagram yang menggambarkan koneksi antara pin Arduino dengan sensor / modul.
66
Gambar 2.2.3 – Flowchart Sistem Antifraud.
Gambar 2.2.3 menjelaskan proses bisnis sistem secara keseluruhan dan dipetakan ke dalam beberapa case. Berikut inti penjelasan di setiap case tersebut.
1. Case A memberikan display ke layar LCD yaitu “Tiket tidak valid”.
2. Case B memberikan display ke layar LCD yaitu “Silahkan input ID Stylist”. 3. Case C memberikan display ke layar LCD yaitu “ID Stylist tidak valid”. 4. Case D melakukan command yang sekuensial untuk mengecek status kursi,
mengaktifkan input keypad, user menginputkan nomor kursi, sistem mengecek lagi nomor inputan user, dan jika lolos validasi maka id stylist dan nomor kursi akan dikirimkan ke program desktop untuk disimpan ke dalam database. 5. Case E melakukan command untuk mengalirkan listrik ke box kursi yang dipilih
dengan cara memberikan perintah dari Arduino ke relay.
6. Case F ada di program namun tidak termasuk case Gambar 2.2.3. Fungsinya adalah memberi command yang bisa mengirimkan status kursi ke aplikasi.
67
7. Case G ada di program namun tidak termasuk case Gambar 2.2.3. Fungsinya adalah memberi command yang memutuskan arus listrik dengan memberi perintah ke relay yang dipilih (selain timer dengan fungsi milis).
2.2.4 Wiring Diagram Master atau Slave
Gambar 2.2.4 – Wiring Diagram Sistem Antifraud.
Diagram pada Gambar 2.2.4 adalah perangkat Master atau Slave yang dibentuk dari Arduino Mega 2560, LCD Display 16x2, Potensio, Breadboard, Keypad 4x4, kabel jumper male to male, kabel jumper female to male, dan usb 2.0 tipe A/B. Koneksi pin antara Arduino dan modul tertera di label kuning Gambar 2.2.4. Pin tersebut perlu dihubungkan dengan kabel jumper supaya modulnya bekerja dengan baik.
Perangkat Master atau Slave memiliki IP statis yang berbeda namun fungsinya sama, yaitu mengontrol aliran listrik. Penulis melakukan simulasinya dengan memakai tiga buah lampu 220v AC. Lampu tersebut menandakan status box kursi itu sedang menyala atau mati. Program lalu membaca keadaan relay (state: high/low) sehingga user bisa memantau keadaan listrik di setiap box kursi dari komputer.
68