• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Brute-Force dan Algoritma A Untuk Mencari Rute Terpendek Antar Klinik Kecantikan di Kota Medan

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Brute-Force dan Algoritma A Untuk Mencari Rute Terpendek Antar Klinik Kecantikan di Kota Medan"

Copied!
5
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Pengertian Algoritma

Algoritma merupakan urutan langkah langkah untuk menyelesaikan masalah yang disusun secara sistematis, algoritma dibuat dengan tanpa memperhatikan bentuk yang akan digunakan sebagai implementasinya, sehingga suatu algoritma dapat menjelaskan “bagaimana” cara melaksanakan fungsi dapat diekspresikan dengan suatu program atau suatu komponen fisik (Hartono, 2007).

Menurut Donald E.Knuth, terdapat ciri-ciri algoritma yaitu:

1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak ambiguous (tidak

berarti dua).

3. Algoritma memiliki nol atau lebih masukkan (input). Masukkan ialah besaran yang diberikan pada algoritma sebelum algoritma mulai bekerja.

4.

2.2. Lintasan Terpendek (Shortest Path)

Masalah jalan terpendek adalah salah satu masalah yang paling mendasar dalam kombinasi

optimasi. Bahkan dalam rangka memecahkan masalah yang paling kombinatorial, baik

perhitungan jalur terpendek disebut untuk, atau konsep yang dibuat menggunakan yang

pertama kali dikembangkan dalam kerangka jalur terpendek.

2.3. Teori Dasar Graf

(Giorgio, 1998).

Lintasan minimum yang dimaksud dapat dicari dengan menggunakan graf. Graf yang

digunakan adalah graf yang berbobot, yaitu graf yang setiap sisinya diberikan suatu nilai atau

bobot. Dalam kasus ini, bobot yang dimaksud berupa jarak dan waktu kemacetan terjadi

(Prama, 2010).

Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak

terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan

(2)

ini kota dinyatakan sebagai bulatan sedangkan jalan dinyatakan sebagai garis (Mediputra,

2010).

2.3.1 Jenis – Jenis Graf

Berdasarkan ada atau tidaknya gelang atau busur ganda pada suatu graph maka secara umum

graph dapat dikelompokkan menjadi dua jenis:

1. Graph sederhana (simple graph) yaitu graph yang tidak mengandung gelang maupun

sisi-ganda. Pada graph sederhana, sisi adalah pasangan tak-terurut (unordered pairs).

Jadi menuliskan sisi (u, v) sama saja dengan (v, u). Kita dapat juga mendefinisikan

graph sederhana G = (V, E) terdiri dari himpunan tidak kosong simpul-simpul dan E

adalah himpunan pasangan tak-terurut yang berbeda disebut sisi (Munir, 2007).

2. Graph tak-sederhana (unsimple graph) yaitu graph yang mengandung sisi ganda atau

gelang dinamakan graph sederhana (unsimple graph). Ada dua macam graph

tak-sederhana, yaitu graph ganda dan graph semu. Sisi pada graph dapat mempunyai

orientasi arah. Menurut orientasi arah pada sisinya, graph dibagi menjadi dua jenis,

yaitu:

8. Graph tidak berarah (undirected graph) adalah graph yang sisinya tidak

mempunyai orientasi arah, pada graph ini, urutan pasangan simpul yang

dihubungkan oleh sisi tidak diperhatikan. Sebagai contoh graph tidak berarah

dapat dilihat pada gambar 2.1 (Munir, 2007)

Gambar 2.1 Contoh Tidak Berarah

2. Graph berarah (directed graph) adalah graph yang setiap sisinya diberikan

orientasi arah, graph berarah sering dipakai untuk menggambarkan aliran

proses, peta lintas suatu kota, dan sebagainya (Munir, 2007).

(3)

Gambar 2.2 Contoh Graf Berarah 2.4. Algoritma Brute-Force

