Karena back-end dan front-end adalah bagian yang terpisah, tentu membutuhkan penghubung
diantara keduanya agar halaman web yang dibuat dapat digunakan sesuai dengan
peruntukannya. Untuk menghubungkan kedua bagian tersebut menggunakan tool yang disebut
Application Programming Interface (API). API digunakan sebagai antarmuka dari sebuah
aplikasi agar dapat digunakan oleh aplikasi yang lain. Dalam pengembangan layanan berbasis
web, implementasi dari API adalah REST API. REST merupakan singkatan dari
REpresentational State Transfer yang merupakan standar arsitektur komunikasi berbasis
web yang digunakan sebagai jembatan antara back-end dan front-end. REST API menggunakan
protocol HTTP (Hypertext Transfer Protocol ) sebagai protocol komunikasi data. REST API
menyampaikan perintah atau permintaan (request) dari sisi frontend agar diproses oleh sisi
backend, selanjutnya sisi backend mengolah data sesuai dengan permintaan dan
mengembalikan response kepada sisi frontend. Perhatikan ilustrasi berikut ini.
Database
Request End-user
Data
Logic
REST
API
Browser
Komponen
Request:
Request End-point
Method
Headers
REST Data (Body)
API
Response
Komponen
Response:
Response Code
Response data
Penjelasan:
Request merupakan permintaan dari bagian front-end. Terdapat empat komponen dalam
bagian request yaitu sebagai berikut.
1. End-point atau route, merupakan URL yang yang diakses saat melakukan request. Contoh
dari end-point adalah sebagai berikut
https://blockchain.info/tobtc?currency=USD&value=500
URL atau end-point di atas digunakan untuk mengrimkan request yang akan memberikan
response info dari harga bitcoin saat ini berdasarkan 2 parameter yang dikirimkan yaitu
parameter currency=USD dan value=500.
2. Method, merupakan jenis atau tipe dari request. Secara umum yang sering digunakan
saat proses request adalah method GET dan POST. Perbedaan dari method GET dan POST
adalah
- Data yang dikirimkan dengan method GET terlihat pada url (seperti contoh end-point di
atas), sedangkan data yang dikirimkan dengan method POST tidak terlihat karena
diletakkan pada bagian body.
- Ukuran data yang dikirmkan dengan method GET sangat terbatas dibandingkan dengan
method POST.
3. Headers, merupakan bagian yang berisi informasi saat melakukan request maupun
response. Biasanya digunakan untuk keperluan autentikasi dan penjelasan konten yang ada
pada body dari request yang diberikan.
4. Data (Body), merupakan bagian untuk menyimpan informasi atau data yang dikirimkan
pada saat request.
Response merupakan data yang dikembalikan setelah melakukan proses request. Terdapat
dua komponen pada bagian response yaitu sebagai berikut.
1. Response Code, merupakan kode angka yang menjelaskan status response yang
dikirimkan oleh server. Berikut ini kode beserta dengan penjelasannya.
- 200+ mempunyai arti bahwa request yang dikirimkan berhasil atau sukses
- 300+ mempunyai arti bahwa request yang dikirimkan dialihkan ke URL yang lain
- 400+ mempunyai arti bahwa terdapat error dari sisi client pada saat mengirimkan
request.
- 500+ mempunyai arti bahwa terdapat error dari sisi server pada saat request
dikirimkan.
2. Response Data, merupakan data yang dikirmkan oleh server setelah proses request. Data
yang dikirmkan dapat berformat JSON atau XML. Pada modul kali ini, kita akan fokus pada
format response berupa JSON.
Node JS
Bahasa pemrograman Javascript pada awalnya dijalankan melalui web browser karena
di dalamnya terdapat engine yang menjalankan Javascript. Pada tahun 2009, Ryan Dahl
menciptakan Node JS yang merupakan platform yang mengeksekusi program Javascript di luar
browser. Dengan adanya Node JS, saat ini kita dapat membuat aplikasi desktop, web, mobile
dengan menggunakan Javascript. Untuk memulai pemrograman dengan Node JS, kita perlu
menginstall engine Node JS dengan mengunduh melalui https://nodejs.org/en/download/ dan
pilihlah versi yang paling terbaru dan sesuaikan dengan spesifikasi sistem operasi anda.
Untuk mengetahui proses instalasi node js berhasil, silahkan buka command prompt dan
ketikkan perintah node -v yang akan menampilkan versi node yang diinstall.
Sebagai awal pembelajaran Node JS, silahkan buat file javascript misal dengan nama test.js dan
isikan code berikut ini.
console.log("Belajar Node JS dapat memudarkan kemalasan");
Untuk mengeksekusi file tes.js, cukup dengan menggunakan perintah node test.js pada
command prompt.
Pada bagian ini kita akan belajar membuat REST API menggunakan Node JS. Sebelum memulai
membuat REST API, kita perlu mengenal pustaka pendukung dalam pembuatan REST API pada
Node JS yaitu sebagai berikut.
1. Express JS
Express JS merupakan framework yang dapat memperingkas dalam pembuatan REST API
karena telah menyediakan sistem routing yang berguna untuk pembuatan end-point,
middleware, file static, integrasi database, dan masih banyak lagi.
2. Body-Parser
Body-parser merupakan pustaka yang digunakan untuk mengekstrak data yang dikirmkan
saat proses request terutama pada bagian body.
3. CORS
CORS (Cross Origin Resource Sharing) merupakan sebuah proteksi terhadap URL atau end-
point ketika diakses oleh domain/pihak luar (cross platform).
Langkah Praktikum Awal
1. Siapkan folder untuk membuat project REST API, buka command prompt dan arahkan ke
direktori folder tersebut.
2. Install pustaka pendukung untuk pembuatan REST API Node JS yaitu express, body-parser,
dan cors dengan perintah npm install --save express body-parser cors.
3. Buat file javascript dengan nama index.js dan buka code editor anda.
4. Pertama kita akan melakukan pemanggilan pustaka yang telah diintall untuk dihubungkan
pada file index.js
const express = require("express") // memanggil library express js
const bodyParser = require("body-parser") // memanggil library body-parser
const cors = require("cors") // memanggil library cors
const app = express()
5. Selanjutnya melakukan pemanggilan fungsi yang terdapat pada pustaka express, body-
parser, dan cors
// penggunaan body-parser untuk ekstrak data request berformat JSON
app.use(bodyParser.json())
// penggunaan body-parser untuk ekstrak data request dari body
app.use(bodyParser.urlencoded({extended: true}))
// penggunaan cors agar end point dapat diakses oleh cross platform
app.use(cors())
6. Kemudian kita akan membuat end-point pertama menggunakan method GET dengan url
“/test”
// endpoint "/test" dengan method GET
app.get("/test", (req,res) => {
// req merupakan variabel yang berisi data request
// res merupakan variabel yang berisi data response dari end-point
// membuat objek yang berisi data yang akan dijadikan response
let response = {
message: "Ini end-point pertama ku",
method: req.method,
code: res.statusCode
}
// memberikan response dengan format JSON yang berisi objek di atas
res.json(response)
})
7. Setelah itu menambahkan fungsi untuk menjalankan server pada port tertentu.
// menjalankan server pada port 8000
app.listen(8000, () => {
console.log("Server run on port 8000");
})
8. Simpan file index.js dan eksekusi file tersebut melalui command prompt dengan perintah
node index.js
11. Lihat bagian output dan jika berhasil akan muncul data message, code, method sesuai
dengan yang kita definiskan pada variabel response.
// endpoint "/profil/nama/umur" dengan method GET
app.get("/profil/:name/:age", (req,res) => {
// :name dan :age diberikan titik dua didepan menunjukkan "name" dan
"age"
// bersifat dinamis yang dapat diganti nilai nya saat melakukan request
// menampung data yang dikirimkan
let name = req.params.name // mengambil nilai pada parameter name
let age = req.params.age // mengambil nilai pada parameter age
// membuat objek yang berisi data yang akan dijadikan response
// response berisi data nama dan umur sesuai dengan nilai parameter
let response = {
nama: name,
umur: age
}
// memberikan response dengan format JSON yang berisi objek di atas
res.json(response)
})
3. Simpan dan jalankan kembali server (jika server masih berjalan sebelumnya, ketikkan Ctrl
+ C dan ekseskusi node index.js)
4. Pada Postman, pilih method GET dan isikan URL seperti berikut ini.
name age
Jika berhasil maka akan menampilkan response seperti berikut.
1. Masih dalam file yang sama yaitu index.js, kita akan membuat end-point ketiga yang akan
memberikan response nilai luas dan keliling persegi panjang berdasarkan data nilai panjang
dan lebar yang dikirimkan melalui body.
2. Tambahkan end-point “/bujur_sangkar” seperti berikut ini.
// end-point "/bujur_sangkar" dengan method POST
app.post("/bujur_sangkar", (req,res) => {
// menampung data yang dikirimkan dan mengkonversi menjadi tipe numerik
let panjang = Number(req.body.panjang) // mengambil nilai panjang dari
body
let lebar = Number(req.body.lebar) // mengamil nilai lebar dari body
let luas = panjang * lebar
let keliling = 2 * (panjang + lebar)
// membuat objek yang berisi data yang akan dijadikan response
let response = {
panjang: panjang,
lebar: lebar,
luas: luas,
keliling: keliling
}
// memberikan response dengan format JSON yang berisi objek di atas
res.json(response)
})
3. Simpan dan jalankan kembali server (jika server masih berjalan sebelumnya, ketikkan Ctrl
+ C dan ekseskusi node index.js)
4. Pada aplikasi Postman, pilih method POST dan ketikkan URL berikut.
5. Pada tab Body pilih opsi x-www-form-urlencoded dan isikan data panjang dan lebar
yang akan dikirimkan kemudian klik tombol Send.