JavaScript Untuk Pemula
JavaScript Untuk Pemula
Daftar Isi....................................................................................................................................................... 2
1. Mengenal JavaScript............................................................................................................................. 4
a. Pengertian...................................................................................................................................................4
b. Meletakkan Skrip JavaScript.......................................................................................................................4
c. Mengatasi Error pada JavaScript...............................................................................................................6
d. Menampilkan Hasil Program......................................................................................................................7
e. Komentar....................................................................................................................................................8
3. Objek JavaScript................................................................................................................................. 33
a. Membuat dan Mengakses Objek..............................................................................................................33
b. Mengubah dan Menghapus Property......................................................................................................34
c. Berbagai Nilai Property............................................................................................................................35
5. DOM JavaScript.................................................................................................................................. 38
6. BOM JavaScript.................................................................................................................................. 42
7. Storage............................................................................................................................................... 45
8. JSON................................................................................................................................................... 47
JavaScript merupakan bahasa pemrograman web yang pemrosesan ya dilakukan di sisi client.
Karena berjalan di sisi client, JavaScript dapat dijalankan hanya dengan menggunakan
browser. Berbeda dengan PHP yang bekerja di sisi server, untuk menjalankan skrip
JavaScript tidak memerlukan refresh pada browser.
JavaScript biasanya dijalankan ketika ada event tertentu yang terjadi pada halaman web. Baik
event yang dilakukan oleh user, maupun event yang terjadi karena adanya perubahan pada
halaman website.
JavaScript mulai sangat populer sejak munculnya query sebagai salah satu library yang
memudahkan penggunaan JavaScript. Namun seiring munculnya library baru dan framework
baru dengan berbagai kelebihanya, popularitas jQuery mulai tergeser.
Ada berbagai cara meletakkan kode JavaScript pada dokumen HTML. Pembaca bebas
menggunakan cara yang paling sesuai dengan selera, namun biasanya disesuaikan dengan
kebutuhan atau keadaan. Berikut berbagai cara meletakkan kode Javasacript.
1. Menggunakan Event Handler (Inline)
Cara ini biasanya digunakan jika kode JavaScript hanya sedikit atau sekedar memanggil
function. Cara meletakkan kode JavaScript melalui cara ini yaitu dengan meletakkan kode
setelah attribut event pada tag HTML. Pada contoh skrip berikut, akan menampilkan kotak
pesan ketika dokumen baru dibuka dan ketika klik tombol.
File 1_b_1_inline.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Inline</title>
5. </head>
6. <body onload="alert('Selamat Datang!')">
7. <button onclick="alert('Anda menekan tombol')">Klik di sini</button>
8. </body>
9. </html>
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Internal</title>
5. <script type="text/javascript">
6. alert("Selamat Datang!");
7. </script>
8. </head>
9. <body>
10. <script>
11. document.write("Latihan JavaScript");
12. </script>
13. </body>
14. </html>
1. function hallo(){
2. alert("Pesan ini dari file 1_b_3_skrip.js!");
3. }
File 1_b_3_eksternal.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Eksternal</title>
5. <script src="1_b_3_skrip.js"></script>
6. </head>
7. <body>
8. <button onclick="hallo()">Klik ini</button>
9. </body>
10. </html>
Dalam menuliskan program pasti sering mengalami error pada program. Error pada
JavaScript tidak akan menampilkan pesan apapun pada halaman browser seperti PHP, jadi
akan sedikit menyulitkan bagi programmer. Tapi, tidak perlu khawatir, karena beberapa
browser menyediakan tool untuk mengatasi error pada JavaScript. Seperti pada browser
Google Chrome atau Microsoft Edge disediakan menu Developer Tool. Biasanya pesan error
pada program JavaScript akan tampil pada tab Console. Fitur ini dapat diakses dengan cara
klik kanan lalu pilih Inspect (inspeksi) atau tekan Ctrl+Shif+I.
Pada gambar di atas, tampak pesan error berwarna merah pada bagian kanan browser.
Ada berbagai cara menampilkan hasil program yang dibuat dengan JavaScript baik untuk
tujuan utama dibuatnya program maupun untuk menampilkan pesan kesalahan ketika terjadi
kesalahan pada program.
1. Menampilkan Hasil Program Dengan alert()
Cara ini digunakan yaitu dengan menampilkan hasil program melalui kotak pesan. Caranya
dengan meletakkan teks atau variabel di dalam tanda kurung fungsi alert(). Pada beberapa
contoh sebelumnya juga sudah ditunjukkan beberapa contoh menampilkan hasil program
melalui alert().
2. Menampilkan hasil program dengan write()
Cara ini dilakukan dengan menuliskan teks atau variabel di dalam tanda kurung skrip
document.write(). Hasil program yang ditampilkan dengan cara ini akan langsung tampil
pada halaman web.
3. Menampilkan hasil program di dalam tag HTML
Cara ini dilakukan dengan membuat tag container terlebih dahulu yang diberi atribut id
tertentu. Kemudian mendeteksi tag tersebut dengan method getElementById() dimana id
dituliskan di dalam kurung skrip tersebut. Untuk menampilkan hasil program, tuliskan teks
atau variabel setelah property innerHTML yang dipisahkan dengan tanda sama dengan.
Penggunaan cara ini harus disertai dengan penggunaan event onload.
4. Menampilkan hasil program dengan console log
Cara ini akan menampilkan hasil program pada tab console pada menu Development Tool.
Caranya yaitu dengan menggunakan skrip console.log(). Data atau variabel yang akan
ditampilkan ditulis di dalam kurung. Cara ini biasanya hanya untuk menampilkan informasi
selama proses pembuatan program.
Berikut ini contoh berbagai cara menampilkan data seperti yang telah disebutkan di atas:
File 1_d_menampilkan_data.html
1. <!DOCTYPE HTML>
f. Komentar
Komentar pada pemrograman merupakan teks yang tidak akan dieksekusi sebagai program.
Komentar biasanya untuk memberi keterangan pada skrip program. Cara menuliskan
komentar pada JavaScript yaitu dengan meletakkan tanda // sebelum komentar, jika komentar
hanya satu baris. Jika komentar lebih dari satu baris, maka komentar ditulis di antara tanda /*
dan */. Berikut ini contoh penulisan komentar:
File 1_e_komentar.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. //Ini komentar satu baris
6.
7. /*
8. Ini komentar lebih dari satu baris
Variabel digunakan untuk menyimpan data berupa teks, angka, dan sebagainya yang nilainya
dapat diubah-ubah, sehingga memudahkan dalam mengakses data tersebut. Dalam penulisan
variabel, ada aturan yang harus dipatuhi agar tidak menghasilkan error pada program. Dalam
JavaScript, aturan penulisan variabel sebagai berikut:
Jangan menggunakan kata-kata yang menjadi kode JavaScript atau dikenal reserved
keyword. Contohnya: break, bolean, else, and, var, true, enum, switch, this, throw, long,
new, dan sebagainya.
Variabel tidak boleh diawali dengan angka atau simbol. Variabel harus diawali dengan
huruf atau underscore. Contoh: panjang, _tinggi, dan sebagainya. Sedangkan yang tidak
dibolehkan seperti: 7ingi, 4las, @las, dan sebagainya.
Variabel dalam JavaScript bersifat case-sensitive artinya huruf kecil dan huruf besar
dibedakan. Jadi, antara tinggi dan Tinggi adalah dua variabel yang berbeda.
Variabel pada JavaScript dideklarasikan dengan var. Contohnya sebagai berikut:
<script>
var panjang;
var tinggi;
</script>
Selain dengan cara di atas, dapat juga mendeklarasikan beberapa variabel sekaligus dengan
satu var. Misalnya sebagai berikut:
<script>
var panjang, tinggi;
</script>
Variabel juga dapat dideklarasikan dengan langsung mendefinisikan nilai awal. Misalnya
sebagai berikut:
<script>
var panjang = 200;
var tinggi = 150;
var kata = "JavaScript menyenangkan";
</script>
Pada JavaScript terdapat batasan dalam mengakses variabel atau yang disebut scope variable.
JavaScript mengenal variabel global dan variabel local. Variabel global merupakan variabel
yang dapat dipakai dimana saja baik di luar function maupun di dalam function. Sedangkan
variabel local yaitu variabel yang hanya dapat digunakan di dalam function. Variabel yang
dideklarasikan di luar function akan menjadi variabel global dan variabel yang
dideklarasikan di dalam function akan menjadi variabel local. Contohnya sebagai berikut:
1. <!DOCTYPE HTML>
2. <html>
3. <head></head>
4. <body>
5. <script>
6. var a = "Selamat Datang!";
7. function selamat(){
8. var b = "Selamat pagi!";
9. document.write(a);
10. }
11. selamat();
12. document.write(b);
13. </script>
14. </body>
15. </html>
Pada gambar di atas, variabel a berhasil ditampilkan walaupun dideklarasikan di luar function
dan digunakan di dalam function. Ini namanya variabel global. Sedangkan variabel b tidak
tampil karena dideklarasikan di dalam function dan digunakan di luar function. Ini namanya
variabel local. Variabel local hanya dapat digunakan di dalam function dimana variabel
tersebut dideklarasikan dan tidak dapat digunakan di luar function atau di function lain.
b. Tipe Data
Setiap bahasa pemrograman pasti mengenal yang namanya tipe data. Tipe data pada
JavaScript sedikit berbeda dengan bahasa pemrograman lain. Tipe data pada JavaScript
bersifat seolah-olah sebagai objek. Sehingga setiap variabel pada JavaScript akan langsung
memiliki method.
JavaScript mengenal 3 tipe data dasar yaitu sebagai berikut:
Numbers : contoh 125, 20.50, dsb.
Strings : contoh "Hallo!", "200", dsb.
Boolean : hanya ada dua nilai yaitu True dan False.
c. Operator
Operator merupakan sebuah simbol atau kata yang digunakan untuk melakukan operasi
terhadap satu atau lebih data atau variabel sehingga menghasilkan data baru. Variabel atau
data yang dioperasikan disebut dengan operand. Javacript mengenal beberapa jenis operator
yaitu sebagai berikut:
1. Operator Aritmetika
Operator aritmetika merupakan operator yang digunakan untuk melakukan perhitungan data
numerik. Daftar operator aritmatika dan cara penggunaanya dapat dilihat pada tabel berikut:
Operator Keterangan
Operator Keterangan
3. Operator Logika
Operator logika digunakan untuk mengoperasikan data boolean. Hasil dari perbandingan
tersebut akan menghasilkan nilai true atau false. Daftar operator logika dan penjelasanya
dapat dilihat pada table berikut:
Operator Keterangan
&& Menghasilkan nilai true jika kedua operand bernilai true (logika And).
Misal A = true dan B = false, maka:
(A && B) menghasilkan false
|| Menghasilkan nilai true jika salah satu atau kedua operand bernilai true
(logika Or). Misal A = true dan B = false, maka:
(A || B) menghasilkan true
! Membalikan nilai sebuah variabel (logika Not). Misal A = true, maka:
(!A) menghasilkan false
4. Operator Bitwise
Operator Keterangan
5. Operator Assignment
Operator ini digunakan untuk memberikan nilai kepada suatu variabel menggunakan tanda
sama dengan. Daftar operator assignment dan penjelasanya dapat dilihat pada tabel berikut:
Operator Keterangan
= Memberi nilai pada suatu variabel dengan nilai, variabel lain atau hasil
perhitungan di sebelah kanan. Misal A = 3 dan B = 4, maka:
6. Operator Kondisi
Operator ini digunakan untuk memberikan nilai pada suatu variabel sesuai kondisi yang
ditentukan. Jika kondisi true maka akan diberi nilai dengan nilai di sebelah kiri tanda titik
dua, sedangkan jika kondisi false maka akan diberi nilai dengan nilai di sebelah kanan tanda
titik dua. Kondisi diletakkan di dalam kurung diikuti dengan tanda ? yang memisahkan
dengan nilai.
Operator Keterangan
?…:… Tanda tanya memisahkan kondisi dengan nilai, sedangkan tanda titik
dua memisahkan nilai pertama dan nilai kedua. Nilai pertama dipakai
jika kondisi true dan nilai kedua dipakai jika kondisi false.
1. <!DOCTYPE HTML>
2. <html>
3. <head></head>
4. <body>
5. <script>
6. var A = 10, B = 4;
7. var C = A % B;
8. document.write("10 % 4 = " + C + '<br>');
9.
10. A++;
11. document.write('Nilai A sekarang: ' + A + '<br>');
12.
13. var D = A > B;
14. document.write('10 > 4 hasilnya: ' + D + '<br>');
Pada skrip di atas, masing-masing jenis operator diwakili oleh satu operator. Untuk mencoba
operator lain pada masing-masing jenis operator silakan bereksperimen sendiri. Hasil skrip di
atas seperti gambar berikut:
d. Statement Control
Statement control pada bahasa pemrograman digunakan untuk menjalankan suatu program
sesuai dengan kondisi tertentu. Ada berbagai jenis statement control pada JavaScript yang
dapat digunakan sesuai kebutuhan.
1. Percabangan dengan if
Percabangan ini digunakan untuk menjalankan suatu program jika kondisi terpenuhi (true)
dan jika kondisi tidak terpenuhi tidak ada alternatif lain untuk dijalankan. Penulisan kondisi
biasanya menggunakan variabel dengan tipe boolean atau menggunakan operator logika
yang akan menghasilkan tipe data boolean.
Penggunaan if dapat ditulis dengan format sebagai berikut:
if(kondisi) pernyataan;
Jika pernyataan lebih dari satu baris, cara di atas tidak dapat digunakan, tapi menggunakan
format berikut:
if(kondisi){
pernyataan baris pertama;
pernyataan baris kedua;
}
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var umur = 20;
6. var dewasa;
7.
8. if(umur > 17) dewasa = true;
9. if(umur > 20) document.write("Anda sudah boleh menikah");
10.
11. if(dewasa){
12. document.write("<br>Anda sudah bisa buat KTP");
13. document.write("<br>Anda sudah bisa buat SIM");
14. }
15. </script>
16. </head>
17. <body>
18. </body>
19. </html>
Silakan ubah nilai variabel umur untuk menampilkan hasil yang berbeda. Hasil dari skrip di
atas seperti gambar berikut:
Jika pernyataan lebih dari satu baris, maka formatnya menjadi seperti berikut:
if(kondisi){
pernyataan jika terpenuhi;
}else{
pernyataan jika tidak terpenuhi;
}
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var angka = 20;
6. if(angka%2 == 0) document.write("Bilangan genap");
7. else document.write("Bilangan ganjil");
8. </script>
9. </head>
10. <body>
11. </body>
12. </html>
Silakan ubah nilai variabel angka untuk menampilkan hasil yang berbeda. Hasil dari perintah
di atas seperti gambar berikut:
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Percabangan if ... else if ... else</title>
5. <script>
6. var nilai = 80;
7. if(nilai > 90) document.write("Sangat Baik");
8. else if(nilai > 75) document.write("Baik");
9. else if(nilai > 60) document.write("Cukup");
10. else document.write("Kurang");
11. </script>
12. </head>
13. <body>
14. </body>
15. </html>
Silakan ubah nilai variabel nilai untuk menampilkan hasil yang berbeda. Hasilnya seperti
gambar berikut:
1. <!DOCTYPE HTML>
2. <html>
Ubah nilai variabel ukuran dengan L atau M untuk menampilkan hasil yang berbeda.
Hasilnya seperti gambar berikut:
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var hitung = 0;
6. while(hitung < 10){
7. document.write("Hitungan ke: " + hitung + "<br>");
8. hitung++;
9. }
10. document.write("Hitungan terakhir: " + hitung + "<br>");
11. </script>
12. </head>
13. <body>
14. </body>
15. </html>
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var hitung = 0;
6. do{
7. document.write("Hitungan ke: " + hitung + "<br>");
8. hitung++;
9. } while (hitung<10);
10. document.write("Hitungan mencapai " + hitung + "<br>");
11. </script>
12. </head>
13. <body>
14. </body>
15. </html>
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var hitung;
6. for(hitung=0; hitung<10; hitung++){
7. document.write("Hitungan ke: " + hitung + "<br>");
8. }
9. document.write("Hitungan mencapai " + hitung + "<br>");
10. </script>
11. </head>
12. <body>
13. </body>
14. </html>
Continue digunakan untuk melewati suatu perulangan karena kondisi tertentu. Sedangkan
break digunakan untuk menghentikan paksa suatu perulangan sebelum kondisi perulangan
berakhir karena kondisi tertentu.
Contoh penggunaanya dapat diperhatikan pada skrip berikut:
File 2_e_continue_break.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var hitung = 0;
6. while(hitung<10){
7. hitung++;
8. if(hitung == 5) continue; //dilewati
9. if(hitung == 8) break; //berhenti
10. document.write("Hitungan ke: " + hitung + "<br>");
11. }
12. document.write("Hitungan berhenti");
13. </script>
14. </head>
15. <body>
16. </body>
17. </html>
Pada gambar di atas tampak tidak ada hitungan ke-5 dan pada hitungan ke-8 perulangan
dihentikan.
f. Function
Function merupakan blok program yang dapat digunakan secara berulang-ulang dengan
memanggil nama function. Function dapat mengembalikan sebuah nilai dengan perintah
return atau tanpa mengembalikan nilai. Pemanggilan function yang mengembalikan nilai
dapat digunakan sebagai nilai suatu variabel. Cara menulis function yaitu sebagai berikut:
function nama_fungsi(parameter1, parameter 2){
pernyataan;
return variabel;
}
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. function hitung_luas(p, l){
6. var L = p * l;
7. return L;
8. }
9.
10. function tampilkan_hasil(){
11. var teks = "Luas tanah " + hitung_luas(200, 150) + "m2";
12. document.write(teks);
13. }
14.
15. tampilkan_hasil();
16.
17. </script>
18. </head>
19. <body>
20. </body>
21. </html>
Pada skrip di atas, fungtion hitung_luas() mengembalikan nilai berupa hasil perhitungan
luas. Karena mengembalikan nilai, cara penggunaanya dapat diletakkan pada variabel, pada
skrip di atas pada variabel teks. Sedangkan function tampilkan_hasil() tidak mengembalikan
g. Event
Event merupakan suatu perlakuan yang dilakukan terhadap suatu elemen HTML. Ada
berbagai macam event yang dapat digunakan, yaitu sebagai berikut:
onblur, ketika suatu elemen tidak focus
onchange, ketika nilai suatu elemen diubah
onclick, ketika suatu elemen diklik
ondblclick, ketika suatu elemen didobelklik
onerror, ketika error
onfocus, ketika suatu elemen sedang fokus
onkeydown, ketika tombol huruf pada keyboard ditekan
onkeypress, ketika tombol keyboard ditekan
onkeyup, ketika tombol keyboard di lepas
onload, ketika dokumen di-load
onmousedown, ketika tombol mouse ditekan
onmousemove, ketika mouse digerakkan
onmouseout, ketika mouse keluar dari area suatu elemen
onmouseover, ketika mouse melewati area suatu elemen
onmouseup, ketika tombol mouse dilepas setelah diklik
onreset, ketika form direset
onresize, ketika elemen diubah ukuranya
onselect, ketika suatu elemen dipilih
onsubmit, ketika data form dikirim
onunload, ketika keluar dari suatu dokumen
Contoh penggunaanya dapat diperhatikan pada skrip berikut:
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. function tampilpesan(){
6. alert("Tombol didobelklik");
7. }
8. </script>
9. </head>
10. <body>
11. <button ondblclick="tampilpesan()">
12. Klik dan Dobelklik</button>
13. </body>
14. </html>
Coba jalankan, lalu dobel klik pada tombol, maka akan tampil alert seperti gambar berikut:
Silakan untuk bereksperimen sendiri dengan mengubah ondblclick dengan event yang lain,
lalu lakukan event yang sesuai.
h. Kotak Dialog
Ada 3 macam kotak dialog pada JavaScript yaitu dengan function alert(), confirm(), dan
prompt(). Alert() digunakan untuk menampilkan pesan tertentu kepada pengguna. Confirm()
hampir sama dengan alert, tetapi terdapat 2 tombol yaitu Oke dan Batal, fungsinya untuk
meminta konfirmasi pada pengguna. Sedangkan prompt() digunakan untuk meminta masukan
data dari pengguna.
Contoh penggunaanya sebagai berikut:
File 2_h_kotak_dialog.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Continue dan break</title>
5. <script>
6. alert("Selamat Datang");
7. confirm("Akan melanjutkan?");
8. prompt("Masukan Nama Kamu:", "Nama kamu di sini");
9. </script>
10. </head>
11. <body>
Hasil untuk kotak dialog dengan confirm() dan prompt() seperti pada gambar berikut:
i. Objek String
Seperti telah dijelaskan sebelumnya bahwa setiap variabel akan menjadi objek sehingga akan
otomatis memiliki property dan method. Untuk variabel dengan tipe data string memiliki
property dan method sebagai berikut:
Berikut contoh penggunaan dari beberapa method dan property di atas. Untuk contoh method
dan property yang lain silakan bereksperimen sendiri.
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Manipulasi string</title>
5. <script>
6. var teks = "Saya suka belajar JavaScript";
7. document.write(teks.fontcolor('red') + '<br>');
8. document.write(teks.toUpperCase() + '<br>');
9. document.write(teks.substr(10, 18));
10. </script>
11. </head>
12. <body>
13. </body>
14. </html>
j. Objek Math
Objek math digunakan untuk melakukan berbagai operasi matematika. Ada beberapa method
yang digunakan untuk melakukan operasi matematika, yaitu sebagai berikut:
PI Menghasilkan nilai PI
Mengkonversi angka x menjadi absolut, sehingga yang
abs(x)
negatif menjadi positif
acos(x) Mendapatkan nilai acos dari x dalam radian
asin(x) Mendapatkan nilai asin dari x dalam radian
atan(x) Mendapatkan nilai atan dari x dalam radian
atan2(y, x) Mendapatkan nilai atan dari sebuah koordinat
Membulatkan bilangan decimal ke angka terdekat di
ceil(x)
atasnya.
cos(x) Mendapatkan nilai cos dari x dalam radian
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Operasi Matematika</title>
5. <script>
6. document.write("Akar 81 = " + Math.sqrt(81));
7. document.write("<br>Nilai 5 pangkat 3 = " + Math.pow(5,3));
8. document.write("<br>5.23 dibulatkan menjadi " + Math.round(5.23));
9. </script>
10. </head>
11. <body>
12. </body>
13. </html>
Tanggal dan waktu juga merupakan objek yang memiliki property dan method. Ada berbagai
method untuk memanipulasi tanggal atau waktu. Untuk menggunakan method tersebut, harus
memanggil objek Date() terlebih dahulu seperti berikut:
var tanggal = new Date();
Selanjutnya method tersebut digunakan pada variabel tanggal. Adapun daftar method yang
bisa dipakai sebagai berikut:
Berikut ini contoh penggunaan beberapa method di atas untuk memanipulasi data tanggal dan
waktu:
File 2_k_tanggal_waktu.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var waktu = new Date();
6. document.write('Hari ini: ' + waktu.getDate() + '/'
+ waktu.getMonth() + '/' + waktu.getFullYear() );
7. </script>
8. </head>
9. <body>
10. </body>
11. </html>
Pada ECMAScript 5 dikenalkan method Date.now() yang menghasilkan angka mili dimulai
dari nol pada 1 Januari 1970 pukul 00:00.
l. Array
Array merupakan sebuah variabel yang dapat menampung beberapa data sekaligus yang
terindeks secara teratur. Untuk mendeklarasikan array ada beberapa cara yaitu sebagai
berikut:
Cara 1
var buah = new Array();
buah[0] = “Mangga”;
buah[1] = “Apel”;
buah[2] = “Jeruk”;
Cara 2
Var buah = new Array(“Mangga”, “Apel”, “Jeruk”);
Cara 3
Var buah = [“Mangga”, “Apel”, “Jeruk”];
Cara menggunakan array yaitu dengan menyebutkan nama variabel dan indeks yang
diletakkan di dalam kurung siku. Misalnya:
document.write(buah[1]);
Skrip di atas akan menghasilkan tulisan "Mangga", karena indeks dimulai dari 0.
Beberapa property dan method yang bisa digunakan untuk memanipulasi array yaitu sebagai
berikut:
Property /
Keterangan
Method
length Menghasilkan jumlah elemen dalam satu array
Digunakan untuk menggabungkan nilai array menjadi string yang
join(separator)
dipisahkan dengan tanda yang ditentukan.
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var buah = ["Mangga", "Apel", "Jeruk"];
6. document.write(buah + '<br>');
7. buah.push("Melon");
8. document.write(buah + '<br>');
9. buah.reverse();
10. document.write(buah + '<br>');
11. </script>
12. </head>
13. <body>
14. </body>
15. </html>
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4.
5. <script>
6. var teks = "";
7. var angka = [2,3,4,5];
8. document.write("Cek Array: " + Array.isArray(angka));
9.
10. angka.forEach(function(val){
11. teks += "angka " + val + " ";
12. });
13. document.write("<br>Hasil forEach(): " + teks);
14.
15. angka.map(function(val){
16. return val * 2;
17. });
18. document.write("<br>Hasil map(): " + angka);
19.
20. var genap = angka.filter(function(val){
21. return val%2 == 0;
22. });
Pada skrip di atas terdapat array angka yang diolah dengan berbagai method pada ES5,
hasilnya seperti gambar berikut:
m.Objek JavaScript
JavaScript menggunakan Protitype-based OOP (PBO), artinya objek pada JavaScript hanya
sebuah kumpulan nilai dan tidak dibuat menggukan class seperti pada bahasa pemrograman
yang lain. Property dari objek JavaScript dapat berisi tipe data dasar, juga dapat berisi array,
function atau objek. Jadi, memungkinkan adanya objek di dalam objek.
Untuk membuat objek pada JavaScript sama dengan membuat variabel tetapi nilainya diawali
tanda { dan diakhiri tanda }. Masing-masing property dipisahkan dengan koma (,).
Sedangkan antara property dan nilainya dipisahkan titik dua (:).
Untuk mengakses objek property dari sebuah objek dapat dengan format objek[‘property’]
atau dengan format objek.property. Namun, lebih sering digunakan format yang kedua.
Berikut contoh skrip membuat dan mengakses objek.
File 3_a_membuat_objek.html
Pada skrip di atas, membuat objek dengan nama komputer, di dalamnya terdapat 3 property
yaitu so, ram dan hardisk. Di bawahnya mencoba mengakses dengan 2 cara, hasilnya seperti
gambar berikut:
Property dari objek dapat diubah kapan pun dengan cara memberi nilai pada property
dipisahkan dengan sama dengan (=). Bahkan jika property yang diubah ternyata tidak ada,
property akan ditambahkan. Sedangkan untuk menghapus property dapat menggunakan
perintah delete. Contohnya seperti berikut:
File 3_b_mengubah_property.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. komputer = {
6. so : 'Linux',
7. ram : 'DDR3 2 GB',
8. hardisk : '1T'
9. }
10.
11. komputer.ram = 'DDR4 4 GB';
12. document.write(komputer.ram + ' RAM, ');
13.
14. komputer.merk = 'Lenovo';
15. document.write('Merk ' + komputer.merk);
16.
Pada skrip di atas mencoba mengubah property ram menjadi “DDR4 4 GB”. Kemudian
menambahkan property merk dengan nilai “Lenovo”. Terakhir menghapus property so,
sehingga ketika diakses akan menghasilkan Undefined. Hasilnya seperti gambar berikut:
Seperti telah dijelaskan sebelumnya, nilai dari property selain menggunakan tipe data dasar
juga dapat diberi nilai array, function maupun objek. Untuk membuktikanya, buat saja skrip
berikut:
File 3_c_nilai_property.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. komputer = {
6. so : 'Linux',
7. ram : 'DDR3 2 GB',
8. aplikasi : ['Ms. Word', 'Ms. Excel', 'Adobe Photoshop'],
9. hidup : function(){
10. var text = 'Komputer telah dihidupkan';
11. text.toUpperCase();
12. return text;
13. },
14. monitor: {
15. merk : 'Samsung',
16. ukuran : '21 in',
17. warna : 'putih'
18. }
19. }
20.
21. document.write('Aplikasi edit foto: ' + komputer.aplikasi[2]);
22. document.write('<br>' + komputer.hidup());
23. document.write('<br>Warna monitor: ' + komputer.monitor.warna);
24. </script>
Pada skrip di atas ditambah property aplikasi dengan nilai berupa array, property hidup
dengan nilai berupa function dan property monitor dengan nilai berupa objek. Property
dengan nilai function disebut juga method. Pada bagian bawah ditunjukkan cara mengakses
property dari masing-masing nilai. Hasilnya seperti gambar berikut:
VariableId adalah variabel yang menjadi identitas. Expression adalah function yang akan
menjalankan program. Sedangkan timeout adalah batas dijalankanya program dalam
milisecond, artinya 1000 berarti 1 detik.
Perintah setInterval() digunakan untuk menjalankan program berkali-kali dengan jarak
waktu tertentu. Perintah ini dapat digunakan untuk membuat animasi pada JavaScript.
Perintah ini juga biasa disimpan dalam suatu variabel yang dapat digunakan untuk
menghentikan program dengan perintah clearInterval(). Format penggunaan setInterval()
sebagai berikut:
variableId = setInterval(expression, timeout);
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <script>
5. var angka = 0;
6. var timer;
Skrip di atas terdiri dari 5 function. Function pertama yaitu jalankanTimer() dijalankan
ketika tombol Jalankan Timer diklik. Karena pada function tersebut menggunakan perintah
setTimeout() dengan durasi 3000 milisecond, maka program dijalankan setelah 3 detik.
Program yang dijalankan yaitu function setTimer() yang menggunakan perintah
setInterval() dengan durasi 200 milisecond untuk menjalankan perintah function
tampilkanAngka(). Function ini akan menampilkan angka kemudian menaikkan nilai angka.
Dengan demikian ketika tombol Jalankan Timer diklik, 3 detik kemudian angka akan
ditampilkan dan meningkat terus menerus dengan interval 200 milisecond. Tombol Hentikan
Timer akan menjalankan function hentikanTimer() yang digunakan untuk menghentikan
timer. Sedangkan tombol Hentikan Timeout akan menjalankan function hentikanTimeout()
yaitu membatalkan perintah setTimeout pada function jalankanTimer(). Hasilnya seperti
gambar berikut:
e. DOM JavaScript
DOM merupakan singkatan dari Document Object Model, yaitu model objek dari sebuah
dokumen HTML yang dapat dimanfaatkan oleh JavaScript untuk mengolah dokumen HTML.
Dengan memanfaatkan DOM, JavaScript dapat melakukan berbagai macam tindakan
terhadap dokumen HTML.
1. Menemukan Elemen
Untuk menemukan elemen HTML, ada berbagai cara yang dapat dilakukan oleh JavaScript,
diantaranya sebagai berikut:
Perlu diperhatikan untuk getElementById() tidak menggunakan s pada kata element karena
atribut id hanya dapat digunakan oleh 1 elemen. Sedangkan yang lainya menggunakan s dan
data elemen yang dihasilkan berupa data array. Untuk memilih salah satu elemen yang
dihasilkan dapat menggunakan index layaknya menggunakan array.
2. Mengubah Elemen
Setelah menemukan elemen, selanjutnya elemen dapat diubah dengan menggunakan methode
dan property berikut:
Property / Method Keterangan
element.innerHTML = “konten” Mengubah konten suatu elemen dengan konten
yang baru
element.nama_atribut = “nilai
Mengubah nilai atribut dari sebuah elemen.
atribut”
element.style.property_css = nilai
Mengubah style CSS suatu elemen.
property
element.setAttribute(nama_atribut,
Mengubah nilai atribut
nilai)
Kata element pada kolom method mengacu pada elemen yang dihasilkan setelah menemukan
elemen. Biasanya berupa variabel yang menyimpan data elemen.
Nama atribut pada baris kedua dapat diganti dengan atribut yang ingin diubah, misalnya: title,
align, src, dan sebagainya. Sedangkan property css pada baris ketiga diganti dengan nama
property css yang ingin diubah, tetapi tidak menggunakan penghubung ”-” melainkan kata
4. Navigasi Elemen
Sebuah dokumen HTML tersusun secara hirarki. Elemen yang berada di level paling atas
disebut root. Setiap elemen pasti mempunyai induk elemen, kecuali root. Beberapa elemen
kadang memiliki induk yang sama. Hubungan antara elemen yang memiliki induk sama
disebut sibling.
Yang dimaksud dengan navigasi elemen yaitu memilih elemen lain dalam hubunganya
dengan hirarki elemen berdasarkan elemen yang telah ditemukan. Beberapa property yang
dapat digunakan untuk navigasi elemen yaitu:
Property Keterangan
parentNode Mendapatkan elemen induk
5. Menangani Event
Untuk menangani event dapat menggunakan atribut event HTML, seperti: onclick,
onmouseover, onkeydown, dan sebagainya. Selain itu, event juga dapat ditambahkan dengan
method .addEventListener(”click”, nama_function). Kata nama_function diganti dengan
Berikut contoh penggunaan DOM pada JavaScript dalam mengolah dokumen HTML:
File 5_dom.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <h2 id="judul"></h2>
7. <p class="paragraf">Tombol akan menghilang jika diklik </p>
8. <script>
9. var judul = document.getElementById("judul");
10. judul.innerHTML = "Penggunaan DOM pada JavaScript";
11. judul.title = "Atribut title telah diubah";
12. judul.style.textTransform = "uppercase";
13. judul.style.color = "red";
14.
15. var paragraf = document.getElementsByClassName("paragraf");
16. var tombol = document.createElement("button");
17. tombol.innerHTML = "Hapus";
18. tombol.addEventListener("click", hapus);
19. paragraf[0].appendChild(tombol);
20.
21. function hapus(){
22. paragraf[0].removeChild(tombol);
23. }
24. </script>
25. </body>
26. </html>
Agar skrip DOM dapat berjalan, tuliskan skrip di bawah dokumen HTML. Pada skrip di atas
ada 2 elemen yaitu <h1> dan <p>. Elemen <h1> dipilih dengan method getElementById(),
kemudian ditambahkan teks di dalmnya dan diatur style-nya dengan property style diikuti
property CSS.
Elemen <p> dipilih dengan method getElementsByClassName(), sehingga menghasilkan
data array. Karena berupa array, untuk modifikasi elemen tersebut dengan menyebut
indexnya seperti pada skrip di atas ditulis paragraf[0]. Selanjutnya di dalam paragraf
ditambah tombol dengan method createElement() dan appendChild(), dan dikasih tulisan
Hapus. Kemudian tombol tersebut ditambahkan event klik yang ditangani oleh function
hapus() untuk meghapus kembali tombol. Hasilnya seperti pada gamber berikut:
f. BOM JavaScript
BOM merupakan singkatan dari Browser Object Model, yaitu model objek dari browser yang
dapat dimanfaatkan oleh JavaScript manipulasi fitur-fitur pada browser. Berbagai objek
beserta method dan property yang termasuk dalam BOM diantaranya:
Property / Method Keterangan
window.open() Membuka jendela baru
Objek yang tidak diawali dengan kata window sebenarnya juga termasuk property window,
namun dapat ditulis dengan menghilangkan awalan window. Jadi, untuk location.href
misalnya dapat ditulis dengan window.location.href atau location.href. Begitu juga dengan
objek yang lainya.
Method yang paling sering digunakan biasanya yaitu window.open(). Method ini memiliki
beberapa parameter yang dapat diberikan dan harus dipahami dengan baik. Berikut parameter
yang dapat diberikan:
Parameter Keterangan
URL Optional. URL yang akan ditampilkan pada jendela baru. Jika
tidak ditentukan maka jendela baru akan kosong.
name Optional. Menentukan atribut target atau nama jendela yang
dibuka. Berikut nilai yang didukung:
_blank – URL dibuka pada jendela baru atau tab baru. Ini
merupakan nilai default.
_parent – URL di buka pada parent frame.
_self - URL akan menggantikan halaman saat ini.
_top - URL akan menggantikan semua frameset yang mungkin
dimuat
name – Jika diisi tulisan bebas, aka akan menjadi nama identitas
dari jendela yang dibuka
Sebagai contoh penggunaan BOM, berikut ada dua file di mana file kedua akan dibuka
melalui file pertama:
File 6_1_bom.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <button onclick="bukaJendela()">Buka Jendela</button>
7. <script>
8.
9. function bukaJendela(){
10. window.open("6_2_jendela_baru.html", "Jendela Baru",
11. "width=300,height=150,left=100,top=150,menubar=no,
12. resizeable=no");
13. }
14.
15. </script>
16. </body>
17. </html>
Pada skrip di atas terdapat sebuah tombol untuk membuka jendela baru dengan method
window.open() dengan berbagai pengaturan. Selanjutnya dibuat file kedua yang akan dibuka
pada jendela baru dengan skrip seperti berikut:
File 6_2_jendela_baru.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <button onclick="window.close()">Tutup Jendela</button>
7. <button onclick="window.print()">Cetak</button>
Pada skrip di atas terdapat tombol untuk menutup jendela, tombol untuk mencetak halaman
dan beberapa tulisan yang berisi informasi tentang browser, OS dan informasi layar. Jika
dijalankan, hasilnya sebagai berikut:
g. Storage
Ada dua jenis penyimpanan yaitu localStorage dan sessionStorage. LocalStorage digunakan
untuk menyimpan data pada browser dan data akan tetap tersimpan walaupun browser ditutup
atau komputer dimatikan sekalipun. Sedangkan sessionStorage digunakan untuk menyimpan
data pada browser hanya pada satu sesi dan data akan dihapus ketika browser ditutup.
Property dan method yang digunakan pada localStorage dan sessionStorage yaitu:
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <button onclick="simpanTerus()">Simpan Terus</button>
7. <button onclick="simpanSementara()">Simpan Sementara</button>
8. <h4 id="terus"></h4>
9. <h4 id="sementara"></h4>
10.
11. <script>
12.
13. function simpanTerus(){
14. localStorage.setItem("terus", "Ini akan tetap tersimpan ketika browser ditutup");
15. tampilData();
16. }
17.
18. function simpanSementara(){
19. sessionStorage.setItem("sementara", "Ini akan hilang ketika browser ditutup");
20. tampilData();
21. }
22.
23. tampilData();
24. function tampilData(){
25. var ls = localStorage.getItem("terus");
26. document.getElementById("terus").innerHTML = ls;
27.
28. var ss = sessionStorage.getItem("sementara");
29. document.getElementById("sementara").innerHTML = ss;
30. }
31. </script>
32.
33. </body>
34. </html>
h. JSON
JSON adalah singkatan dari JavaScript Object Notation, yaitu format format data yang
digunakan untuk keperluan penyimpanan dan pertukaran data. Dalam bidang web, JSON
biasanya digunakan untuk mengambil data dari server atau mengirim data ke server. Secara
fungsinya JSON sama dengan XML, tapi JSON lebih cepat dan lebih mudah dibaca. Karena
kelebihanya ini, JSON lebih sering digunakan daripada XML sebagai pendahulunya.
Format sintaks JSON hampir mirip dengan objek pada JavaScript, tetapi key pada JSON
harus berupa string. Contohnya sebagai berikut:
{ "nama" : "Faqih Mumtaz" }
Dari skrip di atas, dapat dilihat bahwa pada dasarnya JSON berupa pasangan key dan value.
Value pada JSON dapat berupa salah satu dari tipe data berikut:
String
Number
Object
Array
Boolean
Null
Sedangkan tipe data yang tidak dapat menjadi value pada JSON yaitu sebagai berikut:
Function
Date
Undefined
Ketika JSON digunakan sebagai pertukaran data dari atau ke server, data harus berupa string.
JaveScript memiliki method khusus untuk menangani hal tersebut, yaitu:
47 | Panduan JavaScript Untuk Pemula – R o h i A b d u l l o h
JSON.stringify(), digunakan untuk mengkonversi objek JavaScript menjadi string yang
menggunakan notasi JSON.
JSON.parse(), digunakan untuk mengkonversi string dengan notasi JSON menjadi objek
JavaScript.
Berikut contoh penggunaan dari kedua method tersebut.
File 8_json.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <script>
7.
8. var data = { nama : 'Faqih', umur: '2 Tahun', kota: 'Tegal'};
9. document.write(JSON.stringify(data));
10.
11. var teks = '{"nama":"Daffa","umur":"5 Tahun","kota":"Tegal"}';
12.
13. var biodata = JSON.parse(teks);
14. document.write("<br>Nama: " + biodata.nama);
15. document.write("<br>Umur: " + biodata.umur);
16. document.write("<br>Kota: " + biodata.kota);
17.
18. </script>
19. </body>
20. </html>
Pada skrip di atas, variabel data meruapakan objek, kemudian ditampilkan dengan
mengkonversinya menjadi string. Selanjutnya, variabel teks merupakan string yang
menggunakan aturan penulisan JSON. Kemudian dikonversi menjadi objek dengan nama
variabel biodata. Untuk menampilkanya tentu dengan mengakses property dari objek
tersebut yaitu dengan menyebutkan nama objek diikuti titik dan nama property, seperti
biodata.nama. Jika dijalankan hasilnya seperti gambar berikut:
i. AJAX
Berikut contoh skrip AJAX untuk mendapatkan data dari server dengan PHP:
File 9_ajax.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <p><b>Ketikan nama pada kotak input berikut:</b></p>
8.
9. <form>
10. Nama: <input type="text" onkeyup="tampilkanSaran(this.value)">
11. </form>
12. <p>Saran: <span id="saran"></span></p>
13.
14. <script>
15. function tampilkanSaran(str){
16. if (str.length == 0) {
17. document.getElementById("saran").innerHTML = "";
18. return;
19. } else {
20. var http = new XMLHttpRequest();
21. http.onreadystatechange = function() {
22. if (this.readyState == 4 && this.status == 200) {
23. document.getElementById("saran").innerHTML = this.responseText;
24. }
25. };
26. http.open("GET", "http://localhost/ajax/9_ajax.php?q=" + str, true);
27. http.send();
28. }
29. }
30. </script>
31.
32. </body>
33. </html>
Pada skrip di atas terdapat sebuah input, dimana ketika mengetikan sesuatu maka akan
mengirimkan request ke server dan memberikan saran sesuai data yang terdapat pada server.
Untuk skrip pada sisi servernya dapat dibuat menggunakan PHP sebagai berikut:
File ajax/9_ajax.php
1. <?php
2. header('Access-Control-Allow-Origin: *');
3.
4. $nama = ["Ana", "Andi", "Budi", "Beni", "Dodi", "Daffa", "Faqih", "Hafiz", "Nabil", "N
anda", "Latif", "Sifa"];
5. $q = $_REQUEST["q"];
6. $saran = "";
7.
8. if ($q !== "") {
9. $q = strtolower($q);
10. $len=strlen($q);
11. foreach($nama as $n) {
Pada skrip di atas terdapat data nama yang mengandung array data nama-nama orang. Data
ini yang akan menjadi saran ketika mengetikan nama pada input. Jika dijalankan hasilnya
sebagai berikut:
j. ECMA Script
a. Mengenal ECMAScript
b. ECMAScript 5 (ES5)
Pada ES5 telah ditambahkan fitur baru pada JavaSript yang sebagian besar mengenai
manipulasi array. Fitur ini telah dibahas pada pembahasan array. Fitur lain yang juga baru
pada ES5 yaitu JSON.parse() dan JSON.stringify(). Keduanya juga telah dibahas pada
pembahasan JSON. Method trim() pada objek string juga merupakan fitur baru dari ES5.
Selain beberapa fitur yang telah dibahas sebelumnya, ada beberapa fitur lain yang juga baru
pada ES 5 yaitu sebagai berikut:
1. Perintah “use strict”
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <script>
7. "use strict";
8.
9. nama = "Faqih";
10. console.log(nama);
11. </script>
12. </body>
13. </html>
File 10_b_2_setter_getter.html
1. <!DOCTYPE HTML>
2. <html>
Hasil dari skrip di atas akan menghasilkan tulisan “Faqih Mumtaz” ketika dijalankan.
3. Method Untuk Objek
Pada ES5 ditambahkan beberapa method yang dapat digunakan untuk modifikasi objek
JavaScript. Beberapa method tersebut yaitu:
Property / Method Keterangan
Object.defineProperty(objek, property, Menambah atau mengubah property objek
descriptor)
Object.definePropertyes(objek, descriptor) Menambah atau mengubah banyak
property sekaligus pada objek
Object.getOwnPropertyDescriptor(objek, Mendapatkan descriptor dari sebuah
proprti) property
Object.getOwnPropertyNames(objek) Mendapatkan semua nama property objek
menjadi sebuah array
Object.keys(objek) Mendapatkan semua property yang tidak
disembunyikan dan menjadikanya sebuah
array
Object.PrototypeOf(objek) Mengakses prototype sebuah objek
Pada beberapa method di atas, yang dimaksud dengan descriptor yaitu beberapa pengaturan
pada property, seperti:
values : Memberikan nilai dari property.
writeable : Mengatur apakah nilai dari peroperty dapat diubah atau tidak. Diisi dengan
true atau false.
enumerable : Mengatur apakah property disembunyikan atau tidak. Diisi dengan
true atau false. Jika diisi false berarti disembunyikan.
configurable : Mengatur apakah property dapat diatur ulang atau tidak. Diisi dengan true
atau false.
Contoh penggunaan dari beberapa method di atas yaitu sebagai berikut:
File 10_b_3_object_method.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var biodata = {
9. nama: "Daffa Sidqi",
10. kota: "Tegal",
11. umur: "5 Tahun"
12. };
13.
14. Object.defineProperty(biodata, "umur", {
15. writable: true,
16. enumerable: false,
17. configurable: true
18. });
19.
20. var semuaproperti = Object.getOwnPropertyNames(biodata);
21. var properti = Object.keys(biodata);
22.
23. document.write(semuaproperti);
24. document.write("<br>" + properti);
25. </script>
26.
27. </body>
28. </html>
Pada skrip di atas, property umu pada objek biodata disembunyikan dengan memberi nilai
enumerable:false. Hasilnya, property umur akan ditampilkan ketika diakses dengan
Object.getOwnProperty() dan disembunyikan ketika diakses dengan Object.keys().
c. ECMAScript 6 (ES6)
Dibandingkan dengan fitur baru pada ES5, pada ES6 lebih banyak lagi fitur baru yang
diperkenalkan. Bahkan, perubahanya tergolong cukup banyak. Berhubung kebanyakan
framework baik Vue.js, React maupun Angular sudah menerapkan ES6, maka wajib untuk
mengenal berbagai fitur pada ES6 agar lebih mudah dalam mempelajari ketiganya. Bagi yang
sudah pernah belajar JavaScript tapi belum mempelajari ES6, maka ketika belajar Vue.js,
React dan Angular akan merasa banyak sintaks yang asing, mengingat banyaknya perubahan
yang terjadi pada ES6.
ES6 diperkenalkan pada tahun 2015 dan dikenal juga dengan ECMAScript 2015. Walaupun
ada versi baru pada setiap tahunya, tapi ES6 paling banyak mendapat perhatian karena pada
tahun-tahun berikutnya tidak ada perubahan yang terlalu besar layaknya pada ES6.
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var x = "Variabel dengan var";
9. var x = "Deklarasikan ulang var";
10. function tampilkanX(){
11. let x = "Variabel dengan let";
12. //let x = "Deklarasikan ulang let";
13. x = "Variabel x diubah";
14. document.write(x);
15. }
16.
17. tampilkanX();
18. document.write("<br>" + x);
19.
20. const y = 3;
21. //y = 4;
22. document.write("<br>Hasil const: " + y);
23. </script>
24.
25. </body>
26. </html>
Pada variabel x di buat di luar function dengan var dan di dalam function dengan let.
Penggunaan let di dalam function tidak mempengaruhi nilai x. Pada skrip di atas, var x
dideklarasikan 2 kali dan tidak menimbulkan eror, sedangkan pada let akan mengasilkan eror.
Eror juga didapat ketika mencoba mengubah nilai konstanta yang dibuat denan const. Hasil
dari skrip di atas dapat dilihat pada gambar berikut:
2. Template String
Pada ES6, untuk membuat string yang melebihi 1 baris tidak perlu lagi menggunakan tanda \
atau menggunakan tanda +. Tetapi string harus ditulis di dalam tanda backtick (` … `).
Bahkan di dalam string dapat disertakan variabel dengan lebih mudah. Berikut contoh
pengunaanya:
File 10_c_2_template_string.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var nama = "Faqih";
9. var produk = {nama: "Baju", harga: 100000};
10.
11. var stringES5 = "Halo " + nama + ", " +
12. "maukah beli " + produk.nama + " ini, " +
13. "Harganya " + produk.harga;
14. document.write(stringES5);
15.
16. var stringES6 = `<br>Halo ${nama}
17. maukah beli ${produk.nama} ini,
18. Harganya ${produk.harga}`;
19. document.write(stringES6);
20. </script>
21.
22. </body>
23. </html>
Pada skrip di atas terdapat 2 string yang ditulis dengan cara berbeda, yaitu stringES5 yang
menggunakan cara ES5 dan stringES6 yang menggunakan cara ES6. Keduanya memiliki
hasil sama, tapi cara penulisan ES6 tentu lebih simpel.
3. Arrow Function
Arrow function yaitu cara baru dalam penulisan function pada JavaScript. Yang perlu
dipahami dalam penggunaan arrow function yaitu:
Lebih disarankan menggunakan const daripada var.
Tidak perlu menggunakan kata function.
Body function ditulis setelah tanda =>.
Jika parameter hanya 1, tidak perlu diletakkan di dalam tanda ().
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. //ES5
9. var hitung = function(a,b){
10. return a + b;
11. }
12. document.write("Hasl 2 + 4 = " + hitung(2,4));
13.
14. //ES6 tanpa parameter
15. const halo = () => document.write("<br>Halo ES6!");
16. halo();
17.
18. //ES6 1 parameter
19. const panggil = nama => document.write("<br>Halo " + nama);
20. panggil("Daffa");
21.
22. //ES6 beberapa parameter
23. const jumlah = (a,b) => {
24. return a + b
25. };
26. document.write("<br>Hasil 2 + 4 = " + jumlah(2,4));
27. </script>
28.
29. </body>
30. </html>
Pada skrip di atas dapat dilihat bagaimana perbedaan penulisan function antara ES5 dan ES6.
Keduanya masih tetap dapat digunakan, namun dalam penggunaan framework biasanya
penulisan dengan arrow function lebih banyak digunakan.
4. Default Parameter
Pada ES6, sebuah function dapat memiliki default parameter, sehingga ketika memanggil
function tanpa menyertakan argumen, maka akan digunakan nilai default. Contohnya sebagai
berikut:
File 10_c_4_defalut_parameter.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var hitung = function(a,b=4){
9. return a + b;
10. }
11. document.write(hitung(2));
Pada skrip di atas, walaupun dalam menggunakan function hanya menyertakan 1 argumen,
function tetap dapat dijalankan dengan parameter kedua menggunakan nilai default. Skrip di
atas menghasilkan angka 6.
5. Spread operator dan rest parameter
Spread Operator merupakan simbol titik tiga (…) yang digunakan untuk memecah array atau
objek sehingga dapat digabungkan atau ditambahkan pada array atau objek lain, atau dapat
digunakan sebagai single argument ketika menggunakan function. Sedangkan rest parameter
yaitu parameter yang ditulis menggunakan simbol titik tiga (…) yang menyimpan data setiap
argument menjadi sebuah array, sehingga memungkinkan penggunaan function dengan
jumlah argumen yang tidak terbatas.
Contoh keduanya dapat dilihat pada skrip berikut:
File 10_c_5_spread_rest_prameter.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var a = [3,4];
9. var b = [1,2, ...a];
10. console.log(b);
11.
12. var c = {y:2, z:3};
13. var d = {x:1, ...c};
14. console.log(d);
15.
16. function hitung(a,b, ...c){
17. console.log(c);
18. }
19. hitung(2,4,"oke",false,5);
20. </script>
21.
22. </body>
23. </html>
Pada skrip di atas terdapat contoh penggunaan spread operator pada array, yaitu array a
ditambahkan ke array b. Hasilnya array b menjadi [1,2,3,4]. Berikutnya adalah contoh
spread operator pada objek, yaitu objek c digabungkan ke objek d. Hasilnya objek d menjadi
{x:1, y:2, z:3}. Pada bagian bawah adalah contoh rest parameter. Pada function hitung(),
parameter ketiga adalah rest parameter. Ketika function digunakan, maka argumen ketiga
dan seterusnya akan disimpan pada array c ketika function dijalankan. Hasilnya pada console
log berupa array c yaitu [“oke”, false, 5].
6. For … of
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var daftarbuku = [
9. "7 in 1 Pemrograman Web Untuk Pemula",
10. "7 in 1 Pemrograman Web Tingkat Lanjut",
11. "Mudah Membuat Aplikasi Android dengan Ionic 3"
12. ];
13.
14. for(buku of daftarbuku){
15. document.write(buku + "<br>");
16. }
17.
18. </script>
19.
20. </body>
21. </html>
7. Desturucturing assignment
Destructuring assignment yaitu memecah data dari sebuah objek atau array menjadi lebih
sederhana. Contoh penerapanya seperti skrip berikut:
File 10_c_7_destructuring_assignment.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. var profil = {
9. awal: "Daffa",
10. akhir: "Shidqi",
11. kota: "Tegal",
12. hobi: ["bercerita", "olahraga", "musik"]
13. };
14.
Pada skrip di atas, yang dicetak tebal adalah contoh destructuring assignment. Dengan
adanya skrip tersebut, untuk mengakses data pada objek menjadi lebih mudah. Misal untuk
mengakses nama awal yang biasanya dengan profil.awal menjadi awal saja. Untuk
mengakses hobi musik yang biasanya dengan profil.hobi[2] menjadi cukup c saja.
8. Class
Class merupakan kerangka dari sebuah objek pada pemrograman OOP. Pada ES6 sudah
mendukung OOP layaknya bahasa pemrograman lain yang menggunakan konsep class. Class
dapat memiliki properti dan method. Class dapat memiliki constructor yang menginisialisasi
member class.
Pada ES6 juga mengenal inheritance atau pewarisan class layaknya konsep OOP pada bahasa
pemrograman lain. Penulisanya pun sama yaitu dengan menambahkan kata extends diikuti
nama class yang diwarisi setelah nama class yang mau mewarisi.
Berikut contoh penggunaan class dan inheritance pada ES6:
File 10_c_8_class.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script>
8. class Pekerja{
9. constructor(noPekerja, nama, gaji){
10. this.bonus = gaji * 0.1;
11. this.noPekerja = noPekerja;
12. this.nama = nama;
13. }
14.
15. getDetail(){
16. return "Nomor pekerja " + this.noPekerja + " dengan nama " + this.nama;
17. }
18.
19. }
20.
21. class Manajer extends Pekerja {
22. constructor(noPekerja, nama, gaji, noLaporan) {
23. super(noPekerja, nama, gaji);
24. this.noLaporan = noLaporan;
25. }
26.
27. getDetail(){
28. let detail = super.getDetail();
29. return detail + ", memiliki " + this.noLaporan + " laporan";
30. }
31. }
32.
Pada skrip di atas ada 2 class yaitu class Pekerja dan class Manajer yang mewarisi class
Pekerja. Class pekerja mempunyai property bonus, noPekerja, nama dan gaji, serta
memiliki method getDetail(). Karena class Manajer mewarisi class Pekerja, maka class
Manajer otomatis memiliki property dan method pada class Pekerja.
Pada class Manajer bagian constructor, memanggil constructor class induk yaitu class Pekerja
dengan perintah super(). Selanjutnya method getDetail() akan meng-everide (menggantikan)
method getDetail() pada class induk. Pada method ini terdapat skrip yang mengakses method
getDetail() dari class induk dan menyimpanya pada variabel detail. Untuk mengakses method
dari class induk ditambahkan perintah super sebelum nama method.
Pada skrip bagian bawah, dibuat objek manajer yang menggunakan class Manajer dengan
menyertakan argumen sesuai parameter yang disediakank pada constructor pada class
Manajer. Hasilnya seperti gambar berikut:
9. Module
Module merupakan file JavaScript yang didalamnya terdapat variabel, function atau objek
yang diekspor dan dapat diimpor oleh file lain. Penggunaan module memiliki banyak manfaat
diantaranya:
Mudah dimaintain karena skrip dipisahkan dalam berbagai file sesuai fungsinya.
Memungkinkan digunakan secara berulang-ulang, sehingga tidak perlu membuat function
atau objek yang sama pada beberapa file.
Memudahkan dalam pengorganisasian file.
Dalam membuat module, variabel, function atau objek diekspor dengan sintaks export. Jika
diekspor sebagai default, maka saat impor tidak perlu penambahan tanda { }. Sedangkan jika
tanpa default, saat impor harus pakai tanda { }.
1. const nama = "Faqih Mumtaz";
2.
3. const detail = {
4. nama: "Faqih Mumtaz",
5. kota: "Tegal",
6. hobi: ["membaca", "programming"]
7. }
8.
9. export {nama as default, detail};
10.
11. export const tampilkan = () =>{
12. console.log("Saya "+ nama +" asal "+ detail.kota);
13. }
Pada skrip di atas terdapat variabel nama yang diekspor sebagai default dan diekspor
bersamaan dengan objek detail pada baris tersendiri. Sedangkan function tampilkan
diekspor sendiri dengan ditulis langsung saat function didefinisikan. Selanjutnya, file modul
disimpan dengan format.js. Untuk menggunakan modul di atas dapat melalui skrip JavaScript
yang ditulis di dalam HTML sebagai berikut:
File 10_c_9_module.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6.
7. <script type="module">
8. import nama, {detail, tampilkan} from './modules/modul.js';
9.
10. console.log('Nama: '+ nama);
11. console.log('Kota: '+ detail.kota);
12. tampilkan();
13. </script>
14.
15. </body>
16. </html>
Pada skrip di atas, variabel nama di tulis di luar tanda { }, karena diekspor sebagai default.
Sedangkan detail dan tampilkan di tulis di dalam tanda { }, karena tidak diekspor sebagai
default. Hasil dari skrip di atas dapat dilihat pada gambar berikut: