• Tidak ada hasil yang ditemukan

Makalah Bfs,Dfs, Dan Ucs

N/A
N/A
Protected

Academic year: 2021

Membagikan "Makalah Bfs,Dfs, Dan Ucs"

Copied!
10
0
0

Teks penuh

(1)

PENERAPANAN ALGORITMA BFS, DFS, PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH

DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIAROMANIA

1. PENDAHULUAN 1. PENDAHULUAN

Pada zaman serba modern ini, peta masih Pada zaman serba modern ini, peta masih digunakan oleh kebanyakan orang untuk digunakan oleh kebanyakan orang untuk menuju dari suatu titik awal ke titik tujuan. menuju dari suatu titik awal ke titik tujuan. Lintasan yang dipilih untuk menuju titik Lintasan yang dipilih untuk menuju titik tujuan pastilah lintasan yang paling tujuan pastilah lintasan yang paling pendek. Namun, pencarian lintasan pendek. Namun, pencarian lintasan terpendek secara manual, akan terpendek secara manual, akan membutuhkan waktu yang banyak dan membutuhkan waktu yang banyak dan ketelitian lebih untuk mencapainya.

ketelitian lebih untuk mencapainya.

Masalah lintasan terpendek berkaitan Masalah lintasan terpendek berkaitan dengan pencarian lintasan pada graf dengan pencarian lintasan pada graf berbobot yang menghubungkan dua buah berbobot yang menghubungkan dua buah simpul (

simpul (edge)edge)   sedemikian sedemikian sehinggasehingga  jumlah

 jumlah bobot bobot pada pada sisi-sisi sisi-sisi yang yang terpilihterpilih merupakan bobot minimum. Terdapat merupakan bobot minimum. Terdapat banyak algoritma yang dapat digunakan banyak algoritma yang dapat digunakan untuk pemecahan masalah dalam untuk pemecahan masalah dalam pencarian lintasan terpendek. Pemilihan pencarian lintasan terpendek. Pemilihan algoritma yang paling optimal seringkali algoritma yang paling optimal seringkali menjadi permasalahan dalam pencarian menjadi permasalahan dalam pencarian lintasan terpendek karena setiap

lintasan terpendek karena setiap algoritmaalgoritma memiliki kelebihan dan kekurangannya memiliki kelebihan dan kekurangannya masing-masin

masing-masing g [1].[1].

Secara umum, algoritma pencarian dapat Secara umum, algoritma pencarian dapat dibedakan menjadi dua metode yaitu, dibedakan menjadi dua metode yaitu, metode uninformed search dan metode metode uninformed search dan metode informed search. Metode uninformed informed search. Metode uninformed search merupakan metode matematika search merupakan metode matematika biasa dengan informasi yang jelas, biasa dengan informasi yang jelas, sedangkan metode informed search sedangkan metode informed search merupakan metode pencarian yang merupakan metode pencarian yang menggunakan metode pendekatan pada menggunakan metode pendekatan pada proses pencariannya [2].

proses pencariannya [2].

Pada tulisan ini, akan dibahas bagaimana Pada tulisan ini, akan dibahas bagaimana menemukan solusi dalam pencarian menemukan solusi dalam pencarian lintasan terpendek dari kasus romania lintasan terpendek dari kasus romania dengan menggunakan algoritma dengan menggunakan algoritma pencarian

pencarian Breadth Fisrt Search (BFS),Breadth Fisrt Search (BFS), Depth First Search (DFS)

Depth First Search (DFS)  dan  dan UniformUniform Cost Search (UCS)

Cost Search (UCS)  sehingga diperoleh  sehingga diperoleh

kota-kota mana saja yang harus dilalui kota-kota mana saja yang harus dilalui dalam menentukan lintasan terpendek dari dalam menentukan lintasan terpendek dari suatu kasus.

suatu kasus. 2.

2. TINJAUAN TINJAUAN PUSTAKAPUSTAKA

Beberapa dasar teori yang menjadi Beberapa dasar teori yang menjadi landasan penulisan, yaitu

landasan penulisan, yaitu searchsearch, metode, metode uninformed search, teori graf, algoritma uninformed search, teori graf, algoritma Breath First Search (BFS),

