<?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])) { return $this->data[$kata];
}
foreach ($this->data as $k => $daftarSinonim) {
}
}
return null;
}
}
// 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', 'large', 'great', 'huge', 'fat'] print_r($kamus->ambilSinonim('gigantic')); // ['huge', 'enormous', 'gigantic'] print_r($kamus->ambilSinonim('colossal')); // null
?>
PD9waHAKCmNsYXNzIEthbXVzIHsKICAgIHByaXZhdGUgJGRhdGEgPSBbXTsKCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKHN0cmluZyAka2F0YSwgYXJyYXkgJHNpbm9uaW0pOiB2b2lkIHsKICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5kYXRhWyRrYXRhXSkpIHsKICAgICAgICAgICAgJHRoaXMtPmRhdGFbJGthdGFdID0gW107CiAgICAgICAgfQogICAgICAgICR0aGlzLT5kYXRhWyRrYXRhXSA9IGFycmF5X3VuaXF1ZShhcnJheV9tZXJnZSgkdGhpcy0+ZGF0YVska2F0YV0sICRzaW5vbmltKSk7CiAgICB9CgogICAgcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbShzdHJpbmcgJGthdGEpOiA/YXJyYXkgewogICAgICAgIGlmIChpc3NldCgkdGhpcy0+ZGF0YVska2F0YV0pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZGF0YVska2F0YV07CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+ZGF0YSBhcyAkayA9PiAkZGFmdGFyU2lub25pbSkgewogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGthdGEsICRkYWZ0YXJTaW5vbmltKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5X21lcmdlKFska10sICR0aGlzLT5kYXRhWyRrXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9CgovLyBQZW5ndWppYW4KJGthbXVzID0gbmV3IEthbXVzKCk7CiRrYW11cy0+dGFtYmFoKCdiaWcnLCBbJ2xhcmdlJywgJ2dyZWF0J10pOwoka2FtdXMtPnRhbWJhaCgnYmlnJywgWydodWdlJywgJ2ZhdCddKTsKJGthbXVzLT50YW1iYWgoJ2h1Z2UnLCBbJ2Vub3Jtb3VzJywgJ2dpZ2FudGljJ10pOwoKcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnYmlnJykpOyAgICAgICAvLyBbJ2xhcmdlJywgJ2dyZWF0JywgJ2h1Z2UnLCAnZmF0J10KcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnaHVnZScpKTsgICAgICAvLyBbJ2JpZycsICdsYXJnZScsICdncmVhdCcsICdodWdlJywgJ2ZhdCddCnByaW50X3IoJGthbXVzLT5hbWJpbFNpbm9uaW0oJ2dpZ2FudGljJykpOyAgLy8gWydodWdlJywgJ2Vub3Jtb3VzJywgJ2dpZ2FudGljJ10KcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnY29sb3NzYWwnKSk7ICAvLyBudWxsCgo/Pg==