fork download
  1. <?php
  2.  
  3. class Kamus {
  4. private $data = [];
  5.  
  6. public function tambah($kata, $sinonim) {
  7. if (!isset($this->data[$kata])) {
  8. $this->data[$kata] = [];
  9. }
  10. // Gabungkan dan hilangkan duplikat
  11. $this->data[$kata] = array_unique(array_merge($this->data[$kata], $sinonim));
  12. }
  13.  
  14. public function ambilSinonim($kata) {
  15. if (isset($this->data[$kata])) {
  16. return $this->data[$kata];
  17. } else {
  18. // Cek apakah kata ini adalah sinonim dari kata lain
  19. foreach ($this->data as $k => $sinonimList) {
  20. if (in_array($kata, $sinonimList)) {
  21. return [$k];
  22. }
  23. }
  24. }
  25. return null;
  26. }
  27. }
  28.  
  29. $kamus = new Kamus();
  30. $kamus->tambah('big', ['large', 'great']);
  31. $kamus->tambah('big', ['huge', 'fat']);
  32. $kamus->tambah('huge', ['enormous', 'gigantic']);
  33.  
  34. print_r($kamus->ambilSinonim('big')); // ['large', 'great', 'huge', 'fat']
  35. print_r($kamus->ambilSinonim('huge')); // ['big']
  36. print_r($kamus->ambilSinonim('gigantic')); // ['huge']
  37. print_r($kamus->ambilSinonim('colossal')); // null
  38.  
Success #stdin #stdout 0.03s 26060KB
stdin
big
stdout
Array
(
    [0] => large
    [1] => great
    [2] => huge
    [3] => fat
)
Array
(
    [0] => enormous
    [1] => gigantic
)
Array
(
    [0] => huge
)