fork download
  1. <?php
  2.  
  3. class Kamus {
  4. private $data = [];
  5.  
  6. // Menambahkan kata dan sinonim-sinonimnya
  7. public function tambah($kata, $sinonimArray) {
  8. if (!isset($this->data[$kata])) {
  9. $this->data[$kata] = [];
  10. }
  11.  
  12. foreach ($sinonimArray as $sinonim) {
  13. if (!in_array($sinonim, $this->data[$kata])) {
  14. $this->data[$kata][] = $sinonim;
  15. }
  16. }
  17. }
  18.  
  19. // Mengambil sinonim dari suatu kata
  20. public function ambilSinonim($kata) {
  21. // Jika kata adalah kunci utama, kembalikan langsung sinonimnya
  22. if (isset($this->data[$kata])) {
  23. return $this->data[$kata];
  24. }
  25.  
  26. // Jika kata hanya muncul sebagai sinonim dari kata lain
  27. foreach ($this->data as $kunci => $daftarSinonim) {
  28. if (in_array($kata, $daftarSinonim)) {
  29. return [$kunci]; // hanya tampilkan kunci utamanya
  30. }
  31. }
  32.  
  33. return null;
  34. }
  35. }
  36.  
  37. // Pengujian
  38. $kamus = new Kamus();
  39.  
  40. $kamus->tambah('big', ['large', 'great']);
  41. $kamus->tambah('big', ['huge', 'fat']);
  42. $kamus->tambah('huge', ['enormous', 'gigantic']);
  43.  
  44. print_r($kamus->ambilSinonim('big'));
  45. print_r($kamus->ambilSinonim('huge'));
  46. print_r($kamus->ambilSinonim('gigantic'));
  47. print_r($kamus->ambilSinonim('colossal'));
  48.  
  49. ?>
  50.  
Success #stdin #stdout 0.02s 26108KB
stdin
Standard input is empty
stdout
Array
(
    [0] => large
    [1] => great
    [2] => huge
    [3] => fat
)
Array
(
    [0] => enormous
    [1] => gigantic
)
Array
(
    [0] => huge
)