Anda di halaman 1dari 3

Penerapan Algoritma Djikstra Pada Animasi Robot

Pencari Jalur Terpendek Menggunakan Blender


Turahman, Iis Pradesan

STMIK Global Informatika MDP, Jl. Rajawali No.14 Palembang, Telp.376400

Program Studi Teknik Informatika

Email: turahman@mhs.mdp.ac.id, iis.@mdp.ac.id

algoritma Djikstra robot dapat memilih jalur alternatif lain


I. PENDAHULUAN ketika jalur terpendek yang ditempuh terdapat suatu
Ketika kita akan menempuh perjalanan dari satu kota halangan.
ke kota yang lain, tujuan akhir adalaha ketepatan waktu Berdasarkan uraian di atas, penulis ingin
untuk sampai ke tujuan. Ketepatan waktu dipengaruhi oleh mencoba membuat sebuah animasi dengan
seberapa jauh jarak yang ditempuh. Dan panjang jarak judul “Penerapan Algorima Djikstra Pada Animasi Robot
dipengaruhi oleh jalur mana yang ditempuh. Maka, pilihan Menggunakan Blender”.
untuk menentukan jalur inilah yang akan mempengaruhi
seberapa lama kita akan cepat untuk sampai ketujuan. Oleh II. CARA KERJA
karena itu kita harus menentukan jalur terpendek dari Ketika animasi berjalan, tampilan pertama yang muncul
beberapa jalur yang ada. Kesulitan yang timbul adalah kita adalah Menu Utama. Menu utama pada rancangan animasi ini
sulit untuk menentukan jalur mana yang paling pendek terdapat 2 pilihan menu utama, yaitu menu newplay yang
karena terdapat banyak jalur disetiap tempat. Hal ini digunakan untuk masuk ke dalam menu animasi pada animasi
karena pada kenyataannya dari satu daerah A ke daerah Z robot pencari jalur terpendek.
tidak hanya memiliki satu jalur saja. Ada banyak sekali jalur Menu kedua menu keluar yang digunakan untuk keluar
yang harus dilalui sehingga membentuk suatu jaringan. dari animasi. Menu ini dibuat menggunakan objek Plane
Jaringan ini memiliki banyak jalur alternatif dari kedudukan dan Text.
semula ke kedudukan yang dikehendaki. Permasalahan yang Untuk rancangan objek locator dibuat dengn
timbul adalah ketika ada pemutusan pada jalur terpendek menggunakan satu buah objek box. Obje ini kemudian
yang ada. Hal ini bisa saja dapat terjadi pada kehidupan diduplikat menjadi sepuluh objek. Titik koordinat dari
sehari-hari. Misalnya saja ada kerusakan jalur sehingga locator ini disesuaikan dengan posisi objek kota.
mengakibatkan terputusnya jalur, jembatan yang rusak dan Posisi locator C telah berubah mendekati robot. Ketika
lain sebagainya. Maka kita harus menentukan j alur alternatif animasi dijalankan dengan menekan tombol P, robot akan
lain untuk cepat sampa ke tujuan. melakukan perhitungan dengan menghitung jalur tependek
Oleh karea itu kita memerlukan suatu media dari jalur yang ada menggunakan algoritma Djikstra. Ada
untuk mensimulasikan dalam pencarian jalur terpendek. dua titik pada masing-masing locator. Titik tersebut yaitu titik
Salah satunya adalah dengan animasi. Animasi ini dapat X dan titik Y.
menggambarkan keadaan sesungguhnya dengan
menyajikan visualisasi bergerak yang sangat menarik dan
atraktif. Beberapa simulasi tidak hanya membutuhkan
perhitungan dalam pemacahan masalah, tetapi juga
memberikan solusi dalam pemecahan masalah tersebut.
Misalnya ketika suatu objek berupa box atau katakanlah
robot yang diletakkan pada satu titik, maka robot tersebut
harus memilih satu jalur terpendek diantara beberapa jalur
yang ada. Robot tersebut harus memilih dan melewati jalur
yang dibatasi dinding sekat sebagai pembatasnya. Ketika Gambar jalur X dan Y
jalur terpendek yang dipilih terdapat halangan berupa box, Sebelum robot melakukan perhitungan menggunakan
maka robot harus menentukan jalur alternatf lain algoritma Djikstra, robot terlebih dahulu menghitung jarak
agar cepat sampai ke tujuan. Untuk membantu dalam masing-masing locator dengan menggunakan rumus
menentukan jalur terpendek, maka diperlukan suatu pytagoras untuk mencari panjang sisi miring dari locator.
algoritma untuk menentukan jalur terpendek. Salah Rumus pytagoras untuk mencari panjang ssi miring
satunya dengan menggunakan algoritma Djikstra. Dengan segitiga adalah C2= A2+ C2
Setelah sisi miring locator sebagai panjang dari locator return str(self.vertices)
didapat, maka robot selanjutnya melakukan perhitungan if __name__ == '__main__':
jarak terpendek berdasarkan jalur yang ada menggunakan g = Graph()
algoritma Djikstra. g.add_vertex('A', {'B': AB, 'C': AC})
g.add_vertex('B', {'A': AB, 'E':BE, 'F': BF})
III. ALGORITMA g.add_vertex('C', {'A': AC, 'F': CF, 'G': CG})
Algoritma djikstranya adalah sebagai berikut : g.add_vertex('D', {'A': DA, 'F':DF})
class Graph: g.add_vertex('E', {'H': HE})
def __init__(self): g.add_vertex('F', {'B': BF, 'C': CF, 'D': FD, 'H': FH})
self.vertices = {} g.add_vertex('G', {'C': CG, 'F': GF, 'H': GH})
def add_vertex(self, name, edges): g.add_vertex('H', {'E': HE, 'F': FH,'G': GH})
self.vertices[name] = edges
def shortest_path(self, start, finish): Pada gambar 4. 11 di bawah ini ada beberapa jalur yang ada,
distances = {} # Distance from start to node yaitu A-B-FH, A-C-F-H, A-B-D-H, A-B-E-H. Jalur yang
previous = {} # Previous node in optimal ada yaitu terlihat pada gambar 5 di
path from source bawah ini.
nodes = [] # Priority queue of all nodes in
Graph
for vertex in self.vertices:
if vertex == start: # Set root node as
distance of 0 distances[vertex] = 0
heapq.heappush(nodes, [0, vertex])
else:
distances[vertex] = sys.maxsize
heapq.heappush(nodes, [sys.maxsize,
vertex])
previous[vertex] = None
Berdasarkan jalur pada gambar 4. 11, setelah
while nodes: robot melakukan perhitungan menggunakan algoritma
smallest = heapq.heappop(nodes)[1] # Djikstra Jalur yang paling pendek adalah jalur A-C-F-H.
Vertex in nodes with smallest distance in Jalur tersebut dapat dilihat pada console python pada gambar
distances di bawah ini.
if smallest == finish: # If the closest
node is our target we're done so print the
path
path = []
while previous[smallest]: # Traverse
through nodes til we reach the root
which is 0
path.append(smallest)
smallest = previous[smallest]
return path
if distances[smallest] == sys.maxsize: # All
remaining vertices are
inaccessible from source Pada gambar di atas menunjukkan bahwa jalur
break terpendek adalah H,F,C. Artinya H adalah titik akhir dari jalur
for neighbor in self.vertices[smallest]: # Look at all dan C adalah titik pertama yang di lalui robot pada jalur
the nodes that this vertex tersebut. Sehingga dengan demikian jalur dari robot adalah
is attached to A-C-F-H dengan titik A adalah titik awal dari robot.
alt = distances[smallest] + Gambar di bawah ini menunjukkan arah gerakan dari robot
self.vertices[smallest][neighbor] # Alternative menuju titik tujuan.
path distance
if alt < distances[neighbor]: # If there is a new
shortest path update our
priority queue (relax)
distances[neighbor] = alt
previous[neighbor] = smallest
for n in nodes:
if n[1] == neighbor:
n[0] = alt
break
heapq.heapify(nodes)
return distances
def __str__(self):
2. Menjalankan Animasi untuk Megetahui Jarak Terpendek
Jalankan animasi dengan menekan tombol P pada
IV. SYARAT keyboard. Gambar di bawah ini menunjukan arah
Ukuran skala objek benda tiga dimensinya. Satu buah objek gerakan robot setelah locator digeser. Jarak
box. Box tersebut diduplikat menjadi beberapa buah. Jarak terpendek yang
tiap titik objek diatur sesuai dengan jalur lintasan dari yang ditempuh oleh robot adalah melalui jalur A-C-F-H.
akan dilalui robot. Rancangan objek robot di atas dibuat
dengan menggunakan satu buah objek box dan satu buah
Cylinder. Pada objek box dibuat menyerupai mesin pada
robot. Sedangkan pada Cylinder diguakan sebagai roda dari
robot.
V. CONTOH PERGERAKAN
Dalam pembuatan animasi penerapan algoritma djikstra
pada animasi robot pencari jalur terpendek menggunakan
Blender ini telah melalui beberapa tahap. Dari peracangan
dan pembuatan animasi ini yaitu bahwa algoritma djikstra
dapat diterapkan pada animasi robot pencari jalur terpendek
menggunakan Blender. Referensi
[1] Saniman, Muhamad Fathoni. 2008, Pengantar Algoritma dan
IV. PROSES SIMULASI Pemrograman, Jurnal
[2] Finsa Ferdiansyah. 2013, Perbandingan Algoritma Djikstra Dan
Algoritma Ant Colony Dalam Penentuan Jalut Terpendek. Jurnal
Pengujian Animasi Jurusan teknik elektro Konsentrasi Rekayasa Komputer Fakultas
1. Pengujian Locator Geser locator, arahkan mouse pada Teknik, Universitas Brawijaya
locator dan drag locator dan geser objek menggunakan [3] Imron Fauzi. 2011, Penggunaan Algoritma Djikstra Dalam Pencarian
mouse. Setelah dilakukan pengujian, locator dapat Rute Tercepat dan Rute Terpendek (Studi Kasus Pada Jalan Raya
digeser sesuai dengan keinginan. antara Wilayah Blok M dan Kota)
[4] Fidelis Josaphat Soekahar. 2009. Opensource 3D Animation:
Blender Publisher Unleashed. Vol. 01 number 17, April 2009.
[5] Berkah I Santoso. 2009, Bahasa Pemrograman Python di Platform
GNU/Linux, Andi Offset Yogyakarta.
[6] Desy, Krisdianty. 2012, Rancang Bangun Perangkat Lunak Kamuas
Bahasa Indonesia Bahasa Indonesia-Hindi Berbasis Apliasi Mobile.
Vol. 1, January 2012. Diambil dari :
http://journal.unsil.ac.id/jurnalunsil-100-.html(13 Agustus 2014)

Anda mungkin juga menyukai