Top Advertisement

Pengenalan JavaScript: Mengenal Keistimewaan JavaScript

Pengenalan JavaScript: Pengetahuan Dasar Tentang JavaScript

Mari kita lihat apa yang membuat JavaScript begitu istimewa, apa yang bisa kita capai dengannya, dan teknologi apa saja yang dapat berinteraksi dengan JavaScript.


Apa Itu JavaScript?

JavaScript adalah bahasa pemrograman tingkat tinggi dan dinamis. Tingkat tinggi maksudnya adalah memiliki sintaks yang mudah dipahami manusia. Dinamis berarti perilaku program dapat diubah saat program sedang berjalan dengan menambahkan, menghapus atau mengubah baris kode. 

JavaScript diciptakan untuk "menghidupkan halaman web". Website yang awalnya statis, isinya itu-itu saja, menjadi hidup dengan berbagai interaksi.  

Program-program dalam bahasa ini disebut skrip (script). Mereka dapat ditulis langsung di dalam HTML halaman web atau dalam file terpisah (*.js) dan dijalankan secara otomatis saat halaman dimuat. 

Skrip disediakan dan dieksekusi sebagai teks biasa. Mereka tidak memerlukan persiapan khusus atau kompilasi untuk dijalankan. 

Kode JavaScript akan dieksekusi secara berurutan dari atas ke bawah. Ini disebut "Synchronous" atau "sinkronus". 

Synchronous dalam konteks pemrograman mengacu pada cara eksekusi kode yang terjadi secara berurutan, satu pernyataan setelah yang lain, dan menunggu setiap pernyataan selesai sebelum melanjutkan ke pernyataan berikutnya. 

Maksudnya, kode JavaScipt akan dieksekusi perbaris. Baris pertama selesai, lanjut baris kedua, dan seterusnya.  

Namun ada juga aynchronous dalam JavaScript, yaitu kebalikan dari sinkronus, tidak berurutan. Metode yang dapat digunakan untuk melakukan asinkronus anatara lain: callback, promise, dan async/await


 

Kenapa diberi nama JavaScript?

Ketika pertama kali dikembangkan, JavaScript awalnya dikenal dengan nama "LiveScript". Namun, karena popularitas Java yang tinggi pada saat itu, keputusan diambil untuk mengaitkan bahasa baru ini sebagai "adik" dari Java sebagai strategi pemasaran yang menguntungkan.

Namun, seiring berjalannya waktu, JavaScript menjadi bahasa yang sepenuhnya mandiri dengan spesifikasinya sendiri yang disebut ECMAScript, dan sekarang tidak memiliki hubungan sama sekali dengan Java.




JavaScript sama sekali tidak sama dengan Java. Meskipun JavaScript dan Java memiliki beberapa kesamaan dalam hal sintaksis, namun tujuan, dan fitur keduanya sangat berbeda. 

JavaScript dikembangkan untuk meningkatkan interaktivitas halaman web dan berjalan di lingkungan browser. Sementara itu, Java dirancang sebagai bahasa pemrograman umum yang dapat digunakan untuk membangun berbagai jenis aplikasi seperti perangkat lunak desktop, perangkat seluler, dan sistem server, dan dieksekusi di lingkungan Java Virtual Machine (JVM). 

Saat ini, JavaScript dapat dijalankan tidak hanya di browser, tetapi juga di server, atau bahkan di perangkat apa pun yang memiliki program khusus yang disebut mesin JavaScript (JavaScript Engine).


Browser memiliki mesin yang terintegrasi yang kadang-kadang disebut "mesin virtual JavaScript" atau JavaScript virtual machine.

