Node Js adalah 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.
Untuk mengeksekusi Javascript sebagai bahasa server diperlukan engine yang cepat dan mempunyai performansi yang bagus. Engine Javascript dari Google bernama* V8*-lah yang dipakai oleh Node.js yang juga merupakan engine yang dipakai oleh browser Google Chrome.
Bagaimana Node.js Bekerja?
Berbeda dengan bahasa pemrograman sisi server pada umumnya yang bersifat blocking, Node.js bersifat non-blocking, sebagaimana halnya JavaScript bekerja. Node.js berjalan dengan basis event (event-driven). Maksud dari Blocking secara sederhana adalah, bahwa suatu kode program akan dijalankan hingga selesai, baru kemudian beralih ke kode program selanjutnya.
Misalkan kita memiliki program dengan algoritma berikut:
- Terima rekues untuk halaman blog
- Ambil data blog dari database
- Tulis html berisi data blog
- Kirim respon ke klien
Bila kita menggunakan bahasa pemrograman blocking yang bersifat multi-thread, pada poin kedua saat program mengambil data dari database selama jangka waktu tertentu pada satu thread, maka thread lain yang disiapkan untuk menjalankan poin ketiga (yakni menulis data dari database ke dalam bentuk HTML) tidak akan dijalankan hingga thread untuk poin kedua mengembalikan data. Ini sebenarnya bukan masalah karena CPU menjalankan proses dengan sangat cepat. Hanya saja, Node.js dengan single-threaded-nya melakukan dengan cara yang berbeda.
Node.js, alih-alih mengalokasikan thread untuk setiap poin, dia hanya akan membuat thread hanya apabila ada event yang membutuhkan hal tersebut. Contohnya untuk kasus di atas, ketika program mengambil data dari database, program hanya akan membuat thread atau dengan kata lain mulai memproses poin ketiga hanya apabila data dari database sudah diterima, menggunakan callback. Selain itu, bila ada proses lain yang tidak tergantung pada data tadi, maka proses tersebut akan dijalankan tanpa harus menunggu pengambilan data selesai.
Siapa Sih Pembuat Node.js Pertama Kali?
Node.js pertama kali diciptakan dan diperkenalkan oleh Ryan Dahl, pada tahun 2009 sehingga JavaScript bisa digunakan sebagai bahasa pemrograman di sisi server, sekelas dengan PHP, ASP, C#, Ruby dan lain sebagainya. Ryan Dahl adalah seorang pengembang dari Joyent yang merupakan sebuah perusahaan perangkat lunak dan infrasturktur Cloud. Ia memiliki ketertarikan dengan penerapan single-threaded pada bahasa pemrograman sisi server dan akhirnya memilih JavaScript sebagai bahasa untuk Node, setelah sebelumnya mencoba menggunakan Haskell, Lua dan C.
Kelebihan Memakai Node.js
1. Node.js menggunakan bahasa pemrograman JavaScript yang diklaim sebagai bahasa pemrograman yang paling populer dan banyak dikenal oleh masyarakat luas.
2. Node.js mampu menangani ribuan koneksi bersamaan dengan penggunaan resource minimum untuk setiap prosesnya
Node.js sangat diandalkan terutama untuk membuat aplikasi real-time
Node.js adalah project open source, sehingga siapapun dapat melihat struktur kode dan juga dapat berkontribusi untuk pengembangannya
Penggunaan JavaScript di sisi server dan juga client meminimalisir ketidakcocokan antar dua sisi lingkungan pemrograman, seperti terkait komunikasi data yang mana menggunakan struktur JSON yang sama di kedua sisi, validasi form yang sama yang dapat dijalankan di sisi server dan client, dan sebagainya.
Database NoSQL seperti MongoDB dan CouchDB mendukung langsung Javascript sehingga interfacing dengan database ini akan jauh lebih mudah.
Node.js memakai V8 yang selalu mengikuti perkembangan standar ECMAScript (nama standar resmi dari JavaScript, Namun JavaScript yang lebih dikenal dalam implementasinya), sehingga tidak perlu ada kekhawatiran bahwa browser tidak mendukung fitur-fitur di Node.js.
Kamu dapat mencari tau lebih dalam di situs web resmi Node.js.
Cara instal note.js
1. Buat folder project contoh "warung kopi".
2. Ketikan ini di terminal pada Text Editor anda npm install
3. Setelah itu jalanakan perintah ini pada terminal pada text editor "npm init".
4. Buat file index.js
5. Buat sedikit code js contoh " console.log("Welcome to warung kopi") dan klik save".
6. Jalankan perintah ini di terminal text editor " node index.js " dan lihat output hasil code di index.js tadi.
Selanjutnya kita bisa menggunakan RUN SCRIPT.
Caranya :
1. Buka file package.json
2. Ketikan perintah berikut :
"start":"node index.js"
setelah "scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
.
3. Ketikan perintah berikut i terminal text editor npm run start
dan tekan enter.
Perintah-perintah bawaan Javascript
Code | Fungsinya |
---|---|
npm install jquery |
Install package jquery pada project |
npm install moment --save |
Install package moment pada dependecies project |
npm install http-server --save-dev |
Install/Memasang package hhtp-server pada devDependencies project |
npm install http-server -g |
Install package http-server pada cakupan global |
const moment = require("moment"); |
Cara menggunakan package yang sudah kita install sebelumnya seperti "moment". |
npm run test |
Menjalankan scripts test |
npm run start |
Menjalankan scripts start pada local web server
"scripts": { |
npm uninstall <package-name> |
Menghapus package pada dependencies |
npm uninstall <package-name> --save-dev |
Menghapus package pada devDependencies Contoh : npm uninstall <http-server> --save-dev |
npm list -g |
Melihat package listing pada cakupan global |
npm list -g --depth=0 |
Melihat package listing pada cakupan global hanya pada layer paling atas saja |
<body>
|
Cara import lama |
Format Dates moment().format('MMMM Do YYYY, h:mm:ss a'); // April 27th 2021, 4:07:55 pm
|
|
Relative Time moment("20111031", "YYYYMMDD").fromNow(); // 9 years ago |
|
Calender Time moment().subtract(10, 'days').calendar(); // 04/17/2021 |
|
Multiple Locale Support moment.locale(); // en |
|
npm install webpack --save-dev npm install webpack-cli --save-dev atau dengan npm install webpack webpack-cli --save-dev |
Menginstal package webpack dan webpack-cli yang membnatu kita untuk menjalanakan sebuah perintah (Command Line Interface) |
npm install style-loader css-loader --save-dev |
untuk install package style loader |
npm install @babel/core babel-loader @babel/preset-env --save-dev |
Untuk menggunakan babel pada webpack sebagai loader. babeljs.io |
npm install html-webpack-plugin --save-dev |
Untuk menggunakan html-webpack-plugin.
|
npm install regenerator-runtime |
Memasang regenerator runtime |
npm install @babel/core @babel/preset-env babel-loader css-loader html-webpack-plugin style-loader webpack webpack-cli webpack-dev-server webpack-merge --save-dev |
@babel/core @babel/preset-env babel-loader css-loader html-webpack-plugin style-loader webpack webpack-cli webpack-dev-server webpack-merge |
Penerapan Webpack
Sebelum memulai instal dulu package berikut :
npm install regenerator-runtime
kemudia import pada entry point import "regenerator-runtime";
dan setelah itu install juga package http-server npm install -g http-server
dan jalankan ketikan perintah code berikut http-server ./dist
1. Buka project anda dan ketikan ini pada terminal
npm init
2. Install semua package yang diperlukan dengan mengetik code berikut pada terminal :
npm install @babel/core @babel/preset-env babel-loader css-loader html-webpack-plugin style-loader webpack webpack-cli webpack-dev-server webpack-merge --save-dev
3. Buat tiga file berikut : webpack.common.js , webpack.dev.js , dan webpack.prod.js
4. Tuliskan code konfigurasi berikut pada webpack.common.js :
const HtmlWebpackPlugin = require("html-webpack-plugin");
const path = require("path");
module.exports = {
entry: "./src/app.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "bundle.js"
},
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader"
}
]
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: "./src/index.html",
filename: "index.html"
})
]
}
5. Kemudian ketikan konfigurasi code berikut pada webpack.dev.js
const { merge } = require("webpack-merge");
const common = require("./webpack.common");
module.exports = merge(common, {
mode: "development"
})
6. Kemudian ketikan konfigurasi code berikut pada webpack.prod.js
const { merge } = require("webpack-merge");
const common = require("./webpack.common");
module.exports = merge(common, {
mode: "production",
module: {
rules: [
{
test: /\.js$/,
exclude: "/node_modules/",
use: [
{
loader: "babel-loader",
options: {
presets: ["@babel/preset-env"]
}
}
]
}
]
}
})
7. Karena pada konfigurasi kita menentukan endpoint pada lokasi src->app.js dan HTML template pada lokasi src->index.html maka pindahkan kedua berkas tersebut ke dalam folder src.
8. Selanjutnya hapus style ini <link rel="stylesheet" href="src/styles/style.css">
pada index.html dan juga script ini <script src="app.js" type="module"></script>
pada index.html
8. Selanjutnya kita perlu import kedua file tersebut pada app.js
import "./styles/style.css";
import "./script/component/app-bar.js";
import main from "./script/view/main.js";
document.addEventListener("DOMContentLoaded", main);
9. Dan yang terakhir kita perlu tambahkan script berikut pada package.json hasilny seperti berikut :
{
"name": "clubfinder",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start-dev": "webpack serve --config webpack.dev.js",
"build": "webpack --config webpack.prod.js"
},
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.12.3",
"@babel/preset-env": "^7.12.1",
"babel-loader": "^8.1.0",
"css-loader": "^5.0.0",
"html-webpack-plugin": "^4.5.0",
"style-loader": "^2.0.0",
"webpack": "^5.1.3",
"webpack-cli": "^4.0.0",
"webpack-dev-server": "^3.11.0",
"webpack-merge": "^5.2.0"
},
"dependencies": {
"regenerator-runtime": "^0.13.5"
}
}
Setelah itu anda bisa jalankan perintah berikut pada terminal di text editor anda npm run start-dev
dan bisa juga melakukan build untuk production melalui perintah npm run build
.
Dengan begitu akan terbentuk berkas bundle.js dan index.html yang siap untuk di-deploy.
Nanti kita lanjut lagi ya..
1 Comments
Thank you for nice information. Please visit our web:
ReplyDeleteClick Here
"https://uhamka.ac.id"
Hi...
:)
Thank You for your Comment.
I will reply as soon as possible.