Pengantar Gerbang Dunia JavaScript

 




Daftar Referensi

  1. “Node.js - run JavaScript everywhere,” Node.js -, https://nodejs.org/ (diakses Jul. 23, 2024).
  2. “Bun is a fast JavaScriptall-in-one toolkit|,” Bun, https://bun.sh/ (diakses Jul. 23, 2024).
  3. L. S. Vailshery, “Most used languages among software developers globally 2023,” Statista, https://www.statista.com/statistics/793628/worldwide-developer-survey-most-used-languages/ (diakses Jul. 23, 2024).
  4. MozDevNet, “Template literals (template strings) - JavaScript: MDN,” MDN Web Docs, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals (diakses Jul. 23, 2024).
  5. MozDevNet, “Truthy - MDN web docs glossary: Definitions of web-related terms: MDN,” MDN Web Docs, https://developer.mozilla.org/en-US/docs/Glossary/Truthy (diakses Jul. 23, 2024).
  6. MozDevNet, “Falsy - MDN Web Docs Glossary: Definitions of Web-related terms: MDN,” MDN Web Docs, https://developer.mozilla.org/en-US/docs/Glossary/Falsy (diakses Jul. 23, 2024).
  7. R. Setiawan, “Gerbang Logika Dan Tabel kebenaran,” Dicoding Blog, https://www.dicoding.com/blog/gerbang-logika-dan-tabel-kebenaran/ (diakses Jul. 23, 2024). 
  8. MozDevNet, “Hoisting - MDN web docs glossary: Definitions of web-related terms: MDN,” MDN Web Docs, https://developer.mozilla.org/en-US/docs/Glossary/Hoisting (diakses Jul. 23, 2024). 
  9. “Prototypal inheritance in JavaScript,” Prototypal Inheritance, https://crockford.com/javascript/prototypal.html (diakses Jul. 23, 2024). 
  10. MozDevNet, “Referenceerror - JavaScript: MDN,” MDN Web Docs, https://developer.mozilla.org/id/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError (diakses Jul. 23, 2024).
  11. “Memoization in JavaScript,” Keith Gaughan Atom, https://keith.gaughan.ie/javascript-memoization.html (diakses Jul. 23, 2024). 
  12. C. Ngwobia, “Functional programming: Memoization.,” Medium, https://medium.com/swlh/functional-programming-memoization-c2af275a0b1d (diakses Jul. 23, 2024).
  13. B. O’Sullivan, “Real World Haskell,” Chapter 14. monads, https://book.realworldhaskell.org/read/monads.html (diakses Jul. 23, 2024). 
  14. Max, “Callback hell,” Callback Hell, http://callbackhell.com/ (diakses Jul. 23, 2024). 
  15. MozDevNet, “Type coercion - MDN web docs glossary: Definitions of web-related terms: MDN,” MDN Web Docs, https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion (diakses Jul. 23, 2024).
  16. Contributors, “JSDoc Documentation,” Use JSDoc: Index, https://jsdoc.app/#block-tags (diakses Jul. 23, 2024). 
  17. “Stack overflow developer survey 2023,” Stack Overflow, https://survey.stackoverflow.co/2023/#technology-admired-and-desired (diakses Jul. 23, 2024). 
  18. “Handbook - the typescript handbook,” TypeScript, https://www.typescriptlang.org/docs/handbook/intro.html#get-started (diakses Jul. 23, 2024).










Pengantar Gerbang Dunia JavaScript

Mari kita mulai menapak sebagai JavaScript Developer! Ini menjadi penghargaan bagi kita dalam mengarungi luasnya samudra bahasa pemrograman, seperti JavaScript. Ya, sebagai salah satu bahasa yang paling populer, kita mampu membuka gerbang untuk melakukan dan membuat banyak hal dengan JavaScript. Anda ingin membuat aplikasi berbasis web, cellphonedesktopcommand line, hingga model dengan machine learning pun bisa diwujudkan dengan JavaScript.

All about JavaScript! Kita akan menjelajahi dan membuka wawasan untuk Anda tentang JavaScript dalam kelas ini. Sebagai langkah awal perjalanan, kita akan berkenalan dahulu dengan JavaScript. Berikut adalah objektif pembelajaran yang akan dicapai dalam modul ini.

  • Mampu membedakan antara ECMAScript dan JavaScript dengan baik.
  • Mampu membedakan perilaku scripting language dan compiled language.
  • Mampu menunjukkan cara menjalankan kode JavaScript dalam berbagai lingkungan, baik BrowserNode.js, maupun Bun.
  • Mampu membedakan konteks global JavaScript dari runtime browserNode.js, dan Bun.

