static void Main(string[] args)
        {
            FakeGraph fg  = new FakeGraph();
            string    pil = "n";

            while ((!pil.Equals("x")) || (!pil.Equals("X")))
            {
                Console.WriteLine("1. Insert Kota");
                Console.WriteLine("2. Insert Relasi");
                Console.WriteLine("3. Lihat Tetangga");
                Console.WriteLine("4. Lihat Seluruh Kota");
                Console.WriteLine("5. Hapus Kota");
                Console.WriteLine("6. Hapus Relasi");
                Console.WriteLine("7. Telusuri BFS");
                Console.WriteLine("8. Telusuri DFS");
                Console.WriteLine("9. Isi data");
                Console.WriteLine("10. Search dengan DFS");
                Console.WriteLine("11. Search dengan BFS");
                Console.WriteLine("X. Exit");
                Console.WriteLine("Pilihan anda     :");
                pil = Console.ReadLine();
                if ((pil.Equals("x")) || (pil.Equals("X")))
                {
                    Console.WriteLine("Makasih gan!");
                    break;
                }
                switch (pil)
                {
                case "1":
                {
                    string namakota;
                    Console.WriteLine("Masukkan Nama Kota   :");
                    namakota = Console.ReadLine();
                    fg.insertParentNode(namakota);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "2":
                {
                    string ks, kd, tempjarak;
                    int    jarak;
                    Console.WriteLine("Masukkan Nama Kota 1 :");
                    ks = Console.ReadLine();
                    Console.WriteLine("Masukkan Nama Kota 2 :");
                    kd = Console.ReadLine();
                    Console.WriteLine("Masukkan Jarak antara Kota 1 dan Kota 2  :");
                    tempjarak = Console.ReadLine();
                    int.TryParse(tempjarak, out jarak);
                    fg.insertRelation(ks, kd, jarak);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "3":
                {
                    string namakota;
                    Console.WriteLine("Masukkan Nama Kota   :");
                    namakota = Console.ReadLine();
                    fg.viewTetangga(namakota);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "4":
                {
                    fg.tampilkanSemuaKota();
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "5":
                {
                    string namakota;
                    Console.WriteLine("Masukkan Nama Kota   :");
                    namakota = Console.ReadLine();
                    fg.deleteParentNode(namakota);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "6":
                {
                    string ks, kd;
                    Console.WriteLine("Masukkan Nama Kota 1 :");
                    ks = Console.ReadLine();
                    Console.WriteLine("Masukkan Nama Kota 2 :");
                    kd = Console.ReadLine();
                    fg.deleteRelasi(ks, kd);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "7":
                {
                    string namakota;
                    Console.WriteLine("Masukkan Nama Kota   :");
                    namakota = Console.ReadLine();
                    if (fg.cekada(namakota))
                    {
                        BFSTraversal(fg, namakota);
                    }
                    else
                    {
                        Console.WriteLine("Nama kota {0} tidak ditemukan dalam graph", namakota);
                    }
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "8":
                {
                    string namakota;
                    Console.WriteLine("Masukkan Nama Kota   :");
                    namakota = Console.ReadLine();
                    if (fg.cekada(namakota))
                    {
                        DFSTraversal(fg, namakota);
                    }
                    else
                    {
                        Console.WriteLine("Nama kota {0} tidak ditemukan dalam graph", namakota);
                    }
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "9":
                {
                    isidata(fg);
                    Console.WriteLine("Done!");
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "10":
                {
                    string ks, kd;
                    Console.WriteLine("Masukkan Nama Kota Asal :");
                    ks = Console.ReadLine();
                    Console.WriteLine("Masukkan Nama Kota Target :");
                    kd = Console.ReadLine();
                    DFS(fg, ks, kd);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }

                case "11":
                {
                    string ks, kd;
                    Console.WriteLine("Masukkan Nama Kota Asal :");
                    ks = Console.ReadLine();
                    Console.WriteLine("Masukkan Nama Kota Target :");
                    kd = Console.ReadLine();
                    BFS(fg, ks, kd);
                    Console.ReadLine();
                    Console.Clear();
                    break;
                }
                }
            }
        }
        static void Main(string[] args)
        {
            FakeGraph fg = new FakeGraph();
            string pil = "n";
            while ((!pil.Equals("x"))||(!pil.Equals("X")))
            {
                Console.WriteLine("1. Insert Kota");
                Console.WriteLine("2. Insert Relasi");
                Console.WriteLine("3. Lihat Tetangga");
                Console.WriteLine("4. Lihat Seluruh Kota");
                Console.WriteLine("5. Hapus Kota");
                Console.WriteLine("6. Hapus Relasi");
                Console.WriteLine("7. Telusuri BFS");
                Console.WriteLine("8. Telusuri DFS");
                Console.WriteLine("9. Isi data");
                Console.WriteLine("10. Search dengan DFS");
                Console.WriteLine("11. Search dengan BFS");
                Console.WriteLine("X. Exit");
                Console.WriteLine("Pilihan anda     :");
                pil = Console.ReadLine();
                if ((pil.Equals("x")) || (pil.Equals("X")))
                {
                    Console.WriteLine("Makasih gan!");
                    break;
                }
                switch (pil)
                {
                    case "1":
                        {
                            string namakota;
                            Console.WriteLine("Masukkan Nama Kota   :");
                            namakota = Console.ReadLine();
                            fg.insertParentNode(namakota);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "2":
                        {
                            string ks, kd, tempjarak;
                            int jarak;
                            Console.WriteLine("Masukkan Nama Kota 1 :");
                            ks = Console.ReadLine();
                            Console.WriteLine("Masukkan Nama Kota 2 :");
                            kd = Console.ReadLine();
                            Console.WriteLine("Masukkan Jarak antara Kota 1 dan Kota 2  :");
                            tempjarak = Console.ReadLine();
                            int.TryParse(tempjarak, out jarak);
                            fg.insertRelation(ks, kd, jarak);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "3":
                        {
                            string namakota;
                            Console.WriteLine("Masukkan Nama Kota   :");
                            namakota = Console.ReadLine();
                            fg.viewTetangga(namakota);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "4":
                        {
                            fg.tampilkanSemuaKota();
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "5":
                        {
                            string namakota;
                            Console.WriteLine("Masukkan Nama Kota   :");
                            namakota = Console.ReadLine();
                            fg.deleteParentNode(namakota);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "6":
                        {
                            string ks,kd;
                            Console.WriteLine("Masukkan Nama Kota 1 :");
                            ks = Console.ReadLine();
                            Console.WriteLine("Masukkan Nama Kota 2 :");
                            kd = Console.ReadLine();
                            fg.deleteRelasi(ks, kd);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "7":
                        {
                            string namakota;
                            Console.WriteLine("Masukkan Nama Kota   :");
                            namakota = Console.ReadLine();
                            if (fg.cekada(namakota))
                            {
                                BFSTraversal(fg, namakota);
                            }
                            else
                            {
                                Console.WriteLine("Nama kota {0} tidak ditemukan dalam graph",namakota);
                            }
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "8":
                        {
                            string namakota;
                            Console.WriteLine("Masukkan Nama Kota   :");
                            namakota = Console.ReadLine();
                            if (fg.cekada(namakota))
                            {
                                DFSTraversal(fg, namakota);
                            }
                            else
                            {
                                Console.WriteLine("Nama kota {0} tidak ditemukan dalam graph", namakota);
                            }
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "9":
                        {
                            isidata(fg);
                            Console.WriteLine("Done!");
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "10":
                        {
                            string ks, kd;
                            Console.WriteLine("Masukkan Nama Kota Asal :");
                            ks = Console.ReadLine();
                            Console.WriteLine("Masukkan Nama Kota Target :");
                            kd = Console.ReadLine();
                            DFS(fg, ks, kd);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                    case "11":
                        {
                            string ks, kd;
                            Console.WriteLine("Masukkan Nama Kota Asal :");
                            ks = Console.ReadLine();
                            Console.WriteLine("Masukkan Nama Kota Target :");
                            kd = Console.ReadLine();
                            BFS(fg, ks, kd);
                            Console.ReadLine();
                            Console.Clear();
                            break;
                        }
                }

            }
        }