• Tidak ada hasil yang ditemukan

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

TINJAUAN PUSTAKA

Pada bab ini akan dibahas landasan teori, penelitian terdahulu, kerangka berpikir, dan hipotesis yang mendasari penyelesaian Traveling Salesman Problem dalam menentukan lintasan tercepat untuk kunjungan wisata di Kabupaten Tapanuli Tengah dengan algoritma Generate and Test dan algoritma Hill Climbing.

2.1 Traveling Salesman Problem (TSP)

Dalam traveling salesman problem, erat kaitannya dengan masalah hamiltonian cycle, dimana salesman harus mengunjungi n kota. Masalah dimodelkan dengan menggunakan graf lengkap dengan n simpul, kita dapat mengatakan bahwa salesman ingin melakukan tur, atau hamiltonian cycle, mengunjungi setiap kota tepat sekali dan kembali ke kota tempat dia memulai perjalanannya. Salesman akan memikul biaya integer non-negatif c(i,j) untuk melakukan perjalanan dari kota i ke kota j, dan salesman ingin membuat tur dengan total biaya minimum, dimana total biaya adalah jumlah biaya individual sepanjang edges dari tur. Dalam bahasa formal untuk keputusan yang sesuai adalah (Cormen et al, 2009):

TSP = {(G,c,k): G = (V,E) adalah sebuah graf lengkap, c adalah sebuah fungsi dari V x V → Z,

k Z, dan

G memiliki biaya tur traveling-salesman dengan biaya terbesar k}.

Traveling salesman problem merupakan persoalan yang mempunyai konsep

(2)

persoalan TSP ditinjau dari jumlah pelaku perjalanan, bentuk pertama dengan satu orang yang berkeliling dan dengan lebih dari satu (banyak) orang yang berkeliling sebagai bentuk kedua. (Puspitorini, 2008)

2.2 Graf

Teori graf merupakan salah satu cabang ilmu matematika yang mempelajari mengenai terminology dari graf, jenis, dan sifat – sifatnya. Graf yang dimaksud dalam teori graf

berbeda dengan “grafik”. Dalam teori graf, sebuah graf merupakan kumpulan benda

yang direpresentasikan dalam bentuk simpul (vertex) dan terdapat garis – garis atau yang disebut dengan sisi (edge) yang menghubungkan simpul – simpul. Garis pada graf dapat berupa garis panah atau garis lurus.

Graf dalam teknologi masa kini banyak diterapkan dalam mekanisme pencarian rute terpendek dalam GPS, algoritma pencarian dalam game atau penanganan serangan virus dalam sebuah jaringan, dan permasalahan penjadwalan. Suatu graf G didefinisikan sebagai pasangan himpunan (V, E) yang dinotasikan dengan G = (V, E), dimana: V adalah himpunan tidak kosong dari titik, simpul, vertex atau nodes dari G yaitu V = {v1, v2, v3, ... vn} dan E adalah himpunan rusuk, edges atau sisi dari G yang menghubungkan sepasang simpul, yaitu E = {e1, e2, e3, ... en}. Definisi graf diatas menyatakan bahwa V tidak boleh kosong, sedangkan E boleh kosong. Jadi sebuah graf dimungkinkan tidak mempunyai sisi satu buahpun, tetapi simpulnya harus ada, minimal satu graf. (Rinaldi, 2005)

2.3 Jenis-Jenis Graf

Graf dapat dikelompokkan menjadi beberapa jenis. Pengelompokan jenis graf bergantung pada sudut pandang pengelompokkannya. Pengelompokkan graf dapat dipandang berdasarkan ada atau tidak adanya sisi ganda atau sisi kalang, berdasarkan jumlah simpul, berdasarkan orientasi arah pada sisi, berdasarkan keterhubungan simpul, serta berdasarkan bobotnya.

Berdasarkan ada atau tidak adanya sisi ganda pada suatu graf, maka graf data dikategorikan menjadi dua jenis, yaitu:

1. Graf Sederhana (Simple Graph)