Algoritma Brute-Force adalah algoritma yang memecahkan masalah dengan sangat

sederhana, langsung, dan dengan cara yang jelas/lempang. Algoritma Brute-Force adalah

algoritma yang lempang atau apa adanya. Biasanya didasarkan pada pernyataan masalah

(problem statement) dan definisi konsep yang dilibatkan. Algoritma Brute-Force seringkali

lebih mudah di implementasikan dari pada algoritma yang lebih canggih, dan karena

kesederhanaannya. (Pramudita, 2011)

Algoritma Brute Force, disebut juga “naif” yaitu algoritma yang paling sederhana

yang dapat digunakan dalam pola mencari. Hal ini tidak memerlukan preprocessing dari pola

atau teks. Maksudnya adalah bahwa pola dan teks dibandingkan karakter demi karakter

dalam kasus ketidakcocokan, pola digeser satu posisi ke kanan dan perbandingan diulang,

sampai kecocokan ditemukan atau akhir teks sudah tercapai. (Abdeen,A,R.2011)

2.5. Algoritma A*

Algoritma A* (A Star) adalah algoritma pencarian yang merupakan pengembangan dari

algoritma Best First Search (BFS). Seperti halnya pada BFS, untuk menemukan solusi, A*

juga dituntun oleh fungsi heuristik, yang menentukan urutan titik mana yang akan dikunjungi

terlebih dahulu. Heuristik merupakan penilai yang memberi harga pada tiap vertex yang

memandu A* mendapatkan solusi yang diinginkan.

(Adipranata & Handojo 2007)

Persamaan yang digunakan dalam algoritma A* dapat dibagi menjadi dua bagian.

Satu dapat disebut sebagai jalur jarak terakhir dan setengah lainnya dapat disebut sebagai

jarak jalan yang selanjutnya. g (x) adalah jarak dari simpul dari mulai simpul sementara h (x)

adalah nilai heuristik dari node. Nilai heuristik dari node tidak lain adalah jarak Euclidean

dari node awal ke node tujuan atau node akhir. (Burad R dkk,2016)

(4)

Heuristik merupakan penilai yang memberi harga pada tiap vertex yang memandu A*

mendapatkan solusi yang diinginkan. Heuristik yang paling umum digunakan adalah

Manhattan Distance. Fungsi heuristik ini hanya akan menjumlahkan selisih nilai x dan nilai y

dari dua buah titik. Heuristik ini dinamakan Manhattan karena di kota Manhattan di Amerika,

jarak dari dua lokasi umumnya dihitung dari blok-blok yang harus dilalui saja dan tentunya

tidak bisa dilintasi secara diagonal. (Prayoga dkk, 2008).

Fungsi heuristik sangat berpengaruh terhadap kelakuan Algoritma A*:

1. Apabila h(x) selalu bernilai 0, maka hanya g(x) yang akan berperan, dan A* berubah

menjadi Algoritma Dijkstra, yang menjamin selalu akan menemukan jalur

terpendek.

2. Apabila h(x) selalu lebih rendah atau sama dengan ongkos perpindahan dari titik n ke

tujuan, maka A* dijamin akan selalu menemukan jalur terpendek. Semakin rendah

nilai h(x), semakin banyak titik-titik yang diperiksa A*, membuatnya semakin

lambat.

3. Apabila h(x) tepat sama dengan ongkos perpindahan dari n ke tujuan, maka A* hanya

akan mengikuti jalur terbaik dan tidak pernah memeriksa satupun titik lainnya,

membuatnya sangat cepat. Walaupun hal ini belum tentu bisa diaplikasikan ke

semua kasus, ada beberapa kasus khusus yang dapat menggunakannya.

4. Apabila h(x) kadangkala lebih besar dari ongkos perpindahan dari n ke tujuan, maka

A* tidak menjamin ditemukannya jalur terpendek, tapi prosesnya cepat.

