class Kamus {
constructor() {
this.kamus = {};
}
tambah(kata, sinonim) {
if (!this.kamus[kata]) {
this.kamus[kata] = [];
}
this.kamus[kata] = this.kamus[kata].concat(sinonim);
sinonim.forEach((s) => {
if (!this.kamus[s]) {
this.kamus[s] = [];
}
this.kamus[s].push(kata);
});
}
ambilSinonim(kata) {
return this.kamus[kata] || null;
}
}
const kamus = new Kamus();
kamus.tambah("big", ["large", "great"]);
kamus.tambah("big", ["huge", "fat"]);
kamus.tambah("huge", ["enormous", "gigantic"]);
console.log(kamus.ambilSinonim("big"));
console.log(kamus.ambilSinonim("huge"));
console.log(kamus.ambilSinonim("gigantic"));
console.log(kamus.ambilSinonim("colossal"));
Y2xhc3MgS2FtdXMgewogIGNvbnN0cnVjdG9yKCkgewogICAgdGhpcy5rYW11cyA9IHt9OwogIH0KCiAgdGFtYmFoKGthdGEsIHNpbm9uaW0pIHsKICAgIGlmICghdGhpcy5rYW11c1trYXRhXSkgewogICAgICB0aGlzLmthbXVzW2thdGFdID0gW107CiAgICB9CiAgICB0aGlzLmthbXVzW2thdGFdID0gdGhpcy5rYW11c1trYXRhXS5jb25jYXQoc2lub25pbSk7CiAgICBzaW5vbmltLmZvckVhY2goKHMpID0+IHsKICAgICAgaWYgKCF0aGlzLmthbXVzW3NdKSB7CiAgICAgICAgdGhpcy5rYW11c1tzXSA9IFtdOwogICAgICB9CiAgICAgIHRoaXMua2FtdXNbc10ucHVzaChrYXRhKTsKICAgIH0pOwogIH0KCiAgYW1iaWxTaW5vbmltKGthdGEpIHsKICAgIHJldHVybiB0aGlzLmthbXVzW2thdGFdIHx8IG51bGw7CiAgfQp9Cgpjb25zdCBrYW11cyA9IG5ldyBLYW11cygpOwprYW11cy50YW1iYWgoImJpZyIsIFsibGFyZ2UiLCAiZ3JlYXQiXSk7CmthbXVzLnRhbWJhaCgiYmlnIiwgWyJodWdlIiwgImZhdCJdKTsKa2FtdXMudGFtYmFoKCJodWdlIiwgWyJlbm9ybW91cyIsICJnaWdhbnRpYyJdKTsKCmNvbnNvbGUubG9nKGthbXVzLmFtYmlsU2lub25pbSgiYmlnIikpOwpjb25zb2xlLmxvZyhrYW11cy5hbWJpbFNpbm9uaW0oImh1Z2UiKSk7CmNvbnNvbGUubG9nKGthbXVzLmFtYmlsU2lub25pbSgiZ2lnYW50aWMiKSk7CmNvbnNvbGUubG9nKGthbXVzLmFtYmlsU2lub25pbSgiY29sb3NzYWwiKSk7