diff --git a/quiz/part1/soal1.js b/quiz/part1/soal1.js new file mode 100644 index 0000000..c8c1209 --- /dev/null +++ b/quiz/part1/soal1.js @@ -0,0 +1,21 @@ +//cek apakah angka yang dikirim adalah angka prima atau bukan? +//cek google bagi yang ga tau apa itu angka prima +function angkaPrima(angka) { + if (angka < 2) { + return false + } + for (let i = 2; i < angka; i++) { + if (angka % i === 0) { + return false + } + } + return true + +} + +// TEST CASES +console.log(angkaPrima(3)); // true +console.log(angkaPrima(7)); // true +console.log(angkaPrima(6)); // false +console.log(angkaPrima(23)); // true +console.log(angkaPrima(33)); // false \ No newline at end of file diff --git a/quiz/part1/soal2.js b/quiz/part1/soal2.js new file mode 100644 index 0000000..1d07582 --- /dev/null +++ b/quiz/part1/soal2.js @@ -0,0 +1,15 @@ +//cari faktor persekutuan terbesar +function fpb(angka1, angka2) { + for (let i = angka1; i > 0; i--) { + if (angka1 % i === 0 && angka2 % i === 0) { + return i; + } + } +} + +// TEST CASES +console.log(fpb(12, 16)); // 4 +console.log(fpb(50, 40)); // 10 +console.log(fpb(22, 99)); // 11 +console.log(fpb(24, 36)); // 12 +console.log(fpb(17, 23)); // 1 \ No newline at end of file diff --git a/quiz/part1/soal3.js b/quiz/part1/soal3.js new file mode 100644 index 0000000..6e978b5 --- /dev/null +++ b/quiz/part1/soal3.js @@ -0,0 +1,22 @@ +function cariMedian(arr) { + arr.sort((a,b) => a - b); + if (arr.length === 0) { + return 0; + } + + const jml = arr.length; + const mid = Math.floor(jml / 2); + + if (jml % 2 === 0) { + return (arr[mid - 1] + arr[mid]) / 2; + } else { + return arr[mid]; + } +} + +// TEST CASES +console.log(cariMedian([1, 2, 3, 4, 5])); // 3 +console.log(cariMedian([1, 3, 4, 10, 12, 13])); // 7 +console.log(cariMedian([3, 4, 7, 6, 10])); // 6 +console.log(cariMedian([1, 3, 3])); // 3 +console.log(cariMedian([7, 7, 8, 8])); // 7.5 \ No newline at end of file diff --git a/quiz/part1/soal4.js b/quiz/part1/soal4.js new file mode 100644 index 0000000..91169d9 --- /dev/null +++ b/quiz/part1/soal4.js @@ -0,0 +1,40 @@ +/* +Diberikan sebuah function cariModus(arr) yang menerima sebuah array angka. +Function akan me-return modus dari array atau deret angka tersebut. +Modus adalah angka dari sebuah deret yang paling banyak atau paling sering muncul. +Contoh, modus dari [10, 4, 5, 2, 4] adalah 4. Jika modus tidak ditemukan, function akan me-return -1. +Apabila ditemukan lebih dari dua nilai modus, tampilkan nilai modus yang paling pertama muncul (dihitung dari kiri ke kanan). +Dan apabila didalam modus hanya ada 1 nilai yang sama maka function akan me-return -1, Contohnya [1, 1, 1] adalah -1. +*/ +function cariModus(arr) { + if (arr.length === 0) { + return -1; + } + + let freq = {}; + let modus = 0; + let max = 0; + for (let i = 0; i < arr.length; i++) { + freq[arr[i]] = (freq[arr[i]] || 0) + 1; + if (freq[arr[i]] > max) { + max = freq[arr[i]]; + modus = arr[i]; + } + } + + if (max === 1 || max === arr.length) return -1; + + for (let i = 0; i < arr.length; i++) { + if (freq[arr[i]] === max) { + return arr[i]; + } + } + return modus; +} + +// TEST CASES +console.log(cariModus([10, 4, 5, 2, 4])); // 4 +console.log(cariModus([5, 10, 10, 6, 5])); // 5 +console.log(cariModus([10, 3, 1, 2, 5])); // -1 +console.log(cariModus([1, 2, 3, 3, 4, 5])); // 3 +console.log(cariModus([7, 7, 7, 7, 7])); // -1 diff --git a/quiz/part1/soal5.js b/quiz/part1/soal5.js new file mode 100644 index 0000000..a5021d2 --- /dev/null +++ b/quiz/part1/soal5.js @@ -0,0 +1,21 @@ +//sistem ubah hurufnya misal huruf a diubah menjadi b, c menjadi d, b menjadi c, z menjadi a +//intinya ubah huruf menjadi huruf setelahnya +function ubahHuruf(kata) { + let ubahHuruf = ''; + for (let i = 0; i < kata.length; i++) { + if (kata[i] === 'z') { + ubahHuruf += 'a'; + } else { + ubahHuruf += String.fromCharCode(kata.charCodeAt(i) + 1); + } + } + return ubahHuruf + +} + +// TEST CASES +console.log(ubahHuruf('wow')); // xpx +console.log(ubahHuruf('developer')); // efwfmpqfs +console.log(ubahHuruf('javascript')); // kbwbtdsjqu +console.log(ubahHuruf('keren')); // lfsfo +console.log(ubahHuruf('semangat')); // tfnbohbu \ No newline at end of file