Kamis, 08 Oktober 2026
01:54 WIB
TERKINI
Bandar Lampung Apresiasi Peran Vital Kader, Pemkot Bandar Lampung Beri Insentif Rp500 Ribu Lampung Barat Emosi Memuncak, Penagih Utang Tewas di Tangan Debitur di Lampung Barat Bandar Lampung Buruh Lampung Berunjuk Rasa, Pertanyakan Pengesahan Dini UU Perlindungan Ketenagakerjaan Cuaca Ratusan Titik Panas Terpantau di Lampung, Tulang Bawang dan Mesuji Teratas Nasional MK Soroti Syarat Pendidikan Gibran, KPU Didesak Diperiksa DPR dan DKPP Bandar Lampung Polisi Bandar Lampung Amankan Lima Remaja Bersenjata Tajam, Kedepankan Edukasi Bandar Lampung Misteri Antrean Panjang Solar di Lampung Meski Pasokan Berlimpah Bandar Lampung Arinal Djunaidi Jalani Sidang Pembuktian, Hakim Tetapkan Vonis 20 Januari 2027 Cuaca Lampung Timur Dominasi Sebaran 140 Titik Panas di Provinsi Lampung Ekonomi Dan Bisnis Harga Emas Antam 6 Oktober 2026 Terkoreksi, Cek Daftar Lengkapnya Bandar Lampung Apresiasi Peran Vital Kader, Pemkot Bandar Lampung Beri Insentif Rp500 Ribu Lampung Barat Emosi Memuncak, Penagih Utang Tewas di Tangan Debitur di Lampung Barat Bandar Lampung Buruh Lampung Berunjuk Rasa, Pertanyakan Pengesahan Dini UU Perlindungan Ketenagakerjaan Cuaca Ratusan Titik Panas Terpantau di Lampung, Tulang Bawang dan Mesuji Teratas Nasional MK Soroti Syarat Pendidikan Gibran, KPU Didesak Diperiksa DPR dan DKPP Bandar Lampung Polisi Bandar Lampung Amankan Lima Remaja Bersenjata Tajam, Kedepankan Edukasi Bandar Lampung Misteri Antrean Panjang Solar di Lampung Meski Pasokan Berlimpah Bandar Lampung Arinal Djunaidi Jalani Sidang Pembuktian, Hakim Tetapkan Vonis 20 Januari 2027 Cuaca Lampung Timur Dominasi Sebaran 140 Titik Panas di Provinsi Lampung Ekonomi Dan Bisnis Harga Emas Antam 6 Oktober 2026 Terkoreksi, Cek Daftar Lengkapnya

Algoritma Prim

Bagikan:

Algoritma Prim adalah sebuah algoritma dalam teori graf untuk mencari pohon rentang minimum untuk sebuah graf berbobot yang saling terhubung. Ini berarti bahwa sebuah himpunan bagian dari edge yang membentuk suatu pohon yang mengandung node, di mana bobot keseluruhan dari semua edge dalam pohon diminimalisasikan. Bila graf tersebut tidak terhubung, maka graf itu hanya memiliki satu pohon rentang minimum untuk satu dari komponen yang terhubung. Algoritma ini ditemukan pada 1930 oleh matematikawan Vojtěch Jarník dan kemudian secara terpisah oleh computer scientist Robert C. Prim pada 1957 dan ditemukan kembali oleh Dijkstra pada 1959. Karena itu algoritma ini sering dinamai algoritma DJP atau algoritma Jarnik.

Langkah-langkahnya adalah sebagai berikut:

  • buat sebuah pohon yang terdiri dari satu node, dipilih secara acak dari graf
  • buat sebuah himpunan yang berisi semua cabang di graf
  • loop sampai semua cabang di dalam himpunan menghubungkan dua node di pohon
    • hapus dari himpunan satu cabang dengan bobot terkecil yang menghubungkan satu node di pohon dengan satu node di luar pohon
    • hubungkan cabang tersebut ke pohon

Dengan struktur data binary heap sederhana, algoritma Prim dapat ditunjukkan berjalan dalam waktu O(Elog V), di mana E adalah jumlah cabang dan V adalah jumlah node. Dengan Fibonacci heap, hal ini dapat ditekan menjadi O(E + Vlog V), yang jauh lebih cepat bila grafnya cukup padat sehingga E adalah Ω {\displaystyle \Omega } {\displaystyle \Omega }(Vlog V).

Contoh

