Skip to content
INOVATIF, PROFESIONAL, DAN BERKEPRIBADIAN
facebook
youtube
instagram
Pusat Pengelolaan Digitalisasi Penjaminan Mutu Universitas Medan Area
Call Support 0823-6994-9970
Email Support [email protected]
Location Jl. Kolam No. 1 Medan Estate
  • BERANDA
  • TENTANG
    • PROFIL
    • VISI DAN MISI
    • STRUKTUR ORGANISASI
  • BERITA KEGIATAN
  • KERJASAMA
  • LAYANAN & INFORMASI
    • APLIKASI
      • PERPUSTAKAAN UMA
      • ACADEMIC ONLINE CAMPUS (AOC)
      • REPOSITORI UMA
      • TRACER STUDY (ALUMNI)
      • JURNAL
      • E-LEARNING UMA
      • DIREKTORI MAHASISWA
    • ARSIP
      • PERUBAHAN DATA MAHASISWA DI PDDIKTI
      • Buku Pedoman Universitas Medan Area
      • KURIKULUM
        • Kurikulum Teknik
        • Kurikulum Pertanian
        • Kurikulum Ekonomi dan Bisnis
        • Kurikulum Hukum
        • Kurikulum Isipol
        • Kurikulum Psikologi
        • Kurikulum Saintek
        • Kurikulum Agama Islam
      • Kalender Akademik Universitas Medan Area
      • Artikel
    • Helpdesk P2DPM
  • id
    • en
    • id

Aplikasi Pemilihan Rute Tercepat Menggunakan Algoritma Dijkstra

Home > Artikel > Aplikasi Pemilihan Rute Tercepat Menggunakan Algoritma Dijkstra

Aplikasi Pemilihan Rute Tercepat Menggunakan Algoritma Dijkstra

Posted on 8 Desember 20258 Desember 2025 by Anisa Rahma Nasution
0

Aplikasi Pemilihan Rute Tercepat Dengan Algoritma Dijkstra

Aplikasi ini bertujuan mencari rute tercepat atau jalur terpendek dari satu titik ke titik lain dalam sebuah peta atau graf. Algoritma yang umum dipakai untuk masalah ini adalah Algoritma Dijkstra, karena efisien dan akurat untuk graf berbobot positif. Algoritma Dijkstra adalah algoritma greedy yang menghitung jarak minimum dari titik awal ke titik-titik lain dalam graf dengan bobot edge tidak negatif.

Hasil akhirnya adalah:

  • Jarak terpendek ke setiap node

  • Jalur terpendek (jika kita menyimpan parent / predecessor)

Syarat dan Ketentuan

Algoritma Dijkstra dapat dipakai jika:

  1. Graf berarah atau tak berarah

  2. Setiap edge memiliki bobot

  3. Bobot edge harus ≥ 0 (tidak negatif)
    → Jika ada bobot negatif, gunakan Bellman-Ford.

Konsep Dasar

Ide utama algoritma Dijkstra:

  1. Mulai dari simpul awal, beri jarak 0.

  2. Semua simpul lain diberi jarak awal ∞.

  3. Pilih node dengan jarak terkecil yang belum dikunjungi.

  4. Perbarui jarak tetangganya jika melalui node ini menjadi lebih pendek.

  5. Tandai node tersebut sebagai “selesai”.

  6. Ulangi sampai semua node selesai atau tujuan ditemukan.

Kelebihan

✔ Cepat untuk graf besar dengan bobot non-negatif
✔ Sangat efisien menggunakan priority queue
✔ Mudah diimplementasikan
✔ Banyak dipakai di sistem nyata (GPS, routing jaringan)

Kekurangan

✘ Tidak dapat dipakai jika ada bobot negatif
✘ Hanya untuk satu sumber (single-source shortest path)

Cara Kerja Dijkstra Secara Ringkas

  1. Pilih node awal (start).

  2. Set jarak awal = 0, dan lainnya = ∞.

  3. Tandai node awal sebagai “dikunjungi”.

  4. Perbarui jarak ke tetangga-tetangganya.

  5. Pilih node dengan jarak terkecil yang belum dikunjungi.

  6. Ulangi hingga semua node selesai.

Contoh Kasus

Misal kita punya graf seperti ini:

A –5– B –2– D
| |
2 4
| |
C –7– E

Jika kita ingin mencari jalur tercepat dari A ke D, Dijkstra akan menghasilkan:

👉 A → B → D dengan total jarak: 5 + 2 = 7

Contoh Implementasi Sederhana (Python)

Jika Anda butuh kode untuk aplikasi, berikut contoh dasar:

import heapq

def dijkstra(graf, start):
jarak = {node: float(‘inf’) for node in graf}
jarak[start] = 0
priority_queue = [(0, start)]

while priority_queue:
current_dist, current_node = heapq.heappop(priority_queue)

