<?php
class Kamus {
private $data = [];
public function tambah($kata, $sinonim) {
foreach ($sinonim as $s) {
if (!in_array($s, $this->data[$kata] ??
[])) { $this->data[$kata][] = $s;
}
}
}
public function ambilSinonim($kata) {
if (isset($this->data[$kata])) { echo "[" . implode(', ', array_map(function($x) { return "'$x'"; }, $this->data[$kata])) . "]\n"; return;
}
foreach ($this->data as $key => $daftar) {
if (isset($this->data[$kata])) { echo "[" . implode(', ', array_map(function($x) { return "'$x'"; }, $this->data[$kata])) . "]\n"; } else {
echo "['$key']\n";
}
return;
}
}
echo "null\n";
}
}
$kamus = new Kamus();
$kamus->tambah('big', ['large', 'great']);
$kamus->tambah('big', ['huge', 'fat']);
$kamus->tambah('huge', ['enormous', 'gigantic']);
$kamus->ambilSinonim('big');
$kamus->ambilSinonim('huge');
$kamus->ambilSinonim('gigantic');
$kamus->ambilSinonim('colossal');
PD9waHAKCmNsYXNzIEthbXVzIHsKCXByaXZhdGUgJGRhdGEgPSBbXTsKCglwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKCRrYXRhLCAkc2lub25pbSkgewoJCWZvcmVhY2ggKCRzaW5vbmltIGFzICRzKSB7CgkJCWlmICghaW5fYXJyYXkoJHMsICR0aGlzLT5kYXRhWyRrYXRhXSA/PyBbXSkpIHsKCQkJCSR0aGlzLT5kYXRhWyRrYXRhXVtdID0gJHM7CgkJCX0KCQl9Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbSgka2F0YSkgewoJCWlmIChpc3NldCgkdGhpcy0+ZGF0YVska2F0YV0pKSB7CgkJCWVjaG8gIlsiIC4gaW1wbG9kZSgnLCAnLCBhcnJheV9tYXAoZnVuY3Rpb24oJHgpIHsgcmV0dXJuICInJHgnIjsgfSwgJHRoaXMtPmRhdGFbJGthdGFdKSkgLiAiXVxuIjsKCQkJcmV0dXJuOwoJCX0KCQkKCQlmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAka2V5ID0+ICRkYWZ0YXIpIHsKCQkJaWYgKGluX2FycmF5KCRrYXRhLCAkZGFmdGFyKSkgewoJCQkJaWYgKGlzc2V0KCR0aGlzLT5kYXRhWyRrYXRhXSkpIHsKCQkJCQllY2hvICJbIiAuIGltcGxvZGUoJywgJywgYXJyYXlfbWFwKGZ1bmN0aW9uKCR4KSB7IHJldHVybiAiJyR4JyI7IH0sICR0aGlzLT5kYXRhWyRrYXRhXSkpIC4gIl1cbiI7CgkJCQl9IGVsc2UgewoJCQkJCWVjaG8gIlsnJGtleSddXG4iOwoJCQkJfQoJCQkJcmV0dXJuOwoJCQl9CgkJfQoJCQoJCWVjaG8gIm51bGxcbiI7Cgl9Cn0KCiRrYW11cyA9IG5ldyBLYW11cygpOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKTsKCiRrYW11cy0+YW1iaWxTaW5vbmltKCdiaWcnKTsKJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2h1Z2UnKTsKJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2dpZ2FudGljJyk7CiRrYW11cy0+YW1iaWxTaW5vbmltKCdjb2xvc3NhbCcpOw==