(3)

2. Graf Tak Sederhana (Unsimple Graph)

Graf tak sederhana merupakan graf yang mengandung sisi ganda atau gelang. Ada dua jenis graf tak sederhana, yaitu:

a. Graf Ganda (Multigraph) yaitu graf yang mengandung sisi ganda yang menghubungkan sepasang simpul bisa lebih dari dua buah simpul. Sisi ganda dapat diasosiasikan sebagai pasangan tak terurut yang sama.

b. Graf Semu (Pseudograph) yaitu graf yang mengandung gelang (loop) yang dapat terhubung ke dirinya sendiri.

Berdasarkan jumlah simpul pada suatu graf, maka graf dapat dikategorikan menjadi dua jenis, yaitu:

1. Graf Berhingga (Limited Graph)

Graf berhingga merupakan graf yang jumlah simpulnya sejumlah n berhingga. 2. Graf Tak Berhingga (Unlimited Graph)

Graf tak berhingga merupakan graf yang jumlah simpulnya, n, tidak berhingga banyaknya.

Berdasarkan orientasi arah pada sisiya, graf dapat dikategorikan menjadi dua jenis, yaitu:

1. Graf Tak Berarah (Undirected Graph)

Graf tak berarah merupakan graf yang sisinya tidak mempunyai orientasi arah sehingga urutan pasangan simpul yang dihubungkan oleh sisi tidak diperhatikan. Graf tak berarah G terdiri dari suatu himpunan V dari simpul – simpul dan suatu himpunan E dari sisi – sisi sedemikian rupa sehingga setiap sisi e ε E dikaitkan dengan pasangan simpul tak terurut. Jika terdapat sebuah sisi e yang menghubungkan simpul (vertex) v dan w, maka dapat dituliskan dengan e = (v,w) atau e = (w,v) yang menyatakan sebuah sisi (edge) antara v dan w. Graf tak berarah dapat dilihat pada Gambar 2.1.

v1 v2

(4)

2. Graf Berarah (Directed Graph atau Digraph).

Graf berarah merupakan graf yang pada setiap sisinya diberikan orientasi arah. Pada graf tak berarah (undirected graph) elemen dari E disebut dengan edge, sedangkan pada graf berarah (directed graph) elemen dari E(A) disebut dengan arc. Graph berarah G terdiri dari suatu himpunan V dari simpul - simpul dan suatu himpunan E(A) dari arc sedemikian rupa sehingga setiap arc a ε A menghubungkan pasangan simpul terurut. Jika terdapat sebuah arc a yang menghubungkan pasangan terurut (v,w) dari simpul-simpul, maka dapat ditulis dengan a=(v,w), yang menyatakan sebuah arc dari v ke w.

Pada suatu graf jika dua buah simpul (vertex) v1 dan v2 dihubungkan oleh suatu edge(arc), maka kedua simpul (vertex) tersebut dikatakan adjacent. Pada Gambar 2.2

simpul (vertex) v1 adjacent (bertetangga) dengan simpul v2. Sementara itu, arc a1 dikatakan incident (bersisian) dengan simpul v1 dan simpul v2.

v1 v2

Gambar 2. 2 Graf Berarah

Berdasarkan keterhubungan simpul pada suatu graf, maka graf dikategorikan menjadi dua jenis, yaitu:

1. Graf Terhubung (Connected Graph)

Graf terhubung merupakan graf yang terdapat bila ada dua titik dalam graf G yang terhubung. Misalkan u dan v adalah titik yang berbeda pada graf G. Maka titik u dan v dapat dikatakan terhubung (connected) jika terdapat lintasan u – v di G. Sedangkan suatu graf G dapat dikatakan terhubung (connected) jika untuk setiap titik u dan v di G terhubung. (Lubis, Ibnu H. 2011)

e1

(5)

2. Graf Tidak Terhubung (Unconnected Graph)

