Node JS (Web)


Apa Itu Web Node JS? Kenapa Menggunakan Node.JS?

Node.JS adalah platform pemrograman web dan aplikasi jaringan pada sisi server. Node JS ditulis dengan bahasa JavaScript dan dapat dijalankan pada Windows, Mac OS X, dan Linux dengan kode program yang sama.

Node.js memiliki library server HTTP sendiri sehingga memungkinkan untuk menjalankan service web tanpa menggunakan program service web seperti Apache. Untuk skala production bisa dijalankan menggunakan PM2 dan Nginx sebagai proxy.

NodeJS sangat cocok untuk membuat aplikasi yang membutuhkan komunikasi real time antara client dan server. Library seperti socket.io dapat membangun aplikasi produk seperti app chat dengan sangat mudah. Fitur ini juga membuat Node js. cocok untuk membangun aplikasi yang terkoneksi dan memproses data dari perangkat IoT (Internet of Things).

Saat ini banyak framework client-side (sisi browser) yang populer seperti React, Vue, dan Angular juga ditulis dalam bahasa JavaScript seperti halnya NodeJS yang juga menggunakan Javascript. Dalam hal ini merupakan keunggulan karena cukup menguasai satu bahasa untuk membuat program di sisi server maupun sisi klien.

Node JS bekerja dengan sistem single-threaded event yang sangat cepat ketika menangani banyak request sekaligus dari client. Ada library-library third party yang terus berkembang dan dapat diakses melalui NPM untuk client-side dan server-side, serta command lines tools untuk development web, dan sebagian besar di-host di GitHub.

ContohProgram.com menyediakan pelatihan dan source code Node JS dan Database MySQL untuk membuat Aplikasi Web, Sistem Pakar, Sistem Pendukung Keputusan dan Sistem Cerdas lain.

Tutorial Node JS


Video Tutorial Pemrograman Node JS di Youtube

Instalasi Node JS


Cara menginstall NodeJS di Windows

Download Installer NodeJS dari website Node.JS di https://nodejs.org/download. Pilih Installer NodeJS untuk Windows, versi terbaru.

Jalankan installer Node JS, kemudian ikuti langkah-langkahnya, pilih opsi yang diinginkan dan klik Next, Next dan Next sampai selesai.

Instalasi Node JS di Windows

Untuk mengetes apakah instalasi Node JS sudah berhasil dilakukan, buka Command Prompt DOS, dengan cara klik Start Ketik "cmd", kemudian klik. Pada perintah Command Prompt ketikkan "node -v". Kemudian ketikkan juga perintah "npm -v" untuk mengetes tool installer untuk menginstall library tambahan Node JS.

Perintah Node JS pada Command Prompt DOS

Pemrograman Node JS


Membuat Aplikasi Pertama Hello World NodeJS di Windows

Masuk DOS Prompt, klik Start, ketik cmd:

Microsoft Windows [Version 10.0.18362.1016]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>

Arahkan ke direktori tempat project akan diletakkan:

C:\WINDOWS\system32>E:

E:\>cd nodejs

Buat direktori project, masuk ke direktori tersebut:

E:\nodejs>mkdir hello-world-nodejs

E:\nodejs>cd hello-world-nodejs

Ketikkan perintah npm init untuk membuat project baru

E:\nodejs\hello-world-nodejs>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (hello-world-nodejs)
version: (1.0.0)
description: Node.JS Hello World App
entry point: (index.js) app.js
test command:
git repository:
keywords:
author: contohprogram.com
license: (ISC)
About to write to E:\nodejs\hello-world-nodejs\package.json:

{
  "name": "hello-world-nodejs",
  "version": "1.0.0",
  "description": "Node.JS Hello World App",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "contohprogram.com",
  "license": "ISC"
}


Is this OK? (yes) yes

Ketikkan perintah berikut ini untuk menambahkan depencies yang dibutuhkan yaitu express:

E:\nodejs\hello-world-nodejs>npm install express
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN hello-world-nodejs@1.0.0 No repository field.

+ express@4.17.1
added 50 packages from 37 contributors and audited 50 packages in 18.262s
found 0 vulnerabilities

Hasilnya akan didapatkan folder node_modules berisi file-file library dependencies yang telah didownload, dan file package.json seperti ini :

{
  "name": "hello-world-nodejs",
  "version": "1.0.0",
  "description": "Node.JS Hello World App",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "contohprogram.com",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1"
  }
}

