240
Implementasi dan Simulasi Algoritma Kumpulan
Semut (Ant Colony) Untuk Mencari Jalur
Terpendek
Haryanto1, Ahmad Kodar2, Ida Nurhaida3
Jurusan Teknik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana Jl. Raya Meruya Selatan, Kembangan, Jakarta, 11650
E-mail : idariyan@yahoo.com3 Abstrak -- Dalam kehidupan sehari–hari seorang
pengendara sering melakukan perjalanan dari satu tempat atau kota ke tempat yang lain dengan mempertimbangkan efisiensi, waktu dan biaya, sehingga diperlukan ketepatan dalam menentukan jalur terpendek antar kota. Hasil penentuan jalur terpendek akan menjadi pertimbangan dalam pengambilan keputusan untuk menunjukkan jalur yang akan ditempuh. Masalah tersebut telah mengundang banyak solusi sedangkan solusi yang diharapkan adalah solusi dengan kompleksitas algoritma. Perancangan sistem ini bertujuan untuk membangun sebuah program aplikasi untuk menentukan jalur terpendek antar suatu kota menggunakan algoritma ant colony. Metode rekayasa perangkat lunak yang dipergunakan adalah waterfall model. Dari hasil pengujian terhadap perangkat lunak disimpulkan bahwa perangkat lunak telah berhasil menemukan jalur terpendek dengan algoritma ant colony.
Kata kunci : Pemilihan jalur terpendek, Ant Colony, rekayasa perangkat lunak, waterfall model.
I. PENDAHULUAN
Dalam kehidupan sehari-hari, sering dilakukan perjalanan dari satu tempat atau kota ke tempat yang lain dengan mempertimbangkan efisiensi, waktu dan biaya sehingga diperlukan ketepatan dalam menentukan jalur terpendek antar suatu kota. Hasil penentuan jalur terpendek akan menjadi pertimbangan dalam pengambilan keputusan untuk menunjukkan jalur-jalur yang akan ditempuh oleh seorang pengendara. Hasil yang didapatkan juga membutuhkan kecepatan dan keakuratan dengan bantuan komputer.
Secara umum, pencarian jalur terpendek dapat dibagi menjadi dua metode, yaitu metode konvensional dan metode heuristik [4]. Metode konvensional adalah metode yang menggunakan perhitungan matematis biasa. Ada beberapa metode konvensional biasa digunakan untuk melakukan pencarian jalur terpendek, diantaranya: algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman- Ford.
Sedangkan Metode Heuristik adalah sub bidang dari kecerdasan buatan yang digunakan untuk melakukan pencarian dan optimasi. Ada beberapa algoritma pada metode heuristik yang biasa digunakan dalam permasalahan optimasi, diantaranya algoritma genetika, algoritma semut, logika fuzzy, jaringan syaraf tiruan, pencarian tabu, simulated annealing, dan lain-lain [4]. Pemanfaatan teknologi informasi pada pencarian jalur terpendek menghasilkan suatu hasil atau keluaran yang akurat dan tepat, untuk membantu perjalanan seseorang pengendara.
Untuk kasus yang berbeda algoritma akan memberikan hasil yang berbeda, tidak dapat dipastikan bahwa algoritma semut atau genetik yang terbaik. Metode konvensional cenderung lebih mudah dipahami daripada metode heuristik, tetapi jika dibandingkan, hasil yang diperoleh dari metode heuristik lebih variatif dan waktu perhitungan yang diperlukan lebih singkat. Kelemahan metode konvesional pada keakuratan hasil yang didapatkan serta tingkat kesalahan yang dihasilkan pada perhitungan. Hal tersebut tidak akan menjadi masalah jika data yang dibutuhkan hanya sedikit, jika sebaliknya maka akan menyebabkan peningkatan tingkat kesalahan perhitungan dan penurunan keakuratan.
Penelitian ini bertujuan untuk :
1. Membuat suatu perangkat lunak yang dapat mensimulasikan Ant Colony dalam kasus pencarian jalur terpendek antar kota yang telah diketahui koordinatnya.
2. Memberikan alternatif pada pengendara untuk menetukan jalur atau rute mana saja yang akan dilalui untuk menuju suatu tempat (kota).
II. METODOLOGI PENELITIAN
Metodologi penelitian yang digunakan adalah sebagai berikut :
1. Metode pengembangan sistem.
Dalam metode pengembangan sistem yang digunakan meliputi analisis kebutuhan perangkat lunak, perancangan perangkat lunak, implementasi perangkat lunak dan analisis kinerja perangkat lunak.
241 Tahapan ini menghasilkan rancangan yang memenuhi kebutuhan yang ditentukan selama tahapan analisis dan definisi kebutuhan. Tujuannya adalah setelah data yang dibutuhkan selesai dikumpulkan dan sudah lengkap, maka desain kemudian akan dikerjakan.
3. Implementasi dan unit testing
Pada tahap ini, perancangan perangkat lunak di wujudkan sebagai satu set program yang ditulis dalam bentuk kode-kode dengan bahasa pemrograman yang telah ditentukan. Unit testing meliputi meliputi pemeriksaan pada setiap unit program untuk memenuhi spesifikasi tersebut.
Tes sistem
Unit dari setiap program disatukan dan dites secara keseluruhan untuk memastikan bahwa syarat dari perangkat lunak telah dipenuhi. Operasi dan perawatan
Secara umum, ini merupakan tahap yang paling lama. Sistem di-install dan digunakan pada lingkungannya dan proses perawatan meliputi perbaikan dari kesalahan yang tidak ditemukan pada tahap-tahap sebelumnya, perbaikan pengimplementasian unit sistem dan meningkatakan kemampuan sistem dari persyaratan baru yang diterima sehingga dapat beradaptasi sesuai situasi yang sebenarnya. 4. Metode pengumpulan data.
Pengumpulan data yang diperlukan menggunakan metode studi literatur yang menggunakan berbagai macam literatur yang berhubungan dengan Ant Colony dan permasalahan pencarian jalur terpendek baik pengumpulan data dilakukan dengan mengumpulkan data-data dari sumber atau buku yang relevan terhadap penelitian maupun media online.
III. HASIL DAN PEMBAHASAN 3.1 Metode Perancangan
Metode perancangan yang dikembangkan untuk membangun pencarian jalur terpendek adalah UML (Unified Modelling Language) yang kemudian diperjelas perancangan terstruktur (structure design
method) atau flow chart [1]. Flow chart pada dasarnya
merupakan konsep perancangan yang mudah dengan penekanan pada sistem modular (Top Down Design) dan pemrograman terstruktur (structured
programming).
Perancangan sistem ini akan dibagi menjadi beberapa subsistem yaitu :
1. Perancangan UML
Perancangan aplikasi yang dibangun menggunakan 4 ( tiga ) model diagram UML (Unified Modelling
Language) yaitu : use case diagram, class diagram, Activity Diagram dan sequence diagram.
2. Perancangan Antar Muka
3.1.1 Use Case Diagram
Pada aplikasi pencarian jalur terpendek antar kota menggunakan algoritma semut (Ant Colony), use
case menjelaskan tentang hubungan antara sistem
dengan aktor ( pengendara ). Hubungan ini dapat berupa input aktor (pengendara) ke sistem ataupun
output ke aktor (pengendara). Use-case merupakan
dokumen naratif yang mendeskripsikan kasus-kasus atau kejadian-kejadian daripada aktor dalam menggunakan system untuk menyelesaikan sebuah proses. Gambar 2 menjelaskan aplikasi pencarian jalur terpendek antar kota menggunakan algoritma semut (Ant Colony) dalam model use-case diagram :
Gambar 2. Use Case Diagram Aplikasi Implementasi
dan Simulasi Algoritma Kumpulan Semut untuk Pengendara.
3.1.2 Class Diagram
Class adalah sebuah spesifikasi yang jika
diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain. Selama proses desain, class diagram berperan dalam menangkap struktur dari semua kelas yang membentuk arsitektur sistem yang dibuat.
Gambar 3. Class Diagram Aplikasi Implementasi dan
simulasi algoritma kumpulan semut (ant colony) untuk pengendara
242 3.1.3 Activity Diagram
Activity diagram menggambarkan berbagai
aliran aktivitas dalam system yang sedang di rancang, bagaimana masing-masing aliran berawal, decision yang mungkin terjadi dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses pararel yang mungkin terjadi pada beberapa eksekusi. Berikut ini adalah Activity
Diagram dari aplikasi pencarian jalur terpendek
menggunakan algoritma semut. 3.1.4 Algoritma Ant Colony
Begin
Initialize Pheromone matrix Read and initialize distance matrix
i := 1 (number of ants completed their tours) Do while I < MaxIteration
If current node is node last node, choose next feasible node on the basis of pheromone density, at equal situation, choose it randomly.
Increase the amount of pheromone on chosen arc by α.
If current node is the last node, the ant’s tour is finished, evaporate pheromone on every arc by β percent.
I := I + 1
Analyze the pheromone matrix to identifity the shortes path
End
3.2 Perancangan Antar Muka
Rancangan antar muka dari Aplikasi terdiri dari satu menu utama yang terdiri dari header, Input Alamat Asal, Input Alamat Tujuan, Start, Close, dan gambar graph nama kota yang selain sebagai
masukan, juga digunakan untuk menampilkan hasil keluaran. Perangkat lunak memberikan instruksi-instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu. Perangkat keras komputer yang digunakan adalah perangkat keras yang dapat mendukung perangkat lunak yang memiliki kemampuan atau tampilan grafis yang cukup baik. 3.3 Pengkodean dan Antar Muka
Pada bagian ini akan dijelaskan potongan-potongan dari kode sumber (source code) aplikasi implementasi dan simulasi pencarian jalur terpendek. Kode sumber untuk aplikasi implementasi dan simulasi pencarian jalur terpendek tersebut dikembangkan dengan menggunakan bahasa pemrograman Java versi Java 2 Standard Edition (J2SE).
3.3.1 HaryAnt.java
File ini berisi kode program HaryAnt sebagai
Superclass untuk penggambaran tampilan aplikasi. :
public class HaryAnt extends Jframe { private String Asal[] = {"","Cengkareng","Duri Kosambi","Green Garden","Kedoya","Jalan Panjang","Keb.Jeruk","Puri Indah", "Kembangan","Mercu Buana","Joglo"};
private String Tujuan[] = {"","Cengkareng","Duri Kosambi","Green Garden","Kedoya","Jalan Panjang","Keb.Jeruk","Puri Indah", "Kembangan", "Mercu Buana", "Joglo"}; public HaryAnt() {
super("Implementasi dan Simulasi Pencarian Jalur Terpendek dengan Algoritma Semut ( Ant Colony )");
JMenuBar menubar = new JMenuBar();
Gambar 4. Activity Diagram Aplikasi Implementasi dan Simulasi Algoritma Kumpulan Semut untuk
243 Keterangan kode program 4.2 :
a. Class HaryAnt menggunakan klausa extend yang mengidentifikasi bahwa class tersebut merupakan super kelas dari kelas itu sendiri.
b. Private string asal digunakan untuk pendeklarasian kota-kota asal yang bertipe string.
c. Private string tujuan digunakan untuk pendeklarasian kota-kota tujuan yang bertipe string.
3.3.2 HaryAntTest.java public class Hary extends Jpanel { protected Point2D[] mPoints; protected Point2D mSelectedPoint; public Hary() {
protected Point2D mSelectedPoint; public Hary() {
mPoints = new Point2D[13]; // Cubic curve.
mPoints[0] = new Point2D.Double(20, 150);//Cengkareng
mPoints[1] = new Point2D.Double(200, 50);//Green Garden
mPoints[2] = new Point2D.Double(400, 30);//Jalan panjang
mPoints[3] = new Point2D.Double(600, 40);//pos Pengumben
mPoints[4] = new Point2D.Double(700, 90);//Joglo mPoints[5] = new Point2D.Double(500,
120);//Keb.Jeruk
mPoints[6] = new Point2D.Double(80, 250);//Duri Kosambi
mPoints[7] = new Point2D.Double(400, 200);//Puri Indah
mPoints[8] = new Point2D.Double(600, 150);//kembangan
mPoints[9] = new Point2D.Double(650, 125);//Mercu Buana
mPoints[10] = new Point2D.Double(850, 140);//Ciledug
mPoints[11] = new Point2D.Double(350, 150);//Pasar Puri
mPoints[12] = new Point2D.Double(300, 50);//kedoya }
public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g.create(); g2.setColor(Color.GREEN);
Keterangan kode program 4.3 :
a. Program diatas digunakan untuk membuat titik-titik/ node-node pada tampilan program untuk pendefinisian tata letak kota.
b. Public void paintComponent (Graphics g) digunakan untuk menset warna titik/ node.
3.4 Pengujian Sistem 3.4.1 Pengujian Black Box
Pada pengujian ini diterapkan Metode Black Box yaitu pengujian untuk menemukan kesalahan dalam lingkup kategori sebagai berikut :
(1) fungsi-fungsi yang tidak benar atau hilang,
(2) kesalahan antarmuka,
(3) kesalahan dalam struktur data atau akses basis data, dan
(4) kesalahan kinerja (Pressman, 2002:551).
Pengujian dilakukan dengan menjalankan aplikasi implementasi dan simulasi pencarian jalur terpendek dengan menggunakan algoritm semut (Ant Colony) terlebih dahulu. Kemudian dilakukan pengujian dengan menekan tombol-tombol yang terdapat pada jendela-jendela dari aplikasi tersebut apakah sesuai dengan yang diharapkan.
Setelah dilakukan pengujian, tombol-tombol yang terdapat pada jendela utama program, tombo-tombol dapat berfungsi seperti yang telah diharapkan. Dan setelah dilakukan pengujian secara menyeluruh maka didapatkan keterbatasan yaitu :
1. Aplikasi hanya menampilkan jarak terpendek hanya berdasarkan jarak terpendek.
2. Aplikasi pencarian jalur terpendek ini dapat dijalankan pada system operasi windows dan linux.
3.4.2 Pengujian White Box
Pengujian White Box merupakan metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case [3]. Pengujian white box berfokus pada struktur control program. Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak.
Dengan menggunakan metode pengujian White
Box maka analisis sistem aplikasi akan memperoleh test case sebagai berikut:
1. Menjamin seluruh independent path didalam modul akan dikerjakan sekurang-kurangnya satu kali.
2. Mengerjakan seluruh keputusan logikal.
3. Mengerjakan seluruh loop yang sesuai dengan batasannya.
Diagram alir dan flow graf untuk menu pencarian jalur terpendek di gambarkan pada Gambar 6. Kompleksitas siklomatis V(G) berdasarkan jumlah
node dan edge yang terdapat pada gambar 5 didapat
V(G) = 13 edge – 7 node + 2 = 8. Artinya terdapat 8 jalur eksekusi yang dilewati paling tidak satu kali selama pengujian.
Dari pengujian menggunakan white box maka didapatkan analisis hasil pengujian sebagai berikut: 1. Proses setiap menu berjalan dengan baik.
2. Tombol-tombol menu dapat digunakan sesuai dengan fungsinya.
3. Pengendara dapat melihat setiap menu yang ditampilkan dengan baik.
4. Berdasarkan pengujian white box terdapat kesesuaian antara diagram alir dan kompleksitas siklomatik.
244
Gambar 6. Diagram alir pencarian jalur terpendek Secara fungsionalitas program tidak ditemukan
kesalahan dan sudah sesuai dengan proses yang ada pada sistem.
IV. KESIMPULAN
1. Pada tahap pengujian simulasi pencarian jalur terpendek menggunakan algoritma semut (Ant Colony) ini dapat digunakan seperti yang diharapkan.
2. Pada tahap pengujian menunjukkan bahwa simulasi pencarian jalur terpendek menggunakan algoritma semut (Ant Colony) ini secara fungsional bekerja dengan baik sesuai kebutuhan yang telah didefinisikan pada tahap analisis sampai perancangan. Metode pengujian yang digunakan oleh penulis adalah metode black box dan White Box.
3. Aplikasi ini diharapkan dapat membantu pengendara, khususnya bagi pengguna jalan sekitar Jakarta Barat untuk mempercepat dalam pemilihan jalur.
DAFTAR PUSTAKA
[1] Dharwiyanti, Sri dan Wahono, Romi Satria.
Pengantar Unified Modeling Language (UML). http://www.ilmukomputer.com, 2003.
[2] Haryanto, Bambang. Esensi-esensi Bahasa
Pemograman Java. Bandung : Informatika,
2005.
[3] Juwaeni, Ahmad. Unified Modeling Language (UML). http://www.enciety.com , 2009.
[4] Darigo M.,Gi. Dcaro. “The ant colony
optimization meta-heuristic”. New York :