• Tidak ada hasil yang ditemukan

ANALISIS DAN PERANCANGAN SISTEM

3.4 Analisis Algoritma A*

Algoritma A* digambarkan sebagai graf untuk menyelesaikan persoalan dalam mencari jalur terpendek. Dengan menggunakan graf, arah, tujuan dan perhitungan dapat ditentukan dengan lebih mudah sebab adanya tampilan yang lebih atraktif dalam menunjukkan cost dan menghubungkan jalur. Dalam penggunaan algoritma A*, strategi yang digunakan ialah perhitungan heuristik dimana jarak yang akan dihitung ialah jarak sebenarnya dan dapat ditambahkan dengan besara niai atau bobot hambatan lainnya yang kiranya akan memperngaruhi perjalanan. Dengan penggunaan fungsi heuristik pula, yang diuji hanyalah verteks yang mendekati verteks tujuan dan berpotensi sebagai jalur terpendek. Dalam notasi matematika dituliskan sebagai berikut:

f(n) = g(n) + h(n) ……….. 3.1

Keterangan:

g(n)= total jarak didapat dari vertex awal ke vertex sekarang

h(n)= jarak estimasi vertex tujuan, sebuah fungsi heuristik utuk membuat perkiraan seberapa jauh lintasan yang akan diambil ke vertex tujuan

f(n) = jumlah dari g(x) dan h(x). \

Dalam penggunaannya, algoritma A* juga dapat dimanfaatkan jika pencarian ingin dilakukan secara berulang. Dalam prinsipnya, Algoritma A* akan mencari graf yang mungkin dari titik awal untuk sampai ke titik tujuan dan akan melintasi semua graf tersebut kemudian akan mengurutkan dari cost terkecil dan memasukkan cost ke dalam antrian graf yang dilalui. Jika dalam prosesnya, pada titik tertentu di jalur yang dilewati ditemukan cost yang memiliki nilai yang lebih tinggi dari costyang telah dilewati, maka A* akan meninggalkan jalur tersebut karena jalur tersebut tidak lagi memiliki potensi menjadi jalur terpendek.

Algoritma A* menggunakan dua antrian, yaitu open dan close. Dimulai dengan titik awal dijadikan antrian prioritas titik untuk dilalui, dikenal sebagai open set. Nilai prioritas akan semakin tinggi sesuai dengan semakin rendahnya cost untuk suatu verteks. Dalam proses pengoptimasian dengan algoritma A*, setiap suatu simpul

mendapatkan cost atau nilai tertinggi maka akan langsung dihapuskan dari antrian.

Dengan artian nilai tersebut sudah tidak memiliki kemungkinan sebagai jalur terpendek yang hendak dicari. Sementara itu, nilai f dan h diperbaharui sesuai dengan relasi pada graf kemudian di tambahkan pada antrian. Algoritma A* akan terus mengulang pencarian dan perhitungannya sampai ke titik tujuan yang memiliki nilai f terendah.

Untuk itu digunakan perhitungan dengan nilai heuristik dengan tujuan mempersempit ruang pencarian dengan membatasi verteks yang akan diuji pada tiap cabang. Setelah sampai ke titik tujuan atau goal maka Algoritma A* akan menjumlahkan panjang path yang sebenarnya (Coppin, 2004).

Untuk menganalisa algoritma A Star digunakan 8 titik yaitu A,B,C,D,E,F,G dan H yang disusun dalam sebuah graf sederhana. Titik-titik tersebut dapat dilihat pada Gambar 3.3.

Gambar 3.3 Contoh Graf Dengan 8 Buah Titik

Terdapat 8 titik pada graf tersebut yaitu titik A,B,C,D,E,F,G dan H. Titik asal adalah A dan tujuan adalah titik H. Koordinat dari masing-masing titik adalah A(0,8), B(6,9), C(7,5), D(25,11), E(22,6), F(28,10), G (27,5) dan H(36,2).

Untuk mendapatkan nilai h(n) akan digunakan perhitungan fungsi heuristik. Fungsi heuristik yang digunakan adalah Euclidean Distance.

Rumus Euclidean Distance :

25

g(n) didapat dari mengukur jarak antara 1 point ke point lainnya. Pada Gambar 3.3 jarak antara 1 poin ke poin lainnya ditunjukkan oleh garis biru. Setiap kotak atau pixel mewakili nilai 1. Lalu kemudian untuk mencari nilai f(n) dengan Rumus 3.1.