Selanjutnya buat file app.js dan buka di editor, kemudian tambahkan kode program berikut ini, kemudian simpan :

var express = require("express");
var app = express();

app.get("/", function (req, res) {
    return res.send("Hello World")
});

app.listen(3000, function () {
    console.log("App is running");
});

module.exports = app;

Kemudian jalankan aplikasi node js dengan perintah node app.js :

E:\nodejs\hello-world-nodejs>node app.js
App is running

Selesai, hasilnya bisa dilihat dari browser dengan url http://localhost:3000/ :

Aplikasi Hello World Node JS

Untuk menghentikan aplikasi, tekan Ctrl+C.

Pemrograman Node JS dan Database MySQL


Membuat Aplikasi Koneksi NodeJS dengan Database MySQL

Masuk DOS Prompt, klik Start, ketik cmd:

Microsoft Windows [Version 10.0.18362.1016]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>

Arahkan ke direktori tempat project akan diletakkan:

C:\WINDOWS\system32>E:

E:\>cd nodejs

Buat direktori project, masuk ke direktori tersebut:

E:\nodejs>mkdir crud-nodejs-mysql

E:\nodejs>cd crud-nodejs-mysql

Ketikkan perintah npm init untuk membuat project baru

E:\nodejs\crud-nodejs-mysql>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (crud-nodejs-mysql)
version: (1.0.0)
description: Aplikasi CRUD Node JS dengan Database MySQL
entry point: (index.js) app.js
test command:
git repository:
keywords:
author: contohprogram.com
license: (ISC)
About to write to E:\nodejs\crud-nodejs-mysql\package.json:

{
  "name": "crud-nodejs-mysql",
  "version": "1.0.0",
  "description": "Aplikasi CRUD Node JS dengan Database MySQL",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "contohprogram.com",
  "license": "ISC"
}


Is this OK? (yes) yes

Ketikkan perintah berikut ini untuk menambahkan depencies yang dibutuhkan :

E:\nodejs\crud-nodejs-mysql>npm i express body-parser mysql ejs cookie-parser express-session method-override express-flash
npm WARN ejs-nodejs-mysql@1.0.0 No repository field.

+ express-session@1.17.1
+ cookie-parser@1.4.5
+ method-override@3.0.0
+ ejs@3.1.5
+ mysql@2.18.1
+ express@4.17.1
+ body-parser@1.19.0
+ express-flash@0.0.2
added 2 packages from 2 contributors, updated 7 packages and audited 85 packages in 16.914s
found 0 vulnerabilities

Selanjutnya dibuat file db.js untuk melakukan koneksi ke database MySQL. Buat file db.js dan buka di editor, kemudian tambahkan kode program berikut ini :

const mysql = require('mysql');
const pool = mysql.createPool({
  connectionLimit : 100,
  host            : 'localhost',
  user            : 'root',
  password        : '',
  database        : 'test'
});
var getConnection = function(callback) {
    pool.getConnection(function(err, connection) {
        callback(err, connection);
    });
};
module.exports = getConnection;

Kemudian dibuat file utama app.js, buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

var express = require("express");
var app = express();
const db = require('./db');

app.get("/", function (req, res) {
	db((errdb, conn) => {
		if(errdb){ return res.status(500).send("Koneksi Gagal"); }
		conn.query('SELECT * FROM users', (error, results, fields) => {
			conn.release();
			if(error){ return res.status(500).send("Query Gagal"); }
			return res.send(results);
		});
	});
});

app.listen(3000, function () {
    console.log("App is running");
});

module.exports = app;

Kemudian jalankan aplikasi node js dengan perintah node app.js :

E:\nodejs\crud-nodejs-mysql>node app.js
App is running

Selesai, hasilnya bisa dilihat dari browser dengan url http://localhost:3000/ :

Aplikasi CRUD Node JS MySQL

Untuk menghentikan aplikasi, tekan Ctrl+C.

Aplikasi Node JS Service Rest JSON API


Membuat Service Rest JSON API dengan NodeJS

Untuk menambahkan Service Rest JSON API tinggal menambahkan fungsi baru yang sama tetapi dengan output format JSON. Seperti ini :

var express = require("express");
var app = express();
const db = require('./db');

app.get("/", function (req, res) {
	db((errdb, conn) => {
		if(errdb){ return res.status(500).send("Koneksi Gagal"); }
		conn.query('SELECT * FROM users', (error, results, fields) => {
			conn.release();
			if(error){ return res.status(500).send("Query Gagal"); }
			return res.send(results);
		});
	});
});

