<?php
class Kamus {
private $data = [];
// Menambahkan kata dan sinonim ke dalam kamus
public function tambah
(string
$kata, array $sinonim): void
{ if (!isset($this->data[$kata])) { $this->data[$kata] = [];
}
foreach ($sinonim as $s) {
if (!in_array($s, $this->data[$kata], true)) { $this->data[$kata][] = $s;
}
}
}
// Mengambil sinonim dari suatu kata
public function ambilSinonim
(string
$kata): ?
array { if (isset($this->data[$kata])) { return $this->data[$kata];
}
// Cek apakah kata ini merupakan sinonim dari kata lain
foreach ($this->data as $k => $daftarSinonim) {
if (in_array($kata, $daftarSinonim, true)) { }
}
return null;
}
}
// Contoh penggunaan
$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')); // ['huge', 'enormous', 'gigantic'] print_r($kamus->ambilSinonim('gigantic')); // ['huge'] print_r($kamus->ambilSinonim('colossal')); // null
PD9waHAKCmNsYXNzIEthbXVzIHsKICAgIHByaXZhdGUgJGRhdGEgPSBbXTsKCiAgICAvLyBNZW5hbWJhaGthbiBrYXRhIGRhbiBzaW5vbmltIGtlIGRhbGFtIGthbXVzCiAgICBwdWJsaWMgZnVuY3Rpb24gdGFtYmFoKHN0cmluZyAka2F0YSwgYXJyYXkgJHNpbm9uaW0pOiB2b2lkIHsKICAgICAgICBpZiAoIWlzc2V0KCR0aGlzLT5kYXRhWyRrYXRhXSkpIHsKICAgICAgICAgICAgJHRoaXMtPmRhdGFbJGthdGFdID0gW107CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkc2lub25pbSBhcyAkcykgewogICAgICAgICAgICBpZiAoIWluX2FycmF5KCRzLCAkdGhpcy0+ZGF0YVska2F0YV0sIHRydWUpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZGF0YVska2F0YV1bXSA9ICRzOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIE1lbmdhbWJpbCBzaW5vbmltIGRhcmkgc3VhdHUga2F0YQogICAgcHVibGljIGZ1bmN0aW9uIGFtYmlsU2lub25pbShzdHJpbmcgJGthdGEpOiA/YXJyYXkgewogICAgICAgIGlmIChpc3NldCgkdGhpcy0+ZGF0YVska2F0YV0pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZGF0YVska2F0YV07CiAgICAgICAgfQoKICAgICAgICAvLyBDZWsgYXBha2FoIGthdGEgaW5pIG1lcnVwYWthbiBzaW5vbmltIGRhcmkga2F0YSBsYWluCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmRhdGEgYXMgJGsgPT4gJGRhZnRhclNpbm9uaW0pIHsKICAgICAgICAgICAgaWYgKGluX2FycmF5KCRrYXRhLCAkZGFmdGFyU2lub25pbSwgdHJ1ZSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheV9tZXJnZShbJGtdLCAkdGhpcy0+YW1iaWxTaW5vbmltKCRrKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBudWxsOwogICAgfQp9CgovLyBDb250b2ggcGVuZ2d1bmFhbgoka2FtdXMgPSBuZXcgS2FtdXMoKTsKJGthbXVzLT50YW1iYWgoJ2JpZycsIFsnbGFyZ2UnLCAnZ3JlYXQnXSk7CiRrYW11cy0+dGFtYmFoKCdiaWcnLCBbJ2h1Z2UnLCAnZmF0J10pOwoka2FtdXMtPnRhbWJhaCgnaHVnZScsIFsnZW5vcm1vdXMnLCAnZ2lnYW50aWMnXSk7CgpwcmludF9yKCRrYW11cy0+YW1iaWxTaW5vbmltKCdiaWcnKSk7ICAgICAgICAvLyBbJ2xhcmdlJywgJ2dyZWF0JywgJ2h1Z2UnLCAnZmF0J10KcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnaHVnZScpKTsgICAgICAgLy8gWydodWdlJywgJ2Vub3Jtb3VzJywgJ2dpZ2FudGljJ10KcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnZ2lnYW50aWMnKSk7ICAgLy8gWydodWdlJ10KcHJpbnRfcigka2FtdXMtPmFtYmlsU2lub25pbSgnY29sb3NzYWwnKSk7ICAgLy8gbnVsbAo=