import collections
class Kamus:
def __init__(self):
self.data = collections.defaultdict(list)
def tambah(self, kata, sinonim_list):
for s in sinonim_list:
if s not in self.data[kata]:
self.data[kata].append(s)
if kata not in self.data[s]:
self.data[s].append(kata)
def ambilSinonim(self, kata):
if kata in self.data:
return self.data[kata]
return None
kamus = Kamus()
# Menambahkan kata dan sinonim
kamus.tambah('big', ['large', 'great'])
kamus.tambah('big', ['huge', 'fat'])
kamus.tambah('huge', ['enormous', 'gigantic'])
# Pengujian 1: mengambil sinonim 'big'
print(f"Sinonim untuk 'big': {kamus.ambilSinonim('big')}")
# Pengujian 2: mengambil sinonim 'huge'
print(f"Sinonim untuk 'huge': {kamus.ambilSinonim('huge')}")
# Pengujian 3: mengambil sinonim 'gigantic'
print(f"Sinonim untuk 'gigantic': {kamus.ambilSinonim('gigantic')}")
# Pengujian 4: mengambil sinonim 'colossal'
print(f"Sinonim untuk 'colossal': {kamus.ambilSinonim('colossal')}")
aW1wb3J0IGNvbGxlY3Rpb25zCgpjbGFzcyBLYW11czoKIAogIGRlZiBfX2luaXRfXyhzZWxmKToKICAgCiAgICBzZWxmLmRhdGEgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsaXN0KQoKICBkZWYgdGFtYmFoKHNlbGYsIGthdGEsIHNpbm9uaW1fbGlzdCk6CiAgIAogICAgZm9yIHMgaW4gc2lub25pbV9saXN0OgogICAgICBpZiBzIG5vdCBpbiBzZWxmLmRhdGFba2F0YV06CiAgICAgICAgc2VsZi5kYXRhW2thdGFdLmFwcGVuZChzKQogICAgICAKICAgICAgCiAgICAgIGlmIGthdGEgbm90IGluIHNlbGYuZGF0YVtzXToKICAgICAgICBzZWxmLmRhdGFbc10uYXBwZW5kKGthdGEpCgogIGRlZiBhbWJpbFNpbm9uaW0oc2VsZiwga2F0YSk6CiAgICAKICAgIGlmIGthdGEgaW4gc2VsZi5kYXRhOgogICAgICByZXR1cm4gc2VsZi5kYXRhW2thdGFdCiAgICByZXR1cm4gTm9uZQoKCmthbXVzID0gS2FtdXMoKQoKIyBNZW5hbWJhaGthbiBrYXRhIGRhbiBzaW5vbmltCmthbXVzLnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKQprYW11cy50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSkKa2FtdXMudGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKQoKIyBQZW5ndWppYW4gMTogbWVuZ2FtYmlsIHNpbm9uaW0gJ2JpZycKcHJpbnQoZiJTaW5vbmltIHVudHVrICdiaWcnOiB7a2FtdXMuYW1iaWxTaW5vbmltKCdiaWcnKX0iKQoKIyBQZW5ndWppYW4gMjogbWVuZ2FtYmlsIHNpbm9uaW0gJ2h1Z2UnCnByaW50KGYiU2lub25pbSB1bnR1ayAnaHVnZSc6IHtrYW11cy5hbWJpbFNpbm9uaW0oJ2h1Z2UnKX0iKQoKIyBQZW5ndWppYW4gMzogbWVuZ2FtYmlsIHNpbm9uaW0gJ2dpZ2FudGljJwpwcmludChmIlNpbm9uaW0gdW50dWsgJ2dpZ2FudGljJzoge2thbXVzLmFtYmlsU2lub25pbSgnZ2lnYW50aWMnKX0iKQoKIyBQZW5ndWppYW4gNDogbWVuZ2FtYmlsIHNpbm9uaW0gJ2NvbG9zc2FsJwpwcmludChmIlNpbm9uaW0gdW50dWsgJ2NvbG9zc2FsJzoge2thbXVzLmFtYmlsU2lub25pbSgnY29sb3NzYWwnKX0iKQ==