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

dokumen-dokumen yang mirip
Algoritma Traversal di dalam Graf

BFS dan DFS. Bahan Kuliah IF2151 Strategi Algoritmik. Oleh: Rinaldi Munir

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penerapan Algoritma BFS, DFS, DLS dan IDS dalam Pencarian Solusi Water Jug Problem

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

Perbandingan BFS, DFS dan Greedy pada Permainan Logika Crossing Bridge

METODE PENCARIAN BFS dan DFS

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

AI sebagai Masalah Pelacakan. Lesson 2

Tujuan Instruksional

Aplikasi Graf Breadth-First Search Pada Solver Rubik s Cube

IMPLEMENTASI ALGORITMA GENERATE AND TEST PADA PENCARIAN RUTE TERPENDEK

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

IKI 30320: Sistem Cerdas Kuliah 4: Uninformed Search Strategies (Rev.)

Penyelesaian Permasalahan Knight s Tour Menggunakan Algoritma Breadth First Search (BFS)

Problem-solving Agent: Searching

Bab 2 2. Teknik Pencarian

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

IKI 30320: Sistem Cerdas Kuliah 3: Problem-Solving Agent & Search

Implementasi Algoritma DFS pada permainan Monument Valley

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

Penerapan Search Tree pada Penyelesaian Masalah Penentuan Jalur Kota Terpendek.

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

METODE PENCARIAN. Irvanizam Zamanhuri, M.Sc Dr. Taufiq A. Gani, M.EngSc

SEARCHING. Blind Search & Heuristic Search

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

IKI30320 Kuliah 4 5 Sep Ruli Manurung. Ulasan. Breadth-first. Uniform-cost. Depth-first. Pengulangan state. Ringkasan

PENERAPAN ALGORITMA BFS DFS DAN KNUTH-MORRIS-PRATT PADA PENCARIAN BERKAS DALAM KOMPUTER

Problem solving by Searching. Materi 3 Kecerdasan Buatan Oleh: Dewi Liliana TI PNJ

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

METODE PENCARIAN DAN PELACAKAN

Penyelesaian N-Puzzle Menggunakan A* dan Iterative Deepening A*

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

IKI30320 Kuliah 3 3 Sep Ruli Manurung. Problem solving agent. Representasi masalah: state space. Pencarian solusi: search.

Artificial Intelegence/ P_2. Eka Yuniar

Metode Searching. Blind/Un-informed Search. Heuristic/Informed Search. Breadth-First Search (BFS) Depth-First Search (DFS) Hill Climbing A*

ALGORITMA PENCARIAN (1)

BAB III METODE PELACAKAN/PENCARIAN

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Overview. Searching. Deskripsi. Intro Searching 2/4/2012 IF-UTAMA 1

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

ALGORITMA PENCARIAN (HEURISTIC)

Breadth/Depth First Search (BFS/DFS) Bahan Kuliah IF2211 Strategi Algoritmik Oleh: Rinaldi Munir Update: Nur Ulfa Maulidevi 2 Maret 2015

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

TERAPAN SISTEM KECERDASAN BUATAN PADA SISTEM INFORMASI AKADEMIK BERBASIS SMS GATEWAY MENGGUNAKAN METODE BREADTH FIRST SEARCH

BAB 2 TINJAUAN PUSTAKA

MASALAH, RUANG KEADAAN & PENCARIAN

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

PERBANDINGAN METODE PENCARIAN DEPTH-FIRST SEARCH, BREADTH-FIRST SEARCH DAN BEST-FIRST SEARCH PADA PERMAINAN 8-PUZZLE

Breadth/Depth First Search. Bahan Kuliah IF2211 Strategi Algoritmik Oleh: Rinaldi Munir Update: Masayu Leylia Khodra 22 September 2013

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

Informed Search (Heuristic) & Eksplorasinya

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

PENERAPAN ALGORITMA RUNUT-BALIK DALAM PENCARIAN SOLUSI TEKA-TEKI BATTLESHIP

BAB 2 LANDASAN TEORI. 2.1 Teori graf Definisi graf

memberikan output berupa solusi kumpulan pengetahuan yang ada.

Search Strategy. Search Strategy

Penerapan Metode Best First Search Pada Permainan Tic Tac Toe

PENGUNAAN DUA VERSI ALGORITMA BACKTRACK DALAM MENCARI SOLUSI PERMAINAN SUDOKU

