🇮🇩
HTML, CSS, dan JS
  • Pengenalan
  • Roadmap
    • Frontend Developer
    • Backend Developer
    • Full Stack Developer
  • Pengenalan Teknologi Web
    • Internet
    • World Wide Web
    • Bagaimana WWW Bekerja
    • Evolusi Web
    • DNS Server
    • Domain dan Hosting
  • Pengelanan VCS
  • Pengenalan HTML
    • HTML Dasar
    • HTML Lanjutan
    • HTML5
    • Latihan
  • Pengenalan CSS
    • CSS Dasar
    • CSS Lanjutan
    • Responsif Web
    • Contoh Kuis (a)
    • Contoh Kuis (b)
    • Contoh Kuis (c)
    • Bootstrap
  • Pengenalan Hak Cipta
  • Pengenalan Javascript
    • Javascript Dasar
    • Javascript DOM
    • Javascript Object
    • Javascript Events
  • JS Web Storage API
    • Local Storage
    • Session Storage
    • Contoh
  • JSON
  • Web API
  • Dokumentasi
  • Pengenalan NodeJS
    • Node.js
    • ExpressJS
  • API Express dengan MySQL + Deploy
    • RESTful API (Read)
    • RESTful API (Create, Update, Delete)
    • Deploy NodeJS ke Heroku
  • Socket.io
  • API Express dengan MongoDB + Deploy
    • MongoDB
    • NodeJS API - Create
    • NodeJS API - Read
    • NodeJS API - Update
    • NodeJS API - Delete
    • NodeJS API - Auth
    • NodeJS API - Auth Lanjutan
    • Deploy Vercel
  • Vue.js
    • Vue
    • Vue Axios
    • Vue Axios Lanjutan
  • React Js
Powered by GitBook
On this page
  • Jalankan XAMPP
  • Membuat Database dan Tabel
  • Menggunakan MySQL Workbench
  • Menggunakan phpMyAdmin
  • Buat Direktori Project
  • Buat File index.js
  • Buat File conn.js
  • Buat File controller.js
  • Buat File res.js
  • Buat File routes.js
  • Jalankan node index.js
  • Referensi

Was this helpful?

  1. API Express dengan MySQL + Deploy

RESTful API (Read)

Materi kali ini, kita akan mencoba membuat RESTful API data mahasiswa menggunakan express dan MySQL.

PreviousAPI Express dengan MySQL + DeployNextRESTful API (Create, Update, Delete)

Last updated 1 year ago

Was this helpful?

Jalankan XAMPP

Pilih start menu - XAMPP Control Panel

Pilih Actions Start pada service apache dan mysql

Perhatikan pada kolom Port(s): Pada laptop saya, apache menggunakan port 81 (http), 443 (https), sedangkan mysql menggunakan port 3306.

Membuat Database dan Tabel

Buat database mysql dengan nama : db_express

Buat tabel dengan nama : mahasiswa

Menggunakan MySQL Workbench

Menggunakan phpMyAdmin

Buat Direktori Project

Buat direktori project dengan nama : restful-api

Buat file package.json dengan menjalankan perintah di bawah ini:

npm init

Lalu instal express, mysql dan body-parser dengan menjalan perintah di bawah ini:

npm install express mysql body-parser --save 

Buat File index.js

File index.js merupakan file yang pertama kali diakses.

const express = require('express'), // panggil modul express
    app = express(),
    port = process.env.PORT || 3000,
    bodyParser = require('body-parser'), // panggil modul body-parser
    controller = require('./controller'), // panggil controller.js
    routes = require('./routes'); // panggil routes.js

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

routes(app);

app.listen(port);
console.log('RESTful API server started on: ' + port);

process.env.PORT || 3000, maksudya menyesuaikan PORT yang disediakan pada platform seperti Heroku, jika tidak ada maka PORT 3000 yang digunakan. Pada server localhost port yang akan digunakan adalah PORT 3000.

controller dan routes merupakan file modul yang dibuat terpisah dengan tujuan agar code lebih rapi, terstruktur, dan code tidak berada di index.js semua.

body-parser berfungsi untuk memparsing (cara memecah-mecah suatu rangkaian masukan) permintaan yang masuk (https://github.com/expressjs/body-parser)

Buat File conn.js

File conn.js menghubungkan aplikasi ke database mysql.

const mysql = require('mysql'); // panggil modul mysql

const con = mysql.createConnection({
  host: "localhost",
  user: "root", // user mysql : root
  password: "", // pass mysql : default (tidak ada)
  database: "db_express" // nama database
});

con.connect(function (err){
    if(err) throw err;
});

module.exports = con;

Buat File controller.js

'use strict';

const response = require('./res'); // panggil res.js
const connection = require('./conn'); // panggil conn.js

exports.users = function(req, res) {
    connection.query('SELECT * FROM mahasiswa', function (error, rows, fields){
        if(error){
            console.log(error)
        } else{
            response.ok(rows, res)
        }
    });
};

exports.index = function(req, res) {
    response.ok("Hello from the Node JS RESTful side!", res)
};

'use strict'; merupakan ekspresi literal javascript untuk menunjukkan bahwa kode harus dijalankan dalam mode strict. Dengan mode strict, kita tidak dapat, misalnya, menggunakan variabel yang tidak dideklarasikan. (https://www.w3schools.com/js/js_strict.asp)

'SELECT * FROM mahasiswa' merupakan query untuk mengakses data yang ada di tabel mahasiswa.

response.ok(rows, res) memanggil exports.ok yang ada di file res.js dengan mengirimkan parameter rows dan res.

Buat File res.js

File res.js merupakan file untuk membuat standarisasi respon yang akan dikembalikan. Standarisasi respon ini nantinya sangat membantu frontend web developer.

'use strict';

exports.ok = function(values, res) {
  let data = {
      'status': 200,
      'values': values
  };
  res.json(data);
  res.end();
};

values disini merupakan parameter rows yang dikirim dari exports.users pada controller.js

res.json(data) mengirimkan data (status dan values) dalam bentuk json

res.end() menutup atau mengakhiri koneksi ke database

HTTP response status code dapat dilihat di https://developer.mozilla.org/id/docs/Web/HTTP/Status

Buat File routes.js

File routes.js berisi route atau endpoint yang dapat diakses

'use strict';

module.exports = function(app) {
    let todoList = require('./controller'); // panggil controller.js

    // endpoint http://localhost:3000
    app.route('/')
        .get(todoList.index);

    // endpoint http://localhost:3000/users
    app.route('/users')
        .get(todoList.users); 
};

Jalankan node index.js

Silakan jalankan index.js dengan perintah

node index.js

Silakan akses http://localhost:3000 dan http://localhost:3000/users dari browser atau menggunakan aplikasi insomina atau postman.

Referensi

Respon http://localhost:3000
Respon http://localhost:3000/users
Cloud Application Platform | Heroku
Logo
What is process.env.PORT in Node.js?Stack Overflow
Tutorial RESTful API Node JS + Express + MySQL — Part 1Medium
Logo
Logo