Breath First Search (BFS), Depth FirstDepth First Search (DFS),

Search (DFS),  dan  dan Uniform Cost SearchUniform Cost Search (UCS)

(UCS)  yang akan digunakan untuk  yang akan digunakan untuk menyelesaikan permasalahan.

menyelesaikan permasalahan. 2.1 Search

2.1 Search

Menurut Luger (2005),

Menurut Luger (2005), searchsearch adalahadalah sebuah teknik menyelesaikan masalah sebuah teknik menyelesaikan masalah (( problem  problem solving solving ) yang mengembangkan) yang mengembangkan sebuah ruang permasalahan secara sebuah ruang permasalahan secara sistematik dalam sebuah proses.

sistematik dalam sebuah proses. TerdapatTerdapat 4 kriteria untuk menentukan performa 4 kriteria untuk menentukan performa sebuah metode pencarian, yaitu sebuah metode pencarian, yaitu Completeness, Time Complexity, Space Completeness, Time Complexity, Space Complexity,

Complexity, dandan Optimality. Optimality. CompleteneCompletenessss adalah apakah metode tersebut

adalah apakah metode tersebut menjaminmenjamin ditemukannya solusi jika solusi tersebut ditemukannya solusi jika solusi tersebut ada.

ada. Time ComplexityTime Complexity adalah lama waktuadalah lama waktu yang

yang dibutuhkan untuk menemukan solusidibutuhkan untuk menemukan solusi tersebut.

tersebut. Space ComplexitySpace Complexity adalah jumlahadalah jumlah memory yang

memory yang diperlukan dan yangdiperlukan dan yang dimaksud

dimaksud OptimalityOptimality adalah adalah apakahapakah metode tersebut menjamin menemukan metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi yang terbaik jika terdapat beberapa solusi

solusi yang yang lain lain [3].[3].

Metode pencarian dibagi menjadi dua Metode pencarian dibagi menjadi dua strategi, yaitu

strategi, yaitu uninformed searchuninformed search dandan informed search

informed search.. Uninformed Uninformed searchsearch merupakan suatu strategi pencarian tanpa merupakan suatu strategi pencarian tanpa ada informasi mengenai

ada informasi mengenai costcost (bobot) atau(bobot) atau informasi tertentu sedangkan

informasi tertentu sedangkan InformedInformed search

search merupakan merupakan suatu suatu strategistrategi pencarian yang

(2)

mengenai cost (bobot) atau informasi tertentu [3].

2.2 Metode

Uninformed S earch

Metode Uninformed Search sering disebut  juga dengan Blind Search. Istilah tersebut menggambarkan bahwa teknik pencarian ini tidak memiliki informasi tambahan mengenai kondisi diluar dari yang disediakan oleh definisi masalah. Metode uninformed search terdiri atas Breath First Search (BFS), Depth First Search (DFS), Uniform Cost Search (UCS), Depth-Limited Search (DLS), Interative-Deeping Search (IDS)  dan Bi-directional Search (BDS) [4].

2.3 Teori Graf

Beberapa terminology graf yang dibahas adalah verteks, edge, graf tidak berarah, graf berarah, graf berbobot, dan  path (lintasan).

Verteks merupakan titik atau node yang menunjukkan tempat yang dijadikan sebagai goal atau tujuan, start atau awal, atau tempat yang akan dilalui dalam suatu perjalanan. Edge merupakan garis penghubung antar verteks[5].

Graf tidak berarah  (undirected graf) merupakan graf yang tidak memiliki arah dan anak panah sehingga dapat dilalui oleh dua arah yang berlawanan. Graf berarah (directed graf) merupakan graf yang memiliki arah dan biasanya ditunjukkan dengan sebuah anak panah dengan salah satu ujungnya disebut tail (ekor) dan head (kepala). Graf berarah tidak dapat dilewati oleh dua arah yang berbeda. Graf berbobot merupakan graf yang memiliki bobot atau nilai di setiap edge-nya dan dapat berupa graf berarah maupun graf  yang tidak berarah. Path (lintasan) merupakan suatu lintasan yang melalui verteks dan edge dimana  verteks tidak boleh dilewati lebih dari satu kali [5].

