Mengenal ECMAScript 2015

Improvisasi Kode dengan ECMAScript 2015 – Gimana Caranya?

Improvisasi Kode dengan ECMAScript 2015 – Gimana Caranya?

Hallo developer, hallo semuanya!

Sebenarnya pembahasan kali ini agak sedikit usang. Tapi karena Dicoding jarang nge-post artikel teknologi web serta bahasa pemrogramannya, makannya saya agak tertarik memperbanyak  tulisan mengangkat topik tersebut.

 

Apa itu ES6 atau ECMAScript 2015?

 

ECMAScript unofficial logo from https://github.com/wingsuitist/ecmascript-logo

Belajar Javascript saja sudah bikin kita bingung karena kondisi tertentu. Nah, jangan sampai penamaan versinya juga buat kalian bingung ya. ES6, ES2015 dan ECMAScript 2015 itu sama. ES6 merupakan format penamaan yang digunakan pada versi sebelumnya yaitu ES5 yang dirilis pada Desember 2009, Yup 10 tahun silam! Lalu, Juni 2015 barulah ES6 ini muncul diikuti dengan ketetapan baru untuk penamaan versinya, yang akhirnya menggunakan tahun sebagai format penamaanya. Jadi mau kalian sebut ES6, ES2015 ataupun ECMAScript 2015 itu merujuk ke hal yang sama.

Jika kalian masih dibuat pusing penamaannya? Ada artikel singkat yang membahas hal ini. https://codeburst.io/javascript-wtf-is-es6-es8-es-2017-ecmascript-dca859e4821c

ECMAScript 2015: Syntax Improvement

ECMAScript 2015 membawa banyak sekali perubahan, karena gap atau jarak waktu dari versi sebelumnya memang relatif jauh, sehingga ada yang bilang juga sebagai bahasa JavaScript modern. Untuk syntax-nya sendiri banyak yang di improvisasi, Oke mari kita bahas satu persatu

Let dan Const

Sekarang terdapat cara baru untuk mendeklarasikan sebuah variabel, bisa menggunakan let dan const. Sebelum ECMAScript 2015, hanya terdapat satu cara yaitu dengan menggunakan var. Cara ini memang sangat simple tetapi beberapa kasus penggunaanya membuat kita bingung.

Bingung#1 – Hoisting

Apa itu hoisting? Yups, sesuai artinya “Mengangkat” variabel yang dideklarasikan menggunakan var ini dapat diinisialisasi terlebih dahulu sebelum dideklarasikan, Contoh

Ayo, bingung kan kenapa gak error? Ini dikarenakan proses Hoisting, sebenarnya di belakang layar deklarasi variabel x diangkat ke atas sehingga kode yang tampak seperti ini

Nah masalah ini sudah terselesaikan jika kalian menggunakan let.

Bingung#2 – Redeclare

Variabel yang dideklarasikan dengan var dapat dideklarasikan lagi dengan penamaan yang sama. Contoh

Sedangkan jika menggunakan let sudah sangat jelas hal ini tidak dapat dilakukan

Selain kedua kasus tersebut, var juga dapat membuat bingung dalam scopingnya. Sehingga penggunaan var sudah tak lagi disarankan.

Kemudian const digunakan untuk mendeklarasikan sebuah variabel yang sifatnya immutable atau tidak perlu diinisialisasi kembali. Jika kalian menginisialisasi nilai variabel dengan menggunakan const, maka akan mendapati eror “TypeError: Assignment to constant variable.

 

Template Literals

Sebelum ECMAScript 2015 proses penggabungan nilai string (concatenating) dilakukan dengan menggunakan operator (+).

Mungkin hal tersebut tidak terlalu repot, tapi jika dalam proses penggabungan tersebut terdapat garis baru, ini jadi sangat merepotkan.

kalian bisa lihat betapa repotnya membuat pesan tersebut. Entah berapa banyak operator (+) yang perlu kita gunakan. Dengan template literals proses tersebut dapat kita sederhanakan. 

Untuk menggunakan template literals, kita gunakan tanda backticks  menggantikan tanda single quotes (‘) atau double quotes (“) yang digunakan sebelumnya. Kemudian untuk menggabungkan nilai string, kita dapat gunakan tanda ${ } di dalam tanda backticks tersebut.

Template literals juga dapat membaca karakter line space secara langsung tanpa harus menggunakan escape character. 

 

Destructuring Array dan Object

Apa sih destructuring itu? Destructuring pada JavaScript merupakan syntax yang dapat mengeluarkan nilai dari array atau properties dari sebuah object ke dalam satuan variabel yang berbeda. Mendestruksikan sebuah array atau object sebelum ECMAScript 2015 dilakukan dengan cara klasik seperti ini

