Upload
dicky-triyadi-putra
View
222
Download
4
Embed Size (px)
DESCRIPTION
djikstra
Citation preview
OLEH : MIRRA ARIESTA AMALIA ADIBA
2 D3 TEKNIK INFORMATIKA B | 2103131055
TEORI KONSEP JARINGAN -
ALGORITMA DIJKSTRA
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 1
DAFTAR ISI
DAFTAR ISI ............................................................................................................................................... 1
ALGORITMA DIJKSTRA............................................................................................................................. 2
Penjelasan ........................................................................................................................................... 2
Pseudocode ......................................................................................................................................... 3
Source program................................................................................................................................... 4
Output program .................................................................................................................................. 6
Analisa program .................................................................................................................................. 7
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 2
ALGORITMA DIJKSTRA
Penjelasan
Algoritma dijkstra ditemukan oleh seorag ilmuwan computer berkebangsaan
Belanda, bernama Edsger Dijkstra. Algoritma dijkstra ini adalah algoritma yang digunakan
untuk mencari lintasan terpendek pada sebuah graf berarah maupun tidak. Algoritma
Dijkstra merupakan salah satu varian dari algoritma greedy, yaitu salah satu bentuk
algoritma populer dalam pemecahan persoalan yang terkait dengan masalah optimasi,
algoritma greedy ini hanya memikirkan solusi terbaik yang akan diambil pada setiap
langkah tanpa memikirkan konsekuensi ke depan. Prinsipnya, ambillah apa yang bisa Anda
dapatkan saat ini (take what you can get now!), dan keputusan yang telah diambil pada
setiap langkah tidak akan bisa diubah kembali. Intinya algoritma greedy ini berupaya
membuat pilihan nilai optimum lokal pada setiap langkah dan berharap agar nilai
optimum lokal ini mengarah kepada nilai optimum global.
Cara kerja Algoritma dijkstra memakai strategi greedy, dimana pada setiap langkah
di pilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang sudah terpilih
dengan simpul yang sudah terpilih dengan simpul lain yang belum terpilih. Algoritma
Dijkstra membutuhkan parameter tempat asal dan tempat tujuan. Hasil akhir dari
algoritma ini adalah jarak terpendek dari tempat asal ke tempat ujuan beserta rutenya.
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 3
Pseudocode
- Masukkan banyakRouter (number_of_vertices)
- Masukkan jarak pada masing-masing router dalam matriks atau jarakMatriks[][]
(adjacency_matrix[][])
- Untuk i dan j =1 hingga n (banyakRouter)
Jika i dan j sama maka jarakMatriks[i][j] = 0, continue;
Jika jarakMatriks = 0 maka jarak Matriks=Integer.maxValue;
- for (int i = 1; i
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 4
Source program
1. import java.util.*;
2.
3. public class Main {
4.
5. private int distances[];
6. private Set settled;
7. private Set unsettled;
8. private int number_of_nodes;
9. private int adjacencyMatrix[][];
10.
11. public Main(int number_of_nodes) {
12. this.number_of_nodes = number_of_nodes;
13. distances = new int[number_of_nodes + 1];
14. settled = new HashSet();
15. unsettled = new HashSet();
16. adjacencyMatrix = new int[number_of_nodes + 1][number_of_nodes + 1];
17. }
18.
19. public void dijkstra_algorithm(int adjacency_matrix[][], int source) {
20. int evaluationNode;
21. for (int i = 1; i
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 5
55. }
56. return node;
57. }
58.
59. private void evaluateNeighbours(int evaluationNode) {
60. int edgeDistance = -1;
61. int newDistance = -1;
62.
63. for (int destinationNode = 1; destinationNode
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 6
108. for (int i = 1; i
Mirra Ariesta Amalia Adiba | 2 D3 Teknik Informatika B | 2103131055 Page 7
Analisa program
Pada program Algoritma Dijkstra diatas, hal pertama kali yang harus kita lakukan
adalah menginputkan matriks jarak antar router setelah kita inputkan semua, proses
selanjutnya adalah mencari jarak router satu dengan yang lain pencarian jarak dilakukan
dengan cara : pertama dilakukan looping sebanyak router. pada setiap looping dilakukan
pemanggilan method dijkstra_algorithm dengan paramter pertama berupa matriks jarak
router dan parameter kedua merupakan router tujuan yg akan dicari jarak terdekatnya
setelah jarak di temukan, maka hasilnya langsung di tampilkan.
Di dalam method dijkstra_algorihm terjadi proses : pertama matriks yg berisi jarak-
jarak antar router tadi isinya di masukkan ke dalam matriks yg lain agar nilai tidak berubah.
selanjutnya isi distance dengan Integer.MAX_VALUE sebagai pengganti infinity. Masukkan
target ke dalam unsettled sebagai flag bahwa target belum di kunjungi.
lakukan looping selama unsettled tidak kosong. di dalam looping, terjadi pencarian jarak
terdekat dengan titik yg berada di dalam unsettled. setelah mendapatkan titip tedekat,
remove titik di unsettled yg telah yg ditemukan. masukkan titik tersebut ke dalam settled,
kemudian lakukan pencarian node node yg terhubung dengan titik terdekat yang di
temukan. ulangi jika memang unsettled belum kosong. jika sudah kosong, maka pencarian
selesai.