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)