Jurnal AAN BFS Dan DFS 2
Jurnal AAN BFS Dan DFS 2
php/jicom/
ABSTRACT
BFS and DFS are effective and efficient algorithms. By using these two methods players can
find the optimal solution to solve the game 'Missionaries and Cannibals". This research was
conducted with a quantitative approach, applying the BFS and DFS algorithms. This research
produces a tree and state graph that contains a sequence of steps in solving the game. Analysis
of the sample data used is supported by testing the performance of BFS and DFS. From the
results of this research, it can be developed to analyze sudoku games for the next time.
Keywords: Breadth First Search (BFS),Deepth First Search (DFS), game, problem solving,
analyst, Artificial Intelligence.
ABSTRAK
BFS dan DFS merupakan algoritma yang efektif dan efisien. Dengan menggunakan kedua
metode ini pemain dapat menemukan solusi optimal untuk menyelesaikan permainan
'Misionaris dan Kanibal". Penelitian ini dilakukan dengan pendekatan kuantitatif, dengan
menerapkan algoritma BFS dan DFS. Penelitian ini menghasilkan sebuah tree dan state graph
yang berisi urutan langkah-langkah dalam menyelesaikan permainan. Analisis terhadap data
sampel yang digunakan didukung dengan pengujian performa BFS dan DFS. Dari hasil
penelitian ini, dapat dikembangkan untuk menganalisis permainan sudoku untuk waktu
berikutnya.
Kata kunci: Breadth First Search (BFS), Deepth First Search (DFS), permainan, pencarian
solusi, Analisis , Kecerdasan Buatan.
pemikiran strategis yang mendalam dalam BFS dan DFS dalam konteks pencarian
menemukan solusi yang mematuhi aturan. solusi pada permainan "Missionaries and
Cannibals" serta bagaimana keduanya
dapat menjadi alat yang efektif dalam
2.2 Teknik Pengumpulan Data: mengejar solusi dalam
permasalahan serupa.
Proses analisis dalam penelitian ini
dilakukan dengan menggunakan grafik dan HASIL DAN PEMBAHASAN
pohon sebagai representasi data awal yang 3.1 Graph Pencarian Solusi
akan kami proses. Data ini akan mencakup
state awal permainan, operator-operasi Dalam permainan "Missionaries and
yang memungkinkan perubahan state, dan Cannibal," kita dihadapkan dengan
tujuan akhir yang harus dicapai dalam tantangan yang melibatkan 3 misionaris
permainan. Kami akan mendapatkan data dan 3 kanibal yang harus dipindahkan dari
ini melalui simulasi komputer yang telah hulu ke hilir sungai menggunakan perahu.
kami kembangkan, yang akan merekam Peraturan permainan yang ketat mengatur
langkah-langkah yang diperlukan untuk bahwa perahu tidak dapat bergerak tanpa
menyelesaikan permainan menggunakan penumpang, dan perahu hanya mampu
kedua metode, yaitu BFS dan DFS. Data membawa maksimal 2 penumpang
ini akan mencakup informasi tentang sekaligus. Lebih penting lagi, jika ada
urutan langkah yang diambil, waktu yang lebih banyak kanibal daripada misionaris
dibutuhkan oleh masing-masing metode, di satu sisi sungai, maka kanibal akan
serta kemungkinan jalur-jalur yang telah memakan misionaris, yang akan
dieksplorasi oleh kedua metode. menyebabkan berakhirnya permainan.
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
4
Muhammad Anshori Harahap1
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
'13': [],
'14': ['15','16','17','18'],
'15': [],
'16': [],
'17': ['19','20','21','22'],
Output:
'18': [],
'19': [],
'20': [],
'21': ['23','24','25'],
'22': [],
'23': ['26','21'],
'24': [],
'25': [],
'26': ['27','28','29','30'],
'27': ['31'],
3.3 Hasil Penerapan DFS
'28': ['31'],
'29': [], Berikut hasil penerapan DFS sebagai
'30': [],
berikut:
'31': []
} # Using a Python dictionary to
act as an adjacency list
visited = [] # List for visited graph = {
nodes. '1' : ['2','3','4','5','6'],
queue = [] #Initialize a '2' : [],
queue '3' : [],
'4' : ['7', '8'],
def bfs(visited, graph, node): '5' : [],
#function for BFS '6' : ['8'],
visited.append(node) '7' : [],
queue.append(node) '8' : ['9'],
'9' : ['10','11'],
while queue: # '10': ['12','13','14'],
Creating loop to visit each node '11': [],
m = queue.pop(0) '12': [],
print (m, end = " ") '13': [],
'14': ['15','16','17','18'],
for neighbour in graph[m]: '15': [],
if neighbour not in '16': [],
visited: '17': ['19','20','21','22'],
visited.append(neighbour) '18': [],
queue.append(neighbour) '19': [],
'20': [],
# Driver Code '21': ['23','24','25'],
print("Following is the Breadth- '22': [],
First Search") '23': ['26','21'],
bfs(visited, graph, '1') # '24': [],
function calling
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
5
Muhammad Anshori Harahap1
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
mm/2017/10/pengertian-metode-
pencarian-bfs-dan-dfs.html
Daniel, James W. “Problem-Solving
Problems.” Interdisciplinary
Science Reviews, vol. 10, no. 1,
2012, pp. 13–14,
https://doi.org/10.1179/030801885
789800311.
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
8
Muhammad Anshori Harahap1
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
Jurnal J-COM (Jurnal Informatika dan Teknologi Komputer) Vol. 02 No. 01 (2021) xx – xx
9