fork download
  1. class Kamus:
  2. def __init__(self):
  3. self._sinonim_map ={}
  4.  
  5. def tambah(self, kata, sinonim_list):
  6. if kata not in self._sinonim_map: self._sinonim_map[kata] = set()
  7. self._sinonim_map[kata].update(sinonim_list)
  8.  
  9. def ambilSinonim(self, kata):
  10. forwards = set(self._sinonim_map.get(kata, []))
  11. backwards = {k for k,sinset in self._sinonim_map.items() if kata in sinset}
  12. hasil = forwards.union(backwards)
  13. return list(hasil)if hasil else None
  14.  
  15. #usage
  16. if __name__ == '__main__':
  17. kamus = Kamus()
  18. kamus.tambah('big', ['large', 'great'])
  19. kamus.tambah('big', ['huge', 'fat'])
  20. kamus.tambah('huge', ['enormous', 'gigantic'])
  21. # kamus.tambah('colossal', ['fat']) #tc
  22.  
  23. print(kamus.ambilSinonim('big'))
  24. print(kamus.ambilSinonim('huge'))
  25. print(kamus.ambilSinonim('gigantic'))
  26. print(kamus.ambilSinonim('colossal'))
  27.  
Success #stdin #stdout 0.02s 7256KB
stdin
Standard input is empty
stdout
['large', 'huge', 'great', 'fat']
['big', 'enormous', 'gigantic']
['huge']
None