<?php
function tekaTekiTeko( int $batas ) {
// Validasi tipe dan batas minimal
if ( $batas < 20 ) {
throw new InvalidArgumentException( "Parameter \$ batas harus bernilai minimal 20." ) ;
}
for ( $i = 1 ; $i <= $batas ; $i ++ ) {
$output = "" ;
if ( $i % 2 === 0 ) {
$output .= "Teka" ;
}
if ( $i % 3 === 0 ) {
$output .= "Teki" ;
}
if ( $i % 5 === 0 ) {
$output .= "Teko" ;
}
// Jika tidak memenuhi syarat apapun, tampilkan angkanya
echo $output !== "" ? $output : $i ;
echo PHP_EOL;
}
}
try {
tekaTekiTeko( 30 ) ;
} catch ( InvalidArgumentException $e ) {
echo "Error: " . $e -> getMessage ( ) ;
}
PD9waHAKCmZ1bmN0aW9uIHRla2FUZWtpVGVrbyhpbnQgJGJhdGFzKSB7CiAgICAvLyBWYWxpZGFzaSB0aXBlIGRhbiBiYXRhcyBtaW5pbWFsCiAgICBpZiAoJGJhdGFzIDwgMjApIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXIgXCRiYXRhcyBoYXJ1cyBiZXJuaWxhaSBtaW5pbWFsIDIwLiIpOwogICAgfQoKICAgIGZvciAoJGkgPSAxOyAkaSA8PSAkYmF0YXM7ICRpKyspIHsKICAgICAgICAkb3V0cHV0ID0gIiI7CgogICAgICAgIGlmICgkaSAlIDIgPT09IDApIHsKICAgICAgICAgICAgJG91dHB1dCAuPSAiVGVrYSI7CiAgICAgICAgfQogICAgICAgIGlmICgkaSAlIDMgPT09IDApIHsKICAgICAgICAgICAgJG91dHB1dCAuPSAiVGVraSI7CiAgICAgICAgfQogICAgICAgIGlmICgkaSAlIDUgPT09IDApIHsKICAgICAgICAgICAgJG91dHB1dCAuPSAiVGVrbyI7CiAgICAgICAgfQoKICAgICAgICAvLyBKaWthIHRpZGFrIG1lbWVudWhpIHN5YXJhdCBhcGFwdW4sIHRhbXBpbGthbiBhbmdrYW55YQogICAgICAgIGVjaG8gJG91dHB1dCAhPT0gIiIgPyAkb3V0cHV0IDogJGk7CiAgICAgICAgZWNobyBQSFBfRU9MOwogICAgfQp9Cgp0cnkgewogICAgdGVrYVRla2lUZWtvKDMwKTsKfSBjYXRjaCAoSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uICRlKSB7CiAgICBlY2hvICJFcnJvcjogIiAuICRlLT5nZXRNZXNzYWdlKCk7Cn0K