2.4 Algoritma Pencarian

  Breadth-First

 S earch

 Algoritma Breadth-First Search (BFS) atau algoritma pencarian melebar merupakan pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal).  Algoritma BFS memerlukan sebuah antrian (queue) untuk menyimpan simpul yang telah dikunjungi [6].

Gambar 1 diagram alur penyelesaian masalah metode BFS

Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma BFS [7]:

1. Masukan simpul akar(root) ke dalam antrian.

2. Keluarkan sebuah simpul dari antrian.

3. Kunjungi semua tetangga dari simpul ini yang belum pernah dikunjungi sebelumnya. Masukan  juga simpul-simpul tetangga ini ke

dalam antrian.

4. Jika antrian telah kosong maka penelusuran telah selesai. Jika

(3)

antrian masih ada, ulangi langkah nomor 2.

Berikut ini adalah  pseudocode

penelusuran graf dengan BFS. procedure BFS(G,v)

{ Traversal graf dengan algoritma pencarian BFS.

Masukan : G adalah graf, v adalah simpul awal kunjungan

Keluaran : semua simpul yang dikunjungi dicetak ke layar } Deklarasi w : integer q : antrian procedure BuatAntrian(input/output q: antrian)

{ membuat antrian kosong, kepala(q) diisi 0 }

procedure MasukAntrian(input/output q:antrian, input v:integer)

{ memasukkan v ke dalam antrian q pada posisi belakang }

procedure HapusAntrian(input/output q:antrian, output v:integer)

{ menghapus v dari kepala antrian q }

function AntrianKosong(input q:antrian) → boolean

{ true jika antrian q kosong, false jika sebaliknya }

Algoritma

BuatAntrian(q) { buat antrian kosong }

write(v) { cetak simpul awal yang dikunjungi }

dikunjungi[v] ← true { simpul v telah dikunjungi, tandai dengan true}

MasukAntrian(q,v) { masukkan simpul awal kunjungan ke dalam antrian}

{kunjungi semua simpul graf selama antrian belum kosong }

while not AntrianKosong(q) do

HapusAntrian(q,v) { simpul v telah dikunjungi, hapus dari antrian }

for tiap simpul w yang bertetangga dengan simpul v do

if not dikunjungi[w] then

write(w) {cetak simpul yang dikunjungi} MasukAntrian(q,w) dikunjungi[w]← true endif endfor endwhile { AntrianKosong(q) }

Kelebihan dan kekurangan algoritma BFS yaitu [8] :

- Kelebihan Algoritma Breadth First Search  adalah : pasti menemukan solusi yang dicari, tidak akan mengalami jalan buntu / tidak menemukan solusi.

- Kelemahan Algoritma Breadth-First Search  adalah : memerlukan memori yang cukup besar, karena metode ini mengecek keseluruhan node yang ada dan membutuhkan waktu yang lebih untuk mengecek semua node yang ada tersebut.

2.5 Algoritma Pencarian

Depth-First

 S earch

 Algoritma Depth-First Search (DFS) atau algoritma pencarian mendalam juga merupakan pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan  jalur yang dinginkan)[6].

(4)

Gambar 2 diagram alur penyelesaian masalah metode DFS

 Algoritma DFS secara alami meng-gunakan rekursif dalam implementasinya. Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma DFS [7].

1. Kunjungi simpul akar(root).

2. Untuk sebuah tetangga dari simpul ini yang belum pernah dikunjungi sebelumnya, anggap simpul ini sebagai akar untuk melakukan DFS pada langkah 1.

3. Jika sudah tidak terdapat tetangga yang belum pernah dikunjungi lagi, lakukan runut balik ke simpul yang telah dikunjungi sebelumnya.

4. Penelusuran berhenti ketika simpul awal dari DFS ini sudah tidak mempunyai tetangga yang belum pernah dikunjungi.

Berikut ini adalah  pseudocode penelusuran graf dengan DFS.

procedure DFS(input v:integer)

{Mengunjungi seluruh simpul graf dengan algoritma pencarian DFS

Masukan: v adalah simpul awal kunjungan

Keluaran: semua simpul yang dikunjungi ditulis ke layar

} Deklarasi w : integer Algoritma write(v) dikunjungi[v]  true

