# Node.js

{% embed url="<https://docs.google.com/presentation/d/1gicdeRW_mW1j93gsaRz7LDWYggWe7L3V/pub?start=false&loop=false&delayms=3000&slide=id.p1>" %}

Link materi: <https://docs.google.com/presentation/d/1gicdeRW_mW1j93gsaRz7LDWYggWe7L3V/pub?start=false&loop=false&delayms=3000&slide=id.p1>

## Pendahuluan

Javascript selama ini dipakai sebagai bahasa untuk pengembangan aplikasi web yang berjalan pada sisi client atau browser saja. Tetapi sejak ditemukannya Node.js oleh Ryan Dhal pada tahun 2009, Javascript bisa digunakan sebagai bahasa pemrograman di sisi server sekelas dengan PHP, ASP, C#, Ruby dll dengan kata lain Node.js menyediakan platform untuk membuat aplikasi Javascript dapat dijalankan di sisi server.

Untuk mengeksekusi Javascript sebagai bahasa server diperlukan engine. Engine Javascript yang dipakai Node.js bernama V8 dari Google. V8 merupakan engine yang sama yang dipakai pada browser Google Chrome.

Node.js menggunakan proses asinkron (Input Output atau I/O non-blocking) yang bersifat event-driven yang membuatnya ringan dan efisien.

## Website yang menggunakan Node.js

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZ1yskb2P8SHVyatV2%2F-MOZGA-pFpf6QztKpEkz%2Fimage.png?alt=media\&token=3c80ba87-9775-4675-b3a9-7664ff68ab06)

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZ1yskb2P8SHVyatV2%2F-MOZGEsUvnV3B7Pb8fz5%2Fimage.png?alt=media\&token=f73a7b0f-ddb8-4825-b1c0-e92523822857)

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZ1yskb2P8SHVyatV2%2F-MOZHAl_CB0QVGV8xy20%2Fimage.png?alt=media\&token=a9204499-29e3-42c3-8fed-64956b364e20)

Sumber : <https://youteam.io/blog/top-companies-that-used-node-js-in-production/>&#x20;

## Cara Instal Node.js

Untuk menginstal Node.js silahkan ikuti langkah-langkah berikut ini:

1. Download node js di website resminya [nodejs.org](https://nodejs.org/), pilih LTS
2. Kemudian instal node js seperti menginstal aplikasi pada umumnya.
3. Untuk melihat apakah node js terinstal di komputer Anda, silahkan buka terminal atau Command Line / Command Prompt, ketik perintah \
   node -v
4. Setelah itu cek juga npm (node package manager) dengan mengetikan perintah\
   npm -v
5. Instalasi node js selesai

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZRMHehqFM9pZFnQn0%2F-MOZRprjRxfsDwKr8Z-g%2Fimage.png?alt=media\&token=89bd7629-30e3-4f85-a7ff-d3be2e89dd64)

## Membuat program berbasis teks dengan Node.js

Silahkan buka teks editor dan tulis kode berikut:

```javascript
console.log("Hello World!");
```

Simpan dengan nama `hello-world.js`

Eksekusi dari command prompt atau terminal editor dengan perintah:

```
node hello-world.js
```

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZRMHehqFM9pZFnQn0%2F-MOZSPLXR7wS3lZsyDf7%2Fimage.png?alt=media\&token=edae71b7-ae51-4fac-bb96-dc6c93b153d4)

Javascript bisa berjalan di CLI.

## Membuat webserver dengan Node.js

Selanjutnya, kita coba membuat sebuah webserver dengan Nodejs.

```javascript
// impor library http
// library http berfungsi untuk menangani protokol http 
// seperti membuat dan menerima request
var http = require('http');

// membuat objek server
var server = http.createServer(function (req, res) {
    // response dari server 
    res.end("Hi, selamat datang di nodejs");
});

// menentukan PORT yang akan digunakan server
server.listen(8000);

console.log("server running on http://localhost:8000");
```

Simpan dengan nama file app.js, lalu eksekusi dengan perintah:

```javascript
node app.js
```

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZTASJpokMpDOAky33%2F-MOZWKlCMZO_S25uZ25_%2Fimage.png?alt=media\&token=f28e6056-ab01-41ab-bc00-3750f5535049)

Sekarang buka browser dan arahkan ke alamat <http://localhost:8000>, hasilnya sebagai berikut:

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZTASJpokMpDOAky33%2F-MOZWWB-9rB13k0L5Bdw%2Fimage.png?alt=media\&token=4c46a0c7-fcf6-4e87-a0a2-30b6fad5e1d6)

## Membuat webserver dengan respon HTML

&#x20;Webserver yang kita buat sebelumnya hanya memberikan respon dalam bentuk *plain* teks saja. Sekarang kita coba memberikan respon dalam bentuk HTML

Kita perlu memodifikasi bagian header

```javascript
// impor library http
// library http berfungsi untuk menangani protokol http 
// seperti membuat dan menerima request
var http = require('http');

// membuat objek server
var server = http.createServer(function (req, res) {
    // response dari server 
    
    // response header
    res.writeHead(200, {
        'Content-Type': 'text/html'
    });
    // response body (konten)
    res.write("Hi, <b>selamat datang di nodejs</b>");
    // akhir response
    res.end();
});

// menentukan PORT yang akan digunakan server
server.listen(8000);

console.log("server running on http://localhost:8000");
```

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZTASJpokMpDOAky33%2F-MOZYImgIa4pjA4YH9LF%2Fimage.png?alt=media\&token=431e8e51-8bf2-41eb-bf37-86bcca88b0ed)

## Mengenal NPM (Node Package Manager)&#x20;

Salah satu *tool* yang akan sering digunakan dalam Nodejs adalah NPM *(Node Package Manager)*. NPM sudah otomatis terinstal saat kita menginstal Nodejs.

NPM dapat kita gunakan untuk:

1. Membuat Project Baru
2. Menginstal modul atau library
3. Menjalankan skrip command line

### Membuat Project Baru dengan NPM <a href="#membuat-project-baru-dengan-npm" id="membuat-project-baru-dengan-npm"></a>

Pertama kita harus menyediakan direktori untuk project-nya. Silahkan buat direktori baru dengan perintah ini:

```javascript
mkdir belajar_npm
```

Lalu masuk ke direktori tersebut dan ketik perintah `npm init`.

```javascript
cd belajar_npm
npm init
```

Maka NPM akan meminta kita untuk mengisi data project yang akan dibuat.

![](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZYyKpASaNE2ViEDfW%2F-MOZazfkdG2WXT6IdixN%2Fimage.png?alt=media\&token=5aba6d51-332c-4e34-9b3f-6f6cb789ab16)

![File package.json](https://778745197-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MHJa7RRM_GMgqanJvvL%2F-MOZYyKpASaNE2ViEDfW%2F-MOZbJ3bBjdopXdBfNdt%2Fimage.png?alt=media\&token=61e77022-7822-42c8-bc65-db788df71ac0)

File `package.json` adalah file yang berisi deskripsi dari project Nodejs. NPM membutuhkan file ini untuk bisa bekerja.

\\

## Referensi

<https://nodejs.org/en/>

<https://app.gitbook.com/@junwatu/s/pengenalan-node-js/>

<https://www.petanikode.com/nodejs-pemula/>

<http://mfikri.com/artikel/tutorial-nodejs>
