fork download
  1. <?php
  2.  
  3. class Kamus {
  4. private $data = [];
  5.  
  6. public function tambah(string $kata, array $sinonim): void {
  7. if (!isset($this->data[$kata])) {
  8. $this->data[$kata] = [];
  9. }
  10. $this->data[$kata] = array_values(array_unique(array_merge($this->data[$kata], $sinonim)));
  11. }
  12.  
  13. public function ambilSinonim(string $kata) {
  14. $hasil = [];
  15.  
  16. if (isset($this->data[$kata])) {
  17. $hasil = $this->data[$kata];
  18. }
  19.  
  20. foreach ($this->data as $k => $sinonim) {
  21. if (in_array($kata, $sinonim, true)) {
  22. $hasil[] = $k;
  23. }
  24. }
  25.  
  26. if (empty($hasil)) {
  27. return null;
  28. }
  29.  
  30. return array_values(array_unique($hasil));
  31. }
  32. }
  33.  
  34. function cetakSinonim($kata, $kamus) {
  35. $hasil = $kamus->ambilSinonim($kata);
  36. if ($hasil === null) {
  37. echo "Sinonim untuk '{$kata}' null.\n";
  38. } else {
  39. echo "Sinonim untuk '{$kata}': " . implode(', ', $hasil) . "\n";
  40. }
  41. }
  42.  
  43.  
  44. $kamus = new Kamus();
  45. $kamus->tambah('big', ['large', 'great']);
  46. $kamus->tambah('big', ['huge', 'fat']);
  47. $kamus->tambah('huge', ['enormous', 'gigantic']);
  48.  
  49. cetakSinonim('big', $kamus);
  50. cetakSinonim('huge', $kamus);
  51. cetakSinonim('gigantic', $kamus);
  52. cetakSinonim('colossal', $kamus);
  53.  
Success #stdin #stdout 0.03s 25836KB
stdin
Standard input is empty
stdout
Sinonim untuk 'big': large, great, huge, fat
Sinonim untuk 'huge': enormous, gigantic, big
Sinonim untuk 'gigantic': huge
Sinonim untuk 'colossal' null.