Membuat RESTful API Node JS + Express + MySQL (CRUD)

Muhamad Azmi Rizkifar
Chevalier Lab
Published in
6 min readMay 11, 2020

Haloo semuanyaa…
Di bulan ramadhan yang penuh berkah ini, kurang greget rasanya kalau ga bagi-bagi tutorial nihh.. itung-itung cari pahala juga hehehee..

Makanya kali ini gua mau buat tutorial full Membuat RESTful API menggunakan Node JS nihh buat temen-temen. Dan tutorial ini bakal gua buat jadi beberapa bagian supaya ga terlalu numpuk tutorialnya. Jadi ikutin yuk tutorialnya pelan-pelan yahh!

Disini gua anggap teman-teman udah paham ya tentang API itu apa, Node JS itu apa, juga Express itu apa, dan cara gunain MySQL. Jadi kalau belum paham gua saranin buat belajar dulu basicnya di tempat lain yaa!

Nahh, ada alat dan bahan yang perlu kita siapin juga nihh, yaitu :

  1. Pastinya udah install node.js, kalau belum install disini
  2. Postman, alat tempur ini bakal dipakai buat test API yang udah kalian buat
  3. Visual Studio Code, gua saranin pakai code editor ini karena banyak banget plugin yang udah disediain untuk ngebantu proses pembuatan API ini
  4. Secangkir kopi, buat nemenin kalian biar nambah semangat belajarnya

Langsung aja yok kita sikat!

Pertama, kita buat dulu projectnya dan kasih nama apa aja terserah kalian dehh. Lalu kita buka terminal yang ada di VSCode nya, terus kita ketik “npm init”

npm init

Disini kalian disuruh buat kasih nama projectnya, version, deskripsi, dll. Jadi silahkan isi terserah kalian aja. Buat case di tutorial ini gua kasih nama devcamper-api.

Kalau udah init project kita, nanti kalian bakalan dibuatin file package.json yang isinya buat nyimpen informasi package yang bakal kalian gunain di project tersebut.

Nahh sekarang, kita install 3 package utama yaitu :

  1. express
    Package ini simplenya adalah frameworknya node js yang bakal kita gunain untuk mempermudah routing kita nanti
  2. mysql
    Package ini simplenya berfungsi untuk ngejalanin query-query SQL lewat fungsi yang bakal kita buat nanti
  3. body-parser
    Package ini berfungsi untuk parsing setiap request yang kita kirim lewat HTTP, mau itu lewat x-www-form-urlencoded, raw json, dan form data.

Cara installnya, kalian tinggal ketik kode ini di terminal :

npm install express mysql body-parser

Kalau udah selesai install, sekarang kalian buat dulu databasenya. Terserah kalian deh mau dinamain apa, terus kalian buat table dengan nama “bootcamp” dengan isian field kaya gini :

Atau biar cepet, gua sediain nih code nya :

CREATE TABLE `bootcamp` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`description` varchar(255) NOT NULL,
`website` varchar(100) NOT NULL,
`phone` varchar(20) NOT NULL,
`email` varchar(50) NOT NULL,
`address` varchar(100) NOT NULL
);

Kalau udah beres sama MySQL nya, sekarang kia buat folder dan kasih nama config, lalu di dalam folder config ini kita buat file dan kasih nama database.js. Kemudian kalian isi file tersebut dengan kode dibawah ini :

const mysql = require('mysql');// buat konfigurasi koneksi
const koneksi = mysql.createConnection({
host: 'host_kalian',
user: 'username_kalian',
password: 'password_kalian',
database: 'nama_database',
multipleStatements: true
});
// koneksi database
koneksi.connect((err) => {
if (err) throw err;
console.log('MySQL Connected...');
});
module.exports = koneksi;

Isi host, user, pasword, dan nama database sesuai konfigurasi di laptop kalian ya!

Sekarang kita buat file di luar folder config dan kasih nama “app.js”, lalu panggil package yang barusan kita install dan kita inisialisasi terlebih dahulu

