Halo teman-teman semua, selamat datang kembali di channel Web Programming Unpas, masih bersama saya Sandika Gali. Dan kali ini, seperti yang teman-teman udah lihat di layar, kita akan sama-sama memulai sebuah seri baru. Seri baru ini adalah seri yang cukup banyak diminta oleh teman-teman sekalian, yaitu mengenai belajar Node.js.
Dan ini sebetulnya memang sudah lama juga ingin saya buat di channel Web Programming Unpas ini, karena terus-terang belajar mengenai Node.js ini seru banget ya, teman-teman. Dan seperti biasa, di video pertama kita kali ini, kita akan membahas dulu mengenai apa sih itu Node.js ya teman-teman ya. Kita akan mulai cari tahu apa itu definisinya, kenapa kok bisa ada Node.js, Node.js itu buat apa sih.
Nah ini kita akan pelajari dulu di video kita kali ini, sebelum nanti kita akan pelajari lebih lanjut ya. Jadi saya yakin serinya akan seru banget teman-teman ya, mudah-mudahan semangat nih ngikutinnya ya. Nah sekarang kita akan mulai dulu dari agenda untuk seri ini ya, atau untuk playlist ini.
Jadi kita lihat rencananya kita akan belajar apa aja sih di seri ini. Yang pertama tentu saja kita akan belajar dulu mengenai apa itu Node.js. Ya terus nanti kita akan lanjutkan, kita akan bahas mengenai arsitektur dari Node.js. Kita juga akan cari tahu gimana sih cara installnya, cara konfigurasinya sampai menjalankan program Node.js kita tuh caranya gimana. Lalu nanti kita akan bahas mengenai system module atau Node.js module system.
Selanjutnya kita akan bahas mengenai NPM atau ini singkatan dari Node Package Manager. Ya dan terakhir... Nanti kita akan gabungkan semua ilmu yang sudah kita dapatkan untuk membuat sebuah aplikasi Node.js yang sangat sederhana. Jadi sekali lagi ini pasti seru banget untuk kalian ikuti.
Oke teman-teman, kalau teman-teman sudah dapat gambaran seri ini bakal ngapain aja, selanjutnya kita langsung masuk ke apa itu Node.js. Kita mulai dari melihat definisi yang diberikan oleh website Node.js resminya langsung. Jadi kalau kata...
Websitenya, kalau kalian kunjungi ke nodejs.org Ini nodejs itu definisinya adalah gini Nodejs is a javascript runtime built on Chrome's V8 javascript engine Jadi katanya nodejs ini javascript runtime yang dibangun atau dibuat Di dalam javascript engine yang namanya V8 punyanya Google Chrome Itu ya penjelasannya Atau ada lagi yang lebih detail ya teman-teman Kalau kalian masuk ke halaman aboutnya, ini katanya Jadi katanya Node.js is an asynchronous event-driven JavaScript runtime designed to build scalable network application. Jadi adalah sebuah runtime, sekali lagi dia bilangnya runtime ya, untuk membuat aplikasi yang asynchronous katanya gitu ya. Nah mungkin penjelasan ini buat beberapa dari kalian agak membingungkan ya. Cuma nanti kita akan lihat dulu nih, apa itu runtime ya.
Jadi ternyata Node.js ini bukan sebuah bahasa pengurgaman. Banyak yang suka salah mengartikan Node.js sebagai bahasa pengurgaman. Padahal sebetulnya Node.js itu adalah runtime Dimana kita bisa menjalankan script javascript di dalamnya gitu Jadi sebenarnya bahasa yang kita pakai adalah javascript Node.js adalah sebuah runtime Nah sekarang pertanyaannya apa itu runtime?
Nah runtime ini adalah sebuah konteks Atau tempat lah ya dimana kita menjalankan atau mengeksekusi kode kita Nah maksudnya gimana? Kita lihat ilustrasinya gini Jadi kan gini sebelumnya teman-teman kita tahu bahwa javascript Nah kan kita tahu tadi Node.js itu adalah sebuah rantai untuk menjalankan program menggunakan bahasa Javascript. Nah sedangkan Javascript kita sama-sama tahu bahwa Javascript ini berjalan di dalam browser ya teman-teman.
Kita tahu ya kalau kita mau bikin web itu kan kita bisa menggunakan bahasa Javascript. Sedangkan web itu berjalannya di browser. Nah jadi Javascript itu biasanya kita jalaninnya di dalam browser.
Bener gak? Nah kenapa bisa jalan di dalam browser? Karena browser kita punya sebuah engine yang namanya V8.
Ini khusus untuk Chrome ya teman-teman. Google Chrome punya JavaScript engine yang namanya V8. Why browser lain JavaScript engine yang beda lagi?
Nanti itu kita bahas di video yang berbeda. Intinya JavaScript itu berjalan di dalam browser karena di browsernya itu punya JavaScript engine. Nah jadi dengan menggunakan JavaScript itu kita bisa bikin website kita jadi bisa melakukan banyak hal. Yang keren-keren ya. Kan sebelumnya kita tahu ada HTML, ada CSS.
HTML untuk bikin struktur halaman, CSS untuk menghias halaman, istilahnya gitu. Nah, JavaScript bisa bikin website kita tuh jadi macem-macem. Jadi kita bisa melakukan manipulasi DOM.
Ya, nambahin, ilangin elemen, dan lain sebagainya. Kita juga bisa menambahkan event listener. Kalau tombol diklik, ngapain?
Kalau mouse digerakkan, ngapain? Kita juga bisa nambahin interaktifitas, nambahin transisi, animasi, bikin slideshow, bikin game bahkan ya. Kita juga bisa melakukan HTTP request.
Kita bisa ambil data ke halaman website lain. Atau ngambil data lewat API ke aplikasi lain. Jadi kita bisa melakukan HTTP request.
Dan masih banyak lagi yang bisa dilakukan oleh JavaScript di dalam browser. Pokoknya JavaScript bikin website kita itu makin keren. Tapi problemnya adalah terbatas. JavaScript hanya bisa melakukan apapun selama...
Itu di dalam browser. Bahkan kalau browsernya kita close, yaudah Javascriptnya juga nggak jalan. Kan gitu ya.
Jadi mengandalkan browser. Segala sesuatunya, konteksnya adalah web browser kita. Karena engine-nya tadi tertanam di dalam browser. Nah gitu ya. Jadi Javascript itu keren.
V8 engine itu keren. Cuman terbatas di dalam browser. Nah, suatu saat ada seseorang yang namanya Ryan Dahl. Nah ini yang membuat Node.js teman-teman. Jadi ini cerita sedikit ya.
Nah jadi si Ryan Dahl ini pada tahun 2009. dia membuat Node.js. Saat itu dia seorang software developer di perusahaan yang namanya Joy-N. Nah, kalau kalian pengen cek apa aja yang udah dibikin sama si Rayendal ini, ada link GitHub-nya github.com slash r-y atau ray. Nah, tapi gini.
Awalnya dia buat itu karena dia lagi ngerjain sesuatu yang butuh sebuah web server. Dan dia pengen bikin web server itu yang menggunakan single thread dan menggunakan sesuatu yang disebut dengan event loop. Oke? Mungkin nanti ini akan lebih jelas ketika kita masuk ke video berikutnya. Tapi intinya gini, awalnya dia lagi bikin sesuatu gitu ya.
Nah tapi dia bingung. Karena saat itu nggak ada gitu ya yang bisa melakukan ini. Makanya dia harus bikin sendiri. Nah waktu itu dia cobain bikin pakai macam-macam bahasa pemogaman. Dia coba bikin pakai si Lua bahkan Haskel.
Dan pada saat bikinnya itu ada yang dia bahasanya nggak bisa. Ada yang memang dianya sendiri kebingungan pakai bahasa itu. Jadi problem dia nggak terselesaikan.
Nah saat itu kebetulan... Ada V8 Engine ini, di mana dia tahu perilaku dari JavaScript, dan V8 Engine ini memungkinkan untuk menyelesaikan masalah yang dia punya. Karena perilaku dari JavaScript kan sama aja ya, single thread, non-blocking, asinkronus.
Nah, dia mikir kayaknya bisa nih, bikin web server pakai V8 Engine. Nah, makanya yang tadinya JavaScript itu hanya bisa dijalankan di dalam browser, karena V8 Engine yang ada di dalam browser, si Ryan Dahl ini membuat supaya si V8 Engine-nya itu bisa keluar dari browser. Jadi dia bikin aplikasi pakai C untuk ngebungkus V8 engine ini supaya si V8 engine ini bisa dijalanin secara executable gitu ya. Jadi kalau di Windows itu kayak ada XC-nya lah gitu ya.
Jadi dia bisa nginstall V8-nya di sistem operasinya. Sehingga itu membuat JavaScript-nya bisa berjalan di aplikasi itu. Nah sekarang kalau misalkan udah kayak gini berarti JavaScript-nya udah gak lagi berada di dalam konteks browser.
Dia udah ada di tempat yang lebih luar, di sistem operasi. Kebayang ya, jadi sekarang yang bisa dilakukan oleh JavaScript, karena V8 Engine yang udah ada di luar, itu jadi macem-macem. Nah, aplikasi ini dinamakan Node.js.
Bisa ngapain aja nih Node.js karena udah diinstall di sistem operasi. Jadi dia bisa nge-access memory, dia bisa nge-access I.O. Bisa melakukan request secara network, mendapatkan respon gitu ya.
dia juga bisa mengakses file sistem kita. Jadi bisa nulis ke dalam file, bisa baca dari dalam file gitu. Dia juga bisa melakukan aktivitas network. Makanya bisa membuat sebuah web server.
Dan masih banyak lagi yang bisa dilakukan oleh JavaScript gara-gara V8 engine-nya diinstall di dalam sistem operasi, bukan lagi di browser gitu. Jadi ini keren banget pada saat itu teknologi yang dibuat oleh Si Ryan Dahl ini ya. Jadi sampai saat ini harusnya kita berterima kasih kepada Ryan Dahl. Udah bikinin Node.js. Ya walaupun sekarang dia udah gak lagi ada di dalam Node.js.
Dia udah keluar sejak tahun 2012 atau 2013. Bahkan sekarang malah bikin lagi teknologi baru. Yang namanya Deno. Ya tapi mungkin pembahasan mengenai itu bisa jadi satu video lain yang terpisah lah.
Ya jadi intinya awalnya dibikinnya sama Ryan Dahl. Dan sekarang Node.js nya udah dimiliki oleh sebuah foundation. Yang namanya OpenJS Foundation.
Oke, kita kembali lagi nih ke pemahamannya. Jadi kalau misalkan kita udah tau nih Node.js-nya sekarang adalah sebuah aplikasi yang bisa kita install di sistem operasi kita. Nah sekarang kita lihat karakteristik dari Node.js itu sendiri ya.
Jadi yang pertama, tadi seperti yang saya bilang, dia adalah sebuah aplikasi yang asinkronus dan event-driven. Karena memang JavaScript pada awalnya juga punya perilaku ini. Jadi dia membawa perilaku dari JavaScript-nya. Dan juga karena dia asinkronus, dia bisa membuat program yang non-blocking. Apa itu non-blocking?
Nanti kita lihat ya. Lalu selanjutnya Node.js ini single-threaded. Jadi artinya adalah dia hanya bisa mengerjakan satu hal, satu proses dalam satu waktu tertentu. Tapi highly scalable.
Kenapa? Karena Node.js itu cenderung cepat ya. Selanjutnya dia cross-platform. Jadi Node.js-nya bisa di-install di berbagai sistem operasi. Jadi kalian nggak perlu khawatir bikin script yang beda untuk tiap-tiap operasi, nggak perlu.
Cukup satu program, itu bisa dijalankan di sistem operasi manapun. Windows, Linux, atau macOS. Gak masalah Terus dia juga open source Dengan license-nya MIT Dan dia punya sebuah package manager Yang namanya NPM Atau Node Package Manager Ini keren banget ya teman-teman ya Adalah sebuah kumpulan atau tempat Buat nyimpen banyak sekali library Yang bisa kita tambahkan ke dalam aplikasi Node kita Ini seru nanti kita akan pelajari ini Secara sempurna spesifik di video terpisah.
Jadi ini karakteristik dari Node.js. Dan kalau misalkan kita ngomongin fitur utama, tadi kan kalian udah lihat ya di beberapa slide sebelumnya, kita tahu bahwa Node.js bisa akses memori, bisa akses file system. Nah itu merupakan fitur-fitur utama pada Node.js. Beberapa di antaranya tadi adalah kita bisa akses file system, kita bisa ngeakses filenya. Kalau tadi kan file system itu kayak direktorinya lah gitu ya.
Naruh file ke situ, ngambil file dari situ. Yang kedua itu buffer. Nah kalau buffer ini adalah ketika kita ngelola binary dari filenya. Jadi ini cocok banget ketika kalian mau bikin sebuah aplikasi yang bisa transfer file, streaming video. Karena dia bisa ngatur buffernya atau binary-nya.
Terus Node.js juga mampu melakukan fitur network ya. Jadi bisa mengirimkan request, menerima respon. Nah ini yang nantinya akan kita jadikan sebagai web server fitur HTTP atau HTTPS ini. Terus Node.js juga punya sesuatu yang namanya REPL. Jadi ini buat ngeksekusi program node kita lewat command line atau terminal.
REPL ini singkatan dari Read, Evaluate, Print, and Loop. Nanti ini juga akan kita cobain. Terus dia juga punya console. Jadi yang sebelumnya kalau kalian tahu di browser juga kan kita bisa akses console. Buat melihat javascriptnya.
Itu berjalan lewat V8 engine. Sekarang konsolnya juga bisa kita akses. Jadi sama saja nanti kita lihat kalau kita coba ketik console. Nah itu jalan juga di Node.js Sama seperti ketika kita lihat di browser Terus juga bisa melakukan kriptografi Ya jadi macem-macem ya Dan masih banyak lagi lah Ada kompresi juga menggunakan Zlib Kalau misalkan kalian pengen lihat lebih detail Ada di dokumentasinya ya Nanti kita pada saat nyobain fitur-fiturnya, ini pasti kita nggak lepas untuk baca dokumentasi dari website resminya. Ya, ini alamatnya kalau kalian penasaran.
Jadi itu fitur utamanya teman-teman, masih banyak yang lain. Ini yang saya tulis yang kayaknya sering dipakai aja. Nah, selanjutnya nih, pasti ada juga dari kalian yang bertanya atau bahkan pengen tahu ya perbandingan antara Node.js dan PHP.
Misalnya, apakah kita udah punya aplikasi backend yang berjalan di web server yaitu PHP? Apa bedanya sama Node.js? Oke, mungkin pertanyaan itu... Kalau kalian ada yang penasaran ya saya jawab pertama-tama ini beda ya.
Jadi yang satu runtime, yang satu bahasa pemegaman. Cuman kalau orang nanya seperti ini mungkin maksudnya adalah apa bedanya kalau kita pakai javascript yang berjalan di dalam node sama php yang berjalan di web server gitu ya. Kan dua-duanya sama-sama untuk membuat aplikasi backend. Jadi itu saya jelaskan dulu di awal ya.
Ini akan bukan membandingkan sebetulnya tapi melihat perbedaannya seperti apa. Jadi banyak banget yang nanya ke saya, Pak lebih baik belajar Node.js atau belajar php? Pak kalau untuk backend bagus mana? Pakai Node.js atau pakai PHP ini?
Kita coba lihat faktanya ya. Yang pertama kita lihat dulu dari tahun dibuatnya. PHP itu kan udah lama ya.
Kita tahu dibuat tahun 1994. Node.js itu dibuat tahun 2009. Jadi pasti aplikasinya lebih banyak yang menggunakan PHP. Saya rasa komunitasnya juga lebih besar ya. PHP karena udah lama juga. Dan Node.js ini lebih baru gitu. Yang kedua engine-nya.
Kalau PHP itu pakai engine yang namanya Zen Engine. Sedangkan Node.js tadi kita tahu dia pakai Google V8 atau V8 Engine. Lalu untuk eksekusi kodenya. Nah ini yang penting nih.
PHP itu dia multi-thread dan sinkronus. Sehingga kodenya itu disebutnya blocking. Jadi pada saat dia mengerjakan satu hal. Dia nunggu dulu sampai selesai.
Baru dia bisa mengerjakan. proses berikutnya. Tapi dia multi-thread.
Jadi yang melayani pekerjaannya itu lebih dari satu. Sedangkan Node.js itu single-thread dan asinkronos. Yang melayaninya satu, tapi dia nggak perlu nunggu dulu sampai selesai satu proses. Dia bisa ke proses berikutnya. Nanti ini kita lihat lah.
Dan selanjutnya adalah mengenai web server-nya. Nah ini, kalau PHP, web server-nya itu bisa menggunakan Apache atau IIS yang ada di Windows. Nah sedangkan Node.js itu berjalan di runtime sendiri Jadi kita harus nulisin dulu beberapa baris script untuk ngejalanin web servernya Nah ini yang membuat deployment atau proses penyimpanan aplikasi kita ke web server Untuk Node.js itu sedikit berbeda Karena kalau PHP kan sekarang kita tahu dimana-mana web hosting itu menggunakan Apache Jadi kita dapat dengan mudah menyewa web hosting yang udah ada Apache-nya Kita tinggal nyimpen aplikasi web kita menggunakan PHP ke dalam web hostingnya Banyak juga terus murah-murah juga Nah sedangkan Node.js itu nggak bisa seperti itu Nggak bisa kita misalnya menyimpan langsung ke sebuah folder di web hostingnya Terus aplikasi kita otomatis jalan Jadi kita harus setup sendiri Nah inilah yang membuat deployment di Node.js itu nggak semudah PHP Selanjutnya itu package manager Nah di PHP juga punya sebuah package manager yang namanya composer Sedangkan di Node.js itu ada NPM atau Node Package Manager Dan NPM itu terkenal cepat banget ya NPM Tapi untuk Composer sekarang udah ada Composer versi 2 Yang gak kalah cepet gitu ya Jadi sekarang package managernya sama-sama keren lah Jadi ini beberapa fakta mengenai PHP dan Node.js Selanjutnya kita lihat ya Kalian nanti bikin Node.js itu cocoknya untuk aplikasi seperti apa Yang pertama, dia cocok untuk bikin dynamic single page application.
Aplikasi yang hanya satu halaman, tapi isinya bisa secara dinamis berubah-ubah. Jadi nggak pindah-pindah halaman, hanya menggunakan satu halaman aja. Cocok banget untuk bikin real-time app. Misalkan kalian bikin chat, bikin game misalnya, yang multiplayer, yang butuh pertukaran data secara real-time.
Ini Node.js cocok banget. Terus bikin API. Ya misalkan kalian mau bikin REST API.
Sehingga orang lain itu bisa request data ke... aplikasi kalian. Ini cocok banget Node.js untuk bikin API. Mau bikin aplikasi streaming, streaming video, streaming lagu, cocok banget.
Mau bikin microservice, jadi satu aplikasi besar, di dalamnya banyak aplikasi-aplikasi, cocok banget. Mau bikin command line tool, Node.js juga cocok banget untuk ini. Atau kalian mau bikin aplikasi yang stack-nya, teknologinya itu menggunakan misalnya MongoDB, Express, React, Node.
Ini kan pasti sering kalian denger ya, Mern, Min, Maven. Itu M-nya, MongoDB, E nya Express Framework Node gitu ya. R nya React N nya Node. Kalau yang Min A nya itu Angular.
Kalau yang Maven V nya itu Vue. Nah ini jadi kalian lihat kalau misalkan perusahaan kalian proyek kalian menggunakan stack teknologi ini, ya pasti Node.js ini cocok banget untuk kalian belajari. Jadi itu ya teman-teman ya Lalu selanjutnya nih.
Kalau kalian udah gak sabar pengen belajar Node.js, kira-kira pemahaman apa dulu yang harus kalian miliki. Ya jadi saran saya kalian tau dulu... Apa sih prerequisite-nya?
Ilmu apa yang harus kalian pahami dulu? Yang pertama, pasti kalian harus pahami JavaScript dasar. Mau nggak mau ya, jadi jangan dulu loncat ke Node.js kalau misalkan kalian belum tahu konsep-konsep programming menggunakan JavaScript.
Gimana sih bikin variable di JavaScript? Gimana sih bikin looping, array, object, menggunakan JavaScript itu kayak apa? Nah, ini kalian harus pahami dulu. Selanjutnya, kalian harus paham mengenai modern JavaScript-nya.
Karena ini kepake banget. Karena di Node ini nantinya kita akan pake... Contohnya nih, arrow function Kita akan pakai konsep destructuring Kita akan pakai konsep asinkronus Nah ini terutama ya, yang paling penting menurut saya Kalian harus paham apa itu callback Apa itu promise, apa itu async await Nah ini harus kalian pahami Supaya nanti kalian belajarnya makin lancar lagi Nah, kebetulan dua Topik ini udah ada di channel Web Programming Unpassed, kalian bisa ikutin aja Dasar pemrograman menggunakan javascript Itu saya punya sekitar 40an video Dan ada javascript lanjutan Kalian boleh ngeskip playlist javascript DOM ya, karena sekali lagi Kita udah gak ada DOM, konteks kita Udah bukan lagi web browser DOM hanya ada di browser, kalian skip Ke javascript lanjutan, ya kenapa kita Udah gak lagi pake variable, misalnya Pakainya let dan const Tadi arrow function, higher order function dan lain sebagainya.
Jadi silakan diperkuat dulu fondasinya, supaya sekali lagi ngikutin Node.js ini lancar gitu ya. Selanjutnya, apa yang harus kalian siapkan secara sistem operasi atau software? Ini sih sama aja ya.
Yang pertama, Node ini bisa diinstall dimanapun. Kalian pakai Windows, pakai Linux, pakai macOS, nggak masalah. Nanti saya akan kasih lihat cara installnya di berbagai platform. Terus juga jelas kalian harus punya kode editor. Nanti yang akan kita gunakan di seri ini adalah Visual Studio Code.
Tapi sebetulnya kalian boleh pakai kode editor Kesayangan kalian masing-masing Terus kalian harus punya terminal Kalau kalian pakai window Itu kan udah ada terminal bawaan ya Cuman saran saya Coba kalian install git Karena kalau kalian install git Itu kalian akan dikasih git bash Kenapa install git bash? Karena nanti saya akan tunjukannya menggunakan sistem operasi macOS Supaya perintah-perintahnya bisa sama Saya sarankan kalian gunakan git bash Supaya perintah-perintah unixnya bisa sama Oke teman-teman, jadi itu yang harus kalian siapin secara materi dan secara software untuk bisa ngikutin playlist ini. Ya, jadi sampai sini dulu video pengantarnya teman-teman.
Mudah-mudahan semangat nih ya ngikutin serinya. Dan kalau kalian nggak sabar untuk nyobain node-nya, ditahan dulu ya teman-teman ya. Karena di video berikutnya, kita masih akan membahas mengenai arsitektur dari Node.js. Supaya nanti kalian bisa lebih paham lagi ketika kalian ngodingnya, kenapa kok saya ngodingnya seperti ini.
Nanti kita lihat dulu, karena... perilaku dari node.js-nya seperti ini. Mudah-mudahan nanti semakin masuk akal ketika kalian masuk ke nge-noding-nya. Jadi ditahan dulu, sabar dulu buat kalian yang udah pengen nge-noding node.js. Ya, jadi mungkin itu aja untuk video kali ini.
Terima kasih teman-teman sudah menonton videonya. Jangan lupa kalau kalian belum subscribe channel web programming Unpas ini Silahkan di subscribe dulu Supaya kalian gak ketinggalan ketika ada video baru yang muncul Silahkan di follow juga social media saya Kalau kalian pengen tau kegiatan di balik layar dari channel web programming Unpas Dan juga kalian bisa gabung di channel discordnya Supaya kita bisa ngobrol dan berinteraksi lebih banyak lagi Ya jadi itu aja Terima kasih teman-teman sudah menyaksikan videonya Saya Sandika Gali pamit Dan seperti biasa Jangan lupa Titik koma