Berikut adalah beberapa mesin JavaScript yang umum digunakan dan browser yang menggunakan mesin tersebut:


  1. V8:
    • Penggunaan: Google Chrome, Opera, Brave
    • Deskripsi: V8 dikembangkan oleh Google dan merupakan mesin JavaScript yang sangat cepat dan efisien. Mesin ini ditulis dalam bahasa C++ dan dirancang untuk meningkatkan kinerja eksekusi JavaScript di browser. V8 juga digunakan sebagai mesin JavaScript di Node.js.
  2. SpiderMonkey:
    • Penggunaan: Mozilla Firefox
    • Deskripsi: SpiderMonkey adalah mesin JavaScript yang dikembangkan oleh Mozilla. Mesin ini merupakan salah satu mesin JavaScript pertama yang ada dan telah mengalami banyak perkembangan sejak saat itu. SpiderMonkey memiliki dukungan luas terhadap standar ECMAScript dan memiliki fitur-fitur khusus yang unik.
  3. JavaScriptCore:
    • Penggunaan: Safari
    • Deskripsi: JavaScriptCore, juga dikenal sebagai Nitro, adalah mesin JavaScript yang digunakan oleh browser Safari. Mesin ini dikembangkan oleh Apple dan terkenal karena kinerja tinggi dan optimasi yang canggih.
  4. Chakra:
    • Penggunaan: Internet Explorer (versi sebelumnya), Microsoft Edge (versi sebelumnya)
    • Deskripsi: Chakra awalnya dikembangkan oleh Microsoft untuk Internet Explorer. Namun, dengan peluncuran Microsoft Edge, mereka mengganti mesin JavaScript mereka menjadi V8 yang digunakan oleh Chrome. Mesin Chakra tidak lagi dikembangkan secara aktif.

Selain mesin-mesin di atas, ada juga beberapa mesin JavaScript lain yang digunakan pada browser yang kurang populer atau yang telah dihentikan pengembangannya. Contohnya adalah Rhino (Mozilla), Carakan (Opera), dan banyak lainnya.





Bagaimana Mesin Bekerja?

Mesin-mesin itu rumit. Tapi dasarnya mudah dipahami.
  1. Mesin membaca atau menganalisis skrip JavaScript.
  2. Skrip JavaScript dikompilasi menjadi kode mesin yang dapat dieksekusi.
  3. Kode mesin dieksekusi satu per satu, menghasilkan output yang diharapkan.

Mesin menerapkan optimisasi untuk meningkatkan performa eksekusi kode. Selama eksekusi, mesin memantau dan menganalisis data yang mengalir melalui skrip. Mesin menggunakan informasi yang diperoleh secara dinamis selama eksekusi skrip untuk melakukan optimisasi pada kode mesin yang sedang berjalan. 



Apa Saja Kemampuan JavaScript dalam Sebuah Browser?

JavaScript modern adalah bahasa pemrograman yang "aman". Ia tidak memberikan akses tingkat rendah (low-level access) ke memori, media penyimpanan, dan CPU, karena awalnya dibuat untuk browser yang tidak membutuhkannya. 

Kemampuan JavaScript bervariasi tergantung pada lingkungan di mana ia berjalan. Sebagai contoh, ketika dijalankan di lingkungan Node.js, JavaScript memiliki dukungan untuk membaca/menulis file sembarang, melakukan permintaan jaringan, dan banyak lagi. 

Sedangkan JavaScript di lingkungan browser dapat melakukan apapun yang terkait dengan manipulasi halaman web, interaksi dengan pengguna, dan koneksi ke web server.


Di browser, JavaScript dapat melakukan:

  1. Manipulasi HTML:

    Menambahkan dan menghapus elemen HTML, mengubah konten yang ada, dan memodifikasi gaya tampilan.

  2. Merespon Aksi Pengguna:

    Menanggapi tindakan pengguna seperti mengklik mouse, menggerakkan pointer, atau menekan tombol dengan menjalankan fungsi yang sesuai.

  3. Interaksi Jaringan:

    Mengirim permintaan ke server jarak jauh melalui jaringan untuk mengunduh atau mengunggah file menggunakan teknologi AJAX

  4. Interaksi dengan Pengunjung:

    Mengelola cookie, mengajukan pertanyaan kepada pengunjung, dan menampilkan pesan kepada pengguna.

  5. Penyimpanan Lokal:

    Menyimpan data di browser pengguna menggunakan fitur "local storage" untuk mengingat informasi kunjungan halaman. Contoh penggunaan yang umum dari local storage adalah menyimpan preferensi pengguna, seperti pengaturan tema, bahasa, atau preferensi tampilan lainnya. 



Apa yang Tidak Dapat Dilakukan oleh JavaScript di Browser?

