Anda di halaman 1dari 11

PROJEK

“TEORI GRAF”

DOSEN PENGAMPU :
Dinda Kartika, S.Pd., M.Si.

DISUSUN OLEH :
KELOMPOK I

Agun Muliyadi Aritonang 4183230012


Amar Sinaga 4183230021
Angie Maretha R 4183530005
Aurelia Anandara 4183530010

KELAS : PROGRAM STUDI MATEMATIKA B 2018

JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS NEGERI MEDAN
MEDAN
2020
KATA PENGANTAR

Puji syukur Kepada Tuhan yang maha Esa yang telah memberikan segala nikmat dan
karunia-Nya kepada kita, sehingga disini kami dapat menyelesaikan salah satu tugas KKNI
yaitu project pada mata kuliah Teori Graf.
Dan penulis bersyukur kepada Tuhan yang Maha Esa, sebagaimana penulis didalam
melaksanakan tugas kelompok ini diberi kemampuan untuk menyelesaikan tugas ini. Penulis
menyadari bahwa tugas ini masih jauh dari kesempurnaan. Oleh karena itu, penulis juga
sangat mengharapkan kepada para pembaca agar memberikan saran atau kritik yang
konstruktif kepada penulis makalah ini, demi kesempurnaan tugas-tugas yang diberikan oleh
dosen untuk masa yang akan datang.
Akhir kata, penulis hanya mampu untuk mengucapkan banyak terima kasih kepada
semua pihak yang telah membantu dalam penulisan masalah ini. Semoga makalah ini dapat
bermanfaat bagi para pembaca.

Medan, Mei 2020

Kelompok 1

i
DAFTAR ISI

KATA PENGANTAR..................................................................................................................i

DAFTAR ISI...............................................................................................................................ii

BAB I PENDAHULUAN...........................................................................................................1

1.1 Latar Belakang..................................................................................................................1

1.2 Rumusan Masalah.............................................................................................................1

1.3 Tujuan...............................................................................................................................1

BAB II PEMBAHASAN............................................................................................................2

2.1 Pendefinisian Graf............................................................................................................2

2.2 Pengaplikasian Algoritma Prim di Python........................................................................3

BAB III PENUTUP....................................................................................................................6

3.1 Kesimpulan.......................................................................................................................6

3.2 Saran.................................................................................................................................6

DAFTAR PUSTAKA..................................................................................................................7

LAMPIRAN................................................................................................................................8

ii
BAB I
PENDAHULUAN

1.1 Latar Belakang


Teori graf merupakan salah satu cabang ilmu matematika yang bermanfaat dengan
teori-teorinya dapat diterapkan untuk memecahkan masalah dalam kehidupan sehari-hari.
Dengan mengkaji dan menganalisis model atau rumusan teori graf, dapat diperlihatkan
peranan dan kegunaannya dalam memecahkan permasalahan. Permasalahan yang dirumuskan
dengan teori graf dibuat sederhana, yaitu diambil aspek-aspek yang diperlukan dan dibuang
aspek-aspek lainnya (Purwanto, 1998). Dalam kehidupan sehari-hari terdapat permasalahan
mengenai optimasi yang dapat diselesaikan menggunakan pohon merentang minimum, atau
dikenal dengan istilah Minimum Spanning Tree (MST). Algoritma Prim dapat digunakan
untuk menentukan pohon merentang minimum suatu graf berbobot dan mengetahui unjuk
kerja aplikasi algoritma Prim berupa waktu komputasi dalam menentukan pohon merentang
minimum suatu graf berbobot. Penelitian ini diharapkan juga dapat memberikan masukan
kepada praktisi dalam melakukan perancangan suatu model graf berbobot, sehingga dapat
memudahkan melakukan perhitungan dan monitoring terhadap suatu sistem yang dapat
membantu memecahkan permasalahan yang ada hubungannya dengan penentuan rute atau
jalur dengan menggunakan pohon merentang minimum.
Dalam rangkaian proses coding ini menggunakan bahasa pemrograman python bukan
hanya terkait penulisan script program, namun juga proses menganalisa masalah untuk
menemukan model algoritma yang dibutuhkan untuk menyelesaikan permasalahan, dan
mengimplementasikan model algoritma tersebut dalam barisan script-script program.

