Rancang Bangun Aplikasi Penentuan Rute Terdekat Dalam Pengelolaan
Penanaman Pohon Menggunakan Algoritma Genetika
(Studi Kasus PT. Hasil Alam)
ABSTRAK
Penelitian ini dilakukan untuk mengembangkan program aplikasi berbasis desktop dengan menggunakan teknologi Java yang membantu pengguna dalam menentukan jarak yang terdekat pada saat proses penanaman pohon dengan cara memberikan mekanisme penentuan jalur atau rute yang muncul pada peta. Mengacu pada pengaplikasian metode Algoritma Genetika untuk menyelesaikan permasalahan Traveling Salesman Problem, aplikasi ini dapat membantu penentuan rute terdekat berupa rute penanaman pohon yang paling tepat dan efisien berdasarkan pengukuran toleransi jarak yang ditempuh. Dengan adanya aplikasi ini, dapat memudahkan pengguna pada saat proses penanaman pohon agar jarak yang ditempuh lebih efisien sehingga memberikan cost benefit dari aspek penggunaan bahan bakar dibandingkan dengan cara penanaman yang konvensional dan bisa membantu untuk proses konservasi hutan yang berkelanjutan dan lebih baik.
Kata kunci: Algoritma Genetika, Java, Traveling Salesman Problem, TSP. 1. PENDAHULUAN
PT. Hasil Alam adalah perusahaan yang bergerak di bidang pengolahan kayu dan hasil hutan di Kalimantan Timur. Sebagai salah satu perusahaan yang bergerak di bidang kehutanan, selain melakukan penebangan hutan, tentunya PT. Hasil Alam juga melakukan program reboisasi. Kendala yang seringkali dihadapi PT. Hasil Alam pada saat melakukan kegiatan reboisasi adalah belum adanya sistem yang bisa membantu penentuan rute
untuk kegiatan penanaman pohon sehingga menimbulkan biaya yang besar.
Penentuan rute terdekat dilakukan dengan mengadaptasi solusi permasalahan dari Traveling Salesman Problem (TSP) dimana dihasilkan rute urutan kunjungan dari semua titik yang akan dikunjungi tepat satu kali. Beberapa mekanisme atau algoritma yang dapat digunakan sebagai alternatif untuk menghasilkan solusi dari TSP adalah algoritma heuristik, linear
programming dan algoritma genetika.
Alfon Wicaksi Universitas Ciputra UC Town, Citraland
Surabaya 60219 awicaksi@ciputra.ac.id Sudrajat Priyo Laksono
Universitas Ciputra UC Town, Citraland
Surabaya 60219 spriyo@student.ciputra.ac.id
Algoritma genetika dipilih sebagai algoritma untuk menyelesaikan masalah TSP tersebut karena mampu menghasilkan beberapa calon solusi sehingga didapatkan solusi terbaik dan juga dapat mempersingkat waktu secara signifikan dalam hal proses pengerjaannya.
Algoritma genetika digunakan untuk pengembangan aplikasi dalam melakukan proses mekanisme pencarian rute terpendek sehingga pengguna akan dimudahkan ketika akan melakukan penanaman pohon pada daerah hutan yang telah ditebang sebelumnya. Aplikasi ini dapat digunakan sebagai panduan dalam menentukan jarak terdekat pada sebuah rute penanaman pohon di daerah hutan yang akan ditanami sehingga pengguna bisa mendapatkan efisiensi biaya reboisasi dari sudut pandang pemilihan rute penanaman pohon yang optimal.
2. DASAR TEORI
2.1 Traveling Salesman Problem (TSP) TSP merupakan istilah yang muncul pertama kali sekitar tahun 1931 yang ditemukan oleh Meeril Flood dan John William. Pada problem TSP, solusi yang ingin didapatkan adalah bagaimana menentukan rute / jalur perjalanan terpendek untuk mengunjungi semua kota dengan jalur tertentu sehingga setiap kota terlewati hanya
satu kali dan mengakhiri perjalanan dengan kembali ke kota awal (Gutin & Punnen, 2007).
Gambar 1. Ilustrasi Traveling Salesman Problem
TSP dikenal sebagai salah satu permasalahan optimasi klasik yang berat untuk dipecahkan secara konvensional. Oleh karena itu dibutuhkan sebuah metode atau algoritma yang dapat diimplemetasikan ke dalam ide permasalahan dari TSP untuk memberikan solusi alternatif pemecahan masalah yang lebih baik (Applegate, 2006).
Permasalahan utama dari TSP adalah meminimalkan jarak yang ditempuh oleh seorang salesman dalam melewati n kota dan kemudian kembali ke kota awal. Di dalam perjalanan tersebut setiap kota hanya akan dilalui tepat satu kali (Obitko, 1998).
Kota-kota yang akan dilewati masing-masing mempunyai kordinat (x,y) sehingga jarak antar kota dapat dihitung dengan rumus Euclidean distance yaitu :
(1) Dimana d adalah jarak antara titik p dan q.
Permasalahan optimasi TSP yaitu pencarian lintasan terpendek dapat dinyatakan dengan rumus persamaan:
Min D =
(2) Dimana D adalah jarak total yang ditempuh sebagaimana telah dijelaskan pada rumus sebelumnya, N adalah jumlah kota yang dikunjungi dan dist (Ci,Ci+1) adalah jarak antara kota ke-i dan kota ke i+1 dalam suatu rute perjalanan.
2.2 Algoritma Genetika
Algoritma genetika pertama kali ditemukan oleh seorang berkebangsaan Amerika Serikat yang bernama John Holland. Algoritma genetika merupakan sebuah algoritma yang dapat diaplikasikan pada berbagai permasalahan optimasi dimana algoritma ini didasarkan pada proses evolusi makhluk hidup yang mengalami seleksi alamiah untuk dapat bertahan hidup. Dalam proses evolusi, individu secara terus menerus mengalami perubahan gen untuk menyesuaikan diri atau beradaptasi dengan lingkungan hidupnya. Bagi yang mampu beradaptasi dengan lingkungannya maka ia akan memiliki peluang hidup yang lebih besar dan dapat melakukan reproduksi. Sedangkan yang tidak mampu beradaptasi
akan mengalami kepunahan (Gen, & Cheng, 1997).
Secara umum algoritma genetika memiliki urutan kerja secara kronologis yaitu sebagai berikut (Langdon & Ricardo, 2002):
1. Pembentukan populasi secara acak dari n kromosom solusi.
2. Proses evaluasi menggunakan nilai fitness. Proses evaluasi akan berhenti ketika salah satu dari tiga kondisi berikut telah terpenuhi yaitu:
a. Ditemukan suatu individu dengan
nilai yang mendekati nilai fitness. b. Proses evolusi telah mencapai
jumlah generasi maksimum yang telah ditentukan.
c. Ditemukan konvergensi pada suatu kondisi tertentu (tidak ada peningkatan nilai fitness yang diharapkan dalam beberapa generasi tertentu).
3. Populasi yang baru akan dibentuk dengan melakukan tahap-tahap berikut ini:
a. Memilih 2 kromosom dari anggota populasi awal sebagai parent dengan operasi seleksi.
b. Operasi genetika rekombinasi (crossover) dilakukan terhadap 2 kromosom yang telah dipilih sehingga menghasilkan sebuah kromosom baru.
c. Setelah dilakukan rekombinasi kemudian dilakukan operasi genetika mutasi terhadap kromosom yang baru tersebut.
d. Memasukkan kromosom baru ke dalam sebuah populasi baru.
4. Mengganti populasi lama dengan populasi baru.
5. Proses akan terus berjalan secara berurutan dengan mengulangi kembali mulai dari proses evaluasi pada nomor 2 hingga sebuah solusi terbaik dalam bentuk kromosom telah ditemukan sesuai dengan syarat-syarat yang diinginkan.
Gambar 2. Urutan kerja algoritma genetika Hal-hal yang perlu diperhatikan dalam menyusun algoritma genetika untuk TSP adalah (Obitko,1998):
1) Cara merepresentasikan solusi ke dalam kromosom, dan
2) Proses operasi genetika (crossover dan mutasi).
Untuk permasalahan TSP, kromosom dapat direpresentasikan dengan dua cara yaitu, permutation representation dan
random keys representation.
2.3 Java
Pembuatan aplikasi ini menggunakan bahasa pemrogaman Java, dengan platform J2SE. Untuk membantu proses penyimpanan data, aplikasi ini menggunakan struktur data ArrayList. Java memiliki beberapa kelebihan, selain sebagai salah satu bahasa pemrograman berbasis obyek, Java dapat berjalan pada berbagai macam platform (Sierra & Bates, 2005).
Gambar 3. Java Process
2.4 Java 2D
Java 2D merupakan library yang disediakan Java Swing untuk kegiatan pengolahan data secara visual. Java 2D merupakan seperangkat kelas yang dapat digunakan untuk membangun sebuah dan
gambar atau grafik 2 dimensi, mulai dari pembuatan model 2D hingga pembuatan animasi 2D. Java 2D biasa digunakan untuk membangun sebuah program aplikasi interaktif seperti pembuatan animasi, permainan interaktif, manipulasi gambar / foto (Zang & Liang, 2007).
2.5 JDOM (Java-based Document Object Model)
JDOM digunakan untuk mengolah data dalam bentuk format XML. JDOM merupakan pengembangan dari teknologi SAX parser dimana JDOM memiliki keunggulan yaitu dapat melakukan editing pada file XML serta dapat melakukan proses
export / import dokumen XML pada bahasa
pemrograman Java (Sierra & Bates, 2005).
2.6 JGAP (Java Genetic Algorithm Package)
JGAP merupakan sebuah paket
library yang berisi komponen pemrogaman
algoritma genetika yang tersedia dalam bentuk Java framework. JGAP menyediakan mekanisme algoritma genetika dasar yang dapat digunakan dengan mudah untuk diaplikasikan di dalam menyelesaikan permasalahan dengan menerapkan prinsip evolusi genetika untuk sebuah solusi masalah.
Untuk menggunakan library JGAP pada sebuah aplikasi, perlu diperhatikan beberapa hal, yaitu:
1. Perencanaan untuk pembuatan kromosom.
2. Mengimplementasikan fungsi fitness.
3. Membuat sebuah obyek Configuration.
4. Melakukan evolusi terhadap populasi.
JGAP memiliki beberapa kelas komponen yang memiliki fungsi yang berbeda-beda. JGAP juga menyediakan kelas yang bisa diimplementasikan secara langsung untuk membuat menemukan solusi bagi permasalahan tertentu.
2.7 SDLC (Software Development Life Cycle)
Dalam perancangan dan pembuatan aplikasi ini, digunakan pendekatan berbasis SLDC (Software Development Life Cycle) berorientasi obyek. Meski banyak dari pendekatan model, SDLC memiliki tahap-tahapan yang umum yaitu: planning,
analysis, design, implementation, dan system testing. Pada perancangan aplikasi ini
metode perancangan SDLC yang digunakan adalah model waterfall.
Gambar 4. Fase SDLC siklus Waterfall
3. PERANCANGAN SISTEM
Perancangan desain sistem ini merupakan rancangan yang digunakan dalam pembuatan program aplikasi Tree
Tracker. Kebutuhan pengguna terhadap
aplikasi didapatkan dari hasil kegiatan wawancara. Kemudian hasil wawancara tersebut digunakan untuk membuat fitur-fitur dari aplikasi sesuai dengan kebutuhan
client. Perancangan desain sistem ini
meliputi platform aplikasi yang digunakan, desain UML, desain arsitektur sistem, desain GUI dan desain untuk proses pengujian.
Kebutuhan dasar dari aplikasi ini menggunakan platform dengan bahasa pemrogaman Java. Modul yang digunakan dalam pemrogaman yaitu library Java 2D
dan JGAP. Library Java 2D berfungsi untuk membuat tampilan grafis dari rute penanaman. Library JGAP berfungsi untuk mengolah data input dengan menggunakan algoritma genetika untuk menghasilkan solusi permasalahan berupa urutan rute terpendek.
Kebutuhan dari aplikasi Tree Tracker ini dtuliskan dalam dokumen SRS (Software
Requirements Specification) yang berisi
spesifikasi kebutuhan teknis dari perangkat lunak, kebutuhan non-teknis, batasan-batasan dalam desain, dan faktor-faktor lain yang mempengaruhi pengembangan perangkat lunak.
3.1 Rancangan Penelitian
Kegiatan penelitian pada tugas akhir ini memakai dua metode, yaitu: metode wawancara dan metode observasi. Penelitian yang dipakai dengan metode wawancara adalah penelitian kualitatif sehingga hasil yang diperoleh berupa data deskriptif yang disampaikan melalui kata-kata pada kegiatan wawancara.
Penelitian dengan proses observasi adalah penelitian kuantitatif sehingga hasil yang diperoleh nantinya berupa data deskriptif yang disampaikan melalui foto dari pengamatan secara langsung.
3.1.1 Wawancara
Metode wawancara ini dilakukan untuk memperoleh data dalam penelitian dengan cara melakukan tanya jawab langsung dengan responden, yaitu pihak manajer operasional dari PT. Hasil Alam, dengan menggunakan pedoman wawancara (interview guideline). Aspek yang ingin diperdalam pada wawancara ini dapat dikelompokkan menjadi empat bagian yaitu:
1. Aspek permasalahan yang dihadapi. 2. Aspek metode/sistem penanaman
pada saat ini.
3. Aspek kebutuhan pengguna.
4. Aspek solusi yang ingin didapatkan.
3.1.2 Observasi
Metode observasi ini dilakukan dengan cara melakukan pengamatan secara langsung terhadap segala sesuatu yang berkaitan dengan aktivitas penanaman pohon oleh PT. Hasil Alam sehingga didapatkan informasi yang berguna untuk pengembangan aplikasi. Kegiatan observasi ini dilakukan pada waktu yang bersamaan dengan kegiatan wawancara. Pada kegiatan observasi tersebut juga dilakukan pengambilan foto sebagai salah satu bentuk pengamatan terhadap proses yang dilakukan pada saat itu.
3.1.3 Fitur Aplikasi
Fitur utama dari aplikasi Tree
Tracker yaitu:
1. Find Shortest Route
Fitur ini membantu user dalam menentukan rute terpendek untuk proses penanaman pohon dengan cara melakukan proses penghitungan dan seleksi untuk penentuan rute terpendek yang mengadopsi metode penyelesaian masalah TSP dengan melakukan generate beberapa solusi rute yang memungkinkan. Kemudian dari beberapa rute tersebut akan diseleksi menggunakan teknik Algoritma Genetika yang menjalankan operasi genetika pada saat sistem aplikasi dijalankan. Sistem akan memberikan informasi urutan rute penanaman pohon yang dilalui dari satu cluster ke cluster yang lain secara kronologis yang disajikan dalam bentuk data visual.
2. Load Cluster Spots
User dapat memasukkan data berisi kandidat titik kordinat cluster-cluster yang akan dikunjungi untuk rute penanaman pohon. Titik kordinat tersebut berupa titik tengah dari tiap cluster sebagai representasi dari sebuah camp / meeting point di tengah cluster yang dijadikan tempat berkumpul para
pekerja sebelum melakukan kegiatan penanaman pohon. Titik-titik cluster tersebut akan ditampilkan secara visual pada GUI dari aplikasi Tree Tracker.
3. Get Total Route Length
Memberikan gambaran dan prediksi perhitungan cost benefit kepada user berdasarkan pertimbangan dari perhitungan total jarak tempuh dari rute penanaman yang diberikan.
3.3 Use Case Diagram
Pada bagian ini dijelaskan mengenai use case dari fitur aplikasi Tree Tracker yaitu fitur Load Data dan Generate Route
Path.
Gambar 5. Use Case Diagram Tree Tracker
3.4 Sequence Diagram
Sequence diagram ini menjelaskan proses yang dilakukan pada saat user melakukan klik tombol “Load” dan “Start” pada aplikasi Tree Tracker.
Gambar 6. Sequence Diagram Tree Tracker
3.5 Activity Diagram
Activity diagram ini menjelaskan
tentang proses yang terjadi mulai dari saat user melakukan load data pada interface hingga user mendapatkan data berupa urutan rute terpendek.
Gambar 7. Activity Diagram Tree Tracker
3.6 Desain Sistem
Diagram ini menerangkan tentang struktur elemen / komponen – komponen yang diperlukan dalam pembuatan sistem dari aplikasi yang dibuat. Di dalam diagram ini juga dijelaskan tentang fungsi dari tiap komponen dan bagaimana komponen-komponen saling berhubungan satu sama lain.
Gambar 8. Architecture Diagram Tree Tracker
3.7 Desain Antarmuka
Desain tampilan antarmuka utama terdiri atas panel yang berisi peta area hutan, di dalam peta tersebut terdapat grid (garis pembagi) yang mewakili tiap cluster (petak kecil). Kemudian pada tampilan aplikasi terdapat tombol “LOAD” dan “START”.
3.8 Desain Algoritma Genetika
Perancangan desain algoritma genetika ini meliputi mekanisme proses seleksi, mekanisme operator genetika yang digunakan yaitu rekombinasi (crossover) dan mutasi, serta mekanisme untuk penentuan kromosom optimal.
1) Mekanisme Seleksi
Kromosom yang ada di dalam proses ini merupakan representasi dari rute kunjungan cluster untuk proses
penanaman. Kromosom berisi gen yang merepresentasikan koordinat titik tengah
cluster yang akan dikunjungi pada rute
penanaman. Penentuan jumlah gen pada sebuah kromosom berdasarkan jumlah titik cluster yang akan dikunjungi pada rute penanaman yaitu sejumlah 9 titik. Kromosom dengan nilai fitness terbaik akan berada pada posisi pertama untuk dilakukan operasi genetika, dua kromosom pada posisi teratas akan menjadi induk (parent) untuk proses operasi genetika crossover.
Gambar 10. Mekanisme Proses Seleksi
2) Mekanisme Rekombinasi
Rekombinasi yang digunakan dalam pembuatan perangkat lunak ini menggunakan greedy crossover. Proses rekombinasi dilakukan untuk mendapatkan kromosom yang lebih baik yang merepresentasikan rute optimal untuk proses penanaman. Proses rekombinasi dilakukan dengan cara melakukan persilangan antara dua kromosom induk (parent) untuk menghasilkan kromosom baru yang berbeda (offspring).
Gambar 11. Mekanisme Proses Rekombinasi 3) Mekanisme Mutasi
Operator mutasi dalam pembuatan perangkat lunak ini menggunakan
swapping mutation. Proses mutasi
dilakukan apabila pada proses rekombinasi yang telah dilakukan sebelumnya tidak dapat menemukan nilai yang memenuhi syarat dari kromosom yang dihasilkan. Proses mutasi dimulai dengan mengambil sebuah kromosom, lalu memilih secara random dua gen anggota dari kromosom tersebut. Kemudian dilakukan
pertukaran posisi (swap) pada kedua gen tersebut. Hasil yang didapatkan adalah kromosom baru dengan anggota gen yang berbeda hasil dari proses mutasi.
Gambar 12. Mekanisme Proses Mutasi
4) Mekanisme Penentuan Kromosom Optimal
Proses penentuan kromosom optimal dilakukan pada saat ditemui keadaan konvergensi positif yaitu penemuan sejumlah kromosom offspring hasil operasi genetika yang memiliki genotype yang nilainya seragam pada satu proses generasi, kemudian dari kondisi konvergen tersebut diambil nilai kromosom yang memiliki nilai genotype terkecil yang dalam hal ini yaitu nilai total jarak tempuh rute yang minimum.
4. IMPLEMENTASI DAN PENGUJIAN 4.1 Implementasi
4.1.1 Modul Input (Pembacaan File XML)
Modul ini digunakan untuk mengambil data dari file directory. Modul ini menggunakan library JDOM yang memiliki fungsi untuk mengolah data dalam format XML.
Gambar 13. Modul Input
4.1.2 Modul Utama (Penentuan Rute Optimal Menggunakan Library JGAP)
Proses pada modul utama diawali dengan menampung data dari listCordinates dengan tipe data ArrayList yang ditampung ke dalam CLUSTERARRAY Kemudian dilakukan inisialisasi dengan memasukkan isi dari CLUSTERARRAY ke dalam parameter yang ada untuk menghitung jarak dari setiap titik kordinat yang ada dengan menggunakan rumus penghitungan jarak.
4.1.3 Modul Output (penggambaran obyek Java 2D)
Proses pada modul output diawali dengan mengambil semua nilai x dan y dari listCordinates2D dan menampungnya pada points dengan tipe data List<Ellipse2D> untuk dijadikan titik kordinat x dan y sebuah bentukan ellipse yang akan digambar pada panel. Untuk menggambarkan garis yang merepresentasikan rute optimal, proses yang dilakukan hampir sama dengan proses saat menggambarkan bentukan ellipse.
Gambar 15. Modul Output
4.2 Pengujian
4.2.1 Scenario Testing Fitur Load Data
Metode pengujian yang dipakai pada kegiatan pengujian ini adalah skenario testing yang dibuat berdasarkan fungsi fitur yang berasal dari use case.
Tabel 1. Skenario Testing Pada Fitur Load Data
Gambar 16. Skenario Hasil Testing Pada Fitur Load Data
4.2.2 Scenario Testing Fitur Generate Route Path
Tabel 2. Skenario Testing Pada Generate Route Path
Gambar 17. Skenario Hasil Testing Pada Fitur Load Data
4.2.3 Performance Testing
Pengujian ini dimaksudkan untuk menguji kinerja algoritma genetika yang diimplementasikan di dalam aplikasi Tree
Tracker. Pengujian dilakukan dengan
memberikan sampel jumlah titik cluster yang berbeda yaitu 10, 15 dan 20 titik koordinat cluster untuk sebuah kromosom yang merepresentasikan letak titik cluster. Kemudian titik cluster tersebut disimulasikan sebagai input di dalam aplikasi Tree Tracker dan dilakukan pengujian sebanyak 30 kali iterasi.
Jumlah kromosom pada populasi ditentukan sesuai dengan jumlah titik koordinat yang diinputkan. Kromosom optimal yang dihasilkan yaitu urutan rute kunjungan cluster dan total jarak dari rute tersebut akan dicatat dalam tabel 3.
Tabel 3. Performance Testing Pada Algoritma Genetika
5. KESIMPULAN DAN SARAN 5.1 Kesimpulan
1. Pada penelitian ini telah berhasil dibuat suatu aplikasi penentuan rute terdekat untuk penanaman pohon dalam bentuk aplikasi desktop yang dikembangkan pada platform Java.
2. Fitur-fitur yang dibuat pada aplikasi ini sesuai dengan keinginan client yaitu PT. Hasil Alam terhadap aplikasi penentuan rute terdekat yaitu dapat menampilkan rute optimal untuk proses penanaman pohon dalam bentuk tampilan visual, pengguna juga dapat melihat total jarak dari simulasi rute optimal tersebut. 3. Berdasarkan hasil pengujian yang telah
dilakukan, fitur-fitur yang ada pada aplikasi Tree Tracker dapat dijalankan dengan lancar. Hasil pengujian kinerja yang dilakukan sebanyak 30 kali percobaan menunjukkan bahwa aplikasi
mampu menghasilkan nilai total jarak yang dapat dikatakan konsisten.
5.2 Saran
1. Untuk pengembangan selanjutnya disarankan untuk memperhatikan aspek-aspek yang belum ada namun berkaitan langsung dengan aplikasi saat ini yaitu aspek geografis seperti kelengkungan bumi, perbedaan ketinggian dan jenis permukaan tanah.
2. Disarankan agar aplikasi bisa
dikembangkan sehingga mempunyai fitur tambahan seperti: fitur real-time information report yang disajikan dalam bentuk data file konkrit, fitur yang melakukan koneksi dengan piranti GPS sehingga mampu memberikan panduan rute bagi pengguna secara langsung. 3. Penulis berharap penelitian ini dapat
dijadikan sebagai referensi dalam pengembangan aplikasi selanjutnya.
6. DAFTAR PUSTAKA
Applegate, David (2006), The Traveling Salesman Problem: A Computational Study, Princeton University Press.
Gutin, G. & Punnen (2007), The Traveling Salesman Problem and Its Variations, New York: Springer.
Gen, M. & Cheng, R. (1997), Genetic Algorithms and Engineering Design, John Wiley & Son, Inc. Langdon, B. William & Poli Ricardo (2002), Foundations of Genetic Programming, New York:
Springer.
Obitko, Marek (1998), Introduction to Genetic Algorithm, Czech Technical University. Sierra, Kathy and Bert Bates (2005), Head First Java, California: O’Reilly.