Sirkuit adalah jejak tertutup. Jejak tertutup adalah jejak dengan titik awal dan titik akhir sama.
6 Sikel Cycle
Menurut Budayasa 2007:6, sebuah Cycle adalah adalah jejak tertutup closed trail yang titik awal dan semua titik internalnya berbeda.
Banyaknya sisi dalam suatu sikel disebut panjang dari sikel tersebut. Sikel dengan panjang k disebut sikel-k, disimbolkan dengan
.
2.2 Lintasan
Terpendek
Lintasan terpendek merupakan salah satu dari masalah yang dapat diselesaikan dengan
graf
. Jika diberikan sebuah graf berbobot, masalah lintasan terpendek adalah bagaimana cara mencari sebuah lintasan pada graf
yang dapat meminimalkan jumlah bobot sisi pembentuk lintasan tersebut. Misalkan u dan v dua titik di graf G, lintasan u,v di G dengan panjang
minimum disebut lintasan terpendek Budayasa, 2007:47. Ada beberapa
macam persoalan lintasan terpendek antara lain: a.
Lintasan terpendek antara dua buah titik tertentu a pair shortest path b.
Lintasan terpendek antara semua pasangan titik all pairs shortest path c.
Lintasan terpendek dari titik tertentu ke semua titik yang lain. d.
Lintasan terpendek antara dua buah titik yang melalui beberapa titik tertentu intermediate shortest path
Beberapa
algoritma yang digunakan untuk menyelesaikan persoalan ini adalah algoritma Dijkstra, algoritma Bellman-Ford, dan algoritma Floyd-
Warshall. Setiap
algoritma
penyelesaian persoalan lintasan terpendek memiliki kriteria masing-masing. Dalam penelitian ini
peneliti menggunakan Algoritma Floyd-Warshall untuk pencarian lintasan terpendek.
Gambar 2.6 Contoh Graf Pada Gambar 2.6 misalkan kota
merupakan kota awal dan kota merupakan kota tujuan. Dari kota awal sampai kota tujuan dapat dipilih
beberapa lintasan sebagai berikut. →
→ →
→ →
= 2 + 6 + 3 + 5 + 7 = 23 →
→ →
→ →
= 2 + 6 + 3 + 6 + 3 = 20 →
→ →
→ = 2 + 6 + 3 + 6 = 17
→ →
→ →
= 2 + 6 + 2 + 3 = 13 →
→ →
→ = 2 + 2 + 6 + 3 = 13
→ →
→ →
= 2 + 2 + 5 + 7 = 16 →
→ →
= 2 + 2 + 6 = 10 →
→ →
= 2 + 3 + 7 = 12 →
→ →
→ = 4 + 3 + 5 + 7 = 19
→ →
→ →
= 4 + 3 + 6 + 3 = 16 2
4 6
3
2
3 2
7 5
6 6
3
→ →
→ = 4 + 3 + 6 = 13
→ →
→ = 4 + 2 + 3 = 9
Berdasarkan data di atas, lintasan terpendek dari ke
adalah 9 dengan melewati
dan .
2.3 Algoritma Floyd Warshall
2.3.1 Algoritma Floyd Warshall untuk Graf Berarah
Algoritma yang ditemukan oleh Warshall untuk mencari lintasan terpendek merupakan algoritma algoritma yang sederhana dan mudah
implementasinya. Masukan Algoritma Warshall adalah matriks hubung graf berarah berlabel dan keluarannya adalah lintasan terpendek dari semua titik
ke semua titik Siang, 2004. Dalam usaha untuk mencari lintasan terpendek, algoritma Floyd-Warshall memulai iterasi dari titik awalnya kemudian
memperpanjang lintasan dengan mengevaluasi titik demi titik hingga mencapai titik tujuan dengan bobot yang seminimum mungkin.
Menurut Novandi, sebagaimana dikutip oleh Nur Setiawan, 2013:21, Algoritma Floyd-Warshall adalah sebuah algoritma analisis graf
untuk mencari bobot minimum dari graf berarah. Dalam pengertian lain Algoritma Floyd-Warshall adalah suatu metode yang melakukan pemecahan
masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait. Artinya solusi-solusi tersebut dibentuk dari
solusi yang berasal dari tahap sebelumnya dan ada kemungkinan solusi lebih
dari satu
.
Algoritma Floyd-Warshall memiliki input graf berbobot V,E, yang berupa daftar titik nodeverteks V dan daftar sisi edge E. Jumlah
bobot sisi-sisi pada sebuah lintasan adalah bobot sisi tersebut. Sisi pada E diperbolehkan memiliki bobot negatif, akan tetapi tidak diperbolehkan bagi
graf ini untuk memiliki siklus dengan bobot negatif. Algoritma ini menghitung bobot terkecil dari semua sisi yang menghubungkan sebuah
pasangan titik dan melakukannya sekaligus untuk semua pasangan titik. Prinsip yang dipegang oleh algoritma Floyd-Warshall adalah prinsip
optimalitas, yaitu jika solusi total optimal, maka bagian solusi sampai suatu tahap misalnya tahap ke-i juga optimal.
Menurut Siang, sebagaimana dikutip oleh Sani et al. 2013:3, algoritma Floyd-Warshall untuk mencari lintasan terpendek, Dimisalkan
adalah matriks ketetanggaan awal graf berarah berbobot. adalah matriks
ketetanggaan berbobot terkecil dengan sama dengan lintasan terpendek
dari titik ke
. 1
2 Untuk =1 hingga , lakukan:
Untuk =1 hingga , lakukan:
Untuk =1 hingga lakukan:
3 Jika W [
,j] W[ , ] + [ , ] maka Tukar
[ ,j] dengan [ , ] + [ , ] 4
=
Algoritma Floyd-Warshall adalah salah satu algoritma dari pemrograman dinamis, yaitu suatu metode yang melakukan pemecahan
masalah dengan memandang solusi yang akan diperoleh sebagai suatu keputusan yang saling terkait, artinya solusi-solusi tersebut dibentuk dari
solusi yang berasal dari tahap sebelumnya dan ada kemungkinan lebih dari satu solusi. Algoritma Floyd-Warshall juga membandingkan semua
kemungkinan lintasan pada graf untuk setiap sisi dari semua titik. Algoritma Floyd-Warshall menerapkan pemrograman dinamis sehingga lebih menjamin
keberhasilan penemuan solusi optimum untuk kasus penemuan lintasan terpendek.
Peran pemrograman dinamis yang mencoba untuk memberikan solusi yang memiliki pemikiran terhadap konsekuensi yang ditimbulkan dari
pengambilan keputusan dari suatu tahap. Prinsip yang dipegang oleh pemrograman dinamis adalah prinsip optimalitas, yaitu jika solusi total
optimal, maka bagian solusi sampai suatu tahap juga optimal. Algoritma Floyd-Warshall merupakan salah satu jenis algoritma all pair
shortest, yaitu mencari lintasan terpendek untuk semua pasangan titik yang ada pada sebuah graf. Input dari algoritma ini berupa graf berbobot dan
berarah. Seperti algoritma bellman Ford, algoritma ini juga dapat menghitung sisi yang berbobot negatif. Cara kerja algoritma ini dapat digambarkan
dengan menggunakan matriks.
2.3.2 Algoritma Floyd Warshall Untuk Graf Tidak Berarah
Algoritma Floyd-Warshall dikembangkan oleh R. W. Floyd sehingga matriksnya merupakan graf berbobot dan bukan lagi matriks Boolean.
Algoritma Floyd-Warshall dapat digunakan untuk mencari jarak antara semua titik dalam graf. Algoritma ini sangat efisien dari sudut pandang
penyimpanan data karena dapat diimplementasikan dengan hanya pengubahan sebuah matriks jarak.
Algoritma Floyd-Warshall memiliki input graf tak berarah dan berbobot V,E, yang berupa himpunan titik titik V dan himpunan sisi sisi
E. Bobot sisi e dapat diberi symbol di,j
.
Diketahui n titik dalam graf tidak berarah adalah v
1
, v
2
, v
3
, ……., v
n
untuk menentukan lintasan terpendek di antara semua pasangan titik, dengan langkah sebagai berikut:
Langkah 1: untuk i≠j, jika adalah sisi, ambil di,j sebagai bobot dari
sisi tersebut. Jika tidak ada sisi yang menghubungkan langsung antara i dan j ditulis di,j
= ∞. Untuk i=j, maka ditulis di,j =0. Langkah 2: untuk k=1 sampai n
Untuk i, j =1 sampai n Ditulis di,j = min{
+ dk,j } Nilai akhir dari di,j adalah jarak dari
ke .Goodaire
Parmeter, 1998:382 Dari prosedur di atas dapat dilihat bahwa pada iterasi ke-
k 1≤k≤n
Mula-mula algoritma untuk jarak dari ke
adalah panjang dari sisi ke
adalah panjang sisi . Setelah iterasi pertama pada langkah 2 k=1,
jarak yang diperoleh digantikan dengan panjang dari lintasan . Setelah
iterasi k pada algoritma ini dapat ditentukan jarak terpendek dari ke
pada titik-titik ,
, ….., . jarak adalah setelah iterasi ke k=n dengan
mengambil di,j sebagai lintasan terpendek dari i ke j
Gambar 2.7 merupakan contoh graf berbobot yang akan digunakan dalam penerapan dari algoritma Floyd-Warshall
Gambar 2.7 : Graf Berbobot
Bentuk matriksnya adalah sebagai berikut. 1
3 9
5 1
�
� �
�
K=1 d1,1
{d1,1, d1,1 + d1,1}= min{0, 0 + 0} = 0 d1,2
{d1,2, d1,1 + d1,2} = min{5, 0 + 5} = 5 d1,3
{d1,3, d1,1 + d1,3} = min{9, 0 + 9} = 9 d1,4
{d1,4, d1,1 + d1,4} = min{∞, 0 + ∞} = ∞ d2,1
{d2,1,d2,1 + d1,1} = min{5, 5 + 0} = 5 d2,2
{d2,2, d2,1 + d1,2} = min{0, 5 + 5} = 0 d2,3
{d2,3, d2,1 + d1,3} = min{3, 5 + 9} = 3 d2,4
{d2,4, d2,1 + d1,4} = min{1, 5 + ∞} = 1 d3,1
{d3,1, d3,1 + d1,3} = min{9, 9 + 0} = 9 d3,2
{d3,2, d3,1 + d1,2} = min{3, 9 + 5} = 3 d3,3
{d3,3, d3,1 + d1,3} = min{0, 9 + 9} = 0 d3,4
{d3,4, d3,1 + d1,4} = min{1, 9 + ∞} = 1 d4,1
{d4,1, d4,1 + d1,1} = min{∞, ∞ + 0} = ∞ d4,2
{d4,2, d4,1 + d1,2} = min{1, ∞ + 5} = 1 d4,3
{d4,3, d4,1 + d1,3} = min{1, ∞ + 9} = 1 d4,4
{d4,4, d4,1 + d1,4} = min{0, ∞ + ∞} = 0 Sehingga diperoleh matriksnya sebagai berikut.
K = 2 d1,1
{d1,1, d1,2 + d2,1} = min{0, 5 + 5} = 0
d1,2 {d1,2, d1,2 + d2,2} = min{5, 5 + 0} = 5
d1,3 {d1,3, d1,2 + d2,3} = min{9, 5 + 3} = 8
d1,4 {d1,4, d1,2 + d2,4} = min{∞, 5 + 1} = 6
d2,1 {d2,1, d2,2 + d2,1} = min{5, 0 + 5} = 5
d2,2 {d2,2, d2,2 + d2,2} = min{0, 0 + 0} = 0
d2,3 {d2,3, d2,2 + d2,3} = min{3, 0 + 3} = 3
d2,4 {d2,4, d2,2 + d2,4} = min{1, 0 + 1} = 1
d3,1 {d3,1, d3,2 + d2,3} = min{9, 3 + 5} = 8
d3,2 {d3,2, d3,2 + d2,2} = min{3, 3 + 0} = 3
d3,3 {d3,3, d3,2 + d2,3} = min{0, 3 + 3} = 0
d3,4 {d3,4, d3,2 + d2,4} = min{1, 3 + 1} = 1
d4,1 {d4,1, d4,2 + d2,1} = min{∞, 1 + 5} = 6
d4,2 {d4,2, d4,2 + d2,2} = min{1, 1 + 0} = 1
d4,3 {d4,3, d4,2 + d2,3} = min{1, 1 + 3} = 1
d4,4 {d4,4, d4,2 + d2,4} = min{0, 1 + 1} = 0
Sehingga diperoleh matriksnya sebagai berikut
K = 3
d1,1 {d1,1, d1,3 + d3,1} = min{0, 8 + 8}= 0
d1,2 {d1,2, d1,3 + d3,2} = min{5, 8 + 3} = 5
d1,3 {d1,3, d1,3 + d3,3} = min{8, 8 + 0} = 8
d1,4 {d1,4, d1,3 + d3,4} = min{9, 8 + 1} = 9
d2,1 {d2,1, d2,3 + d3,1} = min{5, 3 + 8} = 5
d2,2 {d2,2, d2,3 + d3,2} = min{0, 3 + 3}= 0
d2,3 {d2,3, d2,3 + d3,3} = min{3, 3 + 0} = 3
d2,4 {d2,4, d2,3 + d3,4} = min{1, 3 + 1} = 1
d3,1 {d3,1, d3,3 + d3,1} = min{8, 0 +8} = 8
d3,2 {d3,2, d3,3 + d3,2} = min{3, 0 + 3} = 3
d3,3 {d3,3, d3,3 + d3,3} = min{0, 0 + 0} = 0
d3,4 {d3,4, d3,3 + d3,4} = min{1, 0 + 1} = 1
d4,1 {d4,1, d4,3 + d3,1} = min{6, 1 + 8} = 6
d4,2 {d4,2, d4,3 + d3,2} = min{1, 1 +3} = 1
d4,3 {d4,3, d4,3 + d3,3} = min{1, 1 + 0} = 1
d4,4 {d4,4, d4,3 + d3,4}= min{0, 1 + 1} = 0
Sehingga diperoleh matriksnya sebagai berikut
K = 4 d1,1
{d1,1, d1,4 + W4,1} = min{0, 6 + 5} = 0 d1,2
{d1,2, d1,4 + W4,2} = min{5, 6 + 1} = 5 d1,3
{d1,3, d1,4 + d4,3} = min{8, 6 + 1} = 7 d1,4
{d1,4, d1,4 + d4,4} = min{6, 6 + 0} = 6
d2,1 {d2,1, d2,4 + d4,1} = min{5, 1 + 6} = 5
d2,2 {d2,2, d2,4 + d4,2} = min{0, 1 + 1} = 0
d2,3 {d2,3, d2,4 + d4,3} = min{3, 1 + 1} = 2
d2,4 {d2,4 , d2,4 +d4,4} = min{1, 1 + 0} = 1
d3,1 {d3,1, d3,4 + d4,1} = min{8, 1 + 6} = 7
d3,2 {d3,2, d3,4 + d4,2} = min{3, 1 + 1} = 2
d3,3 {d3,3, d3,4 + d4,3} = min{0, 1 + 1} = 0
d3,4 {d3,4, d3,4 + d4,4} = min{1, 1 + 0} = 1
d4,1 {d4,1, d4,4 + d4,1} = min{6, 0 + 6} = 6
d4,2 {d4,2, d4,4 + d4,2} = min{1, 0 + 1} = 1
d4,3 {d4,3, d4,4 + d4,3} = min{1, 0 + 1} = 1
d4,4 {d4,4, d4,4 + d4,4} = min{0, 0 + 0} = 0
Sehingga diperoleh matriksnya sebagai berikut
Sehingga diperoleh suatu lintasan terpendek pada setiap titiknya. Dari matriks di atas dapat ditarik sebuah kesimpulan bahwa jarak dari titik
ke adalah 0, jarak dari titik
ke adalah 5,
ke adalah 7,
ke adalah 6 dan sebagainya.
2.4 Simulasi
2.4.1 Definisi Simulasi
Simulasi dapat dipandang sebagai suatu model matematis yang menerangkan perilaku sistem dari waktu ke waktu. Simulasi merupakan
teknik numerik untuk melakukan percobaan pada suatu komputer digital, di mana didalamnya mengandung sejumlah hubungan matematis yang
logis dan diperlukan untuk menggambarkan struktur dan tingkah laku sistem dunia nyata yang kompleks pada periode yang cukup panjang.
2.4.2 Kelebihan dari simulasi
Beberapa Kelebihan dari simulasi adalah: 1.
Tidak semua sistem dapat direpresentasikan dalam model matematis, simulasi merupakan alternatif yang tepat untuk
menyelesaikan permasalahan tersebut. 2.
Dapat bereksperimen tanpa adanya resiko pada sistem nyata. Dengan simulasi memungkinkan untuk melakukan percobaan
terhadap sistem tanpa harus menaggung resiko terhadap sistem yang berjalan.
3. Simulasi dapat mengestimasi kinerja sistem pada kondisi tertentu
dan memberikan alternative desain terbaik sesuai dengan spesifikasi yang diinginkan.
4. Simulasi memungkinkan untuk melakukan studi jangka panjang
dalam waktu yan relatif singkat.
5. Dapat menggunakan input data bervariasi.
2.5 Visual Basic
VB Visual Basic merupakan bahasa pemrograman komputer yang lengkap dan mudah digunakan untuk membuat suatu aplikasi dalam
Microsoft Windows dengan menggunakan metode Grafical User Interface GUI. Visual Basic memudahkan pemrograman untuk berinteraksi
langsung dengan elemen-elemen di dalam setiap bentuk pemrograman. Microsoft Visual Basic berawal dari bahasa pemrograman BASIC
Beginners All Purpose Symbolic Instruction Code, yaitu sebuah bahasa pemrograman.Visual Basic dapat digunakan sebagai alat bantu untuk
membuat berbagai macam program komputer. Aplikasi yang dapat dihasilkan dengan bahasa pemrograman LPKBM, 2002:3.
Kepopuleran Visual Basic sebenarnya datang dari lingkungan yang sering disebut Integrated Development Environment atau IDE. IDE
membantu membangun sebuah aplikasi besar, menulis sebuah program, menjalankan program, dan menghasilkan sebuah executable file.
Executable file yang dihasilkan oleh Visual Basic bersifat independen, dan karena itu file tersebut dapat dijalankan pada komputer tanpa harus
menginstal Visual Basic. Visual Basic selain disebut sebagai bahasa pemrograman juga
sering disebut sarana tool untuk menghasilkan program-program aplikasi
berbasis windows. Beberapa kemampuan atau manfaat dari visual basic diantaranya seperti:
1. Untuk membuat program aplikasi berbasis windows
2. Untuk membuat objek-objek pembantu program seperti kontrol
Activex, File, Help, Aplikasi internet dan sebagainya. 3.
Menguji program dan menghasilkan program akhir berakhiran EXE yang bersifat Executable atau dapat langsung dijalankan
Visual Basic 6.0 sebetulnya perkembangan dari versi sebelumnya dengan beberapa penambahan komponen yang sedang tren saat ini, seperti
kemampuan pemrograman internet dengan Dynamic HyperText Mark Language DHTML, dan beberapa penambahan fitur database dan
multimedia yang semakin baik. Sampai saat buku ini ditulis bisa dikatakan bahwa Visual Basic 6.0 masih merupakan pilih pertama di dalam membuat
program aplikasi yang ada di pasar perangkat lunak nasional. Hal ini disebabkan oleh kemudahan dalam melakukan proses development dari
aplikasi yang dibuat.
Untuk lebih jelasnya tentang interface Visual Basic 6 bisa dilihat di Gambar 2.8
Visual Basic dapat dioperasikan melalui tombol Start Programs Microsoft Visual Studio 6.0 Microsoft Visual Basic 6.0 tunggulah beberapa saat
hingga muncul Gambar 2.9.
Gambar 2.9 Bagian-bagian New Project
Pilih Standard EXE dan klik tombol Open. Gambar 2.8 Interface Visual Basic 6.0
33
BAB III METODE PENELITAN
Untuk melakukan penelitian harus memperhatikan prosedur dan langkah- langkah yang akan dilakukan untuk memulai penelitian sehingga dapat terarah
dan terlaksana dengan baik. Dalam hal pelaporan penelitian ini terbagi menjadi beberapa tahapan sebagai berikut:
3.1 Identifikasi masalah dan Perumusan masalah
Tahap identifikasi masalah adalah tahap menemukan permasalahan sebelum dilakukannya penelitian. Dengan menemukan permasalahan yang
ditemukan pada objek yang diteliti guna mencari alternatif solusi yang terkait dengan permasalahan. Identifikasi masalah dilakukan untuk
memperoleh gambaran yang lengkap tentang ruang lingkup masalah dan langkah yang tepat dalam mencari pemecahanya. Identifikasi masalah
pada penelitian ini adalah mengamati fakta-fakta yang ada di lapangan yang terdapat beberapa hal yang ingin dikaji. Fakta yang ada di lapangan
diketahui bahwa terdapat permasalahan yang dapat dibahas mengenai perjalanan masyarakat yang berada di kota-kota besar sering kesulitan
untuk mencari jalan tercepat untuk mencapai tempat tujuan. Akibatnya mereka sering membuang-buang waktu, tenaga dan biaya agar dapat
sampai ke tempat tujuan .
Dengan banyaknya jalan yang akan dilalui maka