Dalam modul ini, kami akan membantu Anda mengenali JavaScript, mulai dari sejarahnya, cara kerjanya, konsep penting, dst. Setelah menyelesaikan modul ini, Anda diharapkan akan memiliki keahlian yang kuat saat menggunakan binary node dan mampu menerapkannya dalam pengembangan aplikasi dengan Node.js.

Apa Itu Pemrograman

Salah satu bahasa pemrograman untuk komputer adalah JavaScript. Apakah Anda tahu apa itu pemrograman atau bahasa pemrograman? Sebelum melangkah lebih lanjut ke JavaScript, kita perlu tahu makna dari istilah tersebut.

Pemrograman adalah proses menyusun instruksi yang sistematis dan akan dieksekusi oleh komputer. Dari pengertian tersebut, kita dapat memiliki gambaran bahwa ini mirip dengan instruksi kepada suatu objek seperti manusia dalam mengikuti panduan memasak, tetapi dalam dunia pemrograman, komputer adalah objeknya. Manusia membuat beberapa instruksi yang harus dieksekusi oleh komputer dalam bahasa yang dimengertinya, yakni bahasa pemrograman. Menarik, bukan?

Melalui pemrograman, ada sangat banyak permasalahan yang dapat diatasi sehingga dapat memudahkan kehidupan manusia, contohnya di bawah ini.

  • Melakukan pemesanan/pembelian tiket liburan, nonton film, makanan & minuman, dan sebagainya melalui aplikasi perangkat mobile.
  • Membayar tagihan belanjaan di e-commerce dengan mengisi formulir informasi kartu kredit/debit dan klik tombol “Bayar” melalui browser.
  • Melakukan pertemuan dengan banyak orang secara daring.
  • Mengeksplorasi berbagai wilayah di dunia dengan aplikasi peta.

Masih ada banyak hal lainnya yang bisa dilakukan oleh komputer melalui programming. Tingkat kompleksitas program berbanding lurus dengan jumlah instruksi. Artinya, makin besar tugas komputer maka makin banyak instruksi yang akan disusun. Bahkan tidak hanya ratusan, ribuan atau jutaan instruksi terstruktur dapat dibangun dalam sebuah program.

Namun, sejatinya program tidak harus kompleks. Perhatikan hasil program pada gambar berikut.

dos-1099d839e96ea6ba752b7ef108a4727d20240730140100.jpeg

Apakah gambar di atas juga disebut sebagai program? Gambar tersebut adalah hasil instruksi komputer yang hanya menampilkan teks “Hello, world!” ke layar (console/terminal). Meskipun instruksinya terbilang sangat sederhana dan sedikit, ia juga merupakan sebuah program.

Setelah mengetahui maksud dari pemrograman, kita mendapat gambaran lebih jelas tentang peranan atau kemampuan yang bisa dilakukan oleh komputer. Disadari atau tidak, mungkin kita sudah sering menjadikan komputer sebagai alat untuk mempermudah pekerjaan. Namun, tidak hanya itu saja. Kita dapat menjadikan komputer sebagai alat yang sangat powerful dengan belajar membangun program di kelas ini!


Scripting dan Compiled Language

Pada dasarnya, pemrograman memungkinkan komputer menjalankan perintah-perintah sistematis dalam bahasa yang dimengerti. Yup, komputer memerlukan bahasa khusus sehingga perintah-perintah tersebut dapat terlaksana dengan baik. Sebagai pemrogram atau developer, kita perlu menggunakan bahasa yang tepat dan nantinya dapat dimengerti oleh komputer.

Serangkaian perintah komputer ditulis oleh developer dalam bentuk kode. Kode dapat berupa sekumpulan karakter, angka, dan simbol. Kode-kode ini hanya dipahami oleh manusia atau disebut dengan bahasa tingkat tinggi. Ada sangat beragam bahasa pemrograman di luar sana dan memiliki penulisan kode atau sintaksis yang bermacam-macam. Beberapa contohnya adalah JavaScript, Java, C, C++, Python, Matlab, dsb.

Hasil kegiatan menulis kode ini disebut sebagai source code. Berikutnya, source code tersebut akan diubah ke bahasa yang dapat dipahami oleh komputer sehingga bisa dianalisis dan dieksekusi perintah-perintahnya. Inilah yang disebut dengan bahasa mesin. Bahasa ini sangat sulit dipahami oleh manusia dan komputer hanya memahami bahasa ini.

Tahukah kamu bahwa bahasa mesin juga disebut sebagai bahasa tingkat rendah (low-level language)? Ia disebut demikian karena dapat dieksekusi langsung oleh mesin alias bahasa yang lebih dekat dengannya. Tentu ada bahasa tingkat tinggi (high-level language) juga. Namun, ia hanya lebih dekat dengan manusia sehingga mudah ditulis, dibaca, dan dipahami olehnya. Agar bahasa tingkat tinggi bisa dieksekusi oleh mesin, kita perlu mengonversi atau mengolah source code ini ke bahasa rendah.

