Algoritma Semut Untuk Mencari Jalur Terpendek

  BAB 2 LANDASAN TEORI

  2.1 Teori Dasar Graf Graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G=(V,E) , yang dalam hal ini V adalah himpunan tidak-kosong dari simpul-simpul (vertices atau simpul) dan E adalah himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul (Munir, 2005).

  Definisi graf G(V,E) menyatakan bahwa simpul V tidak boleh kosong sedangkan sisi E boleh kosong karena tidak ada sisi yang tanpa simpul yang disebut graf trivial.

  Simpul pada graf dapat menyatakan objek sembarang seperti kota, atom-atom suatu zat, komponen alat elektronik, nama suatu objek dan sebagainya yang dinomori dengan huruf, bilangan asli atau gabungan dari keduanya. Sedangkan sisi dapat menunjukkan hubungan sembarang seperti ikatan atom, sambungan telepon, jalur penerbangan, jalan raya dan sebagainya yang menghubung antarsimpul pada graf dinyatakan dengan pasangan (u,v) atau dinyatakan dengan Jika e adalah sisi yang menghubungkan simpul u dengan simpul v maka e=(u,v).

  A e B

  1

  e e e

  2

  3

  4 C e D

  5 Gambar 2.1 Graf G(4,5) G (4,5) adalah graf dengan himpunan simpul V dan himpunan sisi E adalah: V = { A, B, C, D } E = { (A, B), (A, C), (A, D), (B, D), (C, D) }

  = { } Berdasarkan ada tidaknya gelang atau sisi ganda pada sautu graf, maka graf dapat digolongkon menjadi dua jenis:

  1. Graf sederhana (simple graph) adalah graf yang tidak mengandung gelang (loop) maupun sisi ganda.

  2. Graf tak-sederhana (unsimple-graph) adalah graf yang mengandung gelang (loop) maupun sisi ganda.

  Berdasarkan orientasi arah pada sisi,maka secara umum graf dibedakan atas 2 jenis:

  1. Graf berarah (directed graph atau digraph) adalah graf yang sisinya mempunyai orientasi arah dengan urutan pasangan simpul yang terhubung oleh sisi-sisinya diperhatikan maka (u,v) (v,u) adalah sisi yang berbeda. Pada graf berarah, gelang (loop) diperbolehkan tetapi sisi ganda tidak diperbolehkan.

  A B C D

Gambar 2.2 Graf berarah 2.

  Graf tak berarah (undirected graph) adalah graf yang sisinya tidak mempunyai orientasi arah dengan urutan pasangan simpul yang terhubung oleh sisi-sisinya tidak diperhatikan maka (u,v)=(v,u) adalah sisi yang sama. A B C D

Gambar 2.3 Graf tak-berarah

  Graf tak-berarah G disebut graf terhubung (connected graph) jika untuk setiap pasang simpul u dan v pada himpunan V terdapat jalur atau sisi e (yang juga harus

  i

  berarti ada jalur atau sisi e ) pada himpunan E. Jika tidak, maka G disebut graf tak-

  i berhubung (disconnected graph).

  A C E B D F

Gambar 2.4 Graf terhubung

  A F C D E H B G

Gambar 2.5 Graf tak-terhubung

  Graf berarah G dikatakan terhubung jika graf tak-berarahnya terhubung (graf tak-berarah dari G diperoleh dengan menghilangkan arahnya).

  2.1.1 Graf Berbobot (Weighted Graph) Graf berbobot adalah graf yang setiap sisinya diberi sebuah nilai atau bobot (Munir, 2005).

  Bobot pada setiap sisi graf dapat berbeda-beda bergantung pada masalah yang dimodelkan. Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua buah kota, waktu tempuh antara dua buah kota, waktu tempuh pesan antara simpul komunikasi dengan simpul komunikasi lainnya (dalam jaringan komputer), ongkos produksi dan sebagainya. Graf berbobot juga sering dikaitkan dengan istilah graf berlebel yang definisinya lebih luas lagi. Label tidak hanya diberikan pada sisi tapi juga pada simpul yang berupa bilangan non negatif. P 9 Q

  6 7 12 T

  6 R 9 S

