<?php
function tekaTekiTeko( $batas )
{
// Validasi tipe dan nilai parameter
if ( ! is_int ( $batas ) || $batas <= 20 ) { throw new InvalidArgumentException( "Parameter harus berupa unsigned integer dengan nilai minimal 20." ) ;
}
// Iterasi dari 1 sampai $batas
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" ;
}
echo ( $output !== "" ? $output : $i ) . PHP_EOL;
}
}
// Contoh pemanggilan fungsi:
try {
tekaTekiTeko( 30 ) ;
} catch ( Exception $e ) {
echo "Error: " . $e -> getMessage ( ) ;
}
PD9waHAKCmZ1bmN0aW9uIHRla2FUZWtpVGVrbygkYmF0YXMpCnsKICAgIC8vIFZhbGlkYXNpIHRpcGUgZGFuIG5pbGFpIHBhcmFtZXRlcgogICAgaWYgKCFpc19pbnQoJGJhdGFzKSB8fCAkYmF0YXMgPD0gMjApIHsKICAgICAgICB0aHJvdyBuZXcgSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uKCJQYXJhbWV0ZXIgaGFydXMgYmVydXBhIHVuc2lnbmVkIGludGVnZXIgZGVuZ2FuIG5pbGFpIG1pbmltYWwgMjAuIik7CiAgICB9CgogICAgLy8gSXRlcmFzaSBkYXJpIDEgc2FtcGFpICRiYXRhcwogICAgZm9yICgkaSA9IDE7ICRpIDw9ICRiYXRhczsgJGkrKykgewogICAgICAgICRvdXRwdXQgPSAiIjsKCiAgICAgICAgaWYgKCRpICUgMiA9PT0gMCkgewogICAgICAgICAgICAkb3V0cHV0IC49ICJUZWthIjsKICAgICAgICB9CiAgICAgICAgaWYgKCRpICUgMyA9PT0gMCkgewogICAgICAgICAgICAkb3V0cHV0IC49ICJUZWtpIjsKICAgICAgICB9CiAgICAgICAgaWYgKCRpICUgNSA9PT0gMCkgewogICAgICAgICAgICAkb3V0cHV0IC49ICJUZWtvIjsKICAgICAgICB9CgogICAgICAgIGVjaG8gKCRvdXRwdXQgIT09ICIiID8gJG91dHB1dCA6ICRpKSAuIFBIUF9FT0w7CiAgICB9Cn0KCi8vIENvbnRvaCBwZW1hbmdnaWxhbiBmdW5nc2k6CnRyeSB7CiAgICB0ZWthVGVraVRla28oMzApOwp9IGNhdGNoIChFeGNlcHRpb24gJGUpIHsKICAgIGVjaG8gIkVycm9yOiAiIC4gJGUtPmdldE1lc3NhZ2UoKTsKfQo=