if current_dist > jarak[current_node]:
continue

for neighbor, weight in graf[current_node]:
distance = current_dist + weight
if distance < jarak[neighbor]:
jarak[neighbor] = distance
heapq.heappush(priority_queue, (distance, neighbor))

return jarak

graf = {
‘A’: [(‘B’, 5), (‘C’, 2)],
‘B’: [(‘A’, 5), (‘D’, 2), (‘E’, 4)],
‘C’: [(‘A’, 2), (‘E’, 7)],
‘D’: [(‘B’, 2)],
‘E’: [(‘B’, 4), (‘C’, 7)]
}

hasil = dijkstra(graf, ‘A’)
print(“Jarak terpendek dari A:”, hasil)

Contoh aplikasi dengan tampilan UI?

import { useState } from “react”;
import { Card, CardContent } from “@/components/ui/card”;
import { Button } from “@/components/ui/button”;
import { motion } from “framer-motion”;

export default function App() {
const graph = {
A: { B: 5, C: 2 },
B: { A: 5, D: 2, E: 4 },
C: { A: 2, E: 7 },
D: { B: 2 },
E: { B: 4, C: 7 },
};

const [start, setStart] = useState(“A”);
const [end, setEnd] = useState(“D”);
const [result, setResult] = useState(null);

const dijkstra = (graph, start, end) => {
const distances = {};
const visited = {};
const previous = {};

Object.keys(graph).forEach((node) => {
distances[node] = Infinity;
previous[node] = null;
});
distances[start] = 0;

while (true) {
let closest = null;
Object.keys(distances).forEach((node) => {
if (!visited[node] && (closest === null || distances[node] < distances[closest])) {
closest = node;
}
});

if (closest === null) break;
if (closest === end) break;

visited[closest] = true;
const neighbors = graph[closest];

Object.keys(neighbors).forEach((neighbor) => {
const newDist = distances[closest] + neighbors[neighbor];
if (newDist < distances[neighbor]) {
distances[neighbor] = newDist;
previous[neighbor] = closest;
}
});
}

const path = [];
let current = end;
while (current) {
path.unshift(current);
current = previous[current];
}

return { distance: distances[end], path };
};

const handleCalculate = () => {
setResult(dijkstra(graph, start, end));
};

return (
<div className=”p-6 grid place-items-center min-h-screen bg-gray-100″>
<motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }}>
<Card className=”p-6 rounded-2xl shadow-xl max-w-lg w-full”>
<h1 className=”text-2xl font-bold mb-4 text-center”>Aplikasi Rute Tercepat (Dijkstra)</h1>

<CardContent className=”space-y-4″>
<div>
<label className=”block mb-1 font-medium”>Titik Awal</label>
<select value={start} onChange={(e) => setStart(e.target.value)} className=”w-full p-2 rounded-xl border”>
{Object.keys(graph).map((node) => (
<option key={node}>{node}</option>
))}
</select>
</div>

<div>
<label className=”block mb-1 font-medium”>Titik Tujuan</label>
<select value={end} onChange={(e) => setEnd(e.target.value)} className=”w-full p-2 rounded-xl border”>
{Object.keys(graph).map((node) => (
<option key={node}>{node}</option>
))}
</select>
</div>

<Button onClick={handleCalculate} className=”w-full rounded-2xl p-3″>Hitung Rute Tercepat</Button>

{result && (
<motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} className=”mt-4 p-4 bg-white rounded-xl shadow”>
<h2 className=”text-lg font-semibold mb-2″>Hasil</h2>
<p><strong>Jarak Terpendek:</strong> {result.distance}</p>
<p><strong>Rute:</strong> {result.path.join(” → “)}</p>
</motion.div>
)}
</CardContent>
</Card>
</motion.div>
</div>
);
}

Berikut contoh aplikasi dengan UI dalam bentuk komponen React di canvas. Kode tersebut sudah lengkap dengan:

✅ Input titik awal & tujuan
✅ Perhitungan Dijkstra
✅ Tampilan hasil (jalur & jarak)
✅ Desain modern (Tailwind + shadcn + animasi Framer Motion)

Algoritma Dijkstra merupakan salah satu algoritma terpenting dalam komputasi modern, terutama dalam penyelesaian masalah jalur terpendek. Dengan sifatnya yang efisien dan mudah diimplementasikan, Dijkstra menjadi fondasi bagi berbagai aplikasi dunia nyata seperti navigasi, jaringan komputer, hingga kecerdasan buatan.

Meskipun memiliki keterbatasan pada graf berbobot negatif, algoritma ini tetap menjadi pilihan utama dalam banyak kasus praktis karena kecepatan dan keakuratannya. Pemahaman konsep, langkah kerja, serta implementasinya sangat penting bagi siapa saja yang ingin mendalami graf dan algoritma pencarian jalur.