for setiap simpul w yang bertetangga dengan simpul v do

if not dikunjungi[w] then

DFS(w)

endif

endfor

Kelebihan dan Kekurangan Algoritma Depth First Search (DFS) yaitu [8]:

Kelebihan Algoritma Depth First Search

 Memori yang relatif kecil

 Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi

Kekurangan Algoritma Depth First Search

 Memungkinkan tidak ditemukan-nya tujuan yang diharapkan

  Hanya akan mendapatkan 1 solusi pada setiap pencarian

2.6 Algoritma Pencarian

  Uniform Cost

 S earch

Uniform Cost Search  adalah algoritma Seach Tree (graph) yang digunakan untuk menyelesaikan beberapa persoalan.  Algoritma ini memulai pencarian dari root node, kemudian dilanjutkan ke node-node selanjutnya. Dimana node tersebut dipilih yang memilki harga (cost ) terkecil dari root node. Algoritma ini merupakan modifikasi dari Breadth First Searc h (BFS). Dalam implementasi algoritma ini melibatkan semua node yang berhubungan dengan root node dan meletaknnya dalam priority queue untuk mencapai node tujuan.

(5)

dimana node-node yang dipilih merupakan node yang memiliki harga paling kecil [9]. Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma ucs [10]:

1. initial state terletak pada node start atau simpul akar. Maka langka pertama kunjungi simpu akar (root).

2. kemudian untuk mencapai node berikutnya, algoritma ini memilih total Cost yang paling kecil dari beberapa kemungkinan Total Cost yang dilalui state. Maka, Total Aksi adalah Total Cost

3. Begitu seterusnya, dilakukan pengecekan node yang memilki total Cost terkecil hingga sampai pada goal state.

Konsep dasar Uniform Cost Serch hampir sama dengan BFS (Breadth-First Search),

bedanya adalah bahwa BFS

menggunakan urutan level yang paling rendah sampai yang paling tinggi, sedangkan UCS menggunakan urutan biaya dari yang paling kecil sampai yang terbesar. UCS berusaha menemukan solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari simpul asal menuju ke simpul tujuan.

Kelebihan dan kekurangan UCS sebagai berikut [3]:

Kelebihan algoritma UCS sebagai berikut :

 Karena memiliki konsep seperti

BFS maka UCS menjamin ditemukannya solusi dan solusi yang ditemukannya selalu solusi yang terbaik dalam kata lain UCS merupakan pencarian yang complete dan optimal.

 Sangat cocok digunakan bila tidak

menggunakan heuristik. karena

butuh completeness dalam menemukan setiap solusi.

Kekurangan algoritma UCS sebagai berikut :

 Memiliki syarat yang harus

dipenuhi agar bisa complete dan optimal.

 Memiliki kompleksitas waktu dan

ruang yang banyak karena memakai konsep BFS

3. MASALAH ROMANIA

Pada analisa pembahasan ini, penulis akan menguraikan bagaimana penye-lesaian dari contoh masalah romania dalam mencari lintasan terpendek dari kota Arad menuju kota Bucharest. Dalam kasus ini kita akan menggunakan algoritma pencarian Breadth Fisrt Search (BFS), Depth First Search (DFS)  dan

Uniform Cost Search (UCS) untuk menemukan rute tercepat dan paling efisien agar dapat sampai ke tujuan. Maka solusi yang diperoleh dari algoritma tersebut dapat memilih jalur mana yang harus dilalui.

Gambar 3 Graf Masalah Romania 4. PENYELESAIAN MASALAH 4.1 Penerapan Algoritma BFS

(6)

Arad 0+140=140 Arad

0+112=112