250px-Prim_Algorithm_0.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Ini adalah graf berbobot awal. Graf ini bukan pohon karena ada circuit. Nama yang lebih tepat untuk diagram ini adalah graf atau jaringan. Angka-angka dekat garis penghubung adalah bobotnya. Belum ada garis yang ditandai, dan node D dipilih secara sembarang sebagai titik awal.
250px-Prim_Algorithm_1.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Node kedua yang dipilih adalah yang terdekat ke D: A jauhnya 5, B 9, E 15, dan F 6. Dari keempatnya, 5 adalah yang terkecil, jadi kita tandai node A dan cabang DA.
250px-Prim_Algorithm_2.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Node berikutnya yang dipilih adalah yang terdekat dari D atau A. B jauhnya 9 dari D dan 7 dari A, E jauhnya 15, dan F 6. 6 adalah yang terkecil, jadi kita tandai node F dan cabang DF.
250px-Prim_Algorithm_3.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Algoritma ini berlanjut seperti di atas. Node B, yang jauhnya 7 dari A, ditandai. Di sini, cabang DB ditandai merah, karena baik node B dan node D telah ditandai hijau, sehingga DB tidak dapat digunakan.
250px-Prim_Algorithm_4.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Dalam hal ini, kita dapat memilih antara C, E, dan G. C jauhnya 8 dari B, E 7 dari B, dan G 11 dari F. E yang terdekat, jadi kita tandai node E dan cabang EB. Dua cabang lain ditandai merah, karena kedua node yang terhubung telah digunakan.
250px-Prim_Algorithm_5.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Di sini, node yang tersedia adalah C dan G. C jauhnya 5 dari E, dan G 9 dari E. C dipilih, jadi ditandai bersama dengan cabang EC. Cabang BC juga ditandai merah.
250px-Prim_Algorithm_6.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail Node G adalah satu-satunya yang tersisa. Jauhnya 11 dari F, dan 9 dari E. E lebih dekat, jadi kita tandai cabang EG. Sekarang semua node telah terhubung, dan pohon rentang minimum ditunjukkan dengan warna hijau, bobotnya 39.

Bukti

Misalkan P adalah sebuah graf terhubung berbobot. Pada setiap iterasi algoritma Prim, suatu cabang harus ditemukan yang menghubungkan sebuah node di graf bagian ke sebuah node di luar graf bagian. Karena P terhubung, maka selalu ada jalur ke setiap node. Keluaran Y dari algoritma Prim adalah sebuah pohon, karena semua cabang dan node yang ditambahkan pada Y terhubung. Misalkan Y1 adalah pohon rentang minimum dari P. Bila Y1=Y maka Y adalah pohon rentang minimum. Kalau tidak, misalkan e cabang pertama yang ditambahkan dalam konstruksi Y yang tidak berada di Y1, dan V himpunan semua node yang terhubung oleh cabang-cabang yang ditambahkan sebelum e. Maka salah satu ujung dari e ada di dalam V dan ujung yang lain tidak. Karena Y1 adalah pohon rentang dari P, ada jalur dalam Y1 yang menghubungkan kedua ujung itu. Bila jalur ini ditelusuri, kita akan menemukan sebuah cabang f yang menghubungkan sebuah node di V ke satu node yang tidak di V. Pada iterasi ketika e ditambahkan ke Y, f dapat juga ditambahkan dan akan ditambahkan alih-alih e bila bobotnya lebih kecil daripada e. Karena f tidak ditambahkan, maka kesimpulannya

w(f) ≥ w(e).

Misalkan Y2 adalah graf yang diperoleh dengan menghapus f dan menambahkan e dari Y1. Dapat ditunjukkan bahwa Y2 terhubung, memiliki jumlah cabang yang sama dengan Y1, dan bobotnya tidak lebih besar daripada Y1, karena itu ia adalah pohon rentang minimum dari P dan ia mengandung e dan semua cabang-cabang yang ditambahkan sebelumnya selama konstruksi V. Ulangi langkah-langkah di atas dan kita akan mendapatkan sebuah pohon rentang minimum dari P yang identis dengan Y. Hal ini menunjukkan bahwa Y adalah pohon rentang minimum.

Algoritma-algoritma lain untuk masalah ini adalah Algoritme Kruskal dan Algoritme Borůvka.

Rujukan

Pranala luar

Wikimedia Commons logo
Wikimedia Commons memiliki media mengenai Prim's Algorithm.
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan