<?php
class Kamus
{
private $data = [];
public function tambah
(string
$kata, array $sinonim): void
{
if (!isset($this->data[$kata])) { $this->data[$kata] = [];
}
}
public function ambilSinonim
(string
$kata): ?
array {
if (!isset($this->data[$kata])) { foreach ($this->data as $k => $sinonimList) {
}
}
return null;
}
return $this->data[$kata];
}
}
$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', 'large', 'great', 'huge', 'fat'] print_r($kamus->ambilSinonim('gigantic')); // ['huge', 'enormous', 'gigantic'] print_r($kamus->ambilSinonim('colossal')); // null
PD9waHAKCmNsYXNzIEthbXVzCnsKICAgIHByaXZhdGUgJGRhdGEgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKHN0cmluZyAka2F0YSwgYXJyYXkgJHNpbm9uaW0pOiB2b2lkCiAgICB7CiAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+ZGF0YVska2F0YV0pKSB7CiAgICAgICAgICAgICR0aGlzLT5kYXRhWyRrYXRhXSA9IFtdOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRhdGFbJGthdGFdID0gYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKCR0aGlzLT5kYXRhWyRrYXRhXSwgJHNpbm9uaW0pKTsKICAgIH0KCiAgICBwdWJsaWMgZnVuY3Rpb24gYW1iaWxTaW5vbmltKHN0cmluZyAka2F0YSk6ID9hcnJheQogICAgewogICAgICAgIGlmICghaXNzZXQoJHRoaXMtPmRhdGFbJGthdGFdKSkgewogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAkayA9PiAkc2lub25pbUxpc3QpIHsKICAgICAgICAgICAgICAgIGlmIChpbl9hcnJheSgka2F0YSwgJHNpbm9uaW1MaXN0KSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheV92YWx1ZXMoYXJyYXlfdW5pcXVlKGFycmF5X21lcmdlKFska10sICR0aGlzLT5kYXRhWyRrXSkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkdGhpcy0+ZGF0YVska2F0YV07CiAgICB9Cn0KCiRrYW11cyA9IG5ldyBLYW11cygpOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKTsKCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2JpZycpKTsgICAgICAgLy8gWydsYXJnZScsICdncmVhdCcsICdodWdlJywgJ2ZhdCddCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2h1Z2UnKSk7ICAgICAgLy8gWydiaWcnLCAnbGFyZ2UnLCAnZ3JlYXQnLCAnaHVnZScsICdmYXQnXQpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCdnaWdhbnRpYycpKTsgIC8vIFsnaHVnZScsICdlbm9ybW91cycsICdnaWdhbnRpYyddCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2NvbG9zc2FsJykpOyAgLy8gbnVsbAo=