Sebuah graf G dikatakan tidak terhubung bila dan hanya bila ada dua titik dalam graf G tidak membentuk lintasan. Graf Tidak Terhubung dapat dilihat pada Gambar 2.4.

e1

Gambar 2. 4 Graf Tidak Terhubung

Berdasarkan bobotnya graf dapat dikategorikan menjadi dua jenis, yaitu: 1. Graf Tidak Berbobot (Unweighted Graph)

Graf Tidak Berbobot (Unweighted Graph) merupakan graf yang tidak mempunyai bobot atau nilai.

2. Graf Berbobot (Weighted Graph)

Graf berbobot (weighted graph) adalah suatu graf yang setiap garisnya berhubungan dengan suatu bilangan riil positif yang menyatakan bobot garis tersebut. Bobot garis e biasanya diberi simbol w(e). Jumlah bobot semua garis disebut total bobot. Graf berbobot dapat dilihat pada Gambar 2.5. (Surendro, R. 2008)

2

Gambar 2. 5 Graf Berbobot

2.4 Lintasan (Path)

Misalkan v0 sampai vn adalah simpul - simpul yang ada dalam sebuah graph. Sebuah

lintasan dari v0 sampai vn adalah sebuah barisan berselang – seling dari n+1 simpul

dan n edges yang berawal dari v0 dan berakhir di vn yang berbentuk (v0, e1, v1, e2, v2, ...

vn-1, en, vn+1) dengan edge ei insiden pada simpul vi-1 dan vi untuk i = 1, ... , n

(6)

Jika lintasan berawal dan berakhir pada satu simpul (vertex) yang sama, maka graph dengan lintasan tersebut disebut dengan graph tertutup, dan sebaliknya, jika

lintasan berawal dan berakhir pada lintasan berbeda, maka graph dengan lintasan tersebut disebut dengan graph terbuka. Panjang lintasan pada graph adalah jumlah semua bobot edge pada graph tersebut. (Lubis, H. 2009)

2.5 Algoritma

Algoritma adalah prosedur komputasi yang terdefenisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Dalam beberapa konteks, algoritma merupakan spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.Kata algoritma berasal dari nama seorang ilmuwan Arab yang bernama Abu Jafar Muhammad Ibnu Musa Al Khuwarizmi penulis buku berjudul Aljabar Wal Muqabala. Kata Al Khuwarizmi dibaca orang barat menjadi Algorism yang kemudian lambat laun menjadi Algorithm, dan diserap dalam bahasa Indonesia menjadi Algoritma. (Munir, 2007).

Secara non formal, algoritma sering didefinisikan menjadi prosedur komputasional yang menggunakan beberapa nilai atau serangkaian nilai sebagai masukan dan menghasilkan nilai atau serangkaian nilai sebagai keluaran. Algortima itu sendiri ialah urutan langkah-langkah komputasional yang berubah dari input menjadi output. Kita juga dapat melihat algoritma sebagai alat untuk menyelesaikan permasalahan komputasional secara spesifik. Pernyataan dari permasalahan spesifik dalam istilah umum merupakan hubungan input/output yang diinginkan (Cormen et al, 2009).

2.5.1 Pembangkitan dan Pengujian (Generate and Test)

Pada prinsipnya metode ini merupakan penggabungan antara depth-first search dengan pelacakan mundur (backtracking), yaitu bergerak ke belakang menuju satu keadaan awal. Nilai pengujian berupa jawaban „ya‟ atau „tidak‟.

