package main
import (
"errors"
"fmt"
)
// batas untuk atur berapa batas
func tekaTekiTeko( batas uint) error {
// parameter ini di validasi agar kurnag 20 akan error.
if batas < 20 {
return errors.New ( "parameter 'batas' harus memiliki tipe data unsigned integer dan memiliki nilai paling sedikit 20" )
}
// melakukan perulangan
for i := 1 ; i <= int ( batas) ; i++ {
output := ""
if i% 2 == 0 {
output += "Teka"
}
if i% 3 == 0 {
output += "Teki"
}
if i% 5 == 0 {
output += "Teko"
}
if output == "" {
fmt.Println ( i)
} else {
fmt.Println ( output)
}
}
return nil
}
func main( ) {
fmt.Println ( "HAsil untuk batas 30 sesuai dengan pertanyaan" )
err := tekaTekiTeko( 30 )
if err != nil {
fmt.Println ( "Error:" , err)
}
fmt.Println ( "Hasil untuk batas kurang dari 20" )
err = tekaTekiTeko( 15 )
if err != nil {
fmt.Println ( "Error:" , err)
}
fmt.Println ( "Hasil Untuk sama dengan batas" )
err = tekaTekiTeko( 20 )
if err != nil {
fmt.Println ( "Error:" , err)
}
fmt.Println ( "hasil untuk batas = 0" )
err = tekaTekiTeko( 0 )
if err != nil {
fmt.Println ( "Error:" , err)
}
}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImVycm9ycyIKCSJmbXQiCikKCi8vIGJhdGFzIHVudHVrIGF0dXIgYmVyYXBhIGJhdGFzCmZ1bmMgdGVrYVRla2lUZWtvKGJhdGFzIHVpbnQpIGVycm9yIHsKCS8vIHBhcmFtZXRlciBpbmkgZGkgdmFsaWRhc2kgYWdhciBrdXJuYWcgMjAgYWthbiBlcnJvci4KCWlmIGJhdGFzIDwgMjAgewoJCXJldHVybiBlcnJvcnMuTmV3KCJwYXJhbWV0ZXIgJ2JhdGFzJyBoYXJ1cyBtZW1pbGlraSB0aXBlIGRhdGEgdW5zaWduZWQgaW50ZWdlciBkYW4gbWVtaWxpa2kgbmlsYWkgcGFsaW5nIHNlZGlraXQgMjAiKQoJfQoJCgkvLyBtZWxha3VrYW4gcGVydWxhbmdhbgoJZm9yIGkgOj0gMTsgaSA8PSBpbnQoYmF0YXMpOyBpKysgewoJCW91dHB1dCA6PSAiIiAKCgkJCgkJaWYgaSUyID09IDAgewoJCQlvdXRwdXQgKz0gIlRla2EiCgkJfQoJCWlmIGklMyA9PSAwIHsKCQkJb3V0cHV0ICs9ICJUZWtpIgoJCX0KCQlpZiBpJTUgPT0gMCB7CgkJCW91dHB1dCArPSAiVGVrbyIKCQl9CgoJCWlmIG91dHB1dCA9PSAiIiB7CgkJCWZtdC5QcmludGxuKGkpCgkJfSBlbHNlIHsKCQkJCgkJCWZtdC5QcmludGxuKG91dHB1dCkKCQl9Cgl9CgoJcmV0dXJuIG5pbAp9CgpmdW5jIG1haW4oKSB7CglmbXQuUHJpbnRsbigiSEFzaWwgdW50dWsgYmF0YXMgMzAgc2VzdWFpIGRlbmdhbiBwZXJ0YW55YWFuIikKCWVyciA6PSB0ZWthVGVraVRla28oMzApCglpZiBlcnIgIT0gbmlsIHsKCQlmbXQuUHJpbnRsbigiRXJyb3I6IiwgZXJyKQoJfQoJCglmbXQuUHJpbnRsbigiSGFzaWwgdW50dWsgYmF0YXMga3VyYW5nIGRhcmkgMjAiKQoJZXJyID0gdGVrYVRla2lUZWtvKDE1KQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LlByaW50bG4oIkVycm9yOiIsIGVycikKCX0KCglmbXQuUHJpbnRsbigiSGFzaWwgVW50dWsgc2FtYSBkZW5nYW4gYmF0YXMiKQoJZXJyID0gdGVrYVRla2lUZWtvKDIwKQoJaWYgZXJyICE9IG5pbCB7CgkJZm10LlByaW50bG4oIkVycm9yOiIsIGVycikKCX0KCQoJZm10LlByaW50bG4oImhhc2lsIHVudHVrIGJhdGFzID0gMCIpCgllcnIgPSB0ZWthVGVraVRla28oMCkKCWlmIGVyciAhPSBuaWwgewoJCWZtdC5QcmludGxuKCJFcnJvcjoiLCBlcnIpCgl9Cn0=