Pertemuan-07 INFORMATIKA FASILKOM UNIVERSITAS IGM

Bab 4. Informed Search

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

Aplikasi Algoritma Traversal Dalam Binary Space Partitioning

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI

Penerapan BFS dan DFS pada Pencarian Solusi

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Kode MK/ Pemrograman Terstruktur 2

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Masalah, Ruang Masalah dan Pencarian

Penerapan BFS dan DFS pada Pencarian Solusi

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Mendeteksi Blob dengan Menggunakan Algoritma BFS

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Kecerdasan Buatan. Pertemuan 03. Pencarian Branch & Bound dan Heuristik (Informed)

Penggunaan Algoritma DFS dan BFS Dalam Pencarian Jarak Tedekat di Game Civilization V

Penerapan Algoritma A* Sebagai Algoritma Pencari Jalan Dalam Game

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Penerapan Algoritma Backtracking. Blind Search untuk Menentukan Penjadwalan Mengajar.

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Teknologi Sepuluh Nopember Surabaya 2011

Pemecahan Masalah dengan Metoda Pencarian (Searching)

IKI30320 Kuliah 5 12 Sep Ruli Manurung. Best-first. search. Greedy best-first. search. search. Merancang heuristic

PENYELESAIAN MASALAH MISSIONARIES DAN CANNIBAL MENGGUNAKAN ALGORITMA DFS DENGAN VARIASI PENGHINDARAN REPEATED STATE

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG

TOPOLOGICAL SORT dengan DFS dan METODE LAIN

Metode Pencarian Terdapat banyak metode yang telah diusulkan. Semua metode yang ada dapat dibedakan ke dalam 2 jenis : 1. Pencarian buta / tanpa infor

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Representasi Graf Berarah dalam Mencari Solusi Jalur Optimum Menggunakan Algoritma A*

Implementasi Intuitif Penyelesaian Labirin dengan Algoritma Depth-First Search

Transkripsi:

PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIA 1. PENDAHULUAN Pada zaman serba modern ini, peta masih digunakan oleh kebanyakan orang untuk menuju dari suatu titik awal ke titik tujuan. Lintasan yang dipilih untuk menuju titik tujuan pastilah lintasan yang paling pendek. Namun, pencarian lintasan terpendek secara manual, akan membutuhkan waktu yang banyak dan ketelitian lebih untuk mencapainya. Masalah lintasan terpendek berkaitan dengan pencarian lintasan pada graf berbobot yang menghubungkan dua buah simpul (edge) sedemikian sehingga jumlah bobot pada sisi-sisi yang terpilih merupakan bobot minimum. Terdapat banyak algoritma yang dapat digunakan untuk pemecahan masalah dalam pencarian lintasan terpendek. Pemilihan algoritma yang paling optimal seringkali menjadi permasalahan dalam pencarian lintasan terpendek karena setiap algoritma memiliki kelebihan dan kekurangannya masing-masing [1]. Secara umum, algoritma pencarian dapat dibedakan menjadi dua metode yaitu, metode uninformed search dan metode informed search. Metode uninformed search merupakan metode matematika biasa dengan informasi yang jelas, sedangkan metode informed search merupakan metode pencarian yang menggunakan metode pendekatan pada proses pencariannya [2]. Pada tulisan ini, akan dibahas bagaimana menemukan solusi dalam pencarian lintasan terpendek dari kasus romania dengan menggunakan algoritma pencarian Breadth Fisrt Search (BFS), Depth First Search (DFS) dan Uniform Cost Search (UCS) sehingga diperoleh kota-kota mana saja yang harus dilalui dalam menentukan lintasan terpendek dari suatu kasus. 2. TINJAUAN PUSTAKA Beberapa dasar teori yang menjadi landasan penulisan, yaitu search, metode uninformed search, teori graf, algoritma Breath First Search (BFS), Depth First Search (DFS), dan Uniform Cost Search (UCS) yang akan digunakan untuk menyelesaikan permasalahan. 2.1 Search Menurut Luger (2005), search adalah sebuah teknik menyelesaikan masalah (problem solving) yang mengembangkan sebuah ruang permasalahan secara sistematik dalam sebuah proses. Terdapat 4 kriteria untuk menentukan performa sebuah metode pencarian, yaitu Completeness, Time Complexity, Space Complexity, dan Optimality. Completeness adalah apakah metode tersebut menjamin ditemukannya solusi jika solusi tersebut ada. Time Complexity adalah lama waktu yang dibutuhkan untuk menemukan solusi tersebut. Space Complexity adalah jumlah memory yang diperlukan dan yang dimaksud Optimality adalah apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi yang lain [3]. Metode pencarian dibagi menjadi dua strategi, yaitu uninformed search dan informed search. Uninformed search merupakan suatu strategi pencarian tanpa ada informasi mengenai cost (bobot) atau informasi tertentu sedangkan Informed search merupakan suatu strategi pencarian yang membutuhkan informasi