Langkah – langkah dalam menentukan hasil dari Algoritma Generate and Test adalah: 1. Bangkitkan suatu kemungkinan solusi (membangkitkan suatu titik tertentu atau

(7)

2. Uji untuk melihat apakah node tersebut benar-benar merupakan solusinya dengan cara membandingkan node tersebut atau node akhir dari suatu lintasan yang dipilih dengan kumpulan tujuan yang diharapkan.

3. Jika solusi ditemukan, keluar. Jika tidak ulangi kembali langkah yang pertama.

Contoh Kasus : Traveling Salesman Problem (TSP)

Seorang salesman ingin mengunjungi n kota. Jarak antara tiap-tipa kota sudah diketahui. Kita ingin mengetahui rute terpendek dimana kota boleh dikunjungi tepat 1 kali. Misalkan ada 4 kota dengan jarak antara tiap-tiap kota seperti terlihat pada Gambar 2.6.

A

C

6

D

B

5 8

7

4 3

Gambar 2. 6 Contoh Kasus TSP

Disini penyelesaian dengan menggunakan Generate and Test dilakukan dengan membangkitkan solusi-solusi yang mungkin dengan menyusun kota-kota dalam urutan abjad, yaitu :

 A – B – C – D

 A – B – D – C

 A – C – B – D

 A – C – D – B

(8)

A B C D

B C D

B B C

D C D

D C B

C D B

Gambar 2. 7 Generate and Test

Misalkan pertama-tama kita mulai dari node A. Kita pilih sebagai keadaan awal adalah lintasa ABCD dengan panjang lintasan (19). Kemudian kita lakukan backtracking untuk mendapatkan lintasan ABDC (18). Lintasan ini kita bandingkan dengan lintasan ABCD, jika lebih kecil maka lintasan terpilih adalah ABDC. Kita lakukan backtracking lagi untuk mendapatkan lintasan ACBD (12), jika lebih kecil dari ABDC maka lintasan terpilih menjadi ACBD. Demikian seterusnya hingga kita temukan solusi yang sebenarnya.

Tabel 2. 1 Alur pencarian dengan generate and test pada TSP

Pencarian

ke- Lintasan

Panjang

Lintasan Lintasan Terpilih

Panjang Lintasan

Terpilih

1 ABCD 19 ABCD 19

2 ABDC 18 ABDC 18

3 ACBD 12 ACBD 12

4 ACDB 13 ACBD 12

5 ADBC 16 ACBD 12

6 ADCB 18 ACBD 12

7 BACD 17 ACBD 12

8 BADC 21 ACBD 12

9 BCAD 15 ACBD 12

10 BCDA 18 ACBD 12

11 BDAC 14 ACBD 12

12 BDCA 13 ACBD 12

(9)

15 CBAD 20 ACBD 12

16 CBDA 16 ACBD 12

17 CDAB 21 ACBD 12

18 CDBA 18 ACBD 12

19 DABC 20 ACBD 12

20 DACB 15 ACBD 12

21 DBAC 15 ACBD 12

22 DBCA 12 ACBD atau DBCA 12

23 DCAB 17 ACBD atau DBCA 12

24 DCBA 19 ACBD atau DBCA 12

Salah satu kelemahan dari metode generate and test ini adalah perlu membangkitkan semua kemungkinan sebelum dilakukan pengujian, sehingga membutuhkan waktu yang cukup besar dalam pencariaannya (Sri Kusumadewi, 2003).

2.5.2 Pendakian Tebing (Hill Climbing)

Metode ini hampir sama dengan metode pembangkitan & pengujian hanya saja proses pengujian dilakukan dengan menggunakan fungsi heuristik. Pembangkitan keadaan berikutnya sangat tergantung pada feedback dari prosedur pengetesan. Tes yang berupa fungsi heuristik ini akan menunjukkan seberapa baiknya nilai terkaan yang diambil terhadap keadaan-keadaan lainnya yang memungkinkan.

Ada dua macam metode Hill Climbing Search, yaitu Simple Hill Climbing dan Steepest-ascent Hill Climbing.

1. Simple Hill Climbing

Algoritma untuk Simple Hill Climbing adalah sebagai berikut:

1. Mulai dari keadaan awal, lakukan pengujian: jika merupakan tujuan, maka berhenti; dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.

2. Kerjakan langkah-langkah berikut sampai solusinya ditemukan, atau sampai tidak ada node baru yang akan diaplikasikan pada keadaan sekarang:

(10)

b. Evaluasi keadaan baru tersebut.

 Jika keadaan baru merupakan tujuan, keluar.

 Jika bukan tujuan, namun nilainya lebih baik daripada keadaan sekarang, maka jadikan keadaan baru tersebut menjadi keadaan sekarang.

 Jika keadaan baru tidak lebih baik daripada keadaan sekarang, maka lanjutkan pencarian.

Pada simple hill climbing ini, ada 3 masalah yang mungkin, yaitu : 1. Algoritma akan berhenti kalau mencapai nilai optimum lokal.

2. Urutan penggunaa operator akan sangat berpengaruh pada penemuaan solusi. 3. Tidak diizinkan untuk melihat satupun langkah sebelumnya.

Contoh Kasus: TSP dengan simple hill climbing.

Disini ruang keadaan berisi semua kemungkinan lintasan yang mungkin. Operator digunakan untuk menukar posisi kota-kota yang bersebelahan. Fungsi heuristik yang digunakan adalah panjang lintasan terjadi.

ACBD ABDC DBCA ADBC CBAD

(11)

Operator yang akan kita gunakan adalah menukar posisi 2 kota dalam suatu lintasan. Apabila ada n kota, dan kita ingin mencari kombinasi lintasan dengan menukar posisi urutan 2 kota, maka kita akan mendapatkan sebanyak: 2! �!

�−2!

Sehingga kalau ada 4 kota, kita bisa memperoleh: 4!

2!4−2 ! = 6 kombinasi. Keenam

kombinasi ini akan kita pakai semuanya sebagai operator, yaitu: 1. Tukar 1,2 (menukar urutan posisi kota ke-1 dengan kota ke-2). 2. Tukar 2,3 (menukar urutan posisi kota ke-2 dengan kota ke-3). 3. Tukar 3,4 (menukar urutan posisi kota ke-3 dengan kota ke-4). 4. Tukar 4,1 (menukar urutan posisi kota ke-4 dengan kota ke-1). 5. Tukar 2,4 (menukar urutan posisi kota ke-2 dengan kota ke-4). 6. Tukar 1,3 (menukar urutan posisi kota ke-1 dengan kota ke-3).

(12)

DBCA, sehingga sebenarnya node DBCA (12) inilah lintasan terpendek yang kita cari (SOLUSI) (Kusumadewi, 2003).

2. Steepest Ascent Hill Climbing

Steepest-Ascent Hill Climbing Search hampir sama dengan Simple Hill Climbing

Search dan yang membedakan keduanya adalah pada gerakan pencarian yang tidak

dimulai dari posisi paling kiri. Gerakan berikutnya dicari berdasarkan nilai heuristik terbaik. Dalam hal ini urutan penggunaan tidak menentukan penemuan solusi (Kusumadewi, 2003).

Adapun algoritma untuk Steepest-Ascent Hill Climbing Search adalah:

1. Mulai dari keadaan awal, lakukan pengujian. Jika merupakan tujuan maka berhenti, dan jika tidak, lanjutkan dengan keadaan sekarang sebagai keadaan awal.

2. Ulangi hingga tujuan tercapai atau hingga pencarian tidak memberikan perubahan pada keadaan sekarang.

a. Tentukan SUCC sebagai nilai heuristik dari successor-successor. b. Lakukan untuk tiap node yang digunakan oleh keadaan sekarang.

 Gunakan node tersebut dan bentuk keadaan baru.

 Evaluasi keadaan baru tersebut jika merupakan tujuan keluar. Jika bukan, bandingkan nilai heuristiknya dengan SUCC. Jika lebih baik, jadikan nilai heuristik keadaan batu tersebut sebagai SUCC, tetapi jika tidak lebih baik, nilai SUCC tidak berubah.

(13)

Pada Gambar 4, terlihat bahwa, keadaan awal, lintasan terpilih adalah ABCD (19). Pada level pertama, hill climbing akan memilih nilai heuristik terbaik dari keenam successor yang ada, yaitu: BACD(17), ACBD(12), ABDC(18), DBCA(12), ADCB(18) atau CBAD(20). Tentu saja yang terpilih adalah ACBD, karena memiliki nilai terkecil (12). Dari ACBD ini akan dipilih nilai terbaik dari successornya yaitu: CABD(15), ABCD(19), ACDB(13), DCBA(19), ADBC(16) atau BCAD(15). Ternyata dari keenam successor tersebut memiliki nilai yang lebih besar dibanding dengan ACBD. Sehingga tidak akan ada perubahan nilai keadaan (tetap ACBD). Hasil yang diperoleh, lintasanya adalah ACBD(12).

2.6 Kompleksitas Algoritma

Kompleksitas dari suatu algoritma merupakan seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan masalah.Secara informal, algoritma yang dapat menyelesaikan suatu permasalahan dalam waktu yang singkat memiliki kompleksitas yang rendah, sementara algoritma yang membutuhkan waktu lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi.

Dua hal penting untuk mengukur efektivitas suatu algoritma yaitu kompleksitas ruang (keadaan) dan kompleksitas waktu.Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan dalam eksekusi program. Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari

ukuran permasalahan. Analisa asimtotik menghasilkan notasi Ο (Big O) dan dua notasi

untuk komputer sain yaitu (Big Theta) dan Ω (Big Omega) (Purwanto, 2008). 2.6.1. Big-O Notation

(14)

Gambar 2. 10 Grafik fungsi big-O (Sumber: Anany Levitin, 2011)

2.6.2. Big Theta () Notation

(g(n)) adalah himpunan semua fungsi yang memiliki tingkat pertumbuhan yang sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga). Sebuah fungsi t(n) dikatakan bagian dari (g(n)), dilambangkan dengan t(n) Є (g(n)), jika t(n) batas

