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.  
  11. foreach ($sinonim as $s) {
  12. if (!in_array($s, $this->data[$kata])) {
  13. $this->data[$kata][] = $s;
  14. }
  15. }
  16. }
  17.  
  18. public function ambilSinonim($kata) {
  19. if (isset($this->data[$kata])) {
  20. return $this->data[$kata];
  21. }
  22.  
  23. foreach ($this->data as $k => $sinonimList) {
  24. if (in_array($kata, $sinonimList)) {
  25. $hasil = [$k];
  26.  
  27. if (isset($this->data[$kata])) {
  28. $hasil = array_merge($hasil, $this->data[$kata]);
  29. }
  30.  
  31. return $hasil;
  32. }
  33. }
  34.  
  35. return null;
  36. }
  37. }
  38.  
  39. $kamus = new Kamus();
  40. $kamus->tambah('big', ['large', 'great']);
  41. $kamus->tambah('big', ['huge', 'fat']);
  42. $kamus->tambah('huge', ['enormous', 'gigantic']);
  43.  
  44. function cetak($kata, $hasil) {
  45. echo "Sinonim dari '{$kata}': ";
  46. if ($hasil === null) {
  47. echo "null\n";
  48. } else {
  49. echo "[" . implode(", ", $hasil) . "]\n";
  50. }
  51. }
  52.  
  53. cetak('big', $kamus->ambilSinonim('big'));
  54. cetak('huge', $kamus->ambilSinonim('huge'));
  55. cetak('gigantic', $kamus->ambilSinonim('gigantic'));
  56. cetak('colossal', $kamus->ambilSinonim('colossal'));
  57.  
  58. ?>
  59.  
Success #stdin #stdout 0.04s 25412KB
stdin
Standard input is empty
stdout
Sinonim dari 'big': [large, great, huge, fat]
Sinonim dari 'huge': [enormous, gigantic]
Sinonim dari 'gigantic': [huge]
Sinonim dari 'colossal': null