Semoga penjelasan ini dapat membantu memperluas pemahaman Anda mengenai Algoritma Dijkstra dan manfaatnya dalam bidang ilmu komputer. Apabila diperlukan, Anda dapat melanjutkan dengan mempelajari algoritma terkait seperti A*, Bellman-Ford, atau Floyd-Warshall untuk memahami berbagai pendekatan penentuan jarak dalam graf.

Post Views: 336

p2dpm_uma

Jalan Kolam Nomor 1 Medan Estate

Get @reshare_app • @umabestari #UTBKSNBT Semoga Su Get @reshare_app • @umabestari #UTBKSNBT
Semoga Sukses Peserta Seleksi UTBK - SNBT Ujian Masuk Perguruan Tinggi Negeri USU & Unimed Tahun Seleksi 2026 di Kampus I & II Universitas Medan Area.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #PTSterbaik #UMAkampusJuara #KampusUnggul
#UMAFAIR2026 Wakil Rektor Bidang Kemahasiswaan, In #UMAFAIR2026 Wakil Rektor Bidang Kemahasiswaan, Inovasi dan Alumni Resmi Membuka Acara UMA FAIR 2026 . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖ 
https://pmb.uma.ac.id 
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptssehat #PTSterbaik #UMAkampusJuara #KampusUnggul
🌼 Selamat memperingati Hari Kartini 🌼 Jangan perna 🌼 Selamat memperingati Hari Kartini 🌼
Jangan pernah ragu untuk bersuara, menunjukkan kemampuan, dan memperjuangkan apa yg kamu yakini benar.
Get @reshare_app • @umabestari #PRESTASIUMA Alhamd Get @reshare_app • @umabestari #PRESTASIUMA
Alhamdulillan, Selamat dan Sukses Kepada Univeristas Medan Area Meraih Prestasi 9 Penghargaan Pada Anugerah Kementerian Pendidikan Tinggi, Sains dan Teknologi Lembaga Layanan Pendidikan Tinggi Wilayah I Tahun 2025.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
#PMBUMA2026 Bingung Kuliah Dimana? Kuliah di UMA #PMBUMA2026 
Bingung Kuliah Dimana? Kuliah di UMA aja ! Banyak Fasilitas Beasiswanya loh! . 

Informasi dan Pendaftaran Mahasiswa Baru : 

➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖ 

Call Center UMA : 
☎️0811 6013 888 

#ptsfavorite #PTSterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #PRESTASIMAHASISWA Get @reshare_app • @umabestari #PRESTASIMAHASISWA
Selamat & Sukses Kepada 
Juara 1 : Allisha Az Zahro 
Juara 2 : Rizky Abdillah
Juara 3: Desy Angelina
Pada Pemilihan Mahasiswa Berprestasi (PILMAPRES) Tingkat Universitas Medan Area Tahun 2025.
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Get @reshare_app • @umabestari #KERJASAMA Universi Get @reshare_app • @umabestari #KERJASAMA
Universitas Medan Area melaksanakan Penanda Tanganan Kerjasama Dengan Pemerintah Kabupaten Deli Serdang 
.
Informasi dan Pendaftaran Mahasiswa Baru :
➖➖➖➖➖➖➖
https://pmb.uma.ac.id
➖➖➖➖➖➖➖

Call Center UMA :
☎️0811 6013 888

#ptssehat #ptsterbaik #UMAkampusJuara #KampusUnggul
Pengumuman Libur Hari Raya Idul Fitri 1447 H Pengumuman Libur Hari Raya Idul Fitri 1447 H
Follow on Instagram

Lokasi P2DPM

url url url url url url url url url url url url

Kategori

  • Berita Terbaru
  • Pengumuman
  • Berita Kegiatan
  • Artikel

POSTINGAN TERPOPULER

  • Cara Melihat IP Address di Semua Jenis Perangkat dan Jenis-Jenisnya
  • Memahami Perbedaan Waktu: AM/PM, Zona Waktu, dan Sistem Jam
  • Dasar-Dasar Desain Grafis: Prinsip yang Harus Diketahui Pemula
  • Manfaat Pengelolaan Sumber Daya Alam Berkelanjutan Untuk Kehidupan
  • Pengertian Gelombang Longitudinal dan Contohnya dalam Kehidupan Sehari-Hari
KAMPUS 1
Jalan Kolam Nomor 1 Medan Estate / Jalan Gedung PBSI, Medan 20223
(061) 7360168, Call Canter : 0811-6013-888
[email protected]
KAMPUS 2
Jalan Sei Serayu Nomor 70 A / Jalan Setia Budi Nomor 79 B, Medan 20122
(061) 42402994, HP : 0811 607 259
[email protected]

STATISTIK

  • 1
  • 929
  • 760
  • 359,615
  • 255,676
© 2026 PDAI - Universitas Medan Area