Buat aplikasi cuaca sederhana dengan Node.js
Belajar membuat Aplikasi Cuaca sederhana yang di akses melalui Terminal/Console dan menggunakan API cuaca dari http://openweathermap.org
Dalam tutorial ini, kita akan belajar menggunakan Node.js untuk mengambil data cuaca dari openweathermap, untuk kemudian kita tampilkan pada Terminal/Console.
Yang kita butuhkan:
- Node.js, kunjungi http://nodejs.org untuk unduh dan instalasi apabila belum ada pada komputer.
- API untuk mengambil data cuaca dari openweathermap.org
- npm atau Yarn, di tutorial ini kita akan menggunakan Yarn
Di OpenWeatherMap sendiri ada beberapa endpoint API yang bisa kita gunakan, tetapi pada tutorial ini kita hanya akan menggunakan satu endpoint saja yaitu Current Weather Data, yaitu data cuaca saat ini.
Silahkan langsung kunjungi https://home.openweathermap.org/api_keys, daftar dulu apabila belum punya akun di sana, dan kemudian masuk dan kunjungi link diatas. Apabila kamu berhasil, akan terlihat halaman seperti di bawah ini:

Lihat lingkaran di atas yang ada “Create key”, kamu dapat membuat key/kunci baru yang akan digunakan pada aplikasi yang akan dibuat. Setelah berhasil membuat kunci baru, kita dapat mulai membuat aplikasi. :)
Langkah-langkah
Buka Terminal/Console/Command Prompt, kemudian ikuti langkah di bawah:
1. Buat folder baru bernama “Cuaca” kemudian masuk kedalamnya. Setelah itu ketik dan jalankan
yarn init2. Isi form yang muncul dengan informasi lengkap untuk inisiasi proyek kita.
berikut package.json hasil inisiasi langkah 1 pada komputer saya, punya kamu pasti berbeda sedikit.
{ "name": "cuaca", "version": "1.0.0", "description": "aplikasi nodejs cuaca bandung", "repository": { "type": "git", "url": "git+https://github.com/zufrizalyordan/cuaca.git" }, "main": "index.js", "author": "zufrizalyordan@gmail.com", "license": "MIT"}
3. Buat sebuah file index.js yang akan menyimpan kode kita.
~ langkah selesai ~
Untuk melakukan panggilan ke API OpenWeatherMap, kita akan menggunakan modul request, karena menurut saya cukup mudah menggunakannya. Kamu bisa menggunakan modul lain seperti axios atau lainnya, selama bukan jQuery ya!
Install request seperti perintah di bawah ini
yarn add request --saveSelain itu supaya kita dapat menggunakan argumen/parameter melalui Terminal/Console/Command, kita dapat menggunakan yargs
yarn add yargs --saveUntuk menggunakan request cukup mudah, lihat kode dibawah ini
const request = require('request');request(url, function (err, response, body) {
if(err) {
console.log('error:', err);
} else {
console.log('body:', body);
}
});
Pada dokumentasi OpenWeatherMap, kita dapat melihat URL untuk melakukan pemanggilan url:
https://api.openweathermap.org/data/2.5/weather?q={nama kota}Agar berhasil melakukan pemanggilan data, diperlukan API key yang sudah kita buat pada awal artikel ini. contoh url lengkapnya:
https://api.openweathermap.org/data/2.5/weather?q={nama kota}&units=metric&appid=*************Parameter units=metric diatas akan mengkonversi hasil kembalian data menjadi Celcius. Apabila ingin menggunakan Fahrenheit, parameter tersebut bisa diubah menjadi units=imperial.
Agar lebih mudah dibaca, kita dapat melakukan assignment ke variabel/konstanta. contoh lengkap ada di bawah
const request = require('request'); const APIKey = '*****************************';
const kota = 'bandung';
const url = `http://api.openweathermap.org/data/2.5/weather?q=${kota}&appid=${APIKey}` request(url, function (err, response, body) {
if (err) {
console.log('error:', err);
} else {
console.log('body:', body); }
});
Kode diatas sudah dapat kita jalankan melalui perintah:
node indexTetapi data yang muncul akan tampak kurang terstruktur, karena itu kita akan membersihkan tampilan data yang saat ini memiliki tipe String menjadi tipe JSON. Cara untuk melakukan hal tersebut adalah dengan menggunakan fungsi bawaan pada Node.js yaitu JSON.parse
let cuaca = JSON.parse(body)Kode kita setelah penambahan JSON.parse akan menjadi
`use strict`const request = require('request');const argv = require('yargs').argv;
const APIKey = '*********************';const kota = argv.k || 'bandung';const units = 'metric';const url = `http://api.openweathermap.org/data/2.5/weather?q=${kota}&appid=${APIKey}&units=${units}`request(url, function (err, response, body) { if (err) { console.log('error:', err); } else { const cuaca = JSON.parse(body); const pesan = `Cuaca ${cuaca.name} sekarang ${cuaca.main.temp} derajat Celcius`; console.log(pesan); }});
Wah apa itu kode baru diatas, kok bisa ada argv.k ?
yargs bekerja dengan memberi akses pada Terminal/Console ke objek argv. Dengan adanya objek argv ini kita dapat mengambil parameter k pada Console, sehingga apabila kita menjalankan
node index -k jakartamaka akan menampilkan
Cuaca Jakarta sekarang 29.62 derajat CelciusKeren ya, yang tadinya cuman bisa satu kota, sekarang bisa mengambil kota-kota lain!
Selamat, kamu udah berhasil membuat aplikasi Node.js sederhana ini sampai akhir dan selesai!
Jika artikel/tutorial ini berguna, ataupun kamu mau artikel seperti ini lagi, jangan lupa klik ❤ ya!
Kamu bisa tweet & follow @zufrizalyordan untuk interaksi lebih cepat.
Kalo kamu suka Javascript dan lokasi di Bandung, kita ada event bulanan BandungJS, bisa cek meetup.com/bandungjs atau twitter.com/javascriptbdg
