Dalam beberapa kesempatan saya sering ditanya tentang hal ini. Manakah yang lebih baik dipelajari antara PHP dengan Node.js? Apakah Node.js akan segera menggantikan PHP? Benarkah PHP akan mati dalam waktu dekat?
Untuk menjawab pertanyaan seperti ini, kita akan bandingkan beberapa aspek antara PHP dengan Node.js. Artikel ini lebih ditujukan untuk programmer pemula yang bingung mau belajar dan belum pernah membuat kode program dengan PHP maupun Node.js. Oleh karena itu bahasannya saya batasi agar tidak akan terlalu teknis supaya mudah dipahami.
Sebagai catatan, saya lebih berpengalaman dengan PHP daripada Node.js. Untuk Node.js juga baru sekedar "perkenalan". Silahkan koreksi jika ada penyampaian yang salah, terutama yang berkaitan dengan bahasan Node.js.
Pengertian PHP dan Node.js
PHP dan Node.js sering dibandingkan karena sama-sama berperan di sisi server (back-end). Dalam pemrograman web, istilah back-end merujuk ke pemrosesan yang dijalankan di sisi web server. Sebagai contoh, untuk menjalankan PHP kita harus menggunakan aplikasi web server seperti apache yang menjadi satu paket dari XAMPP.
Apakah sebuah web harus menggunakan back-end? Tidak juga. Untuk web sederhana, HTML dan CSS saja sudah cukup. Teknologi back-end seperti PHP dan Node.js baru diperlukan jika web tersebut butuh memproses form atau mengakses database.
PHP dan Node.js sebenarnya berbeda dalam hal konsep dasar. PHP adalah sebuah bahasa pemrograman back-end murni, sedangkan Node.js adalah sebuah platform.
Maksudnya, tidak ada namanya bahasa pemrograman Node.js, yang ada adalah Node.js itu menggunakan bahasa pemrograman JavaScript yang dibawa ke sisi back end. Dengan kata lain, agar bisa menggunakan Node.js kita harus paham JavaScript terlebih dahulu.
JavaScript sendiri pada awalnya merupakan bahasa pemrograman web yang berjalan di front-end. Disini JavaScript dipakai untuk memprogram HTML dan CSS di dalam web browser. Hal tersebut berlangsung puluhan tahun sejak 1995. JavaScript pertama kali dirancang oleh Brendan Eich saat bekerja sebagai programmer di Netscape Communications Corporation. PHP sendiri juga hadir di tahun yang sama (1995).
Pada saat itu konsep dasarnya cukup simple. HTML, CSS dan JavaScript dipakai di sisi front-end, sedangkan PHP dipakai di sisi back-end. PHP sendiri bisa diganti dengan bahasa pemrograman lain seperti ASP.
Hal ini berubah ketika JavaScript di bawa ke sisi server oleh Ryan Dahl di tahun 2009, dan lahirlah Node.js. Dengan demikian, JavaScript bisa dipakai di sisi front-end maupun back-end, sehingga komunikasi antar keduanya menjadi lebih efisien.
Kenapa Node.js dianggap lebih baik?
Node.js dianggap sebagai revolusioner. JavaScript yang dulunya hanya dipakai untuk membuat efek-efek animasi di dalam web browser (berjalan di sisi front-end), sekarang juga bisa dipakai untuk memproses form dan berkomunikasi dengan database (berjalan di sisi back-end).
Salah satu fitur utama yang sering dibandingkan dengan PHP adalah, Node.js menggunakan konsep non-blocking I/O model. Konsep ini membuat pemrosesan di Node.js lebih efisien karena tidak terkunci ketika sebuah proses sedang berjalan.
Katakanlah kita ingin memproses 2 tugas dalam waktu yang hampir bersamaan: 1. Ambil data dari database dan 2. menghapus sebuah file di server.
Di dalam PHP, kedua tugas ini dikerjakan dengan sistem antrian. Proses hapus file baru berjalan setelah data selesai diambil dari database.
Sedangkan di Node.js, keduanya bisa berjalan bersamaan tanpa harus menunggu proses yang satu selesai terlebih dahulu. Pertama, Node.js akan memberi instruksi untuk mengambil data dari database. Tanpa menunggu data tersebut sampai, ia akan lanjut ke proses kedua untuk menghapus file. Hasilnya, bisa jadi file dihapus duluan sebelum data dari database sampai.
Namun di sisi lain, Node.js juga menggunakan konsep single threaded. Maksudnya, hanya ada 1 proses yang berjalan sepanjang waktu. Ini berbeda dengan PHP yang menggunakan konsep multi threaded.
Katakanlah pada waktu yang bersamaan ada 1000 orang mengunjungi web kita. Di dalam PHP, akan dibuat 1000 thread dimana setiap pengunjung dilayani oleh 1 thread khusus. Setiap thread akan diproses dengan sistem antrian seperti sebelumnya. Berikut ilustrasi dari konsep ini:
Dalam gambar diatas, ada 4 orang pengunjung yang dilayani oleh 4 thread. Masing-masing 1 untuk setiap pengunjung.
Sedangkan di Node.js, 1000 pengunjung itu akan di layani oleh 1 thread saja. Thread secara bergantian berpindah dari satu proses ke proses lain tanpa harus menunggu proses yang satu selesai (kopsep non-blocking I/O model). Berikut ilustrasinya:
Dalam gambar diatas, ada 4 orang pengunjung yang dilayani oleh 1 thread yang berpindah secara bergantian. Tapi kembali, berbeda dengan thread di PHP, di dalam Node.js thread tersebut tidak harus menunggu setiap proses selesai, tapi cukup memberikan instruksi dan thread akan 'loncat' ke tugas berikutnya. Istilahnya asynchronous requests.
Jadi, mana yang lebih baik? Banyak faktor yang mesti dipertimbangkan. Secara umum, untuk tugas-tugas sederhana, konsep 1 thread, non-blocking I/O model kepunyaan Node.js akan memberikan performa yang lebih baik. Ditambah lagi efisiensi dari konsep single thread ini. Sedangkan untuk web yang butuh pemrosesan besar, konsep multi thread kepunyaan PHP akan lebih baik.
Meskipun begitu, masih banyak faktor-faktor lain yang bisa mempengaruhi seperti optimisasi server, update teknologi, perancangan kode program, dll. Sebagai contoh, PHP 7 menawarkan peningkatan performa yang jauh lebih besar dibandingkan dengan PHP 5.
Jadi menurut saya, dari segi performa PHP tidak otomatis kalah dari Node.js. Hanya saja, memang ada aplikasi-aplikasi yang lebih cocok menggunakan Node.js daripada PHP, terutama website yang terus-menerus realtime dan butuh banyak JavaScript.
Sebagai contoh, aplikasi Google seperti Gmail, Google Docs, Google Analytics itu full JavaScript, sehingga paling pas dipadukan dengan Node.js di server.
Ditambah lagi ada jargon "JavaScript: One programming language to rule them all". Maksudnya JavaScript saat ini bisa dipakai untuk memprogram apa saja, mulai dari aplikasi desktop, mobile app, web server, hingga Internet of things. Hal ini Semakin menambah alasan untuk belajar Node.js yang berbasis JavaScript.
Jadi, Apakah Lebih baik belajar Node.js daripada PHP?
Dari penjelasan diatas, terlihat bahwa Node.js tampak lebih menarik daripada PHP. Ini pula yang menimbulkan anggapan bahwa sebaiknya kita belajar Node.js yang lebih modern daripada PHP yang sudah mulai tua. Betulkah? Kita akan lihat dari sisi lain.
Pangsa Pasar Penggunaan PHP vs Node.js
Tidak dapat dipungkiri bahwa teknologi JavaScript (termasuk di Node.js), berkembang dengan sangat pesat, terutama dalam beberapa tahun belakangan. Namun untuk pangsa pasar penggunaan teknologi back-end, PHP masih jauh lebih kuat.
Berikut beberapa data yang saya dapat tentang perbandingan penggunaan PHP dengan Node.js:
Terlihat bahwa 80% website yang ada di dunia masih menggunakan PHP di sisi server, ini sangat dominan. Diantaranya, sekitar 30% menggunakan CMS WordPress, yang juga berbasis PHP.
Dari 20% sisa web yang tidak menggunakan PHP, itupun terdiri dari berbagai teknologi back-end lain seperti ASP, Java, Ruby, ColdFusion dan JavaScript. Jika kita menganggap JavaScript ini adalah Node.js, maka hanya 0,4% saja website yang menggunakan Node.js. Ini berdasarkan hasil riset dari w3techs.com.
Salah satu alasannya adalah karena Node.js merupakan teknologi baru, jadi jika dibandingkan dengan keseluruhan website yang sudah ada sejak puluhan tahun yang lalu, angkanya menjadi sangat kecil.
Jadi agak mustahil jika menyebut PHP akan mati dalam waktu dekat. Saya yakin dalam 5 tahun ke depan PHP masih tetap ada. Dan tentu saja PHP akan terus berinovasi agar lebih baik dan lebih efisien lagi.
Migrasi sebuah website yang sudah ada dari PHP ke Node.js akan butuh tenaga dan biaya yang cukup besar, sehingga mayoritas website jarang yang mau beralih dari PHP kecuali ada hal yang sangat urgent.
Dasar Keahlian untuk belajar PHP vs Node.js
Bagi saya, inilah alasan terbesar untuk tidak langsung belajar Node.js. Alur belajar (learning curve) Node.js lumayan sulit. Bagi pemula jauh lebih mudah belajar PHP dibandingkan Node.js. Bahkan boleh dibilang mustahil pemula bisa langsung ke Node.js.
Syarat untuk bisa ke PHP hanya perlu paham HTML (disarankan juga punya dasar CSS meskipun tidak wajib). Dua materi dasar ini (HTML dan CSS) sudah cukup untuk bisa belajar PHP sebagai bahasa pemrograman web.
Sebagai contoh, untuk menampilkan teks "Hello World" di web browser, kode PHPnya adalah sebagai berikut:
<?php echo 'Hello World!'; ?>
Sangat sederhana. Satu paragraf saja sudah cukup untuk membahas kode diatas, dimana sebuah kode PHP dibuka dengan tag <?php dan diakhiri dengan tag ?>. Perintah echo dipakai untuk menampilkan teks ke dalam web browser.
Bagaimana dengan Node,js? Setelah punya dasar HTML dan CSS, harus belajar lagi JavaScript karena Node.js berbasis kepada bahasa pemrograman JavaScript.
Untuk menampilkan teks "Hello World" di Node.js, berikut perintahnya:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }).listen(3000, '127.0.0.1');
Selain lebih panjang, kode-kode diatas butuh pemahaman yang mendalam tentang JavaScript dan pengetahuan seputar cara kerja web server.
Bagi pemula, saya rasa perlu 1 halaman bahkan lebih untuk membahas semua kode ini, mulai dari konsep variabel, object, function, callback, http header, http respond, http port, dan alamat IP Server. Inilah yang saya maksud bahwa Node.js lebih susah dipelajari, khususnya untuk pemula.
Hosting untuk PHP vs Node.js
Selain kode program yang lebih sulit, meng-onlinekan sebuah web yang dibuat dengan Node.js juga perlu skill yang mumpuni. Setidaknya kita mesti nyaman men-setting VPS (Virtual Private Server) yang biasanya harus menggunakan command line Linux (perintah terminal) via SSH. Yakni mengetik perintah secara manual baris per baris.
Sedangkan untuk PHP, web hosting yang dipakai untuk meng-onlinekan website ada dimana-mana dan harganya relatif murah (pakai shared hosting). Selain itu konfigurasi web server juga sangat mudah karena semua tinggal pakai sistem cPanel yang berbasis grafis. Kita cuma perlu beberapa kali klik dan website sudah online. Tidak perlu hapal perintah-perintah linux. Kecuali jika webnya sudah ramai dan butuh server sekelas VPS.
Disisi ini menurut saya PHP juga lebih user friendly untuk pemula dibandingkan Node.js. Atau setidaknya sampai ada hosting yang menyediakan cara mudah menjalankan web yang dibuat dengan Node.js
Materi Belajar PHP vs Node.js
Karena relatif baru, materi belajar untuk Node.js tentu saja belum sebanyak PHP, terutama referensi / web berbahasa Indonesia.
Khusus bagi pelajar atau mahasiswa, menurut saya masih cukup jarang guru / dosen yang update dan paham tentang Node.js. Jika bicara tentang bahasa pemrograman web, mereka mungkin hanya tahu PHP. Ini bisa menjadi salah satu bahan pertimbangan sebelum membuat skripsi web menggunakan Node.js
Kesimpulan: Jadi lebih baik belajar PHP atau Node.js?
Dari artikel ini tentu anda bisa menebak bahwa saya cenderung menyarankan untuk belajar PHP terlebih dahulu. Alasan paling kuat karena Node.js lumayan susah dipelajari bagi pemula. Banyak yang harus dipersiapkan sebelum bisa ke Node.js.
Saya bukan tidak suka Node.js, tapi hanya mengarahkan jalur yang paling pas. Setelah paham PHP dan JavaScript, silahkan lanjut ke Node.js.
Terkait masa depan keduanya, baik PHP maupun Node.js sama-sama menarik. PHP sudah sangat mapan dan masih menjadi bahasa mayoritas untuk pemrograman server. CMS PHP populer seperti WordPress juga akan 'menjamin' bahwa PHP akan terus hadir. Sehingga saya kurang sependapat jika dikatakan bahwa PHP akan segera digantikan oleh Node.js. Jika pun hal itu akan terjadi, mungkin butuh waktu 5 – 10 tahun lagi.
Untuk programmer pemula yang baru mulai belajar pemrograman web server, saran saya sebaiknya ke PHP dulu. Setelah punya basic yang kuat di "5 sekawan", yakni HTML, CSS, PHP, MySQL dan JavaScript, baru masuk ke teknologi yang relatif baru seperti Node.js, mongoDB, Express JS, Angular, Vue, React dll. Semua teknologi baru ini berbasiskan JavaScript, sehingga punya basic yang kuat di JavaScript adalah suatu keharusan.
Bagi kita sebagai programmer, silih berganti bahasa pemrograman adalah hal yang sangat lumrah dan akan selalu ada. Intinya harus bisa beradaptasi dengan perubahan dengan cara terus update teknologi terbaru, terutama yang sedang populer seperti Node.js.
Bukan tidak mungkin beberapa tahun lagi akan hadir teknologi baru pesaing PHP dan Node.js. Sehingga akan ada isu lagi kalau Node.js juga akan segera punah. Di dunia programming, hal seperti ini sudah sering kali terjadi terutama ketika muncul teknologi baru.
Selain PHP dan Node.js, masih ada bahasa ASP, Phyton, Ruby serta Java yang sama-sama bisa dipakai untuk web server. Jika anda punya waktu, silahkan pelajari beberapa diantara teknologi ini.
Tapi menurut saya, PHP pantas di pelajari terlebih dahulu karena lebih mudah untuk pemula serta penggunaannya masih sangat banyak. Belajar Node.js bisa menyusul sesudah itu, yang tentunya setelah paham JavaScript.
Referensi:
- https://w3techs.com/technologies/overview/programming_language/all
- https://www.similartech.com/compare/nodejs-vs-php
- https://www.quora.com/Why-do-you-think-Node-js-is-better-than-PHP
- https://crew.co/blog/is-php-still-relevant-in-2017/
- https://stackoverflow.com/questions/17959663/why-is-node-js-single-threaded
??
Membahas Bahasa back-end nh ini.. Hehe
Saya setuju dengam pendapat Mas Andre kalau NodeJS itu masih relatif baru & memang tdk cocok untuk pemula, mengingat Learning Curvenya yg tinggi..
Karena berdasarkan survey Github tahun 2017 tentang Back End Framework terpopuler diposisi pertama adalah MeteorJS, kemudian diposisi kedua ada Rails (Ruby on Rails) dan ketiga ada Laravel..
Yg saya asumsikan hanya Developer berpengalaman lah yg bisa produktif memakai ketiga Framework diatas..
Dan terutama untuk Ruby on Rails saya lihat bnyak saat ini StartUp besar menggunakannya sbgai Back End Sistemnya..
Mungkin kapan2 mas Andre bisa buat artikel yg membahas Ruby, Ruby on Rails, & framework PHP yg lagi hot saat ini di Indonesia.. Yaitu Laravel.. Hehehe
Siip, betul.. disini saya berfokus ke learning curvenya. Kasihan PHP yang sudah "tua" banyak di ejek dimana2.
Teknologi baru turunan JavaScript ini sangat banyak, seperti Node.js, Express, Meteor, Angular, React, dll. Tapi ini semua bukan untuk pemula. Jika pengen kesini, sebaiknya tetap pelajari dulu PHP agar lebih paham seperti apa dunia back-end 'classic'.
Mengenai request artikel / tutorialnya, mudah2an nanti bisa kesana. Tapi langkahnya bertahap dulu biar g kaget langsung lompat ke framework :D
Artikel yang amat sangat bermanfaat untuk saya secara pribadi. Dalam artikel ini saya jadi lebih mengenal dan lebih bisa menghargai PHP sebagai sesepuh. :) Selain itu, saya pun jadi lebih tahu update dalam dunia programing yang kini hadir Node.js yang melahirkan berbagai spekulasi di dunia programing ini, khususnya pada bagian back-end. Terima Kasih mas Andre.
Siip, semoga bisa bermanfaat..
Tapi saya masih mendukung langsung belajar NodeJS sih, apalagi jika sebelumnya frontend developer jadinya nggak perlu lagi nambah2 belajar bahasa :D
Bahkan Universitas Stanford sudah menggunakan Javascript di kurikulumnya. Tapi harus diakui, orang Indonesia emang sulit move-on jadi lowongan kerja Php di Indonesia masih banyak terbuka.
BTW di kalimat ini "…baru masuk ke teknologi yang relatif baru seperti Node.js, mongoDB, Express JS, Angular JS, .." AngularJS (versi 1) ganti ke Angular (versi 5) aja mas. AngularJS itu udah lama (versi 1) dan udah ditinggalin core teamnya.
Terimakasih sudah berbagi pandangan…
Teknologi JavaScript memang sangat pesat akhir2 ini, saya tidak heran banyak yang beralih dari PHP ke Node.js. Tapi yah, saya tetap berpendapat bahwa NodeJS kurang cocok bagi pemula, terutama yang bukan berasal dari background IT. Sebaiknya ke PHP dulu, masuk ke JavaScript, dan setelah itu ke Node.js
Misalnya menjelaskan konsep function dan object lebih mudah di PHP daripada JavaScript. Kecuali bagi yang punya background IT dan sudah paham perbedaan pemrograman procedural dengan object, silahkan hajar langsung HTML -> CSS -> JavaScript dan lanjut ke NodeJS.
Saya g ngikutin perkembangan Angular nih, ternyata beda y antara "AngularJS" dengan "Angular" saja :D
Klo menurut saya ga ada salahnya bagi pemula langsung belajar node js, karna di jaman sekarang saat ini sudah bermunculan coding bootcamp yang kurikulumnya sudah memakai backend node js tanpa harus belajar PHP terlebih dahulu,
Terimakasih sudah berbagi pendapatnya… :)
Sebagai lulusan bootcamp nodeJS, saya sependapat dengan Mas Andre, sebaiknya ke PHP dulu. Pengalaman dari 13 teman yang ikut bootcamp javascript, cuma tiga orang yang bisa dikatakan mengerti nodeJS. Yang lain plongo2 dan lambat banget. nah yang tiga orang tersebut pun, g ada yang pemula. Saya sendiri yang sudah bikin beberapa project dengan PHP, agak kewalahan pas masuk ke materi nodeJS+Database, apalagi waktu masuk ReactJS dan ReactNative.
Terimakasih untuk sharingnya… Setidaknya dapat konfirmasi dari yang ikut Bootcamp langsung :)
Untuk bisa paham nodeJS apalagi sampai ke React memang harus punya pemahaman mendalam tentang JavaScript, terlebih kalau Bootcampnya cuma beberapa hari yang saya rasa g cukup untuk mempelajari semua ini.
maaf mas Zul, boleh tau ikut bootcamp nodeJS dimana
makasih ya dah kasih info penting ini, saya sedang buka school home bagian web tech. dan itu mungkin banget terjadi, soalny saya udah sering ngajar dari teman2 yang belum pernah nyentuh bahasa program dan memang agak kembang kempes untuk paham javascript frontend, makanya saya ajarin php + db baru masuk, object, dan laravel biar nanti misal pindah ke meteorjs masih bisa karna dah kuat di laravel. dan bilan company di indo yang mau hemat cocok php karna human resouce sangat banyak drpd node.js jadi saat mereka selesai belajar di kelas mekera jadi programmer yang guna deh (kebanyakan dah kerja).
Setidaknya berhasil daripada belajar keras masih ngangur ;).
Btw doakan saya supaya kelas saya nambah maju ya gan..
Terimakasih tambahannya mas, setidaknya ini bisa jadi konfirmasi bahwa PHP relatif lebih mudah dipahami dibandingkan jika langsung ke Nodejs.
Idealnya memang paham PHP dan Nodejs (JavaScript stack), agar cari kerjanya lebih gampang. Mayoritas web di Indonesia masih berbasis PHP, sehingga otomatis juga banyak yang nyari…
Nice sharing untuk pemrograman pemula seperti saya
Salam Ngoding:
Saya yang awam dalam bidang bahasa program mau ikut urus pendapat. Sama-sama kita ketahui dunia bisnis itu kejam dan saling mencaplok dan mematikan. Siapa yang siap dan kuat akan tampil sebagai pemenang. Karena programmer menjual jasa kepada user, yang akan melibatkan operator dan admin, maka mereka kalau mau bertahan harus memenuhi selera dan keinginan konsumen serta perkembangan zaman. Mereka yang terlibat dalam bahasa program harus selalu siap menyesuaikan diri kalau tidak mau ditinggalkan konsumen.
Zhafari.
Betul, dunia teknologi (termasuk programming), berkembang dengan sangat cepat. Untuk bisa bertahan di industri ini mau tidak mau harus selalu up to date.
Nodejs dan berbagai library JavaScript saat ini menjadi "bintang" di web programming. Hanya saja dalam artikel ini saya ingin menjelaskan bahwa bukan berarti PHP langsung di anggap mati dan tidak layak dipelajari. Untuk programmer pemula, PHP masih jadi bahasa pemorgraman web yang mudah dipahami dan bahasa yang sudah "matang", web hostingnya murah dan ada dimana2.
Tapi kalau sudah masuk ke level professional (untuk industri), programmer back-end yang biasa pakai PHP memang sudah waktunya mempelajari Nodejs untuk melihat plus minus dari platform yang satu ini.
kalo ada tombol like… gw kasih 99999 like !!!!
sip,. makasih atas pandangannya tentang PHP dan NodeJS, akhirnya gw bsa menentukan kapan waktu terbaik buat imigrasi atau beljr ttg node js dan framework js laiinnya,.
kemarin sempat pelajari salah satu framework js, cukup rumit dan btuh pemahaman yg mendalam ttg js,. oke deh, kapan2 belajr js lebih dalm lagi.. makasih bang :D
Hehe, terimakasih…
Betul, untuk ke framework JS memang perlu pemahaman mendalam tentang JavaScript, terutama pemrograman object-nya. Dan sebenarnya ini juga berlalu untuk framework2 di bahasa lain seperti framework PHP karena sudah termasuk materi advanced (harus paham PHP dasar dulu).
Jika nanti sudah paham JavaScript (dan mungkin sedikit tentang PHP) silahkan balik lagi ke Nodejs.
Kalau harus pakai vps untuk mengonline kan website dengan node.js butuh biaya banyak. kalau php pakai shared lebih murah biaya. tp node.js jika dibuka pakai internet explorer juga tidak bisa.
Yup betul, biaya sewa VPS lebih mahal daripada shared hosting, plus kita harus paham perintah2 linux untuk bisa mengoperasikan VPS (kecuali pakai managed VPS yang lebih mahal lagi).
Kalau untuk Internet Explorer, itu mungkin karena pengaruh dari kode2 CSS dan JavaScript yang tidak secara langsung berhubungan dengan NodeJS. Kebanyakan kode2 CSS dan JavaScript modern tidak bisa berjalan di IE. Tapi pengguna IE saat ini sudah sangat sedikit…
oh ya saya masih bingung nodejs kan masih turunan javascript klo pengaturan browser javascript dinonaktifkan jalankan backend nodejs itu sendiri client tetap menerima data layaknya PHP yang aktif maupun tidaknya javascript settibf client akan tetap menampilkan data dari server itu sendiri.. thanks artikel bgus, kebetulan saya jga nyari referensi nodejs karna pengen pake vuejs tapi dev servernya musti pake nodejs
Khusus untuk pemrosesan yang berjalan di server pakai NodeJS, tidak akan terpengaruh dengan aktif atau tidaknya JavaScript di web browser. Tapi kalau sudah masuk ke framework seperti Vue, akan berdampak karena JavaScriptnya juga berjalan di sisi client.
apakah bisa berjalan bersamaan untuk keduanya nodejs buat (backend framework js) dan php buat api dari js tersebut??
Saya belum pernah coba, tapi kemungkinan bisa dengan cara membedakan port di server nanti.
Terima kasih artikelnya sangat membantu pemahaman php vs node.js, memang jika di analogikan utk memilih bahasa pemrograman yang pas seperti mau pilih motor baru ya.. Kita harus tau kondisi jalanan yang sering dilewati lebih cocok pakai motor apa.. Utk jalanan tanjakan & berbatuan kurang pas kiranya jika memaksakan pakai motor matic dibanding motor trail..
Betul, PHP dan Node JS ini punya kelebihan dan kelemahan masing2. Saat ini Node JS memang lebih populer (karena termasuk "barang baru"). Tapi website yang memakai PHP masih jauh lebih banyak…
Penulis lbih pro ke php pdahal dalam membandingkan hrus adil. Survey menurut stackoverflow 2018 pengguna javascript menduduki pringkat 1 brdasarkan 50 ribu responden dibandingkan pesaingnya php
https://insights.stackoverflow.com/survey/2018/
Dan untuk mnulis hello world di js cukup simple console.log('hello world' ); tidak serumit apa yg dijelaskan penulis
Karena fungsi js yang dituliskan penulis untuk membuat head server
Trimkasih atas perhatianya
Terimakasih sudah berbagi pendapat…
Kalau dibandingkan tingkat popularitas, Node JS memang lebih populer. Node JS ini relatif baru yang 'hot' dan dunia Fullstack JavaScript juga lagi booming.
Tapi seperti yang ada di artikel ini, market share PHP masih lebih banyak, 80% website yang ada saat ini berbasis PHP (survey dari w3techs.com). CMS Wordpres yang dibuat dari PHP juga dipakai oleh 30% dari semua website yang ada.
Saat ini saya tetap berpendapat bahwa belajar PHP jauh lebih mudah dibandingkan Node JS (terutama untuk pemula). Perintah console.log('hello world' ); adalah kode JavaScript biasa, bukan spesifik milik Node JS. Kalau ingin dijalankan dari web server, maka server Node JSnya harus dijalankan terlebih dahulu pakai perintah yang ada di artikel ini.
Saya juga bukan anti dengan Node JS, idealnya seorang programmer back-end modern memang harus paham kedua materi ini. Jadi jika dapat project bisa dipilih apakah cocok dibuat pakai PHP atau menggunakan jalur fullstack JavaScript (Node JS).
saya adalah salah satu orang yang suka banyak belajar bahasa program dalama pembelajaran saya agustus 2017 saya akhirnya bisa jadi freelancer di bulan mei 2018 dengan menggunakan PHP dan framework CodeIgniter saya nggk nyangka ternyata orang se lemot sya bisa juga menjadi web developer..
untuk semua framwork Javascript Front To Back itu semua sangat keren sih but to hard for beginner jangankan fremeworknya untuk Javascriptnya saja ketika membuat class untuk OOP ada beberapa cara contohnya factorial dan constructor dll
tapi tergantung sih semua orang punya kapasitas nya masing2 dan bersyukur saya bisa belajar semuanya walaupun masih belajar memahami satu2.. untuk pemula bagi saya PHP mungkin sangat bersahabat
semua hal di atas hanya komen saja dan pendapat saya hehe berawal dari php dan saya alumni duniailkom karena basic saya dapet dari website keren ini keren mas
Wah, keren nih sudah mendalami dunia "programmer freelance", semoga makin sukses kedepannya…
Hehe, betul. Secara umum JavaScript memang sedikit lebih susah dibandingkan PHP, apalagi jika sudah masuk ke ES 6 yang full object oriented. ES6 ini juga syarat untuk bisa memahami Node JS serta berbagai framework JS seperti Vue, Angular, React, dll.
Jika ada waktu luang, bisa juga iseng2 masuk ke JS untuk dibandingkan dengan PHP. Mana tau suatu saat dapat project yang mengharuskan pakai framework JS.
Dikarenakan sudah 1 minggu lebih Saya mencari jawaban atas pertanyaan mengenai artikel ini. Kebanyakan ada yang lebih pro ke php maupun sebaliknya. Namun artikel ini memberi jawaban yang 'pas' bagi Saya sendiri. Pokoknya Saya berterima kasih sekali ?.
Siip, semoga bisa bermanfaat…
saya masih ingat 7 tahun yg lalu ketika bahasa Java mulai memggeliat dengan adanya JSP ato Java Server Page akan membungkam PHP nyata nya engga.. lihat saja dri pengalaman jgn khwatir PHP akan terus bersinar, buat pemula lbih baik tetep pelajari PHP krn konsepnya mudah dipahami.
Terimakasih pendapatnya mas… Wah iya, dulu sempat ada JSP juga.
Betul, menurut saya untuk pemula tetap direkomendasikan ke PHP dulu. Ekosistemnya sudah matang, materi belajar ada dimana2 dan dipakai lebih dari 80% dari seluruh web yang ada di dunia (otomatis lowongan kerjanya juga masih banyak).
NodeJS / JavaScript backend lebih ditujukan bagi yang sudah punya pengalaman, atau programmer PHP yang butuh tantangan baru.
Pengalaman saya, lebih baik nodejs, karena sudah lengkap, ada database pendukung serta realtime. Anda bisa membuat apa saja dengan bantuan backend nodejs, seperti proyek static site, blog, store, ecommerce, dll. Dengan mudah membuatnya hanya butuh JavaScript dan tambahan lainnya seperti html, css, scss, json, dsb.
Kenapa lebih baik? Karena dengan nodejs kita mampu menyesuaikan semua fitur yang kita inginkan, sementara dengan php harus ada tambahan yang perlu penyesuaian seperti apache, nginx, dsb.
Lebih mudah nodejs karena jika Anda niat dalam bidang ini pasti sudah paham dasar JavaScript, dan bisa langsung menggunakan fitur JavaScript terbaru yang bisa dicompile menjadi versi lama dan penyesuaian menggunakan Babel. Bantuan linting CSS, JavaScript, dsb seperti ESlint, stylint, dsb.
Anda dapat mencari paket kebutuhan yang Anda butuhkan di NPM (https://www.npmjs.com) tersedia banyak pilihan.
Silahkan coba dan rasakan sensasinya, ditunggu karyanya di GitHub (https://github.com) demi kemajuan Web Developer di Indonesia!
Best regards:
MNF (illvart)
Terimakasih tambahannya, ini jadi pertimbangan bagi yang ingin migrasi ke Nodejs dkk.
Mantap bang, hehe
Ebook terakhir tentang javascript yang saya beli dari mas Andre saja masih belum bisa di cerna habis semuanya,.. apalagi di suruh belajar NodeJS yang notabene sangat "javascript" sekali,, susah sekali..
Tapi saya menyadari..
Mempelajari bahasa program apapun akan lebih cepat jika ada tujuan yang ingin dicapai dengan bahasa tersebut.
Kalau sekedar buat website, sebaiknya belajarlah PHP. Kalau sudah menyentuh dunia aplikasi "real-time", maka belajar NodeJS sangatlah penting.
Baru-baru ini saya mendapat projek membuat aplikasi Android bernilai cukup tinggi. Setelah cukup lama riset, jatuhlah pilihan pada NodeJS sebagai backend yang diperlukan untuk "menghidupkan" aplikasi tersebut.
Tapi saya sadari lagi, tidak serta-merta perlu belajar NodeJS. Masih ada bantuan lain yaitu framework yang akan membantu dalam pengembangan web NodeJS, seperti contoh: socket.io.
Saran saya bagi siapapun yang mulai belajar programming web dengan cepat, kuasailah dahulu HTML dan CSS, kemudian perlahan carilah target selanjutnya.
Jika ingin buat aplikasi web yang dasar seperti CMS blogging, maka lanjutlah ke PHP, mySQL dan Jquery. Tapi, kalau ingin membuat aplikasi yang real-time interaksi seperti aplikasi livechat, liveupdate data, dsb, maka langsung ke NodeJS dan mySQL saja, atau kalau mau hemat waktu bisa pakai framework khusus NodeJS.
Semoga sukses belajarnya.
Terimakasih tambahannya mas,
Iya, untuk level pemula dan web kebanyakan saya tetap lebih pro ke PHP. NodeJS dan berbagai JavaScript framework lebih ke project khusus seperti yang disebutkan, yakni yang butuh interaksi realtime.
Masing2 memang punya pro dan kontra tersendiri. Idealnya tentu bisa paham keduanya sehingga bisa lebih fleksibel dengan tuntutan project.
Terimakasih mas Andre, Artikel yang menarik untuk dibaca.
Salam Koding untuk Programmer Programmer Indonesia
Belajar kedua duanya PHP dan Node.js
setelah menguasai keduanya baru deh mau freelance atau karir di perusahaan.
ntah itu startup ataupun perusahaan2 swasta.
salam sukses untuk kita semua
Siip…
Tapi kalau ingin ke level freelance (programmer professional), menurut saya terpaksa harus pilih salah satu untuk didalami. Karena nanti harus belajar sampai ke materi advanced, bukan sekedar bisa PHP atau Node.js.
Rata2 project freelance butuh membuat web utuh, dan tergantung kompleksitas biasanya perlu bantuan library atau framework tambahan. Misalnya kalau di PHP nanti ada Code Igniter atau Laravel. Perintah query MySQL dan perancangan database juga harus dipahami.
Disisi lain jika ingin ke jalur Full-Stack JavaScript (Node.js), maka harus belajar Vue, React, Anglular, Express.js, dan library JS lain. Untuk database biasanya akan memakai MongoDB.
Untuk di awal g masalah pelajari keduanya, tapi setelah sampai pada titik tertentu harus memutuskan ingin fokus ke yang mana. Memang tidak mustahil bisa expert di PHP dan Node.js sekaligus, tapi materi yang harus dipelajari juga double.
Tiba tiba nyasar ke artikel Jadul.
Sekedar sharing pengalaman. Sekitar 2 tahunan lalu saya di minta utk bikin aplikasi yg cukup komplex dan syarat terberat waktu itu adalah aplikasi bisa online dgn budget yg terbatas..
Solusi yg paling mudah dan murah adalah bikin aplikasi web based, karena ya dari sisi server sangat murah dan lebih mudah di kelola. Namun pada waktu itu saya sama sekali belum pernah dev aplikasi web based. bahasa program yg saya kuasai adalah bahasa program jadul delphi & foxpro.
Akhirnya saya putuskan 1 minggu utk belajar bahasa program baru yaitu php & javascript. Awalnya saya coba js dulu sampe 5 hari saya masih kebingungan. hahahha
Hari ke 6 saya putuskan utk coba PHP. 1 jam mmpelajari dari w3school : " Anjiiir ini apaan, sangat mudah & simpel utk d pelajari ywda saya putuskan utk ke php dan 2 hari setelah itu gw langsung mncoba belajar CI smbari langsung coba dev aplikasi yg diminta. Alhamdulillah sekitar 2 bulan lebih kelar.
Tidak lama setelah itu kenelan PHPRad, hahhaha anjir ini apaan lagi. Build aplikasi tinggal klik* doang. Sejak saat itu saya sama sekali gak tertarik utk mempelajari bahasa lain, sayangnya PHPRad sekarang gak gratis lagi.
Dan sekitar setahun lalu kenalan sama node,elektron dll. Disitu saya agak goyah dan ingin belajar JS kembali karena tertarik utk bisa bikin aplikasi cross platform yg sejatinya adalah web based namun berjalan layaknya native apps.
Cuma yg saya kurang saya suka dari elektron adalah kebutuhan resources hardware yg cukup besar. akhirnya setelah bbrp pencarian dari mbah google saya nemu sebuah framework yg kurang popular bernama neutrolino.js
Mirip dgn elektron dkk. beda"nya : sangat sangat sangat ringan. Saya coba oprek" dikit akhrinya berhasil ngebikin php running dgn framework tsb. So tunda lagi belajar JS. udah terlanjur nyaman.
Saya sangat setuju dgn artikel ini utk pemula lebih baik belajar HTML + CSS + PHP, javascript emang powerfull tp cukup sulit di pelajari. Dan untuk saat ini saya sudah kurang tertarik dgn JS. saat ini saya langsung lompat ke Phyton.
Terimakasih sudah sharing pengalamannya mas Andi…
Hehe, lompat2 bahasa ya… Tapi memang seperti itulah dunia kerja yang sebenarnya. Kita harus terus belajar dan beradaptasi untuk mencari solusi dari setiap masalah. Yang paling penting pekerjaan selesai terlepas dari teknologi yang digunakan.
Semoga ini jadi info tambahan bagi yang masih kuliah atau untuk pemula bahwa jika memutuskan jadi programmer, itu akan "belajar seumur hidup". Kita harus selalu upgrade kemampuan diri. Jika punya basic yang kuat, lompat2 bahasa pemrograman tidak terlalu masalah. Malah menjadi kegiatan yang sangat menyenangkan.
Sukses terus ke depannya mas Andi. Semoga ketemu pengalaman yang lebih menarik di bahasa Python…
pemaparan yang sangat lengkap jelas dan sangat bisa dimengerti.
terima kasih telah membuat artikel yang mencerahkan seperti ini, semoga para pembaca dapat memahaminya dengan mudah.
gan bikinin tutorial websocket php dong kya ratchet gitu saya cari cari susah banget:(
Request ditampung… untuk tutorial advanced PHP dalam bahasa indonesia memang relatif jarang, mungkin karena peminatnya juga tidak banyak (lebih banyak yang nyari materi2 dasar).
Dari semua perbandingan, ini yang perjelasannya paling bagus.Tolong bikin PHP vs Golang juga doang mas!
Skarang golang lagi populer juga mas dan startup indo banyak yang pake golang kususnya yg udah unicorn/soonunicorn.
saya baru belajar laravel terguir juga pengen nyobain golang karna tertarik kerja di startup, soalnya gaji tergantung tempat kerja juga dan tentunya skill. nyobain php+laravel alasannya sama denga isi artikel ini.
tapi takut juga nyobain golang, soalnyo saya udah nyoba sampe 10 bahasa tapi ga ada yg dalem, mentok2 sampe oop+solid, nyobain function programming juga udah di kerjaan sebelumnya (progammer bukan backend) dan untuk backend saya belum ada pengalaman sama sekali.
di php saya udah belajar dan nyobain studi kasus yg nerapin/pake pdo, mvc, unit test, composer, repository pattern, service pattern dan udah nyoba belajar library logging juga. kira2 gimana menurut mas andre kalau saya belajar golang?
oh ya, kalau untuk static type saya udah biasa dan udah lama make c/c++ buat latihan di platform competitive progaramming tapi belum sampe materi advance, ini juga mau sekalian pake golang buat ngelanjutin belajar algo dan struktur datanya.
kalau dari sumber belajar golang (bahasa indo) yg ada:
– udemy programmer zaman now (pzn)
– studi kasus golang di buildwithangga
kalau di lihat dari sumber belajar udah oke banget sih, pzn bahasannya udah dalam banget tapi belum ada studi kasus dan pembahasan framework, kalau studi kasus buildwithangga pake framework gin kalau ga salah.
tapi, untuk sumber belajar materi golang yang lebih advance dari itu saya ga punya dalam bahasa indo, inggris saya rada kurang tapi lumaya bisa dikit baca doc dan masih terus di improve.
kalau laravel ada, kelas udemy pzn, ada ebook mas andre, trus banyak kelas studi kasus php di buildwithangga plus ada kelas yg bahas ci/cd dan microservice juga di roadmap backend php.
menurut mas andre gimana, apa lebih baik perdalam laravel aja dan kerja dulu pake laravel baru nanti belajar golang kalau laravelnya udah dalem dan udah ngerti berbagai konsep/teknologi di bakcend?