app.get("/users", function (req, res) {
	db((errdb, conn) => {
		if(errdb){ return res.status(500).send({ message: 'Koneksi Gagal'}); }
		conn.query('SELECT * FROM users', (error, results, fields) => {
			conn.release();
			if(error){ return res.status(500).send({ message: 'Query Gagal'}); }
			return res.json(results);
		});
	});
});

app.listen(3000, function () {
    console.log("App is running");
});

module.exports = app;

Kemudian jalankan aplikasi node js dengan perintah node app.js :

E:\nodejs\crud-nodejs-mysql>node app.js
App is running

Selesai, hasilnya bisa dilihat dari browser dengan url http://localhost:3000/users :

Aplikasi Service Rest API JSON Node JS

Untuk menghentikan aplikasi, tekan Ctrl+C.

Node JS dengan Template EJS dan MySQL


Membuat Aplikasi CRUD NodeJS dengan Template EJS dan Database MySQL

Masuk DOS Prompt, klik Start, ketik cmd:

Microsoft Windows [Version 10.0.18362.1016]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>

Arahkan ke direktori tempat project akan diletakkan:

C:\WINDOWS\system32>E:

E:\>cd nodejs

Buat direktori project, masuk ke direktori tersebut:

E:\nodejs>mkdir ejs-nodejs-mysql

E:\nodejs>cd ejs-nodejs-mysql

Ketikkan perintah npm init untuk membuat project baru

E:\nodejs\ejs-nodejs-mysql>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (ejs-nodejs-mysql)
version: (1.0.0)
description: Aplikasi CRUD NodeJS dengan EJS dan Database MySQL
entry point: (index.js) app.js
test command:
git repository:
keywords:
author: contohprogram.com
license: (ISC)
About to write to E:\nodejs\ejs-nodejs-mysql\package.json:

{
  "name": "ejs-nodejs-mysql",
  "version": "1.0.0",
  "description": "Aplikasi CRUD NodeJS dengan EJS dan Database MySQL",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "contohprogram.com",
  "license": "ISC"
}


Is this OK? (yes) yes

Ketikkan perintah berikut ini untuk menambahkan depencies yang dibutuhkan :

E:\nodejs\ejs-nodejs-mysql>npm i express body-parser mysql ejs cookie-parser express-session method-override express-flash
npm WARN ejs-nodejs-mysql@1.0.0 No repository field.

+ express-flash@0.0.2
+ express-session@1.17.1
+ cookie-parser@1.4.5
+ method-override@3.0.0
+ mysql@2.18.1
+ ejs@3.1.5
+ body-parser@1.19.0
+ express@4.17.1
added 85 packages from 56 contributors and audited 85 packages in 20.019s
found 0 vulnerabilities

Selanjutnya dibuat file db.js untuk melakukan koneksi ke database MySQL. Buat file db.js dan buka di editor, kemudian tambahkan kode program berikut ini :

const mysql = require('mysql');
const pool = mysql.createPool({
  connectionLimit : 100,
  host            : 'localhost',
  user            : 'root',
  password        : '',
  database        : 'test'
});
var getConnection = function(callback) {
    pool.getConnection(function(err, connection) {
        callback(err, connection);
    });
};
module.exports = getConnection;

Kemudian dibuat file utama app.js, buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

var express = require("express");
var app = express();
const db = require('./db');

app.set('view engine', 'ejs')

var users = require('./routes/users')

var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())


var methodOverride = require('method-override')
app.use(methodOverride(function (req, res) {
  if (req.body && typeof req.body === 'object' && '_method' in req.body) {
    // look in urlencoded POST bodies and delete it
    var method = req.body._method
    delete req.body._method
    return method
  }
}))

var flash = require('express-flash')
var cookieParser = require('cookie-parser');
var session = require('express-session');

app.use(cookieParser('keyboard cat'))
app.use(session({ 
	secret: 'keyboard cat',
	resave: false,
	saveUninitialized: true,
	cookie: { maxAge: 60000 }
}))
app.use(flash())

app.get("/", function (req, res) {
	db((errdb, conn) => {
		if(errdb){ return res.status(500).send("Koneksi Gagal"); }
		conn.query('SELECT * FROM users', (error, results, fields) => {
			conn.release();
			if(error){ return res.status(500).send("Query Gagal"); }
			return res.send(results);
		});
	});
});

app.use('/users', users)

app.listen(3000, function(){
	console.log('Server running at port 3000: http://127.0.0.1:3000')
})