Gambar 2.6 Graf berbobot

  2.1.2 Representasi Graf Ada beberapa representasi yang mungkin untuk graf yang sering digunakan, yaitu: 1.

  Matriks ketetangaan (adjacency matrix) Misalkan G = (V,E) adalah graf dengan n simpul, . Matriks ketetanggaan G adalah matriks bujursangkar yang berukuran n x n. Bila matriks tersebut dinamakan , maka jika simpul i dan j bertetanggaan, sebaliknya jika simpul i dan j tidak bertetanggaan (Munir, 2005). Matriks ketetanggaan untuk graf sederhana adalah simetris dinyatakan 1 jika simpul i dan j bertetanggaan dan 0 untuk yang lainnya (Kenneth, 2003).

  1 2 3 4 1 2 3 4

Gambar 2.7 Dua buah graf dengan matriks ketetanggaannya masing-masing

2 Matriks Bersisian (incidency matrix)

  Misalkan G=(V,E) graf dengan n simpul dan m buah sisi. Matriks bersisian G adalah matriks bujursangkar yang berukuran n x m. Baris menunjukkan label simpul, sedangkan kolom menunjukkan label sisinya. Bila matriks tersebut dinamakan , maka jika simpul i bersisian dengan sisi j, sebaliknya jika simpul i tidak bersisian dengan sisi j (Munir, 2005).

  1 3 5

  2

  4

  6 Gambar 2.8 Graf dengan matriks bersisian

3 Daftar ketetanggaan (adjacency list)

  Representasi dengan daftar ketetanggaan dapat disajikan dengan membuat tabel simpul dan tetangga simpulnya (Amir Hamzah, 2011, hal: 40). Representasi dengan daftar ketetanggaan digunakan untuk mengatasi masalah pada graf yang matriksnya bersifat jarang yaitu mengandung banyak elemen nol, sedangkan elemen yang bukan nol sedikit.

  Simpul Simpul Tetangga A B C D E

  C, B, D A

  A, D, E

  A, C, E

  C, D B A C D E

Gambar 2.9 Graf dengan daftar ketetanggaan

  2.2 Optimisasi

  2.2.1 Pengertian Optimisasi Optimisasi adalah suatu proses untuk mencapai hasil yang ideal atau optimal (nilai efektif yang dapat dicapai). Dalam disiplin matematika optimisasi merujuk pada studi permasalahan yang mencoba untuk mancari nilai minimal atau maksimal dari suatu fungsi nyata. Untuk dapat mencari nilai optimal baik minimal atau maksimal tersebut, secara sistematis dilakukan pemilihan nilai variabel integer atau nyata yang akan memberikan solusi optimal (Wardy, 2007).

  2.2.2 Pengertian Nilai Optimal Nilai optimal adalah nilai yang didapat melalui suatu proses dan dianggap menjadi suatu solusi jawaban yang paling baik dari semua solusi yang ada (Wardy, 2007).

  Nilai optimal dapat dicari dengan dua cara, yaitu: 1.

  Cara konvensional, yaitu mencoba semua kemungkinan yang ada dengan mencatat nilai yang didapat. Cara ini kurang efektif karena optimasi akan berjalan sangat lambat.

