fork download
  1. <?php
  2.  
  3. class Kamus {
  4. private $kamusData = [];
  5.  
  6. public function tambah(string $kata, array $sinonim): void {
  7. if (!isset($this->kamusData[$kata])) {
  8. $this->kamusData[$kata] = [];
  9. }
  10.  
  11. foreach ($sinonim as $s) {
  12. $this->kamusData[$kata][$s] = true;
  13.  
  14. if (!isset($this->kamusData[$s])) {
  15. $this->kamusData[$s] = [];
  16. }
  17. $this->kamusData[$s][$kata] = true;
  18. }
  19. }
  20.  
  21. public function ambilSinonim(string $kata): ?array {
  22. if (isset($this->kamusData[$kata])) {
  23. return array_keys($this->kamusData[$kata]);
  24. }
  25. return null;
  26. }
  27. }
  28.  
  29. function cetakHasil($hasil) {
  30. if ($hasil === null) {
  31. echo "null\n";
  32. } else {
  33. print_r($hasil);
  34. }
  35. }
  36.  
  37. $kamus = new Kamus();
  38. $kamus->tambah('big', ['large', 'great']);
  39. $kamus->tambah('big', ['huge', 'fat']);
  40. $kamus->tambah('huge', ['enormous', 'gigantic']);
  41.  
  42. cetakHasil($kamus->ambilSinonim('big'));
  43. cetakHasil($kamus->ambilSinonim('huge'));
  44. cetakHasil($kamus->ambilSinonim('gigantic'));
  45. cetakHasil($kamus->ambilSinonim('colossal'));
  46.  
  47. ?>
Success #stdin #stdout 0.02s 25916KB
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