module.exports = app;

Kemudian dibuat direktori routes dan di dalamnya dibuat file routes/users.js untuk menangani halaman dengan url awal /users/. Buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

var express = require('express')
var app = express()
const db = require('../db');

app.get('/', function(req, res, next) {
	db((errdb, conn) => {
		if(errdb){ return res.status(500).send("Koneksi Gagal"); }
		conn.query('SELECT * FROM users', (err, results, fields) => {
			conn.release();
			if (err) {
				req.flash('error', err)
				res.render('users/list', {
					title: 'Daftar User', 
					data: ''
				})
			} else {
				res.render('users/list', {
					title: 'Daftar User', 
					data: results
				})
			}
		})
	})
})

module.exports = app

Setelah itu tinggal membuat file template EJS dalam direktori views/users, dengan nama list.ejs. Buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

<%- include('../header.ejs') %>

<% if (messages.error) { %>
	<p style="color:red"><%- messages.error %></p>
<% } %>

<% if (messages.success) { %>
	<p style="color:green"><%- messages.success %></p>
<% } %>	

<table width='80%' border=0>

	<tr style='text-align:left; background-color:#CCC'>
		<th>Name</th>
		<th>Email</th>
	</tr>
	
	<% if (data) { %>
	<% data.forEach(function(user){ %>
		<tr>
			<td><%= user.name %></td>
			<td><%= user.email %></td>
		</tr>
	<% }) %>
	<% } %>

</table>

<%- include('../footer.ejs') %>

File template untuk header halaman sengaja dipisah agar bisa dipanggil untuk halaman lain jika ada. Buat file views/header.ejs, buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

<html>
	<head>
		<title><%= title %></title>
	</head>
	<body>
		<div>
			<a href="/users">Daftar Users</a>
		</div>	
		<h1><%= title %></h1>

Terakhir file template untuk footer halaman yang juga sengaja dipisah agar bisa dipanggil untuk halaman lain jika ada. Buat file views/footer.ejs, buka file tersebut di editor, kemudian tambahkan kode program berikut ini :

	</body>
</html>

Kemudian jalankan aplikasi node js dengan perintah node app.js :

E:\nodejs\ejs-nodejs-mysql>node app.js
Server running at port 3000: http://127.0.0.1:3000

Selesai, hasilnya bisa dilihat dari browser dengan url http://localhost:3000/users :

Aplikasi CRUD Node JS dengan Template EJS dan MySQL

Untuk menghentikan aplikasi, tekan Ctrl+C.

Source Code Aplikasi dan Pelatihan

Kami menyediakan Source Code berbagai Aplikasi, termasuk diantaranya Sistem Pendukung Keputusan, Sistem Pakar, Sistem Cerdas, Data Mining dan Data Science. Kami juga melayani Privat Online untuk mempelajari Pemrograman dengan Studi Kasus tertentu dan pelatihan Basic Pemrograman.
Kami juga melayani pembuatan Aplikasi Custom, Penambahan Fitur dan Perbaikan Error Aplikasi

Layanan Pelatihan / Pembuatan / Perbaikan Aplikasi

Kami melayani Privat Online untuk mempelajari Pemrograman dengan Studi Kasus tertentu dan pelatihan Basic Pemrograman.
Kami juga melayani pembuatan Aplikasi Custom, Penambahan Fitur dan Perbaikan Error Aplikasi
Pelatihan dan Konsultasi dilakukan menggunakan Zoom Call atau Video Conference sehingga bisa melihat penjelasan, pembuatan dan perbaikan aplikasi secara interaktif

Hubungi Kami di WA 089671400363 atau Email contohprogram.com@gmail.com

Layanan Hosting Online Aplikasi Web Skripsi / Penelitian / Tugas Akhir

Kami melayani Hosting untuk Kepentingan Skripsi / Penelitian / Tugas Akhir.
Sudah include subdomain <nama pilihan>.jogjawebhosting.com atau bisa menggunakan domain anda sendiri.
Server tersedia untuk menjalankan aplikasi :
Node JS, Python Flask, Bot PHP / Python, Rest API Service, Bot Telegram, PHP 5 / 7, Laravel / CodeIgniter, dan MapServer / QGIS Server.
Database tersedia antara lain MongoDB, PostgreSQL, SQLite, dan MySQL.
Harga terjangkau, bisa sewa per bulan.

Hubungi Kami di WA 089671400363 atau Email contohprogram.com@gmail.com