PROGATE - Learning JavaScript
PROGATE - Learning JavaScript
JavaScript Study I
String & Integer – Pengantar JavaScript
JavaScript
JavaScript (disingkat JS) adalah bahasa skrip yang menjadi element penting dalam pengembangan web. Saat ini,
hampir semua situs web menggunakan JS. JavaScript ES2015 (ES6), yang akan kita bahas pada pelajaran ini, adalah
versi terbaru JS yang menjadi populer karena memungkinkan orang untuk coding dengan lebih efisien.
Menjalankan Code JS
Pertama, kita akan melihat cara menjalankan (mengeksekusi) code ES6 dan mencetak (menampilkan) rangkaian kata
di layar yang disebut console. Saat Anda menulis code console.log("Hello World");, rangkaian huruf Hello
World akan di cetak di console.
Contoh :
// Cetak hasil 5 tambah 3
console.log(5+3);
// Cetak kombinasi dari "20" dan "15" (dan jadikan sebagai string)
console.log("20"+"15");
Mendeklarasikan Variable
Untuk mendeklarasikan variable, cukup tulis let variableName = nilai. Simbol = dalam pemrograman tidak berarti
"sama dengan". Ini berarti menetapkan yang ada di sisi kanan ke sisi kiri. let adalah deklarasi bahwa "kita akan
menentukan sebuah variable", nama variable ditulis setelah kata kunci ini dan kemudian diberi nilai.
let number = 7;
console.log(number);
// Gunakan constant language untuk mencetak "Saya bisa berbicara bahasa ____"
console.log('Saya bisa berbicara bahasa ' + language);
Struktur Statement IF
Saat statement if digunakan, percabangan kondisional, "jika X lakukan Y", akan diaktifkan. Tulis kondisi tersebut
setelah if dan tulis code untuk kapan, kondisi ini akan valid dalam tanda kurung kurawal { }. Pahami cara menulis
statement if melalui gambar dibawah ini.
Menulis Code Statement IF
Mari kita lihat cara kerja code statement if. Pertama, baca statement kondisional digambar kiri. Kondisi number >
10 berarti "nilai angka constant lebih besar daripada 10." Saat 12 ditetapkan ke constant number, kondisi ini
berlaku, dan codenya akan dijalankan.
Perbandingan Nilai
Simbol > yang digunakan di conditional statement merupakan operator perbandingan ukuran nilai. Untuk a <
b berarti, jika a kurang dari b, statement-nya akan menjadi true, jika a sama dengan atau lebih besar
dari b statement akan menjadi false. Sama untuk a <= b, jika a kurang atau sama dengan b, statement akan menjadi
true, dan sebaliknya.
/* Ketika age lebih besar atau sama dengan 10, cetak: "Saya berusia dibawah 18 tahun, namun diatas 9 tahun" */
if (age >= 18) {
console.log("Saya di atas 18 tahun");
} else if (age >= 10) {
console.log('Saya berusia di bawah 18 tahun, namun di atas 9 tahun');
} else {
console.log("saya dibawah 10 tahun");
}
OR
Selanjutnya, kita akan mempelajari simbol yang berarti "OR" (Atau). Atau diekspresikan dalam bentuk ||. Kondisi 1
|| Kondisi 2 berarti "Kondisi 1 atau Kondisi 2". Pada kasus ini, di antara beberapa kondisi, jika salah satunya adalah
true, maka keseluruhan ekspresi menjadi true.
Contoh Penggabungan
Mari kita lihat contoh statement if menggunakan "dan". Pada contoh di kiri, number >= 10 dan number < 100
adalah true, jadi konten fungsinya dipanggil.
const rank = 2;
switch (rank) {
case 1:
console.log("Anda meraih medali emas!");
break;
// Tambahkan case ketika rank adalah 2
case 2:
console.log("Anda meraih medali perak!");
break;
Dengan memanfaatkan aspek dari statement switch ini, Anda dapat menggunakannya untuk menyederhanakan
control flow (alur pengontrolan) yang rumit yang akan membutuhkan banyak cabang dengan menggunakan
statement if dan else if.
const rank = 5;
switch (rank) {
case 1:
console.log("Anda meraih medali emas!");
break;
case 2:
console.log("Anda meraih medali perak!");
break;
case 3:
console.log("Anda meraih medali perunggu!");
break;
// Tambahkan default
default:
console.log("Semoga sukses dikesempatan berikutnya");
break;
}
JavaScript Study II
Iterasi – Review variable
Review Study 1
ertama, mari kita review cara menggunakan variable, yang telah kita pelajari dalam JavaScript Study Ⅰ (ES6). Untuk
me-reviewnya, mari kita coba mem-print angka dari 1 hingga 5 secara berurutan di console seperti yang ditunjukkan
gambar dibawah ini.
Me-review Variable
Seperti yang dapat Anda lihat digambar kiri, Anda dapat mem-print angka menggunakan console.log untuk setiap
angkanya. Namun, dalam pelajaran ini, kita akan menggunakan variable number seperti yang ditunjukkan digambar
kanan dan membuat variable tersebut menambahkan 1 kedirinya sendiri secara otomatis.
// Salin kedua baris diatas dan tempelkan dibaris bawah sebanyak 4 kali
console.log(number);
number += 1;
console.log(number);
number += 1;
console.log(number);
number += 1;
console.log(number);
number += 1;
Menerapkan Iterasi
Terakhir, mari kita coba latihan tingkat advance menggunakan loop for. Kali ini, kita akan tetap mem-print angka dari
1 hingga 100. Namun, bila angka adalah kelipatan 3, kita akan mem-print "Kelipatan 3".
Selesaikan loop for dalam editor. Di dalam () (tanda kurung), tambahkan yang berikut:
[Definisi Variable]
• Definisikan variable number dan berikan 1 untuk variable tersebut
[Kondisi]
• Kondisi harus true bila "nilai variable angka kurang dari atau sama dengan 100"
[Update Variable]
• Tambahkan 1 ke variable number
Selanjutnya, kita perlu menambahkan statement if dalam loop for.
Memberikan Array
Karena array juga merupakan nilai, array dapat dibuat sebagai constant atau variable. Dalam kasus ini, nama
constant yang akan diberikan untuk array sering kali berada dalam bentuk plural seperti, fruits, names, dsb. Bila
Anda mem-print dengan console.log(constantName) seperti yang ditunjukkan di sebelah kiri, array akan di-print di
console.
Contoh :
Definisikan constant animals dan berikan array untuk constant tersebut dengan 3 string berikut sebagai element:
• anjing
• kucing
• domba
Print nilai constant animals di console.
Contoh :
Ambil element array pertama yang diberikan untuk constant animals, lalu print diconsole.
Ambil element array ketiga yang diberikan untuk constant animals, lalu print di console.
Contoh :
Ubah element ketiga dari array yang diberikan untuk constant animals menjadi string kelinci.
Print element ketiga dari array constant animals yang terbaru.
const animals = ["anjing", "kucing", "domba"];
Contoh :
Buat loop for, lalu tambahkan kondisi/aturan berikut di dalam () (tanda kurung):
[Variable]
• Berikan nilai 0 untuk variable i
[Kondisi]
• Kondisi harus true bila "nilai variable i kurang dari 3"
[Update Variable]
• Tambahkan 1 ke variable i
Di dalam loop for, gunakan constant animals dan variable i untuk mengakses dan mem-print element array.
// Gunakan loop for untuk mem-print nilai animals di console secara berurutan
for (let i = 0; i < 3; i ++) {
console.log(animals[i]);
}
Iterasi dengan Array (2)
Property Length
Untuk mendapatkan jumlah element dalam array, Anda dapat menggunakan arrayName.length seperti gambar
dibawah. Selain itu, dengan length, kita dapat merubah aturan loop for dari latihan sebelumnya ke kondisi digambar
sebelah kanan. Penulisan seperti ini sangat umum digunakan pada saat menangani array dalam loop.
const animals = ["anjing", "kucing", "domba", "kelinci", "monyet", "harimau", "beruang", "gajah"];
Object
Apa yang dimaksud dengan Object?
Selanjutnya, mari kita pelajari object JavaScript. Object, seperti array, digunakan untuk mengelompokkan dan
mengelola beberapa nilai. Bila array mengatur nilai secara berurutan berdasarkan index, objects mengelola nilai
dengan memberikannya nama yang disebut property.
Membuat Object
Object dibuat seperti berikut: {property1: nilai1, property2: nilai2}. Bila element array ditempatkan dalam tanda
kurung petak [ ], object harus ditempatkan dalam tanda kurung kurawal { }. Selanjutnya, setiap property dan nilai
object harus dihubungkan dengan tanda titik dua (:), dan seperti array, setiap elementnya harus dipisahkan dengan
koma.
Memberikan Object untuk Constant
Object juga dapat diberikan untuk constant. Selain itu, bila console.log(constantName) ditulis (seperti yang
ditunjukkan digambar kiri), object dapat di-print di console.
Contoh :
Definisikan constant character dan berikan object dengan 2 element:
[Element pertama]
Property: name
Nilai: Ninja Ken (string)
[Element kedua]
Property: age
Nilai: 14 (integer)
// Print nilai milik property name dari element array character kedua
console.log(characters[1].name);
Contoh :
Selesaikan bagian loop for di antara () dengan mengikuti instruksi di bawah ini:
[Variable]
• Definisikan variable i dan berikan nilai 0 untuk variable tersebut
[Kondisi]
• Dengan menggunakan metode length, tambahkan kondisi true bila "nilai variable i kurang dari jumlah element
dalam characters"
[Update Variable]
• Tambahkan 1 ke variable i
const characters = [
{name: "Ninja Ken", age: 14},
{name: "Guru Domba", age: 100},
{name: "Baby Ninja Ben", age: 5},
];
Definisikan constant character dan berikan element pada index i array characters untuk constant tersebut.
// Tentukan nilai constant character
const character = characters[i];
const characters = [
{name: "Ninja Ken", age: 14},
{name: "Guru Domba", age: 100},
{name: "Baby Ninja Ben", age: 5},
// Tambahkan element dibawah
{name: "Birdie"} hasilnya akan Undefined untuk age
];
Mencegah Undefined
Dalam latihan terakhir ini, bila nilai yang tidak ada ingin kita print, maka "undefined tahun" akan di-print, seperti
yang ditunjukkan dalam contoh dibawah ini. Sebagai gantinya, mari kita pastikan jika hal ini terjadi maka "Usia saya
rahasia!"-lah yang akan di-print.
Statement Undefined & If
Mari kita gunakan undefined dalam beberapa statement kondisional (if dan else). Kita akan memiliki kontrol
terhadap alur pada saat nilai character.age adalah undefined atau tidak.
const characters = [
{name: "Ninja Ken", age: 14},
{name: "Guru Domba", age: 100},
{name: "Baby Ninja Ben", age: 5},
{name: "Birdie"}
];
Proyek Akhir
Bagian I
Menggunakan Object Bersarang
Object dapat digunakan sebagai nilai didalam object lainya. Seperti contoh dibawah ini, object digunakan sebagai
nilai untuk property favorite yang berada didalam object character.
Mengakses Object
Object sejenis ini dapat diakses dengan syntax objectName.propertyNameA.propertyNameB. Contohnya, untuk
mendapatkan nilai food di dalam object yang disimpan dalam object constant character,
tulis character.favorite.food. Perhatikan bahwa penulisannya dimulai dari nama object yang terluar.
const cafe = {
name: "Progate Cafe",
businessHours: {
// Tetapkan object yang sudah disediakan untuk businessHours
opening: "10:00",
closing: "20:00"
},
};
Bagian II
Latihan Akhir(2)
Terakhir, kita akan menambahkan informasi tentang menu populer di kafe. Seperti yang dapat Anda lihat dalam
contoh di bawah ini, Anda dapat menggunakan array sebagai nilai dalam object.
const cafe = {
name: "Progate Cafe",
businessHours: {
opening: "10:00",
closing: "20:00"
},
// Tambahkan property menu dan berikan array yang sudah disediakan
menu: ["Kopi", "Teh", "Kue Cokelat"]
};
console.log(`Nama: ${cafe.name}`);
console.log(`Jam: Dari jam ${cafe.businessHours.opening} sampai jam ${cafe.businessHours.closing}`);
console.log(`----------------------------`);
console.log("Menu Rekomendasi");
JavaScript III
Mempelajari Function
Apa yang Dimaksud dengan Function? (1)
Function adalah kumpulan instruksi. Seperti contoh dibawah ini, function dengan nama introduce memiliki dua
operasi yang dapat memprint Halo dan Menyebut nama. Mari kita pelajari cara membuat function di slide
berikutnya.
Mendefinisikan Function
Untuk membuat function, Anda harus mendefinisikannya. Untuk mendefinisikan function, ketik function( ), lalu tulis
hal yang Anda ingin function tersebut lakukan didalam { } (tanda kurung kurawal). Kita akan mempelajari lebih
dalam tentang definisi function kedepannya.
Memanggil Function
Definisi function itu penting, namun Anda harus memanggil function untuk benar-benar menggunakannya. Untuk
memanggil function dalam contoh di bawah ini, tulis introduce( );. Anda dapat melihat cara kerjanya dengan menulis
code Anda sendiri dalam latihan ini.
Contoh :
Gunakan constant greet untuk memanggil function.
Contoh :
// Tetapkan function ke constant hello
const hello = function() {
console.log("Halo!");
console.log("Saya Ninja Ken");
};
// Panggil function yang ditetapkan di constant hello
hello();
Arrow Function(1)
Seperti yang ditampilkan pada contoh dikanan, Anda juga dapat mendefinisikan function dengan () =>, ketimbang
dengan function(). Ini adalah fitur baru ES6 dan cara yang lebih mudah untuk mendefinisikan sebuah function.
Function yang didefinisikan dengan cara ini disebut Arrow Function (function panah).
Arrow Function (2)
Cara pengetikan arrow function tidak memerlukan perubahan apapun selain menggantikan function() dengan () =>.
Tidak ada perbedaan juga saat Anda memanggil function yang didefinisikan dengan cara ini. Jadi, mulai dari latihan
ini, mari kita gunakan arrow function.
Argument
Apa yang dimaksud dengan Argument?
Nilai data yang diteruskan ke function disebut argument. Anda dapat menggunakan nilai function tersebut dengan
meneruskan nilainya saat Anda memanggil function tersebut.
Contoh :
// Tambahkan parameter name ke function
const greet = (name) => {
// Print pesan "Halo, ____"
console.log(`Halo, ${name}`);
};
// Panggil function greet dengan "Guru Domba" sebagai argument
greet("Guru Domba");
Contoh :
// Tambahkan parameter number1 dan number2 kedalam function
const add = (number1, number2) => {
// Print penjumlahaan number1 dan number2
console.log(number1 + number2);
};
// Panggil function dengan 5 dan 7 sebagai argument
add(5, 7);
Nilai return
Menggunakan Nilai Return
Selanjutnya, kita akan mempelajari cara menggunakan hasil function di tempat function tersebut dipanggil. Nilai
yang dihasilkan setelah function dipanggil, disebut nilai return. Sebagian besar function digunakan untuk mengirim
nilai return kembali ke tempat function tersebut dipanggil. Di bawah ini, function add akan menerima 3 dan 7,
lalu nilai return 10 akan dihasilkan.
Contoh :
const half = (number) => {
// Return nilai dari variable number dibagi 2
return number / 2;
};
Scope (Cakupan)
Constant di Dalam Function
Argument dari function dan constant yang didefinisikan di dalam sebuah function hanya dapat digunakan didalam
function tersebut. Dalam contoh dibawah ini, constant name hanya dapat digunakan didalam function introduce,
karena name didefinisikan di dalam function tersebut. Jika Anda mencoba menggunakan constant name diluar
functionnya, error akan terjadi.
Latihan Akhir
Dilatihan ini kita akan membuat function yang benama getMax, yang berfungsi untuk menemukan nilai
tertinggi/maksimum. Seperti contoh dibawah, function getMax menerima tiga angka sebagai argument-nya dan me-
return nilai maksimum dari ketiga angka tersebut.
Contoh :
const number1 = 103;
const number2 = 72;
const number3 = 189;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
return max;
};
// Print "Nilai maksimum adalah __"
const max = getMax(number1, number2, number3);
console.log(`Nilai maksimum adalah ${max}`);
JavaScript Study IV
Dasar- Dasar Class
1. Review Object
Sebelum kita belajar tentang class, mari kita review objects yang telah dibahas dalam JavaScript (ES6) Study
Ⅱ. Objects adalah struktur yang memungkinkan Anda untuk mengelola data dengan pasangan properti dan nilai.
Contoh :
// Definisikan constant animal
const animal = {
name: "Leo",
age: 3,
greet: () => {
console.log("Halo");
}
};
Blueprint Object
Untuk membuat object secara efisien, kita harus membuat "blueprint" (kerangka) object tersebut. Misalnya, saat
membuat data pengguna, data dapat dibuat dan disusun berdasarkan "blueprint pengguna" yang telah disiapkan
sebelumnya.
Class
Blueprint yang disebut dalam slide sebelumnya disebut class dalam JavaScript. Dengan menulis class ClassName,
seperti yang ditunjukkan di bawah ini, class baru dapat dibuat. Nama class biasanya diawali dengan huruf kapital.
Contoh ;
// Definisikan class Animal
class Animal {}
3. Membuat Instance
Karena kita sudah menyiapkan blueprint object, mari kita coba untuk membuat object dari blueprint tersebut. Untuk
membuat object dari class, tulis new ClassName(), seperti yang ditunjukkan dibawah ini. Object dibuat dari class
yang disebut instance. Instance dari class "Animal" disebut "instance Animal".
Memeriksa Instance
Dipelajaran ini, mari kita print instance Animal yang dibuat dari class Animal ke console, untuk memastikan bahwa
instance adalah object kosong seperti yang ditunjukkan di bawah ini. Jangan khawatir tentang nama class "Animal"
yang di-print sebelum tanda kurung kurawal { }.
Contoh :
// Definisikan class Animal
class Animal {
}
4. Constructor (1)
Menambahkan Konten ke Blueprint
Sejauh ini, Anda telah mempelajari cara membuat instance berdasarkan blueprint (class). Namun, karena kita belum
menambahkan konten apa pun ke class, blueprint ini masih kosong. Selanjutnya, kita akan menambahkan konten ke
blueprint.
Apa yang dimaksud dengan Constructor?
Class sering memiliki method khusus yang disebut constructor. constructor digunakan untuk memberikan nilai awal
ke instance baru. Untuk menambahkan constructor ke class, tulis constructor() { } di dalam tanda kurung
kurawal {} class Animal seperti yang ditunjukkan di bawah ini.
Contoh ;
// Definisikan class Animal
class Animal {
// Tambahkan constructor
constructor () {
console.log("Membuat instance baru");
}
}
// Tetapkan instance class Animal ke constant animal
const animal = new Animal();
5. Constructor (2)
Menambahkan Property & Nilai
Dalam constructor, mari kita tambahkan informasi terkait instance yang dibuat. Untuk menambahkan property dan
nilai kedalam constructor, tulis this.property = nilai.
Instance & Property
Seperti yang dijelaskan di awal, instance adalah object. Jadi, dengan menulis instance.property, nilai yang
ditambahkan dalam constructor dapat digunakan diluar class tersebut.
Contoh ;
// Definisikan class Animal
class Animal {
// Tmbahkan constructor
constructor() {
// Tetapkan nilai string「Leo」ke property name
this.name = "Leo";
// Tetapkan nilai「3」ke property age
this.age = 3;
}
};
6. Constructor (3)
Mengubah Nilai untuk Semua Instance
Dengan menambahkan constructor, instance baru akan diberi nilai awal saat dibuat. Namun, code di bawah ini akan
memberi semua instance nilai yang sama, yakni, "Leo" dan "3", saat instance tersebut dibuat. Mari kita pelajari cara
mengubah nilai untuk setiap instance secara bebas di slide berikutnya!
Contoh :
// Definisikan class Animal
class Animal {
// Tambahkan argument「name」dan「age」ke dalam () constructor
constructor(name, age) {
// Gantikan nilai string "Leo" dengan nilai milik argument name
this.name = name;
// Gantikan「3」dengan nilai milik argument age
this.age = age;
}
}
console.log(`Nama: ${animal.name}`);
console.log(`Usia: ${animal.age}`);
7. Method (1)
Apa yang dimaksud dengan Method?
Function yang berada didalam sebuah class disebut Method. Method bisa dibilang seperti "aksi" milik sebuah
instance. Jika data seperti name dan age dapat ditambahkan menggunakan property, method dapat
mengekspresikan seluruh kumpulan instruksi seperti memberikan salam dan menghitung nilai.
Mendefinisikan Method
Method dideklarasikan dalam class dengan menulis methodName( ) { }. Sama seperti function, code dalam method
harus dituliskan didalam { }.
Contoh :
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
8. Method (2)
Menggunakan Nilai dalam Method
Selanjutnya, dengan menggunakan nilai name, ayo kita buat method untuk mem-print string Nama saya adalah
____. Saat Anda ingin menggunakan nilai instance didalam method, tulis this.propertyName, menggunakan nilai
khusus this.
Contoh :
// Definisikan class Animal
class Animal {
// Tambahkan constructur, dan dialam constructor terdapat argument "name" & "age"
constructor(name, age) {
// Property & value
this.name = name;
this.age = age;
}
Contoh :
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
// Panggil method greet
this.greet();
Inheritance Class
10. Apa yang dimaksud dengan Inheritance
Membuat Class Dog
Kita telah membuat class Animal yang dapat menangani data hewan. Sekarang, mari kita buat class Dog khusus
untuk menangani data jenis anjing. Saat class yang akan Anda buat sama seperti class yang sudah
ada, inheritance akan menjadi sangat berguna!
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berumur ${this.age} tahun`);
}
}
// Definisikan class Dog agar dapat menerima warisan dari class Animal
class Dog extends Animal {
Contoh :
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
};
Contoh :
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
getHumanAge() {
return this.age * 7;
}
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
// Print 「Saya adalah seekor ____」
console.log(`Saya adalah seekor ${this.breed}`);
console.log(`Saya berusia ${this.age} tahun`);
const humanAge = this.getHumanAge();
console.log(`Saya berusia ${humanAge} tahun dalam umur manusia`);
}
getHumanAge() {
return this.age * 7;
}
}
Contoh :
File : animal.js
// Pindahkan pendefinisian class Animal ke animal.js dan hapus code dibawah
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
File : dog.js
// Pindahkan pendefinisian class Dog ke dog.js dan hapus code dibawah
class Dog extends Animal {
constructor(name, age, breed) {
super(name, age);
this.breed = breed;
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya adalah seekor ${this.breed}`);
getHumanAge() {
return this.age * 7;
}
}
File : script.js
// Code dibawah jangan diganggu karena bukan bagian dari class Animal ataupun Dog
const dog = new Dog("Leo", 4, "Chihuahua");
dog.info();
Result : ERROR
Export
Pertama, mari kita buat agar class Animal dalam animal.js dapat digunakan dalam file lain. Setelah mendefinisikan
class, tulis export default ClassName untuk meng-export class dan memungkinkannya untuk diteruskan ke file yang
berbeda.
Import
Selanjutnya, mari kita buat agar class Animal dapat digunakan di dalam dog.js. Untuk menggunakan class yang
didefinisikan dalam file lain, Anda harus meng-importnya. Anda dapat meng-import class dengan menulis import
ClassName from "./fileName" dibaris atas file. Anda dapat mengecualikan ekstensi file .js.
Contoh :
File : animal.js
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
// Export class Animal dibawah baris ini
export default Animal;
File : dog.js
// Import class Animal dibawah baris ini
import Animal from "./animal";
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya adalah seekor ${this.breed}`);
console.log(`Saya berusia ${this.age} tahun`);
const humanAge = this.getHumanAge();
console.log(`Saya berusia ${humanAge} tahun dalam umur manusia`);
}
getHumanAge() {
return this.age * 7;
}
}
// Export class Dog dibawah baris ini
export default Dog;
File : script.js
// Import class Dog dibawah baris ini
import Dog from "./dog";
3. Meng-export Nilai
Meskipun kita berlatih meng-export class, namun bukan hanya class yang dapat kita export. Semua jenis nilai seperti
string, integer, bahkan function dapat di export. Saat meng-export, export default constantName ditulis seperti yang
dapat Anda lihat di bawah ini. Saat meng-import, import constantName from "./fileName" harus ditulis.
Memisahkan Deklarasi
Seperti yang dapat Anda lihat di sebelah kanan, kita akan memindahkan deklarasi instance Dog dari script.js ke file
yang baru, yakni dogData.js. Meskipun code ini sangat singkat dan manfaat yang diperoleh dari memisahkan filenya
tidak banyak, ini merupakan langkah yang baik untuk membuat code Anda lebih rapi.
Contoh :
File : animal.js
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
File : dog.js
import Animal from "./animal";
Info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya adalah seekor ${this.breed}`);
console.log(`Saya berusia ${this.age} tahun`);
const humanAge = this.getHumanAge();
console.log(`Saya berusia ${humanAge} tahun dalam umur manusia`);
}
getHumanAge() {
return this.age * 7;
}
}
File : script.js
// Import constant dog
import dog from "./dogData";
dog.info();
File : dogData.js
// Buat agar constant dog dapat diakses dari file berikut
import Dog from "./dog";
const dog = new Dog("Leo", 4, "Chihuahua");
// Export constant dog
export default dog;
4. Export Bernama
Export Default
Statement export default disebut default export. Dengan export default, saat file di-import, export default
value akan secara otomatis di-import. Karena itu, nama nilai saat meng-export dan meng-import code dapat
berbeda.
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
File : dog.js
import Animal from "./animal";
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya adalah seekor ${this.breed}`);
console.log(`Saya berusia ${this.age} tahun`);
const humanAge = this.getHumanAge();
console.log(`Saya berusia ${humanAge} tahun dalam umur manusia`);
}
getHumanAge() {
return this.age * 7;
}
}
File : dogData.js
import Dog from "./dog";
// Ingatlah 2 constant dog1 dan dog2 dibawah ini
const dog1 = new Dog("Leo", 4, "Chihuahua");
const dog2 = new Dog("Ben", 2, "Poodle");
// Ubah code dibawah dan export constant dog1 dan dog2
export {dog1, dog2};
5. Jalur relative
Jalur Relatif (1)
Sejauh ini, Anda telah menggunakan ./fileName untuk menentukan file yang mau di-import. Code ini disebut jalur
relatif karena fungsinya adalah untuk menunjukkan jalur yang dapat menghubungkan satu file ke file yang lain .
Seperti yang dapat Anda lihat disebelah kanan, jalur menuju ke file "./dogData" sudah dideklarasikan. Jalur relatif ini
menunjukkan posisi menuju dogData.js dari posisi script.js.
Contoh :
Folder / File : class/animal.js
class Animal {
constructor(name, age) {
this.name = name;
this.age = age;
}
greet() {
console.log("Halo");
}
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya berusia ${this.age} tahun`);
}
}
export default Animal;
info() {
this.greet();
console.log(`Nama saya adalah ${this.name}`);
console.log(`Saya adalah seekor ${this.breed}`);
console.log(`Saya berusia ${this.age} tahun`);
const humanAge = this.getHumanAge();
console.log(`Saya berusia ${humanAge} tahun dalam umur manusia`);
}
getHumanAge() {
return this.age * 7;
}
}
export default Dog;
File : script.js
// Ubah jalur relatif "./dogData"
import { dog1, dog2 } from "./data/dogData";
console.log("---------");
dog1.info();
console.log("---------");
dog2.info();
Menggunakan Paket
6. Paket (1)
Di dunia JavaScript, banyak orang membuat code mereka terbuka dan tersedia untuk publik sebagai paket. Dibahasa
JavaScript, Anda dapat menggunakan paket tersebut dengan meng-importnya ke code Anda. Dalam pelajaran ini,
Anda akan mempelajari cara menggunakan paket-paket ini.
Meng-import Paket
Untuk meng-import paket dalam program Anda sendiri, gunakan kata import. Saat meng-import paket, tentukan
nama paket, bukan nama file. Contoh dibawah, menunjukan bagaimana cara untuk meng-import paket yang
disebut chalk.
Cara Menggunakan Paket Chalk
Setelah meng-import, Anda akan dapat menggunakan paket dalam file. Paket chalk memungkinkan Anda mengubah
warna teks. Seperti yang ditunjukkan di sebelah kiri, Anda dapat mengubah warna teks dengan mudah dengan
meneruskan string ke method paket seperti chalk.yellow() dan chalk.bgCyan().
Contoh :
// Import paket chalk
import chalk from "chalk";
info() {
const humanAge = this.getHumanAge();
this.greet();
// Tulis ulang konten dari console.log menggunakan chalk
console.log(chalk.yellow(`Nama saya adalah ${this.name}`));
getHumanAge() {
return this.age * 7;
}
}
Memasukkkan Integer
readlineSync juga dapat menerima nilai integer. Untuk menerima nilai integer, Anda dapat
menggunakan readlineSync.questionInt(). Untuk memasukkan nilai usia didalam latihan yang telah kita kerjakan,
Anda hanya perlu untuk membuat instance Dog menggunakan code ini!
Contoh :
// Import readline-sync
import readlineSync from "readline-sync";
import Dog from "../class/dog";
JavaScript Study VI
Method untuk Array
1. Push
Method push digunakan untuk menambahkan nilai baru ke akhir array. Caranya seperti gambar dibawah,
ketik arrayName.push(nilai), dImana anda dapat memasukkan nilai baru yang ingin Anda tambahkan ke akhir array
didalam ( ) tepat setelah kata push.
Contoh :
const characters = ["Ninja Ken", "Baby Ben", "Guru Domba"];
console.log(characters);
Callback Function
Function yang di tulis sebagai argument di function lain yang dipanggil di sebut callback function. Kita akan banyak
menggunakan callback function di kursus ini, jadi pastikan untuk memahaminya.
Callback Function Beberapa Baris
Saat Callback function ditempatkan dalam argument seperti dalam method forEach, code dapat menjadi terlalu
panjang. Dalam kasus ini, lebih baik Anda menulis code seperti yang ditunjukkan di bawah ini. Menggunakan
beberapa baris setelah { akan membuat code Anda lebih mudah dibaca dan dipahami.
Contoh :
const characters = ["Ninja Ken", "Baby Ben", "Guru Domba", "Birdie"];
// Cetak semua element didalam array characters dengan menggunakan method forEach
characters.forEach((character) => {
console.log(character);
});
3. Find
Method find akan mengembalikan nilai pertama dari sebuah array yang sesuai dengan conditional expression yang
ditetapkan. Seperti contoh dibawah, nilai pertama yang lebih besar dari 3, dalam kasus ini adalah 5, akan di berikan
ke foundNumber, dan akan di print ke console. Kita akan mempelajari mengenai hal ini di slide berikutnya.
// Print foundNumber
console.log(foundNumber);
const characters = [
{id: 1, name: "Ninja Ken", age: 6},
{id: 2, name: "Baby Ben", age: 2},
{id: 3, name: "Guru Domba", age: 100},
{id: 4, name: "Birdie", age: 21}
];
// Print foundCharacter
console.log(foundCharacter);
4. Filter
Untuk mendapatkan semua nilai yang sesuai dengan kondisi tertentu, gunakan method filter. Method ini membuat
dan mengembalikan array baru dengan semua nilai yang sesuai. Contoh di bawah ini menunjukkan cara
mendapatkan semua nilai dari array numbers yang "lebih besar dari 3".
Contoh :
const numbers = [1, 2, 3, 4];
// Dapatkan semua nomor genap dari array numbers dengan menggunakan method filter,
// dan tetapkan hasilnya ke constant evenNumbers
const evenNumbers = numbers.filter((number) => {
return number % 2 === 0;
});
const characters = [
{id: 1, name:"Ninja Ken", age: 14},
{id: 2, name:"Baby Ben", age: 5},
{id: 3, name:"Guru Domba", age: 100}
];
5. Map
Cara Kerja Map
Method map menerapkan function yang sama untuk setiap nilai didalam array dan me-return hasilnya sebagai array
baru. Seperti yang dapat Anda lihat di bawah ini, function doubledNumbers menghasilkan array baru yang berisi
nilai hasil perkalian 2 dengan semua nilai didalam array numbers.
Menggunakan Method Map (1)
Pelajari gambar dibawah, setiap nilai didalam array numbers dimasukan ke argument number secara bergantian.
Setelah itu, code return "number * 2" didalam method map akan diterapkan untuk setiap nilai tersebut. Kemudian,
hasil perkalian tersebut akan dikembalikan dan diberikan ke constant doubledNumbers sebagai array. Di dalam
function map, anda harus memasukkan { nilai return }.
Contoh :
const numbers = [1, 2, 3, 4];
const names = [
{firstName: "Kate", lastName: "Jones"},
{firstName: "John", lastName: "Smith"},
{firstName: "Dennis", lastName: "Williams"},
{firstName: "David", lastName: "Black"}
];
// Buatlah array baru didalam constant names dengan menggunakan method map,
// dan tetapkan sebagai constant fullNames
const fullNames = names.map((name) => {
return name.firstName + " " + name.lastName;
});
Pertama, mari kita coba gunakan callback function. Saya akan menjelaskannya secara lebih terperinci setelah latihan
berikut, jadi jangan khawatir.
Contoh :
const printKen = () => {
console.log("Ninja Ken");
};
Contoh :
const printKen = () => {
console.log("Ninja Ken");
};
Contoh :
const printKen = () => {
console.log("Ninja Ken");
};
call(printKen);
Contoh :
const call = (callback) => {
callback("Ninja Ken", 14);
};
// Tambahkan sebuah function yang menerima dua argument didalam argument call
call((name, age) => {
console.log(`${name} berusia ${age} tahun.`);
});