2. Sejarah Pribadi
Belajar Java (J2SE) – 2007
Belajar PHP – 2009
Belajar nodeJS – 2013
Belajar Go - 2016
3. NodeJS
Ryan Dhal pada tahun 2009
Javascript bisa digunakan sebagai bahasa pemrograman di sisi server seperti
halnya PHP, ASP, C#, Ruby dll dengan kata lain “Node.js”
Menggunakan engine v8 yang dibangun oleh Google dan digunakan pada
browser Google Chrome
18. Cons – “He said”
Node.js doesn’t provide scalability. One CPU is not going to be enough; the
platform provides no ability to scale out to take advantage of the multiple
cores commonly present in today’s server-class hardware.
Dealing with relational database is a pain if you are using Node.
Every time using a callback end up with tons of nested callbacks.
Without diving in depth of JavaScript if someone starts Node, he may face
conceptual problem.
Node.js is not suited for CPU-intensive tasks. It is suited for I/O stuff only
(like web servers).
19. “Node.js adalah sebuah solusi untuk membuat
sebuat aplikasi jaringan yang bisa menangani jumlah
koneksi yang banyak, melakukan pertukaran data
yang banyak, dan melakukan komunikasi client-
server secara real-time”
Sebelum proses I/O selesai maka selama beberapa detik atau menit tersebut state dari prosesmysql_query() bisa dibilang idle atau tidak melakukan apa-apa.
Lalu jika proses I/O di blok bagaimana jika ada request lagi dari user ? apa yang akan dilakukan oleh server untuk menangani request ini ?..penyelesaiannya yaitu dengan memakai pendekatan prosesmultithread. Melalui pendekatan ini tiap koneksi yang terjadi akan ditangani oleh thread. Thread disini bisa dikatakan sebagai task yang dijalankan oleh prosesor komputer.
Sepertinya permasalahan I/O yang terblok terselesaikan dengan pendekatan metode ini tetapi dengan bertambahnya koneksi yang terjadi maka thread akan semakin banyak sehingga prosesor akan semakin terbebani, belum lagi untuk switching antar thread menyebabkan konsumsi memory (RAM) komputer yang cukup besar.
fungsi readFile() akan membaca membaca isi dari file resource.json secara asinkron yang artinya proses eksekusi program tidak akan menunggu pembacaan file resource.json sampai selesai tetapi program akan tetap menjalankan kode Javascript selanjutnya yaitu console.log('Selanjutnya...'). Sekarng lihat apa yang terjadi jika kode javascript diatas dijalankan
npm merupakan package manager untuk Node.js dan untuk nama npm bukanlah suatu singkatan. Hanya dalam waktu 2 tahun sejak di releasenya Node.js ke publik jumlah modul melesat jauh bahkan hampir menyamai modul java ataupun ruby gems.