JavaScript adalah bahasa pemrograman yang awalnya dibuat untuk menghidupkan halaman web, dan kini berjalan di browser, di server, serta di berbagai perkakas pengembangan. Topik ini menelusuri sejarah singkat JavaScript, meluruskan hubungan namanya dengan Java, lalu memetakan tempat berjalannya saat ini. Setelah membacanya, asal nama JavaScript, alasan kehadirannya di hampir semua perangkat, dan peran Node.js dapat dijelaskan secara runtut.
Sejarah singkat JavaScript#
JavaScript lahir pada tahun 1995 di Netscape, perusahaan yang saat itu membuat browser Netscape Navigator. Brendan Eich, pemrogram di perusahaan tersebut, menyusun draf pertama bahasanya dalam waktu sekitar sepuluh hari. Bahasa ini melewati tiga nama dalam waktu singkat, yaitu Mocha, LiveScript, dan akhirnya JavaScript pada akhir 1995. Perubahan nama terakhir bersifat pemasaran, karena Java sedang naik daun dan Netscape ingin menumpang popularitasnya. Meski namanya mirip, bahasa ini bukan turunan Java dan dirancang dengan tujuan yang berbeda.
Agar bahasanya tidak dikendalikan satu perusahaan saja, Netscape menyerahkan spesifikasinya ke Ecma International, organisasi yang memproses standar industri. Hasilnya adalah standar ECMA-262 yang mendefinisikan bahasa bernama ECMAScript, pertama kali terbit pada 1997. Sejak itu ECMAScript menjadi nama spesifikasinya, sedangkan JavaScript tetap menjadi nama bahasa yang dipakai pengembang. Pembaruan besar datang pada 2015 melalui edisi ES6 atau ES2015 yang menambahkan const dan let, kelas, promise, serta template literal. Setelah 2015, edisi baru terbit setiap tahun sehingga fitur bahasanya berkembang bertahap.
Perjalanan tersebut dapat diringkas dalam satu garis waktu berikut.
JavaScript dan Java: dua bahasa yang berbeda#
Kemiripan nama JavaScript dan Java sering menimbulkan dugaan bahwa keduanya berkerabat dekat, padahal hubungan itu berhenti pada nama. Nama JavaScript dipakai sebagai bagian kesepakatan pemasaran antara Netscape dan Sun Microsystems, pemilik Java pada saat itu. Dari sisi desain, keduanya bahasa yang berbeda dengan perancang, tujuan, dan model pengetikan yang tidak sama. Persamaannya hanya sebatas bentuk sintaks yang mengikuti keluarga bahasa C, seperti kurung kurawal dan tanda titik koma di akhir perintah.
Perbedaan yang paling terasa bagi pemula dirangkum pada tabel berikut.
| Aspek | JavaScript | Java |
|---|---|---|
| Tahun muncul | 1995 | 1995 |
| Perancang utama | Brendan Eich, Netscape | James Gosling, Sun Microsystems |
| Pengetikan | dinamis, diperiksa saat berjalan | statis, diperiksa sebelum berjalan |
| Tempat berjalan utama | browser dan Node.js | mesin virtual Java |
| Deklarasi variabel | let umur = 25 | int umur = 25 |
Java menuntut tipe data dinyatakan sejak awal, sedangkan JavaScript menetapkan tipe dari isi nilainya saat program berjalan. Satu variabel JavaScript dapat diisi string lalu diisi angka tanpa keluhan, pola yang ditolak Java sampai kodenya diubah. Bentuk programnya pun berbeda. Program Java terkecil tetap membutuhkan kelas dan metode main, sedangkan program JavaScript dapat berupa satu baris perintah yang langsung dijalankan.
Browser: tempat berjalan yang utama#
Browser adalah tempat berjalan JavaScript yang paling umum sekaligus alasan bahasa ini diciptakan. Setiap browser modern membawa engine, yakni program yang membaca dan mengeksekusi kode JavaScript. Chrome dan Edge memakai V8, Firefox memakai SpiderMonkey, sedangkan Safari memakai JavaScriptCore. Meski pembuatnya berbeda, semua engine mengikuti spesifikasi ECMAScript sehingga kode yang sama dapat berjalan di semuanya. Program JavaScript yang ditulis untuk satu browser dapat dibagikan dan dijalankan di browser lain tanpa perubahan.
Cakupan lintas browser itulah yang membuat JavaScript hadir di mana-mana. Hampir semua perangkat yang dipakai sehari-hari, mulai dari ponsel, laptop, sampai televisi pintar, menyimpan browser yang siap mengeksekusi JavaScript. Validasi form, animasi, pemuatan data tanpa menyegarkan halaman, dan hampir semua interaksi pada situs web modern berjalan dengan bahasa ini. Bagi pengembang web, menulis JavaScript berarti menulis untuk platform yang sudah terpasang di perangkat pengguna, tanpa langkah pemasangan tambahan apa pun.
Pembaruan browser juga menguntungkan bahasa ini. Ketika sebuah engine memperoleh dukungan fitur baru, fitur itu otomatis tersedia bagi pengunjung situs setelah browser diperbarui. Tidak ada langkah penyesuaian yang perlu ditempuh pemilik situs, selain memastikan kodenya mengikuti spesifikasi. Inilah salah satu alasan fitur bahasa JavaScript terasa berkembang lebih cepat dibanding banyak bahasa lain.
Node.js dan tempat berjalan lainnya#
Selama kurang lebih empat belas tahun, JavaScript hanya berjalan di dalam browser. Situasi itu berubah pada 2009 ketika Ryan Dahl memperkenalkan Node.js, runtime yang membawa engine V8 keluar dari browser ke sistem operasi. Dengan Node.js, JavaScript berjalan sebagai program mandiri di server, memproses permintaan HTTP, membaca berkas, dan mengakses basis data. Satu bahasa sejak itu dapat dipakai di sisi browser dan sisi server sekaligus.
Inti bahasanya sama di semua tempat, sedangkan yang berbeda adalah objek host, yakni sekumpulan fasilitas yang disediakan lingkungan tempat kode itu berjalan. Program berikut hanya memakai inti bahasa sehingga dapat dijalankan di browser maupun di Node.js dengan keluaran yang sama. Perbedaan lingkungan baru muncul ketika kode menyentuh fasilitas di luar inti tersebut.
// inti bahasa yang sama di semua tempat, tanpa fitur host apa pun
const tahun = 2026;
const usia = tahun - 1995;
console.log(`Pada tahun ${tahun}, JavaScript berusia ${usia} tahun.`);Pada tahun 2026, JavaScript berusia 31 tahun.Contoh yang paling mudah dilihat ada pada objek window, yang hanya ada di browser, sedangkan Node.js menyediakan objek process untuk mengakses informasi runtime. Pemeriksaan typeof terhadap nama-nama objek tersebut di Node.js menghasilkan keluaran berikut.
// objek host berbeda antar lingkungan, sedangkan inti bahasanya tetap sama
console.log(typeof window);
console.log(typeof globalThis);
console.log(typeof process);undefined
object
objectDi browser, pemeriksaan yang sama memberi object untuk window karena objek itu memang milik browser. Di luar browser dan server, JavaScript juga mengisi peran yang lebih kecil tetapi nyata. Banyak perkakas baris perintah dan alat pembangun proyek web ditulis dengan Node.js. Aplikasi desktop lintas platform dapat dibangun dengan Electron, kerangka kerja yang menggabungkan Node.js dan Chromium. Terdapat pula ranah embedded, yaitu perangkat keras kecil dengan sumber daya terbatas yang menjalankan versi JavaScript yang dipangkas ukurannya.
Ringkasan#
- JavaScript lahir pada 1995 di Netscape dari draf pertama yang selesai dalam sekitar sepuluh hari, lalu berganti nama dari Mocha menjadi LiveScript dan akhirnya JavaScript.
- Nama JavaScript dipilih karena alasan pemasaran, sedangkan desain bahasanya berbeda dari Java pada pengetikan, bentuk program, dan tempat berjalannya.
- Spesifikasi bahasanya bernama ECMAScript dan dikelola TC39, dengan pembaruan besar ES2015 lalu edisi tahunan sesudahnya.
- Browser tetap menjadi tempat berjalan utama, sedangkan Node.js sejak 2009 membawa JavaScript ke server, perkakas baris perintah, dan aplikasi desktop.
Referensi#
- JavaScript — MDN Web Docs — Dokumentasi induk JavaScript, termasuk ikhtisar bahasa dan sejarah singkatnya.
- ECMA-262 — Ecma International TC39 — Spesifikasi resmi ECMAScript yang menjadi dasar seluruh engine JavaScript.
- Node.js — OpenJS Foundation — Situs resmi Node.js, runtime yang membawa engine V8 ke luar browser.