<?php
class Kamus {
private $kamus = [];
public function tambah($kata, $sinonim) {
if (isset($this->kamus[$kata])) { } else {
$this->kamus[$kata] = $sinonim;
}
foreach ($sinonim as $synonym) {
if (isset($this->kamus[$synonym])) { } else {
$this->kamus[$synonym] = [$kata];
}
}
}
public function ambilSinonim($kata) {
if (isset($this->kamus[$kata])) { return $this->kamus[$kata];
} else {
return null;
}
}
}
$kamus = new Kamus();
$kamus->tambah('big', ['large', 'great']);
$kamus->tambah('big', ['huge', 'fat']);
$kamus->tambah('huge', ['enormous', 'gigantic']);
print_r($kamus->ambilSinonim('big'));
print_r($kamus->ambilSinonim('huge'));
print_r($kamus->ambilSinonim('gigantic'));
print_r($kamus->ambilSinonim('colossal')); ?>
PD9waHAKY2xhc3MgS2FtdXMgewogICAgcHJpdmF0ZSAka2FtdXMgPSBbXTsKICAgIHB1YmxpYyBmdW5jdGlvbiB0YW1iYWgoJGthdGEsICRzaW5vbmltKSB7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5rYW11c1ska2F0YV0pKSB7CiAgICAgICAgICAgICR0aGlzLT5rYW11c1ska2F0YV0gPSBhcnJheV91bmlxdWUoYXJyYXlfbWVyZ2UoJHRoaXMtPmthbXVzWyRrYXRhXSwgJHNpbm9uaW0pKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+a2FtdXNbJGthdGFdID0gJHNpbm9uaW07CiAgICAgICAgfQogICAgICAgIGZvcmVhY2ggKCRzaW5vbmltIGFzICRzeW5vbnltKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+a2FtdXNbJHN5bm9ueW1dKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmthbXVzWyRzeW5vbnltXSA9IGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZSgkdGhpcy0+a2FtdXNbJHN5bm9ueW1dLCBbJGthdGFdKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+a2FtdXNbJHN5bm9ueW1dID0gWyRrYXRhXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbSgka2F0YSkgewogICAgICAgIGlmIChpc3NldCgkdGhpcy0+a2FtdXNbJGthdGFdKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmthbXVzWyRrYXRhXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9Cn0KCiRrYW11cyA9IG5ldyBLYW11cygpOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydsYXJnZScsICdncmVhdCddKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnaHVnZScsICdmYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdodWdlJywgWydlbm9ybW91cycsICdnaWdhbnRpYyddKTsKCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2JpZycpKTsKCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2h1Z2UnKSk7CgpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCdnaWdhbnRpYycpKTsKCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2NvbG9zc2FsJykpOwo/Pgo=