0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan32 halaman

ExpressJS RestAPI

Dokumen ini adalah modul praktikum untuk membuat RESTful API CRUD menggunakan Express.js, yang mencakup langkah-langkah mulai dari pembuatan proyek hingga pengelolaan data dalam database MySQL. Modul ini menjelaskan instalasi, konfigurasi, dan pengujian API dengan menggunakan Postman, serta mencakup pengaturan untuk operasi Create, Read, Update, dan Delete. Selain itu, terdapat penjelasan mengenai penggunaan library seperti Nodemon dan Express Validator untuk mendukung pengembangan aplikasi.

Diunggah oleh

feiticeiraz.n
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan32 halaman

ExpressJS RestAPI

Dokumen ini adalah modul praktikum untuk membuat RESTful API CRUD menggunakan Express.js, yang mencakup langkah-langkah mulai dari pembuatan proyek hingga pengelolaan data dalam database MySQL. Modul ini menjelaskan instalasi, konfigurasi, dan pengujian API dengan menggunakan Postman, serta mencakup pengaturan untuk operasi Create, Read, Update, dan Delete. Selain itu, terdapat penjelasan mengenai penggunaan library seperti Nodemon dan Express Validator untuk mendukung pengembangan aplikasi.

Diunggah oleh

feiticeiraz.n
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

PRAKTIKUM

PEMROGRAMAN BERBASIS KERANGKA


KERJA

MODUL 5
ExpressJS Rest API CRUD Mahasiswa

Disusun Oleh:
Daud Muhajir, [Link]., [Link].

PROGRAM STUDI S1 INFORMATIKA


FAKULTAS TEKNOLOGI INFORMASI DAN BISNIS
INSTITUT TEKNOLOGI TELKOM SURABAYA
2023
DAFTAR ISI

DAFTAR ISI.............................................................................................................................2
1. Membuat Project ExpressJS................................................................................................4
1.1. Membuat Project...........................................................................................................4
1.2. Membuat Main File ExpressJS......................................................................................7
1.3. Menjalankan Project ExpressJS....................................................................................7
1.4. Instalasi Nodemon.........................................................................................................7
2. Konfigurasi Database...........................................................................................................8
2.1. Instalasi library MySQL..................................................................................................8
2.2. Konfigurasi Database....................................................................................................9
2.3. Membuat Database dan Table......................................................................................9
3. Menampilkan Data dari Database......................................................................................10
3.1. Membuat Konfigurasi Router.......................................................................................10
3.2. Import Router di [Link]..............................................................................................11
3.3. Uji Coba REST API Menampilkan Data......................................................................12
4. Insert Data ke Database....................................................................................................12
4.1. Instalasi Library Pendukung........................................................................................12
4.2. Menambahkan Route Store.........................................................................................14
4.3. Uji Coba Rest API Insert Data.....................................................................................16
5. Menampilkan Detail Data...................................................................................................18
5.1. Menambahkan Route Detail........................................................................................18
5.2. Uji Coba Rest API Detail Data.....................................................................................21
6. Update Data ke Database..................................................................................................22
6.1. Menambahkan Route Update......................................................................................22
6.2. Uji Coba Rest API Update Data..................................................................................25
7. Delete Data dari Database.................................................................................................26
7.1 Menambahkan Route Delete........................................................................................26
7.2. Uji Coba Rest API Delete Data....................................................................................31
8. Enable CORS di Express...................................................................................................32
8.1. Instalasi Library CORS................................................................................................32
8.2. Konfigurasi CORS.......................................................................................................32
Tugas.....................................................................................................................................33
MODUL
ExpressJS Rest API

Pada praktikum kali ini kita akan belajar membuat CRUD Restful API Dengan [Link].
Dalam programming, CRUD merupakan singkatan dari Create Read Update dan Delete.
Yakni aplikasi yang berisi pengolahan data. Restful API ini merupakan backend yang
nantinya akan digunakan frontend untuk berkomunikasi dengan database.

1. Membuat Project ExpressJS

1.1. Membuat Project


Silahkan masuk ke dalam folder tempat menyimpan kumpulan project-nya, kemudian
jalankan perintah berikut ini di dalam terminal/CMD :

Perintah mkdir di atas digunakan untuk membuat sebuah direktori / folder baru dan nama
folder tersebut adalah express-api.

Setelah folder berhasil terbuat, sekarang kita akan masuk ke dalam folder tersebut
menggunakan perintah berikut ini :

