Anda di halaman 1dari 18

LAPORAN PRAKTIKUM V

RANCANGAN ANALISA ALGORITMA


“Algoritma Prims,Algoritma Kruskal,Algoritma BFS(Bredth First Search)
Dan Algoritma DFS(Depth Fist Search)”

Oleh:

Nama :Nailus Sakdah

NIM :1657301089

Kelas : TI 3 A

No praktikum :05/RAA/2019

Dosen pembimbing : Muhammad Arhami S.SI.,M.KOM

KEMENTRIAN RISET,TEKNOLOGI DAN PENDIDIKAN TINGGI


POLITEKNIK NEGERI LHOKSEUMAWE

2019
LEMBARAN PENGESAHAN

Judul Pratikum :Algoritma Prims,Algoritma Kruskal,Algoritma BFS(Bredth


First Search) Dan Algoritma DFS(Depth Fist Search)”
Nomor Pratikum :05/RAA /2019

Nama : Nailus sakdah

NIM : 1657301089

Kelas/Prodi : TI 2.1 / Teknik Informatika

Tanggal Pratikum : 30 April 2019

Tanggal Penyerahan : 7 Mei 2019

Nilai :

Keterangan :

Dosen Pembimbing

Muhammad Arhami,S.SI.,M.KOM

i
DAFTAR ISI

LEMBARAN PENGESAHAN ......................................................................... i


DAFTAR ISI .................................................................................................... ii
BAB I ................................................................................................................ 1
1.1 Latar Belakang ......................................................................................... 1
1.2 Tujuan ...................................................................................................... 2
1.3 Dasar Teori .............................................................................................. 2
BAB II............................................................................................................... 8
PEMBAHASAN ............................................................................................... 8
2.1 Percobaan................................................................................................. 8
BAB III ........................................................................................................... 14
KESIMPULAN .............................................................................................. 14
DAFTAR PUSTAKA ..................................................................................... 15

ii
BAB I
PENDAHULUAN

1.1 Latar Belakang

Pencarian merupakan proses dasar dalam pengolahan data. Proses pencarian adalah
menemukan nilai (data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe
dasar atau bertipe bentukan). Sebagai contoh, untuk mengubah (update) data tertentu, langkah
pertama yang harus dilakukan adalah mencari keberadaan data tersebut di dalam
kumpulannya. Jika data yang dicari ditemukan, maka data tersebut dapat diubah
nilainya dengan data yang baru.Algoritma pencarian Depth First Search yang sebagai blind
search (pencarian buta) merupakan metode pencarian tanpaadanya informasi awal yang
digunakan dalam proses pencarian. Aktivitas awal yang sama juga dilakukan pada proses
penambahan (insert) data baru. Metode Depth First Search adalah Proses pencarian akan
dilaksanakan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel.
Pencarian dimulai dan node akar ke level yang lebih tinggi, proses ini diulangi terus hingga
ditemukannya solusi. Pencarian dilakukan pada suatu simpul dalam setiap level dari
yang paling kiri. Jika level yang paling dalam tidak ditemukan solusi,maka pencarian
dilanjutkan pada simpul sebelah kanan dan simpul yang kiri dapat dihapus dan memori.
Algoritma Kruskal untuk menemukan pohon rentang biaya minimum menggunakan
pendekatan serakah. Algoritma ini memperlakukan grafik sebagai hutan dan setiap simpul
yang dimilikinya sebagai pohon individual. Sebuah pohon terhubung ke yang lain hanya dan
hanya jika, ia memiliki biaya paling sedikit di antara semua opsi yang tersedia dan tidak
melanggar properti MST. Algoritma Prim untuk menemukan pohon rentang biaya minimum
(seperti algoritma Kruskal) menggunakan pendekatan serakah. Algoritma Prim memiliki
kesamaan dengan algoritma jalur terpendek pertama .
Algoritma Prim, berbeda dengan algoritma Kruskal, memperlakukan node sebagai pohon
tunggal dan terus menambahkan node baru ke spanning tree dari grafik yang diberikanPada
praktikum ini akan dilakukan implementasi dan penerapan program menggunakan Algoritma
Prims,Algoritma Kruskal,Algoritma BFS(Breadth First Search) Dan Algoritma DFS(Depth
Fist Search)

