From 62f58c9d06122ad8869a846dba04cb0057a484c0 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sat, 22 Nov 2025 23:45:16 +0700 Subject: [PATCH 01/14] push soal1 dan soal2 --- quiz/part1/soal1.js | 42 +++++++++++++++++++++++++ quiz/part1/soal2.js | 76 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 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..525e9da3 --- /dev/null +++ b/quiz/part1/soal1.js @@ -0,0 +1,42 @@ +// 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 = "", peran = ""; + +//code disini gunakan console.log untuk outputnya + +function proxytia(nama, peran) { + if (nama === "") { + console.log("nama wajib diisi!"); + } else if (peran === "") { + console.log("Pilih peranmu untuk memulai game!") + } else if (peran === "Tabib") { + console.log(`Halo ${peran} ${nama}, kamu akan membantu temanmu yang terluka`); + } else if (peran === "Ksatria") { + console.log(`Halo ${peran} ${nama}, kamu dapat menyerang dengan senjatamu!`); + } else if (peran === "Penyihir") { + console.log(`Halo ${peran} ${nama}, ciptakan keajaiban yang membantu kemenanganmu!`); + } else { + console.log("Tapi kayanya kamu jadi bot aja ya, peran yang kamu pilih gaada"); + } +} + +proxytia("Zaki", "Penyihir"); \ No newline at end of file diff --git a/quiz/part1/soal2.js b/quiz/part1/soal2.js new file mode 100644 index 00000000..2ee98a07 --- /dev/null +++ b/quiz/part1/soal2.js @@ -0,0 +1,76 @@ +// 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 = 12; // assign nilai variabel tanggal disini! (dengan angka antara 1 - 31) +let bulan = 11; // assign nilai variabel bulan disini! (dengan angka antara 1 - 12) +let tahun = 2001; // assign nilai variabel tahun disini! (dengan angka antara 1900 - 2200) + +//code switch case kamu disini + +let namaBulan; + +switch (bulan) { + case 1: + namaBulan = "Januari"; + break; + + case 2: + namaBulan = "Februari"; + break; + + case 3: + namaBulan = "Maret"; + break; + + case 4: + namaBulan = "April"; + break; + + case 5: + namaBulan = "Mei"; + break; + + case 6: + namaBulan = "Juni"; + break; + + case 7: + namaBulan = "Juli"; + break; + + case 8: + namaBulan = "Agustus"; + break; + + case 9: + namaBulan = "September"; + break; + + case 10: + namaBulan = "Oktober"; + break; + + case 11: + namaBulan = "November"; + break; + + case 12: + namaBulan = "Desember"; + break; + + default: + namaBulan = "Bulan tidak valid"; + break; +} + +console.log(`${tanggal} ${namaBulan} ${tahun}`); \ No newline at end of file From 5737c60ecaec1969c5ba174e67a6f06914c0588b Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sat, 22 Nov 2025 23:51:25 +0700 Subject: [PATCH 02/14] push soal1 --- quiz/part2/soal1.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 quiz/part2/soal1.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 From 721f4bddc6afb8ca5eeaafc42d9b90edeb3881ac Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sat, 22 Nov 2025 23:53:45 +0700 Subject: [PATCH 03/14] push soal 2 --- quiz/part2/soal2.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 quiz/part2/soal2.js diff --git a/quiz/part2/soal2.js b/quiz/part2/soal2.js new file mode 100644 index 00000000..439d1e1b --- /dev/null +++ b/quiz/part2/soal2.js @@ -0,0 +1,25 @@ +// 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); \ No newline at end of file From b220ceed0f3d5e6a7506623b9054a0e277ea598b Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sat, 22 Nov 2025 23:58:14 +0700 Subject: [PATCH 04/14] push soal 3 --- quiz/part2/soal3.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 quiz/part2/soal3.js diff --git a/quiz/part2/soal3.js b/quiz/part2/soal3.js new file mode 100644 index 00000000..56e95299 --- /dev/null +++ b/quiz/part2/soal3.js @@ -0,0 +1,25 @@ +// 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); +let firstWordLength = exampleFirstWord3.length; + + +console.log('First Word: ' + exampleFirstWord3 + ''); + +secondWord3 = word3.substring(4, 14) +let secondWordLength = secondWord3.length; +console.log('Second Word: ' + secondWord3); + +thirdWord3 = word3.substring(15, 17) +let thirdWordLength = thirdWord3.length; +console.log('Third Word: ' + thirdWord3); + +fourthWord3 = word3.substring(18, 20) +let fourthWordLength = fourthWord3.length; +console.log('Fourth Word: ' + fourthWord3); + +fifthWord3 = word3.substring(21, 25) +let fifthWordLength = fifthWord3.length; +console.log('Fifth Word: ' + fifthWord3); \ No newline at end of file From 3afd9e541c9e938cf71a881b104702f2a6787999 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sun, 23 Nov 2025 00:11:40 +0700 Subject: [PATCH 05/14] push soal 4 --- quiz/part2/soal4.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 quiz/part2/soal4.js diff --git a/quiz/part2/soal4.js b/quiz/part2/soal4.js new file mode 100644 index 00000000..6759e7c5 --- /dev/null +++ b/quiz/part2/soal4.js @@ -0,0 +1,26 @@ +// 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); + +secondWord4 = word4.substring(4, 14) +let secondWordLength = secondWord4.length; +console.log('Second Word: ' + secondWord4 + ', with length: ' + secondWordLength); + +thirdWord4 = word4.substring(15, 17) +let thirdWordLength = thirdWord4.length; +console.log('Third Word: ' + thirdWord4 + ', with length: ' + thirdWordLength); + +fourthWord4 = word4.substring(18, 20) +let fourthWordLength = fourthWord4.length; +console.log('Fourth Word: ' + fourthWord4 + ', with length: ' + fourthWordLength); + +fifthWord4 = word4.substring(21, 25) +let fifthWordLength = fifthWord4.length; +console.log('Fifth Word: ' + fifthWord4 + ', with length: ' + fifthWordLength); \ No newline at end of file From 268630a1ca98944c7313a153437228789f0d8a00 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Sun, 23 Nov 2025 00:26:36 +0700 Subject: [PATCH 06/14] fix soal 3 --- quiz/part2/soal3.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/quiz/part2/soal3.js b/quiz/part2/soal3.js index 56e95299..1e09d4e6 100644 --- a/quiz/part2/soal3.js +++ b/quiz/part2/soal3.js @@ -3,23 +3,18 @@ let word3 = 'wow JavaScript is so cool'; let exampleFirstWord3 = word3.substring(0, 3); -let firstWordLength = exampleFirstWord3.length; console.log('First Word: ' + exampleFirstWord3 + ''); secondWord3 = word3.substring(4, 14) -let secondWordLength = secondWord3.length; console.log('Second Word: ' + secondWord3); thirdWord3 = word3.substring(15, 17) -let thirdWordLength = thirdWord3.length; console.log('Third Word: ' + thirdWord3); fourthWord3 = word3.substring(18, 20) -let fourthWordLength = fourthWord3.length; console.log('Fourth Word: ' + fourthWord3); fifthWord3 = word3.substring(21, 25) -let fifthWordLength = fifthWord3.length; console.log('Fifth Word: ' + fifthWord3); \ No newline at end of file From 5112173dec6a2b28c2e0b977533e931863a9e9bd Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 22:03:25 +0700 Subject: [PATCH 07/14] push soal 1&2 part3 --- quiz/part3/soal1.js | 20 ++++++++++++++++++++ quiz/part3/soal2.js | 15 +++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 quiz/part3/soal1.js create mode 100644 quiz/part3/soal2.js diff --git a/quiz/part3/soal1.js b/quiz/part3/soal1.js new file mode 100644 index 00000000..b1ce3ab0 --- /dev/null +++ b/quiz/part3/soal1.js @@ -0,0 +1,20 @@ +// 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 + +let i = 0; + +console.log("LOOPING PERTAMA"); +while (i < 10) { + i++; + console.log(i); +} + +console.log("LOOPING KEDUA"); +let j = 10; +while (j > 0) { + j--; + console.log(j); +} \ No newline at end of file diff --git a/quiz/part3/soal2.js b/quiz/part3/soal2.js new file mode 100644 index 00000000..fcf16295 --- /dev/null +++ b/quiz/part3/soal2.js @@ -0,0 +1,15 @@ +// 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 + +console.log("LOOPING PERTAMA"); +for (let i = 0; i < 10; i++) { + console.log(i); +} + +console.log("LOOPING KEDUA"); +for (let i = 10; i > 0; i--) { + console.log(i); +} \ No newline at end of file From 6d05d650ed993d0b627df671c23f0fbb3b3d90ba Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 22:11:52 +0700 Subject: [PATCH 08/14] push soal3 part3 --- quiz/part3/soal3.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 quiz/part3/soal3.js diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js new file mode 100644 index 00000000..017222c7 --- /dev/null +++ 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 angka = 1; angka <= 100; angka++) { + if (angka % 2 === 0) { + console.log(`${angka} adalah GENAP`); + } else { + console.log(`${angka} adalah GANJIL`); + + } +} \ No newline at end of file From ca3fa46674beb54cc5429dbca9ede000f3c3795e Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 22:23:25 +0700 Subject: [PATCH 09/14] push soal4 --- quiz/part3/soal4.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 quiz/part3/soal4.js diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js new file mode 100644 index 00000000..9bc8a4c8 --- /dev/null +++ b/quiz/part3/soal4.js @@ -0,0 +1,28 @@ +// 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. + +for (i = 1; i <= 100; i += 2) { + if (i % 3 === 0) { + console.log(`${i} kelipatan 3`); + } +} + +console.log(""); + +for (j = 1; j <= 100; j += 5) { + if (j % 6 === 0) { + console.log(`${j} kelipatan 6`); + } +} + +console.log(""); + +for (k = 1; k <= 100; k += 10) { + if (k % 9 === 0) { + console.log(`${k} kelipatan 9`); + } +} \ No newline at end of file From d6ecb2be22a9ab654d35dcf53c0b6d3911114c31 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 22:46:58 +0700 Subject: [PATCH 10/14] push soal5 part3 --- quiz/part3/soal5.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 quiz/part3/soal5.js diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js new file mode 100644 index 00000000..8c086d98 --- /dev/null +++ b/quiz/part3/soal5.js @@ -0,0 +1,13 @@ +// Problem buatlah bintang seperti berikut +let input = 5 +//hasilnya +//* +//** +//*** +//**** +//***** + +for (i = 1; i <= input; i++) { + console.log('*'.repeat(i)); + +} \ No newline at end of file From 35e4acc2ac7be526362eceec348f6aaaf4c89b27 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 23:04:16 +0700 Subject: [PATCH 11/14] push quiz part4 --- quiz/part4/soal1.js | 15 +++++++++++++++ quiz/part4/soal2.js | 17 +++++++++++++++++ quiz/part4/soal3.js | 16 ++++++++++++++++ 3 files changed, 48 insertions(+) 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..aa72789e --- /dev/null +++ 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 +function shoutOut(){ + return "Halo Function!"; +} + +console.log(shoutOut()); + + +// ------------------------------------ +console.log('') +// ------------------------------------ \ No newline at end of file diff --git a/quiz/part4/soal2.js b/quiz/part4/soal2.js new file mode 100644 index 00000000..a0b0b729 --- /dev/null +++ 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 +function calculateMultiply(a, b) { + return a * b; +} + +let num1 = 3 +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 new file mode 100644 index 00000000..68d5a606 --- /dev/null +++ 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 +function processSentence(name, age, address, hobby) { + return `Nama saya ${name}, umur saya ${age}, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}!` +} + +let name = "Agus"; +let age = 30; +let address = "Jln. Malioboro, Yogjakarta"; +let hobby = "gaming"; + +let fullSentence = processSentence(name, age, address, hobby); +console.log(fullSentence); // Menampilkan "Nama saya Agus, umur saya 30 tahun, alamat saya di Jln. Malioboro, Yogjakarta, dan saya punya hobby yaitu gaming!" \ No newline at end of file From 4ea63e36fbfbfeb19a6079ab4976ca3f0dc40a21 Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Mon, 24 Nov 2025 23:38:39 +0700 Subject: [PATCH 12/14] push part3 soal5 --- quiz/part3/soal5.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js index 8c086d98..e7ee4d86 100644 --- a/quiz/part3/soal5.js +++ b/quiz/part3/soal5.js @@ -7,7 +7,12 @@ let input = 5 //**** //***** -for (i = 1; i <= input; i++) { - console.log('*'.repeat(i)); -} \ No newline at end of file +let pattern = ''; +for (i = 1; i <= input; i++) { + for (let j = 1; j <= i; j++) { + pattern += "* " + } + pattern += "\n" +} +console.log(pattern); \ No newline at end of file From 75cc61eb1abcde5b0c9a6bbbb4bd599fd3d33eaa Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Tue, 25 Nov 2025 20:05:23 +0700 Subject: [PATCH 13/14] push quiz ujian --- quiz/ujian/soal1.js | 22 ++++++++++++++++++++++ quiz/ujian/soal2.js | 19 +++++++++++++++++++ quiz/ujian/soal3.js | 23 +++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 quiz/ujian/soal1.js create mode 100644 quiz/ujian/soal2.js create mode 100644 quiz/ujian/soal3.js diff --git a/quiz/ujian/soal1.js b/quiz/ujian/soal1.js new file mode 100644 index 00000000..7fb448eb --- /dev/null +++ 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 (angka1 < angka2) { + return "true"; + } else if (angka1 === angka2) { + return "-1"; + } else { + return "false"; + } +} + +// 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 diff --git a/quiz/ujian/soal2.js b/quiz/ujian/soal2.js new file mode 100644 index 00000000..47f5b50f --- /dev/null +++ b/quiz/ujian/soal2.js @@ -0,0 +1,19 @@ +// 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! + let newKata = ""; + for (let i = kata.length - 1; i >= 0; i--) { + newKata += kata[i]; + } + return newKata; +} + +// 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 diff --git a/quiz/ujian/soal3.js b/quiz/ujian/soal3.js new file mode 100644 index 00000000..c5a85d10 --- /dev/null +++ b/quiz/ujian/soal3.js @@ -0,0 +1,23 @@ + +// 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! + let jam = menit / 60; + let min = menit % 60; + if (min < 10) { + min = '0' + min; + }; + + return `${Math.floor(jam)}:${min}` +} + +// 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 From 6c703c4df53d7dbdc7a4d5aebec4ce8ba324291b Mon Sep 17 00:00:00 2001 From: Ahmad Zaki Date: Tue, 25 Nov 2025 21:07:44 +0700 Subject: [PATCH 14/14] push soal4 quiz ujian --- quiz/ujian/soal3.js | 2 +- quiz/ujian/soal4.js | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 quiz/ujian/soal4.js diff --git a/quiz/ujian/soal3.js b/quiz/ujian/soal3.js index c5a85d10..af84a38e 100644 --- a/quiz/ujian/soal3.js +++ b/quiz/ujian/soal3.js @@ -11,7 +11,7 @@ function konversiMenit(menit) { if (min < 10) { min = '0' + min; }; - + return `${Math.floor(jam)}:${min}` } diff --git a/quiz/ujian/soal4.js b/quiz/ujian/soal4.js new file mode 100644 index 00000000..e2f60747 --- /dev/null +++ b/quiz/ujian/soal4.js @@ -0,0 +1,33 @@ +// 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! + let jumlahX = 0; + let jumlahO = 0; + + for (let i = 0; i < str.length; i++) { + if (str[i] === 'x') { + jumlahX++; + } else if (str[i] === 'o') { + jumlahO++; + } + + } + + // return jumlahX; + + if (jumlahX === jumlahO) { + 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