Begitu juga dengan object

Setelah ECMAScript 2015, mendesktrukturkan sebuah nilai array dan object akan lebih mudah.

Untuk array, kalian juga bisa memilih nilai mana saja yang ingin kita ambil, Contohnya

Bagaimana? Sangat mudah bukan? Atau kalian lebih suka cara klasik?

Object Literals

Object Literals merupakan shorthand atau cara cepat dalam menginisialisasikan sebuah properti dalam object. Biasanya ketika membuat sebuah object kita membutuhkan sebuah key: kemudian nilai nya. 

Dengan object literals ini kita dapat langsung menginisialisasikan sebuah properti melalui variabel tanpa harus menggunakan key. Sebagai gantinya, nama dari variabel tersebut akan menjadi key. Tentunya hal ini dapat meminimalkan redundansi dalam penulisan sebuah kode.

Begitu juga dengan penulisan sebuah method dalam object.

 

kita tidak memerlukan lagi keyword function untuk membuatnya.

 

For..of

Untuk melakukan looping pada sebuah array, selama ini kita gunakan for loop. Untuk menggunakannya, biasanya kita membuat sebuah variabel iterator yang berperan sebagai index atau mendapatkan nilai posisi ketika proses loop berjalan. 

Cara tersebut sudah lama digunakan oleh banyak programmer, termasuk kalian bukan? Nah, for..of loop ini dapat membuat proses looping pada sebuah object iterable (generalisasi array) menjadi mudah dan lebih dimengerti.

Pada for..of kita tidak lagi membutuhkan counter logic (i++) dan sebuah exit condition (i < foods.length). Proses loop akan berjalan sesuai panjang nilai iterator (foods), dan nilai dalam setiap indexnya pada proses loop akan disimpan pada variabel (food).

Spread operator

Masih tentang iterator nih! Sesuai namanya “Spread” yang berarti membentangkan, operator ini digunakan untuk membentangkan nilai array menjadi beberapa elements. Untuk melakukannya kita gunakan three consecutive dot (…) pada sebuah array. Look at this code baby!

Pada kode tersebut hasil yang dicetak adalah sebuah array, karena kita mencetak nilai foods itu sendiri. Nah, dengan menggunakan spread operator kita dapat membentangkan nilai – nilai dalam array tersebut.

Terlihat kan perbedaanya? Contoh kasus kapan kita harus menggunakan spread operator adalah ketika kita  hendak menggabungkan dua buah array dalam object array baru. Jika tidak menggunakan spread operator ini maka hasilnya seperti ini:

Whoops! Nilai array tidak tergabung. Lantas dengan menggunakan spread operator maka hasilnya akan seperti ini:

Mantap kan?

 

Rest parameters

Jika Spread operator adalah pelebur array menjadi multiple element yang berbeda, nah rest parameter ini adalah kebalikan dari fungsi tersebut. Kita dapat menggabungkan beberapa elemen menjadi satu array. Teknik ini sangat bermanfaat ketika kita hendak membuat sebuah variadic function yaitu fungsi yang dapat menyediakan argument tidak terbatas. Contohnya ketika membuat fungsi sum() seperti ini:

 

Kesimpulan

Well, biar gak terlalu panjang, cukup sampai sini dulu pembahasan kali ini. Dengan ini saya harap kalian tahu cara mengimprovisasi kode dengan ECMAScript 2015. Make your code fun, clean and shorter tentunya!

Sebenarnya masih ada improvisasi lain contohnya dalam penulisan fungsi, tapi nanti akan dibahas pada artikel selanjutnya, jadi tunggu saja ya. COMING SOON!

 Improvisasi Kode dengan ECMAScript 2015 – Gimana Caranya? – end

Artikel Terkait Lainnya

https://www.dicoding.com/blog/mengenal-fungsi-asynchronous-request-pada-javascript/

https://www.dicoding.com/blog/dasar-tampilan-responsif-pada-website/

https://www.dicoding.com/blog/cara-membuat-browser-menjadi-lokal-web-server/

Suka dengan Materi Ini?

Mungkin ini saatnya buatmu coba kelas Membangun Progressive Web Apps  di Dicoding Academy

ECMAScript 2015

Belajar mengembangkan aplikasi atau game dengan kurikulum yang telah divalidasi langsung oleh industri dengan Dicoding Academy.

Belajar di Dicoding Sekarang →
Share this:

Code Reviewer at Dicoding Indonesia