0% menganggap dokumen ini bermanfaat (0 suara)
2K tayangan73 halaman

Node - Js Indonesia

Buku ini memberikan panduan dasar tentang Node.js untuk pemula dengan menggunakan bahasa Indonesia sehari-hari. Buku ini gratis dan dapat disebarluaskan tanpa menghapus nama penulis. Penulis buku bernama Bona Tua yang berprofesi sebagai web developer di Medan.

Diunggah oleh

bona tua
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
2K tayangan73 halaman

Node - Js Indonesia

Buku ini memberikan panduan dasar tentang Node.js untuk pemula dengan menggunakan bahasa Indonesia sehari-hari. Buku ini gratis dan dapat disebarluaskan tanpa menghapus nama penulis. Penulis buku bernama Bona Tua yang berprofesi sebagai web developer di Medan.

Diunggah oleh

bona tua
Hak Cipta
© Attribution Non-Commercial (BY-NC)
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 73

1

Node.js HandBook
Untuk Pemula
Oleh

Bona Tua
Manusia di Bumi dan Founder BonzDev

Tentang Buku
Buku Ini untuk mereka yang ingin membaca buku,masa sih.Untuk mereka yang mulai belajar
Node.js.Bahasa yang digunakan adalah bahasa Indonesia sehari-hari.Karena dari pengalaman
,kebanyakan orang malas belajar karena buku atau tutorial bukan berbahasa indonesia.

Gratis

Kata ini yang paling orang Indonesia suka ,gratis.Buku ini memang gratis bebas
disebarkan,dicopy,dicetak atau diapaian aja.Yang penting tidak menghapus dan mengubah nama
author.

Kenapa Gratis?

BonzDev adalah kumpulan orang-orang yang menyadari kalau ilmu mereka tidak dibagi dengan orang
lain,walaupun ilmunya hanya sedikit,ilmu tersebut bisa dilupakan .Namanya juga manusia,sarangnya
lupa.Untuk itu selagi masih ingat langsung dibagikan siapa tau lebih berguna bagi orang lain.

Tentang Penulis
Bona Tua pada saat menulis buku ini masih berstatus mahasiswa Semester 6 dan bekerja sebagai Asisten
Praktek di STMIK MIKROSKIL Medan.Sudah memiliki pengalaman 4,3 tahun sebagai web developer.Bona
merupakan web designer dan developer di Medan.Dia tidak ada spesialisasinya selama masih menjurus
ke web dihajar.

Kalau mau hubungi bona via email di [email protected] .

Bab 1 Pengenalan dan Instalasi


Apa itu Node.js?
Untuk yang belum tau Node.js adalah server-side platform yang dibangun dengan Google Chrome
Javascript Engine(V8 Engine). Node.js pertama kali dikembangkan oleh Ryan Dahl tahun 2009 untuk
versi terakhir bisa dicek langsung di websitenya resminya https://nodejs.org/.

Node.js itu open source artinya bebas mau diapaian aja,bisa digunakan di berbagai platform(cross-
platform) seperti Windows,Ubuntu atau Mac.Node.js ditulis dengan Javascript ,ya iyalah dibelakangnya
juga ada tulisan js.

Node.js menyediakan beragam library javascript jadi kita lebih mudah untuk mengembangkan aplikasi.

Pada buku ini OS yang digunakan adalah Windows.

Kenapa memilih Node.js


• Asynchronous dan Event-Driven artinya semua API di Node.js tidak harus menunggu satu
proses selesai dulu baru melakukan proses lainnya.Jadi bisa langsung dikerjakan sekaligus
simplenya Node.js tidak pernah menunggu API mengembalikan data.
• Very Fast katanya gitu karena dibangun menggunakan Google Chrome V8 Javascript Engine.
• Single Threaded but Highly Scalable Nodejs menggunakan single threaded model dengan event
looping.Event ini membantu server untuk merespon banyak request yang dikirim dan dapat
menghandle lebih banyak request daripada tradisional server seperti Apache.

Coba kita bandingan.Penanganan file request di PHP atau ASP:

1. Mengirim tugas ke file system computer


2. Menunggu file system membuka dan membaca file.
3. Mengembalikan Isi Konten ke Klien
4. Siap untuk menghandle request selanjutnya.

Kalo di Node.js untuk menghandle file request:

1. Mengirim tugas ke file system computer


2. Siap untuk menghandle request selanjutnya
3. Ketika file system membuka dan membaca file ,server mengembalikan konten ke klien

Itulah kelebihan utama Node.js tidak perlu menunggu untuk melanjutkan request selanjutnya,Node.js
juga lebih sedikit memakan memori.

Menginstal Node.js
5

Node js dapat berjalan di Windows,Linux ataupun Mac,baik itu 32-bit maupun 64-bit.Untuk menginstal
Node.js di Windows menggunakan setup file yang bisa diambil dari website resminya
https://nodejs.org/en/download/ .Download file .MSI sesuai dengan versi windows kita.Jalankan dan
akan terbuka kotak dialog instalasi seperti berikut:

Ikuti langkah instalasinya jika sudah selesai,maka aka nada node.js icon di windows menu.Jika kita
mengklik akan terbuka console dari Node.js.

Atau bisa juga menjalankan dengan menggunakan command prompt(cmd) lalu ketik node dan enter

Untuk instalasi ubuntu dan mac bisa dilihat langsung di website Node.js

Tool Development
Sebenarnya kita bisa menggunakan text editor apa saja untuk menulis code Node.js.Untuk lebih mudah
sih dianjurkan menggunakan IDE yang dilengkapi dengan banyak fitur seperti JetBrains,Visual Studio
Code,WebStrom.Disini saya menggunakan Visual Studio Code karena hadir dengan fitur-fitur bawaan
yang cukup lengkap.

Bab 2 Aplikasi Pertama


Sebelum membuat aplikasi Node.js ,ada tiga komponen penting yang harus kamu tau terlebih dahulu :

1. Import Modul yang dibutuhkan : Kita menggunakan require direktif untuk memasukkan Node.js
Modul ke dalam aplikasi.
2. Create Server : Server yang akan dijalankan oleh request dari klien seperti di dalam Apache HTTP Server.
3. Request dan Return Response : Server yang kita buat akan membaca request dari HTTP yang dibuat
oleh klien dimana browser atau console akan mengembalikan response.

Membuat Aplikasi Node.js


Langkah Pertama : Import Module yang dibutuhkan
Untuk kali ini kita menggunakan require untuk mengambil module http dimana module ini merupakan
module bawaan Node.js.

var http = require('http');

Code di atas akan menyimpan module http ke dalam variable http itu sendiri.
Langkah Kedua : Membuat Server
Kita menggunakan perintah http.createServer() untuk membuat sebuah server ,kemudian membuat
listen port ,kali ini kita membuat list port 8000.Buat function dengan parameter request dan response
untuk menangani request dan response dari klien.
Langsung saja lihat contoh code dibawah ini :

L http.createServer(function(request,response){
// Send the HTTP header
// HTTP Status: 200 : OK
// Content Type: text/plain

response.writeHead(200, {'Content-Type': 'text/plain'});
// Mengirim response ke body sebagai "Hello World"
response.end('Hello World\n');

}).listen(8000);
// Console akan mencetak pesan
console.log('Server running at http://127.0.0.1:8000/');


Code diatas akan membuat HTTP server dimana akan menunggu request di port 8000.

Langkah 3 : Mencoba Request & Response


Kita akan mengabungkan Langkah 1 dan 2 kemudian membuat file baru bernama main.js.

var http = require('http');

http.createServer(function(request,response){
// Send the HTTP header 8
// HTTP Status: 200 : OK
// Content Type: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});


Sekarang kita akan menjalankan main.js yang sudah kita buat.Pastikan anda di folder dimana main.js
berada.Untuk yang belum tau tekan tombol Shift lalu klik kanan pada folder akan muncul pilihan Open
Command window here pilih itu maka Command Prompt akan terbuka dengan lokasi di folder
tersebut.Kemudian ketikkan perintah

node main.js
Akan keluar output .Server telah dijalankan


Buat Request untuk Node.js Server
Untuk membuat request kita akan membuka alamat server dari browser untuk melihat response yang
diberikan.Ketikkan alamat http://127.0.0.1:8000 atau sama saja dengan http://localhost:8000 di
browser.Dan akan keluar hasil seperti gambar dibawah ini :

BIsa dilihat sendiri server mengembalikan response “Hello World” itu artinya kita berhasil membuat
aplikasi Node.js pertama.Hore………..

Bab 3.REPL Terminal


9

REPL merupakan singkatan dari Read Eval Print Loop ini mempresentasikan bagian komputer seperti
window command prompt atau console di linux/unix dimana setiap diberikan perintah(command)
,sistem akan langsung merespond dengan memberikan output secara interaktif.

Node.js hadir dengan menyertakan REPL sendiri.Berikut penjelasan singkat mengenai REPL :

• Read – Membaca user input ,masa sih.Mengkonversi input ke dalam javascript data struktur dan
menyimpan di memori.
• Eval – Mengambil dan mengevaluasi data struktur apakah sesua dengan format javascript.
• Print – Mencetak hasilnya.
• Loop – Loop di sini mengarah terus menjalankan perintah yang kita ketikkan dan dianggap
berhenti jika menekan Ctrl-C dua kali.

NB:Menekan Ctrl-C dua kali berguna untuk keluar dari REPL Node.js

Fitur REPL di Node sangat berguna untuk melakukan experiment dengan Node.js dan untuk melakukan
debug kode-kode Javascript.

Menjalankan REPL
Untuk menjalankan REPL Node.js sangat sederhana tinggal buka command prompt lalu ketikkan node
lalu Enter ,akan terlihat tampilan seperti gambar di bawah ini.

Hello World
Entah kenapa selalu gitu setiap belajar bahasa pemrograman baru harus nulis “hello world”.Sekarang
kita akan membuatnya di Node.js REPL.Karena Node.js adalah Javascript jadi perintah sama.

Ketikkan code dibawah pada REPL Node.js.Kemudian tekan enter.

console.log('Hello World from Node js')


Akan keluar output seperti dibawah ini

10

NB:console.log() adalah perintah untuk mencetak di console

Expresi sederhana
Pada REPL kita juga bisa menggunakan Expresi sederhana seperti gambar dibawah ini.

Menggunakan Variabel
Di REPL kita juga bisa menggunakan variable untuk menyimpan data.Jika keyword var tidak
digunakan,nilai akan disimpan di variable dan langsung dicetak.Tetapi jika var digunakan nilai akan
disimpan tetapi tidak langsung dicetak.Kita bisa mencetak variable dengan menggunakan perintah
console.log().

Ekspresi Multiline
REPL pada Node.js juga mendukung ekspresi multiline pada Javascript.Kita akan menggunakan struktur
perulangan while sebagai contoh kasus.

11

Ketika kita membuka tanda “{“ kemudian menekan enter.Node otomatis mengcheck apakah akan ada
ekspresi selanjutnya.

Variable Underscore
Kita bisa menggunakan underscore ( _ ) untuk mendapatkan hasil terakhir.Untuk contoh penggunaan
bisa lihat gambar dibawah ini.

Perintah-Perintah REPL
• Ctrl + C => Menghentikan Perintah yang sedang berlangsung.
• Ctrl + C 2x => Menghentikan REPL Node.js.
• Ctrl + D => Menghentikan REPL Node.js
• Tombol Up/Down => Melihat history dan perintah sebelumnya.
• Tombol Tab => Daftar perintah terakhir.
• .help => Daftar semua perintah.
• .break => keluar dari ekspresi multiline.
• .clear => sama kayak .break.
• .save namafile => Menyimpan perintah terakhir ke dalam file.
• .load namafile => Membuka file yang mengandung perintah Node REPL.

12

Bab 5 Dasar Javascript


Karena Node.js membutuhkan pengetahuan awal mengenai javascript,kita akan membahasnya sedikit
pada bab ini.Paling tidak untuk teman-teman yang sama sekali belum pernah mencoba javascript
sebelumnya.

Deklarasi Variabel
Untuk deklarasi variabel pada Javascript kita menggunakan var diikuti dengan nama_variabel lihat
contoh code dibawah:

var nama_variabel;

Contoh penggunaan untuk beberapa variabel.

var namaDepan;
var namaBelakang;
var umur;

Kita bisa memasukkan nilai kedalam variable tersebut.

namaDepan = "King";
namaBelakang = "Kong";

umur = 86;

Kita juga bisa mendeklarasikan dan langsung mengisi nilainya :


var namaDepan = "King";
var namaBelakang = "Kong";

var umur = 86;

Di javascript kita tidak perlu mendeklarasikan tipe data.Sifat dari variable di javascript adalah tipe data

global.Jadi kalau data yang kita input string ,tipe datanya otomatis menjadi string begitu juga kalau yang
lainnya.
Secara umum kita bisa mendeklarasikan nama_variabel dengan nama apapun,tetapi tidak boleh
menggunakan Javasript keyword.Berikut list dari keyword yang tidak boleh digunakan:

• abstract • else • instanceof • super


• boolean • enum • int • switch
• break • export • interface • synchronized
• byte • extends • let • this

13

• case • false • long • throw


• catch • final • native • throws
• char • finally • new • transient
• class • float • null • true
• const • for • package • try
• continue • function • private • typeof
• debugger • goto • protected • var
• default • if • public • void
• delete • implements • return • volatile
• do • import • short • while
• double • in • static • with

Selain itu ada juga beberapa yang lebih baik kita hindari seperti object,method atau property
dari keyword diatas :

• alert • frames • outerHeight


• all • frameRate • outerWidth
• anchor • function • packages
• anchors • getClass • pageXOffset
• area • hasOwnProperty • pageYOffset
• Array • hidden • parent
• assign • history • parseFloat
• blur • image • parseInt
• button • images • password
• checkbox • Infinity • pkcs11
• clearInterval • isFinite • plugin
• clearTimeout • isNaN • prompt
• clientInformation • isPrototypeOf • propertyIsEnum
• close • java • prototype
• closed • JavaArray • radio
• confirm • JavaClass • reset
• constructor • JavaObject • screenX
• crypto • JavaPackage • screenY
• Date • innerHeight • scroll
• decodeURI • innerWidth • secure
• decodeURIComponent • layer • select
• defaultStatus • layers • self
• document • length • setInterval
• element • link • setTimeout

14

• elements • location • status


• embed • Math • String
• embeds • mimeTypes • submit
• encodeURI • name • taint
• encodeURIComponent • NaN • text
• escape • navigate • textarea
• eval • navigator • top
• event • Number • toString
• fileUpload • Object • undefined
• focus • offscreenBuffering • unescape
• form • open • untaint
• forms • opener • valueOf
• frame • option • window

Nama-nama event dijavascript juga harus kita hindari,karena kalau kita menggunakan takutnya
akan terjadi konflik kepentingan.

• onbeforeunload • ondragdrop • onkeyup • onmouseover


• onblur • onerror • onload • onmouseup
• ondragdrop • onfocus • onmousedown • onreset
• onclick • onkeydown • onmousemove • onsubmit
• oncontextmenu • onkeypress • onmouseout • onunload

Komentar
DI Javascript kita bisa menulis komentas dengan dua cara yaitu dengan // dan /* */.Perbedaannya //
digunakan untuk komentar satu baris,jika lebih dari satu baris gunakan /* */.Nah ini contohnya:


//nama

var nama;

/* nama

namaDepan
namaBelakang
*/
var namaDepan,namaBelakang;
Operasi Aritmatika

15

Javascript mendukung empat operator dasar aritmatika seperti: penjumlahan,pengurangan,perkalian


dan pembagian:

Node.js Code Keterangan


+ Penjumlahan

- Pengurangan
* Perkalian

/ Pembagian

Berikut ini contoh code untuk menjelaskan penggunaan aritmatika dasar di Javascript

var a,b;
a=6;
b=9;

//Penjumlahan
var c = a + b;

console.log(c);

//Pengurangan

var c = a - b;
console.log(c);


//Perkalian
var c = a * b;

console.log(c);


//Pembagian
var c = a / b;
console.log(c);

Simpan code dengan nama dasararitmatika.js lalu jalankan.Lihat hasil yang didapatkan

16

Fungsi Matematika
Javascript hadir dengan library math yang merupakan library built-in(bawaan).Ini beberapa list fungsi
matematika tersebut

• Math.abs(x),menghasilkan nilai absolute dari nilai x


• Math.acos(x), arc cosinus dari nilai x
• Math.sin(x), arc sinus dari nilai x
• Math.atan(x),arc tangent dari nilai x
• Math.atan2(x,y),arc tangent dari nilai x/y
• Math.ceil(x),pembulatan keatas nilai x
• Math.cos(x),cosines dari nilai x
• Math.exp(x),nilai exponensial dari x (Dimana akan mendapat hasil sama jika menggunakan
fungsi Math.E dipangkatkan dengan nilai x)
• Math.floor(x),pembulatan kebawah dari nilai x
• Math.log(x),log dari x base e
• Math.max(x,y) ,mencari nilai maximum antara x dan y
• Math.min(x,y) mencari nilai minimum antara x dan y
• Math.pow(x,y),mencari pangkat dimana x adalah nilai dan y adalah pangkat
• Math.random(),akan menghasilkan nilai random antara 0 sampai 1
• Math.round(x),pembulatan biasa
• Math.sin(x),sin dari nilai x
• Math.sqrt(x),akar dari nilai x
• Math.tan(x),tangent dari nilai x

Untuk mengerti ini saya berikan beberapa contoh:

var x,y;
x=5;
y=4.5;

console.log(Math.max(x,y));
console.log(Math.sqrt(x+y));
console.log(Math.exp(x));

//kita bandingkan dengan code ini

17


console.log(Math.pow(Math.E,x));
console.log(Math.random());

Simpan dengan nama mathlib.js.

Code diatas akan menghasilkan output seperti dibawah ini.

Operator Perbandingan
Kamu mungkin ingin mengcheck kesamaan dari nilai dua variable yang berbeda.Sebagai contoh,kamu
punya dua nilai berbeda 6 dan 9,dan kamu ingin membandingkannya.Javascript mengadopsi
perbandingan operator dari bahasa C.Berikut daftar dari operator perbandingan di Javascript.

Operator perbandingan Keterangan


== Sama dengan

!= Tidak sama dengan

> Lebih besar dari


< Lebih kecil dari

>= Lebih besar atau sama dengan


<= Lebih kecil atau sama dengan

Langsung aja kita coba :
var x,y;
x=8;
y=6;

console.log(x == y);
console.log(x != y);
console.log(x > y);

console.log(x < y);
console.log(x >= y);

console.log(x <= y);

18


Simpan dengan nama perbandingan.js .Kita bisa lihat hasilnya dibawah:

Operator Logika
Javascript juga mendukung operator logika.Operator Logika biasanya digunakan untuk menentukan
logika dari antara variable maupun nilai.Berikut table daftar operator logika di Javascript.

Operator logika Keterangan


&& Dan
|| Atau
! Tidak

Berikut sample codenya:

var x,y;
x=8;
y=6;

console.log(x < y && x !=y);


console.log(!(x != y));
console.log(x == y || x < y);

Simpan dengan nama logika.js kemudian jalankan.Kita akan mendapati output seperti dibawah.

Penambahan dan Pengurangan


Kali ini kita akan membayangkan jika kita punya sebuah nilai dan kita ingin menambahkan nilai sebesar
1.Mungkin sebagian besar dari kamu akan membuat code seperti dibawah ini:

var x=7;
19
x = x + 1;


Kita punya solusi lain dengan menggunakan ‘++’.

var x=7;
x++;

Begitu juga dengan pengurangan kita bisa menggunakan ‘--‘.

var x=9;

x--;


Kondisi/Keputusan
Komputer sebenarnya bodoh dia akan mengikuti apapun yang kita perintah dan dia tidak akan bertanya
tentang apa yang kita perintahkan.Aneh juga kalau dia bisa balas.Kita akan menggunakan struktur
kondisi untuk membuat computer lebih baik dalam memutuskan suatu tindakan,contohnya “Jika X
bernilai benar,maka lakukan Y”,tapi kita buatnya pake bahasa inggris gk ngerti Javascript bahasa
Indonesia.

Di Javascript disediakan dua cara untuk struktur kondisi :

• If…then
• Switch…case

If…then

If sendiri bisa digunakan dengan beberapa cara:

• If aja
• If….else
• If…else if…else
• Ternary

Syntax dasar dari if aja:

if(kondisi){
apa_yang_dilakukan;
}

Kalau if aja diakan mengcheck jika kondisi benar maka dijalankan kalau salah tidak akan terjadi apa-apa.

Langsung codenya:

var x=5;
if(x<5){
console.log("Lebih kecil dari 20
lima");
}


Simpan dengan nama ifaja.js.Lalu jalankan dan lihat hasilnya.

Bisa kita lihat dia tidak menghasilkan apa-apa ,ini karena kondisi kita mengcheck apakah x lebih kecil dari
5 dan hasilnya false.

Syntax dasar dari if….else di Node.js:

if(kondisi){
apa_yang_dilakukan;
}else{
apa_yang_dilakukan;
}

Langsung codenya:

var x=5;
if(x<5){
console.log("Lebih kecil dari lima");
}else{
console.log("x sama dengan atau lebih besar dari 5")
}


Simpan dengan nama ifelse.js.Lalu jalankan dan lihat hasilnya.

Cara kerja if else adalah kondisi akan dicheck pertama kali pada if dan karena x tidak lebih kecil dari lima
maka akan langsung masuk ke else ,Else sendiri tidak akan mencheck lagi diakan langsung menjalankan
setiap baris perintah yang ada didalamnya.

Syntax dasar dari if….else if … else di Node.js:

if(kondisi){
apa_yang_dilakukan;
}else if(kondisi){
apa_yang_dilakukan; 21
}else{
apa_yang_dilakukan;
}

Langsung codenya:

var x=5;
if(x<5){
console.log("Lebih kecil dari lima");
}else if(x==5){
console.log("x sama dengan 5");
}

else{
console.log("x lebih besar dari 5")
}

Simpan dengan nama ifelseifelse.js.Lalu jalankan dan lihat hasilnya.



Bisa kita lihat bahwa if…else if…else akan mencheck kondisi awal di if jika mengembalikan nilai false
maka akan dijalankan else if dibawahnya,dan karena di code kita else if kondisi sudah bernilai true
maka else tidak akan dijalankan .

Ternary

Sebagai alternative ada namanya ternary ,di ternary kita akan melakukan kondisi dalam satu baris code
saja.Contohnya :

var x=8,y=6;
console.log(x > y ? "iya" : "tidak");


Simpan dengan nama ternary.js.Jalankan kemudian lihat hasilnya.

22

Akan mencetak “iya” karena kondisi bernilai true.

Switch…Case

Kita juga bisa menggunakan switch untuk mengcheck kondisi di Node.js.Berikut ini syntax dasar dari
switch…case.

switch(opsi){
case opsi1:
apa_yang_dilakukan;
break;

case opsi2:
apa_yang_dilakukan;
break;
}

Nilai dari opsi bisa berupa string atau numeric.Untuk contoh tulis code dibawah:

var nama = "budi";


switch(nama){

case "budi":
console.log("Ini budi");
break;
case "andi":
console.log("Ini bukan budi");
break;
}


Simpan dengan nama switch.js lalu jalankan untuk melihat hasilnya.

Perulangan
Salah satu konsep paling powerfull dari setiap bahasa pemrogarman adalah perulangan.Perulangan
membuat aplikasi lebih hidup.Kita akan membahas perulangan.Di Javascript sendiri terhadap dua
struktur perulangan antara lain for dan while.

23

For

Bentuk dasar syntax perulangan for.


for(inisialisasi; kondisi ;penambahan/pengurangan){
//syntax
}

Contoh penulisan perulangan for pada Node.js


for(var x=0;x<10;x++){
console.log(x);
}

Pada perulangan di atas kita melakukan inisialisasi x bernilai 0.Perulangan akan berjalan selama kondisi
belum terpenuhi.Hasil lihat digambar dibawah ini.

While

Selain perulangan for ada juga perulangan while.


while(kondisi){
//lakukan sesuatu
}

Kita memakai while jika kita tidak tahu perulangan itu akan terjadi berapa kali.


var x=10;
while(x>0){
console.log(x);
x = parseInt(x) / 2;
} 24

Perulangan while diatas memperlihatkan perulangan akan terus berjalan selama x masih lebih besar dari
0.Jadi tidak seperti perulangan for kita harus tau berapa kali kita melakukan perulangan.

NB:parseInt() berguna untuk mengkonversi bilangan ke format int.

25

Bab 6 Array
Sama seperti halnya bahasa pemrograman lain.Di Javascript juga terdapat objek Array.Kita akan
membahasnya di bab ini.

Membuat Objek Array


Ada tiga cara untuk membuat objek Array di Javascript seperti pada code dibawah ini.

//Cara pertama sama seperti membuat variabel biasa


var arr=[];

//Cara kedua dengan mengunakan keyword new untuk membentuk objek array
var arr=new Array();
//Cara ketiga membuat variabel array dan langsung mengisi datanya

var arr=[1,2,3];

Memasukkan Data
Setelah membuat objek Array,kita bisa memasukkan data kedalamnya.Gunakan “[]” lalu isikan nilai
index ,jika ingin memasukkan nilai.Index array dalam Node.js dimulai dari [0].

arr[0]=1;
arr[1]=2;

arr[2]=3;

Kita juga bisa mengunakan bisa menggunakan push() untuk memasukkan data.

arr.push(4);
arr.push(5);
arr.push(6);

Mengakses Data

Untuk mengakses data di dalam array objek,kita bisa menggunakan “[]” dengan index sebagai
parameter.


//menampilkan data
console.log(arr);
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}

26

Akan menghasilkan:


NB:kita menggunakan nama_array.length untuk mengecheck panjang array.

Update Data
Untuk mengupdate data di dalam array sama seperti memasukkan data,kita menggunakan “[]” dengan
index sebagai parameter lalu masukkan nilai baru.

//edit

arr[1]=0;
arr[0]=2;

console.log(arr);

Bisa kita lihat sendiri, iyalah masa berdua.Kalau data di index ke 1 dan 0 sudah berubah menjadi 0 dan 2.

Menghapus Data
Untuk menghapus data dari array,ada dua fungsi yang bisa kita gunakan.Pertama pop() digunakan untuk
menghapus dari data array index terakhir.Satu lagi splice() jika ingin mengapus data array dengan
spesifik index.

Berikut sample code untuk menghapus data array:

27


console.log(arr)
//menghapus data

arr.pop();
console.log(arr);

//menghapus data dengan index
var index=0;

arr.splice(index,1);//parameter pertama adalah index awal


, parameter kedua banyak data yang ingin dihapus

console.log(arr);

28

Bab 7 JSON
JSON(Javascript Object Notation) menurut website resminya merupakan sebuah format pertukaran
data yang ringan ,mudah dibaca dan ditulis oleh manusia,serta mudah diterjemahkan dan dibuat oleh
komputer.Node.js menggunakan JSON objek untuk komunikasi data.Untuk informasi lebih lanjut
mengenai apa itu JSON,bisa mengunjungi official websitenya http://www.json.org/

Membuat objek JSON


Sebuah JSON objek di Javascript kita deklarasikan dengan menggunakan “{ }” .Sebagai contoh,kita
mempunyai sebuah objek JSON bernama kostumer.Dan objek ini memiliki attribut nama,email,umur
dan tglDaftar.Berikut contoh penggunaannya:


var kostumer = {
nama : 'John Doe',


email : '[email protected]',
umur : 99,

tglDaftar : new Date()
}

Kita bisa melihat bahwa objek JSON sendiri terdiri antara pasangan attribut dan nilai.Kita juga bisa
mendeklarasikan JSON objek bersarang,seperti terlihat dibawah ini.

var kostumer = {

nama : 'John Doe',


email : '[email protected]',

umur : 99,
tglDaftar : new Date(),
alamat : {
negara : 'Indonesia',

provinsi : 'Sumut'
}
}

Menampilkan Data
Setelah membuat objek JSON,kita bisa mencetak objek tersebut menggunakan perintah console.log().

console.log(kostumer);

Perintah tersebut akan mencetak native objek JSON di console.

29

Mengakses Data
Jika kita langsung menggunakan console.log() kita akan menampilkan seluruh attribut dari JSON.Jika kita
ingin menampilkan attribut yang lebih spesifik ,kita bisa memanggil langsung nama attribut tersebut.

Sebagai contoh kita ingin menampilkan attribut nama,email ,umur dan tglDaftar.


console.log('Nama : ' + kostumer.nama);

console.log('Email : ' + kostumer.email);
console.log('Umur : ' + kostumer.umur);
console.log('Tanggal Daftar : ' + kostumer.tglDaftar);

Jika kita mengakses attribut yang tidak terdapat di objek JSON yang kita deklarasikan akan menghasilkan
nilai undefined.

console.log('Nama : ' + kostumer.nama);

console.log('Email : ' + kostumer.email);


console.log('Umur : ' + kostumer.umur);

console.log('Tanggal Daftar : ' + kostumer.tglDaftar);

console.log('Negara : ' + kostumer.negara);

30

Kita juga bisa mengakses data dengan menggunakan cara seperti dibawah ini:


console.log('Nama : ' + kostumer['nama']);

Dimana sama seperti mengakses objek array tetapi index diganti dengan nama attribut.

Kamu mungkin bertanya-tanya dalam sanubari apakah bisa kita menggunakan perulangan untuk
menampilkan attribut dalam objek JSON.Bisa kalau di bahasa pemrograman lain biasanya menggunakan
foreach.Tetapi karena di Javascript tidak ada, kita menggukan perintah for biasa.

var user = {
id : 1,

nama : 'John jon',
email : '[email protected]'
};


for(var att in user){
console.log(att);
}

Akan keluar output seperti ini .

Kalau dibahasa Indonesia seperti inilah kira-kira,masukkan setiap attribut di user ke dalam variable
att.Untuk sekedar catatan nama variable tidak harus att.Bisa saja btt atau ctt terserah yang buat.

Mengecek Attribut

31

Ada juga fungsi yang digunakan untuk mengecek apakah didalam suatu objek JSON,terhadap suatu
nama attribute .Fungsinya bernama hasOwnProperty() ,fungsi ini mengembalikan nilai true atau false.


var user = {
id : 1,
nama : 'John jon',
email : '[email protected]'

};

//check attribut

console.log(user.hasOwnProperty('id'));
console.log(user.hasOwnProperty('nama'));
console.log(user.hasOwnProperty('email'));

console.log(user.hasOwnProperty('alamat'));

Pada baris keempat menghasilkan nilai false karena tidak ada attribut alamat di dalam objek JSON.

Edit Data
Edit data disini maksudnya memasukkan nilai baru ke dalam objek attribut.Sebagai contoh ,kita ingin
mengedit objek JSON user.


user.nama = 'John Doe'
console.log(user);

Kita juga bisa menggunakan [] dengan attribut sebagai index untuk mengedit data.


var user = {
nama : 'John jon',
id : 1,
email : '[email protected]'

};
console.log(user);
user.nama = 'John Doe';
console.log(user);
32
user['email'] = '[email protected]';
console.log(user);

Hasilnya akan terlihat seperti dibawah ini.

Array JSON
Kita telah belajar array ,sekarang kita akan mengkombinasikan JSON dan Array.Kita akan membuat
Array JSON.

Untuk memberikan gambaran Array JSON,kita akan membuat sebuah objek JSON bernama order.Objek
ini berisi data order beserta detailnya produk yang diorder.

var order = {
id : 1,

user : 'bonz',
tglOrder : new Date(),

detail : [
{
kode : 'b01',
nama : 'barang 1',
harga : 500

},{
kode : 'b02',
nama : 'barang 2',

harga : 750
},{
kode : 'b03',

nama : 'barang 3',

harga : 430

}
]
} 33


Kamu bisa melihat bahwa attribut detail berisa objek array.Jika ingin menampilkan sama seperti
sebelumnya kita bisa menggunakan perintah console.log()

console.log(order);



Sama seperti JSON biasa ,di Array JSON kita juga bisa mencetak setiap attributnya.


console.log('ID : ' + order.id);
console.log('User : ' + order.user);
console.log('Tanggal Order : ' + order.tglOrder);

console.log('Detail : ' + order.detail);


Bisa kita lihat kalau kita mencetak langsung detail,attribut didalamnya tidak akan bisa terbaca.Untuk
mengakses kita perlu melakukan seperti dibawah ini.

console.log('Detail : ' + order.detail[0].kode);


console.log('Detail : ' + order.detail[0].nama);

console.log('Detail : ' + order.detail[0].harga);

Bisa kita lihat bahwa nilai dari attribut order bisa dibaca sekarang.

34



Karena detail berisi array objek,kita perlu juga mengakses indexnya lalu attributnya. Jika kita ingin lebih
dinamis lagi dalam menampilkan datanya,kita bisa menggunakan perulangan.

for(var i=0;i<order.detail.length;i++){

console.log('Kode : ' + order.detail[i].kode);


console.log('Nama : ' + order.detail[i].nama);

console.log('Harga : ' + order.detail[i].harga);
}



Bagaimana caranya mengedit data objek Array JSON?

Sama saja tidak ada bedanya dengan objek JSON maupun Array biasa,bedanya kita memberikan dua kali
index jadi mirip seperti mengakses array dua dimensi.

console.log('Harga awal : ' + order.detail[0]['harga']);


order.detail[0]['harga'] = 999;

console.log('Harga diedit : ' + order.detail[0]['harga']);

35

Selain dengan cara diatas bisa juga dengan seperti ini:


order.detail[0].harga = 888;
console.log('Harga diedit lagi : ' + order.detail[0]['harga']);

Sebelumnya kita sudah belajar mengcheck apakah attribut tersebut ada atau tidak.Kita juga bisa
melakukannnya di Array JSON,kali ini kita akan menggunakan operator ternary untuk mengchecknya.


console.log(order['id'] == undefined ? false:true);

console.log(order['nama'] == undefined ? false:true);
console.log(order.detail[0]['kode'] == undefined ? false:true);
console.log(order.detail[0]['alamat'] == undefined ? false:true);

36

Bab 8 Fungsi
Kita akan membahas bagaimana membuat fungsi di Javascript pada bab ini.

Membuat Fungsi
Deklarasi sebuah fungsi di Node.js sangat sederhana.Berikut syntax dasarnya:

function nama_fungsi(parameter){

//code
}

Untuk lebih jelas kita akan membuat suatu fungsi.Sama halnya variable , di fungsi kita tidak perlu
membuat tipe datan fungsinya.Di kebanyakan bahasa pemrograman lain dibedakan antara prosedur
dan fungsi.kalau untuk yang belum tau, prosedur tidak mengembalikan nilai sedangkan fungsi
mengembalikan nilai.Di Javascript sendiri tidak ada pembedaan ,kita bisa membuat fungsi tersebut
mengembalikan atau tidak mengembalikan nilai.

Langsung saja kita buat fungsinya kita beri nama fungsiPertama.

function fungsiPertama(){

console.log('Fungsi dipanggil');
}

Kita bisa memanggil fungsi dengan cari menambahkan tanda () dibelakang nama fungsi.

fungsiPertama();

Akan keluar hasil seperti gambar dibawah :

Fungsi yang mengembalikan nilai


Jika mau membuat fungsi yang mengembalikan nilai.Kita cukup menambahkan perintah return di fungsi
tersebut.

function getKota(){

return 'Medan';
}
37


Sekarang kita akan memanggil fungsi tersebut ,tetapi karena fungsi tersebut mengembalikan nilai. Kita
tidak bisa langsung memanggilnya begitu saja,kita akan memanggilnya dan memasukkan nilai ke dalam
suatu variable.

var kota = getKota();
console.log(kota);


Code diatas akan menghasilkan output seperti gambar dibawah :



Fungsi dengan parameter dan mengembalikan nilai

function tambah(a,b){
return a+b;
}

var hasil = tambah(1,1);
console.log(hasil);


Akan keluar hasil penjumlahan 1 dengan 1.



Fungsi Callback
Fungsi Callback adalah fungsi yang dipanggil di melalui pointer fungsi.Jika kita melewatkan
pointer(alamat) , dari sebuah fungsi sebagai argument ke fungsi lain dan pointer tersebut digunakan
untuk memanggil fungsi yang ditunjukannya,maka kita menyebutnya callback.Agak ribet memang
pengertiannya langsung aja codenya biar gak pusing.


function callKali(a,b,callback){
var c = a*b;
callback(c);
} 38



Bisa kita lihat callback sebagai pointer fungsi.

Sekarang kita akan memanggil fungsi callback tersebut.

callKali(5,2,function(hasil){
console.log(hasil);
});

Nilai 5 dan 2 adalah parameter fungsi.Kita juga membuat sebuah fungsi dengan parameter hasil fungsi
tersebut yang kita sebut fungsi callback.Parameter ini berguna untuk mendapatkan nilai dari fungsi
callback tersebut.

Kita juga bisa membuat fungsi callback dengan lebih dari satu parameter.


function callKali(a,b,callback){
var c = a*b;
callback(c,'Hasil = ');

}

Kemudian kita gunakan fungsi callback tersebut.

callKali(5,2,function(hasil,pesan){


if(hasil > 0){
console.log(pesan + hasil);
}
});

Pertama kita akan mengcheck apakah hasil lebih besar dari 0.JIka nilainya true ,baru pesan dicetak di
console.

39

40

Bab 9 Operasi String


Pada bab ini kita akan membahas operasi string dasar pada Javascript.

Deklarasi String
Kita bisa mendeklarasikan string dengan dua cara.

var str1 = "Hello World";


var str2 = new String("Hello World");

Penggabungan String
JIka kita punya list dari data string,kita bisa menggabungkan data tesebut ke dalam satu string.

Untuk contoh ,lihat code dibawah ini:


var str1 = 'hello ';
var str2 = 'world ';
var str3 = 'from nodejs';

Sekarang kita akan menggabungkan data tersebut ke dalam satu variable dengan tipe string.Di Javascript
tidak perlu menggunakan fungsi cukup menggunakan operator “+”.


console.log(str1 + str2 + str3);


Akan terlihat string telah digabungkan.

String ke Angka
Untuk mengkonversi data string ke angka kita bisa menggunakan perintah parseInt() untuk konversi ke
tipe data int dan parseFloat() untuk ke tipe data float.

Berikut contoh penggunaan parseInt() dan parseFloat():

41


console.log('---parseInt()---');
console.log(parseInt('123'));
console.log(parseInt('123.34'));

console.log(parseInt('-123'));
console.log(parseInt('0.12'));
console.log(parseInt('12abc'));

console.log('---parseFloat()---');

console.log(parseFloat('123'));
console.log(parseFloat('123.34'));

console.log(parseFloat('-123'));
console.log(parseFloat('0.12'));
console.log(parseFloat('12abc'));

Jika kita menjalankannya,kita bisa melihat fungsi parseInt() akan membulatkan angka.Contohnya bisa
kita lihat ‘123.34’ menjadi ‘123’.Dan jika data string memiliki karakter yang bukan angka ,maka fungsi

akan menghilangkannya.Lihat gambar dibawah.

Angka ke String
Sangat mudah mengkonversi angka ke bentuk string.Kita hanya perlu menambahkan tanda '' dan tipe
data string akan terbentuk secara otomatis.

var x = 86;

var str = x + '';



Cara lain dengan menggunakan fungsi toString().

var angka = 999;
var str = angka.toString(); 42

Memecah String
Jika kamu punya sebuah data string,sebagai contoh ‘Medan,Binjai,Bogor,Bandung’ dan kamu ingin
memecahnya berdasarkan karakter pemisahnya.Solusi paling mudah adalah menggunakan fungsi split()
dengan pembatas sebagai parameter.Langsung saja contoh codenya:

var kota = 'Medan,Binjai,Bogor,Bandung';


var arrKota = kota.split(',');

console.log(arrKota);


for(var index in arrKota){

console.log(arrKota[index]);
}

Jika kita memecah string menggunakan fungsi split ,fungsi ini akan mengembalikan data yang kita pecah
ke dalam bentuk array.

Check Panjang Data String


Untuk mengcheck panjang string sangat mudah ,kita bisa menggunakan fungsi length.

var nama = 'John Doe';


console.log('Panjang String : ' + nama.length);


Hasilnya :

43

Mengambil Data
Jika ingin mengambil sebagian data dari data string kita bisa menggunakan fungsi bernama subtstring()
dan substr.Bentuk umum dari fungsi tersebut:


substring(index_mulai,index_akhir);
substr(index_awal,panjang);

Index_awal merupakan index dimana kita mulai mengambil data,karakter pertama merupakan index 0.

Index_akhir merupakan index dimana kita berakhir mengambil data,ini merupakan parameter
opsional,jika kita tidak menggunakannnya maka fungsi akan mengambil semua karakter mulai dari
index_awal.

Panjang disini menyatakan panjang data yang ingin kita ambil.Ini juga opsional,sama seperti
index_akhir.

Contoh penggunaan substring() :

var str = 'hello, from the other side';


console.log(str.substring(5,10));
console.log(str.substring(1,5));

console.log(str.substring(0,5));
console.log(str.substring(0,str.length));

Contoh penggunaan substr():

var str = 'hello, from the other side';


console.log(str.substr(5,5));
console.log(str.substr(7,4));

console.log(str.substr(0,5));
console.log(str.substr(0,str.length));
44


Karakter Upper dan Lower Case


Dalam beberapa situasi,kita mungkin menginginkan data string semuannya uppercase atau
lowercase.Tersedia juga fungsi tersebut didalam Javascript.Fungsi toUpperCase() untuk merubah
menjadi huruf besar dan toLowerCase() untuk merubah ke huruf kecil.

Contoh Code:

var nama = 'John Ode';


console.log(nama.toUpperCase());

console.log(nama.toLowerCase());

Mengetahui Index String


Setiap karakter dalam data string memiliki index yang menandakan posisi di dalam data.Untuk
mendapatkan index kita bisa menggunakan fungsi indexOf() dan lastIndexOf()

var nama = 'John ode';


console.log('---indexOf---');

console.log(nama.indexOf('ohn'));
console.log(nama.indexOf('ode'));
console.log(nama.indexOf('o'));

console.log('---lastIndexOf---');
console.log(nama.lastIndexOf('ohn'));

console.log(nama.lastIndexOf('ode'));
console.log(nama.lastIndexOf('o'));

45



Hasil menggunakan indexOf() dan lastIndexOf() akan berbeda karena indexOf() memulai pencarian
posisi dari depan sedangkan lastIndexOf() dari belakang.Bagaimana kalau data tidak ditemukan?

var nama = 'John ode';
console.log(nama.indexOf('JS'));

Jika menjalankan code diatas akan menghasilkan nilai -1,nilai itu menandakan karakter yang dicari tidak
ditemukan di dalam data string.

Untuk sekedar mengingatkan fungsi IndexOf() dan lastIndexOf() bersifat case-sensitive artinya huruf
kecil dan besar dianggap berbeda.



Mengambil Karakter
Mungkin ada saatnya kita ingin mengambil karakter di posisi tertentu.Di Node.js juga menyediakan
fungsi tersebut ,fungsi ini bernama charAt().


var nama = 'John ode';
console.log(nama.charAt(0));
console.log(nama.charAt(1));
console.log(nama.charAt(6));
console.log(nama.charAt(nama.length));

console.log(nama.charAt(nama.length-1));

Jika menggunakan IndexOf() jika tidak ditemukan mengembalikan -1 ,kalau di charAt() tidak akan
mengembalikan apapun.

46

47

BAB 9 NPM
Node Package Manager(NPM) memiliki dua fungsi dasar :


Tempat penyimpanan online untuk package/module dari nodejs yang dapat dicari pada npmjs.com
• Command Line untuk menginstall package Node.js,juga untuk management versi dan dependency di
package Node.js
Untuk mengecek versi npm kita gunakan perintah seperti gambar dibawah ini :

Menginstal Module menggunakan NPM


Cukup mudah untuk menginstal module Node.js cukup :

Untuk contoh,kita akan menginstal salah satu Framework Web paling popular di Node.js namanya
Express :

Setelah selesai menginstal module kita bisa menggunakannya di file js dengan cara :

var express = require('express');



Instalasi Global vs Local
Secara default, NPM menginstal setiap module secara lokal .Lokal artinya instalasi dilakukan di folder
node_modules yang berada di folder tempat aplikasi Node.js dijalankan.Module yang dinstalasi lokal
dapat diakses dengan menggunakan require().Untuk melihat daftar dari module yang diinstal secara
lokal bisa menggunakan perintah npm ls di command prompt.

48

Module yang diinstal secara global akan disimpan di direktori system.Setiap module yang diinstal secara
global dapat digunakan di CLI(Command Line Interface) tetapi tidak dapat diimport menggunakan
require() .Sekarang kita coba menginstal module express secara global.

Setelah kita selesai menginstal untuk mencobanya ketikkan nama-module di CLI.

Bisa dilihat sekarang kita sudah menggunakan express di command prompt.Selamat.

Menggunakan package.json
Package.json berada di folder awal dari setiap aplikasi/module Node.js dan digunakan untuk
mendefinisikan properti dari aplikasi atau module tersebut.Untuk membuat package.json ,pertama kali
saat ingin membuat aplikasi ketikkan perintah :

Kita akan diminta mengisi beberapa hal seperti :

• name - nama dari aplikasi kita.Defaultnya adalah nama folder


• version – versi dari aplikasi kita.Defaultnya adalah 1.0.0
• description – keterangan dari aplikasi, boleh kosong
• entry point – maksudnya adalah file js awal yang dijalankan sebagai server.Defaultnya adalah
index.js

49

• test command – berisi perintah-perintah untuk mencoba aplikasi ,boleh kosong


• git repository – Repository aplikasi kita di github,boleh kosong
• keywords – kata kunci dari aplikasi
• author – siapa pemilik dari aplikasi
• license – license dari aplikasi.Defaultnya ISC

Setelah kita isi akan terbentuk file package.json di folder aplikasi berada.Berikut isi dari file package.json
tersebut.


{
"name": "package",
"version": "1.0.0",

"description": "",
"main": "index.js",
"scripts": {

"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",

"license": "ISC"
}

Package.json juga berguna untuk menyimpan daftar nama module yang ingin telah atau ingin kita
install.Untuk menyimpan nama module ke dalam package.json ,saat menginstal tambahkan perintah --
save.Misalnya kita install express.

Setelah module selesai di install maka package.json akan berubah.

50


{
"name": "package",
"version": "1.0.0",

"description": "",
"main": "index.js",
"scripts": {

"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",

"license": "ISC",
"dependencies": {

"express": "^4.15.2"
}
}



Bisa kita lihat bertambah properti bernama dependencies,properti itu berisi daftar list module yang
telah maupun akan diinstal.Sebagai contoh ketika teman-teman ingin mengcopy aplikasi Node.js dan
menjalankan di PC atau laptop lain ,teman-teman tidak perlu mengcopy folder node_modules juga,kita
hanya perlu mendaftarkan list-list module di properti dependencies pada package.json.Dan saat kita
ingin menjalankan aplikasi tersebut,cukup jalankan perintah.

Maka semua module yang terdaftar akan diinstal.

Selain menggunakan --save ,kita juga bisa menambahkan daftar module secara manual di properti
dependecies tetapi dengan format yang telah ditentukan.

"dependencies": {
"nama-module": "versi"

}

Uninstal Module

51

Untuk menguninstal module cukup ketikkan perintah uninstall disertai nama-module.

Untuk mengcheck apakah berhasil ketikkan perintah :

Update Module
Ada dua cara untuk mengupdate ,pertama kita harus ubah versi module di package.json lalu ketikkan


Cara kedua kita tidak perlu mengubah isi package.json cukup tambahkan perintah --save

52

Bab 9 Membangun Module Node.js Sendiri



Maksud sendiri disini bukan status kita ya.Kita perlu membuat module punya kita sendiri karena
terkadang tidak semua fungsi yang kita inginkan, ada di module pada http://npmjs.com .Dan kalau
misalnya teman-teman sudah membuat aplikasi yang bisa dikatakan besar,menggunakan module sendiri
akan mempercepat kinerja aplikasi kita.Kenapa bisa begitu ?

Hal ini terjadi karena module-module tersebut memiliki banyak fungsi yang tidak digunakan tetapi
terload saat kita menjalankan aplikasi.Solusinya adalah membuat sendiri module untuk fungsi yang kita
butuhkan.Tapi ini kalau aplikasi yang kita buat udah besar,kalo masih kecil sih hajar aja.

Begini konsep dasar kenapa ada module.Bayangkan kita punya sebuah fungsi,kita ingin memanggil
fungsi tersebut dari banyak file.Kalau gak mau susah ,kita menulis fungsi tersebut di setiap file.Tetapi
cara itu membuang-buang waktu,karena kalau kita ingin mengubah fungsi ,kita harus menggubahnya
disetiap file.Untuk itulah kita perlu yang namanya module.Kita menulis fungsi tersebut didalam
module.Kemudian module tersebut kita panggil.

Langsung aja daripada banyak cerita.

Membuat Module Sederhana

Sekarang kita akan membuat sebuah module untuk melakukan perkalian sebagai contoh.
Langsung saja codenya:

var perkalian = function(x,y){
return x*y;
}
exports.perkalian = perkalian;

Kita menggunakan fungsi exports untuk mengekspos fungsi tersebut.Simpan sebagai
modulesederhana.js.
Untuk memanggil module ,kita bisa menggunakan perintah require.

var modul = require('./modulesederhana.js');

var hasil = modul.perkalian(5,5);

console.log(hasil);

Require membutuhkan lokasi path dimana dia berada,dan ingat selalu tambahakan ‘./’ diawali lalu
diikuti dengan lokasi module.Simpan dengan nama cobaModul.js dan jalankan maka kita akan
mendapatkan output seperti gambar dibawah.

53



Tidak hanya satu kita bisa mendeklarasikan banyak fungsi didalam satu module.



var perkalian = function(x,y){ return x*y; }
var tambah = function(x,y){ return x+y; }
var pangkat2 = function(x){ return x*x; }
exports.perkalian = perkalian;
exports.tambah = tambah;

exports.pangkat2 = pangkat2;


Class Module

Jika kamu sudah punya pengalaman dalam pemrograman berorientasi objek,kamu mungkin ingin
mengimplementasikannya di Node.js.Tentu saja hal itu mungkin karena Node.js memungkinkan hal
itu.Node.js baik ya. Sebagai contoh kita buat sebuah class bernama Aritmatika.Pertama kita buat
sebuah file bernama Aritmatika.js lalu ketikkan code dibawah :

//Konstruktor
var Aritmatika = module.exports = function(){
console.log('Konstruktor');

}

//Method

Aritmatika.prototype.bagi = function(x,y){
console.log('Bagi');
}
//Method
Aritmatika.prototype.kurang = function(x,y){

console.log('Kurang');

}



Kita mengekspos class dengan module.exports.Kemudian memasukkan method menggunakan perintah
prototype.
Sekarang kita coba class kita,ketikkan code dibawah dan simpan sebagai cobaClass.js

54


var Aritmatika = require('./Aritmatika.js');
var aritmatika = new Aritmatika();

aritmatika.kurang();

Kita akan mendapati hasil seperti dibawah ini :
aritmatika.kurang();

55

Bab 10 Error Handling dan Logging


Kita akan membahas error handling yang berguna untuk menghandle error.Masa sih bonz.

Error Handling

Sebagai programmer yang baik kita harus selalu mengasumsi kemungkinan terburuk.Oleh karena itu kita
harus berpikir bagaimana mengatasinya.Untuk menghandle error kita menggunakan syntax
try…catch.Berikut contoh penggunaannya.


var x = 4;

var y = 0;
try{
var hasil = x/y;
if(hasil==Infinity)
throw new Error('Bilangan tidak boleh dibagai dengan nol');

}catch(err){

console.log(err);

}


Pada code diatas kita akan menghandle ketika x dibagi dengan y ,dimana jika kita tetap mencetak tanpa
melakukan handle akan mengembalikan nilai Infinity.Karena kita harus memiliki asumsi yang
menggunakan aplikasi kita adalah orang awam yang tidak tau arti dari Infinity,jadi kita memberikan
pesan error agar mereka mengerti tentang kesalahan penginputan,misalnya.

Jika kita menjalankan code diatas akan menghasil seperti gambar dibawah :

56

Karena kita langsung mencetak err maka program akan mencetak seluruh attribut di dalam err itu.Di
dalam err sendiri terdapat beberapa attribut penyusun seperti name,message dan stack.Kita akan coba
mencetak satu persatu :


//Menampilkan nama Error

console.log(err.name);




//Menampilkan pesan Error
console.log(err.message);




//Menampilkan stack Error
console.log(err.stack);


Saat kita mencetak err.stack akan menghasilkan keluaran yang sama dengan hanya mencetak err ,ini
karena setiap bagian dari err juga bagian dari stack sendiri.

57

Logging

Biasanya kita menggunakan console.log() untuk mencetak pesan error kita di console.Bayangkan kalau
kita mempunyai banyak pesan di console dan ingin melihat mana yang sedang terjadi saat itu juga.Cara
paling sederhana adalah memberikan warna kepada setiap pesan untuk melihat mana yang sedang
terjadi. Atau lebih mudahnya kita bisa menggunakan module bernama log4js-node.

Kita harus ingat setiap ingin menginstal module secara global ,command prompt harus dijalankan
dengan hak administrator.Kalau belum tau caranya,belajar……

npm install log4js -g

Jika tidak ingin menginstal secara global,cukup hilangkan –g.

npm install log4js


Jika berhasil akan terlihat seperti :



Bagaimana menggunakan module ini?Langsung kita coba:

var log4js = require('log4js');
var logger = log4js.getLogger();
logger.info('Application is running');
logger.warn('Module cannot be loaded');
logger.error('Saved data was error');
logger.fatal('Server could not process');
logger.debug("Some debug messages");

58

Kita juga bisa menggunakan parameter untuk getLogger(). Simpan dengan nama usinglog4js.js dan
jalankan.Kita bisa lihat bahwa log4js-node menampilkan warna text berdasarkan type lognya.


var log4js = require('log4js');
Kita dapat menggubah text tampil(default) dengan kategori aplikasi.Cukup tulis kategori sebagai
var logger = log4js.getLogger('aplikasiSaya');
parameter dari getLogger().Sebagai contoh aplikasiSaya.
logger.info('Application is running');

logger.warn('Module cannot be loaded');

logger.error('Saved data was error');

logger.fatal('Server could not process');
logger.debug("Some debug messages");


Jalankan dan lihat perbedaan keduannya.



Memakai parameter:



Cuma beda dikit bonz.Secara default ,log4js-node menulis pesan di console,jika ingin menulis semua
pesan kedalam sebuah file,kita bisa melakukan konfigurasi seperti cara dibawah ini:

1. Aktifkan file logging dengan memanggil fungsi loadAppender()


2. Pada fungsi addAppender() ,masukkan lokasi pada parameter pertama dan kategori di
parameter kedua.

Sebagai contoh,kita ingin menyimpan file log di C:\temp dengan nama kategori aplikasiSaya.Begini
codenya:

59



var log4js = require('log4js');


log4js.loadAppender('file');

log4js.addAppender(log4js.appenders.file('c:\\temp\\aplikasiSaya.log'),'ap

likasiSaya');


var logger = log4js.getLogger('aplikasiSaya');


logger.info('Application is running');
logger.warn('Module cannot be loaded');
logger.error('Saved data was error');
logger.fatal('Server could not process');

logger.debug("Some debug messages");


Jalankan code,jika berhasil akan terbentuk file aplikasiSaya.log.



Dan jika kita buka file tersebut akan mendapatkan hasil seperti gambar dibawah.

Untuk informasi lebih mengenai module log4js-node ,bisa mengunjungi website resminya
https://github.com/nomiddlename/log4js-node .

60

Bab 11 Events
Event berguna untuk memberitahukan objek lain apa yang sedang terjadi.Objek yang mengirim disebut
publisher dan objek yang menerima disebut subscriber.
Pada bab ini kita akan membahas topic tersebut.

Module Events
Node.js menyediakan module events untuk memanipulasi komunikasi berdasarkan sebuah event.Untuk
infromasi lebih mengenai event ini bisa melihat dokumentasinya di https://nodejs.org/dist/latest-
v6.x/docs/api/events.html

Menggunakan Events
Kita menggunakan objek EventEmitter untuk membuat events kita.Jangan lupa untuk memanggil
module events.

Pertama,kita perlu menyiapkan sebuah fungsi callback dan memasukkan ke dalam fungsi on() dari objek
EventEmitter.Ini contoh code jika caller mengirim pesan event yang sama dengan pada fungsi on().


var EventEmitter = require('events').EventEmitter;

var myEmitter = new EventEmitter;

var koneksi = function(id){

console.log('Klien id : '+ id);
}
myEmitter.on('connection',koneksi);

myEmitter.on('message',function(psn){

console.log('pesan : '+ psn);
});

Untuk mencobanya ketik code dibawah :

myEmitter.emit('connection',6);
myEmitter.emit('connection',8);
myEmitter.emit('message','ini pesan pertama');
myEmitter.emit('message','ini pesan kedua');
myEmitter.emit('message','selamat datang di nodejs');
Penjelasan singkat yang mudah-mudahan teman-teman bisa paham :

61

• Pertama kita mendefenisikan events module supaya bisa digunakan.


• Deklarasikan objek EventEmitter.
• Kita bisa defenisikan sebuah variable fungsi dan meletakkannya di method on() secara langsung.
• Untuk mengirim pesan,kita mengggunakan method emit() dengan nama event dan data sebagai
parameter.

Jalankan codenya,dan kita akan mendapati output seperti gambar dibawah :



Once Method pada Event Listener

Jika kita menggunakan method on(),itu berarti event listener tidak akan berhenti sampai aplikasi
berhenti.Jika kita ingin hanya ingin event sekali saya dijalankan,bisa menggunakan method once().


var EventEmitter = require('events').EventEmitter;

var myEmitter = new EventEmitter;


myEmitter.once('message',function(psn){

console.log('pesan : '+ psn);

});


myEmitter.emit('message','ini pesan pertama');
myEmitter.emit('message','ini pesan kedua');
myEmitter.emit('message','selamat datang di nodejs');


Jalankan code ,dan lihat hasilnya :

Bisa kita lihat di method once() ,emit hanya dijalankan satu kali,dan akan berhenti menerima untuk emit
lain.

62

Menghapus Events
Jika kita ingin menghapus event listener,cukup memanggil removeListener().Fungsi ini membutuhkan
dua parameter yaitu name eventnya dan variabel fungsinya.

var EventEmitter = require('events').EventEmitter;


var myEmitter = new EventEmitter;

//fungsi
var koneksi = function(id){
console.log('Klien id : '+ id);
}

var pesan = function(psn){


console.log('pesan : '+ psn);
};
//menunggu events

myEmitter.on('connection',koneksi);
myEmitter.on('message',pesan);
//kirim pesan
myEmitter.emit('connection',6);

//hapus events
myEmitter.removeListener('connection',koneksi);

//kirim pesan

myEmitter.emit('connection',10);
myEmitter.emit('message','selamat datang di nodejs');

Bisa kita lihat jika kita sudah menghapus menggunakan removeListener() ,event tidak mengikuti
‘connection’ lagi karena sudah kita remove,makanya cuma ditampilkan satu kali.

63

Bab 12 Aplikasi Web Dasar dengan HTTP Module


Pada bab ini kita akan membuat aplikasi web yang beneran ,kalo temen-temen biasanya membuatnya di
PHP/ASP kali ini kita akan buat di Node.js menggunakan module HTTP dasar dari Node.js.

Dasar HTTP
Node.js menyediakan module http untuk memanipulasi dan menghandle request dan response untuk
http.Dokumentasi lengkapnya ada di websitenya https://nodejs.org/dist/latest-v6.x/docs/api/http.html

Langsung saja codenya :

var http = require("http");


var server = http.createServer(function(res,res){
res.write('Selamat anda berhasil menggunakan nodejs http module');
res.end();
});


server.listen(8086,function(){
console.log('Server berjalan di port 8086');
});

Simpan code dengan nama httpdasar.js.

Sekarang jalankan dan akan keluar hasil seperti gambar dibawah:

Ketika kita menjalankan aplikasi untuk pertama kali akan muncul kotak dialog permintaan izin.Lebih baik
kita check Private Network dan kemudian klik Allow access.

64

Ketikkan di browser

http://localhost:8086

Dan lihat hasilnya dibrowser

65

Saya jelaskan sedikit cara kerjanya :

• Pertama kita load module HTTP.


• Kemudian kita buat web server dengan memanggil fungsi createServer().
• Kita mendapatkan request dan response objek menggunakan (req,res) parameter
• Kita menghandle request dan response dari klien menggunakan objek tersebut.
• Panggil fungsi end() untuk menutup pengiriman response dari klien.
• Kita menggunakan fungsi listen() dengan parameter wajib port,contoh 8086,untuk
mengaktifkan proses mendengarkan(listen) dan parameter kedua itu opsional , biasanya fungsi
cuma untuk mencetak dimana port aplikasi berjalan.

Untuk memberhentikan aplikasi tekan Ctrl+C.

Manipulasi Header HTTP


Kita bisa mendapatkan informasi header dari request klien dan mengirim sebuah response dengan
custom header.Untuk mendapatkan informasi header dari klien kita menggunakan req.headers.Kita juga
bisa menset attribut custom header dengan memanggil fungsi setHeader() dari objek response(res).

Dibawah ini contoh sample code untuk memanipulasi HTTP header:

var http = require("http");

var server = http.createServer(function(req,res){

//mencetak request header


console.log(req.headers);
//menset response header
res.setHeader('AppId','123456');

//kirim response
res.write('Selamat datang di Nodejs');
console.log(res._header);

res.end();
});
server.listen(8086,function(){
console.log('Server berjalan di port 8086');

});


Jalankan code dan akan mendapatkan hasil seperti gambar dibawah ini :

66

Ketika kita mengetikkan http://localhost:8086 sesuai dengan yang port yang kita buat di browser.Maka
lihat apa yang terjadi pada console.

Itu merupakan isi dari req.headers yang terdiri dari komponen-komponen header.Kita juga mencetak
res._header dan melihat disitu AppId yang kita set menggunakan fungsi setHeader() sebelumnya.

Handle Request Page


Diatas kita telah belajar membuat aplikasi web sederhana,sekarang kita akan melanjutkan untuk belajar
lebih mendalam menggunakan module HTTP.Kita bisa menghandle request halaman dari klien,sebagai
contoh:

• halaman/
• halaman/admin
• halaman/kontak

Untuk menghandle request halaman,kita bisa mengcheck mereka melalui objek request dengan
memanggil attribut url.Untuk mengcheck kita menggunakan kondisi,seperti if.

67


if(req.url=='/'){
res.write('Selamat datang di homepage');
}else{
//isilah sesuka hati
}


Sekarang akan kita buat aplikasi sederhana menggunakan cara diatas:

var http = require("http");


var server = http.createServer(function(req,res){

console.log(req.url);
\

if(req.url=='/'){
res.write('Selamat Datang di halaman homepage');
}
else if(req.url == '/kostumer'){

res.write('Selamat Datang di halaman kostumer');
res.end();
}

else if(req.url == '/admin'){
res.write('Selamat Datang di halaman admin');
res.end();
}
else{

res.write('Halaman tidak ditemukan');
res.end();
}
});

server.listen(8086,function(){
console.log('Server berjalan di port 8086');
});


Simpan dengan nama httproute.js kemudian jalankan.Sekarang kita akan mencoba melakukan request
pada route admin.Ketikkan http://localhost:8086/admin kemudian lihat hasilnya.

68



Kita juga bisa melihat url yang kita akses di console.

69

BAB 13 Manipulasi File dengan Module Filestream


Apa itu module Filestream sesuai dengan judul bab ini ,module yang berguna untuk memanipulasi file
,sebenarnya folder juga bisa, tapi karena sesuai dengan judul .Kita hanya bahas bagian manipulasi file
seperti menulis,menghapus,membuat dan mengubah.Module ini juga merupakan module built-in dari
Node.js.Untuk dokumentasi lebih lengkap https://nodejs.org/dist/latest-v6.x/docs/api/fs.html

Untuk menggunakan di aplikasi cukup gunakan perintah require().

var fs = require('fs');


Membaca File

Untuk membaca file kita menggunakan fungsi readFile() ,terdapat tiga parameter :
• File mengenai namafile atau lokasinya
• Options : {encoding : string;mode:number;flag:string} biasanya sih yang sering dipakai
encoding contohnya ‘utf8’
• Callback fungsi yang akan dilakukan

Langsung saja codenya :

const fs = require('fs');

fs.readFile('data.txt','utf8',function(err,data){

if(err) throw err;

console.log(data);

});



Simpan dengan nama bacaFile.js.Kemudian kita akan buat file data.txt.

Belajar Node.js

Bersama-sama…….


Pada fungsi readFile() diatas kita membuat fungsi callback dengan dua parameter,pertama err untuk
mencari tau jika terjadi error dan parameter kedua data,parameter ini untuk menampung data dari file
yang kita baca.Jalankan bacaFile.js dan kamu akan mendapati hasil seperti gambar dibawah ini:

70


Menulis File

Dengan menggunakan module filestream(fs) kita juga bisa menulis ke dalam file,kita menggunakan
fungsi writeFile() dengan 4 parameter :
• File mengenai namafile atau lokasinya
• Data ,tentang data yang kita ingin kita tulis ke file
• Options : {encoding : string;mode:number;flag:string} biasanya sih yang sering dipakai
encoding contohnya ‘utf8’
• Callback fungsi yang akan dilakukan biasanya untuk mengecek error

Untuk lebih jelas lihat code dibawah ini:

const fs = require('fs');
var data = "Belajar menulis ke dalam file";
fs.writeFile('data.txt',data,function(err){
if(err) throw err;
console.log("Berhasil Menulis");
});


Kita simpan lalu jalankan dan lihat hasilnya :



Lalu lihat file data.txt.

71

Selamat kita berhasil menulis file,tetapi ada yang aneh ,text yang tadinya ada di data.txt hilang.Ini
terjadi karena writeFile() akan menimpa text yang telah ada dengan text baru.Kalau teman-teman tidak
ingin ini terjadi bisa menggunakan fungsi appendFile().

const fs = require('fs');
var data = "Belajar menulis ke dalam file\n";

fs.appendFile('data.txt',data,,'utf8',function(err){
if(err) throw err;
console.log("Berhasil Menulis");
});

Simpan lalu jalankan kembali.Kalau tidak ada error akan keluar gambar dibawah ini :



Lalu lihat kembali file data.txt.



Bisa kita lihat text yang ada di dalam file tidak ditimpa.

Menghapus File

Untuk menghapus file di module filestream kita menggunakan fungsi unlink().Langsung saja lihat code
dibawah :

const fs = require('fs');

fs.exists('data.txt',function(exists){
if(exists){
fs.unlink('data.txt');
console.log("File berhasil dihapus")
}else{

72

console.log("File tidak ditemukan");



}
});


Pertama yang kita lakukan sebelum menghapus file adalah mengcheck apakah file tersebut ada,ini sama
aja kayak mau mutusin pacar tapi gak punya pacar,sia-sia.Untuk mengecek keberadaan file kita
menggunakan fungsi exists() dengan parameter namafile dan callback function.

Lalu gunakan kondisi, misalnya if untuk mengecek apakah nilai yang dikembalikan callback fungsi
bernilai true.Kalau true jalankan fungsi unlink() kalau false cetak di console file tidak ditemukan.

Membuat File baru

Untuk membuat file baru di module filestream(fs) kita bisa menggunakan fungsi open().Biasanya yang
digunakan 3 parameter :
• Path – nama dan lokasi file
• Flags - string | integer
• Callback – fungsi

Untuk lebih jelas kita lihat code dibawah :

const fs = require('fs');

fs.open('data1.txt','wx',function(err){

if(err) throw err;

console.log("Berhasil membuat file");

});


‘wx’ itu merupakan salah satu tipe dalam parameter Flags ,artinya akan membuat file jika tidak ada dan
akan error jika file sudah ada.Simpan dan jalankan :



Kalau berhasil akan keluar pesan diatas dan file baru akan terbentuk di folder tempat aplikasi
dijalankan.

73

Anda mungkin juga menyukai