Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions quiz/part1/soal1.js
Original file line number Diff line number Diff line change
@@ -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
15 changes: 15 additions & 0 deletions quiz/part1/soal2.js
Original file line number Diff line number Diff line change
@@ -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
22 changes: 22 additions & 0 deletions quiz/part1/soal3.js
Original file line number Diff line number Diff line change
@@ -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
40 changes: 40 additions & 0 deletions quiz/part1/soal4.js
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions quiz/part1/soal5.js
Original file line number Diff line number Diff line change
@@ -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