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