<?php
class Kamus
{
private $kata = [];
private $sinonim = [];
public function tambah($kata, $daftarSinonim)
{
$this->kata[] = $kata;
$this->sinonim[] = [];
}
foreach ($daftarSinonim as $s) {
if (!in_array($s, $this->sinonim[$indexKata])) { $this->sinonim[$indexKata][] = $s;
}
$this->kata[] = $s;
$this->sinonim[] = [];
}
if (!in_array($kata, $this->sinonim[$indexSinonim])) { $this->sinonim[$indexSinonim][] = $kata;
}
}
}
public function ambilSinonim($kata)
{
return null;
}
return $this->sinonim[$index];
}
}
$kamus = new Kamus();
$kamus->tambah('big', ['large', 'great']);
$kamus->tambah('big', ['huge', 'fat']);
$kamus->tambah('huge', ['enormous', 'gigantic']);
function output($result)
{
if ($result === null) {
echo "null\n";
} else {
echo "['" . implode("', '", $result) . "']\n"; }
}
output($kamus->ambilSinonim('big'));
output($kamus->ambilSinonim('huge'));
output($kamus->ambilSinonim('gigantic'));
output($kamus->ambilSinonim('colossal'));
PD9waHAKCmNsYXNzIEthbXVzCnsKICAgIHByaXZhdGUgJGthdGEgPSBbXTsKICAgIHByaXZhdGUgJHNpbm9uaW0gPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKCRrYXRhLCAkZGFmdGFyU2lub25pbSkKICAgIHsKICAgIAkKICAgICAgICBpZiAoIWluX2FycmF5KCRrYXRhLCAkdGhpcy0+a2F0YSkpIHsKICAgICAgICAgICAgJHRoaXMtPmthdGFbXSA9ICRrYXRhOwogICAgICAgICAgICAkdGhpcy0+c2lub25pbVtdID0gW107CiAgICAgICAgfQoKICAgICAgICAkaW5kZXhLYXRhID0gYXJyYXlfc2VhcmNoKCRrYXRhLCAkdGhpcy0+a2F0YSk7CgogICAgICAgIGZvcmVhY2ggKCRkYWZ0YXJTaW5vbmltIGFzICRzKSB7CgogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRzLCAkdGhpcy0+c2lub25pbVskaW5kZXhLYXRhXSkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zaW5vbmltWyRpbmRleEthdGFdW10gPSAkczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFpbl9hcnJheSgkcywgJHRoaXMtPmthdGEpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+a2F0YVtdID0gJHM7CiAgICAgICAgICAgICAgICAkdGhpcy0+c2lub25pbVtdID0gW107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRpbmRleFNpbm9uaW0gPSBhcnJheV9zZWFyY2goJHMsICR0aGlzLT5rYXRhKTsKICAgICAgICAgICAgaWYgKCFpbl9hcnJheSgka2F0YSwgJHRoaXMtPnNpbm9uaW1bJGluZGV4U2lub25pbV0pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c2lub25pbVskaW5kZXhTaW5vbmltXVtdID0gJGthdGE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbSgka2F0YSkKICAgIHsKICAgICAgICBpZiAoIWluX2FycmF5KCRrYXRhLCAkdGhpcy0+a2F0YSkpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICAkaW5kZXggPSBhcnJheV9zZWFyY2goJGthdGEsICR0aGlzLT5rYXRhKTsKICAgICAgICByZXR1cm4gJHRoaXMtPnNpbm9uaW1bJGluZGV4XTsKICAgIH0KfQoKJGthbXVzID0gbmV3IEthbXVzKCk7Cgoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKTsKCmZ1bmN0aW9uIG91dHB1dCgkcmVzdWx0KQp7CiAgICBpZiAoJHJlc3VsdCA9PT0gbnVsbCkgewogICAgICAgIGVjaG8gIm51bGxcbiI7CiAgICB9IGVsc2UgewogICAgICAgIGVjaG8gIlsnIiAuIGltcGxvZGUoIicsICciLCAkcmVzdWx0KSAuICInXVxuIjsKICAgIH0KfQoKb3V0cHV0KCRrYW11cy0+YW1iaWxTaW5vbmltKCdiaWcnKSk7Cm91dHB1dCgka2FtdXMtPmFtYmlsU2lub25pbSgnaHVnZScpKTsKb3V0cHV0KCRrYW11cy0+YW1iaWxTaW5vbmltKCdnaWdhbnRpYycpKTsKb3V0cHV0KCRrYW11cy0+YW1iaWxTaW5vbmltKCdjb2xvc3NhbCcpKTsK