Dalam tahapan perubahan dari bahasa tingkat tinggi ke bahasa tingkat rendah, ada dua mekanisme yang dapat dilakukan serta setiap bahasa dapat menggunakan cara berbeda, yaitu compiler dan interpreter. Mari kita bahas satu per satu.


Compiled Language

Ada beberapa bahasa pemrograman yang membutuhkan satu tahapan sebelum instruksinya dapat dijalankan oleh mesin, yaitu proses kompilasi atau compile. Bagi bahasa yang membutuhkan ini, mereka memiliki compiler-nya masing-masing.

Untuk lebih jelasnya, perhatikan gambar berikut.

dos-d178bf61a5f1f8b09eb4f6f4c57c6eca20240730140207.jpeg

Misalnya, developer membuat sebuah program dengan suatu bahasa yang menggunakan compiler. Agar instruksi dapat dijalankan oleh komputer, source code perlu diubah dahulu ke bahasa mesin menggunakan compiler. Terakhir, program tersebut dapat diserahkan ke mesin agar dijalankan.

Beberapa bahasa yang menggunakan compiler adalah Java, C++, Swift, dsb.


Scripting Language

Tidak seperti compiled language, sebuah program atau source code yang ditulis dengan scripting language tidak memerlukan compiler. Source code dapat langsung diberikan, diterjemahkan, dan dijalankan oleh mesin. Mesin ini menggunakan interpreter dalam melakukannya. Contoh yang sangat dekat dengan kita adalah browser. Masing-masing aplikasi pasti membawa kode JavaScript dan langsung dibaca oleh browser.

Untuk lebih jelasnya, perhatikan gambar berikut.

dos-e3fa7ac35b5336eb58a2b34f9a2a175c20240730140207.jpeg

Beberapa bahasa pemrograman yang menggunakan interpreter adalah JavaScript, PHP, Python, dsb.

Jadi, sekarang kita sudah paham bahwa mesin tidak dapat begitu saja menjalankan perintah yang ditulis menggunakan bahasa yang lebih dekat dengan manusia (high-level language). Kita membutuhkan sebuah alat yang menerjemahkannya menjadi bahasa yang lebih mudah dipahami oleh mesin.

Selanjutnya, kita akan berkenalan dengan salah satu bahasa pemrograman yang memanfaatkan interpreter, yaitu JavaScript.

Pengenalan JavaScript

Sebelumnya, kita sudah mengenal pemrograman dan bahasa pemrogramannya. Bahasa pemrograman dibagi menjadi dua, yaitu bahasa tingkat rendah dan bahasa tingkat tinggi. JavaScript merupakan salah satu bahasa pemrograman yang lebih dekat dengan manusia alias high-level language. Oleh karena itu, ia perlu diterjemahkan agar dipahami oleh mesin.

JavaScript termasuk dalam salah satu bahasa pemrograman yang menggunakan interpreter (scripting language). Artinya, kita dapat menulis kode dengan bahasa ini dan langsung diserahkan ke mesin. Baris per baris kode akan diterjemahkan dan dieksekusi oleh mesin. Jika ada kode yang salah, error akan langsung ditampilkan pada saat runtime (program berjalan).

JavaScript sudah sangat marak digunakan dalam pengembangan aplikasi web. Bagi developer web, mereka sudah sangat andal dalam membangun beragam website dengan HTML (HyperText Markup Language) sebagai pembentuk struktur halaman dan CSS (Cascading Style Sheet) untuk styling agar terlihat cantik.

Namun, masalahnya adalah website agak statis. Tidak ada perubahan apa pun yang terjadi secara dinamis, baik dari sisi konten maupun styling. Misalnya, developer web ingin adanya interaktivitas elemen, perubahan styling, memiliki kendali terhadap struktur halaman, meminta data ke server, dll. Semua ini dilakukan hanya dengan JavaScript. Website menjadi lebih interaktif dan dinamis atas datangnya JavaScript.

Pesatnya perkembangan teknologi menuntun JavaScript berkembang. Saat ini, JavaScript sudah merambah berbagai platform. Selain aplikasi browser, banyak juga aplikasi server, desktop, dan lainnya yang dapat dibangun dengan JavaScript. Ini tercapai berkat runtime JavaScript, seperti Node.js dan Bun. Bahkan, beberapa database management system (DBMS), salah satunya MongoDB, juga menggunakan JavaScript sebagai bahasa scripting dan kuerinya.

Sejarah JavaScript

