Pemrograman Web Framework

Node.js adalah perangkat lunak yang didesain untuk mengembangkan aplikasi berbasis web dan ditulis dalam sintaks bahasa pemrograman JavaScript. Bila selama ini kita mengenal JavaScript sebagai bahasa pemrograman yang berjalan di sisi client / browser saja, maka Node.js ada untuk melengkapi peran JavaScript sehingga bisa juga berlaku sebagai bahasa pemrograman yang berjalan di sisi server, seperti halnya PHP, Ruby, Perl, dan sebagainya. Node.js dapat berjalan di sistem operasi Windows, Mac OS X dan Linux tanpa perlu ada perubahan kode program. Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan server web tanpa menggunakan program server web seperti Apache atau Nginx.
Definisi REST
REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data.
Definisi API
API adalah singkatan dari Application Programming Interface. Merupakan suatu “penghubung” yang memungkinkan suatu aplikasi untuk berinteraksi dengan aplikasi lainnya dan berbagi data.
Langkah-langkah cara membuat RESTful API pada nodeJS
1. Langkah pertama yaitu tentunya kita harus mempunyai nodeJS. bagi kalian yang belum download nodeJS silahkan download
disini.
2. Langkah kedua, kita membuat desaign RESTful API. disini kita akan membuat restful api untuk mengambil data dari server(GET), membuat data baru ke server(POST), mengupdate data ke server(PUT) dan menghapus data ke server(DELETE) dari suatu database yaitu table product.
3. Selanjuntnya kita membuat database dan table yang akan kita gunakan, disini kita akan membuat database dengan nama restful_db. cara membuatnya yaitu:
CREATE DATABASE restful_db;
kemudian kita akan membuat table product dengan query seperti dibawah ini.
CREATE TABLE product(
product_id INT(11) PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(200),
product_price INT(11)
)ENGINE=INNODB;
lalu kita isikan table yang sudah kita buat dengan data seperti dibawah ini.
INSERT INTO product(product_name,product_price) VALUES
('Product 1','2000'),
('Product 2','5000'),
('Product 3','4000'),
('Product 4','6000'),
('Product 5','7000');
4. pada langkah keempat ini kita akan menginstall Dependencies.
package yang kita butuhkan antara lain:
a. Express
b. MySQL
c. Body-parser
nah cara untuk menginstallnya kita ketikan kode dibawah ini pada command prompt
npm install --save express mysql body-parser
jika sudah selesai coba kita buka package.json maka akan menampilkan data seperti dibawah ini
{
"name": "restful-api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "Ade Setiawan",
"license": "ISC",
"dependencies": {
"body-parser": "^1.18.3",
"express": "^4.16.4",
"mysql": "^2.16.0"
}
}
5. Langkah kelima yaitu kita membuat file dengan nama index.js lalu file index.js isikan dengan kode/script seperti dibawah ini.
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const mysql = require('mysql');
app.use(bodyParser.json());
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'restful_db'
});
conn.connect((err) =>{
if(err) throw err;
console.log('Mysql Connected...');
});
app.get('/api/products',(req, res) => {
let sql = "SELECT * FROM product";
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
app.get('/api/products/:id',(req, res) => {
let sql = "SELECT * FROM product WHERE product_id="+req.params.id;
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
app.post('/api/products',(req, res) => {
let data = {product_name: req.body.product_name, product_price: req.body.product_price};
let sql = "INSERT INTO product SET ?";
let query = conn.query(sql, data,(err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
app.put('/api/products/:id',(req, res) => {
let sql = "UPDATE product SET product_name='"+req.body.product_name+"',
product_price='"+req.body.product_price+"' WHERE product_id="+req.params.id;
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
app.delete('/api/products/:id',(req, res) => {
let sql = "DELETE FROM product WHERE product_id="+req.params.id+"";
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
app.listen(3000,() =>{
console.log('Server started on port 3000...');
6. Langkat keenam, kita akan melakukan testing/pengujian untuk program yang sudah kita buat. disini kita akan menggunakan POSTMAN, bagi kalian yang belum memiliki bisa download
disini.
 |
| Tampilan POSTMAN |
Jika sudah download, selanjutnya kita buka POSTMAN, lalu running project kita dengan cara mengetikan node index.js pada command prompt.
Kemudian kita uji menggunakan POSTMAN
a. Get All Product (GET)
Kembali ke POSTMAN, dan ketikan URL berikut pada kolom URL Postman:
http://localhost:3000/api/products
Pilih method GET, kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
b. Get Single Product (GET)Ketikan URL berikut pada kolom URL untuk mendapatkan single product:http://localhost:3000/api/products/2Pilih dengan method GET, kemudian klik tombol Send, maka terlihat hasilnya seperti gambar berikut:
c. Create New Product (POST)
Ketikan URL berikut pada kolom URL untuk meng-create new product:
http://localhost:3000/api/products
Pilih method POST,masukan data berikut pada kolom JSON(application/json),kemudian klik send.
d. Update Product (PUT)
Ketikan URL berikut pada kolom URL untuk meng-update product:
http://localhost:3000/api/products/5
Pilih method PUT, kemudian masukan data berikut pada kolom JSON(application/json):
e. Delete Product (DELETE)
Ketikan URL berikut pada kolom URL untuk meng-hapus product:
http://localhost:3000/api/products/6
Pilih dengan method DELETE, kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
Referensi: