Lintasan Visual Basic TINJAUAN PUSTAKA

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