Jika sudah berada di dalam folder express-api, maka sekarang kita akan lanjutkan untuk
membuat project [Link] baru. Silahkan jalankan perintah berikut ini di dalam
terminal/CMD :

npm init

Ketika kita menjalankan perintah di atas, maka kita akan mendapatkan beberapa
pertanyaan, silahkan ikuti langkah-langkahnya seperti berikut ini :

PERTANYAAN AKSI

package name Silahkan ENTER, karena kita akan


gunakan default package name sesuai dengan
nama folder kita.

Silahkan ENTER, atau bisa memberikan versi-nya terlebih


version
dahulu.

Silahkan ENTER, atau bisa memberikan deskripsi project-


description
nya terlebih dahulu.

Secara default nama main file project kita


adalah [Link], ini bisa disesuaikan atau
entry point
dibiarkan default dengan [Link]. Setelah itu,
silahkan ENTER.

test command Silahkan ENTER.

git repository Silahkan ENTER.

keywords Silahkan ENTER.

author Siilahkan ENTER, atau bisa disesuaikan terlebih dahulu.

license Silahkan ENTER.

Kemudian ada pertanyaan lagi Is this OK? (yes). Silahkan ENTER. Jika berhasil maka kita
akan mendapatkan 1 file baru dengan nama [Link] dengan isi sama seperti di
bawah.
Sekarang, kita lanjutkan untuk melakukan installasi [Link]. Silahkan jalankan perintah
berikut ini di dalam terminal/CMD dan pastikan berada di dalam folder express-api.

Jika perintah di atas berhasil dijalankan, maka kita akan mendapatkan 1 folder baru dengan
nama node_modules, yang mana folder tersebut berisi dependensi dari [Link] dan
termasuk [Link].

Dan jika kita lihat di dalam file [Link] dibagian dependencies, maka kita menemukan
kurang lebih sepeti berikut ini :
Artinya [Link] sudah berhasil ditambahkan.

1.2. Membuat Main File ExpressJS


Sekarang kita akan menambahkan main file dari [Link] dan menambahkan 1 route
untuk mencobanya di dalam web browser. Silahkan buat file baru dengan nama [Link] dan
masukkan kode berikut ini di dalamnya.

const express = require('express')


[Link]
const app = express()
const port = 3000

[Link]('/', (req, res) => {


[Link]('Hello World!')
})