Berdasarkan survei dari Statista pada tahun 2023, JavaScript menjadi bahasa pemrograman dalam posisi peringkat teratas yang paling banyak digunakan oleh para developer. Angkanya sebesar 63,61%. Namun, JavaScript memiliki cerita perjalanan yang cukup bersejarah. Pada mulanya, JavaScript atau sering disingkat dengan JS dikembangkan hanya untuk membuat website lebih “hidup”. Ia dilahirkan sekitar tahun 1995 oleh programmer dari perusahaan Netscape, yaitu Brendan Eich.

Mungkin Anda pernah mendengar nama bahasa pemrograman yang mirip dengan JavaScript. Ia adalah Java. Meskipun namanya mirip, JavaScript tidak memiliki relasi apa pun terhadap bahasa itu, selain perihal “marketing”. Dengan adanya unsur “Java” pada penamaannya, JavaScript menjadi makin populer harapannya. Namun, pada mulanya, JavaScript sempat dinamai LiveScript saat pertama kali diciptakan.

Setelah diadopsi di luar Netscape, JavaScript distandardisasi oleh organisasi internasional bernama European Computer Manufacturers Association, yang disingkat ECMA. Mereka menyusun standar untuk JavaScript yang menjelaskan cara ia bekerja serta spesifikasi-spesifikasinya. Ini dinamakan standar ECMAScript. Harapannya, seluruh platform yang mendukung JavaScript dapat dipastikan menggunakan spesifikasi yang sama. Sejak saat itu, istilah JavaScript atau ECMAScript kerap tertukar padahal keduanya tidaklah sama. JavaScript termasuk bahasa pemrograman, sedangkan ECMAScript adalah standar dari bahasa pemrogramannya, salah satunya JavaScript.

Ada beberapa versi JavaScript yang sudah distandardisasi oleh ECMAScript. Pada tahun 2000 hingga 2010, ECMAScript 3 merupakan versi yang banyak digunakan ketika JavaScript sedang mendominasi. Selama waktu tersebut, sebuah pengerjaan yang ambisius terjadi untuk membentuk ECMAScript 4. Pengerjaan ini direncanakan akan membawa jumlah peningkatan yang sangat banyak. Namun, ambisi tersebut tidak berjalan mulus sehingga pada tahun 2008 pengembangannya dihentikan. Walaupun begitu, ini bukan akhir dari JavaScript.

ECMAScript tetap melanjutkan pengembangannya untuk merilis ECMAScript versi ke-5. Peningkatan ini dilakukan dengan mengurangi ambisinya dan hanya melakukan perbaikan pada hal yang tidak kontroversial. Ini terjadi pada tahun 2009.

Pada tahun 2015, ECMAScript melakukan peningkatan kembali dalam versi keenam. Versi ini membawa perubahan yang cukup besar, termasuk beberapa inovasi yang sempat diurungkan ketika menggarap versi keempat. Sejak saat itu, ECMAScript tetap terus melakukan pembaruan kecil setiap tahunnya.

Dengan semakin berkembangnya JavaScript, browser dan beberapa platform yang mendukung JavaScript juga perlu mengikuti perkembangannya. Jika masih menggunakan platform versi terdahulu, beberapa fitur JavaScript yang baru mungkin saja tidak akan berjalan. Bahkan, hal ini menjadi perhatian yang mendalam bagi pengembang JavaScript. Mereka harus tetap memastikan kompatibilitas dengan beberapa aplikasi lama sehingga browser masih bisa menjalankannya. Bahkan, JavaScript belum dapat dipastikan mengadopsinya saat ada spesifikasi terbaru dari standar ECMAScript.

Demikian sejarah dari perkembangan JavaScript. Kami harap Anda mendapatkan wawasan yang lebih luas sebelum terjun ke fundamentalnya. Berikutnya, kita akan melihat berbagai runtime yang dapat menjalankan program JavaScript.

Let’s check it out!



JavaScript Runtime Environment

Tidak bisa dimungkiri bahwa setiap aplikasi untuk platform berbeda biasanya menggunakan bahasa pemrograman yang berbeda pula. Katakanlah aplikasi web menggunakan JavaScript, aplikasi Android menggunakan Kotlin, aplikasi iOS menggunakan Swift, aplikasi Windows mayoritas menggunakan C#, dan sebagainya. Kini, ternyata JavaScript dapat dimanfaatkan untuk berbagai platform berkat runtime environment di luar browser. Apa itu runtime environment?

Runtime environment adalah tempat sebuah program akan dieksekusi. Ia akan menentukan global object yang dapat diakses oleh program JavaScript. Lalu, apa yang dimaksud dengan global object? Nah, kita akan memahaminya ketika mempelajari masing-masing runtime environment.

Ada tiga macam yang akan kita bahas dalam materi ini, yaitu BrowserNode.js, dan Bun.


Browser