1
1.2 Tujuan
· Dapat memahami dan mengimplementasikan algoitma prims
· Dapat memahami dan mengimplementasikan algoitma kruskal
· Dapat memahami dan mengimplementasikan algoitma Breadth First seacrh
· Dapat memahami dan mengimplementasikan algoitma Depth First seacrh

1.3 Dasar Teori


Graf
Menurut Foulds (1994) graf 𝐺 adalah pasangan terurut (𝑉, 𝐸) dimana 𝑉 adalah
himpunan simpul yang berhingga dan tidak kosong. Dan E adalah himpunan sisi yang
merupakan pasangan yang tidak terurut dari simpul (𝑖,𝑗) dimana (𝑖,𝑗) ∈ 𝑉. Elemen 𝑉
dinamakan simpul (node) dan elemen

Graf siklus
Graf berbobot
Graf berbobot adalah graf yang setiap sisinya diberi sebuah harga atau bobot. Bobot pada
setiap sisi dapat berbeda-beda bergantung pada masalah yang dimodelkan dengan graf. Bobot
dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua buah kota, waktu
tempuh pesan (message) dari sebuah simpul komunikasi ke simpul komunikasi lain (dalam
jaringan komputer), ongkos produksi, dan sebagainya(sumber :Latifah,2014)

Graf berbobot

