Senin, 07 Oktober 2019

penentuan jarak terdekat dari suatu titik menggunakan c++



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 Titik
int main(){
    int N, Jm, Jr, src;
    string titik1, titik2;
    cout<<"Masukkan jumlah titik/kota : ";
    cin>>N;
    //define N titik
    int 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

Cara mencari nilai median dan modus menggunakan bahasa c++

Median adalah nilai tengah pada sebuah data yang telah diurutkan, sedangkan modus merupakan nilai yang sering muncul. Tentu sebelum ...