Algoritma Dan Pemrograman Djikstrak Menggunakan Codingan C++

 

Sebelum kita memulai Cara Membuat Algoritma Dan Pemrograman Djikstrak  Menggunakan Codingan C++

Bahasa C++ Adalah Sebuah Bahasa Pemrograman Komputer Yang Merupakan Perkembangan Dari Bahasa C Di Kembangkan Oleh Bjane Stroustrup pada awal 1970-an, jika Bahasa C menggunakan bahasa prosuderal maka Bahasa C++ menggunakan konsep pemrograman berorientasi objek atau Object Oriented Programming. Salah satu perbedaan yang sangat mencolok antara Bahasa C dan Bahasa C++ adalah adanya dukungan terhadap konsep pemrograman berorientasi objek
C++  Mempunyai 32 Buah Kata yang di pesan (reserved words). Kelompok pertama merupakan turunan dari Bahasa C
Pemrograman dengan Bahasa C menggunakan 2 konsep:
-        Data – Bahan yang akan diolah
-        Algorithms – Metode pengolahan
Ada 2 jenis method dalam pemrograman C+
-        Method Return – Memiliki nilai kembali, contoh int (sama seperti fungsi)
-        Method Void – Tanpa memiliki nilai kembalian (sama seperti prosedur)


Aplikasi yang digunakan adalah DEV C++ dan anda juga bias menggunakan aplikasi lain seperti Borland C++ atau Sublime Text
Untuk membuat codingan pertama download terlebih dahulu aplikasi Dev C++ yang tertera pada link tersebut
>>>>> Aplikasi Dev C++  <<<<<
Lalu anda install aplikasi Dev C++ tersebut seperti biasa hingga selesai



Pertama
Anda buka aplikasi Dev C++ Lalu Pilih File lalu pilih new dan pilih source file atau anda bisa langsung CTRL+N
Lalu tuliskan source code sebagai berikut

#include<iostream>
#include<stdlib.h>
#define MAX 20
#define INFINITY 9999

using namespace std;
class dijkstra
{
private:
int n;
int graph[MAX][MAX];
int colour[MAX];
int start;
int distance[MAX];
int predecessor[MAX];
enum {green,yellow,red};
public:
void read_graph();
void initialize();
int select_min_distance_lable();
void update(int);
void output();
void function();
};
void dijkstra::read_graph()
{
cout<<"Enter the no. of nodes in the graph ::";
cin>>n;
cout<<"Enter the adjacency matrix for the graph ::\n";
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)

cin>>graph[i][j];

for(i=1;i<=n;i++)
colour[i]=green;
cout<<"Enter the start vertex ::";
cin>>start;
}
void dijkstra::initialize()
{
for(int i=1;i<=n;i++)
{
if(i==start)

distance[i]=0;

else

distance[i]=INFINITY;

}
for(int j=1;j<=n;j++)

{
if(graph[start][j]!=0)

predecessor[j]=start;

else

predecessor[j]=0;

}
}
int dijkstra::select_min_distance_lable()
{
int min=INFINITY;
int p=0;
for(int i=1;i<=n;i++)
{
if(colour[i]==green)
{

if(min>=distance[i])
{
min=distance[i];
p=i;
}

}
}
return p;
}
void dijkstra::update(int p) // p is a yellow colour node
{
cout<<"\nupdated distances are ::\n";
for(int i=1;i<=n;i++)
{
if(colour[i]==green)
{

if(graph[p][i]!=0)
{
if(distance[i]>graph[p][i]+distance[p])
{
distance[i]=graph[p][i]+distance[p];
predecessor[i]=p;
}
}

}
cout<<distance[i]<<'\t';
}
}
void dijkstra::output()
{
cout<<"****** The final paths and the distacnes are ******\n\n";
for(int i=1;i<=n;i++)
{
if(predecessor[i]==0 && i!=start)
{

cout<<"path does not exists between "<<i<<" and the start vertex "
<<start<<endl;
exit(1);

}
cout<<"path for node “<<i<<” is ::\n";
int j=i;
int array[MAX];
int l=0;
while(predecessor[j]!=0)

{

array[++l]=predecessor[j];
j=predecessor[j];

}
for(int k=l;k>=1;k=-k)

cout<<array[k]<<"->";

cout<<i<<endl;
cout<<"distance is "<<distance[i]<<endl<<endl<<endl;
}
}
void dijkstra::function()
{
cout<<"\n**********************************************************************\n";
cout<<"This program is to implement dijkstra’s algorithm using colour codes \n";
cout<<"**********************************************************************\n\n";
read_graph();
initialize();
//repeate until all nodes become red
int flag=0;
int i;
cout<<"\n\n******** The working of the algorithm is **********\n\n";
for(i=1;i<=n;i++)
if(colour[i]!=red)
flag=1;

cout<<"The initial distances are ::\n";
for(i=1;i<=n;i++)
cout<<distance[i]<<'\t';
cout<<endl;
while(flag)
{
int p=select_min_distance_lable();
cout<<"\nThe min distance lable that is coloured yellow is "<<p;
colour[p]=yellow;
update(p);
cout<<"\nnode "<<p<<" is coloured red "<<endl;
colour[p]=red;
flag=0;
for(i=1;i<=n;i++)

if(colour[i]!=red)
flag=1;
cout<<endl<<endl<<endl;
}
output();
}
main()
{
dijkstra d;
d.function();
}

Setelah menuliskan Source code tersebut lalu anda pilih file lalu klik save as dan masukan nama yang anda inginkan lalu klik save lalu pilih menu “Run”. Kalau anda menggunakan aplikasi DEV C++, maka pilih menu “Compile and Run” yang ada di toolbar “Execute” atau anda bisa menekan tombol F11 pada keyboard anda.




Sangat mudah sekalikan belajar codingan salah satu belajar Bahasa C++, jadi silahkan pelajari dengan benar dan baik, jika ada kesalahan atau error silahkan kirim komentar anda pada halaman ini

Sekian  materi pembelajaran teknik informatika yang bisa saying berikan pada artikel ini.  Untuk melihat contoh-contoh pemrograman lainnya anda bisa melihat di artikel lainnya. Semoga bermanfaat untuk mempelajari tentang pemrograman Bahasa C++ dengan baik. Selamat Mencoba Salam Codingers


Posting Komentar

Lebih baru Lebih lama