fork download
  1. <?php
  2. function tekaTekiTeko($batas) {
  3. if (!is_int($batas) || $batas < 20) {
  4. throw new InvalidArgumentException("Parameter batas harus berupa bilangan bulat positif (unsigned integer) dan minimal 20");
  5. }
  6.  
  7. for ($i = 1; $i <= $batas; $i++) {
  8. if ($i % 2 == 0 && $i % 3 == 0 && $i % 5 == 0) {
  9. echo "TekaTekiTeko\n";
  10. } elseif ($i % 2 == 0 && $i % 3 == 0) {
  11. echo "TekaTeki\n";
  12. } elseif ($i % 2 == 0 && $i % 5 == 0) {
  13. echo "TekaTeko\n";
  14. } elseif ($i % 3 == 0 && $i % 5 == 0) {
  15. echo "TekiTeko\n";
  16. } elseif ($i % 2 == 0) {
  17. echo "Teka\n";
  18. } elseif ($i % 3 == 0) {
  19. echo "Teki\n";
  20. } elseif ($i % 5 == 0) {
  21. echo "Teko\n";
  22. } else {
  23. echo $i . "\n";
  24. }
  25. }
  26. }
  27.  
  28. try {
  29. tekaTekiTeko(30);
  30. } catch (InvalidArgumentException $e) {
  31. echo "Error: " . $e->getMessage() . "\n";
  32. }
  33.  
  34. echo "\n--- Test dengan parameter tidak valid ---\n";
  35.  
  36. try {
  37. tekaTekiTeko(19); // Kurang dari 20
  38. } catch (InvalidArgumentException $e) {
  39. echo "Error: " . $e->getMessage() . "\n";
  40. }
  41.  
  42. try {
  43. tekaTekiTeko("abc"); // Bukan integer
  44. } catch (InvalidArgumentException $e) {
  45. echo "Error: " . $e->getMessage() . "\n";
  46. }
  47. ?>
Success #stdin #stdout 0.03s 26152KB
stdin
stdout
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 batas harus berupa bilangan bulat positif (unsigned integer) dan minimal 20
Error: Parameter batas harus berupa bilangan bulat positif (unsigned integer) dan minimal 20