function tekaTekiTeko(batas) {
if (!Number.isInteger(batas) || batas < 20) {
throw new Error("Parameter batas harus berupa bilangan bulat positif (unsigned integer) dan minimal 20");
}
for (let i = 1; i <= batas; i++) {
if (i % 2 === 0 && i % 3 === 0 && i % 5 === 0) {
console.log("TekaTekiTeko");
} else if (i % 2 === 0 && i % 3 === 0) {
console.log("TekaTeki");
} else if (i % 2 === 0 && i % 5 === 0) {
console.log("TekaTeko");
} else if (i % 3 === 0 && i % 5 === 0) {
console.log("TekiTeko");
} else if (i % 2 === 0) {
console.log("Teka");
} else if (i % 3 === 0) {
console.log("Teki");
} else if (i % 5 === 0) {
console.log("Teko");
} else {
console.log(i);
}
}
}
console.log("\n===== Test parameter valid =====\n");
try {
tekaTekiTeko(30);
} catch (error) {
console.log(`Error: ${error.message}`);
}
console.log("\n===== Test parameter tidak valid =====\n");
try {
tekaTekiTeko(19);
} catch (error) {
console.log(`Error: ${error.message}`);
}
try {
tekaTekiTeko("abc");
} catch (error) {
console.log(`Error: ${error.message}`);
}
try {
tekaTekiTeko(15.5);
} catch (error) {
console.log(`Error: ${error.message}`);
}