mengenai cost (bobot) atau informasi tertentu [3]. 2.2 Metode Uninformed Search 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 2.4 Algoritma Pencarian Breadth-First Search 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]. 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]. 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

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} endfor endwhile { AntrianKosong(q) } MasukAntrian(q,w) dikunjungi[w] true 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 Search 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].

Algoritma w : integer write(v) dikunjungi[v] true for setiap simpul w yang bertetangga dengan simpul v do if not dikunjungi[w] then DFS(w) Gambar 2 diagram alur penyelesaian masalah metode DFS Algoritma DFS secara alami menggunakan 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 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 ditemukannya tujuan yang diharapkan Hanya akan mendapatkan 1 solusi pada setiap pencarian 2.6 Algoritma Pencarian Uniform Cost Search 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 Search (BFS). Dalam implementasi algoritma ini melibatkan semua node yang berhubungan dengan root node dan meletaknnya dalam priority queue untuk mencapai node tujuan.

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. 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 penyelesaian dari contoh masalah romania dalam mencari lintasan terpendek dari kota 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. 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 Gambar 3 Graf Masalah Romania 4. PENYELESAIAN MASALAH 4.1 Penerapan Algoritma BFS

Pada pencarian solusi dengan algoritma BFS akan dibangkitkan sebuah simpul akar(root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpulsimpul anak yang merupakan 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 endfor endwhile implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu: Pada masalah romania, dilakukan pencarian awal di kota, yang akan dianggap sebagai akar dari pohon BFS. 0+75=75 0+0=0 0+0=0 0+112=112 0+140=140 Setelah itu, dicari kota-kota yang bertetangga dengan kota, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota. } 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) 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 menuju ke Bucharest dengan menggunakan algoritma BFS maka diperoleh node:4, path: (-Sibiu-

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 simpulsimpul anak yang merupakan 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 Pada masalah romania, dilakukan pencarian awal di kota, yang akan dianggap sebagai akar dari pohon DFS. Setelah itu, dicari kota-kota yang bertetangga dengan kota, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota. Tetapi DFS akan memeriksa solusi disebelah kiri sampai dengan depth dimana ditemukannya solusi. 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 endfor implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu: 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 menuju ke Bucharest dengan menggunakan algoritma DFS maka diperoleh node:7, path: (-Zerind-

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 simpulsimpul anak yang merupakan 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. implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu: 0+0=0 Pada masalah romania, dilakukan pencarian awal di kota, yang akan dianggap sebagai akar dari pohon BFS. Setelah itu, dicari kota-kota yang bertetangga dengan kota, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota. 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 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 ke Bucharest. Sehingga dari implementasi pohon di atas maka dapat

diihat bahwa untuk memperolah lintasan terpendek dari menuju ke Bucharest dengan menggunakan algoritma UCS maka diperoleh node:5, path: (-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 = ( Sibiu Fagaras - Bucharest) - Path Cost =450 - Ekspansi node sebanyak 14 kali. 2. DFS - Node:7 - Path: ( Zerind Oradea Sibiu Rimnicu Pitesti - Bucharest) - Path Cost=575 - Ekspansi node sebanyak 7 kali 3. UCS - Node:5, - Path: (-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: Evaluasi Algoritma Completeness y Optimal Time Space BFS Complete 0.07 55.3086 Optimal Sec MB 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 tersebut complete dan optimal serta waktu yang digunakan lebih sedikit dibanding BFS. Dengan demikian algoritma UCS

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 ARTIFICIAL INTELLIGENCE: http://fahrululumsholihin.blogspot.co.id/2015/05/vbehaviorurldefaultvmlo.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-daniterative.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-_/ [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-informedsearch/ [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