Kemampuan JavaScript di browser dibatasi untuk melindungi keamanan pengguna. Tujuannya adalah mencegah halaman web jahat mengakses informasi pribadi atau merusak data pengguna.

Contoh pembatasan tersebut antara lain:

  1. JavaScript pada halaman web tidak memiliki akses langsung untuk membaca/menulis file di hard disk, menyalinnya, atau menjalankan program. Ia juga tidak dapat mengakses fungsi sistem operasi secara langsung.

    Browser modern memungkinkan akses terbatas untuk bekerja dengan file, namun akses tersebut hanya diberikan jika pengguna melakukan tindakan tertentu, seperti menyeret file ke jendela browser atau memilih file melalui elemen <input>.
  2. Interaksi dengan perangkat seperti kamera/mikrofon membutuhkan izin eksplisit dari pengguna. Sehingga halaman yang menggunakan JavaScript tidak dapat secara diam-diam mengaktifkan kamera web, mengawasi lingkungan sekitar, atau mengirim informasi tanpa izin.
  3. Tab/jendela yang berbeda dalam browser biasanya beroperasi secara terpisah dan tidak memiliki akses langsung satu sama lain.

    Terkadang, mereka dapat berkomunikasi jika satu jendela menggunakan JavaScript untuk membuka jendela lain. Namun, meskipun demikian, JavaScript dari satu halaman tidak dapat mengakses halaman lain jika halaman-halaman tersebut berasal dari situs yang berbeda dalam hal domain, protokol, atau port.

    Kebijakan ini dikenal sebagai Same-Origin Policy atau "Kebijakan Asal yang Sama". Untuk memungkinkan pertukaran data antara halaman-halaman yang berasal dari situs yang berbeda, keduanya harus secara eksplisit menyetujui pertukaran tersebut dan mengimplementasikan kode JavaScript khusus yang mengaturnya. 
  4. JavaScript dapat dengan mudah berkomunikasi dengan server tempat halaman saat ini berasal melalui jaringan. Namun, JavaScript memiliki keterbatasan dalam menerima data dari situs atau domain lain.

    Jika kita ingin mengambil data dari situs atau domain lain, kita perlu mendapatkan izin eksplisit dari pihak yang memiliki situs tersebut.

    Izin ini biasanya diberikan melalui header HTTP, dan ini dilakukan untuk menjaga keamanan. Ini adalah salah satu langkah perlindungan yang diterapkan untuk mencegah penyalahgunaan dan melindungi pengguna dari potensi ancaman keamanan.

Pembatasan-pembatasan tersebut tidak berlaku pada JavaScript bila digunakan di luar browser, misalnya di server. Browser modern juga mengizinkan plugin/ekstensi yang dapat meminta izin yang lebih luas.



Apa yang Membuat JavaScript Unik?

JavaScript adalah bahasa pemrograman yang unik karena keserbagunaannya dan penggunaannya yang meluas di berbagai platform. Ini adalah bahasa pemrograman tingkat tinggi, dinamis, dan terinterpretasi yang dapat digunakan untuk skrip sisi klien (client-side scripting) maupun sisi server (server-side scripting)

JavaScript memungkinkan pembuatan konten web interaktif dan dinamis, seperti animasi, permainan, dan formulir interaktif. 

Selain itu, JavaScript dapat digunakan untuk membuat aplikasi web dan mobile, serta aplikasi desktop dan sisi server. 

JavaScript juga didukung secara luas dan diaktifkan secara default oleh banyak peramban web, menjadikannya pilihan populer untuk pengembangan web. 


Mengapa JavaScript menjadi Populer? Apa saja fitur yang ada di JavaScript? 

