function tekaTekiTeko( batas) {
// untuk ngevalidasi bahwa batas yang dimasukkan harus number, integer, bukan angka negatif, juga minimal 20
if (
typeof batas !== 'number' ||
! Number .isInteger ( batas) ||
batas < 20
) {
throw new Error( 'Parameter harus angka positif (unsigned integer) dengan nilai minimal 20' ) ; //ketika parameter nya gak sesuai
}
for ( let i = 1 ; i <= batas; i++ ) {
let output = '' ;
if ( i % 2 === 0 ) output += 'Teka' ;
if ( i % 3 === 0 ) output += 'Teki' ;
if ( i % 5 === 0 ) output += 'Teko' ;
// cetak hasil
console.log ( output || i) ;
}
}
// testing
try {
tekaTekiTeko( 30 ) ;
} catch ( error) {
print( 'Terjadi error:' , error.message ) ;
}
ZnVuY3Rpb24gdGVrYVRla2lUZWtvKGJhdGFzKSB7CiAgICAvLyB1bnR1ayBuZ2V2YWxpZGFzaSBiYWh3YSBiYXRhcyB5YW5nIGRpbWFzdWtrYW4gaGFydXMgbnVtYmVyLCBpbnRlZ2VyLCBidWthbiBhbmdrYSBuZWdhdGlmLCBqdWdhIG1pbmltYWwgMjAKICAgIGlmICgKICAgICAgdHlwZW9mIGJhdGFzICE9PSAnbnVtYmVyJyB8fAogICAgICAhTnVtYmVyLmlzSW50ZWdlcihiYXRhcykgfHwKICAgICAgYmF0YXMgPCAyMAogICAgKSB7CiAgICAgIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGhhcnVzIGFuZ2thIHBvc2l0aWYgKHVuc2lnbmVkIGludGVnZXIpIGRlbmdhbiBuaWxhaSBtaW5pbWFsIDIwJyk7IC8va2V0aWthIHBhcmFtZXRlciBueWEgZ2FrIHNlc3VhaQogICAgfQogIAogICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gYmF0YXM7IGkrKykgewogICAgICBsZXQgb3V0cHV0ID0gJyc7CiAgCiAgICAgIGlmIChpICUgMiA9PT0gMCkgb3V0cHV0ICs9ICdUZWthJzsKICAgICAgaWYgKGkgJSAzID09PSAwKSBvdXRwdXQgKz0gJ1Rla2knOwogICAgICBpZiAoaSAlIDUgPT09IDApIG91dHB1dCArPSAnVGVrbyc7CiAgCiAgICAgIC8vIGNldGFrIGhhc2lsCiAgICAgIGNvbnNvbGUubG9nKG91dHB1dCB8fCBpKTsKICAgIH0KICB9CiAgCiAgLy8gdGVzdGluZwogIHRyeSB7CiAgICB0ZWthVGVraVRla28oMzApOwogIH0gY2F0Y2ggKGVycm9yKSB7CiAgICBwcmludCgnVGVyamFkaSBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTsKICB9CiAg