fork download
  1. class Kamus:
  2. def __init__(self):
  3. self.dictionary = {}
  4.  
  5. def tambah(self, kata, sinonim):
  6. """
  7. Menambahkan kata beserta sinonimnya ke dalam kamus
  8. :param kata: kata yang akan ditambahkan (string)
  9. :param sinonim: sinonim dari kata tersebut (list)
  10. :return: None
  11. """
  12. # Jika kata belum ada di dictionary, inisialisasi dengan list kosong
  13. if kata not in self.dictionary:
  14. self.dictionary[kata] = []
  15.  
  16. # Gabungkan sinonim baru dengan sinonim yang sudah ada
  17. self.dictionary[kata].extend(sinonim)
  18.  
  19. # Hapus duplikat dengan menggunakan set lalu kembali ke list
  20. self.dictionary[kata] = list(set(self.dictionary[kata]))
  21.  
  22. # Tambahkan hubungan balik (sinonim juga menunjuk ke kata asli)
  23. for sin in sinonim:
  24. if sin not in self.dictionary:
  25. self.dictionary[sin] = []
  26.  
  27. # Tambahkan kata asli ke sinonim jika belum ada
  28. if kata not in self.dictionary[sin]:
  29. self.dictionary[sin].append(kata)
  30.  
  31. def ambil_sinonim(self, kata):
  32. """
  33. Mengambil semua sinonim dari kata yang diberikan
  34. :param kata: kata yang akan dicari sinonimnya (string)
  35. :return: list sinonim atau None jika kata tidak ditemukan
  36. """
  37. # Jika kata tidak ada di dictionary, return None
  38. if kata not in self.dictionary:
  39. return None
  40.  
  41. return self.dictionary[kata]
  42.  
  43.  
  44. if __name__ == "__main__":
  45. kamus = Kamus()
  46. kamus.tambah('big', ['large', 'great'])
  47. kamus.tambah('big', ['huge', 'fat'])
  48. kamus.tambah('huge', ['enormous', 'gigantic'])
  49.  
  50. # Test hasil
  51. print("Sinonim dari 'big':", kamus.ambil_sinonim('big'))
  52. print("Sinonim dari 'huge':", kamus.ambil_sinonim('huge'))
  53. print("Sinonim dari 'gigantic':", kamus.ambil_sinonim('gigantic'))
  54. print("Sinonim dari 'colossal':", kamus.ambil_sinonim('colossal'))
Success #stdin #stdout 0.04s 9324KB
stdin
Standard input is empty
stdout
Sinonim dari 'big': ['large', 'great', 'fat', 'huge']
Sinonim dari 'huge': ['big', 'gigantic', 'enormous']
Sinonim dari 'gigantic': ['huge']
Sinonim dari 'colossal': None