Jurnal Abyan Hafizh Raihan
Jurnal Abyan Hafizh Raihan
ABSTRAK
Penelitian ini dimaksudkan untuk menentukan metode heuristik pengolahan data Travelling Salesman
Problem yang efektif dalam jarak tempuh yang minimum dan efisien dalam waktu proses pengolahan
data. Persoalan rute ini termasuk dalam kelas NP-hard dimana terdapat banyak alternatif rute
yang meningkat secara ekponensial seiring banyaknya jumlah kota yang akan dikunjungi.
Nearest Neighbour, Saving Algorithm, Nearest Insertion, Cheapest Insertion, dan Farthest
Insertion merupakan metode heuristik yang dapat digunakan dalam pengolahan data
Travelling Salesman Problem. Metode heuristik tersebut diterjemahkan kedalam bahasa
pemrograman untuk dirancang sebuah perangkat lunak yang dapat membantu dalam
pengolahan data disertakan fungsi yang dapat menampilkan waktu proses pengolahan data.
Dari hasil pengolahan data sekunder dapat disimpulkan bahwa metode yang efektif dalam
pengolahan data matriks jarak adalah metode Nearest Neighbour dan metode yang efisien
dalam waktu proses pengolahan data adalah Saving Algorithm.
1. PENDAHULUAN
1.1 Latar Belakang
Travelling Salesman Problem merupakan
masalah kombinasi optimasi dalam operasi
penelitian dan ilmu komputer, dengan daftar kota-
kota yang akan dikunjungi, cara ini sangat tepat
untuk menemukan dengan waktu sesingkat mungkin
setiap kota yang akan dikunjungi dengan total jarak
terpendek. Untuk dapat menentukan urutan dari
sejumlah kota yang harus dilalui, setiap kota harus Sumber: Annies, 2002
Gambar 1 Posisi Kota-kota yang akan dilewati
dikunjungi satu kali dalam perjalannya, dan
perjalanan tersebut harus berakhir pada kota
keberangkatannya, dengan jarak antara kota satu dan Persoalan rute terpendek merupakan suatu
lainnya sudah diketahui. Permasalahan penentuan jaringan pengarahan rute perjalanan di mana
rute ini termasuk ke dalam kelas NP-hard yang pada seseorang pengarah jalan ingin menentukan rute
umumnya menggunakan pendekatan heuristik untuk terpendek antara beberapa kota berdasarkan rute
mencari solusinya. Permasalahan utama adalah alternatif yang tersedia yang biasanya terdiri dari
bagaimana seorang salesman dapat mengatur rute beberapa kota tujuan. Masalah ini umumnya
perjalananannya untuk mengunjungi sejumlah kota menggunakan representasi graph untuk memodelkan
yang diketahui jarak satu kota dengan kota lainnya persoalan yang diwakili sehingga lebih memudahkan
sehingga jarak yang ditempuh merupakan jarak penyelesaiannya. Masalahnya adalah bagaimana
minimum. cara mengunjungi vertek pada graph dari vertek awal
Untuk menyelesaikan persoalan tersebut, tidak ke vertek akhir dengan bobot minimum, dalam hal ini
mudah dilakukan karena terdapat ruang pencarian bobot yang digunakan adalah jarak dan kota-kota
dari sekumpulan permutasi sejumlah kota. Maka yang dikunjungi diasumsikan sebagai vertek yang
Travelling Salesman Problem kemudian dikenal saling terhubung.
dengan persoalan Non Polinomial. Gambaran Masalah rute terpendek suatu masalah klasik
sederhana dari pengertian tersebut adalah sebagai yang sering dijumpai dalam kehidupan sehari-hari di
berikut: berbagai sektor kehidupan, antara lain di bidang
transportasi, komunikasi dan komputasi. Masalah ini
menjadi masalah yang penting karena berkaitan
2
dengan masalah meminimumkan jarak dan efisiensi 2. Data sekunder yang digunakan adalah data yang
waktu yang dibutuhkan. Masalah rute terpendek berasal dari TSPLib dengan maksimum jumlah
untuk semua pasangan vertek adalah masalah titik adalah 100 titik.
menentukan lintasan terpendek untuk setiap vertek
yang ada, dengan mengoptimalkan fungsi tujuan 2. LANDASAN TEORI
(objektif) tertentu. 2.1 Riset Operasional
Permasalah rute merupakan permasalahan Riset operasi adalah suatu aplikasi dari
yang cukup sederhana namun memiliki perhitungan berbagai metode ilmiah untuk tujuan penguraian
yang kompleks berdasarkan jumlah tujuan yang akan terhadap masalah-masalah yang kompleks yang
dirancang sebuah rute, oleh karena itu untuk muncul dalam pengarahan dan pengelolaan dari
mempersingkat pengolahan data permasalahan rute
suatu sistem besar (manusia, mesin-mesin,
tersebut diperlukan sebuah perangkat lunak dengan
tujuan mempercepat waktu proses pengolahan data
bahan-bahan, dan uang) dalam bidang
menimbang banyaknya alternatif yang dapat terjadi perindustrian, bisnis, pemerintahan, dan
dalam sebuah penentuan rute. pertahanan.
digunakan jika tujuan pengoptimalan berhubungan algoritma dikatakan benar (correct), jika algoritma
dengan keuntungan, penerimaan dan sejenisnya. tersebut berhasil mengeluarkan output yang benar
Sedangkan bentuk minimisasi akan dipilih jika untuk semua kemungkinan input.
tujuan pengoptimalan berhubungan dengan biaya,
waktu, jarak dan sejenisnya. 2.4 Travelling Salesman Problem
Travelling Salesman Problem secara umum
2.2 Distribusi merupakan masalah optimasi yang kompleks dimana
Distribusi meliputi semua aspek dalam dengan bertambahnya variabel secara linear maka
pengiriman barang kepada agen. Sebenarnya, waktu yang dibutuhkan untuk memecahkan masalah
distribusi merupakan bagian dari material handling, itu bertambah secara eksponensial. Permasalahan
karena material handling merupakan perpindahan Travelling Salesman Problem ada 2 macam, yaitu
material pada setiap saat dan setiap titik. Ada Symmetric Travelling Salesman Problem dan
beberapa permasalahan yang biasa dihadapi dalam Assymmetric Travelling Salesman Problem. Jumlah
distribusi berkaitan dengan optimasi jaringan kombinasi perjalanan yang dihasilkan untuk kasus
distribusi adalah: symmetric Travelling Salesman Problem adalah (n-
1. Titik Depot 1)!/2 dan untuk Assymetric Travelling Salesman
Titik depot sangat menentukan kelancaran Problem jumlah kombinasi adalah (n-1)!, dan n
pendistribusian barang, sehingga barang merupakan banyaknya kota yang akan dibuat sebuah
dapat sampai pada agen tepat pada rute. Tabel dibawah ini menunjukan banyaknya
waktunya. jumlah kombinasi pada sejumlah kota. Dengan
2. Penentuan rute dan jadwal pengiriman melihat data tersebut, maka permasalahan Travelling
Secara umum permasalahan penjadwalan Salesman Problem unbtuk jumlah kota yang bersar
dan penentuan rute pengiriman memiliki beberapa adalah permasalahan yang kompleks dan sulit untuk
tujuan yang ingin dicapai seperti tujuan untuk dipecahkan. Jadi, untuk memecahkan Travelling
meminimumkan biaya pengiriman, meminimumkan Salesman Problem diperlukan algoritman yang pada
waktu atau meminimumkan jarak tempuh. Salah satu intinya adalah mengurangi pengecekan terhadap
dari tujuan tersebut bisa menjadi fungsi tujuan semua kombinasi yang mungkin.
(objective function) dan yang lainnya menjadi Tabel 1. Tabel Jumlah Kombinasi
kendala (constraint). Misalnya, fungsi tujuannya Jumlah Kota Jumlah Jumlah
adalah meminimumkan biaya pendistribusian, (n) Kombinasi Kombinasi
namun ada kendala time window dan kendala Symmetric Assymetric
maksimum jarak tempuh tiap kendaraan, disamping (n-1)!/2 (n-1)!
kendala lain seperti kapasitas atau kendala lainnya. 5 12 24
Pada penulisan skripsi ini, manajemen distribusi 6 60 120
merupakan pengelolaan terhadap kegiatan untuk 7 360 720
memindahkan surat kabar dari suatu depot ke 8 2520 5040
sejumlah agen dimana proses pemindahan tersebut 9 20160 40320
akan membentuk atau menghasilkan rute distribusi 10 181440 362880
yang dibatasi oleh kapasitas kendaraan.
2.4.1 Nearest Neighbour Method
2.3 Algoritma Metode Nearest Neighbour merupakan
Menurut Thomas H. Cormen (2009:5), metode paling sederhana untuk menyelesaikan
Algoritma adalah prosedur komputasi yang masalah Travelling Salesman Problem. Pilihlah
mengambil beberapa nilai atau kumpulan nilai salah satu node yang mewakili suatu kota atau lokasi
sebagai input kemudian di proses sebagai output awal. Selanjutnya, pilih node tujuan atau kota yang
sehingga algoritma merupakan urutan langkah akan dikunjungi berikutnya, dengan pertimbangan
komputasi yang mengubah input menjadi output. hanya memilih kota yang memiliki jarak terdekat
Algoritma merupakan cara yang dapat ditempuh oleh dengan kota yang sebelumnya dikunjungi.
komputer dalam mencapai suatu tujuan, terdiri atas Kemudian, setelah seluruh kota dikunjungi atau
langkah-langkah yang terdefinisi dengan baik, seluruh nodes telah terhubung, maka tutup rute
menerima input, melakukan proses, dan perjalanan dengan kembali ke kota asal (node asal).
menghasilkan output. Meskipun tidak selalu, Secara umum langkah-langkah dari metode ini
biasanya sebuah algoritma memiliki sifat bisa adalah sebagai berikut :
dihitung (computable) atau bisa dihitung. Sebuah
4
2.4.2 Method of Clarke and Wright: The Saving Pada gambaran di atas ini, dapat
Algorithm dilhiat rute yang baru akan menghemat
Metode ini digunakan untuk meminimalkan waktu dan jarak tempuh dari kendaraan
jarak atau waktu atau biaya pengiriman dengan dalam mendistribusikan pesanan konsumen.
mempertimbangkan hambatan yang ada. Metode ini Nilai dari saving matriks dirumuskan
dipublikasikan sebagai suatu algoritma yang sebagai berikut :
digunakan sebagai solusi untuk permasalahan rute Sij = Cki + Ckj – Cij
kendaraan dimana sekumpulan rute pada setiap Dimana :
langkah ditukar untuk mendapatkan sekumpulan rute S : Merupakan Saving
yang lebih baik, dan metode ini digunakan untuk C : Merupakan jarak
mengatasi permasalahan yang cukup besar, dalam k : Kota asal
hal ini adalah jumlah rute yang banyak. i : Kota tujuan pertama
Berikut ini merupakan langkah-langkah dari j : Kota tujuan kedua
metode Clarke and Wright Savings Heuristric
Menurut Chopra (2010,380) adalah sebagai berikut: 2.4.3 Method of Nearest Insertion
1. Mengidentifikasi matriks jarak Pada Method of Nearest Insertion yang
Matriks jarak merupakan jarak lokasi dilakukan pertama kali adalah menentukan titik
satu dengan lokasi lainnya yang akan untuk disisipkan dengan mencari titik bebas yang
dikunjungi oleh kendaraan. Jarak yang paling dekat dengan suatu titik pada tur. Algoritma
diketahui akan merngambarkan biaya yang pada dasarnya melakukan sebuah operasi minimum
dikeluarkan dalam melakukan transportasi di pada jarak dari titik bebas untuk suatu titik pada tur.
antara dua lokasi yang berbeda. Cara untuk Selanjutnya dengan algoritma ini, ditentukan link
menghitung jarak dari setiap lokasi dapat terbaik untuk menyisipkan titik ini. Berikut
dilakukan dengan beberapa cara. Contoh merupakan langkah cara penyelesaian pada metode
salah satu cara adalah dengan mengetahui ini :
waktu tempuh yang dibutuhkan oleh suatu 1. Pilih sebuah kota sebagai kota asal.
kendaraan dari satu lokasi ke lokasi lainnya. 2. Pilih kota terdekat dari kota asal pertama.
Dengan mengasumsikan rata-rata kecepatan 3. Pilih kota terdekat dari kota asal kedua.
yang digunakan, maka jarak akan diketahui 4. Ulangi hingga tersisa 1 kota yang tidak
dengan rumus: terhubung.
𝐷=𝑣𝑥𝑡 5. Masukan kota yang belum terpilih kedalam
dimana rute sementara dengan rumus:
D = Jarak antara dua lokasi yang berbeda F = Cik + Ckj – Cij
(km) C: Jarak
V = Kecepatan rata-rata kendaraan (km/jam) k: Kota yang belum terpilih
t = Waktu tempuh kendaraan (jam) i : Kota pertama dalam insertion
j : Kota kedua dalam insertion
2. Mengidetifikasi saving matriks 6. Hubungkan kota terakhir pada tur ke kota
Saving matriks merupakan penghematan asal.
suatu kendaraan mengunjungi beberapa
lokasi secara bersamaan dibandingkan 2.4.4 Method of Cheapest Insertion
dengan mengunjungi satu per satu lokasi. Pada Method of Cheapest Insertion yang
dilakukan pertama kali adalah menentukan setiap
5
titik yang masih tersisa dan bebas atau titik yang sebuah jaringan (internet). Sedangkan framework
belum dikunjungi yang menghasilkan link optimal dapat dipandang sebagai fondasi dari aplikasi web
untuk menyisipkan titik ini. Penalti penyisipan yang menangani sebagian besar detail level-bawah
adalah jumlah jarak ke titik bebas dikurangi dari link yang bersifat repetitif dan membosankan dalam
yang akan dihapus. Pada Cheapest Insertion menuliskan kodenya, sehingga pengembang dapat
kemudian dilakukan pemilihan titik untuk disisipkan fokus pada pembangunan fungsionalitas aplikasi.
sebagai titik penyisipan dengan penalti minimum. Full-stack menunjuk kepada luasnya fungsionalitas
Berikut merupakan langkah cara penyelesaian pada yang dapat diberikan oleh framework Rails mulai
metode ini: dari penanganan antarmuka pada klien sampai
1. Pilih sebuah kota sebagai kota asal. urusan database di server. Sedangkan Ruby adalah
2. Pilih kota terdekat dari kota asal. sebuah bahasa scripting berorientasi objek yang
3. Masukan kota yang belum terpilih kedalam diciptakan pertama kali oleh Yukihiro Matsumoto
rute sementara dengan rumus: pada awal 1990-an (Lenz, 2008:2).
F = Cik + Ckj – Cij
C : jarak 2.5.2 Karakteristik Rails
k : kota yang belum terpilih Rails mempunyai karakteristik yang berbeda
i : Kota pertama dalam insertion dibandingkan web framework lainnya, diantaranya:
j : kota kedua dalam insertion 1. Berbasis arsitektur MVC (Model-View-
4. Ulangi tahap ketiga hingga seluruh kota Controller) Pemisahan data, presentasi
terhubung. dan logika kontrol dalam 3 tempat yang
5. Kota terakhir dalam rute dihubungkan ke terpisah yang lebih memudahkan dalam
kota asal pertama. memelihara kode yang sedang dibuat
dan mengontrol perpindahan data.
2.4.5 Method of Farthest Insertion a. Model
Pada Method of Farthest Insertion yang Arsitektur model diatur oleh
dilakukan pertama kali adalah menentukan setiap ActiveRecord yang merupakan salah
titik bebas yang memiliki jarak ke manapun pada tur satu lapisan dalam kode Rails yang
terkecil. Kemudian masukkan titik bebas yang menyediakan ORM (Object-
memiliki maksimum jarak terkecil ke titik pada tur. Relational Mapping) antara Rails
Berikut merupakan langkah cara penyelesaian pada dan database.
metode ini: b. View
1. Pilih sebuah kota sebagai kota asal Bagian view dari arsitektur
2. Pilih kota kedua dengan jarak terjauh. menangani presentasi data, misalnya
3. Pilih kota kedua dengan jarak terjauh dari pada sebuah web browser.
kota yang terpilih sebelumnya, sisipkan c. Controller
kota tersebut. Controller bersama-sama dengan
4. Ulangi tahap 3 hingga tersisa 2 kota. view tergabung dalam ActionPack,
5. Pilih kota terdekat dalam tur sementara, bertugas mengambil masukkan
sisipkan kota tersebut. pengguna dan merespon dengan
6. Masukan kota yang belum terpilih kedalam meminta suatu operasi pada model
rute sementara dengan rumus: dan mempersiapkan hasilnya untuk
F = Cik + Ckj – Cij ditampilkan oleh bagian view.
C : Jarak 2. Rails merupakan sebuah framework
k : Kota yang belum terpilih yang full-stack
i : Kota pertama dalam insertion 3. Script
j : Kota kedua dalam insertion Banyak script Rails tersedia yang
memudahkan otomatisasi tugas-tugas
2.5 Bahasa Pemrograman Ruby on Rails pada siklus pengembangan yang dapat
2.5.1 Sejarah Ruby mengurangi beban kerja.
Ruby on Rails atau sering disingkat Rails 4. Validasi
merupakan sebuah framework aplikasi web full-stack Rails memiliki metoda untuk
yang ditulis menggunakan bahasa pemrograman memvalidasi apapun mulai dari
Ruby. Aplikasi web adalah perangkat lunak aplikasi pembuatan, penampilan, ukuran atau
yang diakses menggunakan web browser melalui panjang sesuatu dan lain-lain.
6
2. Menggunakan bahasa SQL(Structure data TSPLib, untuk penelitian ini menggunakan 8 data
Query Language), yang merupakan sekunder dengan jumlah kota atau titik yang berbeda
standar bahasa dunia dalam pengolahan disetiap data sekunder yang akan diolah. Data-data
data. sekunder tersebut adalah sebagai berikut:
3. Super perfomance dan reliable, tidak Tabel 3 Data sekunder yang digunakan
bisa diragukan, proses database-nya Nama Data Jumlah Titik/Kota
sangat cepat dan stabil. Burma14 14
4. Sangat mudah dipelajari. GR17 17
5. Memiliki dukungan support (group) Ulysess22 22
pengguna MySQL. Bay29 29
6. Mampu lintas platform, dapat berjalan Swiss42 42
di berbagai sistem operasi. Berlin52 52
7. Multiuser, dimana MySQL dapat St70 70
digunakan oleh beberapa user dalam Rat99 99
waktu yang bersamaan tanpa
mengalami konflik. 4.2 Pengolahan Data
4.2.1 Konversi Data Koordinat Menjadi Data
3. KERANGKA PEMECAHAN MASALAH Matriks Jarak
Diagram alir dari pemecahan masalah 4.2.1.1 Konversi Data Sekunder Burma14
ditunjukkan pada Gambar 2. Data koordinat yang diperoleh untuk data
Pada tahapan penelitian yang dilakukan sekunder Burma14 adalah sebagai berikut:
terlihat bahwa proses pengumpulan data sekunder Tabel 4 Tabel Koordinat Data Sekunder
berasal dari data sekunder TSPLib yang berupa data Burma14
titik koordinat kemudian data tersebuh diolah
Titik Ke - Koordinat X Koordinat Y
menjadi sebuah matriks data lalu diolah lebih lanjut
1 16,47 96,1
dengan metode heuristik Travelling Salesman
Problem untuk mengetahui ruta alternatif pada setiap 2 16,47 94,44
metode. 3 20,09 92,54
4 22,39 93,37
Mulai 5 25,23 97,24
Perancangan
Perangkat Penentuan
6 22 96,05
Metode Efektif
Latar Belakang Masalah, Perumusan maslaah, Lunak
7 20,47 97,02
Tujuan dan Manfaat Penelitian, Asumsi dan
Batasan masalah 8 17,2 96,29
Trial and Error
Software Analisis dan
9 16,3 97,38
Landasan Teori Pembahasan
Tidak
10 14,05 98,12
Rancangan
Perangkat Lunak
11 16,53 97,38
Penentuan metode Travelling Salesman Problem: Sesuai? Kesimpulan dan
1. Nearest Neighbor Method Saran 12 21,52 95,59
Ya
2. Clarke and Wright: Savings Algorithm
3. Method of Nearest Insertion 13 19,41 97,13
4. Method of Cheapest Insertion Pengumpulan
5. Method of Farthest Insertion data Selesai 14 20,09 94,55
6. Hamiltonian Cycle
Pengolahan
Data-data koordinat tersebut akan diolah
Penyusunan
Algoritma Data menjadi matriks jarak secara Euclidean dengan
rumus menghitung jarak antar 2 titik koordinat
adalah sebagai berikut:
Gambar 2 Kerangka Pemecahan Masalah 𝐽𝑎𝑟𝑎𝑘 𝑇𝑖𝑡𝑖𝑘 1 𝐾𝑒 𝑇𝑖𝑡𝑖𝑘 2
= √(𝑋2 − 𝑋1 )2 + (𝑌2 − 𝑌1 )2
4. PENGUMPULAN DAN PENGOLAHAN Jarak antara titik awal dan titik selanjutnya dapat
DATA menyesuaikan berdasarkan rumus perhitungan
4.1 Pengumpulan Data tersebut. Berikut merupakan contoh perhitungan
Pengumpulan data pada penelitian ini jarak antara 2 titik pada data sekunder Burma14:
menggunakan data sekunder berasal dari kumpulan tes
8
6.2 Saran
Setelah disimpulkan maka peneliti dapat
memberikan saran yang mungkin dapat menjadi
masukan bagi penelitian selanjutnya diantara sebagai
berikut:
1. Perangkat lunak yang dirancang
memiliki waktu konversi data yang
meningkat seiring dengan kenaikan
jumlah titik dan table matriks yang telah
dibuat sehingga diharapkan perancangan
perangkat lunak dapat meminimalisir
waktu pengunggahan data.
2. Jika perangkat lunak mengolah data
dengan jumlah titik yang banyak,
tampilan alternatif rute akan sangat
panjang, disarankan untuk memotong
alternatif rute tersebut menjadi beberapa
baris sehingga dapat dilihat secara
keseluruhan dengan tidak menggeser
halaman tampilan perangkat lunak.
3. Perngakat lunak dirancang secara web
namun dapat dikembangkan dengan
memberikan nama domain pada
perangkat lunak tersebut sehingga
pengguna dapat mengakses dimana saja.
11
DAFTAR PUSTAKA