const express = require('express');
const bodyParser = require('body-parser');
const koneksi = require('./config/database');
const app = express();
const PORT = process.env.PORT || 5000;
// set body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
// buat server nya
app.listen(PORT, () => console.log(`Server running at port: ${PORT}`));

Nahh itu konfigurasi utamanya, sekarang kita bisa buat fungsi CRUD nya nih. Kita mulai berurutan dari create data dulu

Create Data

Di dalam file app.js, tambahkan kode ini dibawah set body parser

Kalau udah, save dulu filenya terus buka terminalnya lalu ketik “node app.js” terus enter. Kalau berhasil dan ga ada error nanti muncul kaya gini

Kalau ga ada error, silahkan kalian buka app postman, kemudian klik tab +. Dan ini data yang akan kita kirim lewat HTTP yang nantinya bakal kita insert ke database kita

{
"name": "Devworks Bootcamp",
"description": "Devworks is a full stack JavaScript Bootcamp",
"website": "https://devworks.com",
"phone": "(111) 111-1111",
"email": "enroll@devworks.com",
"address": "233 Bay State Rd Boston MA 02215"
}

Perhatikan bagian yang gua lingkari dengan warna yang berbeda.

  1. Biru, method yang kita pakai. karena kita bakal insert data, jadi kita perlu gunain method POST
  2. Hijau, URL API yang kita buat berdasarkan routing yang kita tentukan di code baris 6 pada fungsi create data diatas.
  3. Merah, itu adalah body tempat untuk mengirimkan data lewat HTTP
  4. Kuning, jenis si body. Disini gua pakai raw karena gua mau kirim data berupa JSON (JavaScript Object Notation)
  5. Olive,content type yang akan kita kirim. Kita pilih yang JSON yaa

Kalau udah langsung aja klik “send”, dan kalau berhasil nanti dia bakal ngasih response kaya gini :

Read Data

Di dalam file app.js, tambahkan kode ini dibawah fungsi create data

Kemudian save filenya, lalu berhentikan dulu server yang sebelumnya kalian jalankan di terminal dengan ctrl + C. Lalu kita jalankan lagi servernya dengan perintah “node app.js”.

Abis itu, buka lagi app postman-nya lalu masukkan URL yang kita buat berdasarkan routing yang kita tentukan.

Disini gua pakai method GET karena kita mau ambil data dari server, dan kalau berhasil maka responsenya akan seperti gambar diatas (sesuai dengan yang kita buat)

Update Data

Di dalam file app.js, tambahkan kode ini dibawah fungsi read data

Kemudian save filenya, lalu berhentikan lagi server yang sebelumnya kalian jalankan di terminal dengan ctrl + C. Lalu kita jalankan lagi servernya dengan perintah “node app.js”.

Lalu buka lagi postman nya dan sesuaikan konfigurasinya kaya gini :

Disini gua pakai method PUT, dan menggunakan jenis body x-www-form-urlencoded. Dan gua mau update nama nya aja dari salah satu data di table bootcamp dengan id = 1.

Ini hasil updatenya gaiss

before
after

Delete Data

Di dalam file app.js, tambahkan kode ini dibawah fungsi update data

Sama kaya sebelumnya yah, berhentiin dulu servernya lalu kalian jalankan lagi servernya. Lalu buka Posman nya dan sesuaikan konfigurasinya kaya gini :

Disini gua pakai method DELETE karena kita mau hapus data, dan kalau berhasil maka responsenya akan seperti gambar diatas (sesuai dengan yang kita buat)

Nahh sampai sini dulu yahh tutorial bikin Restful API nya, di bagian selanjutnya nanti kita bakal buat MC Pattern nya (Model Controller) dimana nanti kita bakal membiasakan ngoding terstruktur dengan file yang dipisah-pisah sesuai kebutuhannya:)

Semoga bermanfaat yaa, dan selamat berpuasa ^_^

Source code tutorial ini bisa diambil disini yaa :

Tutorial selanjutnya ada disini yaa

--

--