Javascript merupakan bagian dari 3 teknologi penting yang harus dikuasai programmer web, yakni HTML untuk konten (isi dari website), CSS untuk tampilan (presentation), dan JavaScript untuk interaksi (behavior).
Hampir seluruh website modern saat ini menggunakan JavaScript untuk membuat berbagai aplikasi yang dapat berinteraksi dengan user, seperti validasi form HTML, games, kalkulator, fitur chatting, dll.
Dalam mempelajari JavaScript, sebaiknya telah menguasai dasar-dasar HTML, dan bisa membuat halaman web sederhana menggunakan HTML.
Pengertian JavaScript
JavaScript adalah bahasa pemograman yang digunakan untuk membuat interaksi atau menambah fitur web dinamis kedalam sebuah web.
JavaScript menambahkan aspek “interaktif” ke dalam HTML dan CSS. Misal, jika sebuah tag <h1> di klik, tampilkan isi seluruh artikel yang terdiri dari 10 tag <p>, atau jika sebuah gambar di klik, tukar class CSS-nya dari .normal menjadi .warning.
JavaScript di proses dalam web browser yang sama seperti kode HTML dan CSS. Ini berbeda dengan bahasa PHP yang diproses di server (server side programming language).
Mari kita simak pengertian JavaScript dari wikipedia:
“JavaScript is a high-level, dynamic, untyped, and interpreted programming language. It has been standardized in the ECMAScript language specification. Alongside HTML and CSS, it is one of the three core technologies of World Wide Web content production.“
Terjemahan bebasnya:
“JavaScript adalah bahasa pemrograman yang memiliki ciri-ciri: tingkat tinggi (high-level), dinamis, tidak bertipe dan diproses secara interpreted. JavaScript menggunakan standar spesifikasi ECMAScript. Bersama HTML dan CSS, JavaScript menjadi salah satu teknologi inti dari pembuatan konten halaman web (World Wide Web).“
JavaScript disebut sebagai bahasa pemrograman tingkat tinggi atau high-level programming language.
Dalam bahasa pemrograman tingkat tinggi, tidak lagi dipusingkan dengan pengaturan dasar seperti alokasi memory, register, garbage collection, dan hal teknis lain yang umumnya ada di dalam bahasa pemrograman tingkat rendah seperti bahasa assembly. Hampir semua bahasa pemrograman modern sudah termasuk high level programming language seperti PHP, Pascal, C++, Python dan JAVA.
JavaScript memiliki fitur dinamis, tidak bertipe dan diproses secara interpreted. JavaScript mirip bahasa PHP dimana tidak perlu menetapkan sebuah variabel harus bertipe integer, float, maupun string. Setiap variabel di dalam JavaScript bisa diisi dengan tipe data apa saja dan kapan saja sepanjang kode program (bersifat dinamis).
Ini berbeda dengan bahasa pemrograman seperti Pascal, C++ maupun JAVA yang setiap variabelnya hanya bisa diisi tipe data yang sudah ditetapkan, ini dikenal sebagai typed programming language. Dalam bahasa pemrograman jenis ini, jika sebuah variabel sudah ditetapkan bertipe integer (angka bulat), maka sepanjang kode program tidak bisa diisi dengan tipe data string (teks) maupun float (angka desimal).
JavaScript menggunakan standar spesifikasi ECMAScript. Maksudnya, yang membuat dan mengembangkan JavaScript adalah ECMA. ECMA merupakan singkatan dari European Computer Manufacturers Association, sebuah lembaga standarisasi Eropa khusus komputer.
Bersama-sama dengan HTML dan CSS, JavaScript menjadi teknologi inti dari pembuatan konten halaman web (World Wide Web). Ketiga teknologi ini memiliki peran masing-masing. HTML dipakai untuk membuat struktur dan isi dari halaman web (content). CSS untuk mempercantik tampilan website (design). Dan Javacript berfungsi menangani interaksi (behavior). Sebutan kerennya: “HTML for content, CSS for presentation and JavaScript for behavior“.
Samakah JavaScript dengan JAVA
Nama JavaScript memang sering membuat bingung programmer pemula. Ini karena terdapat bahasa pemrograman populer lain yang bernama JAVA. Tidak sedikit yang beranggapan bahwa JavaScript adalah versi “ringan” dari JAVA, atau JavaScript adalah bahasa pemrograman JAVA yang digunakan khusus membuat web.
JavaScript sepenuhnya berbeda dari JAVA. Penamaan yang mirip ini tidak lepas dari sejarah dan ide marketing oleh Netscape Communications, selaku perusahaan yang pertama kali mengembangkan JavaScript.
Sekitar tahun 1990an, Netscape (yang saat itu sedang bersaing dengan Microsoft) berusaha mendapatkan pangsa pasar web browser, yakni persaingan antara web browser Netscape Navigator dengan Internet Explorer. Era ini dikenal juga dengan era “browser war”.
Supaya lebih “menjual”, Netscape mengubah bahasa pemrograman yang dibuatnya dari “LiveScript” menjadi “JavaScript” dengan harapan bisa mengikuti kepopuleran bahasa pemrograman JAVA yang saat itu sedang booming di kalangan programmer.
Walaupun sepenuhnya berbeda, banyak syntax dan aturan penulisan JavaScript mirip dengan JAVA, ini karena keduanya sama-sama terinspirasi dari format penulisan bahasa C dan C++. Bahasa pemrograman PHP juga turunan dari C dan C++. Jika sebelumnya sudah pernah mempelajari PHP, aturan penulisan kode program di JavaScript akan terasa sangat mirip.
Fungsi JavaScript Dalam Pemograman Web
Pada awal dikembangkan, JavaScript berfungsi untuk membuat interaksi antara user dengan web menjadi lebih cepat. Sebelum ada JavaScript, setiap interaksi dari user harus diproses ke server.
Bayangkan ketika mengisi form registrasi untuk pendaftaran sebuah situs web, lalu men-klik tombol submit, menunggu sekitar 5 detik untuk website memproses form tersebut, dan mendapati ada kolom form salah.
Untuk keperluan seperti inilah JavaScript dikembangkan. Pemrosesan untuk memeriksa form bisa dipindahkan dari web server ke dalam web browser.
Dalam perkembangan selanjutnya, JavaScript tidak hanya bisa dipakai untuk validasi form, namun juga berbagai keperluan yang lebih modern. Berbagai animasi untuk mempercantik halaman web, fitur chatting, efek-efek modern, games, semuanya bisa dibuat menggunakan JavaScript.
Akan tetapi karena sifatnya yang dijalankan di sisi client yakni di dalam web browser yang digunakan oleh pengunjung, user sepenuhnya dapat mengontrol eksekusi JavaScript. Hampir semua web browser menyediakan fasilitas untuk mematikan JavaScript, atau bahkan mengubah kode JavaScript yang ada, sehingga tidak bisa bergantung sepenuhnya kepada JavaScript.
Modern JavaScript
Beberapa tahun belakangan, JavaScript berkembang dengan sangat pesat, terutama sejak kehadiran Nodejs. Dengan Nodejs, JavaScript bisa berjalan sebagai bahasa pemrograman server (menggantikan peran PHP).
Selain itu bermunculan framework front-end JavaScript seperti Angular, Vue, dan React. Framework jenis ini mempermudah pembuatan web SPA (Single-page Application). Contoh dari web SPA seperti Gmail, GDrive, atau Google Doc. Di web tersebut, halaman yang di akses cukup satu, tidak butuh reload seperti layaknya sebuah website. Ini lebih mirip seperti aplikasi desktop.
JavaScript juga berevolusi menjadi bahasa multi-platform, tidak hanya di lingkungan web saja. Sekarang bisa membuat aplikasi desktop dengan framework Electron, membuat aplikasi mobile dengan React Native, serta juga tersedia library/framework JavaScript untuk perangkat IOT (Internet of Things).
Sejarah dan Perkembangan JavaScript
Sejarah JavaScript dimulai sekitar tahun 1994, ketika internet dan website sedang mengalami perkembangan yang pesat. Website pada saat itu umumnya dibuat menggunakan bahasa pemograman PERL yang pemrosesan hanya bisa dilakukan di sisi web server.
Kelemahan pemrosesan di sisi web server adalah, setiap instruksi dari user harus dikirim terlebih dahulu kepada web server, baru kemudian ditampilkan lagi di dalam web browser. Karena kecepatan koneksi internet yang terbatas, hal ini dipandang tidak efisien. Programmer web butuh bahasa pemograman client-side yang bisa berjalan di web browser tanpa harus dikirim ke server.
Pada tahun 1995, Brendan Eich seorang programmer dari Netscape mulai mengembangkan sebuah bahasa pemograman script yang dinamakan Mocha. Netscape pada saat itu merupakan perusahaan software ternama yang memiliki web broser Netscape Navigator.
Bahasa script Mocha ini ditujukan untuk client-side dan juga server-side. Dalam perkembangan selanjutnya, nama Mocha diubah menjadi LiveScript untuk versi client-side, dan LiveWire untuk versi server-side.
Saat bahasa tersebut akan dirilis, Netscape mengadakan kerjasama dengan Sun Microsystems untuk mengembangkan LiveScript, dan tepat ketika Netscape Navigator 2 dirilis, Netscape merubah nama LiveScript menjadi JavaScript dengan tujuan bahasa baru ini akan populer seperti bahasa Java yang saat itu sedang booming di kalangan programmer. Versi JavaScript ini dinamakan dengan JavaScript 1.0.
Pesaing JavaScript: Kemunculan JScript dari Microsoft
Karena kesuksesan JavaScript 1.0, Netscape selanjutnya mengembangkan JavaScript versi 1.1 pada Netscape Navigator 3, dan mengantarkan Netscape Navigator menjadi pemimpin pasar web browser saat itu.
Selang beberapa bulan kemudian, Microsoft yang melihat kepopuleran JavaScript, memperkenalkan web browser Internet Explorer 3 dengan JScript. JScript adalah penamaan lain dari JavaScript. Hal ini dilakukan Microsoft karena JavaScript merupakan merk dagang yang dimiliki oleh Sun dan Netscape. Sehingga Microsoft terpaksa mencari nama lain untuk versi JavaScript mereka.
Selain memiliki fitur yang mirip, JScript juga menambahkan beberapa fitur tersendiri, sehingga JavaScript dan JScript tidak sepenuhnya kompitable.
Web Browser Internet Explorer 3 yang dirilis microsoft pada tahun 1996 ini adalah awal dari kemunduran Netscape Navigator, karena microsoft merilis Internet Explorer 3 secara gratis dan sebagai software bawaan dari Sistem Operasi Windows. Akan tetapi, keputusan Microsoft menambahkan fitur JScript merupakan langkah besar dalam perkembangan JavaScript.
Perubahan Menjadi Nama Standar: ECMAScript
Implementasi JScript di dalam Internet Explorer membuat kalangan programmer bingung, karena terdapat 2 versi JavaScript: JavaScript di Netscape Navigator and JScript pada Internet Explorer. Versi JavaScript juga memiliki 2 versi, yakni versi 1.0 dan 1.1. Hal ini semakin menambah kerumitan dalam pembuatan program. Permasalahan terjadi karena ketiga versi JavaScript tersebut memiliki perbedaan fitur.
Pada pertengahan tahun 1997, JavaScript 1.1 diajukan ke badan standarisasi Eropa: European Computer Manufacturers Association (ECMA) untuk membuat sebuah standar bahasa pemograman script web browser. Atas dasar ini, dibentuklah sebuah komite dengan anggota yang terdiri dari programmer dari berbagai perusahaan internet pada saat itu, seperti Netscape, Sun, Microsoft, Borland, NOMBAS serta beberapa perusahaan lain yang tertarik dengan perkembangan JavaScript.
Komite standarisasi ini menghasilkan bahasa pemograman yang disebut ECMAScript, atau secara formal disebut ECMAScript -262. 1 tahun berikutnya, badan standarisasi ISO (International Organization for Standardization) juga mengadopsi ECMAScript sebagai standar. Sejak saat itu, semua web browser menjadikan ECMAScript sebagai standar acuan untuk JavaScript.
ECMAScript terus dikembangkan hingga mencapai versi 3 pada tahun 1999. Berita baiknya, hampir semua web browser saat itu, terutama Microsoft Internet Explorer 5.5 dan Netscape 6 telah mendukung ECMAScript-262 versi 3. Namun berita buruknya, masing-masing web browser menerapkan standar dengan sedikit berbeda, sehingga masih terdapat kemungkinan tidak kompitable.
ECMAScript versi 5
ECMA-262 versi 5 dirilis pada 2009. ECMAScript versi 4 sengaja dilompati karena beberapa alasan ketidakcocokan proposal yang diajukan. ECMA-262 versi 5 inilah yang saat ini menjadi versi paling stabil dan terdapat di mayoritas web browser modern seperti Google Chrome, Firefox, Opera, dan Safari.
Akan tetapi, perbedaan implementasi ECMAScript tetap ada di dalam web browser. Biasanya perbedaan ini terkait dengan fitur-fitur tambahan. Salah satu cara programmer untuk mengatasi masalah ini yaitu dengan mendeteksi web browser yang digunakan user, lalu menjalankan fungsi yang dirancang secara spesifik untuk web browser tersebut. Proses ini dikenal sebagai browser sniffing, dan bukan sesuatu yang menyenangkan.
Kabar baiknya, sekarang banyak terdapat library JavaScript yang dirancang untuk melapisi perbedaan ECMAScript ini, salah satunya adalah jQuery. jQuery menyediakan fungsi otomatis dalam mengatasi perbedaan implementasi ECMAScript di dalam web browser.
ECMAScript 6
ECMAScript 6 atau ES6 atau ECMAScript 2015 dirilis pada bulan Juni 2015. Cukup banyak penambahan baru pada versi ini, sebagian besar merupakan fitur lanjutan untuk membuat aplikasi yang memiliki kompleksitas tinggi, seperti penggunaan JavaScript di server menggunakan node.js.
Diantara fitur tersebut adalah: iterator baru, python-style generator, arrow function, binary data, typed arrays, collections (maps, sets and weak maps), promises untuk membuat asynchronous programming, penambahan function untuk tipe data number dan math, reflection, serta proxies (metaprogramming untuk virtual objects dan wrappers).
Mulai dari ECMAScript 6 dan selanjutnya, penamaan ECMAScript akan menggunakan nama tahun saat standar tersebut dirilis, seperti ECMAScript 2015, ECMAScript 2016, dst. Banyak perdebatan mengenai pilihan nama ini, sehingga masih sering disebut sebagai ECMAScript 6.
ECMAScript 7 hingga ECMAScript 12
Mulai dari ECMAScript 6, setiap tahun akan selalu hadir versi baru ECMAScript. Seperti ECMAScript 7 di tahun 2016, ECMAScript 8 di tahun 2017, hingga ECMAScript 12 di tahun 2021.
ECMAScript atau JavaScript?
ECMAScript adalah versi standar dari JavaScript. Namun karena kepopuleran JavaScript, hampir semua kalangan dan programmer menyebut ECMAScript dengan istilah umum: JavaScript.
Merk dagang JavaScript saat ini dimiliki oleh perusahaan Oracle yang mengakuisisi Sun Microsystem tahun 2010. Namun juga akan mendengar versi JavaScript 1.5 atau JavaScript 1.8. Ini adalah versi yang diadopsi oleh Mozilla Firefox yang merupakan ‘reingkarnasi’ dari Netscape. JavaScript 1.5 sebenarnya adalah ECMAScript 3. Dan JavaScript 1.8 merupakan versi ECMAScript dengan beberapa penambahan internal oleh Mozilla.
ECMAScript Engine (JavaScript Engine)
Jika membaca perkembangan tentang JavaScript, maka selain versi ECMAScript, terdapat istilah JavaScript engine atau dalam bahasa standarnya: ECMAScript Engine.
JavaScript engine adalah mekanisme internal web browser yang dapat disamakan dengan compiler dalam bahasa pemograman lain. Fungsinya untuk menjalankan kode JavaScript.
Biasanya disetiap rilis baru web browser seperti Google Chrome, Microsoft Edge, maupun Mozilla Firefox, juga diikuti rilis terbaru JavaScript engine yang menawarkan kecepatan lebih baik.
V8 adalah nama JavaScript engine untuk Google Chrome, SpiderMonkey untuk Mozilla Firefox, dan Chakra untuk Internet Explorer. Daftar lengkapnya dapat dilihat ke http://en.wikipedia.org/wiki/List_of_ECMAScript_engines