Kebanyakan program JavaScript dijalankan melalui lingkungan browser untuk membuat aplikasi browser interaktif dan dapat menampilkan data yang dinamis. Contohnya, kita memiliki satu buah proyek aplikasi web yang berisi berkas index.html dan index.js dengan isi berikut.

  1. <!DOCTYPE html>
  2. <html>
  3.   <body>
  4.     <h1>My Website</h1>
  5.     <script>
  6.       window.alert('Hello, world!');
  7.     </script>
  8.   </body>
  9. </html>

Berkas di atas adalah index.html yang dibutuhkan untuk menampilkan konten dan struktur halaman web. Jika dilihat, ada program JavaScript di dalamnya yang dibungkus oleh elemen <script>. Jika dijalankan, hasilnya akan seperti berikut.

dos-af5cb43b405a7d669c995369b8df353720240730142412.jpeg

Sebagian besar dari Anda mungkin bingung asal mula kode window.alert('Hello, world!'). Mengapa alert dapat menampilkan browser alert? Inilah yang dimaksud dari global object yang disinggung sebelumnya. Program JavaScript yang dijalankan dalam lingkungan browser memiliki akses terhadap global object window. Selain menampilkan alert saja, ia juga memberikan akses developer untuk memanipulasi seluruh konten yang tampil di browser. Caranya adalah mengakses properti window.document. Program apa pun yang dijalankan dalam runtime ini dapat mengakses objek tersebut. Keren, ya?

Jika mau, Anda dapat bermain program JavaScript dalam runtime browser dengan interactive code berikut.

Cara di atas adalah embedded JavaScript. Ada cara lain untuk menjalankan kode pada browser, yaitu berkas eksternal JavaScript dan Read-Eval-Print-Loop (REPL) versi browser.


External JavaScript

Kode program dalam cara ini ditulis secara terpisah dari berkas HTML. Berkas JavaScript ditulis dengan berkas berekstensi “js”. Kita pindah contoh kode di atas dalam berkas index.js berikut.

  1. window.alert('Hello, world!');

Pemisahan ini membuat program JavaScript tidak lagi terhubung dengan HTML. Oleh karena itu, kita gunakan <script> untuk mengimpornya.


REPL versi Browser

Cara ketiga adalah menjalankannya secara langsung melalui browser atau REPL. Read-Eval-Print-Loop atau disingkat REPL dimiliki juga oleh browser. Caranya sangatlah mudah.

Buka browser kesukaan Anda dan Developer Tools di dalamnya. Developer Tools adalah fitur browser untuk mendukung proses pengembangan aplikasi web. Salah satu fitur yang dimiliki adalah REPL. Ini dapat kita akses dengan membuka tab Console dan mulai menuliskan kode JavaScript.

Lebih jelasnya, silakan perhatikan gambar bergerak berikut.

dos-741e31d7ded107460746bfdee9c9d50820240730144609.gif

Program yang dibuat dan dieksekusi di lingkungan browser biasanya dikenal dengan aplikasi front-end atau aplikasi client. Jika ingin menjalankan program JavaScript dalam sistem komputer atau membangun aplikasi back-end, kita memerlukan runtime environment lain, seperti Node.js dan Bun.

Catatan:
Anda tidak perlu khawatir jika kesulitan dalam memahami contoh kode di atas. Dalam kelas ini, kita akan belajar dari nol hingga mahir menuliskan kode JavaScript.


Node.js

Node.js adalah runtime environment untuk JavaScript yang berbeda dari browser. Meskipun berbeda, seluruh fitur dari bahasa pemrograman JavaScript, yakni membuat variabel, melakukan operasi aritmetika, dsb. dapat dilakukan juga di sana. Hanya saja kita tidak memiliki akses lagi terhadap global object milik browser, seperti alert. Sebagai gantinya, Node.js memberikan akses kepada developer untuk mengakses file system, mengatur database, dan lainnya.

Misalnya, kita dapat mengetahui sistem operasi yang digunakan oleh komputer dengan kode berikut.

  1. console.log(process.platform);

Untuk menjalankan kode di atas, kita perlu memasang Node.js sebagai runtime environment dalam komputer. Anda dapat mengunjungi alamat nodejs.org untuk mendapatkan panduan pemasangan. Jika telah terpasang, Anda akan memiliki akses ke aplikasi yang bernama node di terminal.

Contoh kode di atas mengakses global object bernama process. Objek ini berisi data-data yang berelasi dengan berkas JavaScript yang sedang dieksekusi. Lalu, properti platform dipanggil untuk mengembalikan jenis sistem operasi yang dipakai dalam menjalankan program ini. Ini sama halnya dengan window dalam runtime browser.

