fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. public static void Main()
  6. {
  7. Kamus kamus = new Kamus();
  8. kamus.TambahKata("Besar", new List<string> { "Gede", "Agung" });
  9. kamus.TambahKata("Kecil", new List<string> { "Cilik", "Mini", "Pendek" });
  10. kamus.TambahKata("Besar", new List<string> { "Luas", "Panjang" });
  11.  
  12. Console.Write("Masukkan kata untuk mencari sinonim: ");
  13. string input = Console.ReadLine() ?? string.Empty;
  14. List<string>? sinonim = kamus.CariSinonim(input);
  15. string result = sinonim != null ? string.Join(", ", sinonim) : "Tidak ditemukan";
  16. Console.WriteLine($"Sinonim dari kata {input} adalah : { result}");
  17. }
  18.  
  19. class Kamus
  20. {
  21. private Dictionary<string, List<string>> data;
  22.  
  23. public Kamus()
  24. {
  25. data = new Dictionary<string, List<string>>();
  26. }
  27.  
  28. public void TambahKata(string kata, List<string> sinonim)
  29. {
  30. if (!data.ContainsKey(kata))
  31. {
  32. data[kata] = new List<string>();
  33. }
  34.  
  35. data[kata].AddRange(sinonim);
  36. }
  37.  
  38. public List<string>? CariSinonim(string kata)
  39. {
  40. if (data.ContainsKey(kata))
  41. {
  42. return data[kata].ToList();
  43. }
  44.  
  45. foreach (var item in data)
  46. {
  47. if (item.Value.Contains(kata))
  48. {
  49. return new List<string> { item.Key }
  50. .Concat(item.Value.Where(x => x != kata))
  51. .ToList();
  52. }
  53. }
  54.  
  55. return null;
  56. }
  57. }
  58. }
  59.  
Success #stdin #stdout 0.06s 27276KB
stdin
Besar
stdout
Masukkan kata untuk mencari sinonim: Sinonim dari kata Besar adalah : Gede, Agung, Luas, Panjang