1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi sebagaimana
dimaksud dalam Pasal 9 ayat (1) huruf i untuk Penggunaan Secara Komersial dipidana
dengan pidana penjara paling lama 1 (satu) tahun dan/atau pidana denda paling
banyak Rp100.000.000 (seratus juta rupiah).
2. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta
melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat
(1) huruf c, huruf d, huruf f, dan/atau huruf h untuk Penggunaan Secara Komersial dipidana
dengan pidana penjara paling lama 3 (tiga) tahun dan/atau pidana denda paling
banyak Rp500.000.000,00 (lima ratus juta rupiah).
3. Setiap Orang yang dengan tanpa hak dan/atau tanpa izin Pencipta atau pemegang Hak Cipta
melakukan pelanggaran hak ekonomi Pencipta sebagaimana dimaksud dalam Pasal 9 ayat
(1) huruf a, huruf b, huruf e, dan/atau huruf g untuk Penggunaan Secara Komersial dipidana
dengan pidana penjara paling lama 4 (empat) tahun dan/atau pidana denda paling
banyak Rp1.000.000.000,00 (satu miliar rupiah).
4. Setiap Orang yang memenuhi unsur sebagaimana dimaksud pada ayat (3) yang dilakukan
dalam bentuk pembajakan, dipidana dengan pidana penjara paling lama 10 (sepuluh)
tahun dan/atau pidana denda paling banyak Rp4.000.000.000,00 (empat miliar rupiah).
i
KATA PENGANTAR
Buku ini ditujukan bagi siapa saja yang ingin menguasai React.
Pembahasan dimulai teori dasar JavaScript, sehingga buku ini dapat
diikuti oleh orang yang baru mengenal JavaScript sekalipun. Buku ini
dibuat dengan skrip berwarna, harapannya akan lebih mudah diikuti dan
dipahami. Setiap pembahasan disertai contoh skrip dan hasilnya. File-file
latihan pada buku ini diminta melalui email penulis dengan menyertakan
bukti pembelian buku.
ii
DAFTAR ISI
iii
2.2.3. Operator ............................................................................................. 17
2.2.4. Statement Control .......................................................................... 24
2.2.5. Continue dan Break ....................................................................... 32
2.3. Function ................................................................................................................... 33
2.4. Event .......................................................................................................................... 34
2.5. Kotak Dialog ........................................................................................................... 37
2.6. Objek String ............................................................................................................ 38
2.7. Objek Math ............................................................................................................. 42
2.8. Objek Tanggal dan Waktu ............................................................................... 44
2.9. Array .......................................................................................................................... 45
2.10. Objek JavaScript ................................................................................................... 50
2.10.1. Membuat dan Mengakses Objek ............................................. 50
2.10.2. Mengubah dan Menghapus Properti .................................... 52
2.10.3. Berbagai Nilai Properti ................................................................ 53
2.11. Memahami setInterval() dan setTimeOut() .......................................... 54
2.12. DOM JavaScript ..................................................................................................... 57
2.13. BOM JavaScript ..................................................................................................... 63
2.14. Storage ...................................................................................................................... 68
2.15. JSON ........................................................................................................................... 71
2.16. AJAX ........................................................................................................................... 73
2.17. ECMAScript ............................................................................................................ 77
2.17.1. Mengenal ECMAScript ................................................................. 77
2.17.2. ECMAScript 5 (ES5) ....................................................................... 77
2.17.3. ECMAScript 6 (ES6) ..................................................................... 83
iv
BAB 3 TEORI DASAR REACT ..........................................................................................97
3.1. Mengenal React .................................................................................................... 97
3.1.1. Pengertian React ............................................................................ 97
3.1.2. Keunggulan React .......................................................................... 98
3.1.3. Install React ...................................................................................... 99
3.1.4. Menerapkan React pada HTML ............................................ 100
3.1.5. Menggunakan JSX ........................................................................ 102
3.1.6. Build React ..................................................................................... 102
3.2. Konsep Dasar React ........................................................................................ 102
3.2.1. Elemen .............................................................................................. 102
3.2.2. Component dan Props .............................................................. 104
3.2.3. State ................................................................................................... 106
3.2.4. Lifecycle ........................................................................................... 108
3.2.5. Events ............................................................................................... 115
3.2.6. Conditional Rendering .............................................................. 117
3.2.7. List ...................................................................................................... 119
3.2.8. Form .................................................................................................. 121
3.2.9. Style ................................................................................................... 129
3.2.10. Hook .................................................................................................. 133
v
4.6. Tabel Yang Kaya Fitur .................................................................................... 147
4.7. Menampilkan Data Dengan Chart ............................................................ 149
4.8. Upload dan Crop Gambar ............................................................................. 151
4.9. Menerapkan Image Viewer .......................................................................... 154
4.10. Membuat Slideshow Gambar ...................................................................... 155
vi
5.3.4. Data Display ................................................................................... 181
5.3.5. Input .................................................................................................. 192
5.3.6. Surfaces ............................................................................................ 211
5.3.7. Navigation ....................................................................................... 221
5.3.8. Feedback ......................................................................................... 239
5.3.9. Utils .................................................................................................... 250
5.3.10. Lab ...................................................................................................... 267
5.4. Material UI Style ............................................................................................... 285
5.4.1. Menggunakna Style Library ................................................... 285
5.4.2. Menggunakna Styled Component ....................................... 287
5.4.3. Mengubah Tema Desain ........................................................... 287
vii
6.4.5. Mengedit Data Dengan AJAX .................................................. 318
6.4.6. Menghapus Data Dengan AJAX ............................................. 323
6.4.7. Upload File Dengan AJAX ........................................................ 327
viii
PETUNJUK PENGGUNAAN
BUKU
2.2.1 Pengertian
File 2_1_2_eksternal.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. <title>Eksternal</title>
5. <script src="2_1_2_skrip.js"></script>
6. </head>
7. <body>
8. <button onclick="hallo()">Klik ini</button>
9. </body>
10. </html>
2.2.1 Variabel
2.2.3 Operator
Operator Keterangan
2. Operator Perbandingan
Operator perbandingan digunakan untuk membandingan dua variabel
atau data. Hasil dari perbandingan tersebut akan menghasilkan nilai true
atau false. Daftar operator perbandingan dan penjelasanya dapat dilihat
pada table berikut:
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
4. Operator Bitwise
Operator bitwise akan membandingkan nilai biner dua bilangan.
Misalnya 2 akan dikonversi ke biner menjadi 10 dan 3 akan dikonversi
ke biner menjadi 11. Jika 2 dan 3 dibandingkan dengan operator bitwise,
maka yang dibandingkan adalah nilai biner-nya. Hasil dari operasi
berupa biner yang akan dikonversi lagi dan ditampilkan dalam bentuk
desimal. Daftar operator bitwise dan penjelasanya dapat dilihat pada
table berikut:
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
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
Jika pernyataan lebih dari satu baris, cara di atas tidak dapat digunakan,
tapi menggunakan format berikut:
if(kondisi){
pernyataan baris pertama;
pernyataan baris kedua;
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;
}
Silakan ubah nilai variabel nilai untuk menampilkan hasil yang berbeda.
Hasilnya seperti gambar berikut:
Pada gambar di atas tampak tidak ada hitungan ke-5 dan pada hitungan
ke-8 perulangan dihentikan.
2.3 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;
}
2.4 Event
Event merupakan suatu perlakuan yang dilakukan terhadap suatu
elemen HTML. Ada berbagai macam event yang dapat digunakan, yaitu
sebagai berikut:
Coba jalankan, lalu dobel klik pada tombol, maka akan tampil alert
seperti gambar berikut:
Hasil untuk kotak dialog dengan confirm() dan prompt() seperti pada
gambar berikut:
PI Menghasilkan nilai PI
Mengkonversi angka x menjadi absolut, sehingga
abs(x)
yang 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
ceil(x)
di atasnya.
cos(x) Mendapatkan nilai cos dari x dalam radian
Membulatkan bilangan decimal ke angka terdekat
floor(x)
di bawahnya
log(x) Mendapatkan nilai log dari x
max(x, y, z, ..., n) Mendapatkan angka tertinggi di dalam kurung
min(x, y, z, ..., n) Mendapatkan nilai terendah di dalam kurung
pow(x, y) Mendapatkan nilai x pangkat y
random() Mendapatkan angka acak antara 0 dan 1
round(x) Membulatkan bilangan decimal ke angka terdekat
sin(x) Mendapatkan nilai sin dari x dalam radian
sqrt(x) Mendapatkan nilai akar kuadrat dari x
2.9 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”);
Pada skrip di atas terdapat array angka yang diolah dengan berbagai
method pada ES5, 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 2_10_2_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.
17. delete komputer.so;
18. document.write(', SO ' + komputer.so)
19. </script>
20. </head>
21. <body></body>
22. </html>
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:
15. }
16.
17. function tampilkanAngka(){
18. document.getElementById('timer').innerHTML = a
ngka;
19. angka++;
20. }
21.
22. function hentikanTimer(){
23. clearInterval(timer);
24. }
25.
Menemukan elemen
document.getElementById(id)
dengan id
Menemukan beberapa
document.getElementsByTagName(name)
elemen dengan nama tag
document.getElementsByClassName(name) Menemukan beberapa
elemen dengan nama
class
document.querySelectorAll(selector) Menemukan elemen
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 kedua
diawali huruf besar, jika nama property lebih dari satu kata, misanya:
fontFamily, textAlign, marginLeft, dan sebagainya.
3. Menambahkan dan Menghapus Elemen
Selain mengubah elemen, dapat juga menambah atau menghapus
elemen. Methode yang digunakan yaitu:
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
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 function yang
dijalankan ketika event dilakukan. Event yang dibuat dengan method ini
dapat dihapus dengan method .removeEventListener().
6. Menangani Objek HTML
Selain menangani elemen, DOM juga dapat menangani objek HTML yang
terdiri dari property-property berikut:
Property Keterangan
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
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
Sebagai contoh penggunaan BOM, berikut ada dua file di mana file kedua
akan dibuka melalui file pertama:
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 2_12_jendela_baru.html
1. <!DOCTYPE HTML>
2. <html>
3. <head>
4. </head>
5. <body>
6. <button onclick="window.close()">Tutup Jendela</butt
on>
7. <button onclick="window.print()">Cetak</button>
8. <script>
9.
10. document.write("<br>Nama browser: " + navigator.appName);
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:
2.14 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:
30. }
31. </script>
32.
33. </body>
34. </html>
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:
JSON.stringify(), digunakan untuk mengkonversi objek JavaScript
menjadi string yang menggunakan notasi JSON.
2.16 AJAX
AJAX adalah singkatan dari Asyncronous JavaScript and XML, yaitu
sebuah teknik untuk mengirimkan request ke server tanpa melakukan
reload halaman. Jika pada web tanpa AJAX, untuk mengubah tampilan
pada konten halaman tentu harus load ulang seluruh halaman. Dengan
AJAX, maka tidak perlu seluruh konten halaman yang di-load, hanya
pada bagian yang tertentu saja yang melakukan refresh.
Sebagian besar framework maupun library JavaScript biasanya
menyediakan cara khusus untuk melakukan AJAX yang biasanya lebih
simpel dan lebih mudah dipahami daripada cara aslinya. Oleh karena itu,
penggunaan AJAX lebih disarankan menggunakan cara yang disediakan
framwork atau library yang digunakan. Pembahasan AJAX di sini sifatnya
hanya sebagai pengetahuan saja agar memahami konsep AJAX.
Berikut beberapa method dan property yang digunakan untuk
melakukan proses AJAX.
Berikut contoh skrip AJAX untuk mendapatkan data dari server dengan
PHP:
File 2_16_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.valu
e)">
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/2_16_ajax.php?
q=" + str, true);
27. http.send();
28. }
29. }
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:
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:
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:
File 2_17_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",
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.
Fitur-fitur baru yang diperkenalkan pada ES6 diantaranya yaitu sebagai
berikut:
1. Let dan const
Let digunakan untuk mendeklarasikan sebuah variabel. Fungsinya
hampir sama dengan var, tetapi let lebih disarankan karena dapat
mengatasi masalah yang ada pada var. Berikut perbedaan antara var
dan let:
Var memiliki scope global, seangkan let memiliki scope local.
Artinya, variabel yang dideklarasikan dengan let hanya akan dikenali
pada blok dimana variable dideklarasikan.
Pada variabel x di buat di luar function dengan var dan di dalam function
dengan let. Penggunaan let di dalam function tidak mempengaruhi nilai
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 2_17_5_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}`;
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 ().
Jika body function hanya 1 baris, tidak perlu menggunakan tanda {},
kecuali menggunakan return.
Dari beberapa aturan di atas, penulisan function dapat dilakukukan
seperti pada contoh berikut:
File 2_17_6_arrow_function.html
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.
7. Desturucturing assignment
Destructuring assignment yaitu memecah data dari sebuah objek atau
array menjadi lebih sederhana. Contoh penerapanya seperti skrip
berikut:
File 2_17_10_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.
15. var {awal, akhir, kota, hobi: [a,b,c]} = profil;
16.
17. document.write("Saya "+ awal +" "+ akhir +" dari "+ kota);
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 2_17_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 na
ma " + this.nama;
17. }
18.
19. }