Katakanlah kode tersebut kita simpan dalam berkas app.js. Untuk menjalankannya, kita dapat menggunakan perintah berikut.

  1. node app.js

Perintah node di atas memberi tahu komputer untuk menjalankan berkas JavaScript dalam Node.js environment. Berikut hasil eksekusinya.

dos-db11e98f67ada44f74f4b84305bfe5f220240730142410.jpeg

Node.js memiliki alternatif lain untuk menjalankan program tanpa mengeksekusi berkas JavaScript, yaitu memanfaatkan Read-Eval-Print-Loop (REPL). Caranya sangat mudah:

  • buka terminal;
  • jalankan perintah node;
  • tulis kode programnya; dan
  • tekan tombol Enter.

Silakan perhatikan gambar bergerak berikut untuk lebih jelasnya.

dos-20ee7600a25c04f91012a76881c9d9d420240730150025.gif


Bun

Ada alternatif yang dapat digunakan untuk menjalankan program dalam sistem komputer selain Node.js, yaitu Bun. Ia adalah JavaScript runtime baru yang menyajikan ekosistem JavaScript terkini dan berbagai fitur yang mengedepankan kecepatan. Jika mengacu ke halaman resminya, ia dibangun agar tetap kompatibel dengan berbagai fitur dari Node.js.

Sama seperti Node.js, Bun mendukung berbagai sistem operasi, seperti Linux, MacOS, dan Windows. Untuk menjalankan program dengan Bun, kita perlu memasangnya terlebih dahulu dan kita dapatkan perintah bun di terminal setelahnya.

Ada dua cara untuk menjalankan programnya, yaitu mengeksekusi berkas dan REPL. Kita akan gunakan kembali contoh kode sebelumnya sebagai contoh, yaitu app.js.

Untuk menjalankan berkas JavaScript, kita dapat gunakan perintah berikut.

  1. bun run app.js

Wah, ternyata butuh tambahan perintah lagi, yaitu run, ya? Betul, tetapi kita juga dapat menghilangkan perintah itu alias hanya mengetikkan bun app.js. Jangan khawatir karena dua cara ini sebetulnya masih identik (tidak ada perbedaan).

Bagaimana dengan cara REPL? Mudah saja, cukup jalankan perintah berikut.

  1. bun repl

Bagi Anda yang baru pertama kali menjalankan perintah di atas, biasanya Bun akan melakukan beberapa proses sebelum REPL siap digunakan. Jika sudah muncul, jangan ragu untuk menulis kode program apa pun di sana.

dos-7f405f36182ce000379287d39328f8a620240730150517.gif

Itu dia beberapa runtime environment untuk bahasa pemrograman JavaScript. Ternyata ada beberapa runtime, ya. Meskipun demikian, JavaScript memiliki fitur yang seragam dengan beberapa platform atau runtime lainnya. Ya, hal ini karena mereka tetap patuh terhadap standar ECMAScript.

Kami yakin Anda sudah tidak sabar belajar membuat program dengan JavaScript, kan? Ini adalah rasa pada diri kita yang perlu dipertahankan agar dapat menjadi JavaScript developer yang andal. Pada beberapa modul berikutnya, kita akan mulai berkarya dengan JavaScript. Fighting!

Rangkuman Gerbang Dunia JavaScript

Kita telah belajar banyak hal dalam materi JavaScript sebagai bahasa pemrograman. Kami siapkan rangkuman materi terhadap hal yang telah Anda pelajari selama ini. Harapannya, Anda dapat mengingat kembali setiap materi yang disampaikan.


Apa Itu Pemrograman

Pemrograman adalah proses atau kegiatan membuat instruksi yang sistematis untuk berinteraksi dengan komputer dalam memecahkan permasalahan. Manusia membuat beberapa instruksi yang harus dieksekusi oleh komputer dalam bahasa yang dimengertinya, yakni bahasa pemrograman.

Masih ada banyak hal lainnya yang bisa dilakukan oleh komputer melalui programming. Tingkat kompleksitas program berbanding lurus dengan jumlah instruksi. Artinya, makin besar tugas komputer maka makin banyak instruksi yang akan disusun. Bahkan tidak hanya ratusan, ribuan atau jutaan instruksi terstruktur dapat dibangun dalam sebuah program.


Scripting dan Compiled Language

Komputer memerlukan bahasa khusus sehingga perintah-perintah tersebut dapat terlaksana dengan baik. Serangkaian perintah komputer ditulis oleh developer dalam bentuk kode. Kode-kode ini hanya dipahami oleh manusia atau disebut dengan bahasa tingkat tinggi. Ada sangat beragam bahasa pemrograman di luar sana dan memiliki penulisan kode atau sintaksis yang bermacam-macam. Beberapa contohnya adalah JavaScript, Java, C, C++, Python, Matlab, dsb.

Hasil kegiatan menulis kode ini disebut sebagai source code. Berikutnya, source code tersebut akan diubah ke bahasa yang dapat dipahami oleh komputer sehingga bisa dianalisis dan dieksekusi perintah-perintahnya. Ini adalah bahasa tingkat rendah yang disebut dengan bahasa mesin. Bahasa ini sangat sulit dipahami oleh manusia dan komputer hanya memahami bahasa ini.

Dalam tahapan perubahan dari bahasa tingkat tinggi ke bahasa tingkat rendah, ada dua mekanisme yang dapat dilakukan serta setiap bahasa dapat menggunakan cara berbeda, yaitu compiler dan interpreter.

  • Compiled Language
    Ada beberapa bahasa pemrograman akan membutuhkan satu tahapan sebelum instruksinya dapat dijalankan oleh mesin, yaitu proses kompilasi atau compile. Sebelum diserahkan ke mesin, susunan instruksi perlu dikonversi ke bahasa mesin dahulu.
  • Scripting Language
    Tidak seperti compiled language, sebuah program atau source code yang ditulis dengan scripting language tidak memerlukan compiler. Source code dapat langsung diberikan, diterjemahkan, dan dijalankan oleh mesin. Mesin ini menggunakan interpreter dalam melakukannya. Contoh yang sangat dekat dengan kita adalah browser.


Pengenalan JavaScript

JavaScript termasuk dalam salah satu bahasa pemrograman yang menggunakan interpreter (scripting language). Artinya, kita dapat menulis kode dengan bahasa ini dan langsung diserahkan ke mesin. Baris per baris kode akan diterjemahkan dan dieksekusi oleh mesin. Jika ada kode yang salah, error akan langsung ditampilkan pada saat runtime (program berjalan).

Pesatnya perkembangan teknologi menuntun JavaScript berkembang. Saat ini, JavaScript sudah merambah ke berbagai platform. Selain aplikasi browser, banyak juga aplikasi server, desktop, dan lainnya yang dapat dibangun dengan JavaScript. Ini tercapai berkat runtime JavaScript, seperti Node.js dan Bun. Bahkan, beberapa database management system (DBMS), seperti MongoDB, juga menggunakan JavaScript sebagai bahasa scripting dan kuerinya.


Sejarah JavaScript

Berdasarkan survei dari Statista pada tahun 2023, JavaScript menjadi bahasa pemrograman dalam posisi peringkat teratas yang paling banyak digunakan oleh para developer. Pada mulanya, JavaScript atau sering disingkat dengan JS dikembangkan hanya untuk membuat website lebih “hidup”. Ia dilahirkan sekitar tahun 1995 oleh programmer dari perusahaan Netscape, yaitu Brendan Eich.

Sebelum bernama JavaScript, ia sempat dinamai LiveScript. Namun, karena berharap untuk lebih populer, LiveScript terinspirasi dari bahasa pemrograman bernama Java sehingga mengubah namanya menjadi JavaScript.

Beberapa waktu kemudian, JavaScript distandardisasi oleh organisasi bernama ECMA. Mereka menyusun standar agar setiap platform yang mendukung bahasa ini memiliki kesamaan standar, cara kerja, serta spesifikasi-spesifikasinya. Hal ini dinamai standar ECMAScript. Mulai sejak itu, ECMAScript melakukan peningkatan dari tahun ke tahun.

TahunKeterangan

2000–2010

ECMAScript 3 adalah versi yang banyak digunakan ketika JavaScript sedang mendominasi. Selama waktu tersebut, sebuah pengerjaan yang ambisius terjadi untuk membentuk ECMAScript 4. Namun, pengerjaan ini akhirnya dihentikan pada tahun 2008.

2009

Peningkatan masih berlanjut dengan melakukan beberapa perbaikan yang sifatnya tidak kontroversial. Akhirnya, lahir ECMAScript versi 5.

2015

ECMAScript kembali melakukan peningkatan pada versi keenam. Versi ini membawa peningkatan sangat pesat, termasuk beberapa inovasi yang sempat diurungkan ketika menggarap versi keempat.

2015–seterusnya

ECMAScript terus melakukan peningkatan-peningkatan yang kecil setiap tahunnya.


JavaScript Runtime Environment

Runtime environment adalah tempat sebuah program akan dieksekusi. Ia akan menentukan global object yang dapat diakses oleh program JavaScript. Lalu, apa yang dimaksud dengan global object? Nah, kita akan memahaminya ketika mempelajari masing-masing runtime environment.

Ada tiga macam yang akan kita bahas dalam materi ini, yaitu BrowserNode.js, dan Bun.


Browser