[Link](port, () => {
[Link](`app running at [Link]
})

1.3. Menjalankan Project ExpressJS


Setelah berhasil menambahkan file main dari project [Link], sekarang kita akan belajar
menjalankan project tersebut. Silahkahkan jalankan perintah berikut ini di dalam
terminal/CMD dan pastikan berada di dalam folder express-api :

Jika muncul tulisan app running at [Link] Artinya aplikasi [Link] kita telah
berhasil dijalankan dan kita bisa melihatnya di dalam web browser di [Link]
dan jika berhasil maka kurang lebih tampilannya seperti berikut ini :

1.4. Instalasi Nodemon


Nodemon merupakan library yang akan membantu developer dalam pengembangan
aplikasi terutama berbasis [Link]. Karena Nodemon akan melakukan restart secara
otomatis terhadapap aplikasi yang dijalankan ketika ada perubahan kode yang dilakukan.

Disini kita akan menginstall library Nodemon secara global di dalam komputer, silahkan
jalankan perintah berikut ini di dalam terminal/CMD :

Sekarang, untuk menjalankan project [Link], kita gunakan perintah seperti berikut ini :

Sekarang, jika ada perubahan yang kita lankukan di dalam project, maka Nodemon akan
otomatis melakukan restart secara otomatis.

2. Konfigurasi Database

2.1. Instalasi library MySQL


Sekarang kita akan belajar menginstall library MySQL, library ini merupakan driver mysql
yang akan digunakan untuk menghubungkan antara project [Link] dan database
MySQL. Silahkan jalankan perintah di bawah ini untuk menginstall-nya.
2.2. Konfigurasi Database
Setelah berhasil melakukan installasi library MySQL, sekarang kita lanjutkan untuk membuat
konfigurasi database di dalam project [Link].

Silahkan buat folder baru dengan nama config di dalam project [Link]. Dan di dalam
folder config silahkan buat file baru dengan nama [Link] dan masukkan kode berikut ini
di dalamnya.

/config/[Link] let mysql = require('mysql');

let connection = [Link]({


host: 'localhost',
user: 'root',
password: '',
database: 'db_express_api'
});

[Link](function (error) {
if (!!error) {
[Link](error);
} else {
[Link]('Connection Succuessfully!');
}
})

[Link] = connection;

2.3. Membuat Database dan Table


Sekarang, kita lanjutkan untuk membuat database baru di dalam MySQL dan kita juga akan
menambahkan 1 table baru yang akan kita gunakan untuk menyimpan data-nya nanti.

Silahkan jalankan xampp nya, start apache dan MySQL, kemudian silahkan buka
[Link] kemudian buat database baru dengan nama
db_express_api, kurang lebih seperti berikut ini :

Buat table mahasiswa yang terdiri 4 kolom


Kemudian atur pembuatan dengan kolom seperti dibawah ini

Di atas, kita set 4 field/coloumn tersebut kurang lebih seperti berikut ini :

nim - menggunakan type data VARCHAR dengan value 255 kemudian kita set menjadi
PRIMARY
nama - menggunakan type data varchar dengan value 255.
jurusan - menggunakan type data varchar dengan value 255.
asal_provinsi - menggunakan type data varchar dengan value 255.

3. Menampilkan Data dari Database


Sebelum itu, silahkan download aplikasi yang bernama Postman terlebih dahulu. aplikasi
tersebut yang nanti akan digunakan untuk melakukan API testing dari setiap Rest API yang
kita buat di dalam [Link]. [Link]

3.1. Membuat Konfigurasi Router


Sekarang kita lanjutkan untuk membuat router di dalam project [Link], router inilah yang
nantinya kita akses sebagai Rest API di dalam project [Link].

Silahkan buat folder baru dengan nama routes di dalam project [Link], setelah itu di
dalam folder routes tersebut silahkan buat file baru dengan nama [Link] dan
masukkan kode berikut ini di dalamnya.
/routes/[Link] const express = require('express');
const router = [Link]();

//import database
const connection = require('../config/database');

/**
* INDEX MAHASISWA
*/
[Link]('/', function (req, res) {
//query
[Link]('SELECT * FROM mahasiswa ORDER
BY nim desc', function (err, rows) {
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'List Data Mahasiswa',
data: rows
})
}
});
});

[Link] = router;

3.2. Import Router di [Link]


Sekarang kita akan import konfigurasi router di atas di dalam file [Link] agar router
tersebut dapat digunakan. Silahkan buka file [Link], kemudian ubah semua kode-nya
menjadi seperti berikut ini :

[Link] const express = require('express')


const app = express()
const port = 3000

//import route mahasiswa


const mahasiswaRouter = require('./routes/mahasiswa');
[Link]('/api/mahasiswa', mahasiswaRouter); // use route
mahasiswa di Express

[Link](port, () => {
[Link](`app running at [Link]
})

3.3. Uji Coba REST API Menampilkan Data


Sekarang kita akan lakukan uji coba Rest API untuk menampilkan data posts dari database.
Silahkan buka aplikasi Postman dan masukkan URL berkut ini
[Link] dan untuk method-nya adalah GET. Setelah itu
silahkan klik Send. Jika berhasil maka kita akan mendapatkan hasil kurang lebih seperti
berikut ini :

Di atas, kita telah berhasil melakukan proses uji coba menampilkan data posts dari
database. Karena belum memiliki data apapun di dalam database, maka kita hanya
mendapatkan array kosong.

4. Insert Data ke Database

4.1. Instalasi Library Pendukung


Disini kita akan melakukan installasi dan konfigurasi library tambahan terlebih dahulu untuk
kebutuhan proses insert data di dalam [Link].

Body Parser

Body Parser merupakan library yang berisi middleware untuk membaca sebuah data yang
dikirimkan oleh HTTP POST dan menyimpannya sebagai objek JavaScript yang dapat di
akses melalui [Link]. Silahkan jalankan perintah berikut ini di dalam terminal/CMD untuk
melakukan installasi Body Parser di dalam project [Link].
Setelah berhasil melakukan installasi, sekarang kita lanjutkan untuk melakukan konfigurasi
di dalam project [Link]. Silahkan buka file [Link], kemudian ubah kode-nya menjadi
seperti berikut ini :

[Link] const express = require('express')


const app = express()
const port = 3000

//import body parser


const bodyParser = require('body-parser')

// parse application/x-www-form-urlencoded
[Link]([Link]({ extended: false }))

// parse application/json
[Link]([Link]())

//import route mahasiswa


const mahasiswaRouter = require('./routes/mahasiswa');
[Link]('/api/mahasiswa', mahasiswaRouter); // use route
mahasiswa di Express

[Link](port, () => {
[Link](`app running at [Link]
})

Library pendukung yang kedua adalah Express Validator

Setelah berhasil melakukan installasi dan konfigurasi Body Parser di dalam project
[Link], sekarang kita lanjutkan untuk melakukan installasi library Express Validator.
Library ini akan digunakan untuk membuat sebuah validasi di dalam project [Link]
dengan lebih mudah.

Silahkan jalankan perintah berikut ini di dalam terminal/CMD :


4.2. Menambahkan Route Store
Sekarang kita lanjutkan menambahkan route baru yang nantinya digunakan untuk proses
insert data ke dalam database. Silahkan buka file routes/[Link], kemudian ubah
semua kode-nya menjadi seperti berikut ini :

/routes/[Link] const express = require('express');


const router = [Link]();

//import express validator


const { body, validationResult } =
require('express-validator');

//import database
const connection = require('../config/database');

/**
* INDEX MAHASISWA
*/
[Link]('/', function (req, res) {
//query
[Link]('SELECT * FROM mahasiswa ORDER
BY nim desc', function (err, rows) {
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'List Data Mahasiswa',
data: rows
})
}
});
});
/**
* STORE MAHASISWA
*/
[Link]('/store', [

//validation
body('nim').notEmpty(),
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {

const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//define formData
let formData = {
nim: [Link],
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// insert query
[Link]('INSERT INTO mahasiswa SET ?',
formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](201).json({
status: true,
message: 'Insert Data
Successfully',
data: rows[0]
})
}
})
});

[Link] = router;

4.3. Uji Coba Rest API Insert Data

Sekarang kita lanjutkan untuk melakukan proses insert data ke dalam database
menggunakan Rest API di [Link]. Jalankan kembali project express nya, kemudian
silahkan buka aplikasi Postman, kemudian masukkan URL berikut ini
[Link] dan untuk method-nya adalah POST.

Setelah itu, silahkan klik Send, maka kita akan mendapatkan sebuah response berupa
validasi yang dihasilkan oleh library Express Validator. Karena kita tidak mengirim data
apapun ke dalam server.
Sekarang, kita akan lakukan uji coba memasukkan data dan mengirimkannya ke dalam
server. Silahkan klik tab Body dan pilih raw kemudian ubah tipe nya ke JSON, kemudian
masukkan object JSON berikut ini :

Kemudian klik Send, bila sukses akan menampilkan seperti ini

Silahkan cek di database akan muncul data yang sudah kita tambahkan
5. Menampilkan Detail Data

5.1. Menambahkan Route Detail


Di dalam route ini kita akan melakukan query ke dalam database dengan parameter ID yang
didapatkan dari URL browser. Silahkan buka file routes/[Link], kemudian ubah kode-
nya menjadi seperti berikut ini :

/routes/[Link] const express = require('express');


const router = [Link]();

//import express validator


const { body, validationResult } =
require('express-validator');

//import database
const connection = require('../config/database');

/**
* INDEX MAHASISWA
*/
[Link]('/', function (req, res) {
//query
[Link]('SELECT * FROM mahasiswa ORDER
BY nim desc', function (err, rows) {
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'List Data Mahasiswa',
data: rows
})
}
});
});

/**
* STORE MAHASISWA
*/
[Link]('/store', [

//validation
body('nim').notEmpty(),
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {

const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//define formData
let formData = {
nim: [Link],
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// insert query
[Link]('INSERT INTO mahasiswa SET ?',
formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](201).json({
status: true,
message: 'Insert Data
Successfully',
data: rows[0]
})
}
})

});

/**
* SHOW MAHASISWA
*/
[Link]('/(:id)', function (req, res) {

let id = [Link];

[Link](`SELECT * FROM mahasiswa WHERE


nim = ${id}`, function (err, rows) {

if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
}

// if mahasiswa not found


if ([Link] <= 0) {
return [Link](404).json({
status: false,
message: 'Data Mahasiswa Not
Found!',
})
}
// if mahasiswa found
else {
return [Link](200).json({
status: true,
message: 'Detail Data Mahasiswa',
data: rows[0]
})
}
})
})

[Link] = router;
5.2. Uji Coba Rest API Detail Data
Sekarang kita akan lakukan uji coba untuk menampilkan detail data berdasarkan ID, yaitu
NIM. SIlahkan buka aplikasi Postman dan masukkan URL berikut ini
[Link] dan untuk method-nya silahkan pilih GET.

Sekarang, kita akan lanjutkan untuk melakukan uji coba dengan data yang ada di dalam
table posts, silahkan buka aplikasi Postman dan masukkan URL berikut ini
[Link] dan untuk method-nya silahkan pilih GET.
6. Update Data ke Database

6.1. Menambahkan Route Update


Sekarang kita lanjutkan untuk menambahkan route baru untuk proses update. Di dalam
route ini nanti kita juga akan memberikan sebuah validasi untuk memastikan data yang akan
diupdate sudah sesuai dengan yang diharapkan.

Silahkan buka file routes/[Link], kemudian ubah semua kode-nya menjadi seperti
berikut ini :

/routes/[Link] const express = require('express');


const router = [Link]();

//import express validator


const { body, validationResult } =
require('express-validator');

//import database
const connection = require('../config/database');

/**
* INDEX MAHASISWA
*/
[Link]('/', function (req, res) {
//query
[Link]('SELECT * FROM mahasiswa ORDER
BY nim desc', function (err, rows) {
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'List Data Mahasiswa',
data: rows
})
}
});
});

/**
* STORE MAHASISWA
*/
[Link]('/store', [
//validation
body('nim').notEmpty(),
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {

const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//define formData
let formData = {
nim: [Link],
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// insert query
[Link]('INSERT INTO mahasiswa SET ?',
formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](201).json({
status: true,
message: 'Insert Data
Successfully',
data: rows[0]
})
}
})

});

/**
* SHOW MAHASISWA
*/
[Link]('/(:id)', function (req, res) {

let id = [Link];

[Link](`SELECT * FROM mahasiswa WHERE


nim = ${id}`, function (err, rows) {

if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
}

// if mahasiswa not found


if ([Link] <= 0) {
return [Link](404).json({
status: false,
message: 'Data Mahasiswa Not
Found!',
})
}
// if mahasiswa found
else {
return [Link](200).json({
status: true,
message: 'Detail Data Mahasiswa',
data: rows[0]
})
}
})
})

/**
* UPDATE MAHASISWA
*/
[Link]('/update/:id', [

//validation
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {

const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//id mahasiswa
let id = [Link];

//data mahasiswa
let formData = {
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// update query
[Link](`UPDATE mahasiswa SET ? WHERE
nim = ${id}`, formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'Update Data
Successfully!'
})
}
})

});

[Link] = router;

6.2. Uji Coba Rest API Update Data


Sekarang kita akan melakukan uji coba proses update data. Silahkan buka aplikasi Postman
dan masukkan URL berikut ini [Link] dan
untuk method-nya silahkan pilih PATCH.

CATATAN : di atas, kita akan melakukan update data yang memiliki ID(primary key)
11111111 atau nim 11111111.
Setelah itu buka tab Body, pilih raw dan ubah type ke JSON, kemudian masukkan object
seperti berikut :

Silahkan cek di database maka juga akan berubah

7. Delete Data dari Database


7.1 Menambahkan Route Delete
Sekarang kita akan menambahkan route baru untuk proses delete data. Silahkan buka file
routes/[Link], kemudian ubah semua kode-nya menjadi seperti berikut ini :
/routes/[Link] const express = require('express');
const router = [Link]();

//import express validator


const { body, validationResult } =
require('express-validator');

//import database
const connection = require('../config/database');

/**
* INDEX MAHASISWA
*/
[Link]('/', function (req, res) {
//query
[Link]('SELECT * FROM mahasiswa ORDER
BY nim desc', function (err, rows) {
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'List Data Mahasiswa',
data: rows
})
}
});
});

/**
* STORE MAHASISWA
*/
[Link]('/store', [

//validation
body('nim').notEmpty(),
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {


const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//define formData
let formData = {
nim: [Link],
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// insert query
[Link]('INSERT INTO mahasiswa SET ?',
formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](201).json({
status: true,
message: 'Insert Data
Successfully',
data: rows[0]
})
}
})

});

/**
* SHOW MAHASISWA
*/
[Link]('/(:id)', function (req, res) {

let id = [Link];

[Link](`SELECT * FROM mahasiswa WHERE


nim = ${id}`, function (err, rows) {

if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
}

// if mahasiswa not found


if ([Link] <= 0) {
return [Link](404).json({
status: false,
message: 'Data Mahasiswa Not
Found!',
})
}
// if mahasiswa found
else {
return [Link](200).json({
status: true,
message: 'Detail Data Mahasiswa',
data: rows[0]
})
}
})
})

/**
* UPDATE MAHASISWA
*/
[Link]('/update/:id', [

//validation
body('nama').notEmpty(),
body('jurusan').notEmpty(),
body('asal_provinsi').notEmpty()

], (req, res) => {

const errors = validationResult(req);

if (![Link]()) {
return [Link](422).json({
errors: [Link]()
});
}

//id mahasiswa
let id = [Link];
//data mahasiswa
let formData = {
nama: [Link],
jurusan: [Link],
asal_provinsi: [Link].asal_provinsi
}

// update query
[Link](`UPDATE mahasiswa SET ? WHERE
nim = ${id}`, formData, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'Update Data
Successfully!'
})
}
})

});

/**
* DELETE MAHASISWA
*/
[Link]('/delete/(:id)', function (req, res)
{

let id = [Link];

[Link](`DELETE FROM mahasiswa WHERE


nim = ${id}`, function (err, rows) {
//if(err) throw err
if (err) {
return [Link](500).json({
status: false,
message: 'Internal Server Error',
})
} else {
return [Link](200).json({
status: true,
message: 'Delete Data
Successfully!',
})
}
})
});

[Link] = router;

7.2. Uji Coba Rest API Delete Data


Sekarang kita akan lakukan uji coba untuk melakukan proses delete data menggunakan
Rest API. Silahkan buka aplikasi Postman dan masukkan URL berikut ini
[Link] untuk method-nya silahkan pilih
DELETE.

CATATAN : di atas, kita melakukan delete data dengan ID(primary key) 11111111 atau nim
11111111.

Silahkan klik Send, jika berhasil maka kita akan mendapatkan response dengan format
JSON yang berisi informasi data berhasil dihapus dari database.

Silahkan cek di database maka data akan terhapus


8. Enable CORS di Express
CORS merupakan singkatan dari Cross Origin Resource Sharing, yaitu sebuah teknik
menggunakan permintaan HTTP untuk mengizinkan browser pada suatu domain
mendapatkan akses ke server pada sumber yang berbeda. Ini digunakan agar Retful API
yang sudah kita buat sebelumnya bisa digunakan atau bisa di akses oleh aplikasi lain
seperti aplikasi Android atau web browser.

8.1. Instalasi Library CORS


Sekarang kita akan menggunakan library tambahan untuk menangani proses CORS di
dalam project [Link]. Silahkan jalankan perintah berikut ini di dalam terminal/CMD dan
pastikan berada di dalam project [Link].

8.2. Konfigurasi CORS


Setelah berhasil melakukan installasi library, sekarang kita lanjutkan untuk konfigurasi di
dalam project [Link]. Silahkan buka file [Link], kemudian ubah kode-nya menjadi
seperti berikut ini :

[Link] const express = require('express')


const app = express()
const port = 3000

//import library CORS


const cors = require('cors')

//use cors
[Link](cors())

//import body parser


const bodyParser = require('body-parser')

// parse application/x-www-form-urlencoded
[Link]([Link]({ extended: false }))

// parse application/json
[Link]([Link]())

//import route mahasiswa


const mahasiswaRouter = require('./routes/mahasiswa');
[Link]('/api/mahasiswa', mahasiswaRouter); // use route
mahasiswa di Express

[Link](port, () => {
[Link](`app running at [Link]
})

Tugas
1. Praktekkan seluruh poin praktikum yang ada di atas.
2. Dokumentasikan hasil praktikum tersebut (screenshot kode program, output pada
postman, penjelasan kode program yang ditulis) dalam bentuk Laporan
Praktikum.
3. Kumpulkan Laporan Praktikum (.pdf) dan Folder Project React (tanpa folder
node_modules) yang telah dibuat di dalam praktikum via E-Learning dalam format
[nim].zip.
4. Laporan (.pdf) dimasukkan ke dalam folder project Express.

Anda mungkin juga menyukai