Laporan Praktikum Vi
Laporan Praktikum Vi
Oleh:
NIM :1657301089
Kelas : TI 3 A
No praktikum :05/RAA/2019
2019
LEMBARAN PENGESAHAN
NIM : 1657301089
Nilai :
Keterangan :
Dosen Pembimbing
Muhammad Arhami,S.SI.,M.KOM
i
DAFTAR ISI
ii
BAB I
PENDAHULUAN
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
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
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.
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.
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
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.
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
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
15