JavaScript memiliki banyak fitur yang memungkinkan pengembang untuk membuat aplikasi web yang lebih kompleks dan interaktif. Beberapa fitur penting dari JavaScript adalah:

  1. Manipulasi DOM (Document Object Model)

    DOM adalah representasi struktur halaman web yang dibangun oleh browser. JavaScript memungkinkan pengembang untuk mengakses dan memanipulasi elemen HTML dan CSS di halaman web secara dinamis.

    Dengan menggunakan metode dan properti yang disediakan oleh JavaScript, elemen-elemen tersebut dapat ditambahkan, dihapus, dimodifikasi, atau diubah atribut-atributnya. Hal ini memungkinkan pembuatan efek visual yang menarik dan perubahan dinamis pada tampilan halaman web.
  2. Event Handling

    JavaScript memungkinkan pengembang untuk menangani interaksi pengguna dengan halaman web melalui event. Event adalah tindakan seperti klik mouse, pengisian formulir, atau pergerakan mouse yang terjadi di halaman web.

    Dengan JavaScript, pengembang dapat menentukan respons yang diinginkan ketika suatu event terjadi. Misalnya, ketika pengguna mengklik tombol, JavaScript dapat mengubah warna latar belakang halaman atau menampilkan pesan kepada pengguna.
  3. Validasi Formulir

    JavaScript juga digunakan untuk melakukan validasi formulir pada halaman web. Pengembang dapat menentukan aturan validasi untuk memeriksa apakah input yang dimasukkan oleh pengguna sesuai dengan kebutuhan.

    Hal ini membantu memastikan bahwa data yang dikirimkan oleh pengguna valid sebelum dikirim ke server.
  4. Animasi:

    Dengan JavaScript, pengembang dapat membuat animasi pada halaman web.  Animasi ini dapat digunakan untuk meningkatkan pengalaman pengguna dan memberikan interaksi yang lebih menarik.
  5. Komunikasi dengan Server

    JavaScript memungkinkan komunikasi dengan server melalui permintaan jaringan. Dengan menggunakan teknologi seperti AJAX (Asynchronous JavaScript and XML), pengembang dapat mengirimkan permintaan ke server secara asinkron dan menerima responsnya tanpa harus me-refresh seluruh halaman web. 
  6. Pengolahan Data

    JavaScript memiliki fitur yang kuat untuk pengolahan data. Pengembang dapat menggunakan struktur data seperti array dan objek, serta fungsi-fungsi bawaan yang disediakan oleh JavaScript, untuk memanipulasi dan mengolah data secara efisien.

    Hal ini sangat berguna dalam mengelola dan memanipulasi data yang diperoleh dari sumber eksternal, seperti API atau basis data.
  7. Modularitas

    JavaScript mendukung konsep modularitas dengan menggunakan modul atau pustaka eksternal. Modul memungkinkan pengembang untuk membagi kode JavaScript menjadi bagian-bagian yang lebih kecil dan terorganisir, yang dapat digunakan kembali dan dikelola dengan lebih baik. 

    Dengan menggunakan modul, pengembang dapat meningkatkan efisiensi pengembangan dan memudahkan pemeliharaan kode.

Itulah beberapa fitur penting dari JavaScript yang membuatnya menjadi bahasa pemrograman yang populer dalam pengembangan web. Dengan kekuatannya dalam menghidupkan halaman web dan interaksi dengan pengguna, JavaScript menjadi fondasi penting dalam pengembangan aplikasi web modern.


Bahasa "di atas" JavaScript

JavaScript bukanlah bahasa yang cocok untuk semua orang karena setiap orang memiliki kebutuhan dan proyek yang berbeda. Oleh karena itu, sekarang telah muncul banyak bahasa pemrograman baru yang dapat dikonversi menjadi JavaScript sebelum dieksekusi di browser. 

Proses mengonversi kode dari satu bahasa pemrograman ke bahasa pemrograman lain yang memiliki struktur dan sintaksis yang berbeda disebut transpilasi (transpilation). Alat atau program yang digunakan untuk melakukan transpilasi disebut transpiler.

