Apa beda dari javascript dan node js?

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    1. NodeJS : 
    NodeJS is a cross-platform and opensource Javascript runtime environment that allows the javascript to be run on the server-side. Nodejs allows Javascript code to run outside the browser. Nodejs comes with a lot of modules and mostly used in web development. 

    2. JavaScript : 
    Javascript is a Scripting language. It is mostly abbreviated as JS. It can be said that Javascript is the updated version of the ECMA script. Javascript is a high-level programming language that uses the concept of Oops but it is based on prototype inheritance. 

    Difference between Nodejs and JavaScript : 

    S.NoJavascriptNodeJS
    1.

    Javascript is a programming language that is used for writing scripts on the website. 
     

    NodeJS is a Javascript runtime environment.
    2. Javascript can only be run in the browsers. We can run Javascript outside the browser with the help of NodeJS.
    3. It is basically used on the client-side. It is mostly used on the server-side.
    4. Javascript is capable enough to add HTML and play with the DOM. 
     
    Nodejs does not have capability to add HTML tags.
    5. Javascript can run in any browser engine as like JS core in safari and Spidermonkey in Firefox. 
     
    V8 is the Javascript engine inside of node.js that parses and runs Javascript. 
    6. Javascript is used in frontend development. Nodejs is used in server-side development.
    7. Some of the javascript frameworks are RamdaJS, TypedJS, etc. 
     
    Some of the Nodejs modules are Lodash, express etc. These modules are to be imported from npm. 
     
    8. It is the upgraded version of ECMA script that uses Chrome’s V8 engine written in C++. 
     
    Nodejs is written in C, C++ 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 Js 

    Node 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.

    Apa beda dari javascript dan node js?

    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 Js 

    Penemuan 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.

    Apa beda dari javascript dan node js?

    Dikutip dari laman resmi Node Js, berikut adalah milestone perkembangan Node Js sejak diciptakan.

    2009

    1. Node Js diciptakan dan diperkenalkan untuk kali pertama.
    2. Node Package Manager (NPM) diluncurkan untuk kali pertama. NPM merupakan online repository yang memungkinkan setiap penggunanya (pengembang JavaScript) membagikan tools danmelakukan instalasi dan mengelola berbagai modul.

    2010

    1. Express diluncurkan untuk kali pertama. Express adalah framework aplikasi web Node Js yang fleksibel dan minimal yang menyediakan set fitur yang powerful untuk website maupun mobile app development.
    2. Socket.io diluncurkan untuk kali pertama. Socket io adalah library JavaScript untuk aplikasi web yang bersifat realtime.

    2011

    1. NPM versi 1.0 dirilis.
    2. Perusahaan besar seperti LinkedIn dan Uber mulai mengadopsi Node Js.
    3. Hapi diluncurkan untuk kali pertama. Hapi adalah framework yang ditulis dalam JavaScript dan digunakan untuk membangun aplikasi serta layanan seperti yang dilakukan oleh Express.

    2012

    Adopsi Node Js semakin meluas.

    2013

    1. Platform untuk blogging bernama Ghost menggunakan Node Js.
    2. Koa diluncurkan untuk kali pertama. Koa adalah framework web baru yang didesain untuk menghasilkan fondasi aplikasi web dan API yang lebih ekspresif, kuat, dan kecil.

    2014

    io.js mulai digagas dan menjadi fork Node Js yang besar. Fork merupakan istilah untuk proses modifikasi kode pemrograman yang bersifat open source.

    2015

    1. Node.js Foundation diresmikan.
    2. io.js kembali bersatu dengan Node Js.
    3. NPM memperkenalkan modul-modul yang lebih privat.
    4. Node Js versi 4 dirilis meski versi 1, 2, dan 3-nya tidak pernah dirilis. 

    2016

    1. Muncul isu yang disebut leftpad incident, yakni banyaknya pengguna NPM yang mengalami disrupsi saat package yang menjadi tumpuan project tidak dapat di-publish.
    2. Yarn dirilis untuk kali pertama. Yarn adalah dependency manager untuk JavaScript yang dibuat oleh Facebook, Google, Exponent, dan Tilde.
    3. Node Js versi 6 dirilis. 

    2017

    1. Perkembangan NPM fokus pada sisi keamanan.
    2. NPM diunduh sebanyak tiga juta setiap minggunya.
    3. Node Js versi 8 dirilis.
    4. V8 memperkenalkan Node JS dalam tes yang dilakukannya sehingga membuat Node Js menjadi target mesin JavaScript.

    2018

    Node Js versi 8 dirilis.

    2019

    1. Node Js versi 12 dirilis.
    2. Node Js versi 13 dirilis.

    2020

    Node Js versi 14 dirilis.

    Cara Kerja Node Js

    Dua konsep utama dalam cara kerja Node Js adalah non-blocking dan single thread. Apa maksudnya?

    Apa beda dari javascript dan node js?

    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 Js

    Dua komponen utama dalam Node Js adalah V8 dan Libuv Library.

    Apa beda dari javascript dan node js?

    Adapun design pattern yang digunakannya adalah object pool dan facade.

    V8

    V8 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.

    • Compiler         : mengubah kode dalam bahasa JavaScript menjadi kode dalam bahasa pemrograman lainnya
    • Optimizer : menciptakan abstract syntax tree yang nantinya akan diubah menjadi static single assignment
    • Garbage collector : memindahkan objek lama ke penyimpanan lama sehingga kinerja Node Js tetap ringan

    Libuv Library

    Libuv 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 JavaScript 

    Kehadiran 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.

    Apa beda dari javascript dan node js?

    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 JavaScript

    Ada 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 JavaScript

    JavaScript 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 PHP

    Perbandingan 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.

    Apa beda dari javascript dan node js?

    Sepintas Tentang PHP

    PHP 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 Js

    Popularitas Node Js selama sekitar satu dekade terakhir bukannya tanpa alasan. Inovasi Ryan Dahl tersebut memberi alternatif praktis bagi para pengembang untuk melakukan tugasnya.

    Apa beda dari javascript dan node js?

    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

    1. Node Js memiliki karakter non-blocking alias tidak memerlukan output dari proses sebelumnya untuk dapat menjalankan proses lainnya. Hal ini akan berdampak pada tingginya tingkat efisiensi.
    2. Node Js juga memiliki karakter single thread alias hanya akan mengalokasikan thread pada proses yang sedang berlangsung. Hal ini akan membuat kinerja proses lebih ringan.
    3. Node Js bersifat open source yang berarti semua orang dapat melihat struktur kode dari program yang dibuat. Selain itu, siapa pun juga dapat memberi kontribusi untuk mengembangkan program tersebut.
    4. Proses eksekusi kode pada Node Js terbilang cepat berkat dukungan engine V8 yang digunakan.
    5. Khususnya developer baru cukup mempelajari JavaScript semaksimal mungkin untuk dapat melakukan pekerjaan frontend dan backend sekaligus.
    6. Penulisan kode di Node Js sangat mudah dan kerap dinilai oleh para pengembang seperti membaca bahasa manusia.
    7. Terdapat banyak framework client-side populer yang ditulis dalam JavaScript karena bahasa pemrograman tersebut merupakan bahasa utama browser modern. Dengan menggunakan Node js pada server-side, developer akan mendapat seluruh manfaat dari satu bahasa scripting di seluruh stack development. 
    8. Adanya library dan paket pihak ketiga yang terus berkembang dan dapat diakses secara mudah melalui NPM dan command lines tools.
    9. Mendapat dukungan secara native di banyak API dan layanan baru seperti AWS Lambda.
    10. Adanya full stack dari HTTP server hingga templating engine.
    11. Node Js memberi ruang bebas bagi developer untuk membangun aplikasi dengan cara sendiri karena benar-benar dibuat dari nol. 

    Kekurangan Node Js

    1. API Node Js cenderung mengubah kompatibilitas dari satu update ke update lainnya sehingga diperlukan codebase berkala untuk menyesuaikan dengan versi paling anyar.
    2. Ada banyak cara yang dapat dilakukan untuk membangun server menggunakan paket Node Js dan NPM. Hal ini nyatanya juga cukup membuat developer baru mengalami kesulitan dalam memilih.
    3. Paket NPM dapat membuat overload pengkodean, tidak aman, dan sulit menemukan paket mana yang bagus karena terlalu banyaknya pilihan.
    4. Adanya beberapa kendala terkait performansi seperti menjaga dependensi tetap up to date, sedikitnya library yang dipelihara dan tidak buggy, dan sebagainya.
    5. Tidak cocok untuk server yang bergantung pada CPU consuming code berat.
    6. Node Js tidak memakai seluruh inti sistem sehingga developer perlu menulis logikanya sendiri untuk menggunakan prosesor multi-core.
    7. Waktu pengembangan yang dibutuhkan lebih banyak karena developer menulis semuanya dari nol.
    8. Belum cocok untuk pemrograman yang membutuhkan perhitungan berat karena akan berdampak pada penurunan kinerja meski cocok untuk diimplementasikan pada aplikasi yang kompleks.

    Kesimpulan

    Node 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).