diff --git a/quiz/part1/soal1.js b/quiz/part1/soal1.js new file mode 100644 index 00000000..bc1114d5 --- /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 = "Dienn", peran = "Penyihir"; +//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 senjatamu!`); +} +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(`halo ${nama}, kayaknya kamu jadi bot aja ya, peran yang kamu pilih ga ada`); +} + + diff --git a/quiz/part1/soal2.js b/quiz/part1/soal2.js new file mode 100644 index 00000000..11e1f483 --- /dev/null +++ b/quiz/part1/soal2.js @@ -0,0 +1,58 @@ +// 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 = "Februari"; // 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 +switch(bulan){ + case 1: + bulan = "Januari"; + break; + case 2: + bulan = "Februari"; + break; + case 3: + bulan = "Maret"; + break; + case 4: + bulan = "April" + break; + case 5: + bulan = "Mei"; + break; + case 6: + bulan = "Juni"; + break; + case 7: + bulan = "Juli"; + break; + case 8: + bulan = "Agustus"; + break; + case 9: + bulan = "September"; + break; + case 10: + bulan = "Oktober"; + break; + case 11: + bulan = "November"; + break; + case 12: + bulan = "Desember"; + break; + default: + bulan = "Bulan tidak valid"; +} + console.log(`${tanggal}, ${bulan}, ${tahun}`); diff --git a/quiz/part2/soal1.js b/quiz/part2/soal1.js new file mode 100644 index 00000000..abda59e3 --- /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 first = 'JavaScript'; +let second = 'is'; +let third = 'awesome'; +let fourth = 'and'; +let fifth = 'I'; +let sixth = 'love'; +let seventh = 'it!'; + +//code here +console.log(first + ' ' + 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..7f71ac85 --- /dev/null +++ b/quiz/part2/soal2.js @@ -0,0 +1,21 @@ +// 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]; +let exampleSecondWord = word[4] + word [5] + word [6] + word[7] + word[8] + word[9] + word [10] + word [11] + word[12] + word[13]; +let exampleThirdWord = word[15] + word[16]; +let exampleFourthWord = word[18] + word[19]; +let exampleFifthWord = word[21] + word[22] + word[23] + word[24]; + +console.log('First Word: ' + exampleFirstWord); +console.log('Second Word: ' + exampleSecondWord); +console.log('Third Word: ' + exampleThirdWord); +console.log('Fourth Word: ' + exampleFourthWord); +console.log('Fifth Word: ' + exampleFifthWord); +//lanjutkan dengan struktur log diatas diff --git a/quiz/part2/soal3.js b/quiz/part2/soal3.js new file mode 100644 index 00000000..efa2c447 --- /dev/null +++ b/quiz/part2/soal3.js @@ -0,0 +1,15 @@ +// 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 exampleSecondWord3 = word3.substring(4, 14); +let exampleThirdWord3 = word3.substring(15, 17); +let exampleFourthWord3 = word3.substring(18, 20); +let exampleFifthWord3 = word3.substring(21, 25); + +console.log('First Word: ' + exampleFirstWord3); +console.log('Second Word: ' + exampleSecondWord3); +console.log('Third Word: ' + exampleThirdWord3); +console.log('Fourth Word: ' + exampleFourthWord3); +console.log('Fifth Word: ' + exampleFifthWord3); \ No newline at end of file diff --git a/quiz/part2/soal4.js b/quiz/part2/soal4.js new file mode 100644 index 00000000..f9192642 --- /dev/null +++ b/quiz/part2/soal4.js @@ -0,0 +1,25 @@ +// 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 exampleSecondWord4 = word4.substring(4, 14); +let exampleThirdWord4 = word4.substring(15, 17); +let exampleFourthWord4 = word4.substring(18, 20); +let exampleFifthWord4 = word4.substring(21, 25); + + +let firstWordLength = exampleFirstWord4.length; +let SecondWordLength = exampleSecondWord4.length; +let ThirdWordLength = exampleThirdWord4.length; +let FourthWordLength = exampleFourthWord4.length; +let FifthWordLength = exampleFifthWord4.length; + +console.log('First Word: ' + exampleFirstWord4 + ', with length: ' + firstWordLength); +console.log('Second Word: ' + exampleSecondWord4 + ', with lenght: ' + SecondWordLength); +console.log('Third Word: ' + exampleThirdWord4 + ', with lenght: ' + ThirdWordLength); +console.log('Fourth Word: ' + exampleFourthWord4 + ', with lenght: ' + FourthWordLength); +console.log('Fifth Word: ' + exampleFifthWord4 + ', with lenght: ' + FifthWordLength); + +//tulis code sesuai dengan keterangan soalnya dan pola example yang ada \ No newline at end of file diff --git a/quiz/part3/soal1.js b/quiz/part3/soal1.js new file mode 100644 index 00000000..d73e0291 --- /dev/null +++ b/quiz/part3/soal1.js @@ -0,0 +1,14 @@ +// 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 +while (i < 10) { + console.log('LOOPING PERTAMA i =' + i) + i++; +} while (i > 0){ + console.log('LOOPING KEDUA i =' + i) + i--; +} \ No newline at end of file diff --git a/quiz/part3/soal2.js b/quiz/part3/soal2.js new file mode 100644 index 00000000..4c8e40dc --- /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 + +let i = 0 +while (i < 10) { + console.log(`LOOPING PERTAMA ${i}`) + i++; +} while (i > 0){ + console.log(`LOOPING KEDUA ${i}`) + i--; +} \ No newline at end of file diff --git a/quiz/part3/soal3.js b/quiz/part3/soal3.js new file mode 100644 index 00000000..dbc393f9 --- /dev/null +++ b/quiz/part3/soal3.js @@ -0,0 +1,16 @@ +// 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 = 1; i < 100; i++) { + i += 1; + console.log(`GENAP ${i}`) +} +console.log() +for (let j = 1; j < 100; j++) { + j += 2; + console.log(`GANJIL ${j}`) +} \ No newline at end of file diff --git a/quiz/part3/soal4.js b/quiz/part3/soal4.js new file mode 100644 index 00000000..0d91843b --- /dev/null +++ b/quiz/part3/soal4.js @@ -0,0 +1,22 @@ +// 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 (let i = 1; i < 100; i++){ + i += 2; + console.log(`Kelipatan 3 = ${i}`) +} + +for (let i = 1; i < 100; i++){ + i += 5; + console.log(`Kelipatan 5 = ${i}`) +} + +for (let i = 1; i < 100; i++){ + i += 9; + console.log(`Kelipatan 10 = ${i}`) +} + diff --git a/quiz/part3/soal5.js b/quiz/part3/soal5.js new file mode 100644 index 00000000..da553416 --- /dev/null +++ b/quiz/part3/soal5.js @@ -0,0 +1,13 @@ +// Problem buatlah bintang seperti berikut +let input = 5 +let stars = "" +for (let i = 0; i < input; i++){ + stars +="*" + console.log(stars) +} +//hasilnya +//* +//** +//*** +//**** +//***** diff --git a/quiz/part4/soal1.js b/quiz/part4/soal1.js new file mode 100644 index 00000000..5dbaebce --- /dev/null +++ b/quiz/part4/soal1.js @@ -0,0 +1,11 @@ +// Tugas 1 +// Buatlah sebuah fungsi bernama shoutOut(), yang mengembalikan nilai berupa "Halo Function!", +// yang kemudian akan ditampilkan di console. + +//bikin fungsinya disini +function shoutOut(){ + console.log('Halo Funtion') +} +console.log(shoutOut()); + +// ------------------------------------ diff --git a/quiz/part4/soal2.js b/quiz/part4/soal2.js new file mode 100644 index 00000000..c3af4240 --- /dev/null +++ b/quiz/part4/soal2.js @@ -0,0 +1,15 @@ +// Buatlah sebuah fungsi bernama calculateMultiply(), yang mengembalikan nilai berupa hasil kali dari +// dua parameter yang dikirim. + +//bikin fungsinya disini + +let num1 = 1 +let num2 = 2 +function calculateMultiply (num1,num2){ + return num1 * num2 +} +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..68bb2244 --- /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 + +let name = "Agus"; +let age = 30; +let address = "Jln. Malioboro, Yogjakarta"; +let hobby = "gaming"; + +function processSentence (name,age,address,hobby){ + console.log(`Nama saya ${name}, umur saya ${age}, alamat saya di ${address}, dan saya punya hobby yaitu ${hobby}`) +} +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 diff --git a/quiz/ujian/ujian1.js b/quiz/ujian/ujian1.js new file mode 100644 index 00000000..e6ab8fac --- /dev/null +++ b/quiz/ujian/ujian1.js @@ -0,0 +1,21 @@ +// 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) { + if (angka2 > angka1) { + 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/ujian2.js b/quiz/ujian/ujian2.js new file mode 100644 index 00000000..590ec8dd --- /dev/null +++ b/quiz/ujian/ujian2.js @@ -0,0 +1,17 @@ +// 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) { + let hasil = "" + for (let i = kata.length -1; i >= 0; i--) { + hasil += kata[i] + } + return hasil +} +// 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/ujian3.js b/quiz/ujian/ujian3.js new file mode 100644 index 00000000..aa597299 --- /dev/null +++ b/quiz/ujian/ujian3.js @@ -0,0 +1,20 @@ +// 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) { + let jam = Math.floor(menit/60); + let sisa_menit = menit % 60; + if (sisa_menit < 10){ + sisa_menit ='0' + sisa_menit + } + return `${jam}:${sisa_menit}` +} + +// 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/ujian4.js b/quiz/ujian/ujian4.js new file mode 100644 index 00000000..b8c53ab4 --- /dev/null +++ b/quiz/ujian/ujian4.js @@ -0,0 +1,25 @@ +// 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) { + let hasilX = 0 + let hasilO = 0 + + for (let i = 0; i < str.length; i++) { + if (str[i] === "x") { + hasilX++ + } else if (str[i] === "o") { + hasilO++ + } + } + + return hasilX === hasilO +} + +// 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