JavaScript

**JavaScript** () (disingkat **JS**) adalah suatu bahasa pemrograman tingkat tinggi dan dinamis. JavaScript populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Google Chrome, Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript juga dapat disisipkan dalam halaman web menggunakan tag *script*. JavaScript merupakan salah satu teknologi inti World Wide Web selain HTML dan CSS. JavaScript membantu membuat halaman web interaktif dan merupakan bagian aplikasi web yang esensial.

Awalnya hanya diimplementasi sebagai *client-side* dalam penjelajah web, kini *engine* JavaScript disisipkan ke dalam perangkat lunak lain seperti dalam *server-side* dalam server web dan basis data, dalam program non web seperti perangkat lunak pengolah kata dan pembaca PDF, dan sebagai *runtime environment* yang memungkinkan penggunaan JavaScript untuk membuat aplikasi desktop maupun mobile. JavaScript adalah merek dagang yang dikeluarkan dari Oracle Corporation di Amerika Serikat.

## Sejarah

JavaScript pertama kali dikembangkan oleh Brendan Eich dari Netscape di bawah nama *Mocha*, yang nantinya namanya diganti menjadi *LiveScript*, dan akhirnya menjadi *JavaScript*.

*Navigator* sebelumnya telah mendukung Java untuk lebih bisa dimanfaatkan para pemrogram yang non-Java. Maka dikembangkanlah bahasa pemrograman bernama *LiveScript* untuk mengakomodasi hal tersebut. Bahasa pemrograman inilah yang akhirnya berkembang dan diberi nama JavaScript, walaupun tidak ada hubungan bahasa antara Java dengan JavaScript.

JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek *rollover* baik di gambar maupun teks, dan yang penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX.

### Pembuatan oleh Netscape
Browser web pertama dengan antarmuka pengguna grafis, Mosaic, dirilis pada tahun 1993. Dapat diakses oleh orang-orang non-teknis, ini memainkan peran penting dalam pertumbuhan pesat World Wide Web yang baru lahir. Pengembang utama Mosaic kemudian mendirikan perusahaan Netscape, yang merilis browser yang lebih halus, Netscape Navigator, pada tahun 1994. Ini dengan cepat menjadi yang paling banyak digunakan.

Selama tahun-tahun awal Internet, halaman web hanya bisa statis, tanpa perilaku dinamis setelah dimuat ke browser. Karena ada permintaan untuk bahasa scripting di komunitas pengembangan web yang sedang berkembang, Netscape memutuskan untuk memasukkannya ke Navigator pada tahun 1995. Untuk melakukan ini, mereka bekerja dengan Sun Microsystems untuk mengintegrasikan bahasa pemrograman Java, serta merekrut Brendan Eich untuk menanamkan bahasa Skema.

Manajemen Netscape dengan cepat memutuskan bahwa solusi terbaik adalah bagi Eich untuk membuat bahasa baru dengan sintaks yang lebih mirip Java daripada Skema atau bahasa skrip lain yang ada. Meskipun bahasa baru dan implementasi penerjemahnya disebut LiveScript ketika pertama kali dikirimkan sebagai bagian dari Navigator beta pada bulan September 1995, nama tersebut diubah menjadi JavaScript untuk rilis resmi pada bulan Desember.

Nama JavaScript telah menyebabkan beberapa kebingungan karena menyiratkan bahwa itu terkait langsung dengan Java. Karena ledakan dot-com baru saja dimulai dan Java adalah bahasa baru terpanas saat ini, Eich melihat moniker JavaScript sebagai taktik pemasaran oleh Netscape.

### Pengadopsian oleh Microsoft
Microsoft memulai debut dengan Internet Explorer pada tahun 1995, sebagai pengarah perang browser dengan Netscape. Di bagian depan JavaScript, Microsoft merekayasa balik penerjemah Navigator untuk membuatnya sendiri, yang disebut JScript.

JScript pertama kali diluncurkan pada tahun 1996, bersamaan dukungan awal untuk CSS dan ekstensi ke HTML . Masing-masing implementasi ini sangat berbeda dari rekan-rekan mereka di Navigator. Karena perbedaan ini, sulit bagi perancang web untuk membuat situs mereka tampil efektif di kedua browser, oleh karena itu logo "terbaik dilihat di Netscape" dan "terbaik dilihat di Internet Explorer" banyak digunakan selama beberapa tahun.

