Penentuan jarak terdekat ini merupakan suatu cara untuk mendapatkan
keputusan jarak yang akan ditempuh dari sebuah titik ke titik lainnya
menggunakan metode ini. Yang mana kita menggunakan contoh kota, memasukkan nama
kota dan jarak jaraknya. Lalu jika kita memilih kota awal maka akan tampil
jarak kota awal itu ke semua kota, dari situ kita akan mengetahui jarak
terdekat hingga terjauh dari kota awal yang kita masukkan.
Berikut Source kode :
#include<stdio.h>#include<conio.h>#include<process.h>#include<string>#include<math.h>#include<iostream>using namespace std;// N merupakan Jumlah Titikint main(){int N, Jm, Jr, src;string titik1, titik2;cout<<"Masukkan jumlah titik/kota : ";cin>>N;//define N titikint titik[N][N] = {};string namakota[N] = {};for(int i=0;i<N;i++){cout<<"\nMasukan Nama Kota / Titik ke "<<i+1<<" : ";cin>>namakota[i];}for(int i=0;i<N;i++){cout<<"\nKota ke-"<<i+1<<" Adalah : "<<namakota[i];}cout<<"\n\n======================================================\n\n";cout<<"Masukan Jumlah Jalur yang tersedia : ";cin>>Jm;cout<<"\n\n\n";for(int b=0; b<Jm; b++){cout<<"Masukan Nama asal jalur ke-"<<b+1<<" : ";cin>>titik1;cout<<"Masukan Nama Tujuan jalur ke-"<<b+1<<" : ";cin>>titik2;cout<<"Masukan Jarak Antara Asal dan Tujuan Jalur ke "<<b+1<<" : ";cin>>Jr;for(int a=0; a<N ; a++){int x = namakota[a].compare(titik1);if(x == 0){for(int c=0; c<N; c++){int y = namakota[c].compare(titik2);if(y == 0){titik[a][c] = Jr;titik[c][a] = Jr;}}}}cout<<"Insert Success !!!\n\n\n\n";}/*for(int i=0;i<N;i++){for(int a=0;a<N;a++){cout<<"\nArray ["<<i<<"]["<<a<<"] Adalah "<<titik[i][a];}}*///dijkstra(titik, 0);cout<<"======================================================\n\n";cout<<"Masukkan Nama kota awal untuk mengetahui jarak ke semua titik !\n\n";cout<<"Kota Awal : ";string asal;cin>>asal;for(int i=0; i<N; i++){if((namakota[i].compare(asal)) == 0){src=i;}}int dist[N];bool sptSet[N];for (int i = 0; i < N; i++){dist[i] = INT_MAX, sptSet[i] = false;}dist[src] = 0;for (int count = 0; count < N-1; count++){int min = INT_MAX, min_index;for (int v = 0; v < N; v++)if (sptSet[v] == false && dist[v] <= min)min = dist[v], min_index = v;int u = min_index;sptSet[u] = true;for (int v = 0; v < N; v++){if (!sptSet[v] && titik[u][v] && dist[u] != INT_MAX && dist[u]+titik[u][v] < dist[v]){dist[v] = dist[u] + titik[u][v];}}}//printf("Vertex Distance from Source\n");for (int i = 0; i < N; i++){cout<<"Dari kota : "<<asal<<" Ke Kota "<<namakota[i]<<" Harus Menempuh Sejauh : "<<dist[i]<<" Km\n";}}
Output :
- Compile+ run aplikasi pada dev c++
- Awalnya kita masukan kota mana yang ingin di tuju, pada bahasan kali ini kami menggunakan variable umum (A, B, C, D, E)
- Tahap kedua, kita masukan tujuan darikota yang kita inginkan, kami memilih kota A sebagai kota awal untuk pergi ke kota B, C, D, E
- Tahap terakhir adalah tahap penyelesaian, system akan menampilkan jarak terdekat antara kota kota awal (A), dengan kota tujuan (B, C, D, E)
Tidak ada komentar:
Posting Komentar