Pada pencarian solusi dengan algoritma BFS akan dibangkitkan sebuah simpul akar(root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Pencarian akan

berhenti jika simpul yang sedang

dikunjungi merupakan simpul solusi.

Masukan dari algoritma BFS adalah sebuah graf, dan simpul awal (akar) dari graf tersebut. Harapannya, akan didapat sebuah keluaran berupa seluruh simpul yang telah dihidupkan. Berikut ini adalah

 pseudocode algoritma BFS untuk mencari solusi dari masalah romania.

Procedure BFS(G,akar)

{ Traversal Graf G dengan algoritma pencarian BFS.

Masukan : G adalah graf, v adalah node awal kunjungan

Keluaran : semua n yang dikunjungi dicetak ke layar } Deklarasi finish : boolean current : state newstate : state queue : antrian

visitedlist : list of state simpul n: step

Algoritma

MasukAntrian(queue,akar) MasukList(visitedlist,akar ) finish  false

while  (not AntrianKosong(queue) and not finish)

HapusAntrian(queue, current)

for  setiap simpul n yang bertetangga dengan current do newstate BuatStatusBaru(current, node n) if (Solusi(newstate)) finish = true TambahAnak(current, newstate) TandaiSolusi(newstate) return else

if  (not Mengandung(visitedlist, newstate)) then TambahAnak(current, newstate) MasukAntrian(queue, newstate) MasukList(visitedlist, newstate) endif endif endfor endwhile

implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:

Pada masalah romania, dilakukan

pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon BFS.

Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad.

Selanjutnya dilakukan pencarian pada kota-kota tetangga kota zerind, kota timisoara, dan kota sibiu dan dimasukkan ke dalam level selanjutnya. Hal tersebut dilakukan sampai seluruh simpul di graf berhasil dijelajahi. Setelah dijelajahi semua simpul dari graf maka akan diperoleh lintasan terpendek dari Arad

menuju ke Bucharest dengan

menggunakan algoritma BFS maka

diperoleh node:4, path:

(Arad-Sibiu-Arad 0+0=0 Arad 0+0=0 Arad 0+75=75

(7)

Fagaras-Bucharest), path cost =450, dan ekspansi node sebanyak 14 kali.

4.2 Penerapan Algoritma DFS

Pada pencarian solusi dengan algoritma DFS juga akan dibangkitkan sebuah simpul akar (root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Penelusuran akan dilakukan secara kontinu terhadap status yang telah dibuat pertama kali. Pencarian akan berhenti jika simpul yang sedang dikunjungi merupakan simpul solusi.

Berikut ini adalah  pseudocode algoritma DFS untuk mencari solusi dari masalah romania. procedure DFS(input/output simpul:state, input/output visitedlist:list of state) Deklarasi newstate : state Algoritma if (Solusi(akar)) TandaiSolusi(akar) else

for setiap simpul n yang bertetangga dengan current do

newstate BuatStatusBaru(current,simpul n) if (not Mengandung(visitedlist, newstate)) then TambahAnak(current, newstate) MasukList(visitedlist, newstate) DFS(newstate, visitedlist) if (Solusi(newstate)) return endif endif endfor endif

implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:

Pada masalah romania, dilakukan pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon DFS.

Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad. Tetapi DFS akan memeriksa solusi disebelah kiri sampai dengan depth dimana ditemukannya solusi.

Proses pencarian akan berhenti ketika ditemukan atau tidak ditemukannya solusi, secara kebetulan akan ditemukan solusi tanpa harus menguji lebih banyak atau keseluruhan dari simpul yang ada. Sehingga dari implementasi pohon di atas maka dapat diihat bahwa untuk memperolah lintasan terpendek dari Arad menuju ke Bucharest dengan menggunakan algoritma DFS maka diperoleh node:7, path:

(8)

Oradea-Sibiu-Rimnicu-Pitesti-Bucharest), path cost=575, dan ekspansi node sebanyak 7 kali.

4.3 Penerapan Algoritma UCS

Pada pencarian solusi dengan algoritma UCS akan dibangkitkan sebuah simpul akar(root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Kemudian untuk mencapai node berikutnya, algoritma ini memilih total Cost yang paling kecil dari beberapa kemungkinan total Cost yang dilalui. Pencarian akan berhenti jika simpul yang sedang dikunjungi merupakan simpul solusi dengan total Cost terkecil.

Berikut ini adalah  pseudocode algoritma UCS untuk mencari solusi dari masalah romania.

Pseudocode :

procedure UniformCostSearch(Graph, root, goal)

node := root, cost = 0

frontier := empty priority queue containing node

explored := empty set do if frontier is empty return failure node := frontier.pop() if node is goal return solution explored.add(node)

for each of node’s neighbors n

if n is not in explored if n is not in frontier

frontier.add(n)

if n is in frontier with higher cost replace existing node with n

implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:

Pada masalah romania, dilakukan pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon BFS.

Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad.

Konsep dasar pencarian Uniform Cost Serch hampir sama dengan BFS (Breadth-First Search), bedanya adalah bahwa BFS menggunakan urutan level yang paling rendah sampai yang paling tinggi, sedangkan UCS menggunakan urutan biaya dari yang paling kecil sampai yang terbesar. UCS berusaha menemukan solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari Arad ke Bucharest. Sehingga dari implementasi pohon di atas maka dapat

Arad 0+0=0

(9)

diihat bahwa untuk memperolah lintasan terpendek dari Arad menuju ke Bucharest dengan menggunakan algoritma UCS maka diperoleh node:5, path: (Arad-Sibiu-Rimnicu Vilcea-Pitesti-Bucharest), path cost=418, dan ekspansi node sebanyak 15 kali.

5. KESIMPULAN

 Algoritma Breadth-First Search (BFS) atau algoritma pencarian melebar merupakan pencarian dilakukan pada semua node

dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi.

 Algoritma Depth-First Search (DFS) atau algoritma pencarian mendalam juga merupakan pencarian dilakukan pada satu node dalam setiap level dari yang paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.

Uniform Cost Search  adalah algoritma

Seach Tree (graph) yang digunakan untuk menyelesaikan beberapa persoalan.  Algoritma ini memulai pencarian dari root node, kemudian dilanjutkan ke node-node selanjutnya. Dimana node tersebut dipilih yang memilki harga (cost ) terkecil dari root node.

Masalah romania dapat dicari solusinya dengan memanfaatkan algoritma BFS, DFS, dan UCS. Pada makalah ini masalah romania dapat diselesaikan secara manual menggunakan tree dan dapat juga diselesaikan menggunakan program dalam bahasa java dan phyton 3.

Setelah melakukan penyelesaian dengan tree maupun dengan program, disimpulkan bahwa output dari algoritma dengan penyelesaian manual yaitu:

1. BFS

- Node:4

- Path = (Arad

 –

  Sibiu

 –

  Fagaras -Bucharest)

- Path Cost =450

- Ekspansi node sebanyak 14 kali. 2. DFS

- Node:7

- Path: (Arad

 –

  Zerind

 –

  Oradea

 –

Sibiu

 –

  Rimnicu

 –

  Pitesti -Bucharest)

- Path Cost=575

- Ekspansi node sebanyak 7 kali 3. UCS

- Node:5,

- Path: (Arad-Sibiu-Rimnicu Vilcea-Pitesti-Bucharest)

- Path Cost=418

- Ekspansi node sebanyak 15 kali

Sedangkan penyelesaikan masalah dengan menggunakan program dapat dievaluasi kinerja dari ketiga algortima yaitu:

 Algoritma

Evaluasi

Complet-eness Time Space

Optimal  y BFS Complete 0.07 Sec 55.3086 MB Optimal DFS Not Complete 0.19 Sec 6 MB Not Optimal UCS Complete 0.07 Sec 53.7891 MB Optimal

 Algoritma UCS lebih baik dalam hal menentukan lintasan terpendek karena algoritma UCS akan memilih lintasan (path) yang memiliki biaya terendah dibandingkan dengan algoritma BFS dan DFS, kemudian dari evaluasi ketiga algoritma dengan menggunakan program dapat dilihat bahwa algoritma UCS tersebutcomplete dan optimal serta waktu yang digunakan lebih sedikit dibanding BFS. Dengan demikian algoritma UCS

(10)

menjadi pilihan terbaik di antara algoritma BFS, DFS, dan UCS untuk menentukan solusi dari masalah romania.

DAFTAR PUSTAKA

[1] Hardianto. (2013). Jurnal Teknologi Informasi dan Komunikas.

Implementasi Algoritma Heuristik untuk optimisasi rute terpendek , 79-88.

[2] Russel, S. &. (2010). Artificial Intelligence:  A Modern Approach. New Jersey:

Prentice.

[3] Sutrisna, A. (2015, September 21).Tugas Kecerdasan Buatan. Retrieved

Oktober 21, 2017, from Sky_Heaven: http://sutrisnajie.blogspot.co.id/2015 /09/tugas-kecerdasan-buatan.html [4] Derwin Suhartono, S. M. (2013, April 23).

SEARCHING: UNINFORMED & INFORMED. Retrieved Oktober 21, 2017, from BINUS:

http://socs.binus.ac.id/2013/04/23/u ninformed-search-dan-informed-search/

[5] Welianto, S., Santosa, R. G., & C., A. R. (2009).IMPLEMENTASI ALGORITMA GENERATE AND TEST PADA

PENCARIAN RUTE TERPENDEK , 3. [6] Bawafi, S. H. (2012, Maret 24). ANALISA

TEKNIK SEARCHING DALAM

 ARTIFICIAL INTELLIGENCE . Retrieved Oktober 21, 2017, from blind

seacrhing:

http://aenstein.blogspot.co.id/2012/0 3/blind-seacrhing.html

[7] Pasaribu, E. S. (2013).Penerapan  Algoritma BFS, DFS, dan IDS pada

Penyelesaian Permainan Bubble Blast 2, 2.

[8] Ulum, F. (2015, Mei).BLIND SEARCH. Retrieved Oktober 21, 2017, from

ARTIFICIAL INTELLIGENCE:

http://fahrululumsholihin.blogspot.co

.id/2015/05/v-behaviorurldefaultvmlo.html

[9] Indriani, R. (2015, November 20).Uniform Cost Search (UCS). Retrieved Oktober 21, 2017, from Uniform Cost Search (UCS) dan Iterative-Deepening Search (IDS):

http://riaindriani95.blogspot.co.id/20 15/09/uniform-cost-search-ucs-dan-iterative.html

[10] Azizah, A. H. (2012, Februari 12).  Artificial Intelligence. Retrieved

Oktober 21, 2017, from TomatCoklat: https://tomatcoklat.wordpress.com/2 012/02/19/artificial-intelligence-_/

Gambar

Gambar 1 diagram alur penyelesaian masalah metode BFS
Gambar 2 diagram alur penyelesaian masalah metode DFS
Gambar 3 Graf Masalah Romania 4.  PENYELESAIAN MASALAH 4.1 Penerapan Algoritma BFS

Referensi

Dokumen terkait

Masalah Knapsack 0/1 dapat didefinisikan dalam menentukan lintasan terpendek dari titik sumber ke tujuan yang memenuhi kendala biaya dan waktu pada suatu graph.. Lintasan

Algoritma ini juga dapat digunakan untuk mencari total biaya ( cost ) dari lintasan terpendek yang dibentuk dari sebuah simpul ke sebuah simpul tujuan. Sebagai contoh,

Metodologi yang digunakan Pada Implementasi Algoritma Dijkstra Dalam Aplikasi untuk menentukan Lintasan Terpendek Jalan Darat Antar Kota di Sumatera Bagian

[8] Fitria, Apri Triansyah, 2013, Implementasi Algoritma Dijkstra Dalam Aplikasi Untuk Menentukan Lintasan Terpendek Jalan Darat Antar Kota Di Sumatera. Bagian Selatan ,

Implementasi Algoritman Djikstra Dalam Aplikasi Untuk Menentukan Lintasan Terpendek Jalan Darat Antar Kota Di Sumatera Bagian Selatan.Jurnal Sistem Informasi.. Algoritma

Algoritma ini juga dapat digunakan untuk mencari total biaya (cost) dari lintasan terpendek yang dibentuk dari sebuah simpul ke sebuah simpul tujuan. Sebagai contoh,

Metodologi yang digunakan Pada Implementasi Algoritma Dijkstra Dalam Aplikasi untuk menentukan Lintasan Terpendek Jalan Darat Antar Kota di Sumatera Bagian

Dalam metode pencarian baik yang BFS maupun DFS memiliki algoritma yang berbeda. Pada algoritma DFS adalah algoritma yang melakukan penelusuran dengan