private void runFriendRecommendation() { System.Console.WriteLine("Friend Recommendation Running"); listBoxFriend.Items.Clear(); string selectedAcc = comboBoxAcc.Items[comboBoxAcc.SelectedIndex].ToString(); FriendRecommendation friendRecom = new FriendRecommendation(); IList <Tuple <string, HashSet <string> > > daftarRecom = friendRecom.getFriendRecommendation(graf, selectedAcc); if (daftarRecom.Count == 0) { listBoxFriend.Items.Add("Tidak ada friend recommendation"); } foreach (var recom in daftarRecom) { //BFS ExploreFriendBFS eksplorasiBFS = new ExploreFriendBFS(); //Ambil dari daftar rekomendasi List <string> tempList = new List <string>(); string[] tetangga = graf.getMap()[selectedAcc].Split(' '); string namaRecom = recom.Item1; HashSet <string> daftarMutual = recom.Item2; //syarat belum menjadi teman dan bukan dirinya sendiri if (!Array.Exists(tetangga, element => element == namaRecom) && namaRecom != selectedAcc) { listBoxFriend.Items.Add(namaRecom); if (selectedAcc != namaRecom) { eksplorasiBFS.bfs(graf, selectedAcc, namaRecom); eksplorasiBFS.tampilkanHasil(); string[] rute = eksplorasiBFS.getHasil().ToArray(); for (int i = 0; i < rute.Length; i++) { graph.FindNode(rute[i]).Attr.FillColor = Microsoft.Msagl.Drawing.Color.Green; } listBoxFriend.Items.Add(tampilkanHasil(eksplorasiBFS.getHasil()) + ", derajat pertemanan: " + eksplorasiBFS.getDerajat().ToString()); } foreach (string nama in daftarMutual) { tempList.Add(nama); } string[] tempArr = tempList.ToArray(); string outTetangga = tempArr.Length.ToString() + " Mutual friends: " + string.Join(" ", tempArr); listBoxFriend.Items.Add(outTetangga); listBoxFriend.Items.Add(" "); } } }
private void warnaiGraph() { labelDerajatKoneksi.Text = ""; labelJalur.Text = ""; string[] list_simpul = graf.getDaftarSimpul(); string selectedAcc = comboBoxAcc.Items[comboBoxAcc.SelectedIndex].ToString(); string targetAcc = comboBoxTarget.Items[comboBoxTarget.SelectedIndex].ToString(); foreach (var simpul in list_simpul) { graph.FindNode(simpul).Attr.FillColor = Microsoft.Msagl.Drawing.Color.White; } if (checkBoxBFS.Checked) { //BFS System.Console.WriteLine("Menggunakan BFS"); ExploreFriendBFS eksplorasiBFS = new ExploreFriendBFS(); /* * try * { * eksplorasiBFS.bfs(graf, "A", "W"); * eksplorasiBFS.tampilkanHasil(); * eksplorasiBFS.tampilkanDerajat(); * } * catch (Exception ex) * { * System.Console.WriteLine(ex); * System.Console.WriteLine("Tidak ada jalur koneksi yang tersedia"); * System.Console.WriteLine("Anda harus memulai koneksi baru itu sendiri."); * } */ try { if (selectedAcc != targetAcc) { eksplorasiBFS.bfs(graf, selectedAcc, targetAcc); eksplorasiBFS.tampilkanHasil(); string[] rute = eksplorasiBFS.getHasil().ToArray(); for (int i = 0; i < rute.Length; i++) { graph.FindNode(rute[i]).Attr.FillColor = Microsoft.Msagl.Drawing.Color.Green; } tampilkanHasil(eksplorasiBFS.getHasil()); labelDerajatKoneksi.Text = eksplorasiBFS.getDerajat().ToString(); } else { MessageBox.Show("Tidak ada jalur koneksi yang tersedia", "Not Found!", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { MessageBox.Show("Tidak ada jalur koneksi yang tersedia", "Not Found!", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Console.WriteLine(ex); } } else { //DFS System.Console.WriteLine("Menggunakan DFS"); ExploreFriendDFS eksplorasiDFS = new ExploreFriendDFS(); try { string[] rute = eksplorasiDFS.getConnection(graf, selectedAcc, targetAcc); for (int i = 0; i < rute.Length; i++) { graph.FindNode(rute[i]).Attr.FillColor = Microsoft.Msagl.Drawing.Color.Green; } labelDerajatKoneksi.Text = eksplorasiDFS.getDegreeConnection(graf, selectedAcc, targetAcc).ToString(); List <string> ruteList = rute.ToList(); tampilkanHasil(ruteList); } catch (Exception ex) { MessageBox.Show("Tidak ada jalur koneksi yang tersedia", "Not Found!", MessageBoxButtons.OK, MessageBoxIcon.Error); System.Console.WriteLine(ex); } } gViewer1.Graph = graph; }