fork download
  1. <?php
  2.  
  3. class Kamus
  4. {
  5. private $kamus = [];
  6.  
  7. public function tambah(string $kata, array $sinonim): void
  8. {
  9. if (!isset($this->kamus[$kata])) {
  10. $this->kamus[$kata] = [];
  11. }
  12.  
  13. $this->kamus[$kata] = array_unique(array_merge($this->kamus[$kata], $sinonim));
  14.  
  15. foreach ($sinonim as $sin) {
  16. if (!isset($this->kamus[$sin])) {
  17. $this->kamus[$sin] = [];
  18. }
  19. if (!in_array($kata, $this->kamus[$sin])) {
  20. $this->kamus[$sin][] = $kata;
  21. }
  22. }
  23. }
  24.  
  25. public function ambilSinonim(string $kata)
  26. {
  27. return $this->kamus[$kata] ?? null;
  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. // mengembalikan hasil ['large', 'great', 'huge', 'fat']
  36. var_dump($kamus->ambilSinonim('big'));
  37. // Perhatikan baik-baik hasil pengujian di bawah ini
  38. // mengembalikan hasil ['big', 'enormous', 'gigantic']
  39. var_dump($kamus->ambilSinonim('huge'));
  40. // mengembalikan hasil ['huge']
  41. var_dump($kamus->ambilSinonim('gigantic'));
  42. // mengembalikan hasil null
  43. var_dump($kamus->ambilSinonim('colossal'));
Success #stdin #stdout 0.04s 25844KB
stdin
Standard input is empty
stdout
array(4) {
  [0]=>
  string(5) "large"
  [1]=>
  string(5) "great"
  [2]=>
  string(4) "huge"
  [3]=>
  string(3) "fat"
}
array(3) {
  [0]=>
  string(3) "big"
  [1]=>
  string(8) "enormous"
  [2]=>
  string(8) "gigantic"
}
array(1) {
  [0]=>
  string(4) "huge"
}
NULL