Maka nilai f(n):

B ke E = 14,04 + 16 = 30,04 C ke A = 36,01 + 37 = 73,01 C ke B = 24,33 + 29 = 53,33 C ke D = 12,43 + 17 = 29,43 C ke E = 26,93 + 35 = 61,93 D ke A = 31,62 + 40 = 71,62 D ke B = 23,43 + 34 = 57,43 D ke C = 2,53 + 17 = 29,43 D ke E = 19,03 + 20 = 39,03 E ke A = 14,21 + 20 = 34,21 E ke B = 14,04 + 16 = 30,04 E ke C = 26,93 + 35 = 61,93 E ke D = 19,03 + 20 = 39,03

Setelah f(n) telah didapatkan, gambarkan rute perjalanan. Setiap pemilihan rute dilakukan dengan memilih nilai terkecil. Selanjutnya akan dilakukan perhitungan dengan Binary Tree.

27

Gambar 3.4 Perhitungan dengan Binary Three

Binary Tree atau pohon biner adalah sebuah pohon dalam struktur data yang bersifat hirarkis (hubungan one to many). Tree bisa didefenisikan sebagai kumpulan simpul dengan setiap simpul mempunyai paling banyak dua anak.

Secara khusus, anaknya dinamakan kiri dan kanan. Binary tree tidak memiliki lebih dari tiga level dari Root. Binary tree adalah suatu tree dengan syarat bahwa tiap node (simpul) hanya boleh memiliki maksimal dua subtree dan kedua subtree tersebut haruslah terpisah. Tiap simpul dalam binary tree boleh memiliki paling banyak dua child (anak simpul), dan secara khusus anaknya akan dinamakan kiri dan kanan.

Pohon biner dapat juga disimpan sebagai struktur data implisit dalam array, dan jika pohon tersebut merupakan sebuah pohon biner lengkap, metode ini tidak boros tempat. Dalam penyusunan yang rapat ini, jika sebuah node memiliki indeks i, anaknya dapat ditemukan pada indeks ke-2i+1 dan 2i+2, meskipun ayahnya (jika ada) ditemukan pada indeks lantai ((i-1)/2) (asumsikan akarnya memiliki indeks kosong).

Maka jalur tersingkat yang dapat dilalui adalah A-B-C-E-G-F-H Total f(n) = 12,08+9,12+31,03+11,10+11,10+27,31 = 101,74

Berikut terminologi dasar yang terdapat pada algoritma A* : 1. Starting point sebagai posisi awal sebuah benda.

2. Current adalah simpul yang sedang dijalankan pada algoritma pencarian jarak terpendek.

3. Simpul adalah petak kecil atau piksel sebagai representasi dari arah path finding. Bentuknya dapat berupa persegi, lingkaran, ataupun segitiga.

4. Open list adalah tempat menyimpan data node yang mungkin diakses dari starting point maupun node yang sedang dijalankan. Setiap node yang masuk pertama akan dikeluarkan pertama dengan syarat tertentu.

5. Closed list adalah tempat penyimpanan data simpul sebelum current yang juga merupakan bagian dari jalur terpendek yang telah berhasil diciptakan.

Closed list ini juga digunakan untuk mendapatkan jarak terdekat saat simpul tujuan sudah dicapai.

6. Simpul tujuan adalah simpul yang dituju atau juga kadang disebut initial state.

7. Halangan adalah sebuah atribut yang menyatakan bahwa sebuah simpul tidak dapat dilalui oleh current.

29

3.5 Flowchart

Secara umum alur proses sistem dapat dilihat pada flowchart sebagai berikut:

Gambar 3.5 Flowchart Sistem

Secara garis besar, Aplikasi pencari jarak terpendek dengan algoritma A* ini dapat dituliskan sebagai berikut:

1. Mulai.

2. Inisialisasi peta.

3. Membaca data seluruh verteks dan bobot sisi pada database verteks dan jarak.

4. Input titik awal dan titik tujuan dari database.

5. Melakukan proses perhitungan rute terpendek menggunakan Algoritma A*

berdasarkan input dari langkah sebelumnya.

6. Menampilkan rute terpendek pada peta.

7. Selesai.

Dokumen terkait