atas dan bawahnya adalah beberapa konstanta positif g(n) untuk semua n yang besar, yaitu jika ada beberapa konstanta positif c1 dan c2 serta beberapa bilangan bulat non-negatif n0 seperti c2g(n) ≤ t(n) ≤ c1g(n) untuk semua n ≥ n0. (Anany Levitin, 2011)

Gambar 2. 11 Grafik fungsi big-theta (Sumber: Anany Levitin, 2011)

2.6.3. Big Omega (Ω) Notation

(15)

Gambar

Gambar 2.1 Graf Tak Berarah
Gambar 2. 3 Graf Terhubung
Gambar 2. 4 Graf Tidak Terhubung
Gambar 2. 6 Contoh Kasus TSP
+6

Referensi

Dokumen terkait

Perkembangan teknologi komunikasi informasi menjadi sebuah fenomena yang mengubah cara bekerja dan kehadiran geo-office, kantor yang secara geografis bisa berada di mana-mana

Seluruh informan mengungkapkan harapan yang mereka miliki terhadap kesembuhan penyakit kanker payudara yang mereka derita agar dapat menjalani aktivitas

Penelitian ini menggunakan rancangan penelitian deskriptif pendekatan survei untuk mendapatkan gambaran frekuensi distribusi faktor risiko bersama penyakit tidak menular

Kata Kunci : Motor Induksi 3 Phasa, Tegangan Tidak Seimbang Dua Fasa, Temperatur. Universitas

Model atau bentuk media, yaitu infografis yang dibahas dalam penelitian ini digunakan untuk mengeksplorasi pemahaman publik terhadap berita/informasi ekonomi yang

1) Penilaian keteladanan bagi kepala SD dan SMP dilakukan di tingkat kabupaten/kota, sedangkan bagi kepala SMA dan SMK dilakukan di tingkat provinsi. 2) Kuesioner

Dengan posisi tersebut, maka akan sulit bagi PR untuk melakukan peran- peran yang sejalan dengan kaidah Exellence PR – sebagai dasar dari peran manajerial PR yakni

Faktor ekstrinsik merupakan faktor risiko yang dapat meningkatkan pemaparan (exposure) dari penjamu terhadap kuman penyebab yang terdiri atas 3 unsur yaitu