## Merek dagang
"JavaScript" adalah sebuah merek dagang Oracle Corporation di Amerika Serikat. Merek dagang ini awalnya di tujukan kepada Sun Microsystems pada tanggal 6 Mei 1997, dan dipindahkan ke Oracle ketika mereka mengakuisisi Sun pada tahun 2009.

Sebuah surat diedarkan pada bulan September 2024, dipelopori oleh Ryan Dahl, menyebutkan pada Oracle untuk membebaskan merek dagan JavaScript. Brendan Eich, pencipta asli JavaScript, merupakan salah satu dari 14.000 penandatangan yang mendukung inisiatif ini.

## Penggunaan lainnya

### Mesin JavaScript
Penggunaan JavaScript telah berkembang melampaui akar peramban webnya. Mesin JavaScript sekarang telah tertanam dalam berbagai dari perangkat lunak lainnya, baik untuk penerapan situs web sisi server dan aplikasi non-peramban.

Percobaan awal pada dalam mempromosikan penggunaan JavaScript sisi server adalah Netscape Enterprise Server dan Internet Information Services Microsoft, tetapi itu ceruk kecil. Penggunaan sisi peladen akhirnya mulai tumbuh di akhir tahun 2000-an, dengan kreasi dari Node.js dan pendekatan lainnya.

JavaScript baru-baru ini mulai muncul di beberapa sistem tertanam, biasanya dengan memanfaatkan Node.js.

## Contoh kode JavaScript

### Variabel
Penulisan variabel di JavaScript standar tidak mempunyai data type. Semua value dapat disimpan di semua variabel. Variabel dapat ditentukan oleh let (variabel level blok), var (variabel level fungsi) atau const (variabel tak dapat diubah).

#### Var

Berikut adalah contoh penulisan JavaScript dengan menggunakan var:
```javascript
var x = 1;
var y = 2;
var z = x + y;
```


#### Let

Berikut adalah contoh penulisan JavaScript dengan menggunakan let:
```javascript
let panjang = 5;
let lebar = 10 // penggunaan titik koma dalam JavaScript adalah suatu pilihan opsional
let luas = panjang * lebar; // 50
```


#### Const

Berikut adalah contoh penulisan JavaScript dengan menggunakan const:
```javascript
const angkaPertama = 5;
const angkaKedua = 6;
let jumlah = angkaPertama + angkaKedua;
```


### Komentar
Penulisan komentar (*comment*) pada JavaScript terdapat dua cara, yaitu komentar untuk satu baris (s*ingle line comments*) dan komentar untuk lebih dari satu baris (*multi-line comments*). Baris kode komentar tidak akan dieksekusi oleh JavaScript dan akan diabaikan.

Contoh penulisannya adalah sebagai berikut :

#### Komentar untuk satu baris

```javascript
// ini adalah komentar untuk satu baris
let kata = "Halo!";
console.log(kata);
```


#### Komentar untuk lebih dari satu baris

```javascript
/*
ini adalah komentar 
untuk lebih dari satu baris. 
*/
let kata = "Hai!";
console.log(kata);
```


### Operator aritmetika
Operator aritmetika merupakan operator untuk melakukan operasi aritmetika seperti penjumlahan, pengurangan, perkalian, pembagian, operasi modulus, dan lain sebagainya. Berikut adalah penulisan operator aritmetika dalam JavaScript:
```javascript
// Berikut adalah operator penjumlahan 
let angkaPertama = 1;
let angkaKedua = 99;
let hasilPenjumlahan = angkaPertama + angkaKedua;

// Berikut adalah operator pengurangan 
let angkaKetiga = 100;
let angkaKeempat = 99;
let hasilPengurangan = angkaKetiga - angkaKeempat;

// Berikut adalah operator perkalian
let angkaKelima = 20;
let angkaKeenam = 5; 
let hasilPerkalian = angkaKelima * angkaKeenam;

// Berikut adalah operator perpangkatan
let angkaKetujuh = 2;
let angkaKedelapan = 4;
let hasilPerpangkatan = angkaKetujuh**angkaKedelapan;

// Berikut adalah operator pembagian 
let angkaKesembilan = 100;
let angkaKesepuluh = 10;
let hasilPembagian = angkaKesembilan / angkaKesepuluh;

// Berikut adalah operator sisa bagi atau modulus 
let angkaKesebelas = 10;
let angkaKeduabelas = 2;
let hasilModulus = angkaKesebelas % angkaKeduabelas;
```


