fork download
  1. <?php
  2.  
  3. function tekaTekiTeko(int $batas): void
  4. {
  5. if ($batas < 0) {
  6. throw new InvalidArgumentException("Parameter harus berupa unsigned integer (tidak boleh negatif)");
  7. }
  8.  
  9. if ($batas < 20) {
  10. throw new InvalidArgumentException("Parameter harus memiliki nilai minimal 20");
  11. }
  12.  
  13. for ($i = 1; $i <= $batas; $i++) {
  14. $output = "";
  15.  
  16. if ($i % 2 == 0) {
  17. $output .= "Teka";
  18. }
  19.  
  20. if ($i % 3 == 0) {
  21. $output .= "Teki";
  22. }
  23.  
  24. if ($i % 5 == 0) {
  25. $output .= "Teko";
  26. }
  27.  
  28. if ($output == "") {
  29. $output = $i;
  30. }
  31.  
  32. echo $output . "\n";
  33. }
  34. }
  35.  
  36. try {
  37. echo "=== Contoh penggunaan tekaTekiTeko(30) ===\n";
  38. tekaTekiTeko(30);
  39.  
  40. echo "\n=== Test dengan parameter tidak valid ===\n";
  41.  
  42. try {
  43. tekaTekiTeko(15);
  44. } catch (InvalidArgumentException $e) {
  45. echo "Error: " . $e->getMessage() . "\n";
  46. }
  47.  
  48. try {
  49. tekaTekiTeko(-5);
  50. } catch (InvalidArgumentException $e) {
  51. echo "Error: " . $e->getMessage() . "\n";
  52. }
  53.  
  54. } catch (Exception $e) {
  55. echo "Error: " . $e->getMessage() . "\n";
  56. }
  57.  
  58. ?>
Success #stdin #stdout 0.03s 26176KB
stdin
tekaTekiTeko(30)
stdout
=== Contoh penggunaan tekaTekiTeko(30) ===
1
Teka
Teki
Teka
Teko
TekaTeki
7
Teka
Teki
TekaTeko
11
TekaTeki
13
Teka
TekiTeko
Teka
17
TekaTeki
19
TekaTeko
Teki
Teka
23
TekaTeki
Teko
Teka
Teki
Teka
29
TekaTekiTeko

=== Test dengan parameter tidak valid ===
Error: Parameter harus memiliki nilai minimal 20
Error: Parameter harus berupa unsigned integer (tidak boleh negatif)