Contoh bahasa-bahasa tersebut, antara lain:

  1. CoffeeScript

    CoffeeScript adalah syntactic sugar untuk JavaScript. Ia memperkenalkan sintaksis yang lebih singkat, memungkinkan kita menulis kode yang lebih jelas dan tepat. 

    Sintaksis CofeeScript lebih ringkas dibanding JavaScript. 


  2. TypeScript

    TypeScript berfokus pada penambahan "pencatatan data yang ketat" untuk menyederhanakan pengembangan dan pemeliharaan sistem kompleks. Bahasa ini dikembangkan oleh Microsoft. 



  3. Flow

    Flow juga menambahkan pencatatan data, tetapi dengan cara yang berbeda. Dikembangkan oleh Facebook.
  4. Dart

    Dart adalah bahasa mandiri yang memiliki mesin sendiri yang berjalan di lingkungan non-browser (seperti aplikasi mobile), tetapi juga dapat ditranspilasi menjadi JavaScript. Dikembangkan oleh Google untuk Framework Flutter.

    Untuk mengkonversi dari bahasa Dart ke JS, gunakan perintah dart2js yang disediakan Dart SDK.

    dart2js file.dart -o file.js
  5. Brython

    Brython adalah transpiler Python ke JavaScript yang memungkinkan pengembangan aplikasi web menggunakan bahasa Python secara langsung di browser.

    Contoh penggunaan Brython:

    <html>
    <head>
      <title>Brython Example</title>
      <script src="https://cdn.jsdelivr.net/npm/brython@3.10.2/brython.min.js" type="text/javascript"></script>
    </head>
    <body>
      <script type="text/python">
        # Kode Python dijalankan di sini
        def hello():
          print("Hello, world!")
    
        hello()
      </script>
    </body>
    </html>
          
  6. Kotlin

    Kotlin adalah bahasa pemrograman modern, ringkas, dan aman yang dapat ditargetkan ke browser atau Node.

    Kotlin adalah bahasa pemrograman yang awalnya dikembangkan oleh JetBrains untuk pengembangan aplikasi berbasis Java. Namun, Kotlin juga dapat dikompilasi menjadi JavaScript sehingga dapat dijalankan di lingkungan web.

    Kode Kotlin perlu ditranspilasi dengan transpiler Kotlin/JS


Bahasa lainnya: 

  1. Elm
  2. PureScript
  3. ClojureScript
  4. ReasonML
  5. Haxe
  6. AssemblyScript
  7. Opal
  8. BabelScript
  9. Fay
  10. ScriptSharp
  11. JSX (dalam konteks React)
  12. WebSharper


Meskipun kita bisa menggunakan salah satu bahasa yang dapat ditranspilasi ini, kita juga harus menguasai JavaScript untuk benar-benar memahami apa yang kita lakukan.


Ringkasan

Berikut poin-poin penting tentang JavaScript yang perlu kamu catat: 
  1. JavaScript adalah bahasa pemrograman tingkat tinggi dan dinamis yang diciptakan untuk membuat halaman web lebih interaktif.
  2. Skrip JavaScript dapat ditulis langsung di dalam HTML halaman web atau dalam file terpisah dan dijalankan saat halaman dimuat.
  3. JavaScript tidak memerlukan persiapan khusus atau kompilasi sebelum dijalankan.
  4. JavaScript dapat dieksekusi secara sinkronus (berurutan) atau asinkronus (tidak berurutan) menggunakan metode seperti callback, promise, dan async/await.
  5. JavaScript tidak memiliki hubungan dengan Java, meskipun memiliki sedikit kesamaan dalam sintaksis.
  6. JavaScript dijalankan menggunakan mesin JavaScript, seperti V8, SpiderMonkey, JavaScriptCore, dan Chakra, yang terintegrasi dalam browser.
  7. JavaScript di browser memiliki kemampuan untuk memanipulasi HTML, merespon aksi pengguna, berinteraksi dengan jaringan, berinteraksi dengan pengunjung, dan melakukan penyimpanan lokal.
  8. JavaScript di browser memiliki beberapa batasan keamanan, seperti akses terbatas ke file sistem, akses terbatas ke perangkat, dan kebijakan asal yang sama untuk pertukaran data antara halaman-halaman yang berasal dari situs yang berbeda.
  9. JavaScript populer karena keserbagunaannya, penggunaannya yang meluas di berbagai platform, dan fitur-fiturnya seperti manipulasi DOM, event handling, validasi formulir, animasi, komunikasi dengan server, pengolahan data, dan modularitas.
  10. Ada bahasa-bahasa lain yang dapat ditranspilasi menjadi JavaScript sebelum dieksekusi di browser, seperti CoffeeScript, TypeScript, Flow, Dart, Brython, Kotlin, dan lainnya.
  11. Meskipun menggunakan bahasa yang dapat ditranspilasi, pemahaman tentang JavaScript tetap penting untuk menguasai pengembangan web dengan baik.