## Tipe data
Dalam JavaScript, tipe data dibedakan menjadi tipe data primitif dan non-primitif.

### Tipe data primitif

* Boolean
* Null 
* Undefined 
* Number 
* BigInt
* String
* Symbol

### Tipe data non-primitif

* Object : Digunakan untuk objek, termasuk objek bawaan seperti Array, Date, dan Math, serta objek yang dibuat oleh pengguna. Contoh: {name: ‘Jhon Doe’, age: 13}, [1, 2, 3]
* Array : Digunakan untuk kumpulan nilai yang dikelompokkan secara terurut. Contoh: [1, 2, 3, 4]

## Penulisan JavaScript
Kode JavaScript biasanya dituliskan dalam bentuk fungsi yang ditaruh di tag  yang dibuka dengan tag `<script type="text/javascript">`.

```html4strict
<script type="text/javascript">
	alert("Halo Dunia!");
</script>
```

Kode JavaScript juga bisa diletakkan di file tersendiri yang berekstensi .js (singkatan dari JavaScript). Untuk memanggil kode JavaScript yang terdapat di file sendiri, di bagian awal  harus ditentukan dahulu nama file .js yang dimaksud menggunakan contoh kode seperti berikut:

```html4strict
<script type="text/javascript" src="alamat.js">
</script>
```


### Skrip di ''head''
Skrip ini akan dieksekusi ketika dipanggil (biasanya berbentuk *function*) atau dipanggil berdasarkan *trigger* pada *event* tertentu. Peletakkan skrip di *head* akan menjamin skrip dimuat terlebih dahulu sebelum dipanggil.


```html4strict
<html>
<head>
<script type="text/javascript">
...
</script>
</head>
</html>
```


### Skrip di ''body''
Skrip ini dieksekusi ketika halaman dimuat sampai di bagian `<body>`. Ketika menempatkan skrip pada bagian `<body>` berarti antara isi dan JavaScript dijadikan satu bagian.


```html4strict
<html>
<head>
</head>
<body>
<script type="text/javascript">
...
</script>
</body>
</html>
```


Jumlah JavaScript di  dan  yang ditempatkan pada dokumen tidak terbatas.

### Skrip eksternal
Terkadang ada yang menginginkan menjalankan JavaScript yang sama dalam beberapa kali pada halaman yang berbeda, tetapi tidak mau disibukkan jika harus menulis ulang script yang diinginkan di setiap halaman. Maka JavaScript dapat ditulis di file secara eksternal. Jadi, antara dokumen HTML dan JavaScript dipisahkan, kemudian berkas tersebut dipanggil dari dokument HTML. Berkas JavaScript tersebut disimpan dengan ekstensi .js.

**JavaScript: js/xxx.js** `document.write("pesan ini tampil ketika halaman diload");`

Untuk menggunakan eksternal JavaScript (.js) dipakai atribut "src" pada tag  pada halaman HTML-nya.

```html4strict
<html>
<head>
</head>
<body>
<script src="xxx.js">
</script>
<p>Script di atas berada di berkas "xxx.js" (eksternal) </p>
</body>
</html>
```


## Alat pengembang
Alat y ang penting telah berkembang dengan bahasa.

* Setiap browser web utama memiliki alat pengembangan web bawaan, termasuk sebuah debugger JavaScript.
* Alat analisis program statis, seperti ESLint dan JSLint, memindai kode JavaScript untuk kesesuaian dengan serangkaian standar dan pedoman.
* Beberapa browser memiliki profiler bawaan. Pustaka profiler yang berdiri sendiri juga telah dibuat, seperti benchmark.js dan jsbench.
* Banyak teks editor memiliki dukungan penyorotan sintaks untuk kode JavaScript.

## Referensi

## Bacaan lanjutan

* Flanagan, David. *JavaScript: The Definitive Guide*. 7th edition. Sebastopol, California: O'Reilly, 2020.
* Haverbeke, Marijn. *Eloquent JavaScript*. 3rd edition. No Starch Press, 2018. 472 pages. .''(download)''
* Zakas, Nicholas. *Principles of Object-Oriented JavaScript*, 1st edition. No Starch Press, 2014. 120 pages. .

## Lihat pula

* Cascading Style Sheets(CSS)
* HTML5

## Pranala luar

*  Dokumentasi resmi Mozilla's mengenai JavaScript 
*  Tutorial JavaScript
*  Bahasa pemograman dalam JavaScript
* 
*