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_unique(array_merge($this->data[$kata], $sinonim));
  11.  
  12. // menambahkan hubungan dua arah
  13. foreach ($sinonim as $s) {
  14. if (!isset($this->data[$s])) {
  15. $this->data[$s] = [];
  16. }
  17. $this->data[$s][] = $kata;
  18. $this->data[$s] = array_unique($this->data[$s]);
  19. }
  20. }
  21.  
  22. public function ambilSinonim(string $kata): array {
  23. return $this->data[$kata] ?? [];
  24. }
  25.  
  26. public function tampilkanSemua(): void {
  27. foreach ($this->data as $kata => $sinonim) {
  28. echo "Sinonim dari '$kata':\n";
  29. print_r($sinonim);
  30. echo "\n";
  31. }
  32. }
  33. }
  34.  
  35. // Contoh data awal kamus
  36. $kamus = new Kamus();
  37. $kamus->tambah('big', ['large', 'great', 'huge', 'fat']);
  38. $kamus->tambah('huge', ['enormous', 'gigantic', 'massive']);
  39. $kamus->tambah('gigantic', ['enormous', 'massive']);
  40. $kamus->tambah('smart', ['intelligent', 'clever', 'bright', 'brilliant']);
  41. $kamus->tambah('happy', ['joyful', 'cheerful', 'content', 'pleased']);
  42. $kamus->tambah('sad', ['unhappy', 'sorrowful', 'depressed', 'melancholy']);
  43. $kamus->tambah('fast', ['quick', 'rapid', 'speedy', 'swift']);
  44. $kamus->tambah('slow', ['sluggish', 'unhurried', 'lethargic', 'lagging']);
  45. $kamus->tambah('beautiful', ['pretty', 'lovely', 'gorgeous', 'attractive']);
  46. $kamus->tambah('angry', ['mad', 'furious', 'irate', 'livid']);
  47.  
  48.  
  49. //contoh program eksekusi
  50. echo "Masukkan kata yang ingin dicari sinonimnya (atau kosongkan input untuk menampilkan semuanya): \n";
  51. //JIKA INPUT KOSONG MAKA AKAN MENAMPILKAN SELURUH ENTRI DALAM KAMUS
  52. $input = trim(fgets(STDIN));
  53.  
  54. if ($input === '') {
  55. echo "\nMenampilkan semua entri dalam kamus:\n\n";
  56. $kamus->tampilkanSemua();
  57. } else {
  58. $hasil = $kamus->ambilSinonim($input);
  59. echo "Sinonim dari '$input':\n";
  60. if (empty($hasil)) {
  61. echo null;
  62. } else {
  63. print_r($hasil);
  64. }
  65. }
  66.  
Success #stdin #stdout 0.04s 26148KB
stdin
Standard input is empty
stdout
Masukkan kata yang ingin dicari sinonimnya (atau kosongkan input untuk menampilkan semuanya): 

Menampilkan semua entri dalam kamus:

Sinonim dari 'big':
Array
(
    [0] => large
    [1] => great
    [2] => huge
    [3] => fat
)

Sinonim dari 'large':
Array
(
    [0] => big
)

Sinonim dari 'great':
Array
(
    [0] => big
)

Sinonim dari 'huge':
Array
(
    [0] => big
    [1] => enormous
    [2] => gigantic
    [3] => massive
)

Sinonim dari 'fat':
Array
(
    [0] => big
)

Sinonim dari 'enormous':
Array
(
    [0] => huge
    [1] => gigantic
)

Sinonim dari 'gigantic':
Array
(
    [0] => huge
    [1] => enormous
    [2] => massive
)

Sinonim dari 'massive':
Array
(
    [0] => huge
    [1] => gigantic
)

Sinonim dari 'smart':
Array
(
    [0] => intelligent
    [1] => clever
    [2] => bright
    [3] => brilliant
)

Sinonim dari 'intelligent':
Array
(
    [0] => smart
)

Sinonim dari 'clever':
Array
(
    [0] => smart
)

Sinonim dari 'bright':
Array
(
    [0] => smart
)

Sinonim dari 'brilliant':
Array
(
    [0] => smart
)

Sinonim dari 'happy':
Array
(
    [0] => joyful
    [1] => cheerful
    [2] => content
    [3] => pleased
)

Sinonim dari 'joyful':
Array
(
    [0] => happy
)

Sinonim dari 'cheerful':
Array
(
    [0] => happy
)

Sinonim dari 'content':
Array
(
    [0] => happy
)

Sinonim dari 'pleased':
Array
(
    [0] => happy
)

Sinonim dari 'sad':
Array
(
    [0] => unhappy
    [1] => sorrowful
    [2] => depressed
    [3] => melancholy
)

Sinonim dari 'unhappy':
Array
(
    [0] => sad
)

Sinonim dari 'sorrowful':
Array
(
    [0] => sad
)

Sinonim dari 'depressed':
Array
(
    [0] => sad
)

Sinonim dari 'melancholy':
Array
(
    [0] => sad
)

Sinonim dari 'fast':
Array
(
    [0] => quick
    [1] => rapid
    [2] => speedy
    [3] => swift
)

Sinonim dari 'quick':
Array
(
    [0] => fast
)

Sinonim dari 'rapid':
Array
(
    [0] => fast
)

Sinonim dari 'speedy':
Array
(
    [0] => fast
)

Sinonim dari 'swift':
Array
(
    [0] => fast
)

Sinonim dari 'slow':
Array
(
    [0] => sluggish
    [1] => unhurried
    [2] => lethargic
    [3] => lagging
)

Sinonim dari 'sluggish':
Array
(
    [0] => slow
)

Sinonim dari 'unhurried':
Array
(
    [0] => slow
)

Sinonim dari 'lethargic':
Array
(
    [0] => slow
)

Sinonim dari 'lagging':
Array
(
    [0] => slow
)

Sinonim dari 'beautiful':
Array
(
    [0] => pretty
    [1] => lovely
    [2] => gorgeous
    [3] => attractive
)

Sinonim dari 'pretty':
Array
(
    [0] => beautiful
)

Sinonim dari 'lovely':
Array
(
    [0] => beautiful
)

Sinonim dari 'gorgeous':
Array
(
    [0] => beautiful
)

Sinonim dari 'attractive':
Array
(
    [0] => beautiful
)

Sinonim dari 'angry':
Array
(
    [0] => mad
    [1] => furious
    [2] => irate
    [3] => livid
)

Sinonim dari 'mad':
Array
(
    [0] => angry
)

Sinonim dari 'furious':
Array
(
    [0] => angry
)

Sinonim dari 'irate':
Array
(
    [0] => angry
)

Sinonim dari 'livid':
Array
(
    [0] => angry
)