Modul Decoding
Modul Decoding
Pada kelas ini kita akan belajar hal-hal fundamental yang perlu Anda ketahui
tentang bahasa pemrograman JavaScript pada lingkungan Node JS. Untuk
penggunaan JavaScript pada lingkungan browser, Anda dapat
mempelajarinya pada kelas Belajar Dasar Pemrograman Web.
Materi yang tersaji ramah untuk pemula, sehingga tidak ada prasyarat
pemrograman yang perlu Anda kuasai untuk belajar di kelas ini.
Beberapa hal yang akan dipelajari pada kelas ini, antara lain:
Setelah mengetahui materi apa saja yang akan dipelajari, mari kita mulai
melangkah ke materi pertama yaitu Pengenalan JavaScript. Let’s go!
Mekanisme Belajar
Selamat datang di Dicoding Academy. Sebelum memulai belajar di kelas ini,
Anda perlu tahu tahapan dan cara belajar beserta fasilitas yang tersedia agar
proses belajar lebih efektif.
Materi Pembelajaran
Materi Bacaan Elektronik
Materi yang ada dalam kelas ini mayoritas berupa teks atau tulisan.
Mengapa demikian? Karena kami menemukan bahwa dalam proses
belajar di bidang pemrograman, bentuk materi pembelajaran yang
paling efektif untuk diingat, dimengerti, dan yang terpenting,
dipraktikkan, adalah dalam bentuk teks.
Forum Diskusi
Setiap kelas memiliki sebuah forum diskusi yang dapat Anda gunakan
untuk bertanya (dan menjawab) mengenai materi kelas. Instruktur kami
yang terdiri dari Curriculum Developer dan Academy Code Reviewer
siap membantu Anda melalui forum diskusi ini. Tak hanya kami, Anda
pun dapat berpartisipasi. Untuk meningkatkan retensi ilmu yang Anda
punya, berbagi adalah salah satu kuncinya. Jadi, silakan aktif dan
saling membantu di dalam forum.
Evaluasi Pembelajaran
Ujian (Kuis, Ujian Akhir Kelas, Knowledge Check)
Terdapat berbagai jenis ujian di kelas guna mengecek pemahaman
Anda pada materi pembelajaran. Ketersediaan ujian beserta jenis ujian
yang tersedia pada setiap kelas dapat berbeda-beda. Setiap
pertanyaan dalam ujian pasti mencakup materi yang telah dibahas.
Sehingga jika ada pertanyaan yang tidak dapat Anda jawab, pastikan
Anda mengulang kembali pembelajaran.
Forum Diskusi
Ekspektasi
Dengan banyaknya jumlah siswa Dicoding Academy, kami tidak
mengharapkan siswa untuk membaca semua diskusi atau komentar pada
forum diskusi. Sebaliknya, bacalah hal-hal yang menurut Anda menarik dan
dapat membantu Anda dalam menyelesaikan kelas. Lebih baik lagi, jika Anda
dapat membantu siswa lainnya dengan memberikan jawaban di bidang yang
Anda pahami. Berbagi dalam forum diskusi ini dapat pula membantu
meningkatkan retensi ilmu Anda.
Anda akan memiliki akses ke forum diskusi kelas selama Anda aktif terdaftar
ke kelas ini. Saat masa belajar Anda sudah habis, maka forum diskusi tidak
akan dapat diakses. Namun, jika Anda sukses menyelesaikan kelas (lulus
dan sampai mendapatkan sertifikat kompetensi dari Dicoding), maka Anda
tetap dapat mengakses forum diskusi kelas ini walau masa belajar Anda
untuk kelas ini telah habis.
Approved Answer
Jika terdapat komentar/tanggapan berupa solusi terbaik dari
permasalahan yang Anda tanyakan, maka tandai komentar tersebut
sebagai jawaban terpilih. Caranya dengan menekan tombol “Jawaban
Terpilih” di sisi kanan atas komentar.
Yuk mulai dengan memperkenalkan diri Anda pada thread Perkenalan Diri berikut:
https://www.dicoding.com/academies/256/discussions/88855
Glosarium
C
Compiler
D
Debugging
I
Interpreter
L
Library
R
Runtime
String Interpolation
Daftar Referensi
[1] Indeed. “Gaji di Indonesia - gaji rata-rata”
id.indeed.com. https://id.indeed.com/career/front-end-developer/salaries?
from=top_sb (diakses pada 2 Juni 2022)
[6] M. Lee. "What's the difference between a tilde (~) and a caret (^) in a npm
package.json file?". michaelsoolee.com. https://michaelsoolee.com/npm-
package-tilde-caret/ (diakses pada 26 Maret 2021)
Pengenalan JavaScript
Sebelum mulai belajar suatu hal yang baru, penting bagi Anda untuk
memahami apa yang akan dipelajari dan apa yang bisa dilakukan
dengannya. Dalam hal ini kita akan mulai mengenal JavaScript.
Itulah kenapa bahasa scripting tidak membutuhkan banyak kode yang perlu
ditulis agar sebuah program bisa dijalankan. Hanya dengan satu baris kode
berikut Anda sudah bisa membuat program yang menampilkan teks “Hello,
World!” ke layar.
1. console.log(“Hello, World!”);
Sederhana, bukan? Itulah salah satu ciri utama JavaScript sebagai scripting
language. Tentu tidak lengkap rasanya ketika kita sudah mengetahui apa itu
JavaScript, tetapi tidak tahu sejarah di baliknya. Sejarah singkat dari
JavaScript dapat Anda simak di materi berikutnya.
Sejarah JavaScript
JavaScript dibuat pada tahun 1995 oleh Brendan Eich, programmer dari
Netscape. Bahasa ini awalnya dinamai “Mocha” kemudian berubah menjadi
“LiveScript”. Pada saat itu bahasa Java merupakan bahasa pemrograman
yang paling populer. Untuk memanfaatkan kepopulerannya, nama LiveScript
pun diubah menjadi “JavaScript”. Jadi, meskipun namanya mirip, JavaScript
tidak ada hubungannya dengan bahasa pemrograman Java.
Lalu, pada tahun 2015 ECMAScript 6 rilis dengan membawa perubahan yang
cukup besar termasuk ide-ide yang sudah direncanakan untuk versi 4. Sejak
saat itu, tiap tahun JavaScript melakukan update bersifat minor.
Kenapa JavaScript
Jadi, kenapa kita perlu mempelajari JavaScript?
Berikut ini adalah beberapa kelebihan dari JavaScript yang dapat Anda
pertimbangkan sebelum mulai mempelajari JavaScript:
Rangkuman Materi
Sebelum mempelajari sesuatu tentunya penting untuk mengetahui apa yang
akan kita pelajari serta bagaimana sejarahnya dan bagaimana
perkembangannya.
Materi Pendukung
Ulas beberapa sumber di bawah ini untuk mempelajari lebih lanjut tentang
JavaScript:
main.js
1.
console.log("Hello World!");
Input Reset
Jalankan
Expression adalah unit kode yang dapat dievaluasi menjadi suatu nilai. Untuk
lebih mudahnya, perhatikan contoh kode berikut:
1. 5; // Baris kode ini merupakan expression karena interpreter akan
2. let yourAge;
Comments
Pada materi sebelumnya kita telah membahas bahwa kode yang kita tulis
merupakan kumpulan instruksi yang harus dijalankan oleh komputer. Salah
satu instruksi yang penting adalah memberi tahu komputer untuk
mengabaikan perintah yang kita tulis. Instruksi yang ditulis dalam suatu
program tetapi tidak dijalankan oleh komputer disebut “comments”.
main.js
1.
// Ini merupakan komentar satu baris, kode di bawah tidak akan dijalankan
2
3
// console.log("Halo!");
Input Reset
Jalankan
Lalu, untuk memberikan komentar lebih dari satu baris kita bisa
menggunakan tanda /* sebagai pembuka komentar dan tanda */ untuk
penutup komentar. Teks apa pun yang berada di antara tanda tersebut akan
dijadikan komentar dan tidak akan dieksekusi.
main.js
1.
*/
Input Reset
Jalankan
ariable
Ketika menulis sebuah program, kita memberi tahu komputer cara
memproses informasi seperti mencetak teks ke layar atau melakukan operasi
perhitungan. Untuk lebih mudah dalam penggunaan dan pemanggilan data,
kita bisa memanfaatkan variabel. Variabel umumnya digunakan untuk
menyimpan informasi atau nilai yang akan dikelola dalam sebuah program.
Dalam kelas ini, kita akan banyak menggunakan keyword let dan const. Jika
Anda penasaran kenapa var sudah tidak lagi disarankan, silakan simak
diskusi berikut.
main.js
1.
1
let lastName;
lastName = "Skywalker";
console.log(lastName);
/* output
Skywalker
*/
Input Reset
Jalankan
main.js
1.
console.log(lastName);
/* output
Skywalker
*/
Input Reset
Jalankan
di posisi expression.
Melalui contoh kode di atas, kita bisa bayangkan variabel sebagai sebuah
kotak atau wadah yang menyimpan nilai. Proses inisialisasi atau assignment
berarti kita memasukkan nilai ke dalam kotak tersebut.
Setiap variabel memiliki nama yang dapat kita panggil dan gunakan. Kita
dapat menamai variabel dengan nama apa pun, tetapi pastikan
penamaannya masih masuk akal dengan konteksnya supaya kode mudah di-
maintenance.
main.js
1.
const z = 100;
2
console.log(z);
z = 200;
console.log(z)
Input Reset
Jalankan
Tipe Data
Pada materi sebelumnya kita telah belajar tentang variabel untuk menyimpan
nilai. Nilai yang kita tetapkan pada variabel pasti memiliki tipe data. Tipe data
merupakan pengklasifikasian data berdasarkan jenisnya. Pada JavaScript
terdapat beberapa tipe data sebagai berikut:
Undefined
Tipe data ini terbentuk ketika sebuah variabel tidak memiliki nilai. Artinya,
ketika kita mendeklarasikan variabel tanpa menginisialisasikan nilainya,
variabel tersebut menjadi undefined. Contoh:
main.js
1.
1
let x;
console.log(typeof(x));
/* output: undefined */
Input Reset
Jalankan
Pada contoh kode di atas, kita mendeklarasikan variabel x, tetapi kita tidak
menginisialisasikan dengan nilai apa pun. Ketika kita memastikan tipe data
dengan menggunakan fungsi typeof(), ia akan menghasilkan
output undefined.
Fungsi typeof() digunakan untuk memastikan tipe data pada variabel dengan
mengembalikan tipe data tersebut dalam bentuk teks.
Numbers
Nilai dari tipe data number adalah angka. Variabel bertipe data number
dituliskan seperti angka pada umumnya:
1. let x = 10;
Jika angka tersebut merupakan sebuah bilangan desimal, maka kita bisa
gunakan tanda titik pada pecahan bilangannya.
main.js
1.
let x = 10;
console.log(typeof(x))
/* output: number */
let y = 17.25;
console.log(typeof(y))
/* output: number */
Input Reset
Jalankan
Pada tipe data number, kita juga dapat melakukan perhitungan aritmatika
seperti penjumlahan, pengurangan, perkalian, dsb. Berikut operator yang
dapat kita gunakan dalam perhitungan aritmatika pada tipe data number:
+ Penjumlahan 10 + 10 = 20
- Pengurangan 15 - 7 = 8
/ Pembagian 21 / 7 = 3
* Perkalian 9 * 9 = 81
** Perpangkatan 3 ** 3 = 27
main.js
1.
let a = 12;
let b = 9;
3
4
console.log(a + b)
console.log(a - b)
console.log(a * b)
console.log(a / b)
console.log(a % b)
10
/* output:
11
21
12
13
108
14
1.3333333333333333
15
16
*/
Input Reset
Jalankan
Operator ini dapat dituliskan sebelum atau sesudah variabel, tetapi hal
tersebut bukan berarti sama. Berikut ketentuannya:
main.js
1.
1
/* Increment dan Decrement */
let postfix = 5;
console.log(postfix++);
/* output: 5 */
console.log(postfix);
/* output: 6 */
let prefix = 5;
10
console.log(++prefix);
11
/* output: 6 */
Input Reset
Jalankan
BigInt
Pada JavaScript, tipe data “Number” hanya mencakup nilai dari -(2 53 - 1)
hingga (253 - 1). Untuk kebutuhan umum, sebenarnya nilai tersebut sudah
sangat cukup. Namun, akan ada kebutuhan tertentu di mana kita
membutuhkan cakupan nilai yang lebih besar, seperti untuk kriptografi atau
menentukan waktu hingga presisi microsecond.
Untuk nilai di luar Number, kita bisa menggunakan tipe BigInt. Untuk
membedakan tipe BigInt dan Number, tambahkan karakter n di akhir angka.
Contohnya adalah seperti kode di bawah ini. Bandingkan dengan yang
bertipe Number.
main.js
1.
console.log(bigNumber);
5
console.log(myInt);
/* output
1234567890123456789012345678901234567890n
1.2345678901234568e+39
10
*/
Input Reset
Jalankan
Kita juga bisa menggunakan BigInt untuk operasi aritmatika pada umumnya.
Yang membedakan adalah pada operasi pembagian, hasilnya akan
dibulatkan ke bawah dan tanpa mengandung nilai desimal. Contohnya
adalah seperti ini:
main.js
1.
console.log(5n + 2n);
console.log(5n - 2n);
console.log(5n * 2n);
console.log(5n / 2n);
console.log(5n % 2n);
/* output
7n
3n
10
10n
11
12
1n
13
*/
Input Reset
Jalankan
Strings
Tipe data selanjutnya adalah string yang merupakan sebuah teks. Untuk
menetapkan nilai sebagai string pada variabel gunakan tanda petik satu (‘)
atau petik dua (“) di antara teksnya. Contohnya:
main.js
1.
2
console.log(typeof(greet))
/* output: string */
Input Reset
Jalankan
Tidak ada perbedaan antara menggunakan petik satu atau petik dua. Anda
dapat menggunakan tanda petik secara bergantian, khususnya jika Anda
memiliki teks yang mengandung tanda petik.
main.js
1.
console.log(question)
4
5
Input Reset
Jalankan
Lalu bagaimana jika teks memiliki kedua tanda petik seperti ini?
main.js
1.
console.log(answer);
Input Reset
Jalankan
Pada String, kita juga dapat menggunakan operator plus (+). Operator
tersebut berfungsi untuk menggabungkan dua teks yang terpisah menjadi
satu buah teks. Contohnya seperti ini:
main.js
1.
console.log(moreGreet);
4
5
/* output: HelloHello */
Input Reset
Jalankan
main.js
1.
Jalankan
Boolean
Boolean hanya memiliki dua nilai, yaitu true atau false. Tipe data ini menjadi
kunci utama dalam penentuan logika. Kita akan banyak menggunakannya
nanti dalam materi if/else statement. Untuk menetapkan nilai boolean pada
variabel, gunakan keyword true atau false seperti di bawah ini.
main.js
1.
let x = true;
let y = false;
4
console.log(typeof(x))
console.log(typeof(y))
/* output:
boolean
boolean
10
*/
Input Reset
Jalankan
Kita juga bisa menggunakan operator komparasi seperti lebih dari (>) atau
kurang dari (<). Contohnya:
main.js
1.
1
const a = 10;
const b = 12;
console.log(isGreater);
console.log(isLess);
10
/* output:
11
false
12
true
13
*/
Input Reset
Jalankan
Null
Tipe berikutnya adalah null. Serupa dengan undefined, namun null perlu
diinisialisasikan pada variabel. Null biasa digunakan sebagai nilai sementara
pada variabel, tapi sebenarnya nilai tersebut “tidak ada”.
Untuk menetapkan null pada variabel, kita dapat gunakan keyword null ketika
variabel tersebut diinisialisasi.
main.js
1.
console.log(someLaterData);
/* output:
null
*/
Input Reset
Jalankan
Symbol
Symbol adalah tipe data baru yang dikenalkan pada ES6. Tipe data Symbol
digunakan untuk menunjukkan identifier yang unik. Ketika membuat Symbol,
kita bisa memberikan deskripsi atau nama symbol seperti ini:
main.js
1.
1
const id = Symbol("id");
console.log(id);
/* output
Symbol(id)
*/
Input Reset
Jalankan
Symbol disebut sebagai identifier yang unik karena meskipun kita membuat
dua variabel symbol dengan nama atau deskripsi yang sama, kedua nilainya
tetap dianggap berbeda. Contohnya lihat kode berikut:
main.js
1.
1
console.log(id1 == id2);
/* output
false
*/
Input Reset
Jalankan
Symbol ini umumnya digunakan sebagai nama property dari Object. Object
sendiri merupakan tipe data kompleks untuk menyimpan berbagai struktur
data. Kita akan segera bertemu dan mempelajari tentang object pada modul
Data Structure.