2
Ponon (tree)
Pohon dalam teori graf adalah sebuah graf yang mempunyai 𝑛 buah titik, 𝑛 − 1 sisi dan tidak
mempunyai lintasan (path) serta merupakan graf terhubung. Suatu pohon titik yang berderajat
1 dinamakan daun (leaf) atau titik terminal (terminal vertex), sedangkan titik yang berderajat
lebih dari 1disebut titik cabang (branch vertex) atau titik internal (internal vertex)(sumber :
(Wibisono, 2008: 159).
1.3.1 Spanning tree
Pohon spanning adalah subset dari Grafik G, yang memiliki semua simpul tertutup dengan
jumlah tepi minimum yang mungkin. Karenanya, spanning tree tidak memiliki siklus dan
tidak dapat diputuskan .
Dengan definisi ini, kita dapat menarik kesimpulan bahwa setiap Grafik G yang terhubung
dan tidak terarah memiliki setidaknya satu spanning tree. Grafik terputus tidak memiliki
spanning tree, karena tidak dapat direntangkan ke semua simpulnya.

Kami menemukan tiga pohon yang merentang dari satu grafik lengkap. Grafik lengkap yang
tidak diarahkan dapat memiliki jumlah pohon spanning n n-2maksimum , di mana n adalah
jumlah node. Dalam contoh yang dibahas di atas, n adalah 3, maka 3 3−2 = 3 spanning tree
dimungkinkan.
Kita akan belajar tentang dua algoritma spanning tree yang paling penting di sini -

 Algoritma Kruskal

 Algoritma Prim

Keduanya adalah algoritma greedy

3
 Algoritma Kruskal
→ Algoritma Kruskal merupakan salah satu algoritma dalam teori graf untuk
menyelesaikan persoalan pohon merentang minimum. Algoritma Kruskal ditemukan
pada tahun 1956 oleh seorang ilmuwan matematika, statistika, komputer dan
pisikometrika Joseph yaitu Bernard Kruskal,Jr yang berasal dari Amerika.
Dasar pembentukan Algoritma Kruskal berasar dari analogi growing forest. Growing
forest maksudnya adalah untuk membentuk pohon merentang minimum 𝑇 dari graf
𝐺 adalah dengan cara mengambil satu-persatu sisi dari graf 𝐺 dan memasukannya
dalam pohon yang telah terbentuk sebelumnya. Seiring dengan berjalannya iterasi
pada setiap sisi maka forest akan memiliki pohon yang semakin sedikit. Oleh sebab
itu analogi ini disebut growing forest. Algoritma Kruskal akan terus menambahkan
sisi-sisi ke dalam hutan yang sesuai hingga akhirnya tidak akan ada lagi forest,
melainkan hanyalah sebuah pohon merentang minimum. Adapun langkah kerja
Algoritma Kruskal sebagai berikut :
→ Lakukan pengurutan terhadap setiap sisi di graf Gmulai dari sisi dengan bobot
terkecil.
→ Pilih sisi(u,v) yang mempunya bobot minimum yang tidak membentuk sirkuit di T.
Tambahkan (u,v) kedalam T.
→ Ulangi langkah 2 sampai pohon merentang minimum terbentuk, yaitu ketika sisi di
dalam pohon merentang T berjumlah 𝑛 − 1 (𝑛 adalah jumlah simpul pada graf)
(sumber : Abraham ZW,DKK:2013)

 Algoritma Prim
Algoritma Prim adalah algoritma serakah itu digunakan untuk menemukan pohon
rentang minimum (MST) dari a diberikan grafik tertimbang terhubung. Algoritma ini
lebih disukai ketika grafik padat. Grafik padat adalah grafik di mana ada sejumlah besar
tepi di grafik. Algoritma ini hanya dapat diterapkan untuk grafik terhubung tidak
diarahkan dan seharusnya tidak ada setiap tepi berbobot negatif. Dalam hal
ini, Algoritma ini cukup efisien. Karena tidak ada siklus bobot non-negatif, akan ada
jalur terpendek setiap kali ada jalan.

4
Langkah-langkah untuk menemukan spanning tree minimum menggunakanAlgoritma
Prim adalah sebagai berikut:

1. Jika grafik memiliki loop dan tepi paralel dari hapus loop dan tepi paralel grafik itu.

2. Pilih sembarang simpul secara acak, beri label dengan jarak 0 dan semua node lainnya
sebagai ∞. Itu simpul yang dipilih diperlakukan sebagai simpul saat ini dan
dipertimbangkan seperti yang dikunjungi. Semua node lainnya dianggap belum
dikunjungi.

3. Identifikasi semua node yang belum dikunjungi saat ini terhubung ke node saat ini.
Hitung jarak dari node yang belum dikunjungi ke node saat ini.

4. Beri label pada masing-masing simpul dengan bobot yang sesuai dengan node saat ini,
tetapi relabel dari sebuah node, jika kurang dari nilai sebelumnya dari label. Setiap kali,
node diberi label dengan nya bobot; melacak jalan dengan yang terkecil berat.

5. Tandai node saat ini sebagai yang telah dikunjungi mewarnai atasnya. Setelah titik
dikunjungi, kita tidak perlu untuk melihatnya lagi.

6. Dari semua node yang belum dikunjungi, cari tahu simpul yang memiliki bobot
minimum ke simpul saat ini,anggap simpul ini dikunjungi dan perlakukan sebagai
arus simpul kerja.

7. Ulangi langkah 3, 4 dan 5 hingga semua node dikunjungi


8. Setelah selesai semua langkah mendapatkan MST yang diinginkan.
(sumber : Jogamohan Medak:2018)

1.3.2 Algoritma BFS (Breadth First search)


Breadth First Search adalah algoritma yang melakukan pencarian secara melebar yang
mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian mengunjungi
semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu. Selanjutnya, simpul
yang belum dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi ,
demikianseterusnya.

5
Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang telah dikunjungi.
Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi simpul-simpul yang
bertetanggaan dengannya. Tiap simpul yang telah dikunjungi masuk ke dalam antrian hanya
satu kali. Algoritma ini juga membutuhkan tableboolean untuk menyimpan simpul yang telah
dikunjungi sehingga tidak ada simpul yang dikunjungi lebih dari satu kali.

1.3.3 Cara Kerja Algoritma BFS (Breadth First search)


Dalam algoritma BFS, simpul anak yang telah dikunjung disimpan dalam antrian.Antrian
ini digunakan untuk mengacu simpul simpul yang bertetangga dengan yan akan dikunjug
kemudian sesuai urutan pengantrian untuk memperjelas cara kerja algoritma BFS beserta
antrian yang digunakannya.
Berikut langkah-langkah BFS
1. Masukkan simpul ujung (akar) ke dalam antrian.
2. Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
3. Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
4. Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan simpul
tersebut (simpul anak) ke dalam antrian.
(sumber : Delima Zai,DKK:2016)

1.3.3 Algoritma DFS (Depth First search)


Suatu persoalan dapat memiliki lebih dari satu kemungkinan solusi. Sebagian
persoalan direpresentasikan dengan mengorganisasikan semua kemungkinan solusi dari
persoalan tersebut ke dalam struktur pohon berakar untuk memudahkan pencarian solusinya.
Pencarian solusi persoalan dilakukan dengan cara mengunjungi atau menelusuri simpul-
simpul dalam pohon solusi. Setiap simpul diperiksa untuk memastikan apakah solusi sudah
berhasil ditemukan. Jika sudah ditemukan, maka pencarian solusi dihentikan, tetapi
jika belum ditemukan, pencarian dilanjutkan ke simpul berikutnya. Pohon solusi ini
dibangkitkan secara dinamis selama pencarian solusi berlangsung. Bila sebuah simpul yang
dibentuk tidak mengarah ke solusi, maka pencarian solusi dilanjutkan dengan
membentuk simpul berikutnya. Begitu seterusnya sampai solusi ditemukan. Simpul-simpul di
dalam pohon dinamis yang memenuhi kendala (constraints) menyatakan status persoalan
(problem state). Suatu operator mentrasformasikan persoalan dari sebuah status ke status
yang lain. Solusi perosalan dinyatakan dengan satu atau lebih status yang disebut status solusi
(solution state). Status solusi yang merupakan simpul daun disebut status tujuan (goal state).
6
Himpunan semua status solusi disebut ruang solusi (solution space). Seluruh simpul di dalam
pohon dinamis disebut ruang status (state space) dan pohonnya dinamakan juga pohon ruang
status. Akar pada pohon ruang status menyatakan status awal, sedangkan daun menyatakan
status solusi. Pencarian solusi secara DFS dilakukan dengan ekspansi simpul-simpul terdalam
lebih dulu. Pencarian solusi dengan metode DFS pada pohon ruang status digambarkan
dengan algoritma berikut ini.
1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul tujuan,
maka solusi telah ditemukan. Pencarian dihentikan.
2. Jika antrian kosong, maka tidak ada solusi. Pencarian dihentikan.
3. Ambil simpul v dari kepala (head) antrian. Jika kedalaman simpul sama dengan
kedalaman maksimum, kembali ke langkah 2.
4. Bangkitkan semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke
langkah 2. Tempatkan semua anak dari v di awal antrian Q (addFirst).
5. Jika anak dari simpul v adalah simpul tujuan, berarti solusi telah ditemukan, kalau tidak
kembali lagi ke langkah 2.
(sumber : Lovinta :2007)

7
BAB II
PEMBAHASAN
2.1 Percobaan
2.1.1 Implementasi algoritma Prims
Source :

8
Output :

Analisa :
program ini merupakan program untuk mencari pohon merentang minimum secara
langsung didasarkan pada algoritma MST (Minimum Spanning Tree) umum dengan
menggunakan algoritma Prim’s pada percobaan ini diinputkan nilai vertex ,nilai vertex
yang diinputkan pada program ini adalah sebanyak 4.kemudian diinputkan matrik
sebesarb 4x4 kemudian diinputkan isi dari matrik tersebut,kemudian diambil sisi graph
yang memiliki bobot minimum sehingga mendapatkan hasil matrik 131,041 dan 283
dengan hasil minimum cost spanning tree=8

9
2.1.2 algoritma kruskal
Source :

10
Output :

analisa:
program diatas merupakan program untuk mencari pohon merentang minimum secara
langsung didasarkan pada algoritma MST (Minimum Spanning Tree) umum dengan
menggunakan algoritma kruskal.pada percobaan ini diinputkan nilai vertex yaitu 3 yang
merupakan matrik 3x3 setelah itu dimasukkan isi dari matriks,setelah diinputkan isi
dari matrik maka dicari sisi yang memiliki nilai minimum spanning tree dari terkecil ke
terbesar Dan kemudian akan ditampilkan hasil minimum costnya yaitu =6

2.1.3 Algoritma BFS (Breadth First search)


Source :

11
Output :

Analisa :
Program diatas merupakan program yang menggunakan algoritma BFS yang berfungsi
untuk pencarian jalur..pada percobaan ini diinputkan nilai vertex yaitu 4 yang
merupakan matrik 4x4 setelah itu dimasukkan isi dari matriks,setelah diinputkan isi
dari matrik maka inputkan nilai awal dari vertex, kemudian program menelusuri setiap
vertek dengan menggunkan metode BFS sehingga menemukan jalur vertek yang saling
terhubung ke semua titik secara berurut adalah dari vertek 1,2,3 kemudian ke vertek 4.

2.1.4 Algoritma DFS (Depth First search)


Source :

12
Output :

Analisa :
Program diatas merupakan program yang menggunakan algoritma BFS yang berfungsi
untuk pencarian jalur.pencarian dimulai dari node –node akar kemudian dilajutkan ke
level selanjutnya yang lebih tinggi hingga menumukan solusi.pada percobaan ini
diinputkan nilai vertex yaitu 4 yang merupakan matrik 4x4 setelah itu dimasukkan isi
dari matriks,setelah diinputkan isi dari matrik maka inputkan nilai awal dari vertex,
kemudian program menelusuri setiap vertek dengan menggunkan metode BFS sehingga
menemukan jalur vertek yang saling terhubung ke semua titik secara berurut adalah
dari vertek 1,2,3 kemudian ke vertek .sehingga semua Graph terhubung,

13
BAB III
PENUTUP

KESIMPULAN
Pada praktiku ini dapat disimpulkan bahwa :
Prim adalah algoritma serakah yang memecahkan masalah MST untuk terhubung dan
tertimbang tidak diarahkan grafik. Pohon rentang minimum adalah seperangkat tepi yang
menghubungkan setiap titik yang terkandung dalam dokumen asli grafik, sehingga berat total
tepi di pohon diminimalkan. Algoritma dimulai pada a simpul acak dari grafik dan, dalam
setiap iterasi, memeriksa semua sisi yang tersedia dari yang dikunjungi ke non- mengunjungi
simpul untuk memilih satu dengan biaya terendah.
Kelebihan algoritma Kruskal dibanding algoritma lain seperti algoritma Prim
adalah algoritma Kruskal sangat cocok diterapkan saat graf memiliki sisi berjumlah sedikit
namun memiliki banyak simpul, karena orientasi kerja algoritma ini adalah berdasarkan pada
urutan bobot sisi, tidak berdasarkan simpul. Sedangkan kekurangan pada algoritma Kruskal
adalah dibanding algoritma lain yaitu Prim adalah algoritma Kruskal kurang cocok digunakan
saat graf lengkap atau yang mendekati lengkap, dimana setiap simpul terhubungkan dengan
semua simpul yang lain. Karena algoritma Kruskal menitik beratkan pada pencarian
sisi, dimana sisi-sisi tersebut harus diurutkan dan ini memakan waktu yang tidak sedikit

14
DAFTAR PUSTAKA

 Delima Zai,DKK.(2016).Simulasi Rute Terpendek Lokasi Pariwisata Di Nias Dengan


Metode Breadth First Search.Jurnal Infact.Volume 1. http://www.e jurnal.ukrimuniver
sity.ac.id/file/5Jurnal-DINO-InFact-V1N2NOV2016.pdf.diakses pada 05 mei 2019

 Abraham ZW,DKK(2013) Kruskal Algorithm Application on Optimlaizing Pipes


Network.Jurnal Barekeng,7(2),13-18

 Latifah, U. 2014. Penerapan Algoritma Prim dan Kruskal pada Jaringan Distribusi
Air PDAM Tirta Moedal Cabang Semarang Utara.Universitas Negeri Semarang.
Indonesia. http://journal.unnes.ac.id/sju/index.php /ujm.diakses pada 05 mei 2019

 Wibisono, S. 2008. Matematika Diskrit. Graha Ilmu. Yogyakarta.

 Foulds, L. R. 1992. Graph Theory Aplications. Springer-Verlag. New York.

 Rinaldi,M.(2007).Penerapan Algoritma Depth-First Search (Dfs) Pada Pencarian


Solusi Permainan “Pairs”.Institut Teknologi Bandung. http://informatika.stei.itb.ac.id.
diakses pada 05 mei 2019

 Jogamohan Medak.(2018).Review and Analysis of Minimum Spanning Tree Using


Prim's Algorithm.International Journal of Computer Science Trends and Technology
(IJCST) ,6(2). http://www.ijcstjournal.org/ .diakses pada 05 mei 2019

 umi Latifah,endang sugiharti.(2015).Penerapan Algoritma Prim Dan Kruskal Pada


Jaringan Distribusi Air Pdam Tirta Moedal Cabang Semarang Utara.UNNES Journal
of Mathematics,4(1). http://journal.unnes.ac.id/sju/index.php/ujm.diakses pada 05 mei
2019

15

Anda mungkin juga menyukai