From 300e65be1eff23973454444f5c2c8704e914d59b Mon Sep 17 00:00:00 2001 From: Z1nky Date: Tue, 4 Mar 2025 12:00:01 +0700 Subject: [PATCH 01/16] add file in folder study-materials part3.js & part4.js --- study-materials/part3.js | 46 ++++++++++++++++++++++++++++++++++++++++ study-materials/part5.js | 30 ++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 study-materials/part3.js create mode 100644 study-materials/part5.js diff --git a/study-materials/part3.js b/study-materials/part3.js new file mode 100644 index 00000000..62c47623 --- /dev/null +++ b/study-materials/part3.js @@ -0,0 +1,46 @@ +// console.group("User Detail"); +// console.log("Nama: Budi"); +// console.log("Umur: 25"); +// console.groupEnd(); + +// console.time("Loop"); +// for(let i = 0; i < 1000000; i++) { +// // proses +// } +// console.timeEnd("Loop"); + +// function hitungTotal(harga, jumlah) { +// console.log("Input:", { harga, jumlah }); + +// const total = harga * jumlah; +// console.log("Total:", total); + +// if (total > 1000000) { +// console.warn("Transaksi besar terdeteksi"); +// } + +// return total; +// } + +// hitungTotal(2000000, 1) + +// let produk = { +// nama: "Laptop", // string +// harga: 15000000, // number +// stok: 5, // number +// spesifikasi: ["i7", "16GB RAM"], // array +// tersedia: true, // boolean +// getInfo: function() { // function +// return `${this.nama} - Rp${this.harga}`; +// } +// }; + +// // Menggunakan berbagai tipe data +// if (produk.stok > 0 && produk.tersedia) { +// console.log(produk.getInfo()); +// console.log("Spesifikasi:", produk.spesifikasi.join(", ")); +// } + +console.log(0.1 + 0.2); // 0.30000000000000004 +// Solusi: gunakan toFixed() atau kalikan dengan 100 saat perhitungan +console.log((0.1 + 0.2).toFixed(2)); // "0.30" \ No newline at end of file diff --git a/study-materials/part5.js b/study-materials/part5.js new file mode 100644 index 00000000..cb2d3241 --- /dev/null +++ b/study-materials/part5.js @@ -0,0 +1,30 @@ +// const mobil = { +// merek: "Toyota", tahun: 2020, +// warna: "Merah", harga: 50000000 +// }; +// for (const key in mobil) { +// console.log(key, ":", mobil[key]); // merek: Toyota, tahun: 2020 +// } + + +//Latihan Soal Looping +// for (let i = 1; i <= 100; i++) { +// if (i % 28 === 0) { // Kelipatan 4 dan 7 (KPK = 28) +// console.log("FOURSEVEN"); +// } else if (i % 4 === 0) { +// console.log("FOUR"); +// } else if (i % 7 === 0) { +// console.log("SEVEN"); +// } else { +// console.log(i); +// } +// } + +// Nested Loop +for (let i = 0; i < 3; i++) { // Outer loop + console.log(`Outer: ${i}`); + + for (let j = 0; j < 2; j++) { // Inner loop + console.log(` Inner: ${j}`); + } +} \ No newline at end of file From c1a07ee3991635380c1bfcb42289bd0608a193cd Mon Sep 17 00:00:00 2001 From: Z1nky Date: Tue, 4 Mar 2025 15:18:17 +0700 Subject: [PATCH 02/16] update file part5.js --- study-materials/part5.js | 57 +++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/study-materials/part5.js b/study-materials/part5.js index cb2d3241..63d1b719 100644 --- a/study-materials/part5.js +++ b/study-materials/part5.js @@ -1,6 +1,6 @@ -// const mobil = { +// const mobil = { // merek: "Toyota", tahun: 2020, -// warna: "Merah", harga: 50000000 +// warna: "Merah", harga: 50000000 // }; // for (const key in mobil) { // console.log(key, ":", mobil[key]); // merek: Toyota, tahun: 2020 @@ -21,10 +21,55 @@ // } // Nested Loop -for (let i = 0; i < 3; i++) { // Outer loop - console.log(`Outer: ${i}`); +// for (let i = 0; i < 3; i++) { // Outer loop +// console.log(`Outer: ${i}`); - for (let j = 0; j < 2; j++) { // Inner loop - console.log(` Inner: ${j}`); +// for (let j = 0; j < 2; j++) { // Inner loop +// console.log(` Inner: ${j}`); +// } +// } + +//Jenis-jenis loop +// for (let i = 1; i <= 3; i++) { +// console.log(`Iterasi ke-${i}`); + +// let j = 1; +// while (j <= 2) { +// console.log(` Sub-iterasi ke-${j}`); +// j++; +// } +// } + +// SOAL +// Buat program untuk menampilkan semua bilangan prima dari 1 hingga 100. +// Bilangan prima adalah bilangan yang hanya bisa dibagi oleh 1 dan dirinya sendiri (contoh: 2, 3, 5, 7, 11, dst.). + +// for (let i = 2; i <= 100; i++) { // Loop utama (angka yang dicek) +// let isPrime = true; // Flag untuk menKaliani bilangan prima + +// for (let j = 2; j <= Math.sqrt(i); j++) { // Loop pembagi (2 hingga i-1) +// if (i % j === 0) { // Jika i habis dibagi j +// isPrime = false; // Bukan bilangan prima +// break; // Keluar dari loop dalam +// } +// } + +// if (isPrime) { // Jika isPrime tetap true +// console.log(i); // Tampilkan bilangan prima +// } +// } + +// Latihan tambahan (Optional) + +for (let i = 1; i <= 100; i++) { + let isPrime = i > 1; + for (let j = 2; j <= Math.sqrt(i); j++) { // Hanya cek hingga √i + if (i % j === 0) { + isPrime = false; + break; + } + } + if (!isPrime) { + console.log(i); } } \ No newline at end of file From 2eeaf55db7f87b4d8ba5b6d5002ccb352ac99bf0 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Tue, 4 Mar 2025 15:55:59 +0700 Subject: [PATCH 03/16] create file soal1.js dan soal2.js --- quiz/part1/soal1.js | 39 +++++++++++++++++++++++++++++++ quiz/part1/soal2.js | 56 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 quiz/part1/soal1.js create mode 100644 quiz/part1/soal2.js diff --git a/quiz/part1/soal1.js b/quiz/part1/soal1.js new file mode 100644 index 00000000..782d6ddf --- /dev/null +++ b/quiz/part1/soal1.js @@ -0,0 +1,39 @@ +// Kamu diminta untuk memprogram suatu game sederhana, Proxytia namanya. +// Untuk memulai game itu diperlukan 2 variabel (untuk sekarang), +// yaitu nama dan peran. Variabel peran harus memiliki isi data, +// bila nama kosong, pemain akan diberikan peringatan berupa "nama wajib diisi" +// bila kosong pemain akan diberikan peringatan berupa "Pilih Peranmu untuk memulai game". +// Terdapat 3 peran berbeda yaitu Ksatria, Tabib, dan Penyihir. +// Tugas Anda adalah untuk membuat program yang mengecek isi variabel +// peran serta mengeluarkan respon sesuai isi variabel tersebut. +//ada 4 jenis respons sesuai dengan 3 jenis peran yaitu +//halo Ksatria ${nama} , kamu dapat menyerang dengan senjatamu! +//halo Tabib ${nama} , kamu akan membantu temanmu yang terluka +//halo Penyihir ${nama} , ciptakan keajaiban yang membantu kemenanganmu! +//tapi kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada +//tips belajar penggunaan `` (backtick) pada javascript agar +//mudah dalam memasukan variabel ke dalam string +//tapi tanpa backtick juga ga masalah sih yg penting output sesuai + +// algoritma +//isi algoritma mu disini (AWAS KALO GA DI ISI!!!!) + + +let nama = "Rakha", peran = "Tabib"; + +//code disini gunakan console.log untuk outputnya +if (nama === "") { + console.log('nama wajib diisi') +} else if (peran === "") { + console.log('Pilih peranmu untuk memulai game'); +} else { + if (peran === "Ksatria") { + console.log(`halo Ksatria ${nama}, kamu dapat menyerang dengan senjatamau!`); + } else if (peran === "Tabib") { + console.log(`halo Tabib ${nama} , kamu akan membantu temanmu yang terluka`); + } else if (peran === "Penyihir") { + console.log(`halo Penyihir ${nama} , ciptakan keajaiban yang membantu kemenanganmu!`); + } else { + console.log(`tapi kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada`); + } +} \ No newline at end of file diff --git a/quiz/part1/soal2.js b/quiz/part1/soal2.js new file mode 100644 index 00000000..2e585b9f --- /dev/null +++ b/quiz/part1/soal2.js @@ -0,0 +1,56 @@ +// Kamu akan diberikan sebuah tanggal dalam tiga variabel, yaitu hari, bulan, dan tahun. Disini kamu diminta untuk membuat format tanggal. Misal tanggal yang diberikan adalah hari 1, bulan 5, dan tahun 1945. Maka, output yang harus kamu proses adalah menjadi 1 Mei 1945. + +// Gunakan switch case untuk kasus ini! + +// Contoh: + +// let hari = 21; let bulan = 1; let tahun = 1945; + +// Maka hasil yang akan tampil di console adalah: '21 Januari 1945'; + +//tips gunakan keyword ini di google "conditional switch case javascript" +//dan mulailah membaca dan mencontek di stackoverflow xixixi + +let tanggal = 8; // assign nilai variabel tanggal disini! (dengan angka antara 1 - 31) +let bulan = 8; // assign nilai variabel bulan disini! (dengan angka antara 1 - 12) +let tahun = 2005; // assign nilai variabel tahun disini! (dengan angka antara 1900 - 2200) + +//code switch case kamu disini +switch (bulan) { + case 1: + console.log(`${tanggal} Januari ${tahun}`); + break; + case 2: + console.log(`${tanggal} Februari ${tahun}`); + break; + case 3: + console.log(`${tanggal} Maret ${tahun}`); + break; + case 4: + console.log(`${tanggal} April ${tahun}`); + break; + case 5: + console.log(`${tanggal} Mei ${tahun}`); + break; + case 6: + console.log(`${tanggal} Juni ${tahun}`); + break; + case 7: + console.log(`${tanggal} Juli ${tahun}`); + break; + case 8: + console.log(`${tanggal} Agustus ${tahun}`); + break; + case 9: + console.log(`${tanggal} September ${tahun}`); + break; + case 10: + console.log(`${tanggal} Oktober ${tahun}`); + break; + case 11: + console.log(`${tanggal} November ${tahun}`); + break; + case 12: + console.log(`${tanggal} Desember ${tahun}`); + break; +} \ No newline at end of file From e94b649dec1a8771b1d96b2207d94ca110fc108a Mon Sep 17 00:00:00 2001 From: Z1nky Date: Tue, 4 Mar 2025 16:25:51 +0700 Subject: [PATCH 04/16] create file soal1-soal4.js di dalam quiz part 2 --- quiz/part2/soal1.js | 18 ++++++++++++++++++ quiz/part2/soal2.js | 26 ++++++++++++++++++++++++++ quiz/part2/soal3.js | 19 +++++++++++++++++++ quiz/part2/soal4.js | 27 +++++++++++++++++++++++++++ 4 files changed, 90 insertions(+) create mode 100644 quiz/part2/soal1.js create mode 100644 quiz/part2/soal2.js create mode 100644 quiz/part2/soal3.js create mode 100644 quiz/part2/soal4.js diff --git a/quiz/part2/soal1.js b/quiz/part2/soal1.js new file mode 100644 index 00000000..028e2435 --- /dev/null +++ b/quiz/part2/soal1.js @@ -0,0 +1,18 @@ +//1. Let's Form a Sentence + +// Problem +// Pada tugas ini kamu diminta untuk melakukan penambahan string menggunakan simbol +. +// Disediakan variable word. Tambahkan nilai word satu per satu dengan nilai variable lain +// untuk membentuk sebuah kalimat. Jangan lupa menambahkan spasi di setiap kata, dan +// tampilkan di console hasil penggabungannya! Kamu tidak perlu membuat variable baru! + +let word = 'JavaScript'; +let second = 'is'; +let third = 'awesome'; +let fourth = 'and'; +let fifth = 'I'; +let sixth = 'love'; +let seventh = 'it!'; + +//code here +console.log(word + ' ' + second + ' ' + third + ' ' + fourth + ' ' + fifth + ' ' + sixth + ' ' + seventh); \ No newline at end of file diff --git a/quiz/part2/soal2.js b/quiz/part2/soal2.js new file mode 100644 index 00000000..e5d17e2a --- /dev/null +++ b/quiz/part2/soal2.js @@ -0,0 +1,26 @@ +// Problem +// Pada tugas ini kamu diminta untuk "memecah" sebuah kalimat dan menampilkan setiap kata didalamnya. +// Untuk soal nomor ini, gunakan akses satu per satu karakter dari string untuk mengambil setiap huruf dalam kata. +// Terasa manual? Tidak apa-apa, kita coba ini dulu untuk saat ini. + +// Hints +// Saat kamu mendapatkan tiap huruf, untuk membentuk setiap kata kamu tinggal menggunakan simbol + untuk membentuk kata +// tersebut! + +let word = 'wow JavaScript is so cool'; +let exampleFirstWord = word[0] + word[1] + word[2]; + +console.log('First Word: ' + exampleFirstWord); + +//lanjutkan dengan struktur log diatas +let secondWord = word[4] + word[5] + word[6] + word[7] + word[8] + word[9] + word[10] + word[11] + word[12] + word[13]; +console.log('Second Word: ' + secondWord); + +let thirdWord = word[15] + word[16]; +console.log('Third Word: ' + thirdWord); + +let fourthWord = word[18] + word[19]; +console.log('Fourth Word: ' + fourthWord); + +let fifthWord = word[21] + word[22] + word[23] + word[24]; +console.log('Fifth Word: ' + fifthWord); diff --git a/quiz/part2/soal3.js b/quiz/part2/soal3.js new file mode 100644 index 00000000..c4541104 --- /dev/null +++ b/quiz/part2/soal3.js @@ -0,0 +1,19 @@ +// Soal 3. Breaking Sentence (Again) using Substring +// Problem +// Mirip seperti soal nomor 2, namun kali ini gunakan substring untuk mengambil potongan dari tiap kata! + +let word3 = 'wow JavaScript is so cool'; +let exampleFirstWord3 = word3.substring(0, 3); + +console.log('First Word: ' + exampleFirstWord3); + +let secondWord3 = word3.substring(4, 14); +let thirdWord3 = word3.substring(15, 17); +let fourthWord3 = word3.substring(18, 20); +let fifthWord3 = word3.substring(21, 25); + +console.log('Second Word: ' + secondWord3); +console.log('Third Word: ' + thirdWord3); +console.log('Fourth Word: ' + fourthWord3); +console.log('Fifth Word: ' + fifthWord3); + diff --git a/quiz/part2/soal4.js b/quiz/part2/soal4.js new file mode 100644 index 00000000..a9538fce --- /dev/null +++ b/quiz/part2/soal4.js @@ -0,0 +1,27 @@ +// Soal 4. Breaking Sentence (yet Again) and Count Each Length + +// Problem +// Mirip seperti soal nomor 3, tapi tampilkan juga panjang kata masing-masingnya! + + +let word4 = 'wow JavaScript is so cool'; +let exampleFirstWord4 = word4.substring(0, 3); + +let firstWordLength = exampleFirstWord4.length; + +console.log('First Word: ' + exampleFirstWord4 + ', with length: ' + firstWordLength); + +let secondWord = word4.substring(4, 14); +let thirdWord = word4.substring(15, 17); +let fourthWord = word4.substring(18, 20); +let fifthWord = word4.substring(21, 25); + +let secondWordLength = secondWord.length; +let thirdWordLength = thirdWord.length; +let fourthWordLength = fourthWord.length; +let fifthWordLength = fifthWord.length; + +console.log('Second Word: ' + secondWord + ', with length: ' + secondWordLength); +console.log('Third Word: ' + thirdWord + ', with length: ' + thirdWordLength); +console.log('Fourth Word: ' + fourthWord + ', with length: ' + fourthWordLength); +console.log('Fifth Word: ' + fifthWord + ', with length: ' + fifthWordLength); From 25927ea7832acb7c157526785497382a8fb44e40 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 05:26:27 +0700 Subject: [PATCH 05/16] add file soal1-soal4.js in quiz part3 --- quiz/part3/soal1.js | 33 +++++++++++++++++++++++++++++++++ quiz/part3/soal2.js | 26 ++++++++++++++++++++++++++ quiz/part3/soal3.js | 0 quiz/part3/soal4.js | 0 quiz/part3/soal5.js | 0 5 files changed, 59 insertions(+) create mode 100644 quiz/part3/soal1.js create mode 100644 quiz/part3/soal2.js create mode 100644 quiz/part3/soal3.js create mode 100644 quiz/part3/soal4.js create mode 100644 quiz/part3/soal5.js diff --git a/quiz/part3/soal1.js b/quiz/part3/soal1.js new file mode 100644 index 00000000..d74070cc --- /dev/null +++ b/quiz/part3/soal1.js @@ -0,0 +1,33 @@ +// Problem +// Pada tugas ini kamu diminta untuk melakukan looping dalam JavaScript dengan menggunakan syntax while. +// Untuk membuat tantangan ini lebih menarik, kamu juga diminta untuk membuat suatu looping yang menghitung maju dan +// menghitung mundur. Jangan lupa tampilkan di console juga judul 'LOOPING PERTAMA' dan 'LOOPING KEDUA'. +//tampilkan output yang menunjukan kalau looping itu maju pada looping pertama dan mundur pada looping kedua + +// LOOPING PERTAMA (MAJU) +let i = 1 +const number = []; +while (i <= 20) { + + number.push(i); + i++; +}; + +// LOOPING PERTAMA (MUNDUR) +let j = 20 +const number2 = []; +while (j > 0) { + + number2.push(j); + j--; +}; + +// HASIL +const result = number.join(','); +console.log('LOOPING PERTAMA'); +console.log(result); // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 +console.log('\n'); + +const result2 = number2.join(','); +console.log('LOOPING KEDUA') +console.log(result2); // 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 \ No newline at end of file diff --git a/quiz/part3/soal2.js b/quiz/part3/soal2.js new file mode 100644 index 00000000..aed490d1 --- /dev/null +++ b/quiz/part3/soal2.js @@ -0,0 +1,26 @@ +// Problem +// Pada tugas ini kamu diminta untuk melakukan looping dalam JavaScript dengan menggunakan syntax for. +// Untuk membuat tantangan ini lebih menarik, kamu juga diminta untuk membuat suatu looping yang menghitung maju dan +// menghitung mundur. Jangan lupa tampilkan di console juga judul 'LOOPING PERTAMA' dan 'LOOPING KEDUA'. +//tampilkan output yang menunjukan kalau looping itu maju pada looping pertama dan mundur pada looping kedua + +//LOOPING PERTAMA (MAJU) +const number = [] +for (let i = 0; i <= 20; i++) { + number.push(i); +} + +// LOOPING KEDUA (MUNDUR) +const number2 = [] +for (let i = 20; i >= 0; i--) { + number2.push(i); +} + +// HASIL +const result = number.join(','); +const result2 = number2.join(','); +console.log('LOOPING PERTAMA'); // LOOPING PERTAMA +console.log(result); //0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 +console.log('\n') +console.log('LOOPING KEDUA'); //LOOPING KEDUA +console.log(result2); //20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 \ No newline at end of file diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js new file mode 100644 index 00000000..e69de29b From c260420000c3ac760bd464a1423a0acc8fa41be4 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 05:58:45 +0700 Subject: [PATCH 06/16] update folder part3 file soal3-soal4.js --- quiz/part3/soal3.js | 17 +++++++++++++++++ quiz/part3/soal4.js | 31 +++++++++++++++++++++++++++++++ quiz/part3/soal5.js | 19 +++++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js index e69de29b..b5b44082 100644 --- a/quiz/part3/soal3.js +++ b/quiz/part3/soal3.js @@ -0,0 +1,17 @@ +// Hint: kamu akan menggunakan kondisional juga di kasus ini. + +// Problem +// Buatlah sebuah perulangan 1 - 100 dengan pertambahan counter sebanyak 1 +// Di dalam perulangan, periksa setiap angka counter: + +// Apabila angka counter adalah angka genap, tuliskan GENAP +// Apabila angka counter adalah angka ganjil, tuliskan GANJIL + +for (let i = 0; i <= 100; i++) { + if (i % 2 !== 0) { + console.log(`${i} adalah angka Ganjil`); + } else { + console.log(`${i} adalah angka Genap`); + } +} +// Output: 0 adalah angka Genap, 1 adalah angka Ganjil, sampai angka 100 adalah angka Genap \ No newline at end of file diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js index e69de29b..20e06b54 100644 --- a/quiz/part3/soal4.js +++ b/quiz/part3/soal4.js @@ -0,0 +1,31 @@ +// Buatlah 3 perulangan baru dari 1 - 100, dengan pertambahan counter sebesar 2, 5, dan 9. +// Pada 3 perulangan baru ini periksa setiap angka counter: + +// Apabila bukan kelipatan yang ditentukan tidak perlu menuliskan apa-apa +// Apabila angka counter adalah kelipatan 3 dengan pertambahan 2, kelipatan 6 dengan pertambahan 5, dan kelipatan 10 dengan pertambahan 9, tuliskan: +// "3 kelipatan 3"dan seterusnya. + +// Loop dengan pertamban 2 +for (let i = 3; i < 100; i += 2) { + if (i % 3 === 0) { + console.log(`${i} kelipatan 3`); + } +} + +// Loop dengan pertamban 5 +console.log('\n') + +for (let i = 6; i < 100; i += 2) { + if (i % 6 === 0) { + console.log(`${i} kelipatan 6`); + } +} + +// Loop dengan pertamban 9 +console.log('\n') + +for (let i = 10; i <= 100; i += 2) { + if (i % 10 === 0) { + console.log(`${i} kelipatan 10`); + } +} \ No newline at end of file diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js index e69de29b..13c77342 100644 --- a/quiz/part3/soal5.js +++ b/quiz/part3/soal5.js @@ -0,0 +1,19 @@ +// Problem buatlah bintang seperti berikut +let input = 5 +//hasilnya +//* +//** +//*** +//**** +//***** + +let pattern = ""; + +for (i = 0; i < input; i++) { + for (j = 0; j <= i; j++) { + pattern += "*"; + } + pattern += "\n" +} + +console.log(pattern); \ No newline at end of file From ae694ea072c8341c2ddef3c2224fd272a847697b Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 07:36:17 +0700 Subject: [PATCH 07/16] create file soal1-3.js in quiz/part4 --- quiz/part4/soal1.js | 0 quiz/part4/soal2.js | 0 quiz/part4/soal3.js | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 quiz/part4/soal1.js create mode 100644 quiz/part4/soal2.js create mode 100644 quiz/part4/soal3.js diff --git a/quiz/part4/soal1.js b/quiz/part4/soal1.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/part4/soal2.js b/quiz/part4/soal2.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/part4/soal3.js b/quiz/part4/soal3.js new file mode 100644 index 00000000..e69de29b From ff61141671b96ddccaed65adb9b105761dadf0b2 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 07:46:39 +0700 Subject: [PATCH 08/16] update file soal1-3.js in quiz/part4 --- quiz/part4/soal1.js | 15 +++++++++++++++ quiz/part4/soal2.js | 17 +++++++++++++++++ quiz/part4/soal3.js | 16 ++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/quiz/part4/soal1.js b/quiz/part4/soal1.js index e69de29b..7ddefcef 100644 --- a/quiz/part4/soal1.js +++ b/quiz/part4/soal1.js @@ -0,0 +1,15 @@ +// Tugas 1 +// Buatlah sebuah fungsi bernama shoutOut(), yang mengembalikan nilai berupa "Halo Function!", +// yang kemudian akan ditampilkan di console. + +//bikin fungsinya disini +const shoutOut = () => { + return "Hallo Function!" +} + +console.log(shoutOut()); + + +// ------------------------------------ +console.log('') +// ------------------------------------ \ No newline at end of file diff --git a/quiz/part4/soal2.js b/quiz/part4/soal2.js index e69de29b..c348690f 100644 --- a/quiz/part4/soal2.js +++ b/quiz/part4/soal2.js @@ -0,0 +1,17 @@ +// Buatlah sebuah fungsi bernama calculateMultiply(), yang mengembalikan nilai berupa hasil kali dari +// dua parameter yang dikirim. + +//bikin fungsinya disini +const calculateMultiply = (num1, num2) => { + return num1 * num2; +} + +let num1 = 1 +let num2 = 2 + +let hasilPerkalian = calculateMultiply(num1, num2); +console.log(hasilPerkalian); + +// ------------------------------------ +console.log('') +// ----------------------------------- \ No newline at end of file diff --git a/quiz/part4/soal3.js b/quiz/part4/soal3.js index e69de29b..d02e7b4f 100644 --- a/quiz/part4/soal3.js +++ b/quiz/part4/soal3.js @@ -0,0 +1,16 @@ +// Buatlah sebuah fungsi bernama processSentence(), yang akan memproses seluruh parameter yang diinput menjadi +// satu kalimat berikut: +// "Nama saya [Name], umur saya [Age] tahun, alamat saya di [Address], dan saya punya hobby yaitu [hobby]!" + +//bikin fungsinya disini +const processSentence = (name, age, address, hobby) => { + return `Nama saya ${name}, umur saya ${age}, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}!`; +} + +let name = "Rakha"; +let age = 19; +let address = "Jln. Kampung durian runtuh"; +let hobby = "Coding"; + +let fullSentence = processSentence(name, age, address, hobby); +console.log(fullSentence); // Menampilkan "Nama saya Rakha, umur saya 19 tahun, alamat saya di Jln. Kampung durian runtuh, dan saya punya hobby yaitu Coding!" \ No newline at end of file From 5bf0dc3add77f1bc940ff2ceb58992062ed45825 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 07:50:10 +0700 Subject: [PATCH 09/16] create file soal1-4.js in quiz/ujian --- quiz/ujian/soal1.js | 0 quiz/ujian/soal2.js | 0 quiz/ujian/soal3.js | 0 quiz/ujian/soal4.js | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 quiz/ujian/soal1.js create mode 100644 quiz/ujian/soal2.js create mode 100644 quiz/ujian/soal3.js create mode 100644 quiz/ujian/soal4.js diff --git a/quiz/ujian/soal1.js b/quiz/ujian/soal1.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/ujian/soal2.js b/quiz/ujian/soal2.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/ujian/soal3.js b/quiz/ujian/soal3.js new file mode 100644 index 00000000..e69de29b diff --git a/quiz/ujian/soal4.js b/quiz/ujian/soal4.js new file mode 100644 index 00000000..e69de29b From 1cff576f26c84a53d2ada8179aa2f9444df9980a Mon Sep 17 00:00:00 2001 From: Z1nky Date: Wed, 5 Mar 2025 09:03:51 +0700 Subject: [PATCH 10/16] update file soal1-4.js in quiz/ujian --- quiz/ujian/soal1.js | 22 ++++++++++++++++++++++ quiz/ujian/soal2.js | 22 ++++++++++++++++++++++ quiz/ujian/soal3.js | 22 ++++++++++++++++++++++ quiz/ujian/soal4.js | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 98 insertions(+) diff --git a/quiz/ujian/soal1.js b/quiz/ujian/soal1.js index e69de29b..418e0c79 100644 --- a/quiz/ujian/soal1.js +++ b/quiz/ujian/soal1.js @@ -0,0 +1,22 @@ +// Problem +// Diberikan sebuah function bandingkanAngka(angka1, angka2) yang menerima dua parameter angka. +// Function akan me-return nilai true jika angka2 lebih besar dari angka1, dan false jika sebaliknya. +// Jika kedua angka bernilai sama, function akan me-return -1. + +function bandingkanAngka(angka1, angka2) { + //code disini + if (angka2 > angka1) { + return true; + } else if (angka1 > angka2) { + return false; + } else { + return -1 + } +} + +// TEST CASES +console.log(bandingkanAngka(5, 8)); // true +console.log(bandingkanAngka(5, 3)); // false +console.log(bandingkanAngka(4, 4)); // -1 +console.log(bandingkanAngka(3, 3)); // -1 +console.log(bandingkanAngka(17, 2)); // false \ No newline at end of file diff --git a/quiz/ujian/soal2.js b/quiz/ujian/soal2.js index e69de29b..e6902bc3 100644 --- a/quiz/ujian/soal2.js +++ b/quiz/ujian/soal2.js @@ -0,0 +1,22 @@ +// Problem +// Diberikan sebuah function balikKata(kata) yang menerima satu parameter berupa string. +// Function akan me-return kata yang dibalik. Contoh, jika kata adalah "John Doe", function akan me-return "eoD nhoJ". + +function balikKata(kata) { + // you can only write your code here! + const currentString = kata; + let newString = ''; + + for (let i = kata.length - 1; i >= 0; i--) { + newString = newString + currentString[i]; + } + + return newString; +} + +// TEST CASES +console.log(balikKata('Hello World and Coders')); // sredoC dna dlroW olleH +console.log(balikKata('John Doe')); // eoD nhoJ +console.log(balikKata('I am a bookworm')); // mrowkoob a ma I +console.log(balikKata('Coding is my hobby')); // ybboh ym si gnidoC +console.log(balikKata('Super')); // repuS \ No newline at end of file diff --git a/quiz/ujian/soal3.js b/quiz/ujian/soal3.js index e69de29b..b2eed802 100644 --- a/quiz/ujian/soal3.js +++ b/quiz/ujian/soal3.js @@ -0,0 +1,22 @@ +// Problem +// Diberikan sebuah function konversiMenit(menit) yang menerima satu parameter berupa angka yang merupakan ukuran waktu +// dalam menit. Function akan me-return string waktu dalam format jam:menit berdasarkan menit tersebut. +// Contoh, jika menit adalah 63, maka function akan me-return "1:03". + +function konversiMenit(menit) { + // you can only write your code here! + const jam = Math.floor(menit / 60); + const sisaMenit = menit % 60; + + const formatMenit = sisaMenit.toString().padStart(2, '0'); + + return `${jam}:${formatMenit}`; + +} + +// TEST CASES +console.log(konversiMenit(63)); // 1:03 +console.log(konversiMenit(124)); // 2:04 +console.log(konversiMenit(53)); // 0:53 +console.log(konversiMenit(88)); // 1:28 +console.log(konversiMenit(120)); // 2:00 \ No newline at end of file diff --git a/quiz/ujian/soal4.js b/quiz/ujian/soal4.js index e69de29b..430a9f4b 100644 --- a/quiz/ujian/soal4.js +++ b/quiz/ujian/soal4.js @@ -0,0 +1,32 @@ +// Problem +// Diberikan sebuah function xo(str) yang menerima satu parameter berupa string. +// Function akan me-return true jika jumlah karakter x sama dengan jumlah karakter o, dan false jika tidak. + +function xo(str) { + // you can only write your code here! + const splitStr = str.split(''); + let countX = 0; + let countY = 0; + + for (let i = 0; i < str.length; i++) { + if (splitStr[i] === "x") { + countX += 1; + } + if (splitStr[i] === "o") { + countY += 1; + } + } + + if (countX === countY) { + return true; + } else { + return false; + } +} + +// TEST CASES +console.log(xo('xoxoxo')); // true +console.log(xo('oxooxo')); // false +console.log(xo('oxo')); // false +console.log(xo('xxxooo')); // true +console.log(xo('xoxooxxo')); // true \ No newline at end of file From 5cdf3506207c4c60ef426cf5756457474c8a9554 Mon Sep 17 00:00:00 2001 From: Z1nky Date: Tue, 22 Apr 2025 21:57:15 +0700 Subject: [PATCH 11/16] update file part3.js folder study-materials --- study-materials/part3.js | 41 +++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/study-materials/part3.js b/study-materials/part3.js index 62c47623..5202138a 100644 --- a/study-materials/part3.js +++ b/study-materials/part3.js @@ -11,14 +11,14 @@ // function hitungTotal(harga, jumlah) { // console.log("Input:", { harga, jumlah }); - + // const total = harga * jumlah; // console.log("Total:", total); - + // if (total > 1000000) { // console.warn("Transaksi besar terdeteksi"); // } - + // return total; // } @@ -41,6 +41,37 @@ // console.log("Spesifikasi:", produk.spesifikasi.join(", ")); // } -console.log(0.1 + 0.2); // 0.30000000000000004 +// console.log(0.1 + 0.2); // 0.30000000000000004 // Solusi: gunakan toFixed() atau kalikan dengan 100 saat perhitungan -console.log((0.1 + 0.2).toFixed(2)); // "0.30" \ No newline at end of file +// console.log((0.1 + 0.2).toFixed(2)); // "0.30" + +let metodePembayaran = "cash"; + +if (metodePembayaran === "transfer" || metodePembayaran === "kartu kredit" || metodePembayaran === "cash") { + console.log("Metode pembayaran diterima"); +}; + +let namaPengguna = "Admin"; +let displayNama = namaPengguna || "Tamu"; +console.log(displayNama); + +let sistemMaintenance = false; + +if (!sistemMaintenance) { + console.log("Sistem dapat diakses"); +} + +let data = null; +if (!data) { + console.log("data tidak tersedia!"); +} + +let cuaca = "hujan"; +let waktu = "malam"; +let akhirPekan = false; + +if ((cuaca === "cerah" || cuaca === "berawan") && (waktu === "pagi" && akhirPekan)) { + console.log("Selamat beraktivitas di luar!"); +} else { + console.log("Lanjut turu saja, kanjut juga lagi turu") +} \ No newline at end of file From 61a64d0e05663a8e4b01de9ee3ba4a0d26c46721 Mon Sep 17 00:00:00 2001 From: rakhaallea Date: Tue, 29 Jul 2025 23:10:34 +0700 Subject: [PATCH 12/16] push quiz part 1 dan 2 --- quiz/part1/soal1.js | 45 +++++++++++++++++++++++---------------------- quiz/part1/soal2.js | 38 +++++++++++++++++++++----------------- quiz/part2/soal1.js | 2 +- quiz/part2/soal2.js | 11 +++++------ quiz/part2/soal3.js | 18 +++++++++--------- quiz/part2/soal4.js | 1 + quiz/part3/soal4.js | 4 ++-- 7 files changed, 62 insertions(+), 57 deletions(-) diff --git a/quiz/part1/soal1.js b/quiz/part1/soal1.js index 782d6ddf..bc2a9456 100644 --- a/quiz/part1/soal1.js +++ b/quiz/part1/soal1.js @@ -1,10 +1,10 @@ -// Kamu diminta untuk memprogram suatu game sederhana, Proxytia namanya. -// Untuk memulai game itu diperlukan 2 variabel (untuk sekarang), -// yaitu nama dan peran. Variabel peran harus memiliki isi data, +// Kamu diminta untuk memprogram suatu game sederhana, Proxytia namanya. +// Untuk memulai game itu diperlukan 2 variabel (untuk sekarang), +// yaitu nama dan peran. Variabel peran harus memiliki isi data, // bila nama kosong, pemain akan diberikan peringatan berupa "nama wajib diisi" -// bila kosong pemain akan diberikan peringatan berupa "Pilih Peranmu untuk memulai game". -// Terdapat 3 peran berbeda yaitu Ksatria, Tabib, dan Penyihir. -// Tugas Anda adalah untuk membuat program yang mengecek isi variabel +// bila kosong pemain akan diberikan peringatan berupa "Pilih Peranmu untuk memulai game". +// Terdapat 3 peran berbeda yaitu Ksatria, Tabib, dan Penyihir. +// Tugas Anda adalah untuk membuat program yang mengecek isi variabel // peran serta mengeluarkan respon sesuai isi variabel tersebut. //ada 4 jenis respons sesuai dengan 3 jenis peran yaitu //halo Ksatria ${nama} , kamu dapat menyerang dengan senjatamu! @@ -18,22 +18,23 @@ // algoritma //isi algoritma mu disini (AWAS KALO GA DI ISI!!!!) +let nama = "Zenitsu", peran = "Ksatria"; -let nama = "Rakha", peran = "Tabib"; - -//code disini gunakan console.log untuk outputnya -if (nama === "") { - console.log('nama wajib diisi') -} else if (peran === "") { - console.log('Pilih peranmu untuk memulai game'); -} else { - if (peran === "Ksatria") { - console.log(`halo Ksatria ${nama}, kamu dapat menyerang dengan senjatamau!`); - } else if (peran === "Tabib") { - console.log(`halo Tabib ${nama} , kamu akan membantu temanmu yang terluka`); - } else if (peran === "Penyihir") { - console.log(`halo Penyihir ${nama} , ciptakan keajaiban yang membantu kemenanganmu!`); +if (nama !== "") { + if (peran === " ") { + console.log("Pilih peranmu untuk memulai"); + } else if (peran.toLocaleLowerCase() === "ksatria") { + console.log(`halo Ksatria ${nama}, kamu dapat menyerang dengan senjatamu!`); + } else if (peran.toLowerCase() === "tabib") { + console.log(`halo Tabib ${nama}, kamu akan membantu temanmu yang terluka`); + } else if (peran.toLocaleLowerCase() === "penyihir") { + console.log(`halo Penyihir ${nama}, ciptakan keajaiban yang membantu kemenanganmu!`); } else { - console.log(`tapi kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada`); + console.log(`kayaknya kamu ${nama}, jadi NPC aja ya`) } -} \ No newline at end of file +} else { + console.log(`nama wajib diisi`) +} + +//code disini gunakan console.log untuk outputnya + diff --git a/quiz/part1/soal2.js b/quiz/part1/soal2.js index 2e585b9f..916fba87 100644 --- a/quiz/part1/soal2.js +++ b/quiz/part1/soal2.js @@ -11,46 +11,50 @@ //tips gunakan keyword ini di google "conditional switch case javascript" //dan mulailah membaca dan mencontek di stackoverflow xixixi -let tanggal = 8; // assign nilai variabel tanggal disini! (dengan angka antara 1 - 31) -let bulan = 8; // assign nilai variabel bulan disini! (dengan angka antara 1 - 12) -let tahun = 2005; // assign nilai variabel tahun disini! (dengan angka antara 1900 - 2200) +let hari = 21; let bulan = 12; let tahun = new Date().getFullYear(); +let stringBulan = ""; -//code switch case kamu disini switch (bulan) { case 1: - console.log(`${tanggal} Januari ${tahun}`); + stringBulan = "Januari"; break; case 2: - console.log(`${tanggal} Februari ${tahun}`); + stringBulan = "Februari"; break; case 3: - console.log(`${tanggal} Maret ${tahun}`); + stringBulan = "Maret"; break; case 4: - console.log(`${tanggal} April ${tahun}`); + stringBulan = "April"; break; case 5: - console.log(`${tanggal} Mei ${tahun}`); + stringBulan = "Mei"; break; case 6: - console.log(`${tanggal} Juni ${tahun}`); + stringBulan = "Juni"; break; case 7: - console.log(`${tanggal} Juli ${tahun}`); + stringBulan = "Juli"; break; case 8: - console.log(`${tanggal} Agustus ${tahun}`); + stringBulan = "Agustus"; break; case 9: - console.log(`${tanggal} September ${tahun}`); + stringBulan = "September"; break; case 10: - console.log(`${tanggal} Oktober ${tahun}`); + stringBulan = "Oktober"; break; case 11: - console.log(`${tanggal} November ${tahun}`); + stringBulan = "November"; break; case 12: - console.log(`${tanggal} Desember ${tahun}`); + stringBulan = "Desember"; break; -} \ No newline at end of file + default: + hari = null + stringBulan = null + tahun = null +} + +console.log(`${hari} ${stringBulan} ${tahun}`) \ No newline at end of file diff --git a/quiz/part2/soal1.js b/quiz/part2/soal1.js index 028e2435..5b030eab 100644 --- a/quiz/part2/soal1.js +++ b/quiz/part2/soal1.js @@ -15,4 +15,4 @@ let sixth = 'love'; let seventh = 'it!'; //code here -console.log(word + ' ' + second + ' ' + third + ' ' + fourth + ' ' + fifth + ' ' + sixth + ' ' + seventh); \ No newline at end of file +console.log(word + " " + second + " " + third + " " + fourth + " " + fifth + " " + sixth + " " + seventh); \ No newline at end of file diff --git a/quiz/part2/soal2.js b/quiz/part2/soal2.js index e5d17e2a..c91796f7 100644 --- a/quiz/part2/soal2.js +++ b/quiz/part2/soal2.js @@ -14,13 +14,12 @@ console.log('First Word: ' + exampleFirstWord); //lanjutkan dengan struktur log diatas let secondWord = word[4] + word[5] + word[6] + word[7] + word[8] + word[9] + word[10] + word[11] + word[12] + word[13]; -console.log('Second Word: ' + secondWord); - let thirdWord = word[15] + word[16]; -console.log('Third Word: ' + thirdWord); - let fourthWord = word[18] + word[19]; -console.log('Fourth Word: ' + fourthWord); - let fifthWord = word[21] + word[22] + word[23] + word[24]; + +console.log('Second Word: ' + secondWord); +console.log('Third Word: ' + thirdWord); +console.log('Fouth Word: ' + fourthWord); console.log('Fifth Word: ' + fifthWord); + diff --git a/quiz/part2/soal3.js b/quiz/part2/soal3.js index c4541104..d2696631 100644 --- a/quiz/part2/soal3.js +++ b/quiz/part2/soal3.js @@ -6,14 +6,14 @@ let word3 = 'wow JavaScript is so cool'; let exampleFirstWord3 = word3.substring(0, 3); console.log('First Word: ' + exampleFirstWord3); +//lanjutkan dengan struktur log diatas -let secondWord3 = word3.substring(4, 14); -let thirdWord3 = word3.substring(15, 17); -let fourthWord3 = word3.substring(18, 20); -let fifthWord3 = word3.substring(21, 25); - -console.log('Second Word: ' + secondWord3); -console.log('Third Word: ' + thirdWord3); -console.log('Fourth Word: ' + fourthWord3); -console.log('Fifth Word: ' + fifthWord3); +let secondWord = word3.substring(4, 14); +let thirdWord = word3.substring(15, 17); +let fourthWord = word3.substring(18, 20); +let fifthWord = word3.substring(21, 25); +console.log('Second Word: ' + secondWord); +console.log('Third Word: ' + thirdWord); +console.log('Fourth Word: ' + fourthWord); +console.log('Fifth Word: ' + fifthWord); diff --git a/quiz/part2/soal4.js b/quiz/part2/soal4.js index a9538fce..95f82494 100644 --- a/quiz/part2/soal4.js +++ b/quiz/part2/soal4.js @@ -11,6 +11,7 @@ let firstWordLength = exampleFirstWord4.length; console.log('First Word: ' + exampleFirstWord4 + ', with length: ' + firstWordLength); +// my code let secondWord = word4.substring(4, 14); let thirdWord = word4.substring(15, 17); let fourthWord = word4.substring(18, 20); diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js index 20e06b54..afd03005 100644 --- a/quiz/part3/soal4.js +++ b/quiz/part3/soal4.js @@ -15,7 +15,7 @@ for (let i = 3; i < 100; i += 2) { // Loop dengan pertamban 5 console.log('\n') -for (let i = 6; i < 100; i += 2) { +for (let i = 6; i < 100; i += 5) { if (i % 6 === 0) { console.log(`${i} kelipatan 6`); } @@ -24,7 +24,7 @@ for (let i = 6; i < 100; i += 2) { // Loop dengan pertamban 9 console.log('\n') -for (let i = 10; i <= 100; i += 2) { +for (let i = 10; i <= 100; i += 9) { if (i % 10 === 0) { console.log(`${i} kelipatan 10`); } From 8527485f7b744923d5378215acbd7a9f3751fbc6 Mon Sep 17 00:00:00 2001 From: rakhaallea Date: Tue, 29 Jul 2025 23:20:15 +0700 Subject: [PATCH 13/16] push quiz part3 soal1 --- quiz/part3/soal1.js | 40 +++++++++++++++++----------------------- quiz/part3/soal2.js | 21 +-------------------- quiz/part3/soal3.js | 11 +++-------- quiz/part3/soal4.js | 25 +------------------------ quiz/part3/soal5.js | 11 +---------- 5 files changed, 23 insertions(+), 85 deletions(-) diff --git a/quiz/part3/soal1.js b/quiz/part3/soal1.js index d74070cc..31224a12 100644 --- a/quiz/part3/soal1.js +++ b/quiz/part3/soal1.js @@ -4,30 +4,24 @@ // menghitung mundur. Jangan lupa tampilkan di console juga judul 'LOOPING PERTAMA' dan 'LOOPING KEDUA'. //tampilkan output yang menunjukan kalau looping itu maju pada looping pertama dan mundur pada looping kedua -// LOOPING PERTAMA (MAJU) -let i = 1 -const number = []; -while (i <= 20) { +// My Code - number.push(i); - i++; -}; +// LOOPING PERTAMA +let n = 1; -// LOOPING PERTAMA (MUNDUR) -let j = 20 -const number2 = []; -while (j > 0) { +console.log('MAJU') +while (n <= 10) { + console.log(n) + n++ +} +console.log('MAJU AKHIR\n') - number2.push(j); - j--; -}; +// LOOPING KEDUA +let K = 10; -// HASIL -const result = number.join(','); -console.log('LOOPING PERTAMA'); -console.log(result); // 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 -console.log('\n'); - -const result2 = number2.join(','); -console.log('LOOPING KEDUA') -console.log(result2); // 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1 \ No newline at end of file +console.log('MUNDUR') +while (K > 0) { + console.log(K) + K-- +} +console.log('MUNDUR AKHIR') \ No newline at end of file diff --git a/quiz/part3/soal2.js b/quiz/part3/soal2.js index aed490d1..5765212b 100644 --- a/quiz/part3/soal2.js +++ b/quiz/part3/soal2.js @@ -4,23 +4,4 @@ // menghitung mundur. Jangan lupa tampilkan di console juga judul 'LOOPING PERTAMA' dan 'LOOPING KEDUA'. //tampilkan output yang menunjukan kalau looping itu maju pada looping pertama dan mundur pada looping kedua -//LOOPING PERTAMA (MAJU) -const number = [] -for (let i = 0; i <= 20; i++) { - number.push(i); -} - -// LOOPING KEDUA (MUNDUR) -const number2 = [] -for (let i = 20; i >= 0; i--) { - number2.push(i); -} - -// HASIL -const result = number.join(','); -const result2 = number2.join(','); -console.log('LOOPING PERTAMA'); // LOOPING PERTAMA -console.log(result); //0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 -console.log('\n') -console.log('LOOPING KEDUA'); //LOOPING KEDUA -console.log(result2); //20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 \ No newline at end of file +// My Code \ No newline at end of file diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js index b5b44082..b74a1d1a 100644 --- a/quiz/part3/soal3.js +++ b/quiz/part3/soal3.js @@ -7,11 +7,6 @@ // Apabila angka counter adalah angka genap, tuliskan GENAP // Apabila angka counter adalah angka ganjil, tuliskan GANJIL -for (let i = 0; i <= 100; i++) { - if (i % 2 !== 0) { - console.log(`${i} adalah angka Ganjil`); - } else { - console.log(`${i} adalah angka Genap`); - } -} -// Output: 0 adalah angka Genap, 1 adalah angka Ganjil, sampai angka 100 adalah angka Genap \ No newline at end of file +// Output: 0 adalah angka Genap, 1 adalah angka Ganjil, sampai angka 100 adalah angka Genap + +// My Code \ No newline at end of file diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js index afd03005..695a75ec 100644 --- a/quiz/part3/soal4.js +++ b/quiz/part3/soal4.js @@ -5,27 +5,4 @@ // Apabila angka counter adalah kelipatan 3 dengan pertambahan 2, kelipatan 6 dengan pertambahan 5, dan kelipatan 10 dengan pertambahan 9, tuliskan: // "3 kelipatan 3"dan seterusnya. -// Loop dengan pertamban 2 -for (let i = 3; i < 100; i += 2) { - if (i % 3 === 0) { - console.log(`${i} kelipatan 3`); - } -} - -// Loop dengan pertamban 5 -console.log('\n') - -for (let i = 6; i < 100; i += 5) { - if (i % 6 === 0) { - console.log(`${i} kelipatan 6`); - } -} - -// Loop dengan pertamban 9 -console.log('\n') - -for (let i = 10; i <= 100; i += 9) { - if (i % 10 === 0) { - console.log(`${i} kelipatan 10`); - } -} \ No newline at end of file +// My Code \ No newline at end of file diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js index 13c77342..7ccbaeea 100644 --- a/quiz/part3/soal5.js +++ b/quiz/part3/soal5.js @@ -7,13 +7,4 @@ let input = 5 //**** //***** -let pattern = ""; - -for (i = 0; i < input; i++) { - for (j = 0; j <= i; j++) { - pattern += "*"; - } - pattern += "\n" -} - -console.log(pattern); \ No newline at end of file +// My Code \ No newline at end of file From ec37b69c4fe0c07d2b67a79237a3c6bd33d466c2 Mon Sep 17 00:00:00 2001 From: rakhaallea Date: Wed, 30 Jul 2025 23:10:14 +0700 Subject: [PATCH 14/16] push quiz part3 --- quiz/part3/soal1.js | 8 +++---- quiz/part3/soal2.js | 14 ++++++++++- quiz/part3/soal3.js | 10 +++++++- quiz/part3/soal4.js | 26 +++++++++++++++++++- quiz/part3/soal5.js | 13 +++++++++- study-materials/part5.js | 51 ++++++++++++++++++++++++++++++---------- 6 files changed, 102 insertions(+), 20 deletions(-) diff --git a/quiz/part3/soal1.js b/quiz/part3/soal1.js index 31224a12..7898a48c 100644 --- a/quiz/part3/soal1.js +++ b/quiz/part3/soal1.js @@ -17,11 +17,11 @@ while (n <= 10) { console.log('MAJU AKHIR\n') // LOOPING KEDUA -let K = 10; +let k = 10; console.log('MUNDUR') -while (K > 0) { - console.log(K) - K-- +while (k > 0) { + console.log(k) + k-- } console.log('MUNDUR AKHIR') \ No newline at end of file diff --git a/quiz/part3/soal2.js b/quiz/part3/soal2.js index 5765212b..fa8bb8f7 100644 --- a/quiz/part3/soal2.js +++ b/quiz/part3/soal2.js @@ -4,4 +4,16 @@ // menghitung mundur. Jangan lupa tampilkan di console juga judul 'LOOPING PERTAMA' dan 'LOOPING KEDUA'. //tampilkan output yang menunjukan kalau looping itu maju pada looping pertama dan mundur pada looping kedua -// My Code \ No newline at end of file +// My Code + +console.log('Maju Mulai'); +for (let i = 0; i < 10; i++) { + console.log(`angka ke : ${i}`); +} +console.log(`Maju Selesai\n`) + +console.log('Mundur Mulai'); +for (let i = 10; i > 0; i--) { + console.log(`angka ke : ${i}`); +} +console.log(`Mundur Selesai`) \ No newline at end of file diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js index b74a1d1a..ee56960e 100644 --- a/quiz/part3/soal3.js +++ b/quiz/part3/soal3.js @@ -9,4 +9,12 @@ // Output: 0 adalah angka Genap, 1 adalah angka Ganjil, sampai angka 100 adalah angka Genap -// My Code \ No newline at end of file +// My Code +for (let i = 0; i <= 100; i++) { + if (i % 2 === 0) { + console.log(`${i} adalah angka Genap`); + } + if (i % 2 === 1) { + console.log(`${i} adalah angka Ganjil`); + } +} \ No newline at end of file diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js index 695a75ec..f26c5be1 100644 --- a/quiz/part3/soal4.js +++ b/quiz/part3/soal4.js @@ -5,4 +5,28 @@ // Apabila angka counter adalah kelipatan 3 dengan pertambahan 2, kelipatan 6 dengan pertambahan 5, dan kelipatan 10 dengan pertambahan 9, tuliskan: // "3 kelipatan 3"dan seterusnya. -// My Code \ No newline at end of file +// My Code +// counter +console.log('counter 2') +for (let i = 1; i <= 100; i += 2) { + if (i % 3 === 0) { + console.log(`${i} kelipatan 3`) + } +} +console.log('\n') + +console.log('counter 5') +for (let i = 1; i <= 100; i += 5) { + if (i % 6 === 0) { + console.log(`${i} kelipatan 6`) + } +} +console.log('\n') + +console.log('counter 9') +for (let i = 1; i <= 100; i += 9) { + if (i % 10 === 0) { + console.log(`${i} kelipatan 10`) + } +} +console.log('\n') \ No newline at end of file diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js index 7ccbaeea..86ca129f 100644 --- a/quiz/part3/soal5.js +++ b/quiz/part3/soal5.js @@ -7,4 +7,15 @@ let input = 5 //**** //***** -// My Code \ No newline at end of file +// My Code + +let pattern = ""; + +for (let i = 0; i < 5; i++) { + for (let j = 0; j <= i; j++) { + pattern += "*"; + } + pattern += "\n"; +} + +console.log(pattern); \ No newline at end of file diff --git a/study-materials/part5.js b/study-materials/part5.js index 63d1b719..2a031ea6 100644 --- a/study-materials/part5.js +++ b/study-materials/part5.js @@ -61,15 +61,42 @@ // Latihan tambahan (Optional) -for (let i = 1; i <= 100; i++) { - let isPrime = i > 1; - for (let j = 2; j <= Math.sqrt(i); j++) { // Hanya cek hingga √i - if (i % j === 0) { - isPrime = false; - break; - } - } - if (!isPrime) { - console.log(i); - } -} \ No newline at end of file +// for (let i = 1; i <= 100; i++) { +// let isPrime = i > 1; +// for (let j = 2; j <= Math.sqrt(i); j++) { // Hanya cek hingga √i +// if (i % j === 0) { +// isPrime = false; +// break; +// } +// } +// if (!isPrime) { +// console.log(i); +// } +// } + +// const mobil = { merek: "Toyota", tahun: 2020 }; +// for (const key in mobil) { +// console.log(key, ":", mobil[key]); // merek: Toyota, tahun: 2020 +// } + + +// const reverseFunc = (data) => { +// let result = ""; + +// for (let i = data.length - 1; i >= 0; i--) { +// result += data[i]; +// } + +// return result; +// } + +// console.log(reverseFunc("Hello")); + +// const data = "Hello" + +// for (let i = data.length - 1; i >= 0; i--) { +// console.log(data[i]); +// } + + + From 68691ee61646e360a200e16a630dfffa7f829099 Mon Sep 17 00:00:00 2001 From: rakhaallea Date: Wed, 30 Jul 2025 23:19:50 +0700 Subject: [PATCH 15/16] push quiz part 4 --- quiz/part4/soal1.js | 4 +--- quiz/part4/soal2.js | 8 +++----- quiz/part4/soal3.js | 6 ++++-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/quiz/part4/soal1.js b/quiz/part4/soal1.js index 7ddefcef..96ae09bf 100644 --- a/quiz/part4/soal1.js +++ b/quiz/part4/soal1.js @@ -3,9 +3,7 @@ // yang kemudian akan ditampilkan di console. //bikin fungsinya disini -const shoutOut = () => { - return "Hallo Function!" -} +const shoutOut = () => "Hallo Function"; console.log(shoutOut()); diff --git a/quiz/part4/soal2.js b/quiz/part4/soal2.js index c348690f..f8d1b203 100644 --- a/quiz/part4/soal2.js +++ b/quiz/part4/soal2.js @@ -2,12 +2,10 @@ // dua parameter yang dikirim. //bikin fungsinya disini -const calculateMultiply = (num1, num2) => { - return num1 * num2; -} +const calculateMultiply = (num1, num2) => num1 * num2; -let num1 = 1 -let num2 = 2 +let num1 = 4 +let num2 = 3 let hasilPerkalian = calculateMultiply(num1, num2); console.log(hasilPerkalian); diff --git a/quiz/part4/soal3.js b/quiz/part4/soal3.js index d02e7b4f..3f89d757 100644 --- a/quiz/part4/soal3.js +++ b/quiz/part4/soal3.js @@ -3,8 +3,10 @@ // "Nama saya [Name], umur saya [Age] tahun, alamat saya di [Address], dan saya punya hobby yaitu [hobby]!" //bikin fungsinya disini -const processSentence = (name, age, address, hobby) => { - return `Nama saya ${name}, umur saya ${age}, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}!`; +const processSentence = (...biodata) => { + const [nama, age, address, hobby] = biodata; + + return `Nama saya ${nama}, umur saya ${age}, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}`; } let name = "Rakha"; From b78afc69bb50b14d982494fd46dd43bd297b9b34 Mon Sep 17 00:00:00 2001 From: rakhaallea Date: Sun, 3 Aug 2025 23:41:38 +0700 Subject: [PATCH 16/16] posh soal-soal ujian --- quiz/ujian/soal1.js | 10 +++++----- quiz/ujian/soal2.js | 9 +++------ quiz/ujian/soal3.js | 10 ++++------ quiz/ujian/soal4.js | 21 ++++++++------------- 4 files changed, 20 insertions(+), 30 deletions(-) diff --git a/quiz/ujian/soal1.js b/quiz/ujian/soal1.js index 418e0c79..fa0697d3 100644 --- a/quiz/ujian/soal1.js +++ b/quiz/ujian/soal1.js @@ -5,12 +5,12 @@ function bandingkanAngka(angka1, angka2) { //code disini - if (angka2 > angka1) { - return true; - } else if (angka1 > angka2) { - return false; - } else { + if (angka2 === angka1) { return -1 + } else if (angka2 > angka1) { + return true + } else if (angka2 < angka1) { + return false } } diff --git a/quiz/ujian/soal2.js b/quiz/ujian/soal2.js index e6902bc3..3fbf5580 100644 --- a/quiz/ujian/soal2.js +++ b/quiz/ujian/soal2.js @@ -3,17 +3,14 @@ // Function akan me-return kata yang dibalik. Contoh, jika kata adalah "John Doe", function akan me-return "eoD nhoJ". function balikKata(kata) { + let result = ""; // you can only write your code here! - const currentString = kata; - let newString = ''; - for (let i = kata.length - 1; i >= 0; i--) { - newString = newString + currentString[i]; + result += kata[i]; } - return newString; + return result } - // TEST CASES console.log(balikKata('Hello World and Coders')); // sredoC dna dlroW olleH console.log(balikKata('John Doe')); // eoD nhoJ diff --git a/quiz/ujian/soal3.js b/quiz/ujian/soal3.js index b2eed802..d12e0fe1 100644 --- a/quiz/ujian/soal3.js +++ b/quiz/ujian/soal3.js @@ -5,13 +5,11 @@ function konversiMenit(menit) { // you can only write your code here! - const jam = Math.floor(menit / 60); - const sisaMenit = menit % 60; - - const formatMenit = sisaMenit.toString().padStart(2, '0'); - - return `${jam}:${formatMenit}`; + const convertToHour = String(Math.floor(menit / 60)); + const converToMinute = String(menit % 60); + const minute = converToMinute.padStart(2, 0); + return `${convertToHour}:${minute}`; } // TEST CASES diff --git a/quiz/ujian/soal4.js b/quiz/ujian/soal4.js index 430a9f4b..339b90da 100644 --- a/quiz/ujian/soal4.js +++ b/quiz/ujian/soal4.js @@ -3,25 +3,20 @@ // Function akan me-return true jika jumlah karakter x sama dengan jumlah karakter o, dan false jika tidak. function xo(str) { - // you can only write your code here! - const splitStr = str.split(''); - let countX = 0; - let countY = 0; + let jumlahX = 0; + let jumlahO = 0; + // you can only write your code here! for (let i = 0; i < str.length; i++) { - if (splitStr[i] === "x") { - countX += 1; + if (str[i] === "x") { + jumlahX += 1; } - if (splitStr[i] === "o") { - countY += 1; + if (str[i] === "o") { + jumlahO += 1; } } - if (countX === countY) { - return true; - } else { - return false; - } + return (jumlahO === jumlahX) ? true : false; } // TEST CASES