<?php
class Kamus {
private $data = [];
public function tambah($kata, $sinonimArray) {
if (!isset($this->data[$kata])) { $this->data[$kata] = [];
}
foreach ($sinonimArray as $sinonim) {
if (!in_array($sinonim, $this->data[$kata])) { $this->data[$kata][] = $sinonim;
}
if (!isset($this->data[$sinonim])) { $this->data[$sinonim] = [];
}
if (!in_array($kata, $this->data[$sinonim])) { $this->data[$sinonim][] = $kata;
}
}
}
public function ambilSinonim($kata) {
if (!isset($this->data[$kata])) { return null;
}
return $this->data[$kata];
}
}
// Contoh Pengujian
$kamus = new Kamus();
$kamus->tambah('big', ['large', 'great']);
$kamus->tambah('big', ['huge', 'fat']);
$kamus->tambah('huge', ['enormous', 'gigantic']);
print_r($kamus->ambilSinonim('big')); // ['large', 'great', 'huge', 'fat'] print_r($kamus->ambilSinonim('huge')); // ['big', 'enormous', 'gigantic'] print_r($kamus->ambilSinonim('gigantic')); // ['huge'] var_dump($kamus->ambilSinonim('colossal')); // null
PD9waHAKCmNsYXNzIEthbXVzIHsKICAgIHByaXZhdGUgJGRhdGEgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKCRrYXRhLCAkc2lub25pbUFycmF5KSB7CiAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+ZGF0YVska2F0YV0pKSB7CiAgICAgICAgICAgICR0aGlzLT5kYXRhWyRrYXRhXSA9IFtdOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJHNpbm9uaW1BcnJheSBhcyAkc2lub25pbSkgewogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRzaW5vbmltLCAkdGhpcy0+ZGF0YVska2F0YV0pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGF0YVska2F0YV1bXSA9ICRzaW5vbmltOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5kYXRhWyRzaW5vbmltXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5kYXRhWyRzaW5vbmltXSA9IFtdOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRrYXRhLCAkdGhpcy0+ZGF0YVskc2lub25pbV0pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGF0YVskc2lub25pbV1bXSA9ICRrYXRhOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHB1YmxpYyBmdW5jdGlvbiBhbWJpbFNpbm9uaW0oJGthdGEpIHsKICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5kYXRhWyRrYXRhXSkpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHRoaXMtPmRhdGFbJGthdGFdOwogICAgfQp9CgovLyBDb250b2ggUGVuZ3VqaWFuCiRrYW11cyA9IG5ldyBLYW11cygpOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKTsKCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2JpZycpKTsgICAgICAgLy8gWydsYXJnZScsICdncmVhdCcsICdodWdlJywgJ2ZhdCddCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2h1Z2UnKSk7ICAgICAgLy8gWydiaWcnLCAnZW5vcm1vdXMnLCAnZ2lnYW50aWMnXQpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCdnaWdhbnRpYycpKTsgIC8vIFsnaHVnZSddCnZhcl9kdW1wKCRrYW11cy0+YW1iaWxTaW5vbmltKCdjb2xvc3NhbCcpKTsgLy8gbnVsbAo=