5. Apabila h(x) secara relatif jauh lebih besar dari g(x), maka hanya h(x) yang

memainkan peran, dan A* berubah menjadi BFS.

Fungsi h(x) adalah hyphotesis cost atau heuristic cost atau estimasi cost terkecil dari

node x ke tujuan, yang disebut juga sebagai future path-cost. Fungsi g(x) adalah geographical

cost atau cost sebenarnya dari node x ke node tujuan, yang disebut juga sebagai past

path-cost. Berdasarkan algoritma standar pencarian jalur terpendek sebelumnya, jika ditambahkan

dengan metode A*, algoritma tersebut mengalami perubahan, khususnya saat perluasan node

(5)

2.5.2 Cara Kerja Algoritma A* Mencari Rute Terpendek

Algoritma A* menggunakan dua senarai : OPEN dan CLOSED. Terdapat tiga kondisi

bagi setiap suksesor yang dibangkitkan, yaitu: sudah berada di open, sudah berada di closed,

dan tidak berada di open maupun closed. Pada ketiga kondisi tersebut diberikan penanganan

yang berbeda-beda. Jika suksesor sudah pernah berada di open, maka dilakukan pengecekan

apakah perlu pengubahan parent atau tidak tergantung pada nilai g-nya melalui parent lama

atau parent baru. Jika melalui parent baru memberikan nilai g yang lebih kecil, maka

dilakukan pengubahan parent. Jika pengubahan parent dilakukan, maka dilakukan juga

perbaruan (update) nilai g dan f pada suksesor tersebut. Untuk terpilih sebagai simpul terbaik

(best node). Jika suksesor sudah pernah berada di closed, maka dilakukan pengecekan apakah

perlu pengubahan parent atau tidak. Jika ya, maka dilakukan perbaruan nilai g dan f pada

suksesor tersebut serta semua “ anak cucunya” yang sudah pernah berda di open.

Dengan perbaruan ini, maka semua anak cucunya tersebut memiliki kesempatan lebih

besar untuk terpilih sebagai simpul terbaik (best node). Jika suksesor tidak berada di open

maupun di closed, maka suksesor tersebut dimasukkan ke dalam open. Tambahkan suksesor

tersebut sebagai suksesornya best node. Hitung biaya suksesor Tersebut dangan rumus f’ = g

+ h’. (Harianja,F. 2013).

Referensi

Dokumen terkait

Graf yang digunakan adalah graf yang berbobot, yaitu graf yang setiap sisinya diberikan suatu nilai atau bobot.. Dalam kasus ini, bobot yang dimaksud berupa jarak dan waktu

Graf yang dipakai dalam penentuan lintasan terpendek adalah graf berbobot, yaitu graf yang untuk setiap sisinya memiliki nilai sehingga panjang lintasan dari suatu titik ke titik

Permasalahan pada penelitian ini, bukan hanya sebatas pencarian rute terdekat dengan dua buah algoritma Brute Force dan A*, tetapi juga dengan membandingkan jarak dan hasil

Metode yang digunakan untuk menyelesaikannya adalah melalui mengonversi suatu map Valorant menjadi suatu graf berbobot dan menganalisis rute terpendek yang

Menurut teori Graf, persoalan lintasan terpendek adalah merupakan suatu persoalan untuk mencari lintasan antara dua buah simpul pada graf berbobot yang memiliki gabungan nilai

yaitu graph yang pada setiap sisinya tidak terdapat sebuah bilangan, sehingga bobot.. pada setiap sisi akan dinyatakan dengan nilai 0

Permasalahan mencari jalur terpendek di dalam graf merupakan permasalahan optimisasi yang dapat dimodelkan dengan graf berbobot (weighted graph). Graf berbobot

Data peta dari peta OSM digunakan sebagai database untuk membangun struktur graf berbobot dan berarah untuk pencarian rute terpendek dari suatu tempat ke tempat yang