create account

Node.js - Apakah itu? #1 by binjeeclick

View this thread on: hive.blogpeakd.comecency.com
· @binjeeclick · (edited)
$0.44
Node.js - Apakah itu? #1
<div><center><img src="https://nodejs.org/static/images/interactive/nodejs-interactive.png" /><br/><em>Credit: https://teknojurnal.com</em></center></div><p><hr>

Belakangan ini, sering kita dengar tentang node.js dan dia sangat populer di kalangan developer web serta spesialis IOT. Namun apa itu sebetulnya pengertian node.js dan kenapa dia digunakan dengan luas sebagai bahasa utama untuk pengembangan? Mari kita telusuri tentang node.js di artikel ini untuk memahaminya.

Berdasarkan situs nodejs.org, "node.js adalah sebuah platform yang dibuat di atas JavaScript Runtime-nya Chrome". Dengan kata lain, kodingan yang kamu tulis untuk server akan dieksekusi dengan cara yang mirip dengan ketika di browser.

Kamu dapat dengan mudah membawa teknik-teknik JavaScript yang telah kamu pelajari ke node.js. node.js itu cepat, event-driven, dan ringan namun manfaat paling besar dari menggunakan node.js adalah pemrograman asynchronous.

Mari kita pahami terlebih dahulu tentang perbedaan dari pemrograman asynchronous dengan synchronous dalam penjelasan yang sederhana yang akan memberikan kita pemahaman tentang bagaimana node.js bekerja di balik layar dan alasan dibalik popularitasnya.

## Synchronous

Kamu sedang mengantri untuk mengambil tiket film di bioskop. Kamu tidak akan bisa mendapatkan tiketnya sebelum semua orang di depanmu sudah mendapatkan tiket mereka dan ini berlaku juga untuk orang-orang di belakang kamu.

## Asynchronous

Kamu sedang di restoran dengan banyak orang. Kamu memesan makanan dan orang lain juga bisa memesan makanan. Mereka tidak perlu menunggu untuk makananmu selesai dimasak dan disajikan di depanmu sebelum mereka dapat memesan makanan.

Di dalam dapur restoran, orang-orang terus bekerja untuk memasak, menyajikan, dan mengambil pesanan. Orang-orang akan mendapatkan makanan mereka secepatnya setelah makanan mereka selesai dimasak.

```javascript
 //example 1
var result = database.query("SELECT * FROM sampletable");
console.log("finished");
console.log("start");
//example 2
database.query("SELECT * FROM sampletable", function(result) {
    console.log("finished");
});
console.log("start");
```


Keluaran dari kodingan di atas adalah:

> Example 1
finished
start

> Example 2
start
finished

Perbedaan di contoh pertama adalah program ketika mengeksekusi baris pertama akan memblok eksekusi berikutnya. Kodingan baris berikutnya (console.log) harus menunggu. Di contoh kedua, console.log akan dieksekusi ketika query-nya sedang diproses.

Query-nya akan diproses di belakangan layar ketika programmu melakukan berbagai macam hal. Dan ketika data query-nya sudah siap, kamu dapat melakukan apapun yang kamu inginkan dengannya. Jadi secara singkat: contoh pertama akan memblok, contoh kedua tidak.

## Instalasi

Pertama, kamu memerlukan sistem operasi Windows dengan versi minimal Windows Vista, lalu download MSI-nya dari http://nodejs.org/download/. Pastikan kamu memilih untuk menambahkan opsi path ketika menginstal node.js di perangkat Windows kamu.

### Membuat server node.js kamu sendiri

Mulai dengan membuat file baru dengan nama “server.js”. Masukkan kodingan di bawah ini ke dalam file dan lalu disimpan.

```javascript
var http = require("http");
var server = http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/html"});
  response.write("Hello World");                    
  response.end();
});
server.listen(8080);
console.log("Server is listening at port 8080");
```

Untuk memulai server, ketikkan perintah di bawah ini. Jika semua berjalan dengan lancar, kamu akan mendapatkan pesan bahwa server sedang mendengar.

```javascript
node server.js
```
<div><center><img src="https://image.prntscr.com/image/LQkP6KmpQUu-8RJkfeglwQ.png" /><br/><em>Credit: @binjeeclick</em></center></div><p><hr>

Langkah berikutnya adalah untuk mengkoneksikan server ke sebuah browser web. Jalankan browser pilihan kamu dan arahkan ke tautan di bawah ini. Dalam bahasa jaringan, localhost (dan alamat IP 127.0.01) menunjukkan perangkat yang sedang kamu gunakan. Broswer-mu akan menampilkan teks “Hello World”.

