View Discussion Show
Improve Article Save Article View Discussion Improve Article Save Article 1. NodeJS
: 2. JavaScript : Difference between Nodejs and JavaScript :
Node Js adalah istilah yang makin populer selama beberapa waktu terakhir dalam bidang pengembangan website dan aplikasi. Runtime ini memungkinkan bahasa pemrograman skrip JavaScript tidak lagi terbatas di dalam browser, tetapi juga di luar browser. Dengan begitu, developerpun sekarang dapat melakukan pemrograman berbasis JavaScript untuk sisi frontendmaupun backend. Sepintas Tentang Node JsNode Js adalah perangkat lunak yang diciptakan secara khusus untuk membantu pengembangan aplikasi berbasis web. Namun, yang perlu dipahami, Node Js bukanlah sebuah bahasa pemrograman baru, melainkan runtime atau yang juga disebut interpreter JavaScript. Adapun yang dimaksud dengan interpreter adalah perangkat lunak yang memiliki fungsi untuk melakukan proses eksekusi sejumlah instruksi yang sudah ditulis dalam sebuah bahasa pemrograman. Untuk lebih jelasnya, perhatikan deskripsi berikut. Dalam melakukan sebuah website development, developer akan membutuhkan beberapa bahasa pemrograman. Hal ini karena keterbatasan masing-masing bahasa pemrograman yang dapat bekerja di sisi frontendmaupun backendsaja. Seperti contoh, sebagian besar developer menggunakan Javascript dan HTML untuk melakukan proses di sisi frontend dan PHP untuk melakukan proses di sisi backend. Namun, kini developer dapat hanya menggunakan satu bahasa saja untuk melakukan aktivitas frontend dan backend, yakni JavaScript. Hal ini sangat mempermudah developer dalam urusan environment-nya. Pasalnya jika menggunakan PHP, perlu juga melakukan instalasi apache sebagai web server-nya. Sementara dengan NodeJs, tidak perlu ada perangkat tambahan lain yang diperlukan. Penggunaan Node Js pun perlu dilakukan secara selektif sesuai dengan karakter, keuntungan, dan kelebihannya. Setidaknya, beberapa kegiatan pemrograman yang dianjurkan menggunakan Node Js adalah aplikasi single page, aplikasi yang menerapkan Application Program Interface (API) JavaScript Object Notation (JSON), dan aplikasi yang melakukan streaming data. Sebagai gambaran, beberapa situs besar yang memanfaatkan platform ini antara lain Linkedin, Medium, dan Netflix. Sejarah Node JsPenemuan Node Js tidaklah terlalu lama, yakni pada tahun 2009. Orang yang menciptakan Node Js adalah Ryan Dahl, yakni seorang developer ternama dari Joyent. Joyent sendiri merupakan perusahaan perangkat lunak dan layanan berbasis cloud yang berpusat di San Francisco, California, Amerika Serikat. Kemudian per Juni 2016, Joyent diakuisisi oleh Samsung Electronics. Ryan Dahl memiliki ketertarikan sangat kuat pada penggunaan bahasa pemrograman single thread terutama di sisi server. JavaScript yang kala itu masih hanya dapat berjalan di browser memunculkan ide di benak Ryan Dahl untuk melakukan sebaliknya—membuat engine yang ada di dalam browser dikeluarkan sehingga mengeksekusi JavaScript dapat dilakukan di luar browser. Bahasa pemrograman JavaScript dipilih sebagai Node setelah Ryan Dahl sebelumnya mencoba pula Haskell, LUA, dan C. Node Js pun akhirnya diciptakan dan diperkenalkan kali pertama untuk pengguna sistem operasi Linux. Node Js pun tentu mengalami perkembangan hingga kini. Dikutip dari laman resmi Node Js, berikut adalah milestone perkembangan Node Js sejak diciptakan. 2009
2010
2011
2012Adopsi Node Js semakin meluas. 2013
2014io.js mulai digagas dan menjadi fork Node Js yang besar. Fork merupakan istilah untuk proses modifikasi kode pemrograman yang bersifat open source. 2015
2016
2017
2018Node Js versi 8 dirilis. 2019
2020Node Js versi 14 dirilis. Cara Kerja Node JsDua konsep utama dalam cara kerja Node Js adalah non-blocking dan single thread. Apa maksudnya? Sebagai ilustrasi, sebut saja Program A dan Program B sebagai contoh. Program A merupakan program yang bekerja dengan konsep blocking. Dalam melakukan fungsinya, algoritma A terdiri dari beberapa proses. Adanya sifat blocking tersebut menjadikan algoritma Program A tidak akan lanjut ke tahap berikutnya jika masih ada satu saja proses yang belum terselesaikan. Sementara itu, Program B merupakan program yang bekerja dengan konsep non-blocking. Asumsikan bahwa algoritma pada Program A dan Program B adalah sama. Oleh karena Program B memiliki sifat yang non-blocking, proses pengerjaan instruksi di Program B tetap dapat terjadi meski ada proses sebelumnya yang belum selesai. Dalam kata lain, Program B tidak memerlukan output dari proses sebelumnya untuk melakukan pekerjaannya. Lantas, bagaimana dengan konsep single thread dan multi thread? Seperti misal, Program B juga mengadopsi konsep single thread. Artinya Program B hanya mengalokasikan thread pada proses yang aktif. Sebaliknya, Program A yang mengadopsi konsep multi thread justru akan memberikan thread kepada seluruh proses, baik yang aktif maupun tidak. Berdasarkan ilustrasi di atas, dapat dilihat bahwa Program B yang memiliki sifat non-blocking dan single thread dapat bekerja lebih efisien tanpa harus menggunakan resource yang besar dibandingkan program A. Adapun yang dimaksud dengan thread adalah sekumpulan instruksi yang dieksekusi secara independen. Arsitektur Node JsDua komponen utama dalam Node Js adalah V8 dan Libuv Library. Adapun design pattern yang digunakannya adalah object pool dan facade. V8V8 merupakan istilah yang tidak asing bagi para pengembang JavaScript independen maupun yang berkecimpung dalam software house. V8 adalah sebuah engine milik Google yang berfungsi sebagai compiler dan dibuat menggunakan bahasa pemrograman C++. Dengan demikian, input berupa kode JavaScript dapat dikompilasi menjadi kode dalam tingkat assembly. Engine V8 terdiri atas tiga komponen yang masing-masingnya memiliki fungsi berbeda seperti berikut.
Libuv LibraryLibuv merupakan library C++ multiplatform yang berfungsi untuk mengelola operasi asynchronous I/O di Node Js dan main event loop. Libuv juga memiliki thread pool reserve yang berfungsi untuk menangani thread tiap operasi I/O. Adapun penggunaan Libuv yang dulunya dikembangkan untuk Node, kini juga dapat digunakan untuk Luvit, Julia, pyuv, dan lain-lain. Design Pattern Seperti yang disebutkan sebelumnya, design pattern Node Js adalah object pool dan facade. Object pool merupakan design pattern yang berisi kumpulan objek yang dapat dimanfaatkan untuk task tertentu, sedangkan façade merupakan design pattern yang memberi tampilan antarmuka (interface) untuk body dalam kode. Perbedaan Node Js dengan JavaScriptKehadiran Node Js dan JavaScript dalam software developmentmaupun beberapa pengembangan produk digital kini tak lagi terpisahkan. Keduanya sama-sama diperlukan untuk saling melengkapi sehingga pengerjaan project menjadi lebih praktis. Node Js dan JavaScript sesungguhnya bukanlah hal yang dapat dibandingkan antara satu dan lainnya secara apple to apple. Pasalnya, sebagaimana yang telah dijelaskan sebelumnya, Node Js bukanlah bahasa pemrograman, melainkan runtime alias interpreter JavaScript. Dalam kata lain, Node Js adalah pendukung JavaScript agar dapat lebih optimal digunakan terutama untuk keperluan yang lebih dari sekadar pengerjaan frontend. Sepintas Tentang JavaScriptAda dua istilah dasar yang harus dipahami: programming dan scripting. Programming adalah aktivitas pengodean (coding) suatu instruksi untuk memerintah komputer sehingga dapat menjalankan fungsi tertentu sesuai dengan algoritma yang telah ditentukan. Sementara itu, scripting adalah ‘penyisipan’ beberapa kode untuk fitur tambahan pada sebuah program yang sudah ada. Terkait dengan hal ini, JavaScript merupakan bahasa pemrograman yang dipergunakan untuk kebutuhan scripting. Kemunculan JavaScript kali pertama pada tahun 1995 pun dilatarbelakangi oleh adanya kebutuhan untuk membuat sebuah bahasa scripting pada browser yang mirip seperti Java (perlu diingat bahwa Java adalah bahasa pemrograman murni, bukan scripting). Node Js Melengkapi JavaScriptJavaScript pun pada awalnya digunakan untuk menuliskan fungsi yang disisipkan ke dalam HTML—baik yang diletakkan secara langsung maupun dibuat dalam berkas terpisah. Pemanfaatan ini akan menghasilkan tampilan web (frontend) yang lebih atraktif dan interaktif sehingga meningkatkan engagement dengan pengguna. Penggunaan JavaScript sebagai bahasa pemrograman scripting pun awalnya masih dianggap tidak terlalu penting. Pasalnya, kemampuan JavaScript sendiri masih terbilang cukup terbatas. Developer hanya dapat memanfaatkan browser language ini untuk kepentingan frontend, sedangkan backend memerlukan bahasa pemrograman dan pendukung lainnya. Namun, sejak kehadiran Node Js, penilaian tersebut berubah. Node Js memungkinkan proses backend juga dapat dilakukan menggunakan JavaScript sehingga mempermudah developeruntuk menjalankan tugasnya. Kini tanpa menggunakan program seperti Apache atau NginX, developer dapat menjalankan server web berbekal JavaScript dan Node Js. Perbandingan Node Js dan PHPPerbandingan lain yang kerap dilakukan adalah antara Node Js dan PHP. Sama seperti JavaScript, sebenarnya komparasi antara Node Js dan PHP tidak dapat dilakukan apalagi secara apple to apple. Pasalnya, PHP (Hypertext Preprocessor) merupakan bahasa pemrograman untuk scripting yang bekerja di sisi web server alias backend. Sepintas Tentang PHPPHP dibuat oleh Rasmus Lerdorf pada tahun 1995. Kala itu, PHP merupakan sekumpulan script yang dipakai untuk melakukan pengolahan data formulir dari web. Rasmus Lerdorf lantas merilis source code tersebut untuk umum (menjadi terbuka) sehingga banyak orang yang kemudian ikut mengembangkan PHP. Versi 2.0 dirilis pada November 1997. Interpreter versi ini pun telah dibuat menggunakan bahasa C. Perilisan tersebut juga turut menyertakan beberapa modul ekstensi. Adapun pada tahun yang sama, sebuah perusahaan perangkat lunak bernama Zend menulis ulang interpreter PHP dan berhasil membuatnya jadi lebih baik, cepat, dan bersih. Di tahun berikutnya, Zend kembali merilis sebuah interpreter baru untuk PHP sekaligus merilisnya secara resmi sebagai versi 3.0. Perkembangan PHP pun terus terjadi. Versi selanjutnya, 4.0, yang dirilis pada 1999 pun banyak dipakai secara meluas. Alasannya tak lain adalah karena PHP versi 4.0 mampu membangun aplikasi web yang kompleks dengan tetap menghasilkan stabilitas dan kecepatan tinggi. Tak kalah, versi 5.0 yang dirilis pada 2004 juga cukup ‘meledak’ lantaran ikut diimplementasikannya pemrograman berbasis objek pada PHP—mengikuti tren bahasa pemrograman serupa. Hingga kini, PHP masih menjadi salah satu bahasa pemrograman untuk ranah backend yang banyak digunakan. Adapun versi PHP paling baru dan stabil saat ini adalah versi 7.0.16 dan 7.1.2. Node Js vs PHP Faktanya hingga kini PHP masih mendominasi ranah backend. Beberapa keunggulannya antara lain adalah basis code yang kuat dan mencakup platform populer untuk membangun situs web, lebih mudah diatur menggunakan tools non-developer, banyaknya aplikasi PHP yang ditawarkan oleh platform basic hosting yang akan terpasang hanya dalam satu klik, dan solusi server side yang sangat bagus karena memang dirancang khusus untuk web. Di sisi lain, beberapa developer dan konsultan ITjuga menilai bahwa Node Js lebih baik dibandingkan PHP karena adanya karakter single thread pada Node Js. Maka dari itu, penilaian ini tidak dapat dijadikan acuan mutlak untuk memutuskan mana yang lebih baik. Developer haruslah memilih mana yang paling sesuai dengan kebutuhannya. Kelebihan dan Kekurangan Node JsPopularitas Node Js selama sekitar satu dekade terakhir bukannya tanpa alasan. Inovasi Ryan Dahl tersebut memberi alternatif praktis bagi para pengembang untuk melakukan tugasnya. Kendati begitu, Node Js juga tidaklah sempurna. Ada beberapa kekurangannya yang juga menjadi pertimbangan tersendiri bagi beberapa developer untuk menggunakannya. Selengkapnya, berikut adalah kelebihan dan kekurangan Node Js. Kelebihan Node Js
Kekurangan Node Js
KesimpulanNode Js adalah solusi cerdas pengembangan apps. Pasalnya, inovasi ini memungkinkan developer hanya perlu menguasai satu bahasa pemrograman saja untuk mengerjakan urusan frontenddan backend. Pengembangan di kedua sisi pun dapat dikembangkan secara produktif tanpa harus memusingkan perbedaan sintaks di sisi client maupun server. Node Js bukanlah sebuah bahasa pemrograman, melainkan runtime atau interpreter JavaScript. Karakternya yang single thread dan non-blocking menjadi faktor utama mengapa Node Js semakin banyak digunakan untuk pengembangan di sisi backend. Walau begitu, faktanya, Node Js masih belum terlalu mendominasi area backend (meski mengalami kenaikan jumlah penggunaan) dibandingkan beberapa bahasa pemrograman khusus backend yang sudah ada lebih dulu seperti PHP. Namun, terlepas dari hal tersebut, Node Js sebagai pemain baru tentu menawarkan berbagai keunggulan. Beberapa kelebihan Node Js adalah kemudahannya dalam dipelajari, proses eksekusi yang cepat, library yang terus dikembangkan, dan lain-lain. Tentunya, ada pula beberapa kelemahan Node Js yang perlu dipertimbangkan pula. seperti lamanya waktu pengembangan yang diperlukan, ketidakstabilan API, tidak cocok untuk program yang heavy computing, dan beberapa lainnya. Apakah Node.js dan JavaScript sama?Node.js adalah runtime environment untuk JavaScript yang bersifat open-source dan cross-platform. Dengan Node.js kita dapat menjalankan kode JavaScript di mana pun, tidak hanya terbatas pada lingkungan browser. Node.js menjalankan V8 JavaScript engine (yang juga merupakan inti dari Google Chrome) di luar browser.
Node.js untuk apa?Kesimpulan. Jadi, pengertian Node.js adalah runtime environment JavaScript open-source yang bisa digunakan lintas platform. Fungsinya adalah untuk mengembangkan aplikasi jaringan dan server-side, yang bisa disesuaikan dengan kebutuhan. Node JS menggunakan engine eksekusi JavaScript V8 Chrome.
Apakah Node.js itu framework?Node.js framework atau Node merupakan perangkat lunak berbasis JavaScript yang bersifat open-source, dapat dijalankan dalam lingkungan lintas platform untuk mengeksekusi kode JavaScript di luar browser. Secara tradisional, browser menyediakan lingkungan runtime untuk kode JS.
Bagaimana Node.js bekerja?Bagaimana Node.js Bekerja? Berbeda dengan bahasa pemrograman sisi server pada umumnya yang bersifat blocking, Node.js bersifat non-blocking, sebagaimana halnya JavaScript bekerja. Node.js berjalan dengan basis event (event-driven).
|