[Tanya Jawab] Demystifying IoT: Pemrograman IoT Mudah dan Efisien dengan Bantuan AI dan Simulasi Wokwi
1. Pertanyaan dari Bapak Yufi Firdiansyah
Arduino pakai bahasa apa ya pak? Kalau dengan rust bisa berikan contoh pak?
Jawaban dari Nara Sumber: Ini pakai bahasa C atau C++. Jadi yang dipakai di Arduino IDE. Para makers umumnya menggunakan Arduino IDE jadi ini disamakan dengan environment umum pada Arduino IDE.
Saya sendiri belum belajar rust lebih lanjut, tapi kita tanya dahulu ke chat GPT. Ketik "bahasa pemrograman rust untuk pemrograman Arduino dengan kasus yang sama". Dijelaskan dulu, ini kelebihannya. Kalau kita tidak memberikan penuh dia akan memberitahu, seperti pada layar.
Ini ada rust, ada contoh tetapi ini yang board-nya ESP32. Beginilah kalau menggunakan rust dengan konfigurasi yang hampir sama namun board-nya berbeda dan pin-nya mungkin berbeda, delaynya juga kita bisa atur. Jujur saya kurang mempelajari bahasa rust tapi dijawab seperti ini. Mungkin yang lebih tahu bisa berkomentar, tapi kalau dari konfirmasi dari sisi bahasa C ini bukan bahasa C murni. Karena kalau bahasa C bahwa ada set up dan loop yang biasa dipakai. Tapi coba kita run, sama hasilnya, berkedip dan di sini adalah seperti ini. Jadi kembali lagi ke wokwi bahwa wokwi itu kita bisa pakai bahasa C, kalau rust ini termasuk baru. Jadi kita bisa pakai bahasa C normal kemudian micro python dan rust. Kalau teman-teman yang belajar pengolahan data statistik atau AI itu mungkin nyaman menggunakan python, karena langsung melanjutkan. Boleh nanti di Micro controllernya menggunakan mikro python, nanti di real hardware di flashing untuk menggunakan micro python hampir semuanya sama persis.
Rust ini termasuk baru, jujur saya mungkin di 2022 belum ada, 2023 pertanyaan ini baru muncul tentang rust. Dan terbukti ada contoh pemrograman rust tapi mungkin belum banyak yang dipakai.
2. Pertanyaan dari Bapak Endang Kusmayadi
Bagaimana untuk contoh yang ada perintah request on dan off dari user?
Jawaban dari Nara Sumber: Di Advance nanti kita akan menggunakan perintah user jarak jauh, sementara kita akan membuat program ini on off usernya adalah pakai tombol, jadi seakan-akan tombol ini dari, mungkin kabelnya ditarik jauh tapi belum sampai dengan istilahnya remote itu belum. Untuk remote Insya Allah di bulan depan kalau tidak salah seri ketiga itu Advance itu kita akan membahas lebih detail bagaimana remote. Ini ada 3 kalau kita mau IoT, satu ada sistem terbenam buatnya, yang kedua sensor atau aktuatornya atau lampunya, yang ketiga adalah jaringan komunikasi data. Komunikasi data itu nanti kita bahas termasuk adalah bagaimana untuk meremote dari jarak jauh dan nanti kita bisa coba, Bapak saya kasih web dan menyala matikan dari tempat bapak. Di seri berikutnya kita membuat program di Android, ini juga menggunakan program yang gampang jadi tidak perlu coding seperti ini hanya pakai gambar saja, jadi pakai visual. Kita mencoba membuat IoT ini pakai tools-tools yang efisien, free dan gampang ditemukan di sekitar kita, semuanya online. Usernya kalau dari contoh kasus ini adalah kita menambahkan tombol, switch button, kemudian ditaruh (seperti pada layar). Misalnya untuk contoh saya ingin menaruh sensor atau komponen baru, ini ada tanda tanya saya bisa klik di sini dan akan muncul dokumentasinya. Dokumentasinya itu sebenarnya ada contoh. Kalau kita tombolkan berarti nanti kita akan memberikan inputan kepada tombol lagi. Ini adalah digital write, karena kita akan menulis keluar, kalau membaca itu adalah digital read. Digital read maka kita tidak perlu menambahkan, bedanya disini hanya digital read nanti kita kasih variabelnya. Tapi ini adalah cara yang gampang tapi kalau ajaran sesat mudah-mudahan tidak. Ini saya copy kode saya, jadi saya balikan, kalau tadi saya beri perintah, copy kode saya ke chat GPT ini kalau saya enter maka dia akan memberitahu bahwa programmu maksudnya ini. Saya akan menambahkan perintah "tambahkan kode untuk button atau saklar yang mengendalikan LED pada program diatas". Sebenarnya harusnya saya lebih spesifik lagi, button atau saklar itu ada yang sifatnya momentary artinya kita pencet kita lepas dia akan ikut, kita pencet dia on dan kita lepas dia off. Ada yang sifatnya kita pencet sekali dia akan bertahan, dan kita pencet lagi dia akan off. Kita bisa kasih perintah supaya program ini membuat program large, jadi dia akan nahan. Kita kasih perintah sekali dia akan me-memori bahwa ini perintahnya on lalu kita pencet lagi dia akan off, kita pakai ini dulu. Dia akan menuliskan, mengulang lagi dan dia akan kasih tahu taruh di PIN nomor 2. Kalau programnya panjang chat GPT sekarang malas, terkadang ini hanya ditambahkan seperlunya lalu dia bilang nanti silakan copy-kan, tapi alhamdulillah ini dia tuliskan lengkap. Saya copy, lalu kita baca di sini bahwa ada keterangannya. Kita lihat detailnya (seperti pada layar) karena dia tidak bisa menggambar memberi keterangan, baik kita lakukan. Kita ganti programnya, program sudah lengkap tinggal ini kita connect kan ke PIN 2, satu lagi kita connect-kan ke kalau perintah dia ke ground yang sama boleh. Lalu dia bilang bawa ini adalah pulldown. "Apakah yang disebut resistor pulldown", lalu dijawab oleh dia seperti pada layar. Sebenarnya ini akan aktif apabila dia adalah positif tapi supaya dia tidak ngambang, karena kalau tidak dikasih resistor tersebut maka nilai lampu ini terkadang nyala atau mati sendiri. Jadi supaya dia dipertahankan untuk tetap dalam kondisi nol maka dia kasih resistor atau dihubungkan.
Misalnya saya masih kurang puas atau tidak mengerti, cari alternatif. Misalnya kita pakai Bing, di Bing itu ada Bing chat dia bisa gambar, kalau sederhananya kita pakai Google tapi sekaligus kita membandingkan antara chat GPT dengan generatif AI, kita memanfaatkan kompetitornya atau temannya. Jadi disini sama, soalnya saya ketik "gambar rangkaian saklar pulldown pada Arduino UNO pada pin 2 untuk LED" kalau yang tadi tidak bisa gambar karena tidak bayar bulanan kita pakai tanya yang lain, ini di co-pilot, ini generatif AI dia pakai 4. Ini dia kasih gambar, ini Plus, resistor kemudian dia kasih ke board-nya. Kelebihannya selain dia menggambar sendiri, dia juga kasih contoh, ini bedanya dengan GPT yang 3.5. Jadi alternatifnya ada, tetapi saya masih senang dengan chat GPT karena kalau dibilang dia lebih senior, biasanya kalau senior itu akurasinya lebih. Kadang-kadang kalau saya tidak yakin ini juga menggunakan Bing lalu pakai perplexity, itu lebih scientific lagi misalnya kita mau cari jurnal-jurnal di sana lebih bisa mendalam lagi. Dan Bing ini dia kasih link ke YouTube. Jangan takut kita memprogram IoT meskipun kita belum pernah mempelajarinya sama sekali. Anggap kita sudah belajar dan kita terapkan disini. Kita tambahkan satu resistor, ini kita kasih warna ini kita taruh ke ground, ini sama ke sini kemudian kita kasih ke tiga setengah. Jadi resistor ke ground nanti di sisi lainnya itu kita kasih ke positif tapi posisi input tadi akan selalu ke ground, tadi saya tertukar. Kita coba dulu, ini sudah running sudah nyala kita tekan button nyala kita lepas mati, ini salah satu contoh kontrol tapi masih lokal.
3. Pertanyaan dari Bapak Yufi Firdiansyah
Kalau mengendalikan komputer desktop atau LED TV itu boardnya ada di wokwi-kah pengalaman bapak, lebih baik menggunakan bahasa apa ya pak? Rust, C++ atau micro python?
Jawaban dari Nara Sumber: Waktu kita memilih program, memilih apa saja. Faktor pertimbangan memilih bahasa pemrograman, ini kita sama-sama misalnya dari nol sebelum kita mau memilih yang mana. Yang pertama adalah kompleksitas proyek, nanti kita buat sebanyak apa, kemudian yang kedua performa, seberapa minimal program itu berjalan. Misalnya saya perlu respon time misalnya second atau detik atau menit juga tidak apa-apa atau data yang saya ambil sehari sekali itu nanti menentukan juga. Contoh saya mau mengambil data Flow Meter yang tagihan ke pelanggan misalnya saya memasang gas ke rumah-rumah itu perlu diambil data secara IoT, datanya saya ambil sebulan sekali maka tidak memerlukan waktu yang cepat. Mungkin sebulan sekali atau sehari sekali untuk melihat profile tidak apa-apa Jadi kalau begitu saya memilih Python atau memilih C tidak masalah, tergantung nanti seberapa banyak yang harus kita program, secara performa kita mempertimbangkan itu. Katakanlah saya mau yang sederhana nulisnya saya pakai saya pakai python, toh saya hanya akan mengecek itu satu bulan sekali, tetapi ada yang respon time-nya beberapa harus lebih kecil, Python itu kelemahannya adalah dia tidak bisa sampai ke mili second, jadi kalau ke second masih oke. Atau kalau mili second itu masih ada jeda dibandingkan dengan C. Kalau performanya lebih tinggi maka kita pakai C. Kemudian yang ketiga adalah komunitas dan dukungan, Python lebih baru yang mencoba lebih sedikit jadi komunitas dan dukungannya bukan dari pabrik karena sama-sama open, itu lebih sedikit. Tapi bahasa C itu banyak sekali, kalau tingkat kesulitan itu sebenarnya relatif, karena kita bisa nanya ke GPT jadi tidak usah takut susah. Misal keluar error, error saya copy lalu paste ke GPT, saya tanya lagi ke GPT solusinya apa dia carikan, itu yang saya lebih senang daripada saya nyari di Google, Google saya harus baca dulu satu persatu mana web yang cocok kita coba satu persatu, tetapi kalau ini mengikuti kita. Salah, coba di copy, errornya copy lagi dan lagi saya pernah sampai 7 kali baru ketemu, protes ini tidak bisa dipakai dia akan menjawab oh terima kasih maaf kesalahan saya, GPT bisa minta maaf. Kalau memilih pemrogramannya apa Saran saya kalau melihat 1 2 3 komunitas dan dukungan yang paling banyak adalah C++ tapi kalau bapak punya kepentingan nanti untuk mengolah data dalam hal ini datanya lebih dan waktunya tidak harus micro second itu Python bagus juga, artinya nanti bapak lanjutkan ke rust yang lebih tinggi, ke web data big data itu sudah terbiasa apa pakai python jadi pilihan. Kalau rust saya tidak bisa komentar karena saya sendiri belum memakai.
Wokwi itu hanya simulator, di real kehidupannya itu Bapak harus memindahkan wokwi ini ke real hardware, jadi tidak wokwi yang kita suruh berjalan. Mungkin nanti ada pemrograman yang ada di internet, di cloud, tetapi berarti nanti sensor bapak harus langsung mengirim ke cloud, sedangkan saat ini sensor itu ada di fisik, kemudian dari sensor itu bapak bisa olah di boardnya baru dikirim ke internet. Mau diperintah dari jarak jauh, mau dianalisa datanya. Jadi wokwi itu hanya simulator sebelum dicoba di hardware real, hardware-nya persis seperti ini nanti kita lihat di marketplace juga sama.
Profil InstrukturHatmoko Tri Arianto, S.T., M.Kom., IPM
Praktisi Internet of Things
Deskripsi Pemateri:
Pendidikan
1998 Politeknik Universitas Diponegoro Teknik elektro Diploma-3
2004 Universitas Diponegoro Teknik Elektro Strata-1
Pengalaman Proyek
2020 Pengadaan dan Pemasangan Watermeter Elektromagnetik & SCADA Area
Gondang, PERUMDA Air Minum Tirto Negoro, Kabupaten Sragen
2020 SCADA WTP Babelan Bekasi, JawaBarat. PT Grenex Perkasa
2019 SCADA WTP Kali Angke Tangerang Selatan, Banten. PT PP-PT TTM
2019 Pengadaan dan pemasangan WME area Plupuh & Sumberlawang – PDAM Tirto Negoro Kab. Sragen
2019 Pengadaan dan pemasangan WME area Sukodono – PDAM Tirto Negoro Kab. Sragen
2019 SCADA PLTBg Terantam – Riau; BPPT bekerjasama dengan PTPN V
2019 SCADA Water Treatment Kawasan Marunda Center - Jakarta
2018 Pengadaan dan pemasangan WME area Sambirejo, Gondang – PDAM Tirto Negoro Kab. Sragen
2018 Building Automation System (BAS) Kantor EBTKE Cikini- Kementrial ESDM
2018 SCADA SPAM PETANGLONG (Kab. Pekalongan) IPA 200 LPS, Kementerian PUPERA Ciptakarya Satker SPAM JATENG
2017 Green House IOT Micro Climate control System, Balai Biotek BPPT - Serpong
2017 SCADA SPAM Metro Kuburejo (Kebumen) IPA 200 LPS, Kementrian PUPERA Ciptakarya Satker SPAM JATENG
2017 SCADA SPAM Narmada IPA 200 LPS, Kementrian PUPERA Ciptakarya NTB
2017 AJINOMOTO CHILLER MONITORING SYSTEM, Takasago Thermal Enginering contractor for Ajinomoto manufacture Mojokero – Jawa Timur
2017 Pilot Project PLT Biogas dari Limbah Sawit (POME), PKS Terantam. BPPT – PT Pasadena Engineering
2017 Konsultan Perencana Building Automation Sistem (BAS) Gedung Direktorat Jenderal EBTKE, Kementrian ESDM
2017 Elektrikal & Instrumen Proyek Pengembangan DPPU Bandara Sepinggal Balikpapan, Kalimantan Timur. PT Pertamina (persero)
2016 Electrical/Instrument Installation for SWB Drier Safety Improvement Project, PT Tetra Pak Indonesia.
2016 Dier PLC Upgrading Sarihusada Klaten manufacture, PT Sarihusada Generasi Mahardika