JavaScript adalah bahasa web
JavaScript adalah bahasa pemrograman yang berjalan di dalam browser web. Saat sebuah halaman bereaksi terhadap klik, memvalidasi form, menganimasikan menu, atau memuat konten baru tanpa reload, itulah JavaScript. Setiap browser di setiap perangkat sudah punya engine JavaScript bawaan, sehingga JavaScript menjadi satu-satunya bahasa yang berjalan secara native di web.
Sekarang JavaScript juga berjalan di luar browser. Node.js, Deno, dan Bun membuatmu bisa memakai JavaScript untuk server, alat command-line, script build, dan API. Bahasa yang sama menggerakkan frontend dan backend, dan itu salah satu alasan besar kenapa JavaScript dipakai begitu luas.
Sedikit gambaran seperti apa JavaScript itu:
Tiga baris, tiga ide: mendeklarasikan variabel, memanggil fungsi bawaan, mencetak string dengan template. Kamu akan melihat ketiganya di setiap halaman kode JavaScript sungguhan.
Di mana JavaScript berjalan
JavaScript sendiri hanyalah spesifikasi bahasa (disebut ECMAScript). Untuk benar-benar menjalankannya, kamu butuh engine, yaitu program yang membaca kodemu lalu mengeksekusinya. Dua yang akan kamu temui:
- Browser. Chrome dan Edge memakai V8. Firefox memakai SpiderMonkey. Safari memakai JavaScriptCore. Buka sebuah halaman, tekan F12, lalu tempel JavaScript ke tab Console: kodenya langsung berjalan.
- Node.js. Mengeluarkan V8 dari browser dan memberinya akses ke sistem file, jaringan, dan sistem operasi. Itulah yang membuat JavaScript di sisi server menjadi mungkin.
// Run in a browser console:
document.title = "New tab title";
// Run with Node.js:
// $ node script.js
JavaScript di browser bisa menyentuh halaman (DOM), tapi tidak bisa menyentuh sistem file-mu. JavaScript di Node.js bisa membaca file dan membuka socket, tapi tidak punya halaman untuk dimanipulasi. Bahasanya sama, kekuatan supernya berbeda.
Untuk apa JavaScript dipakai
Jawaban singkatnya: hampir semua hal yang bersentuhan dengan web. Jawaban panjangnya, kira-kira sesuai urutan kamu akan menemuinya:
- Halaman web interaktif. Validasi form, dropdown, modal, pencarian langsung, drag-and-drop.
- Single-page app. Gmail, Figma, Notion, Linear: seluruh aplikasi yang di-render dan diperbarui oleh JavaScript, biasanya lewat framework seperti React, Vue, atau Svelte.
- Server backend. REST API, endpoint GraphQL, dan layanan real-time yang dibuat dengan Node.js, Express, Fastify, atau NestJS.
- Alat build dan pengembangan. Bundler (Vite, esbuild, webpack), linter (ESLint), test runner (Vitest, Jest).
- Aplikasi lintas platform. Aplikasi desktop lewat Electron (VS Code, Slack, Discord) dan aplikasi mobile lewat React Native.
Kamu tidak perlu tahu semua ini di hari pertama. Cukup tahu bahwa semua itu ada, supaya frasa "cuma JavaScript" tidak terdengar membatasi.
Bagaimana JavaScript sebenarnya berjalan
Gambaran yang sangat disederhanakan: kamu menulis kode sumber, engine mem-parse-nya menjadi representasi internal, lalu menjalankannya. Engine modern memakai kompilasi JIT (just-in-time): mereka mulai menafsirkan kode dengan cepat, lalu mengoptimalkan bagian kode yang sering dijalankan menjadi kode mesin selama program berjalan.
Kamu tidak meng-compile JavaScript menjadi binary sebelum mengirimkannya. Kamu menyerahkan kode sumbernya ke browser (atau Node) dan engine yang mengurus sisanya:
Tempel itu ke console browser atau simpan sebagai greet.js lalu jalankan node greet.js: output-nya sama saja. Tanpa langkah compile, tanpa konfigurasi build, tidak ada yang perlu di-install untuk kode sesederhana ini.
JavaScript vs Java
Namanya mirip, tapi keduanya tidak mirip. JavaScript diberi nama itu pada 1995 untuk menumpang popularitas Java saat itu, sebuah keputusan pemasaran yang membingungkan pemula sejak saat itu.
| JavaScript | Java | |
|---|---|---|
| Tipe | Dinamis | Statis |
| Berjalan di | Browser, Node.js | JVM |
| Paradigma | Multi-paradigma, berbasis prototype | OOP berbasis class |
| Kompilasi | JIT, tidak butuh langkah build | Compile ke bytecode dulu |
Kalau ada yang bilang "aku sudah belajar Java, jadi aku tahu JavaScript", sebenarnya tidak. Perlakukan keduanya sebagai bahasa terpisah yang kebetulan berbagi empat huruf.
JavaScript vs TypeScript
TypeScript adalah JavaScript yang ditempeli sistem tipe. Kamu menulis kode dengan anotasi tipe, compiler TypeScript mengeceknya, dan hasilnya adalah JavaScript biasa yang berjalan di mana pun JavaScript berjalan.
// JavaScript - types are implicit:
function add(a, b) {
return a + b;
}
// TypeScript - types are explicit:
function add(a: number, b: number): number {
return a + b;
}
Setiap file JavaScript yang valid adalah file TypeScript yang valid, artinya TypeScript bukan pesaing, melainkan superset. Sebagian besar codebase besar saat ini memakai TypeScript, tapi belajar JavaScript lebih dulu adalah urutan yang tepat. Kamu tidak bisa memahami tugas TypeScript tanpa memahami apa yang ia beri tipe.
Sejarah singkat, supaya keanehannya masuk akal
JavaScript ditulis dalam sepuluh hari pada 1995 oleh Brendan Eich di Netscape. Kisah asal-usul ini penting karena beberapa sisi kasar bahasanya (loose equality, automatic semicolon insertion, typeof null === "object") berasal dari keputusan yang dibuat di bawah tekanan waktu ekstrem, lalu dibekukan demi menjaga web tetap kompatibel dengan versi lama.
Bahasa ini distandarkan sebagai ECMAScript, dan versi baru dirilis setiap tahun (ES2015 adalah yang paling besar: let, const, arrow function, class, module). Saat orang menyebut "ES6" atau "JavaScript modern", yang mereka maksud kira-kira adalah kumpulan fitur sejak 2015 yang sekarang didukung di mana-mana.
JavaScript modern sungguh menyenangkan untuk ditulis. Bagian-bagian lamanya masih ada, tapi sebagian besar bisa kamu hindari dengan kebiasaan yang akan kita bahas sepanjang kursus ini.
Yang perlu kamu ingat
- JavaScript berjalan di setiap browser, dan lewat Node.js juga di server.
- JavaScript dipakai untuk hampir semua hal yang bersentuhan dengan web: UI, backend, alat pengembangan, bahkan aplikasi desktop dan mobile.
- JavaScript bukan Java. TypeScript adalah superset yang menambahkan tipe statis.
- Bahasanya punya beberapa keanehan bersejarah; JavaScript modern (ES2015+) adalah yang benar-benar akan kamu tulis.
Berikutnya: menjalankan JavaScript
Cukup konteksnya, saatnya benar-benar menjalankan kode. Dokumen berikutnya membahas tiga tempat kamu akan menjalankan JavaScript sebagai pemula: console browser, file HTML, dan Node.js di command line.
Pertanyaan yang sering diajukan
Apa itu JavaScript dalam bahasa sederhana?
JavaScript adalah bahasa pemrograman yang berjalan di dalam browser web dan di server (lewat Node.js). Bahasa inilah yang membuat halaman web interaktif: merespons klik, memperbarui halaman tanpa reload, mengambil data dari API. Ia satu-satunya bahasa yang berjalan secara native di setiap browser.
JavaScript dipakai untuk apa?
Untuk segalanya, dari interaksi UI kecil (dropdown, validasi form) sampai aplikasi web lengkap (Gmail, Figma, Notion), server backend (Node.js, Deno), aplikasi mobile (React Native), aplikasi desktop (VS Code lewat Electron), dan alat build. Kalau sesuatu berjalan di browser atau berhubungan dengan web, kemungkinan besar JavaScript terlibat.
Apakah JavaScript sama dengan Java?
Tidak. Keduanya bahasa yang tidak berhubungan, dengan nama mirip karena alasan pemasaran di masa lalu. Java adalah bahasa bertipe statis berbasis class yang berjalan di JVM. JavaScript bertipe dinamis, berjalan di browser dan Node, dan desainnya sangat berbeda. Satu-satunya yang benar-benar sama hanyalah empat huruf pertamanya.
Apa bedanya JavaScript dan TypeScript?
TypeScript adalah JavaScript ditambah sistem tipe. Kamu menulis kode dengan anotasi tipe, compiler mengeceknya, dan hasilnya adalah JavaScript biasa. Setiap file JavaScript yang valid juga TypeScript yang valid. Kamu tidak butuh TypeScript untuk belajar JavaScript, tapi sebagian besar codebase besar saat ini memakainya.