Kebanyakan program JavaScript dijalankan melalui lingkungan browser. Contohnya, kita memiliki satu buah proyek aplikasi web yang berisi berkas index.html dan index.js dengan isi berikut.

  1. <!DOCTYPE html>
  2. <html>
  3.   <body>
  4.     <h1>My Website</h1>
  5.  
  6.     <script>
  7.       window.alert('Hello, world!');
  8.     </script>
  9.   </body>
  10. </html>

Berkas di atas adalah index.html yang dibutuhkan untuk menampilkan konten dan struktur halaman web. Jika dilihat, ada program JavaScript di dalamnya yang dibungkus oleh elemen <script>. Jika dijalankan, hasilnya akan seperti berikut.

dos-190eab40abff4946a2cbda9d35ad652c20240730152127.jpeg

Cara di atas adalah embedded JavaScript. Ada cara lain untuk menjalankan kode dalam browser, yaitu berkas eksternal JavaScript dan Read-Eval-Print-Loop (REPL) versi browser.


External JavaScript

Kode program dalam cara ini ditulis secara terpisah dari berkas HTML. Berkas JavaScript ditulis dengan berkas berekstensi “js”. Kita pindah contoh kode di atas dalam berkas index.js berikut.

  1. <!DOCTYPE html>
  2. <html>
  3.   <body>
  4.     <h1>My Website</h1>
  5.  
  6.     <script src="index.js"></script>
  7.   </body>
  8. </html>

Pemisahan ini membuat program JavaScript tidak lagi terhubung dengan HTML. Oleh karena itu, kita gunakan <script> untuk mengimpornya.


REPL versi Browser

Cara ketiga adalah menjalankannya secara langsung melalui browser atau REPL. Read-Eval-Print-Loop atau disingkat REPL dimiliki juga oleh browser. Caranya sangatlah mudah.

Buka browser kesukaan Anda dan Developer Tools di dalamnya. Developer Tools adalah fitur browser untuk mendukung proses pengembangan aplikasi web. Salah satu fitur yang dimiliki adalah REPL. Ini dapat kita akses dengan membuka tab Console dan mulai menuliskan kode JavaScript.


Node.js

Node.js adalah runtime environment untuk JavaScript yang berbeda dari Browser. Meskipun berbeda, seluruh fitur JavaScript, yakni membuat variabel, melakukan operasi aritmetika, dsb., dapat dilakukan juga di sana. Hanya saja kita tidak memiliki akses lagi terhadap global object milik browser, seperti alert. Sebagai gantinya, Node.js memberikan akses kepada developer untuk mengakses file system, mengatur database, dan lainnya.

Misalnya, kita dapat mengetahui sistem operasi yang digunakan oleh komputer dengan kode berikut.

  1. console.log(process.platform);

Contoh kode di atas mengakses global object bernama process. Objek ini berisi data-data yang berelasi dengan berkas JavaScript yang sedang dieksekusi. Lalu, properti platform dipanggil untuk mengembalikan jenis sistem operasi yang dipakai untuk menjalankan program ini. Ini sama halnya dengan window dalam runtime browser.

Katakanlah kode tersebut kita simpan dalam berkas app.js. Untuk menjalankannya, kita dapat menggunakan perintah berikut.

  1. node app.js

Node.js memiliki alternatif lain untuk menjalankan program tanpa mengeksekusi berkas JavaScript, yaitu memanfaatkan Read-Eval-Print-Loop (REPL). Caranya sangat mudah:

  • buka terminal;
  • jalankan perintah node;
  • tulis kode programnya; dan
  • tekan tombol Enter.


Bun

Ada alternatif yang dapat digunakan untuk menjalankan program dalam sistem komputer selain Node.js, yaitu Bun. Ia adalah JavaScript runtime baru yang menyajikan ekosistem JavaScript terkini dan berbagai fitur yang mengedepankan kecepatan. Jika mengacu ke halaman resminya, ia dibangun agar tetap kompatibel dengan berbagai fitur dari Node.js.

Ada dua cara untuk menjalankan programnya, yaitu mengeksekusi berkas dan REPL. Kita akan gunakan kembali contoh kode sebelumnya sebagai contoh, yaitu app.js.

Untuk menjalankan berkas JavaScript, kita dapat gunakan perintah berikut.

  1. bun run app.js

Ternyata butuh tambahan perintah lagi, yaitu run, tetapi kita juga dapat menghilangkan perintah itu alias hanya mengetikkan bun app.js. Dua cara ini sebetulnya masih identik (tidak ada perbedaan).

Untuk REPL, cukup jalankan perintah berikut.

  1. bun repl

Bersambung ke: 


Pengantar 





Mengarungi Lautan Sintaksis




https://javascript-koding.blogspot.com/2026/04/pengantar-mengarungi-lautan-sintaksis.html?m=1

Comments