[http://localhost:8080](http://localhost:8080)
https://image.prntscr.com/image/IAD8tmWBQ-OaX_cE_u4-Wg.png
### Bagaimana server bekerja

Bagian `require()` di node.js menyajikan sistem modul sederhana. Program node.js dapat memuat modul-modul individual menggunakan metode` require()`. Walaupun banyak modul harus secara eksplisit diunduh, beberapa modul seperti http disebut sebagai modul inti dan sudah menjadi satu dengan node.js.

Server HTTP dibuat menggunakan metode `createServer()` dari modul `http. createServer()` menerima fungsi callback sebagai argumen. Fungsi callback ini akan dieksekusi setiap kali server menerima request baru.

Fungsi callback ini menerima dua argumen, request dan response. Objek request berisi informasi tentang permintaan dari client seperti URL, header HTTP, dan banyak lainnya. Objek response mirip dengan request namun digunakan untuk mengirimkan data kembali ke client.

Panggilan `listen()` membuat server mengaitkan diri ke sebuah port dan mendengar untuk koneksi yang akan datang. Di sini kita mendefinisikan port-nya ke 8080.

Altikel ini akan di lanjutkan ke part #2

<p></p><center><img src="https://steemitimages.com/DQmcCgPnKw7vdRkhGY1xygujvUj1uVWzC3795wzeXnMhTMN/nanggroe.png" alt="nanggroe.png"></center><p></p><h3><center>Upvote dan resteem <a href="/@binjeeclick">@binjeeclick</a> Bergabunglah bersama Komunitas Nanggroe Steemit Community di Discord dengan klik link ini <a href="https://discord.gg/7cgkwtS" rel="nofollow noopener">https://discord.gg/7cgkwtS</a></center></h3><hr>
👍  , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorbinjeeclick
permlinknode-js-apakah-itu-1
categoryindonesia
json_metadata{"tags":["indonesia","steemdev","nodejs","nsc"],"users":["binjeeclick"],"image":["https://nodejs.org/static/images/interactive/nodejs-interactive.png","https://image.prntscr.com/image/LQkP6KmpQUu-8RJkfeglwQ.png","https://image.prntscr.com/image/IAD8tmWBQ-OaX_cE_u4-Wg.png","https://steemitimages.com/DQmcCgPnKw7vdRkhGY1xygujvUj1uVWzC3795wzeXnMhTMN/nanggroe.png"],"links":["https://teknojurnal.com","http://nodejs.org/download/","http://localhost:8080","/@binjeeclick","https://discord.gg/7cgkwtS"],"app":"steemit/0.1","format":"markdown"}
created2017-09-21 08:14:24
last_update2017-09-21 08:17:24
depth0
children5
last_payout2017-09-28 08:14:24
cashout_time1969-12-31 23:59:59
total_payout_value0.353 HBD
curator_payout_value0.090 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,629
author_reputation2,553,417,069,149
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd0
post_id15,500,314
net_rshares167,926,209,690
author_curate_reward""
vote details (25)
@cheetah ·
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://teknojurnal.com/pengertian-apa-itu-node-js/
properties (22)
authorcheetah
permlinkcheetah-re-binjeeclicknode-js-apakah-itu-1
categoryindonesia
json_metadata""
created2017-09-21 08:14:45
last_update2017-09-21 08:14:45
depth1
children0
last_payout2017-09-28 08:14:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length150
author_reputation942,693,160,055,713
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id15,500,328
net_rshares0
@minnowpond ·
This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond
properties (22)
authorminnowpond
permlinkre-node-js-apakah-itu-1-20170921t082833
categoryindonesia
json_metadata"{"app": "pysteem/0.5.4"}"
created2017-09-21 08:28:33
last_update2017-09-21 08:28:33
depth1
children0
last_payout2017-09-28 08:28:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length143
author_reputation13,239,048,956,578
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id15,501,280
net_rshares0
@minnowpond1 ·
This post recieved an upvote from minnowpond. If you would like to recieve upvotes from minnowpond on all your posts, simply FOLLOW @minnowpond
properties (22)
authorminnowpond1
permlinkre-node-js-apakah-itu-1-20170921t082540
categoryindonesia
json_metadata"{"app": "pysteem/0.5.4"}"
created2017-09-21 08:25:39
last_update2017-09-21 08:25:39
depth1
children0
last_payout2017-09-28 08:25:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length143
author_reputation383,828,786,455
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id15,501,131
net_rshares0
@puncakbukit ·
 Keren tulisannya.. telah kami upvote ya.. 
properties (22)
authorpuncakbukit
permlinkre-node-js-apakah-itu-1-20170921t081543
categoryindonesia
json_metadata"{"app": "pysteem/0.5.6"}"
created2017-09-21 08:15:51
last_update2017-09-21 08:15:51
depth1
children0
last_payout2017-09-28 08:15:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length43
author_reputation59,018,532,294,625
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id15,500,411
net_rshares0
@puncakbukit ·
Halo @binjeeclick! Kami telah upvote yaa.. :-,
properties (22)
authorpuncakbukit
permlinkre-node-js-apakah-itu-1-20170921t081854
categoryindonesia
json_metadata"{"app": "pysteem/0.5.6"}"
created2017-09-21 08:19:03
last_update2017-09-21 08:19:03
depth1
children0
last_payout2017-09-28 08:19:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length46
author_reputation59,018,532,294,625
root_title"Node.js - Apakah itu? #1"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id15,500,647
net_rshares0