Disusun oleh:
b. Analisis Permasalahan
Data cuaca menjadi salah satu data yang diperlukan oleh masyarakat luas dalam menunjang rencana
keseharian mereka. Namun, data cuaca yang biasa diambil dari salah satu API penyedia layanan cuaca sering
kali hanya data mentah yang sulit untuk dipahami. Selain itu, dalam hal mengambil data dari suatu API tidak
mudah juga dipelajari dan dilakukan oleh orang awam karena proses dibelakangnya yang cukup rumit. Oleh
karena itu, dalam laporan ini penulis akan berusaha menyelesaikan permasalahan itu dengan menggunakan
Node-RED yang mana data cuaca akan diambil dari API Open Weather Map dan akan disajikan melalui
Google Spreadsheet agar dapat lebih mudah untuk dipahami dan dimengerti oleh masyarakat. Selain itu,
penulisan laporan ini juga sebagai sarana pembelajaran bagi penulis untuk dapat lebih bisa banyak belajar
mengenai tools-tools yang digunakan dalam laporan ini
c. Tujuan
Dalam perihal memperoleh data menggunakan API, seringkali terdapat beberapa data yang sejatinya
kurang begitu penting bagi orang pada umumnya. Selain itu, data yang diperoleh dari API haruslah mampu
diolah dan disajikan dengan baik agar orang banyak dapat lebih menerima infomasi tersebut dengan lebih
berkualitas. Oleh karena itu, dalam laporan ini penulis memilih untuk mensortir 3 data penting terkait cuaca,
yaitu kondisi cuaca terkini, suhu udara, dan juga kecepatan angin yang akan disajikan melalui bantuan Google
Spreadsheet agar dapat lebih mudah dipahami, dimengerti, dan dipelajari bagaimana perilaku cuaca pada saat
pengerjaan laporan ini dibuat. Selain itu, laporan ini merupakan sebuah penugasan dari mata kuliah Sistem
Berbasis Mikroprosesor yang diampu oleh penulis pada semester 4 program studi S1 Teknologi Informasi di
Fakultas Teknik, Universitas Gadjah Mada.
Proses pada gambar diatas dapat dilakukan dengan membuka terlebih dahulu CMD (Command
Prompt) yang tersedia pada Windows dengan cara membuka menu Start, lalu mencari pada daftar aplikasi
yang ada pada komputer. Atau dengan melakukan pencarian secara langsung melalui menu Search yang
tersedia dengan mengetikkan kata kunci CMD. Setelah command prompt terbuka, pengguna dapat langsung
mengetikkan syntax untuk mengaktifkan Node-RED yaitu node-red. Lalu mengklik Enter dan akan berjalan
dengan sendirinya hingga muncul suatu alamat web yang akan digunakan sebagai interface dari Node-RED
itu sendiri. Dalam percobaan yang dilakukan oleh penulis, alamat web tersebut adalah http://127.0.0.1:1880/.
Langkah berikutnya adalah melakukan penginstal-an beberapa package pendukung yang akan
digunakan dalam aplikasi Node-RED seperti node-red-node-openweathermap dan node-red-contrib-google-
sheets seperti pada gambar dibawah ini. Beberapa package lainnya merupakan package yang sudah terlebih
dahulu terinstal pada komputer penulis, dan tidak begitu diperlukan dalam penyelesaiaan masalah kali ini.
Gambar 2: Node-RED package yang digunakan
(Sumber: tangkapan layar komputer penulis)
Penambahan package Node-RED tersebut, dilakukan melalui salah satu fitur yang disediakan oleh
Node-RED itu sendiri sebagai tools utama yang digunakan dalam laporan ini. Hal tersebut dapat dilakukan
dengan cara masuk pada menu tambahan pada Hamburger Button yang terletak dipojok kanan atas tampilan
awal Node-RED. Lalu masuk kedalam menu Manage Package > Install kemudian mencari package-package
tersebut sesuai dengan namanya masing-masing yang dapat diketikkan pada kolom pencarian yang tersedia.
Package diatas merupakan salah satu Node-Red Package yang digunakan dalam laporan ini. Paket
OpenWeatherMap pada Node-RED menyediakan serangkaian fitur yang memungkinkan pengguna untuk
mengakses informasi cuaca secara mudah dan terintegrasi dalam alur kerja (flow) mereka. Fitur-fitur ini
mencakup node-node yang memungkinkan pengguna untuk mengambil data cuaca aktual berdasarkan lokasi
geografis, ramalan cuaca jangka pendek dan panjang, serta informasi suhu, kelembaban, kecepatan angin, dan
lainnya. Selain itu, paket ini memungkinkan pengguna untuk memperoleh informasi tentang cuaca historis,
memberikan akses ke peta cuaca interaktif, dan memungkinkan pengguna untuk menyesuaikan permintaan
API mereka sesuai kebutuhan spesifik. Dengan demikian, fitur-fitur yang disediakan oleh paket
OpenWeatherMap pada Node-RED memberikan fleksibilitas dan kemudahan akses terhadap data cuaca yang
penting bagi pengembangan berbagai jenis aplikasi dan sistem berbasis Node-RED.
Gambar 4: Node-RED Google Sheet Package
(Sumber: https://flows.nodered.org/node/node-red-contrib-google-sheets)
Selain Open Weather Map Package, dalam penyelesaiaan masalah ini juga dibutuhkan Node-RED
Contribution Google Sheet Package yang akan berperan sebagai penghubung antara API-Service yang
diberikan oleh Google yang dalam hal ini akan menggunakan Google Spreadsheet. Paket Google Sheet pada
Node-RED menyediakan sejumlah fitur yang memungkinkan pengguna untuk berinteraksi dengan
spreadsheet Google Sheets secara langsung dari alur kerja (flow) Node-RED mereka. Fitur-fitur ini termasuk
node-node yang memungkinkan pengguna untuk membaca, menulis, dan memperbarui data dalam
spreadsheet Google Sheets dengan mudah. Pengguna dapat mengintegrasikan aliran kerja mereka dengan
spreadsheet yang ada atau membuat spreadsheet baru secara dinamis berdasarkan data yang diterima dari
sumber lain dalam alur kerja mereka. Selain itu, paket ini menyediakan kemampuan untuk memformat data
dengan berbagai cara, termasuk penggunaan format teks dan tanggal, serta kemampuan untuk menambahkan
atau menghapus baris dan kolom sesuai kebutuhan. Dengan fitur-fitur ini, paket Google Sheet pada Node-
RED memberikan fleksibilitas dalam mengelola dan menganalisis data secara kolaboratif melalui platform
Google Sheets yang populer dan terpercaya.
2. Penghimpunan Data Open Weather Map API
Tahapan dalam menghimpun data melalui Open Weather Map API dimulai dengan pendaftaran dan
pengambilan kunci API dari situs Open Weather Map. Setelah itu, pengguna dapat menggunakan kunci API
tersebut untuk mengakses berbagai layanan cuaca yang disediakan oleh Open Weather Map, termasuk data
aktual, ramalan cuaca, dan informasi cuaca historis. Dalam Node-RED, pengguna dapat menambahkan node-
node yang sesuai dengan permintaan API yang ingin mereka lakukan, seperti node "OpenWeatherMap
Current" untuk mendapatkan data cuaca aktual atau node "OpenWeatherMap Forecast" untuk mendapatkan
ramalan cuaca. Setelah konfigurasi node-node tersebut dengan kunci API dan parameter lain yang dibutuhkan,
pengguna dapat menjalankan alur kerja (flow) mereka, yang akan mengirimkan permintaan ke Open Weather
Map API dan menerima data cuaca yang diminta. Data tersebut kemudian dapat digunakan dalam alur kerja
Node-RED untuk analisis lebih lanjut, tampilan visual, atau integrasi dengan sistem lain. Langkah pertama
untuk mendapatkan kunci akses API adalah melakukan registasi akun OpenWeather Map seperti gambar
berikut.
Kunci akses tersebut akan digunakan ketika melakukan konfigurasi sistem menggunakan Node-RED
agar dapat memperoleh data-data cuaca yang hendak kita pakai dalam penyelesaiaan masalah kali ini.
3. Penggunaan Google Cloud – API & Service
Selain mengambil data melalui Open Weather Maps API, hal yang perlu dilakukan juga adalah
mengumpulkan atau menyajikan data yang dalam hal ini akan menggunakan Google Spreadsheet. Oleh
karena itu, langkah pertama yang harus dilakukan adalah membuat projek baru pada Google Cloud seperti
gambar dibawah ini.
Gambar 8: Tampilan muka Google Cloud
(Sumber : https://console.cloud.google.com/projectselector2/iam-
admin/serviceaccounts?_ga=2.184919274.-
272657095.1578084478&supportedpurview=project&authuser=3)
Selanjutnya ketika project sudah dibuat, misal dalam hal ini penulis memakai project dengan nama
Parsing Data Cuaca. Selanjutnya adalah melakukan setting project tersebut akan dapat digunakan untuk
Spreadsheet, dengan mengaktifkan layanan Google Sheet API dengan cara Search Google Sheet API >
Mengaktifkan seperti yang terdapat pada gambar berikut
Langkah berikutnya adalah memperoleh kunci akses Google Cloud projek yang sudah kita buat,
dengan cara kembali ke halaman Service Account > Select Email > Key > Add Key dan setelahnya akan
otomatis tergenerate API Keys yang dapat kita gunakan sekaligus terdapat file unduhan bertipe JSON. File
unduhan tersebut akan digunakan dalam Node yang akan digunakan ketika melakukan konfigurasi sistem
menggunakan Node-RED nantinya. Selain itu, email Google Cloud pada projek yang telah kita buat akan
digunakan juga untuk memberikan akses pada Google Spreadsheet.
Gambar 10: Halaman Service Account Google Cloud
(Sumber: https://console.cloud.google.com/iam-
admin/serviceaccounts?authuser=3&orgonly=true&project=parsing-data-
cuaca&supportedpurview=organizationId)
Gambar 11: Halaman Service Account Google Cloud untuk mendapatkan API Keys
(Sumber: https://console.cloud.google.com/iam-
admin/serviceaccounts/details/114950488737481035646/keys?authuser=3&orgonly=true&project=parsing-
data-cuaca&supportedpurview=organizationId)
Gambar 12: File unduhan bertipe JSON ketika melakukan generate API Key pada Google Cloud
(Sumber: Tangkapan layar komputer penulis)
Ketika semua langkah konfigurasi Google Cloud – API Service sudah dilakukan, maka selanjutnya
akan melakukan konfigurasi pada Google Spreadsheet yang akan digunakan sebagai tempat penyajian data
cuaca yang akan kita kumpulkan nantinya.
4. Konfigurasi Google Spreadsheet
Sebelum masuk ke langkah terakhir yaitu konfigurasi sistem pada Node-RED guna melakukan
integrasi antara data yang diperoleh dari Open Weather Map API masuk ke Google Spreadsheet, perlu
dilakukan konfigurasi terlebih dahulu terhadap file Google Spreadsheet yang akan kita gunakan. Langkah
pertama yang harus dilakukan adalah generete file Google Spreadsheet dengan akun yang sama ketika
melakukan konfigurasi pada Google Cloud – API Service, lalu membuat template kolom-baris sederhana
tempat data akan diparsing seperti pada gambar berikut.
Setelah template sheet dibuat, selanjutnya adalah melakukan setting akses terhadap file tersebut
dengan memberikan izin akses pada email projek yang sebelumnya sudah dibuat dengan Google Cloud dengan
cara masuk ke menu Bagikan > Tambahkan orang, grup, dan acara kalender > Paste email projek >
Ubah akses menjadi Editor seperti yang tertampil pada gambar berikut
Ketika konfigurasi Google Spreadsheet sudah selesai dilakukan, maka konfigurasi untuk semua tools
pembantu juga selesai. Langkah berikutnya adalah melakukan konfigurasi pada Node-RED untuk dapat
mengintegrasikan seluruh tools tersebut sehingga dapat melalukan penyelesaian masalah dalam laporan ini.
5. Konfigurasi Sistem menggunakan Node-red
Langkah penyelesaiaan yang terakhir adalah melakukan konfigurasi sistem pada Node-RED yang akan
mengintegrasikan Open Weather Maps API dengan Google Spreadsheet. Node-RED dapat digunakan sebagai
alat untuk mengintegrasikan API ke dalam spreadsheet karena fleksibilitas dan kemudahannya dalam
menghubungkan berbagai sumber data dan layanan secara visual dan intuitif. Dengan Node-RED, pengguna
dapat dengan mudah menambahkan node-node yang sesuai untuk berinteraksi dengan API yang diinginkan,
misalnya, node-node yang dapat mengirim permintaan HTTP atau HTTPS ke API, dan kemudian
memanipulasi dan mengelola data yang diterima sebelum menyimpannya ke dalam spreadsheet. Selain itu,
Node-RED menyediakan node khusus untuk berinteraksi dengan spreadsheet, seperti node "Google Sheets"
atau "CSV", yang memungkinkan pengguna untuk membaca, menulis, dan memperbarui data dalam
spreadsheet tanpa perlu menulis kode secara manual. Dengan menggunakan alat ini, proses integrasi antara
API dan spreadsheet menjadi lebih cepat, lebih efisien, dan lebih mudah dipahami oleh pengguna tanpa
keahlian pemrograman yang mendalam.
Pertama, adalah menyusun Node pada Node-RED sesuai dengan konfigurasi berikut.
Fungsi Inject pada Node-RED adalah untuk memicu atau memulai alur kerja (flow) dengan
menyuntikkan peristiwa atau data tertentu ke dalam aliran tersebut. Node Inject digunakan untuk memulai
aliran kerja secara manual atau otomatis dengan waktu atau pola tertentu. Pengguna dapat mengatur waktu
kapan peristiwa akan disuntikkan, baik itu sekali atau berulang, serta menentukan jenis data yang akan
disertakan dalam peristiwa tersebut. Misalnya, dengan menggunakan node Inject, pengguna dapat memicu
aliran untuk mengambil data dari API cuaca setiap jam, mengirimkan pemberitahuan setiap hari pada waktu
tertentu, atau memulai aliran kerja secara manual ketika diperlukan. Dengan demikian, node Inject
memungkinkan pengguna untuk mengontrol dan mengatur aliran kerja Node-RED mereka sesuai dengan
jadwal atau kebutuhan spesifik.
Pada laporan ini, penulis melakukan setting pada node inject dengan melakukan loop sesuai interval yaitu
15 menit. Oleh karena itu, node inject akan berjalan 15 menit sekali dan otomatis terus mengumpulkan data
secara berkala seperti yang ada pada gambar berikut
Node selanjutnya yang akan digunakan adalah node function yang akan digunakan untuk mensortir data
yang didapatkan dari open weather map API. Data yang diperoleh oleh Open Weather Map sangat banyak,
meliputi Dengan menggunakan API OpenWeatherMap, berikut adalah beberapa objek data yang umumnya
diperoleh:
1. ID (Identifier) 9. Cloudiness (Kerawan)
2. Weather (Cuaca) 10. Sunrise (Matahari Terbit)
3. Temp (Temperature) 11. Sunset (Matahari Terbenam)
4. Feels Like (Terasa Seperti) 12. Timezone (Zona Waktu)
5. Humidity (Kelembaban) 13. Visibility (Jarak Pandang)
6. Pressure (Tekanan Udara) 14. Rainfall (Curah Hujan)
7. Wind Speed (Kecepatan Angin) 15. Snowfall (Curah Salju)
8. Wind Direction (Arah Angin) 16. UV Index (Indeks UV)
Oleh karena data tersebut banyak, perlu disortir beberapa data yang penting saja atau diperlukan sehingga
memerlukan fungsi tambahan untuk melakukan mensortiran data dengan konfigurasi seperti berikut.
Setelah melakukan sortir data dari open weather map API, langkah berikutnya adalah membuat fungsi
tambahan untuk menggabungkan seluruh object data tadi kedalam suatu variabel tertentu lagi untuk dapat
diparsing menuju Google Spreadsheet seperti yang tertera pada gambar ke-19 diatas. Pada fungsi tersebut juga
ditambahkan sebuah variabel yang akan mendeskripsikan timestamp, yang juga akan digabungkan pada
variabel dataToSend agar dapat ditampilkan di Google Spreadsheet.
// Membuat objek data untuk dikirim ke Google Sheets dengan menggunakan rumus SPLIT
var dataToSend = {
formula: "=SPLIT(\"" + dataString + "\"; \";\")"
};
Fungsi diatas dibuat dengan formula Google Spreadsheet, agar ketika data masuk langsung berupa
formula yang akan diekskusi secara mandiri oleh Google Spreadsheet untuk membagi data ke dalam kolom-
kolom lain pada baris yang sama. Formula SPLIT memungkinkan pengguna untuk memisahkan teks menjadi
beberapa bagian berdasarkan pemisah yang ditentukan. Misalnya, pengguna dapat memisahkan teks berupa
kalimat atau string dengan menggunakan spasi sebagai pemisah, sehingga memungkinkan untuk mengakses
bagian-bagian individu dari teks tersebut.
Gambar 20: Fungsi yang digunakan untuk parsing data ke Google Spreadsheet
(Sumber: Tangkapan layar komputer penulis)
Node selanjutnya adalah node yang akan mengintegrasikan sistem yang dibuat pada Node-RED pada
Google Spreadsheet yang sebelumnya sudah dibuat. Hal-hal yang perlu dipersiapkan adalah file unduhan
JSON yang sebelumnya sudah terunduh ketika generate API-Key dan akan dimasukkan pada menu creds,
lalu spreadsheet ID yang diperoleh dari link spreadsheet tersebut. Konfigurasinya seperti berikut
Gambar 21: Konfigurasi Creds pada Google Sheet Node yang diperoleh dari file unduhan JSON
Google Cloud – API Service
(Sumber: Tangkapan layar komputer penulis)
https://docs.google.com/spreadsheets/d/1Vmd4w8NfSDSEsE5boWYiNFn- CyY9FajcUAsAqbMEhhw/edit#gid=0
Gambar 23: Spreadsheet ID
(Sumber: Link Google Spreadsheet)
Gambar 24: Debug setting Node-RED
(Sumber: tangkapan layar komputer penulis)
Dalam penyelesaian masalah pada laporan ini menggunakan Node-Red sebagai gerbang yang menintegrasikan
tools lain yang digunakan meliputi API Open Weather Map, dan Google Spreadsheet menggunakan Google Cloud –
API Service. Gambar diatas menunjukkan flow bagaimana sistem bekerja, mula-mula data mentah akan diperoleh dari
API Open Weather Map menggunakan Node-OpenWeatherMap yang telah disediakan oleh package yang sebelumnya
diinstal. Lalu data mentah tersebut akan disortir, dan diambil data-data yang diperlukan menggunakan function bernama
Sortir Data mengambil data Weather, Temperature dalam Celcius, dan Windspeed (kecepatan angin). Selanjutnya,
function bernama Merge to One Object akan menyatukan seluruh objek data yang sudah disortir tadi kedalam satu
variabel baru bernama dataToSend yang akan menjadikannya satu objek saja untuk dikeluarkan dan diparsing ke Google
Spreadsheet. Setelah data telah dijadikan satu, variabel dataToSend akan mengirimkan data yang berupa formula
Spreadsheet tadi menuju Node bernama Parse to Google Sheet yang sebelumnya telah ditambahkan dan merupakan
bagian dari package Google-Sheet yang sebelumnya sudah diinstal. Data yang berhasil diparsing ke Google Sheet akan
berupa formula Spreadsheet menggunakan syntax SPLIT guna membagi data tersebut kedalam kolom-kolom yang
sudah ada pada template yang sebelumnya telah dibuat. Data akan dibagi secara otomatis oleh Google Spreadsheet
sehingga terjadi dengan rapih pada kolom-kolom tersebut. Fase atau flow tersebut akan berulang terus menerus dalam
15 menit sekali karena pada sistem node-Inject di set agar dapat melakukan loop tersebut.
3. Penutup
a. Hasil
Berikut adalah tangkapan layar data yang telah berhasil di-parsing ke Google Spreadsheet. Terdapat 4 data yang
dioper ke Google Spreadsheet, meliputi Timestamp (kapan data tersebut direcord), lalu data weather, temperature, dan
windspeed yang diperoleh dari Open Weather Map API yang telah disortir 3 data tersebut saja.