fork download
  1.  
  2. def teka_teki_teko(batas):
  3.  
  4. # Validasi parameter
  5. if not isinstance(batas, int):
  6. raise ValueError("Parameter harus berupa integer")
  7.  
  8. if batas < 0:
  9. raise ValueError("Parameter harus berupa unsigned integer (tidak boleh negatif)")
  10.  
  11. if batas < 20:
  12. raise ValueError("Parameter harus memiliki nilai paling sedikit 20")
  13.  
  14. # Loop dari 1 sampai batas
  15. for i in range(1, batas + 1):
  16. output = ""
  17.  
  18. # Angka habis dibagi 2
  19. if i % 2 == 0:
  20. output += "Teka"
  21.  
  22. # Angka habis dibagi 3
  23. if i % 3 == 0:
  24. output += "Teki"
  25.  
  26. # Angka habis dibagi 5
  27. if i % 5 == 0:
  28. output += "Teko"
  29.  
  30. # Jika tidak ada yang habis dibagi, cetak angka
  31. if output == "":
  32. output = str(i)
  33.  
  34. print(output)
  35.  
  36.  
  37. # Penggunaan
  38. if __name__ == "__main__":
  39. try:
  40. print("Hasil teka_teki_teko(30):")
  41. teka_teki_teko(30)
  42.  
  43. print("\n\nTes dengan parameter invalid:")
  44. # Test Error Handling
  45.  
  46. print("Hasil teka_teki_teko(10):")
  47. teka_teki_teko(10) # Error nilai paling sedikit 20
  48.  
  49. # print("Hasil teka_teki_teko(-5):")
  50. # teka_teki_teko(-5) # Error parameter harus berupa unsigned integer
  51.  
  52. # print("Hasil teka_teki_teko(\"a\"):")
  53. # teka_teki_teko("a") # Error parameter harus berupa integer
  54.  
  55. except ValueError as e:
  56. print(f"Error: {e}")
Success #stdin #stdout 0.09s 14180KB
stdin
Standard input is empty
stdout
Hasil teka_teki_teko(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


Tes dengan parameter invalid:
Hasil teka_teki_teko(10):
Error: Parameter harus memiliki nilai paling sedikit 20