class Kamus:
def __init__(self):
self._data = {}
def tambah(self, kata, daftar_sinonim):
sinonim_saat_ini = set(self._data.get(kata, []))
sinonim_saat_ini.update(daftar_sinonim)
self._data[kata] = list(sinonim_saat_ini)
for sinonim in daftar_sinonim:
sinonim_dari_sinonim = set(self._data.get(sinonim, []))
sinonim_dari_sinonim.add(kata)
self._data[sinonim] = list(sinonim_dari_sinonim)
def ambilSinonim(self, kata):
return self._data.get(kata, None)
# Inisialisasi objek kamus
kamus = Kamus()
# Menambahkan kata dan sinonim
kamus.tambah('big', ['large', 'great'])
kamus.tambah('big', ['huge', 'fat'])
kamus.tambah('huge', ['enormous', 'gigantic'])
# --- Pengujian ---
# Kasus 1: Mengambil sinonim dari 'big'
print(f"Sinonim dari 'big': {kamus.ambilSinonim('big')}")
# Kasus 2: Mengambil sinonim dari 'huge'
print(f"Sinonim dari 'huge': {kamus.ambilSinonim('huge')}")
# Kasus 3: Mengambil sinonim dari 'gigantic'
print(f"Sinonim dari 'gigantic': {kamus.ambilSinonim('gigantic')}")
# Kasus 4: Mengambil sinonim dari kata yang tidak ada
print(f"Sinonim dari 'colossal': {kamus.ambilSinonim('colossal')}")
Y2xhc3MgS2FtdXM6CiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgc2VsZi5fZGF0YSA9IHt9CgogICAgZGVmIHRhbWJhaChzZWxmLCBrYXRhLCBkYWZ0YXJfc2lub25pbSk6CiAgICAgICAgc2lub25pbV9zYWF0X2luaSA9IHNldChzZWxmLl9kYXRhLmdldChrYXRhLCBbXSkpCiAgICAgICAgc2lub25pbV9zYWF0X2luaS51cGRhdGUoZGFmdGFyX3Npbm9uaW0pCiAgICAgICAgc2VsZi5fZGF0YVtrYXRhXSA9IGxpc3Qoc2lub25pbV9zYWF0X2luaSkKCiAgICAgICAgZm9yIHNpbm9uaW0gaW4gZGFmdGFyX3Npbm9uaW06CiAgICAgICAgICAgIHNpbm9uaW1fZGFyaV9zaW5vbmltID0gc2V0KHNlbGYuX2RhdGEuZ2V0KHNpbm9uaW0sIFtdKSkKICAgICAgICAgICAgc2lub25pbV9kYXJpX3Npbm9uaW0uYWRkKGthdGEpCiAgICAgICAgICAgIHNlbGYuX2RhdGFbc2lub25pbV0gPSBsaXN0KHNpbm9uaW1fZGFyaV9zaW5vbmltKQoKICAgIGRlZiBhbWJpbFNpbm9uaW0oc2VsZiwga2F0YSk6CiAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGEuZ2V0KGthdGEsIE5vbmUpCgojIEluaXNpYWxpc2FzaSBvYmplayBrYW11cwprYW11cyA9IEthbXVzKCkKCiMgTWVuYW1iYWhrYW4ga2F0YSBkYW4gc2lub25pbQprYW11cy50YW1iYWgoJ2JpZycsIFsnbGFyZ2UnLCAnZ3JlYXQnXSkKa2FtdXMudGFtYmFoKCdiaWcnLCBbJ2h1Z2UnLCAnZmF0J10pCmthbXVzLnRhbWJhaCgnaHVnZScsIFsnZW5vcm1vdXMnLCAnZ2lnYW50aWMnXSkKCiMgLS0tIFBlbmd1amlhbiAtLS0KCiMgS2FzdXMgMTogTWVuZ2FtYmlsIHNpbm9uaW0gZGFyaSAnYmlnJwpwcmludChmIlNpbm9uaW0gZGFyaSAnYmlnJzoge2thbXVzLmFtYmlsU2lub25pbSgnYmlnJyl9IikKCiMgS2FzdXMgMjogTWVuZ2FtYmlsIHNpbm9uaW0gZGFyaSAnaHVnZScKcHJpbnQoZiJTaW5vbmltIGRhcmkgJ2h1Z2UnOiB7a2FtdXMuYW1iaWxTaW5vbmltKCdodWdlJyl9IikKCiMgS2FzdXMgMzogTWVuZ2FtYmlsIHNpbm9uaW0gZGFyaSAnZ2lnYW50aWMnCnByaW50KGYiU2lub25pbSBkYXJpICdnaWdhbnRpYyc6IHtrYW11cy5hbWJpbFNpbm9uaW0oJ2dpZ2FudGljJyl9IikKCiMgS2FzdXMgNDogTWVuZ2FtYmlsIHNpbm9uaW0gZGFyaSBrYXRhIHlhbmcgdGlkYWsgYWRhCnByaW50KGYiU2lub25pbSBkYXJpICdjb2xvc3NhbCc6IHtrYW11cy5hbWJpbFNpbm9uaW0oJ2NvbG9zc2FsJyl9Iik=