1.2 Rumusan Masalah


 Bagaimana pengimplemetasian Algoritma Prim untuk mencari pohon perentang
minimum dengan menggunakan bahasa pemograman python?

1.3 Tujuan
 Untuk mengetahui pengimplemetasian Algoritma Prim untuk mencari pohon
perentang minimum dengan menggunakan bahasa pemograman python

1
BAB II
PEMBAHASAN

2.1 Pendefinisian Graf


Pada laporan mini riset dijelaskan mendapatkan minimum spanning tree dari jaringan
listrik dengan menggunakan algoritma prim. Kumpulan titik disimbolkan dengan huruf :
A(1) , B(1) , …, F(1), G(2) , H(2), …, K(2). Titik A(1), B(1), ...(1) untuk setiap terminal yang
berada dilantai 1, dan titik G(2), H(2), ...(2) untuk setiap terminal yang berada di lantai 2.
Setiap sisi memiliki bobot masing-masing dari hasil penaksiran panjang kabel yang dgunakan
sesuai dengan jarak antara terminal dengan terminali lainnya. Bobot sebagai panjang kabel
yang menghubungkan antara terminal ke terminal lainya atau jarak titik yang satu dengan titik
yang lainnya dengan satuan M (meter) sebagaimana yang terlihat pada graf berikut :

A(1)

7
6
4,5 D(1)
B(1) C(1) 4
4

7 6
3 3 8,5 3

G(2) H(2) I(2)


4 4
4
8

E(1) 4 F(1)
8

3
3

4
K(2)
J(2)

2
Graf tersebut bisa diubah ke dalam bentuk list yang berisi format dictionary ke dalam
kode. Format tersebut mewakilkan setiap pasangan titik yang mempunyai bobot sisi,maka
graf di atas bisa dituliskan seperti berikut ini.

Pada kode di atas, kita menggunakan list untuk membuat graf dan


menggunakan dictionary untuk menyimpan titik yang menjadi tetangga sebuah titik. Misalkan
titik A(1), terbuhung dengan titik B(1), C(1), D(1), G(2), H(2), I(2). Begitu juga dengan titik
yang lainnya pada graf.

2.2 Pengaplikasian Algoritma Prim di Python


Algoritma Prim adalah algoritma greedy yang menemukan pohon rentang minimum
sebuah graf terhubung. Algoritma tersebut menemukan subset dari sisi yang membentuk
pohon yang mencakup setiap simpul, di mana total berat semua sisi di pohon
diminimalkan. Algoritma beroperasi dengan membangun pohon ini satu titik pada satu waktu,
dari titik awal yang berubah-ubah, pada setiap langkah menambahkan berat terendah yang
mungkin dari pohon ke titik lain.

Berikut pengaplikasian hasil mini riset mencari pohon perentang minimum di Python :

Modul yang digunakan dalam program ini adalah defauldict dan heap. Modul
defaultdict digunakan untuk menghasilkan proses dalam format dictionary. Modul heap dalam
Python digunakan untuk mewakili antrian prioritas dalam struktud data heap. Properti dari
struktur data ini dalam python adalah bahwa elemen heap terkecil selalu muncul (min heap).
Setiap kali elemen didorong atau muncul, susunan struktur dalam kondisi dipertahankan.

3
Selanjtnya mendefinisikan fungsi ‘min_spanning_tree’ dengan objeknya yaitu ‘graf’
dan ‘titik awal’. Fungsi tersebut untuk mencari pohon perentang minimum sebuah graf
terhubung. Variabel ‘sisi’ didefinisikan sebagai sisi yang akan dilewati dengan memberi
variable ‘cost’ sebagai bobot sisi dan ‘to’ sebagai tujuan dari modul heap. Untuk loop
memeriksa semua titik yang berdekatan dengan titik awal dan terlebih dahulu memeriksa
apakah titik dalam antrian atau tidak dengan menggunakan fungsi heapq yang ada pada modul
heap. Jika tidak, maka titik yang sudah diambil dan mengambilnya lagi akan membuat
lingkaran. Didalam perulangan juga mempertimbangkan bobot setiap sisi yang akan dilewati
sesuai antrian sampai mendapatkan semua titik pada graf. Kemudian mengembalikan nilai
variable ‘mst’ yang sebelumnya didefinisikan diawal.

4
Selanjutnya langkah pembuatan graf dengan menggunakan list untuk membuat
kumpulan titik pada graf dan menggunakan dictionary untuk menyimpan titik yang menjadi
tetangga. Format dictionary dalam pengkodingan diatas menyimpan bobot setiap titik yang
saling bertetangga. Graf hasil mini riset didefinisikan sebagai variable ‘graf_miniriset’.

Langkah terakhir memasukkan perintah print untuk menampilkan hasil dari fungsi
‘min_spanning_tree’ yang telah diproses menggunakan ‘graf_miniriset’ sebagai objek variable
graf dan titik A(1) sebagai objek titik awal dengan format yang dihasilkan berbentuk
dictionary. Dan akan mengasilkan output sebagai berikut :

Output : Titik A(1) sebagai titik awal akan terhubung dengan titik C(1). Titik C(1) terhubung
dengan 4 titik yaitu D(1), H(2), B(1), F(1). Kemudian titik B(1) terhubung dengan titik G(2)
dan titik E(1). Titik E(1) terhubung dengan titik J(2). Titik D(1) terhubung dengan titik I(2).
Titik terakhir yaitu F(1) terhubung dengan K(2).
Berdasarkan output diatas bahwa pohon perentang minimum yang didapat dari
pemograman di Python sesuai dengan hasil yang dicari secara manual dengan menggunakan
algoritma Prim.

5
BAB III
PENUTUP

3.1 Kesimpulan
Algoritma Prim adalah algoritma greedy yang menemukan pohon rentang minimum
sebuah graf terhubung. Algoritma tersebut menemukan subset dari sisi yang membentuk
pohon yang mencakup setiap simpul, di mana total berat semua sisi di pohon diminimalkan. 
Pohon perentang minimum yang didapat dari pemograman di Python sesuai dengan
hasil yang dicari secara manual dengan menggunakan algoritma Prim. Maka dati itu dapat
disimpulkan bahwa pencarian pohon perentang minimum dengan menggunakan algoritma
Prim dapat diimplementasikan dengan bahasa pemograman Python.

3.2 Saran
Selesai sudah penulisan tugas ini dengan hasil diskusi kelompok kami,melalui proses
yang cukup banyak memakan waktu,kami sadar bahwasannya didalam mini riset ini banyak
kekeliruan,baik secara tulisan ataupun pembahasan,maka dari itu kami mengharap pada
semua pembaca untuk mengoreksinya demi memperbaiki makalah selanjutnya.

6
DAFTAR PUSTAKA

Budayasa, I.K. 2007. Teori Graf dan Aplikasinya. Surabaya: Unesa University Press.
Nugraha, Deny Wiria. 2011. APLIKASI ALGORITMA PRIM UNTUK MENENTUKAN
MINIMUM SPANNING TREE SUATU GRAF BERBOBOT DENGAN
MENGGUNAKAN PEMROGRAMAN BERORIENTASI OBJEK. Jurnal Ilmiah
Foristek vol 1(2): 71-79.
Nurhayati.2015. Aplikasi Minimum Spanning Tree Pada Jaringan Listrik Di Perumahan
Mutiara Indah Village. Makasar : UIN Alaudin Makasar.
Purwanto. 2008. Perancangan Dan Analisis Algoritma Edisi 1. Yogyakarta : Graha Ilmu.
https://johns1987.wordpress.com/2011/12/04/implementasi-teori-graf-dalam-sistem
informasi/
https://medium.com/mtiakakom/belajar-implementasi-algoritma-pemrograman-pada-python-
b5235b2388be

7
LAMPIRAN