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