2. Cara kedua adalah dengan menggunakan rumus sehingga nilai optimal dapat diperkirakan dengan cepat dan tepat.

  2.2.3 Macam-Macam Permasalan Optimisasi Permasalahan yang berkaitan dengan optimisasi sangat komplek dalam kehidupan sehari-hari. Nilai yang didapat dalam optimisasi dapat berupa besaran panjang, waktu, jarak dan lain-lain (Wardy, 2007). Berikut ini adalah termasuk beberapa permasalahan optimisasi:

  1. Menentukan jalur terpendek dari suatu tempat ke tempat yang lain.

  2. Mengatur jalur kendaraan umum agar semua lokasi dapat dijangkau.

  3. Mengatur routing jaringan kabel telpon agar biaya pemasangan kabel tidak terlalu besar dan penggunaannya tidak boros.

  4. Menentukan jumlah pekerja seminimal mungkin untuk melakukan suatu proses produksi agar biaya pengeluaran biaya pekerja diminimalkan dan hasil produksi tetap maksimal. Selain beberapa contoh di atas, masih banyak persoalan lainnya yang terdapat dalam berbagai bidang.

  2.2.4 Penyelesaian Masalah Optimisasi Secara umum penyelesaian masalah pencarian jalur terpendek dapat dilakukan dengan dua metode, yaitu metode konvensional dan metode heuristik. Metode konvensional diterapkan dengan cara perhitungan matematis seperti biasa, sedangkan metode heuristik diterapkan dengan sistem pendekatan (Mutakhiroh et al, 2007).

  Metode konvensional berupa metode yang menggunakan perhitungan matematis biasa. Ada beberapa metode konvensional yang biasa digunakan untuk melakukan pencarian jalur terpendek, diantaranya algoritma Djikstra, algoritma Floyd-Warshall, dan algoritma Bellman-Ford (Mutakhiroh et al, 2007).

  Metode heuristik adalah suatu metode yang menggunakan sistem pendekatan dalam melakukan pencarian jalur terpendek. Ada beberapa algoritma pada metode heuristik yang biasa digunakan dalam pencarian jalur terpendek diantaranya algoritma Genetika, Algoritma Semut, logika Fuzzy, jaringan syaraf tiruan, dan lain-lain (Mutakhiroh et al, 2007).

  2.3 Jalur Terpendek (Shortest Path)

  2.3.1 Penerapan Algoritma Semut Algoritma semut telah digunakan dalam kehidupan sehari-hari untuk menghasilkan penyelesaian yang mendekati optimal. Aplikasi algoritma semut dalam kehidupan sehari-hari mencakup beberapa persoalan, yaitu: 1.

  Quadratic Assignment Problem (QAP), yaitu menugaskan sejumlah n resources untuk ditempatkan pada sejumlah m lokasi dengan meminimalisasi biaya penugasan (assignment).

  2. Job-shop Scheduling Problem (JSP) juga salah satu contoh aplikasi Ant Colony Optimization, yaitu untuk mencari jalur sejumlah n pekerjaan menggunakan sejumlah m mesin demikian sehingga seluruh pekerjaan diselesaikan dalam waktu yang seminimal mungkin.

  3. Vehicle Routing Problem (VRP) adalah masalah optimisasi penentuan jalur dengan keterbatasan kapasitas kendaraan yang bertujuan meminimumkan total jarak yang ditempuh kendaraan dengan mengatur urutan-urutan yang harus dikunjungi serta kapan kembalinya kendaraan untuk mengisi kapasitasnya lagi.

  4. Traveling Salesman Problem (TSP), yaitu untuk mencari jalur terpendek dalam sebuah graph yang menggunakan jalur Hamilton.

  2.3.2 Contoh Kasus Masalah jalur terpendek merupakan masalah yang berkaitan dengan penentuan sisi- sisi dalam sebuah jaringan yang membentuk jalur terpendek antara sumber dan tujuan. Tujuan dari permasalahan jalur terpendek adalah mencari jalur yang memiliki jarak terpendek antara titik asal dan titik tujuan.

  Permasalahan mencari jalur terpendek di dalam graf merupakan permasalahan optimisasi yang dapat dimodelkan dengan graf berbobot (weighted graph). Graf berbobot adalah suatu graf dengan masing-masing sisi diberi bobot dengan nilai suatu bilangan tertentu. Gambar 2.10 merupakan suatu graf ABCDEF yang berarah dan berbobot.

  A 5 F 5 4 3 2

  6 C 2 D

  3 4 6 B 8 E

Gambar 2.10 Graf berarah dan berbobotGambar 2.10 di atas, misalkan dari kota A ingin menuju kota E. Untuk menuju kota E, dapat dipilih beberapa jalur yang tersedia yaitu:

  Dari data tersebut, dapat dihitung jalur terpendek dengan mencari jarak antara jalur-jalur tersebut. Sehingga jalur terpendek dapat diketahui yaitu A – D – E = 9.