BAB 1
PENDAHULUAN
1.1 Latar Belakang Persoalan lintasan terpanjang (longest path) merupakan persoalan dalam mencari lintasan sederhana terpanjang maksimum dalam suatu graph yang diberikan. Lintasan terpanjang pada suatu graph dapat ditentukan dengan menggunakan suatu proses backtracking yang dapat digunakan dimana penyelesaian masalah atau output merupakan sebuah rangkaian atau barisan yang terdiri atas suatu nilai yang teratur. Lintasan terpanjang dapat juga merupakan suatu rangkaian atau barisan dari nodenode. Suatu graph G adalah himpunan tak kosong titik-titik yang disebut vertex dan himpunan garis-garis yang menghubungkan titik tersebut yang disebut edge. Suatu graph G dikatakan terhubung jika untuk setiap vertex dari graph terdapat jalur yang menghubungkan kedua vertex tersebut, atau dengan kata lain dikatakan graph terhubung (connected graph) jika setiap dua vertex yaitu vi dan vj dalam suatu graph terdapat sedikitnya sebuah edge, sehingga dapat dinotasikan dengan G(V , E ) . Adapun pada suatu connected graph yang berarah (directed graph), edge disebut dengan busur (arc). Sehingga dapat dinotasikan sebagai G(V , A) .
Persoalan optimasi (optimization problem) adalah persoalan yang menuntut pencarian solusi optimum terpanjang. Persoalan optimasi dibagi menjadi dua macam, yaitu maksimasi (maximization) dan minimasi (minimization). Solusi optimum merupakan solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin yang diperoleh. Solusi yang memenuhi semua kendala
Universitas Sumatera Utara
selanjutnya disebut sebagai solusi layak (feasible solution) dimana berperan untuk mengoptimumkan fungsi optimasi yang akhirnya disebut sebagai solusi optimum.
Penentuan lintasan terpanjang merupakan salah satu contoh persoalan optimasi dimana termasuk ke dalam persoalan optimasi maksimasi (maximization). Secara umum, penentuan lintasan terpanjang dapat dibagi menjadi dua metode, yaitu metode konvensional dan metode heuristik. Metode konvensional adalah metode yang menggunakan perhitungan matematika murni secara biasa yang hanya dapat digunakan pada jumlah vertex dan edge yang terbatas, misalnya lima hingga sepuluh vertex
saja. Sedangkan metode heuristik adalah metode yang lebih variatif dan
membutuhkan waktu perhitungan yang lebih singkat, karena metode ini dirancang secara komputasi untuk memecahkan masalah dimana diperoleh solusi yang lebih sederhana dengan menggunakan metode pendekatan dan melakukan pencarian.
Persoalan lintasan terpanjang adalah cara untuk menghitung suatu lintasan sederhana dengan jumlah vertex yang besar. Persoalan ini merupakan persoalan optimasi biasa yang cukup dikenal dan dipelajari dalam hal mengenai persoalan sirkuit Hamilton (Hamiltonian Cycle) dan Persoalan Pedagang Keliling (Traveling Salesman Problem), dimana persoalan ini termasuk ke dalam NP-Complete. Berbeda dengan persoalan sirkuit Hamilton, ada beberapa jenis graph seperti tree (pohon) dan juga dimana algoritma polynomial dapat menyelesaikan persoalan lintasan terpanjang. Berdasarkan uraian diatas, penulis mengambil judul penelitian “Implementasi dan Analisis Algoritma Depth-First Search (DFS) dalam Pencarian Lintasan Terpanjang.”.
Universitas Sumatera Utara
1.2 Perumusan Masalah
Perumusan masalah yang akan diteliti dalam penulisan tugas akhir ini adalah mengaplikasikan dan menganalisis algoritma Depth-First Search (DFS) dalam menentukan lintasan terpanjang yang diharapkan menjadi penyelesaian pada solusi optimum yang ada.
1.3 Batasan Masalah
Dalam penelitian ini dilakukan beberapa batasan sebagai berikut:
1. Dalam kasus ini yang digunakan adalah suatu graph tidak berarah dan berbobot.
2. Bobot yang digunakan adalah bobot jarak.
3. Implementasi dalam bahasa pemrograman Java (menggunakan NetBeans 6.9).
1.4 Tinjauan Pustaka
Suatu graph G merupakan suatu himpunan titik-titik yang disebut vertex dan himpunan garis-garis yang menghubungkan titik-titik tersebut yang disebut edge. Suatu graph G dikatakan terhubung jika untuk setiap vertex dari graph terdapat jalur yang menghubungkan kedua vertex tersebut, atau dengan kata lain dikatakan graph terhubung jika setiap dua vertex yaitu vi dan vj dalam suatu graph terdapat sedikitnya sebuah edge, sehingga dapat dinotasikan dengan G(V,E) (Dasgupta dkk, 2008). Menurut Lipshutz dkk (2007), sebuah sirkuit Hamilton dalam graph G, dipaparkan pada abad ke-19 oleh matematikawan Irlandia, William Hamilton (1803-
Universitas Sumatera Utara
1865), adalah sebuah jalur tertutup yang tiap vertexnya dalam graph G dikunjungi tepat hanya satu kali (semacam closed path yang juga merupakan cycle). Jika G tidak mempunyai suatu sirkuit Hamilton, maka G disebut sebagai suatu graph Hamilton. Menurutnya, implementasi dari kasus lintasan terpanjang juga terdapat dalam persoalan sirkuit Hamilton, dimana Hamiltonian Cycle ≤ Longest Path.
Penggunaan lintasan terpanjang juga dapat digunakan dalam kasus perhitungan worstdelay pada paket Ethernet, seperti yang dipaparkan oleh Schmidt dkk dalam jurnalnya, A Longest-Path Problem for Evaluating The Worst-Case Packet Delay of Switched Ethernet. Dalam beberapa tahun terakhir, penggunaan real-time Ethernet protocol menjadi lebih relevan untuk aplikasi waktu-kritis jaringan industri. Dalam konteks ini, disajikan suatu metode untuk menghitung worst-delay paket Ethernet yang diaktifkan. Berdasarkan evaluasi keterlambatan paket pada setiap port switch dan topologi jaringan, kita membangun suatu graph berarah yang memungkinkan untuk menemukan worst-case end-to-packet akhir delay dengan memecahkan masalah lintasan terpanjang konvensional.
Menurut Sedgewick (2002), fungsi pencarian GRAPHpathH untuk suatu sirkuit Hamilton dari v ke w dapat menggunakan fungsi rekursif. Pertama, program berhasil jika hanya ditemukan suatuh panjang lintasan V. Yang kedua, akan kembali menjalankan program jika lintasan tidak ditemukan, begitu seterusnya. static int visited[maxV] int pathR(Graph G, int v, int w, int d) { int t; if(v==w){ if(d==0) return 1; else return 0; } visited[v]=1; for(t=0; t
V; t++) if(G->adj[v][t]==1) if(visited[t]==0)
Universitas Sumatera Utara
if(pathR(G, t, w, d-1))return 1; visited[v]=0; return 0; } int GRAPHpathH(Graph G, int v, int w){ int t; for(t=0; tV; t++) visited[t]=0; return pathR(G, v, w, G->V-1); }
1.5 Tujuan Penelitian
Adapun tujuan dari penulisan tugas akhir ini adalah untuk menerapkan serta menganalisis
keakuratan
algoritma
Depth-First
Search
(DFS)
dengan
mengimplementasikannya ke dalam bahasa pemrograman Java.
1.6 Manfaat Penelitian
Manfaat dari penelitian ini adalah:
a. Menawarkan penyelesaian yang diharapkan akurat dalam pencarian solusi optimum pada persoalan lintasan terpanjang.
b. Dengan penelitian ini penulis berharap dapat memperkaya literatur dalam bidang komputasi khususnya dalam persoalan lintasan terpanjang.
c. Dapat membangun sebuah perangkat lunak dengan mengaplikasikan algoritma Depth-First Search (DFS) dalam menyelesaikan suatu lintasan terpanjang secara efektif dan efisien.
Universitas Sumatera Utara
1.7 Metodologi Penelitian
Metodologi penelitian ini bersifat literatur dan kepustakaan dengan langkah-langkah sebagai berikut:
a. Studi Literatur dan Pemahaman. Penulisan ini dimulai dengan studi kepustakaan yaitu mengumpulkan bahanbahan referensi dan catatan kuliah yang membahas tentang teori graph dan Hamiltonian graph yang berkaitan dengan persoalan lintasan terpanjang.
b. Analisis. Pada tahap ini dilakukan pengumpulan fakta-fakta yang mendukung perancangan
sistem
dengan
mengadakan
konsultasi
dengan
dosen
pembimbing maupun dosen yang berkemampuan dalam bidang ini dan membandingkan dengan yang ada pada buku penuntun.
c. Perancangan dan Implementasi. Perancangan dan implementasi dilakukan dengan menggunakan metode yang terdapat dalam algoritma Depth-First Search (DFS) dalam penyelesaian lintasan terpanjang serta menggunakan alat bantu aplikasi NetBeans 6.9. d. Pengujian. Pada tahap ini sistem yang sudah dirancang diuji oleh user.
e. Penyusunan laporan dan kesimpulan akhir Pada tahap ini dilakukan penyusun laporan hasil analisis ke dalam format penulisan tugas akhir dengan disertai kesimpulan akhir.
Universitas Sumatera Utara