(REFINED) FE - CH 2 TOP 1 - Struktur Data Di JavaScript
(REFINED) FE - CH 2 TOP 1 - Struktur Data Di JavaScript
Chapter 2 ini bakalan ngajak kamu buat menguasai kemampuan dasar pengembangan front-end dengan bahasa pemrograman JavaScript, mulai dari
pengenalan struktur data, penggunaan operator, pembuatan expression, basic algoritma, hingga implementasi DOM.
Nah, pada topik pertama, kita bakal bahas tentang struktur data pada bahasa pemrograman JavaScript. Cus langsung aja~
3
Pengantar
PM 101
4
Apa itu Struktur Data?
5
Apa itu Struktur Data?
Struktur data bisa kita anggap sebagai suatu kaidah untuk menyimpan data
atau merepresentasikan data di dalam komputer agar bisa digunakan secara
efisien.
Nah, pembahasan tentang struktur data nggak akan lengkap kalau kita nggak coba
bahas tipe data juga.
Dinamis seperti apa, sih? Maksudnya, tipe data di dalam JavaScript bisa kita
ubah-ubah, atau biasa dikenal dengan sebutan dynamic typing.
Ini beda banget dengan Java. Kenapa? Karena, Java menerapkan static typing.
Maksudnya, ketika membuat suatu data atau mendeklarasikan sebuah variabel, kita
tidak boleh mengubahnya dengan tipe data yang berbeda.
Variabel dalam JavaScript
8
Variabel dalam JavaScript
Ketika berbelanja online, kita pasti membutuhkan informasi tertentu; kayak daftar
barang yang tersedia, berapa harganya, hingga testimoni pembeli sebelumnya.
Jadi, variabel itu bagian dari struktur data yang digunakan untuk menyimpan
informasi-informasi tertentu.
Nah, penamaan variabel dalam Javascript memiliki syarat dan ketentuan sebagai
berikut:
1. Nama harus mengandung huruf, angka, atau simbol “$” dan “_” . Karena,
dalam Javascript kedua simbol ini tidak memiliki makna khusus.
2. Karakter pertama tidak boleh angka.
Variabel dalam JavaScript
Berikut contoh penamaan variabel yang tadi sudah kita bahas ya. Ada variabel
“var $” dan “let _”
Kedua simbol itu akan dianggap seperti karakter biasa. Sama seperti alfabet.
Variabel dalam JavaScript
Nah, karena kamu udah tahu apa itu variabel dalam JavaScript, sekarang kita bahas
apa aja jenis-jenisnya.
Terdapat tiga jenis variabel dalam JavaScript, yaitu var, let, dan const.
Setiap variabel ini memiliki scope, ketentuan reassigned, ketentuan redeclared, dan
hoisiting yang mungkin berbeda-beda.
Variabel Var
Bisa dibilang, variabel var merupakan variabel yang lawas. Tapi,
penggunaannya masih dipertahankan oleh banyak programmer untuk
menjaga kompatibilitas ke versi sebelumnya.
Variabel var ini punya fungsi dan cara penggunaan yang simpel. Tapi, kita
perlu berhati-hati dalam menggunakan variabel ini karena ia memiliki
beberapa problem.
Variabel dalam JavaScript
1. Scope
Umumnya, variabel dalam scope akan dianggap sebagai local scope agar
tidak bisa dibaca oleh scope lain.
Tapi, jika kita menggunakan var, maka variabel akan berubah menjadi
global scope. Artinya, ia masih bisa diakses meski berada di dalam
scope.
Nah, biar nggak bingung dan repot, sebaiknya kita gunakan variabel let
untuk fungsi scope.
Variabel dalam JavaScript
Masalahnya, tidak akan ada pesan error sama sekali ketika terjadi
duplikasi variabel. Hal ini cukup riskan jika kita melakukannya secara
tidak sengaja. Bisa-bisa hasilnya berbeda dengan yang kita inginkan~
Variabel dalam JavaScript
3. Hoisting
Maksudnya, gimana? Jika kita assign sebuah variabel var lebih dulu,
JavaScript akan mendeklarasikan variabel tersebut ke atas atau
mengangkatnya ke posisi atas di dalam scope. Hasilnya nggak akan
error kok, tapi bakalan membuat kita bingung.
Variabel Let
Sejak kehadiran ES6/ES2015 (EcmaScript versi 6 atau EcmaScript
yang rilis tahun 2015), JavaScript memperkenalkan variabel let dan
const.
*Catatan: EcmaScript adalah sebuah standardisasi scripting language (Javascript) yang dibuat oleh sebuah
organisasi bernama European Computer Manufacturers Association (ECMA).
Variabel dalam JavaScript
1. Scope
Jika kita menggunakan let, maka variabel akan bertindak menjadi block
scope. Artinya, variabel hanya bisa diakses di dalam scope, yang
ditandai dalam sebuah kurung kurawal.
Tentu hal ini akan sangat membantu jika kita nggak sengaja melakukan
deklarasi ulang variabel.
Variabel dalam JavaScript
3. Hoisting
Namun, ini justru berguna bagi kita. Agar kita merevisi kode sesuai
kaidah yang baik.
Oleh karena itu, sejak awal variabel sudah harus dideklarasikan atau
diinisialisasi dengan sebuah value.
Variabel dalam JavaScript
Variabel Const
Variabel const berarti, nilai atau datanya tidak akan berubah dalam
kondisi apapun. Makanya dinamakan const (konstan).
Uppercase Constants
Mari kita buat konstanta untuk warna dalam format yang disebut "web"
(heksadesimal).
1. Scope
Seperti halnya variabel let, jika kita menggunakan const, maka variabel
yang ada akan bertindak menjadi block scope. Artinya, variabel hanya
bisa diakses di dalam scope, yang ditandai dalam sebuah kurung
kurawal ({...}).
Karena ini konstanta, maka kita nggak boleh mengubah nilai dari
variabel tersebut. Dengan kata lain, kita gak bisa me-reassigned.
Kenapa? karena variabel ini sifatnya immutable. Berarti, value-nya
nggak bisa diubah.
3. Hoisting
Gimana, udah tau kan perbedaan dari tiga jenis variabel di JavaScript dan kapan sebaiknya
digunakan? Kalo masih bingung, coba cek tabel di bawah!
redeclare? yes no no
hoisted? yes no no
Tipe Data dalam JavaScript
30
Tipe Data dalam JavaScript
Data primitif adalah jenis data yang sudah disediakan langsung oleh
Javascript dan bisa secara langsung merepresentasikan suatu nilai.
Contohnya: String, Number, Boolean, Null, dan Undefined
Data non primitif adalah data yang dibuat sendiri oleh developer, yang bisa
menyimpan beberapa nilai pada variabel. Contohnya: Array dan Object.
Tipe Data dalam JavaScript
Untuk mengetahui tipe data, kita bisa melakukan checking codingan yang
ada, lho!
Caranya bisa dengan menggunakan operator typeof. Ada dua cara dalam
menulis syntax typeof, yaitu:
● Sebagai operator → typeof x
● Sebagai function → typeof(x)
Sekarang, kita bahas satu-persatu tipe yang tadi udah disebutin. Kita mulai
dari tipe data primitif yaa!
Tipe Data dalam JavaScript: Primitif
1. String
Di dalam String, kita bisa memanggil ulang variabel yang sudah kita
deklarasikan untuk membuat suatu ekspresi tertentu. String seperti itu
biasa kita sebut dengan template literal.
2. Number
Number adalah tipe data yang mewakili number integer (angka bilangan
bulat) dan floating number (angka bilangan desimal).
Ada banyak operasi untuk number, contohnya perkalian (*), pembagian (/),
penjumlahan (+), pengurangan (-), dan seterusnya.
Tipe Data dalam JavaScript: Primitif
Selain tipe data number biasa, ada juga yang disebut special numeric
values. Yang termasuk dalam tipe data ini, yaitu:
3. Boolean
Tipe data boolean ini hanya memiliki dua nilai, yaitu true dan false. Tipe
data ini akan sering dipakai pada pengecekan suatu data.
4. Null
Tipe data ini hanya mewakili kekosongan. Atau, bisa disebut juga dengan
“data yang tidak ada”.
5. Undefined
Undefined adalah tipe data yang nggak terdefinisi. Artinya, nggak ada
sumber nilai pada data tersebut.
Nilai ini biasanya muncul ketika kita mendefinisikan variabel, tetapi kita
tidak memasukkan nilai ke dalamnya sama sekali.
1. Object
Object merupakan sebuah tipe data yang menyimpan koleksi tipe data yang
lain. Kalo dianalogikan, tipe data ini layaknya brankas. Oleh karena itu, untuk
memperoleh koleksi data tertentu, kita harus menggunakan kunci. const object = {
Kunci itu disebut key. Sedangkan, besaran/nilai dari key disebut value. hello: ‘world’
Sepasang key dan value disebut property. }
Dari contoh di samping, key nya adalah hello, sedangkan value nya adalah
world.
Key Value
Tipe Data dalam JavaScript: Non-Primitif
2. Array
Array adalah sebuah data yang menyimpan kumpulan tipe data primitif.
Biar lebih jelas, coba perhatikan perbedaan Object vs Array berikut ini!
Tipe Data dalam JavaScript: Non-Primitif
Beberapa metode yang disediakan oleh Array, yaitu: push, pop, shift,
unshift, forEach, filter, map, dan concat.
Push Pop
Metode ini digunakan untuk menambahkan item yang disimpan dalam index Metode ini digunakan untuk mengeluarkan item yang terakhir di array.
terakhir di array.
Tipe Data dalam JavaScript: Non-Primitif
Shift Unshift
Metode ini digunakan untuk mengeluarkan item pertama dalam array. Method ini digunakan untuk menambahkan item di index pertama
dalam array.
Tipe Data dalam JavaScript: Non-Primitif
forEach Filter
Metode ini digunakan sebagai cara singkat untuk melakukan perulangan Metode ini digunakan untuk melakukan penyaringan dalam suatu array.
(looping) dalam array.
Tipe Data dalam JavaScript: Non-Primitif
Map Concat
Metode ini digunakan untuk memanipulasi isi dalam array tanpa mengubah Metode ini digunakan untuk menggabungkan beberapa array menjadi
array aslinya. Map akan membuat array baru dengan melakukan fungsi pada satu array.
setiap elemen array.
Saatnya kita
Quiz!
49
Quiz
1. Jenis variabel yang bisa di update nilainya (reassigned), tapi tidak bisa di
deklarasi ulang namanya (redeclared) adalah...
A. var
B. let
C. const
50
Quiz
1. Jenis variabel yang bisa di update nilainya (reassigned), tapi tidak bisa di
deklarasi ulang namanya (redeclared) adalah...
A. var
B. let
C. const
Variabel let bisa di update nilainya (reassigned), tapi tidak bisa di deklarasi ulang namanya (redeclared). Sedangkan
variabel var bisa keduanya, dan sebaliknya kalau variabel const tidak bisa keduanya.
51
Quiz
2. Manakah yang akan menghasilkan tipe data special numeric values NaN?
A. console.log(“Dua puluh”/2);
B. console.log(1/0);
C. console.log(“Halo-halo ” + “Bandung”);
52
Quiz
2. Manakah yang akan menghasilkan tipe data special numeric values NaN?
A. console.log(“Dua puluh”/2);
B. console.log(1/0);
C. console.log(“Halo-halo ” + “Bandung”);
Opsi A akan menghasilkan NaN karena hasil pembagian yang tidak tepat, tipe data string dibagi dengan tipe data
number. Opsi B akan menghasilkan infinity, sedangkan opsi C akan menghasilkan tipe data string.
53
Quiz
A. push
B. shift
C. pop
54
Quiz
A. push
B. shift
C. pop
push digunakan untuk menambahkan item yang disimpan ke dalam index terakhir di array, sedangkan shift
digunakan untuk mengeluarkan item pertama di array.
55
Quiz
A. map
B. filter
C. forEach
56
Quiz
A. map
B. filter
C. forEach
map digunakan untuk memanipulasi isi array, sedangkan filter digunakan untuk menyaring array.
57
Quiz
A. concat
B. map
C. filter
58
Quiz
A. concat
B. map
C. filter
Filter digunakan untuk menyaring array, sedangkan concat digunakan untuk menggabungkan beberapa array
menjadi satu array.
59
Referensi
PM 101 dan bacaan lebih lanjut
1. https://www.w3schools.com/js/js_variables.asp
2. https://www.w3schools.com/js/js_datatypes.asp
3. https://www.w3schools.com/js/js_arrays.asp
4. https://medium.com/coderupa/es6-var-let-const-apa-bedanya-1cd4daaee9f0
5. https://medium.com/@rivayudha/javascript-hoisting-alasan-kamu-benci-jav
ascript-part-ii-93ed3220630d
6. https://medium.com/swlh/deep-and-easy-es6-explanation-part-1-let-and-con
st-f96ec1d6d332
7. https://blog.bitsrc.io/hoisting-in-modern-javascript-let-const-and-var-b29040
5adfda
8. https://dev.to/anwargul0x/javascript-es6-declarations-guide-44a2
60
Penutup