• Tidak ada hasil yang ditemukan

ANALISIS PERBANDINGAN ALGORITMA KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE DI UNIVERSITAS SUMATERA UTARA SKRIPSI

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS PERBANDINGAN ALGORITMA KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE DI UNIVERSITAS SUMATERA UTARA SKRIPSI"

Copied!
72
0
0

Teks penuh

(1)

ANALISIS PERBANDINGAN ALGORITMA KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE DI UNIVERSITAS SUMATERA UTARA

SKRIPSI

MULIARA REZKY 141421102

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

2017

(2)

ANALISIS PERBANDINGAN ALGORITMA KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE

DI UNIVERSITAS SUMATERA UTARA SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana Ilmu Komputer

MULIARA REZKY 141421102

PROGRAM STUDI EKSTENSI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI

UNIVERSITAS SUMATERA UTARA MEDAN

2017

(3)

PERSETUJUAN

Judul : ANALISIS PERBANDINGAN ALGORITMA

KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE DI SUMATERA UTARA

Kategori : SKRIPSI

Nama : MULIARA REZKY

Nomor Induk Mahasiswa : 141421102

Program Studi : EKSTENSI S1 ILMU KOMPUTER

Departemen : ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA Komisi Pembimbing :

Pembimbing 2 Pembimbing 1

Sajadin Sembiring, S.Si, M.Comp. Sc Dian Rachmawati, S.Si, M.Kom

NIP. NIP. 198307232009122004

Diketahui/Disetujui oleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. Poltak Sihombing, M.Kom NIP. 19620317 199103 1 001

(4)

ii

PERNYATAAN

ANALISIS PERBANDINGAN ALGORITMA KRUSKAL DAN ALGORITMA PRIM DALAM MENENTUKAN MINIMUM SPANNING TREE

DI UNIVERSITAS SUMATERA UTARA

SKRIPSI

Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing - masing telah disebutkan sumbernya.

Medan, Januari 2017

Muliara Rezky NIM. 141421102

(5)

PENGHARGAAN

Alhamdulillah segala puji dan syukur atas nikmat kepada Allah Yang Maha Esa sehingga penulis dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

Pada kesempatan ini penulis mengucapkan terima kasih kepada pihak yang telah banyak membimbing, mengarahkan, membantu, dan memberikan dukungan semangat dan kasih sayang dalam menyelesaikan skripsi ini. Penulis mengucapkan terima kasih kepada :

1. Bapak Prof. DR. Runtung Sitepu, SH, MHum selaku Rektor Universitas Sumatera Utara.

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

3. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

4. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi S1 Ilmu Komputer Universitas Sumatera Utara.

5. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing I yang telah memberikan arahan, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.

6. Bapak Sajadin Sembiring, S.Si, M.Comp. Sc selaku Dosen Pembimbing II yang telah memberikan arahan, waktu, tenaga, pikiran, kritik dan saran serta motivasi kepada penulis dalam pengerjaan skripsi ini.

7. Ibu Amelia, S.T, M.T selaku Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan laporan skripsi serta mendukung penuh dalam penyusunan skiripsi

8. Ibu Sri Melvani Hardi, S.Kom, M.Kom selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

9. Semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

10. Teristimewa kepada kedua orang tua saya M.Yakub, S.Pd, M.Si dan Roslina Sitorus, S.Pd yang senantiasa memberikan doa, dukungan moril dan materil, motivasi, semangat dan kasih sayang yang tiada henti kepada penulis sehingga penulis dapat menyelesaikan skripsi ini.

11. Teman-teman mahasiswa Ekstensi S1 Ilmu Komputer stambuk 2014, yang telah memberikan dukungan dan kerja sama yang baik kepada penulis pada masa perkuliahan hingga penyelesaian skripsi ini.

(6)

iv

12. Sahabat seperjuangan saya, Zulfikar Ali Ginting, M.Dzakky Arrauf, Andhika Stefanus dan teman hidup saya Vina Luwih Aningsih S.farm yang telah memberikan semangat untuk cepat tamat dan menjadi teman diskusi dalam penyelesaian skripsi ini.

13. Dan semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini.

Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.

Medan, Januari 2017 Penulis.

Muliara Rezky

(7)

ABSTRAK

Minimum spanning tree adalah masalah bagaimana melakukan optimisasi dari satu tujuan ke tujuan lainnya dengan cara menghubungkan semua tujuan dengan tidak membentuk sirkuit pada rute perjalanan dengan jarak dan biaya yang minimum.

Penelitian ini bertujuan untuk mengetahui algoritma yang lebih baik di antar algoritma Kruskal dengan algoritma Prim untuk proses minimum spanning tree. Sistem yang dirancang mampu mengakomodir verteks secara dinamis sehingga dapat diimplementasikan untuk masalah-masalah yang berhubungan dengan minimum spanning tree di Universitas Sumatera Utara. Kedua algoritma tersebut memiliki kompleksitas algoritma yang sama yaitu T(n) = (n2), sehingga waktu rata-rata yang dibutuhkan kedua algoritma dalam melakukan proses minimum spanning tree tidak jauh berbeda yaitu algoritma Kruskal 0,31 detik dan algoritma Prim 0,34 detik.

Kata Kunci : Minimum Spanning Tree, Algoritma Kruskal, Algoritma Prim, Optimisasi.

(8)

vi

Comparative Analysis of Kruskal Algorithm and Prim Algorithm to Determine Minimum Spanning Tree on Fiber Optic Cable Installation At the

University of North Sumatera

ABSTRACT

Minimum spanning tree is the question how do the optimization of one traveling to other purposes throungh connecting all purpose with do not form circuits on route of travel to the distance and cost minimum. Research aims to understand the algorithms that better among algorithm kruskal with algorithm prim to the process of minimum spanning tree. System designed capable of accommodate vertex dinamically, so that it can be implemented to problems that deals with minimmum spanning tree at University of North Sumatera. The two algorithms have the complexity the algorithms same that is T (n) = θ (n2), so that the average time it takes in the two algorithms perform the process of minimum spanning tree does not differ significantly namely algorithms Kruskal 0.31 seconds and algorithm Prim 0.34 seconds.

Keywords: Minimum Spanning Tree, Kruskal Algorithm and Prim Algorithm, Optimization

(9)

DAFTAR ISI

Halaman

Persetujuan i

Pernyataaan ii

Penghargaan iii

Abstrak v

Abstract vi

Daftar Isi vii

Daftar Tabel ix

Daftar Gambar x

BAB 1 PENDAHULUAN 1

1.1. Latar Belakang 1

1.2. Rumusan Masalah 2

1.3. Batasan Masalah 2

1.4. Tujuan Penelitian 3

1.5. Manfaat Penelitian 3

1.6. Metodologi Penelitian 3

1.7. Sistematika Penulisan 4

BAB 2 LANDASAN TEORI 5

2.1. Teori Graf 5

2.1.1. Jenis-jenis graf 7

2.2. Minimum Spanning Tree 10

2.2.1. Pohon (tree) 10

2.2.2. Minimum spanning tree 11

2.3. Algoritma 12

2.3.1. Ciri algoritma 13

2.3.2. Algoritma Kruskal 13

2.3.3. Algoritma Prim 14

2.3.4. Kompleksitas algoritma 15

BAB 3 ANALISIS DAN PERANCANGAN SISTEM 17

3.1. Analisis Sistem 17

3.1.1. Analisis masalah 17

3.1.2. Analisis kebutuhan 18

3.1.3. Kebutuhan fungsional 19

3.1.4. Kebutuhan non-fungsional 19

3.2. Pemodelan sistem 20

3.2.1. Diagram Ishikawa 20

3.2.2. Use case diagram 21

3.2.3. Activity diagram 25

(10)

viii

3.2.4. Sequence diagram 26

3.2.5. Flowchart 26

3.3. Perancangan Antarmuka Sistem 30

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM 33

4.1. Implementasi Sistem 33

4.1.1. Form utama 33

4.1.2. Form data 34

4.1.3. Tab file 35

4.1.4. Tab ubah 35

4.1.5. Tab MST 36

4.2. Pengujian Sistem 37

4.2.1. Pengujian algoritma Kruskal 37

4.2.2. Pengujian algoritma Prim 38

4.3. Hasil Pengujian 39

4.4. Kompleksitas Algoritma 41

4.4.1. Pengujian algoritma Kruskal 41 4.4.2. Pengujian algoritma Kruskal 42

BAB 5 KESIMPULAN DAN SARAN 44

5.1 Kesimpulan 44

5.2 Saran 44

DAFTAR PUSTAKA

LAMPIRAN

(11)

DAFTAR TABEL

Halaman

Tabel 3.1. Tabel Spesifikasi Use Case Home (input vertex) 22 Tabel 3.2. Tabel Spesifikasi Use Case Data Vertex 22 Tabel 3.2. Tabel Spesifikasi Use Case Undo 23 Tabel 3.2. Tabel Spesifikasi Use Case Redo 23 Tabel 3.2. Tabel Spesifikasi Use Case Algoritma 24 Tabel 3.2. Tabel Spesifikasi Use Case Hapus 24 Tabel 4.1. Tabel Hasil Pengujian Algoritma Kruskal dan Algoritma Prim 39 Tabel 4.2. Tabel Kompleksitas Fungsi Proses Algoritma Prim 42 Tabel 4.3. Tabel Kompleksitas Fungsi Proses Algoritma Kruskal 42

(12)

x

DAFTAR GAMBAR

Halaman

Gambar 2.1. Graf Dengan Empat Vertex 6

Gambar 2.2. Graf Sederhana 8

Gambar 2.3. Graf tak-Sederhana 9

Gambar 2.4. Graf Berarah dengan Dua Vertex 9

Gambar 2.5. Graf tak-Berarah 11

Gambar 2.6. Pohon Rentang Minimum Algoritma Kruskal 14

Gambar 2.7. Pohon Rentang Minimum Algoritma Prim 15

Gambar 3.1. Diagram Ishikawa 20

Gambar 3.2. Use Case Diagram 21

Gambar 3.3. Activity Diagram 25

Gambar 3.4. Sequence Diagram 26

Gambar 3.5. Flowchart Sistem 27

Gambar 3.6. Flowchart Algoritma Kruskal 28

Gambar 3.7. Flowchart Algoritma Prim 29

Gambar 3.8. Tampilan Form Utama 30

Gambar 3.9. Tampilan Form Data 31

Gambar 4.1. Form Utama 34

Gambar 4.2. Form Data 34

Gambar 4.3. Tab Ubah 35

Gambar 4.4. Tab MST 35

Gambar 4.5. Sub Menu Tampilan 36

Gambar 4.6. Vertex yang Telah di Input 36

Gambar 4.7. Minimum Spanning Tree Algoritma Kruskal 37

Gambar 4.8. Vertex yang Telah di Input 38

Gambar 4.9. Minimum Spanning Tree Algoritma Prim 39

Gambar 4.10. Grafik Running time Algoritma Kruskal dan Algoritma Prim 40 Gambar 4.11. Grafik Perbandingan Total dan Rata-rata Running time Algoritma 40

Kruskal dan Algoritma Prim

(13)

DAFTAR LAMPIRAN

Halaman

Lampiran 1. Listing Program A-1 Lampiran 2. Daftar Riwayat Hidup B-1

(14)

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Teori graf merupakan salah satu pokok bahasan matematika diskrit yang telah lama dikenal dan banyak diapikasikan pada berbagai bidang. Beberapa permasalahan sehari-hari yang dapat di presentasikan dalam graf, diantaranya adalah jaringan transportasi, jaringan komunikasi, jaringan komputer dan beberapa teori permainan.

Teori graf juga dapat digunakan untuk merepsentasekan atau memodelkan permasalahan pada cabang ilmu pengetahuan lainnya, seperti: lintasan terpendek, pemrograman komputer, peta, dan lain-lain.

Universitas Sumatera Utara (USU) sebagai salah satu universitas terbesar di luar pulau Jawa dan memiliki mahasiswa yang begitu besar serta memiliki luas wilayah yang cukup besar sehingga dibutuhkannya pengoptimalan akses tranportasi dari satu gedung ke gedung yang lain untuk meminimalisir waktu yang digunakan.

Dalam menghubungkan graf yang berbeda, yang mencakup pohon berbeda dan juga bagi seseorang yang terhubung dengan graf yang tidak berarah, di antara semuanya mencakup pohon, akan ada satu minimum biaya yaitu biaya yang paling rendah dan metode ini bisa di teapkan menjadi banyak masalah yang praktis (Yang dan Ren 2010:3).

Masalah-masalah di atas dapat di selesaikan menggunakan graf yaitu dengan membuat minimum spanning tree yang menghubungkan dari tempat satu ke tempat yang lainnya, sehingga dapat dibuat sistem yang akan menentukan pengoptimalan jalan untuk membantu dalam menyelesaikan masalah-masalah yang ada.

Algoritma Kruskal dan Algoritma Prim merupakan salah satu algoritma yang dapat menyelesaikan masalah minimum spanning tree yang ada, sehingga kita dapat melihat algoritma mana yang lebih efisien dalam menentukan minimum spanning tree.

(15)

1.2. Rumusan Masalah

Berdasarkan latar belakang di atas, maka rumusan masalah dalam penelitian ini adalah:

1. Memodelkan lintasan dalam bentuk graf untuk menghubungkan jalan, listrik dan air antar gedung di USU untuk menghemat waktu perjalanan sehingga dapat digunakan sebagai jalur transportasi bus dan juga dapat digunakan sebagai jalur jalan untuk mahasiswa dan orang-orang disabilitas.

2. Merancang perangkat lunak yang multifungsi sehingga dapat menyelesaikan masalah minimum spanning tree dengan algoritma Kruskal dan Prim.

1.3. Batasan Masalah

Batasan masalah dalam tugas akhir ini adalah sebagai berikut:

1. Parameter yang dipakai untuk perbandingan kedua algoritma adalah running time (ms) dan kompleksitas big-θ.

2. Tidak menggunakan directed graph dalam menentukan lintasan.

3. Panjang lintasan (jarak vertex ke vertex) menggunakan perbandingan skala.

4. Menggunakan bahasa pemrograman Java dengan editor netbeans 8.1.

1.4. Tujuan Penelitian Tujuan penelitian ini adalah:

1. Untuk melihat perbandingan algoritma Kruskal dan algoritma Prim dalam menentukan minimum spanning tree lintasan sehingga dapat meminimalkan biaya.

2. Untuk mencari minimum spanning tree dengan menggunkan algoritma kruskal dan Prim sehingga dapat di jadikan sebagai alternatif pemecahan masalah.

3. Memperingan pekerjaan manusia dalam menentukan jalur suatu tempat ke tempat yang lain sehingga dapat memberikan efisiensi waktu dan tenaga.

(16)

3

4. Sistem yang dirancang mampu mengakomodir verteks secara dinamis sehingga dapat diimplementasikan untuk masalah-masalah yang berhubungan dengan minimum spanning tree di Universitas Sumatera Utara

1.5. Manfaat Penelitian

Penelitian ini diharapkan mendapatkan hasil yang bermanfaat bagi user dan orang banyak dalam menyelesaikan masalah terutama dalam masalah pengoptimalan jalur lintasan, listrik dan air di Universitas Sumatera Utara.

1.6. Metodologi Penelitian

Penelitian ini menerapkan beberapa metode penelitian sebagai berikut:

1. Studi Literatur

Pada tahap ini dilakukan pengumpulan referensi yang diperlukan dalam penelitian. Hal ini dilakukan untuk memperoleh informasi dan data yang diperlukan untuk penulisan analisis perbandingan algoritma kruskal dan algoritma prim dalam menentukan minimum spanning tree di Universitas Sumatera Utara. referensi yang digunakan dapat berupa buku, jurnal, artikel, situs internet yang berkaitan dengan penelitian ini.

2. Pengumpulan Data

Pada tahap ini dilakukan pengumpulan data yang berhubungan analisis perbandingan algoritma kruskal dan algoritma prim dalam menentukan minimum spanning tree di Universitas Sumatera Utara seperti panjang lintasan dan titik-titik objek.

3. Analisis dan Perancangan Sistem

Pada tahap ini dilakukan untuk menganalisis proses kerja algoritma Kruskal dan Prim selanjutnya merancang sistem sesuai dengan rencana yang telah ditentukan, meliputi perancangan proses kerja sistem, perancangan interface, diagram ishikawa, use case diagram, activity diagram dan sequence diagram.

4. Implementasi Sistem

Pada Penyelesaian desain yang telah dirancang, baik sistem, dan Graphic User Interface.

(17)

5. Pengujian Sistem

Pada tahap ini akan dilakukan pengujian terhadap sistem yang telah dikembangkan.

6. Dokumentasi Sistem

Dokumentasi sistem mulai dari tahap awal hingga pengujian sistem, untuk selanjutnya dibuat dalam bentuk laporan penelitian (skripsi).

1.7. Sistematika Penulisan

Sistematika dalam penulisan tugas akhir ini disusun menjadi beberapa bab, diantaranya yaitu :

BAB 1 : PENDAHULUAN

Bab ini berisi mengenai latar belakang masalah, rumusan masalah, batasan masalah, tujuan dan manfaat dari penelitian, metode penelitian dan sistematika penulisan.

BAB 2 : TINJAUAN PUSTAKA

Bab ini berisi mengenai teori-teori dasar dan metode yang dilakukan untuk mendukung analisis dan perancangan yang dilakukan.

BAB 3 : ANALISIS DAN PERANCANGAN SISTEM

Bab ini terdiri dari tahap analisis sistem dan desain/model perancangan dari program yang akan dibuat, dalam hal ini termasuk juga algoritma dari program tersebut.

BAB 4 : IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi mengenai implementasi dan pengujian dari program yang sebelumnya telah dirancang dan dianalisis sistemnya.

BAB 5 : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan hasil penelitian yang telah selesai dilakukan, juga saran atau rekomendasi guna penelitian lebih lanjut.

(18)

BAB 2

LANDASAN TEORI

Dalam penulisan tugas akhir ini, penulis mengambil beberapa materi dan memaparkan teori-teori ilmiah yang didapat dari metode pencarian fakta yang digunakan untuk mendukung penyusunan tugas akhir ini, tinjauan pustaka yang dimaksud adalah sebagai berikut

2.1. Teori Graf

Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antar objek-objek tersebut. Representasi visual dari graf adalah dengan menyatakan objek dinyatakan sebagai noktah, bulatan, atau titik, sedangkan hubungan antara objek dinyatakan dengan garis. Sesungguhnya peta adalah sebuah graf, yang dalam hal ini kota dinyatakan sebagai bulatan sedangkan jalan dinyatakan sebagai garis.

Suatu graf terdiri atas himpunan kosong dari elemen-elemen yang disebut titik dan suatu daftar pasangan vertex yang tidak terurut disebut sisi (edge). Himpunan vertex dari suatu graf G dinotasikan dengan V, dan daftar himpunan edge dari graf tersebut dinotasikan dengan E. Untuk selanjutnya suatu graf G dapat dinotasikan dengan G = (V,E)(Wilson, R. J dan Watkhins, J. J, 1990).

Graf merupakan representasi dari suatu masalah yang digambarkan sebagai sekumpulan noktah atau simpul (vertex) yang dihubungkan dengan sekumpulan garis atau sisi (edge) (Afrianto dan Jamilah, 2012:35). Graf dapat digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

Representasi visual dari graf adalah dengan menyatakan vertex, bulatan atau titik

(19)

1

vertex, sedangkan hubungan antara objek dengan garis dinyatakan dengan baris edge.

Graf dengan empat vertex dapat dilihat pada Gambar 2.1.

Graf G = (V, E), yang dalam hal ini:

V = himpunan tidak-kosong dari simpul-simpul (vertex) = { v1 , v2 , ... , vn }

E = himpunan sisi (edges) yang menghubungkan sepasang simpul = {e1 , e2 , ... , en }.

Gambar 2.1. Graf Dengan Empat Vertex

Pada Gambar 2.1,adalah graf dengan

V = { 1, 2, 3, 4 } E = { (1, 2), (1, 3), (2, 3), (2, 4), (3, 4) }.(

rinaldi.munir,2011).

Beberapa terminologi yang berhubungan dengan graf adalah : 1. Bertetangga

Dua buah titik pada graph tidak berarah dikatakan bertetangga jika keduanya terhubung langsung dengan sebuah busur

2. Bersisian

Untuk sembarang busur e= (vj,vk), busur e dikatakan bersisian dengan titik vj dan vk

3. Titik Terpencil

Titik terpencil adalah titik yang tidak mempunyai sisi yang bersisian atau dapat juga dikatakan bahwa titik terpencil adalah titik yang tidak satupun bertetangga dengan titik lainnya.

2

3 4

(20)

7

4. Jalan (walk)

Sebuah jalan di G adalah sebuah barisan berhingga yang suku-sukunya bergantian titik dan sisi.

5. Jejak (trail)

Jalan yang sisi-sisinya tidak ada yang sama. Tetapi titiknya boleh ada yang sama

6. Lintasan (path)

Jejak yang semua titiknya berbeda (sisi dan titiknya tidak akan ada yang sama).

7. Sirkuit

Lintasan yang berawal dan berakhir pada titik yang sama disebut dengan sirkuit. Panjang sirkuit adalah jumlah busur yang di dalam sirkuit tersebut 8. Cut-Set

Cut-set dari graph terhubung G adalah himpunan busur yang apabila dibuang dari G menyebabkan G tidak terhubung. Jadi, cut-set selalu menghasilkan dua buah komponen terhubung. Nama lain dari cut-set ialah bridge (jembatan).

9. Terhubung dan tidak terhubung

Suatu graf dikatakan terhubung jika dan hanya jika setiap dua titik dalam G terhubung, sedangkan suatu graf G dikatakan tidak terhubung jika dan hanya jika ada 2 buah titik dalam G yang tidak terhubung.

10. Komplemen

Graf sederhana yang himpunan titiknya sama dengan himpunan titik G dan dua titik u dan v di hubungkan langsung.

11. Isomorfik

Jika terdapat korespondensi satu-satu V(G) dan E(G), banyak sisiyang menghubungkan dua titik u dan v di G, sama dengan banyak sisi yang menghubungkan dua titik di H yang korespondensi dengan titik u dan titik v

2.1.1. Jenis-jenis graf

Graf dikelompokan menjadi beberapa jenis tergantung pada sudut pandang pengelompokan. Pengelompokan graf dapat dilihat berdasarkan ada tidaknya cabang ganda atau cabang gelang, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi (Munir,2006).

(21)

1. Berdasarkan ada tidaknya busur ganda

Secara umum dapat digolongkan menjadi dua jenis yaitu : a) Graf sederhana (simple graph)

Graf sederhana merupakan graf yang tidak mengandung gelang maupun sisi-ganda. Pada graf ini edge merupakan pasangan tak-terurut (unordered pairs) sehingga jika menuliskan sisi (u,v) sama saja dengan (v,u) dan G=(V,E) terdiri dari himpunan tidak kosong simpul-simpul dan E adalah himpunan pasangan tak-terurut yang berbeda yang disebut edge. Graf Sederhana dapat dilihat pada Gambar 2.2.

Gambar 2.2. Graf Sederhana b) Graf tak-sederhana (unsimple graph)

Graf tak-sederhana adalah graf yang mengandung sisi ganda atau gelang. Ada dua macam graf tak-sederhana, yaitu graf ganda (multigraph) dan graf semu (pseudograph). Graf ganda adalah graf yang memiliki busur ganda sedangkan graf semu adalah graf yang memiliki gelang. Graf tak-sederhana dapat dilihat pada Gambar 2.3.

Gambar 2.3. Graf tak-Sederhana

2. Berdasarkan jumlah simpul pada suatu graf a) Graf berhingga (limited graph)

Graf berhingga adalah graf yang jumlah simpulnya n berhingga b) Graf tak-berhingga (unlimited graph)

2

1

3

4

(22)

9

Graf tak-berhingga adalah graf yang simpulnya n tidak berhingga banyaknya

3. Berdasarkan orientasi arah pada sisi.

a) Graf berarah (directed graph)

Directed Graph atau Graph Terarah adalah struktur data Graph dengan edge yang hanya memiliki satu arah antar node yang dihubungkannya.

Pada gambar 1 sebagai analogi, edge pada directed graph dianalogikan seperti jalan satu arah yang menghubungkan posisi A dan B.

Apabila panah digambarkan dari node A ke node B berarti jalur (path) dari A menuju B boleh dilalui tetapi tidak berlaku sebaliknya dari B ke A. Dalam hal ini sisi yang ditulis (v1,v2) berbeda dengan sisi (v2, v1). Contoh gaf berarah dengan dua vertex dapat dilihat pada Gambar 2.4.

Gambar 2.4. Graf Berarah dengan Dua Vertex

b) Graf tak-berarah (undirected graph)

Graf yang sisinya tidak mempunyai orientasi arah disebut graf takberarah. Pada graf tak-berarah, urutan pasangan titik yang dihubungkan oleh busur tidak diperhatikan. Graf tak-berarah dapat dilihat pada Gambar 2.5.

Gambar 2.5 Graf tak-Berarah

1 2

(23)

2.2. Minimum Spanning Tree (MST)

2.2.1. Pohon ( tree)

Dalam graf G=(V,E), sebuah lintasan yang awal dan akhir adalah simpul yang sama disebut sirkuit. Jika tidak memiliki sirkuit maka graf tersebut dinamakan hutan. Dalam sebuah hutan, simpul (vertex) berderajat satu disebut titik akhir dan daun (leaf). Hutan yang terhubung adalah pohon (tree).

Misalkan B merupakan sebuah himpunan berhingga simpul (vertex) pada suatu graf G yang terhubung. Untuk setiap pasangan simpul di A dapat ditentukan suatu lintasan yang menghubungkan pasangan simpul tersebut. Suatu graf terhubung yang setiap pasangan simpulnya hanya dapat dihubungkan oleh suatu lintasan tertentu, maka graf tersebut dinamakan pohon (tree). Dengan kata lain, pohon (tree) merupakan graf tak-berarah yang terhubung dan tidak memiliki sirkuit.

Konsep pohon merupakan salah satu konsep dari graf yang terapannya banyak digunakan baik di bidang ilmu komputer maupun bidang lain yang mengkaji pohon sebagai obyek matematika. Pada kehidupan sehari-hari tanpa disadari kita telah menerapkan konsep pohon untuk menggambarkan hirarki, misalnya hirarki silsilah keluarga, pertandingan olah raga, ataupun struktur organisasi

Terminologi yang berkaitan dengan pohon (tree) adalah 1. Tree berakar

Tree yang mempunyai vertex yang diletakkan pada bagian atas, dan mempunya vertex-vertex berikutnya terhubung kebawah dari vertex paling atas.

2. Orang tua (parent)

Vertex yang terletak lebih di atas disbanding vertex bertetangga dibawahnya.

3. Anak (child)

Vertex yang bertetangga dengan parent, terletak lebih kebawan dari pada parent

4. Anak kanan (right child)

Anak yang terletak di sebelah kanan.

5. Anak kiri (left child)

Anak yang terletak disebelah kiri

(24)

11

6. Right sub tree

Sub tree yang terletak di kanan 7. Left sub tree

Sub tree yang terletak di kiri 8. Saudara kandung (sibling)

Vertex yang sejajar dengan vertex yang bersangkutan dengan parent yang sama

9. Nenek moyang (ancestor)

Vertex yang dilewati path dari vertex tersebut ke root, tidak termasuk vertex itu sendiri, tetapi root termasuk

10. Anak cucu (descendant)

Semua vertex yang berasal dari vertex tersebut dan berakhir pada daun.

11. Daun (leaf)

Vertex yang tidak mempunyai anak 12. Vertex dalam

vertex yang bukan root dan bukan daun

2.2.2. Minimum Spanning Tree

Minimum spanning tree adalah suatu pohon yang dapat didefinisikan dengan sebuah graf. Graf berarah dan graf tidak berarah adalah subgraf yang setiap vertex terkoneksi satu sama lain. Sebuah graf, dapat memberikan pohon rentang yang berbeda. Untuk itu ke segmen mst membentuk lintasan untuk digunakan sebagai mst edge mungkin tumpang tindih, tetapi biaya yang dihitung secara terpisah ( Wu, et al 1987:327). Pada setiap edge, kita dapat memberikan suatu bobot untuk menentukan suatu nilai. Setiap bobot tersebut akan dibandingkan dengan bobot yang lain yang mengarah pada simpul berikutnya, selanjutnya akan dipilih bobot yang terkecil. Hal ini akan terus dilakukan sampai menuju simpul tujuan. Ini yang disebut dengan minimum spanning tree.

Menghubungkan satu segmen masing-masing kota dengan kota terdekat maka dari itu jika himpunan semua segmen terhubung itu adalah jaringan yang diinginkan, jika tidak. Jika tidak, salah satu komponen yang terhubung dengan komponen terdekat dengan cara menghubungkan dua kota terdekat secara kontinu itu adalah jaringan yang diinginkan .Jika tidak salah satu terus dengan cara yang sama sampai jaringan yang sama sampai jaringan diinginkan (Graham dan Hell, 1985:47).

(25)

Permasalahan umum dari minimum spanning tree adalah mencari minimum spanning tree dari setiap edge suatu graf yang membentuk pohon (tree). Untuk mendapatkan solusi yang diharapkan, akan dipilih ruas menurut kriteria optimisasi yang dihasilkan jarak minimum. Untuk masalah minimum spanning tree, syarat graf dapat dicari minimum spanning tree-nya adalah :

a. Graf harus terhubung

b. Edge mempunyai bobot terkecil c. Tidak membentuk sirkuit

Permasalahan minimum spanning tree secara sederhana dapat diselesikan dengan mudah (Efendi, 2003), persoaalan spanning tree dapat diselesaikan dengan cara:

1. Memilih sembarang salah satu vertex kemudian menghubungkan vertex dengan vertex lain yang terdekat.

2. Menentukan vertex lain yang belum tehubung, jarang yang paling dekat dengan vertex yang sudah terhubung pada langkah sebelumnya, kemudian menghubungkan vertex ini.

3. Mengulangi langkah ini sehingga seluruh vertex dapat terpenuhi.

2.3. Algoritma

Algoritma merupakan urutan langkah-langkah untuk menyelesaikan masalah yang disusun secara sistematis, algoritma dibuat dengan tanpa memperhatikan bentuk yang akan digunakan sebagai implementasinya, sehingga suatu algoritma dapat menjelaskan bagaimana cara melaksanakan fungsi dan dapat diekspresikan dengan suatu program atau suatu komponen fisik (Hartono, 2007).

Untuk menyelesaikan masalah seorang programmer harusla :

1) Dapat mendesain algoritma yang menjelaskan bagaimana persoalan tersebut diselesaikan.

2) Menulis / merubah algoritma menjadi suatu program dengan menggunakan suatu Bahasa Pemrograman yang sesuai.

3) Menggunakan komputer untuk menjalankan program.

(26)

13

2.3.1. Ciri algoritma

Menurut Donald E. Knuth, penulis beberapa buku algoritma abad XX, menyatakan bahwa ada beberapa ciri algoritma, yaitu:

1. Algoritma mempunyai awal dan akhir, suatu algoritma harus berhenti setelah mengerjakan serangkaian tugas.

2. Setiap langkah harus didefinisikan dengan tepat sehingga tidak memiliki arti ganda, tidak membingungkan(not ambiguitas).

3. Memiliki masukan (input) atau kondisi awal.

4. Memiliki keluaran (output) atau kondisi akhir.

2.3.2. Algoritma Kruskal

Algoritma Kruskal pertama kali dipopulaerkan oleh Joseph Kruskal pada tahun 1956.

Di dalam algoritma kruskal setiap edge pada graf G di periksa dalam urutan bobotnya, dan jika edge yang dipilih tidak berbentuk siklus itu akan ditambahkan ke dalam T proses berlanjut sampai n-1 edge ditambahkan (Khanam dan Mathew, 2012:1). Berarti mencari subset dari sisi yang membentuk sebuah Tree yang menampung setiap vertex, dimana total bobot dari semua sisi dalam Tree adalah minimum. Horowitz, et al.

(1997:220) mengemukakan bahwa: “This interpretation is that the set T of edge so far selected for spanning tree be such that it is possible to complete T into a tree. thus T may not be a tree at all stage in algorithm”.

Seperti dikatakan oleh Zakiah, et al (2015:1817) langkah-langkah dalam algoritma Kruskal adalah sebagai berikut:

1. Isi T dengan semua titik-titik G tanpa garis 2. m=0

3. Selama m < (n-1) lakukan :

• Tentukan garis e ϵ E dengan bobot minimum, jika ada beberapa pilih salah satu sembarang

• Hapus e dari E

• Jika e ditambahkan ke T tidak membuat sirkuit maka

• Tambahkan e ke T

• m = m+1

(27)

Contoh algoritma Kruskal dapat dilihat pada Gambar 2.6 :

Gambar 2.6 Pohon Rentang Minimum Algoritma Kruskal

2.3.3. Algoritma Prim

Algoritma Prim adalah suatu algoritma di dalam teori graf yang bertujuan menemukan Minimum Spanning Tree untuk menghubungkan graf berbobot. Ini berarti algoritma ini menemukan subset dari sebuah tepi yang membentuk sebuah tree yang meliputi setiap vertexnya. Dimana total beban dari setiap tepi di tree diminimalkan. Jika Graf tidak terhubung, maka ini hanya akan menemukan sebuah Minimum Spanning Tree menjadi satu jalur untuk komponen yang terhubung. Edge (u,v) termasuk kedalam A dengan bobot minimum edge tidak termasuk ke dalam A jika A U {(u,v)} juga pohon (Horowitz, et al, 1997).

Algoritma ini ditemukan pada tahun 1930 oleh seorang ahli matematika Vojtech Jarnik, dan kemudian dipublikasikan oleh seorang computer scientist Robert C. Prim pada tahun 1957 dan ditemukan kembali oleh Dijkstra pada tahun 1959. Oleh karena itu terkadang Algoritma ini juga disebut DJP algorithm atau algoritma Jarnik.

Langkah-langkah dalam algoritma Prim adalah sebagai berikut:

1. Ambil sisi dari graf G yang berbobot minimum, masukkan ke dalam T

2. Pilih sisi (u, v) yang mempunyai bobot minimum dan bersisian dengan simpul di T, tetapi (u,v) tidak membentuk sirkuit di T. Tambahkan (u, v) ke dalamT.

3. Ulangi langkah 2 sebanyak n - 2 kali hingga terbentuk pohon merentang minimum.

(28)

15

Contoh algoritma Prim dapat diihat pada Gambar 2.7 :

Gambar 2.7. Pohon Rentang Minimum Algoritma Prim Keterangan :

• Terhubung

• Tidak terhubung

2.3.4. Kompleksitas algoritma

Kompleksitas waktu dari algoritma berisi ekspresi bilangan dan jumlah langkah yang dibutuhkan sebagai fungsi dari ukuran permasalahan. Analisa asimtotik menghasilkan notasi Ο atau Big Oh, dan dua notasi untuk komputer sain yaitu Θ (Big Theta) dan Ω (Big Omega) (Purwanto, 2008).

Kinerja algoritma dibuktikan dengan menjumlahkan bilangan bulat dari masing-masing operasi ketika algoritma di jalankan. Kinerja sebuah algoritma dievaluasi sebagai fungsi ukuran masukan n dan konstanta modulo pengali yang digunakan. Pada penelitian ini kompleksitas yang digunakan adalah Big Theta (ɵ).

1. Big-O (O)

Secara informal, 0(g(n)) adalah himpunan semua fungsi yang lebih kecil atau dengan urutan yang sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga).

Sebuah fungsi t(n) dikatakan bagian dari 0((g(n)) yang dilambangkan dengan t(n) Є 0(g(n)), jika t(n) batas atasnya adalah beberapa konstanta g(n) untuk semua n besar, jika terdapat konstanta c positif dan beberapa bilangan bulat non negatif n0 seperti t(n)

≤cg(n) untuk semua n≥n0. (Anany Levitin, 2011).

2. Big Theta (ɵ)

ϴ(g(n)) adalah himpunan semua fungsi yang memiliki tingkat pertumbuhan yang sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga). Sebuah fungsi t(n) dikatakan bagian dari ϴ(g(n)), dilambangkan dengan t(n) Є ϴ(g(n)), jika t(n) batas atas dan bawahnya adalah beberapa konstanta positif g(n) untuk semua n yang besar, yaitu jika ada beberapa konstanta positif c1 dan c2 serta beberapa bilangan

(29)

bulat non negatif n0 seperti c2g(n) ≤t(n) ≤c1g(n) untuk semua n≥n0. (Anany Levitin, 2011).

3. Big Omega (Ω)

Ω(g(n)) merupakan himpunan semua fungsi dengan tingkat pertumbuhan lebih besar atau sama dengan g(n) (hingga beberapa konstanta, sampai n ke tak terhingga).

Sebuah fungsi t(n) dikatakan bagian dari Ω(g(n)), dilambangkan dengan t(n) Є Ω(g(n)), jika t(n) batas bawahnya adalah beberapa konstanta positif dari g(n) untuk semua n besar. Terdapat konstanta c positif dan beberapa bilangan bulat non negatif n0

seperti t(n)≥cg(n), (untuk setiap n≥n0) (Anany Levitin, 2011).

(30)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini penulis akan memaparkan analisis permasalahan yang di sajikan dengan diagram dan flowchart serta dipaparkan juga perancangan sistem yang akan dibangun, baik berupa perangkat keras ataupun perangkat lunak.

3.1. Analisis Sistem

Analisis sistem adalah penguraian dari suatu sistem sistem informasi yang utuh kedalam bagian-bagian komponennya dengan maksud untuk mengidentifikasikan dan mengevaluasi permasalahan, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusulkan perbaikan. Analisis sistem dapat dilakukan dengan menentukan apa-apa saja yang menjadi input di dalam sistem, proses apa yang dilakukan oleh sistem dan apa yang menjadi output dari sistem tersebut.

3.1.1. Analisis masalah

Analisis masalah merupakan proses mengidentifikasi sebab dan akibatnya dibangunnya sebuah sistem agar sistem yang telah dirancang dapat berjalan dengan sebagai mana mestinya sesuai dengan tujuan dari sestem tersebut. Permasalahan dari penelitian ini ialah bagaimana algoritma kruskal dan prim dalam menyelesaikan permasalahan minimum spanning tree apakah efesien digunakan dalam menyelesaikan masalah penelitian ini. Serta bagaimana membuat tampilan berbasis GUI dalam penerapan algoritma kruskal dan algoritma prim.

(31)

3.1.2. Analisis kebutuhan

Analisi kebutuhan yang dipakai disini yaitu adalah analasis kebutuhan perangkat seperti perangkat keras dan perangkat lunak dan analisis kebutuhan dari sistem itu sendiri.

1. Analisis Kebutuhan Perangkat

Perangkat yang digunakan di dalam penelitian ini ialah : a. Perangkat Keras

Dalam Membuat suatu sistem perangkat keras merupakan salah satu sebagai pendukung keberhasilan dari suatu sistem yang mana pemakaian perangkat keras yang memadai dapat membuat kinerja algoritma berjalan dengan baik dan minimum. Perangkat keras yang digunakan di dalam penelitian ini adalah satu buah unit notebook Asus A451lb dengan spesifikasi sebagi berikut :

• Processor : Intel Core I3 4010U 1,7 GHz

• Memori : 4096 DDR3L

• VGA : Nvidia GeForce 740m

• Monitor : LCD 14 inc

b. Perangkat Lunak

Perangkat lunak yang dibutuhkan untuk mendukung penelitian ini adalah :

• Sistem Operasi Windows , disini penulis menggunakan sistem operasi windows 10

• Java version 1.8.0_111

• Java SE Runtime Environment 1.8.0._111-b14

• Java Development Kit 1.8.0_73

• Netbeans IDE 8.1

2. Analisis Kebutuhan Sistem a. Input

Input merupakan data masukan yang bersal dari user ataupun pengguna sistem data tersebut berupa :

(32)

19

• Data vertex, Koordinat vertex b. Proses

Proses yang terjadi di dalam penelititan ini digambarkan melalui Use Case Diagram, Activity Diagram, dan juga Flowchart.

c. Output

Output dari sistem adalah nilai bobot dari edge dan nilai Minimum Spanning Tree dengan menggunakan algoritma kruskal dan juga algoritma prim. Hasil yang di keluarkan juga berupa graf dari algoritma kruskal dan juga algoritma prim.

3.1.3. Kebutuhan fungsional

Fungsi-fungsi yang harus dipenuhi pada aplikasi yang dirancang. Kebutuhan fungsional yang harus dipenuhhi aplikasi yang dirancang adalah sebagai berikut :

a. Sistem harus mampu membuat jalur minimum spanning tree dari titik yang telah di input

b. Sistem harus mampu menghitung bobot dari edge yang telah terhubung.

c. Sistem harus mampu menampilkan vertex yang telah di input.

3.1.4. Kebutuhan non-fungsional

Kebutuhan yang harus dipenuhi oleh aplikasi agar aplikasi yang dirancang mendapat umpan balik yang baik dari pengguna aplikasi. Kebutuhan non-fungsional yang harus dipenuhi aplikasi yang dirancang adalah sebagai berikut (Ladjamudin, 2005) :

a. Performa

Sistem harus mampu melaksanakan setiap tugas secara utuh dalam selang waktu yang tidak terlalu lama

b. Informasi

Sistem harus mampu menyediakan informasitentang data-data yang akan digunakan pada sistem.

c. Kontrol

Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga.

(33)

d. Efisiensi

Sistem harus dirancang sederhana mungkin agar mempermudah penggunaan dalam menjalankan aplikasi tersebut.

e. Pelayanan

Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks.

3.2. Pemodelan Sistem

Pemodelan sistem adalah menggambarkan bagian-bagian yang terdapat pada sistem yang dirancang sesuai dengan spesifikasi dan kebuttuhan sistem tersebut. Pada penelitian ini proses pemodelan sistem akan dilakukan dengan menggunakan.

Diagram Ishikawa, Use Case Diagram, Activity Diagram, Sequence Diagram dan Flowchart.

3.2.1. Diagram Ishikawa

Diagram ishikawa merupakan alat visual untuk mengidentifikasi, mengeksplorisasi, dan secara grafik menggambarkan secara detail semua penyebab yang berhubungan dengan suatu permasalahan. Diagram ini berbentuk tulang ikan, diagram ini akan menunjukan sebuah dampak atau akibat dari permasalahan dengan berbagai penyebab.

Diagram ishikawa dari analisis perbandingan algoritma kruskal dan algoritma Prim dalam menentukan minimum spanning tree di Universitas Sumatera Utara dapat dilihat pada Gambar 3.1.

Gambar 3.1. Diagram Ishikawa

(34)

21

3.2.2. Use case diagram

Use case diagram adalah gambaran graphical dari beberapa atau semua aktor, use case, dan interaksi diantaranya yang memperkenalkan suatu sistem. Use case diagram tidak menjelaskan secara detail tentang penggunaan use case, tetapihanya memberi gambaran singkat hubungan antara use case, aktor, dan sistem. Use case diagram dapat dilihat pada Gambar 3.2.

Gambar 3.2. Use Case Diagram

Gambar 3.2 menjelaskan bahwa aktor dapat melakukan proses input vertex pada proses home (input vertex) user dapat melihat data vertex , kemudian dapat menundo dari pengerjaan sistem yang telah dilakukan, user dapat menredo pekerjaan yang telah dilakukan, user juga dapat memilih algoritma yang telah ada yaitu algoritma Prim dan juga algoritma Kruskal dan user dapat menghapus vertex yang telah diinput di awal sistem. Spesifikasi setiap use case dapat diuraikan sebagai berikut.

(35)

1. Spesifikasi use case home (input vertex)

Tabel 3.1 Spesifikasi Use Case Home (input vertex)

Name Home (input vertex)

Actor Pengguna

Trigger Pengguna menjalankan program

Preconditions -

Post Conditions Sistem menampilkan vertex

Succes Scenario Pengguna mengeksekusi program awal

Alternative Flows -

2. Spesifikasi use case data vertex

Tabel 3.2 Spesifikasi Use Case Data Vertex

Name Data Vertex

Actor Pengguna

Trigger Pengguna mengakses tab data vertex

Preconditions -

Post Conditions Sistem menampilkan data vertex dari hasil input vertex

Succes Scenario 1. Pengguna mengeksekusi data vertex

2. Sistem menampilkan window data vertex

Alternative Flows -

(36)

23

3. Spesifikasi use case undo

Tabel 3.3 Spesifikasi Use Case Undo

Name Undo

Actor Pengguna

Trigger Pengguna mengakses tab undo

Preconditions -

Post Conditions Sistem mengembalikan hasil kerja yang sebelumnya

Succes Scenario Pengguna mengeksekusi tab undo

Alternative Flows -

4. Spesifikasi use case redo

Tabel 3.4 Spesifikasi Use Case Redo

Name Redo

Actor Pengguna

Trigger Pengguna mengakses tab redo

Preconditions -

Post Conditions Sistem mengembalikan hasil kerja yang telah di lakukan

Succes Scenario Pengguna mengeksekusi tab redo

Alternative Flows -

(37)

5. Spesifikasi use case algoritma

Tabel 3.5 Spesifikasi Use Case Algoritma

Name Algoritma

Actor Pengguna

Trigger Pengguna mengakses tab algoritma

Preconditions -

Post Conditions Sistem memilih algoritma kruskal atau algoritma prim

Succes Scenario Pengguna memilih algoritma melalui

sub tab yang ada pada tab algoritma

Alternative Flows -

6. Spesifikasi use case hapus

Tabel 3.6 Spesifikasi Use Case Hapus

Name Hapus

Actor Pengguna

Trigger Pengguna mengakses tab hapus

Preconditions -

Post Conditions Sistem menghilangkan vertex yang akan

di hapus

Succes Scenario Pengguna mengeksekusi tab hapus

Alternative Flows -

(38)

25

3.2.3. Activity diagram

Activity diagram adalah bentuk pemodelan dari sistem yang menggambarkan alur dari proses yang terjadi pada sebuah use case dan untuk menggambarkan logika dari suatu sistem. Activity diagram dibuat berdasarkan use case yang telah ditentukan sebelumnya pada proses requirement analysis. Activity diagram yang terdapat pada sistem ini adalah sebagai berikut.

Pada proses home (input vertex), aktivitas yang berlangsung dapat dilihat pada Gambar 3.3.

Gambar 3.3. Activity Diagram

(39)

3.2.4. Sequence diagram

Sequence Diagram adalah suatu diagram yang menggambarkan interaksi antara aktor dan sistem pada use case skenario diagram ini sangat membantu melihat pesan higt level yang masuk dan keluar dari sistem (Bentley, Whitten, 2007). Sequence Diagram untuk sistem minimum spanning tree algoritma Kruskal dan Prim dapat dilihat pada Gambar 3.4.

Gambar 3.4. Sequence Diagram

3.2.5. Flowchart

Flowchart adalah suatu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses secara mendetail dan hubungan antara suatu proses (instruksi) dengan proses lainnya dalam suatu program. Flowchart sistem merupakan bagan yang menunjukan alur kerja atau apa yang sedang dikerjakan didalam sistem secara keseluuhan dan menjelaskan urutan dari prosedur-prosedur yang ada didalam sistem.

Dengan kata lain flowchart ini merupakan deskripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang memberntuk suatu sistem.

Flowchart sistem terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data tersebut. Data dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan langsung dengan komputer) atau offline.

(40)

27

1. Flowchart sistem utama

Flowchart sistem secara umum dalam algoritma minimum spanning tree menggunakan algoritma kruskal dan algoritma prim dapat dilihat pada Gambar 3.5.

Gambar 3.5. Flowchart Sistem Input Titik

Kordinat Fakultas

Output (Lintasan Graf,

running time) Tabel jarak dan

Titik

Hitung MST Algoritma Kruskal dan Prim

Start

Finish

(41)

2. Flowchart algoritma Kruskal

Flowchart algoritma Kruskal yang akan di gunakan pada sistem ini dapat dilihat dari Gambar 3.6. flowchart ini mengikuti langkah-langkah dari algoritma Kruskal yang di jelaskan pada bab 2.

Gambar 3.6. Flowchart Algoritma Kruskal

Tidak

Tidak

Ya

Ya

End

Start

Isi t dengan semua titik G

tanpa garis

M <

(n-1)

Tentukan e ϵ E dengan bobot minimum

Jika e ϵ E masukan ke T tapi tidak membentuk sirkuit

Masukan e ke T sehingga edge = edge+1

Hapus e dari E Output T =

edge

(42)

29

3. Flowchart algoritma Prim

Flowchart algoritma prim yang akan di gunakan pada sistem ini dapat dilihat dari Gambar 3.7 flowchart ini mengikuti langkah-langkah dari algoritma Prim yang di jelaskan pada bab 2.

Gambar 3.7. Flowchart Algoritma Prim

(43)

3.3. Perancangan Antarmuka Sistem

Pada perancangan antar muka sistem ini perancangan sistem dibuat dengan Graphic User Interface (GUI) yang akan mempermudakan user dalam menggunakan sistem dari aplikasi ini, terdapat beberapa form yang ada di dalam aplikasi ini yaitu form utama, form data, form about.

1. Form Utama

Pada halaman form utama menampilkan langsung bagian dari program sehingga user bisa langsung memakai aplikasi ini tanpa perlu menekan button untuk masuk ke dalam aplikasi. Pada halaman form ini juga terdapat beberapa keterangan seperti nama aplikasi dan algoritma. Form utama dapat dilihat pada Gambar 3.8.

Gambar 3.8. Tampilan Form Utama

(44)

31

Keterangan : 1. Tab File

Pada bagian ini berisi sub menu yaitu keluar yang berguna untuk keluar dari aplikasi atau bisa menggunakan alternatif alt+f4

2. Tab Ubah

Pada bagian ini juga berisi sub menu yaitu undo dan redo yang berfungsi untuk kembali ke keperintah yang sebelumnya dan redo untuk mengulang perintah yang telah dibatalkan sebelumnya dan dapat memakai alternatif yaitu undo ctrl+z , redo ctrl+y.

3. Tab MST

Pada bagian ini terdiri dari beberapa sub menu yaitu : 1. Menampilkan

Terdiri dari beberapa sub tab juga yaitu :

• Kosongkan

Berfungsi untuk mengosokan lembar tampilan yang telah dibuat dan juga dapat memakai alternatif yaitu shift+n.

• Algoritma Prim

Berfungsi untuk menampilkan hasil dari minimum spanning tree dengan algoritma Prim dapat juga memakai alternatif yaitu shift+p.

• Algoritma Kruskal

Berfungsi untuk menampilkan hasil dari minimum spanning tree dengan algoritma Kruskal dapat juga memakai alternatif yaitu shift+k.

2. Hapus

Berfungsi untuk menghapus vertex yang telah diinputkan kedalam lembar kerja.

3. Data

Berikan link ke form data yang berisikan data log dari vertex yang ada berupa koordinat dari vertex.

4. Frame

Berisi map kerja untuk menggunakan algoritma Kruskal dan algoritma Prim disini merupakan bagian utama dari aplikasi.

(45)

2. Form data

Form data berisikan keterangan dari hasil input dari user berupa warna vertex dan juga koordinat vertex. Form dat dapat dilihat pada Gambar 3.9.

Gambar 3.9. Tampilan Form Data Keterangan :

1. Label

Berisikan informasi dari program berupa nama program.

2. Frame 1

Menampilkan jenis warna yang telah diinput oleh user berupa vertex berwana 3. Frame 2

Menampilkan posisi koordinat dari vertex yang telah diinput oleh user

(46)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

Pada bab 4 ini penulis memaparkan bagaimana implementasi dari sistem dan juga hasil pengujian aplikasi yang dilakukan pada algoritma kruskal dan prim yang sudah dibangun menggunakan java.

4.1. Implementasi Sistem

Implementasi sistem adalah prosedur yang dilakukan untuk menyelesaikan desain yang ada dalam dokumen desain sistem yang disetujui dan menguji, menginstal, memulai, serta menggunakan sistem yang baru atau sistem yang diperbaiki.

Implementasi sistem pada penelitian ini menggunakan bahasa pemrograman. Bahasa pemrograman digunakan adalah java versi 1.8.0_111. Perangkat lunak yang digunakan dalam membagun sistem ini adalah Netbeans IDE 8.1 include Java SE Runtime Environtment 1.8.0_111-b14 dan Java Development Kit 1.8.0_73.

Proses implementasi yang diranang dari sistem ini dibagi menjadi 2 form dalam bahasa java, di antaranya yaitu form utama, form data.

4.1.1. Form utama

Form utama merupakan form yang akan muncul pertama kali ketika aplikasi dijalankan. Form ini terdiri dari 3 tab menu, yaitu tab file, tab ubah, dan tab MST.

Form utama pada aplikasi dapat dilihat pada Gambar 4.1.

(47)

Gambar 4.1 Form utama

4.1.2. Form data

Form data adalah form yang berisikan data-data dari vertex yang telah diinputkan, dimana di dalam form ini terdapat informasi letak titik vertex dan warna dari vertex tersebut. Form data pada aplikasi dapat dilihat pada Gambar 4.1.

Gambar 4.2 Form Data

(48)

35

4.1.3. Tab file

Tab file merupakan tab yang berisikan sub tab yaitu keluar yang berfungsi untuk keluar dari program yang telah dijalankan. Tab file pada aplikasi dapat dilihat pada Gambar 4.1.

Gambar 4.3 Tab File

4.1.4. Tab Ubah

Tab ubah merupakan tab yang berisikan 2 sub tab yaitu undo dan redo yang berfungsi untuk mengembalikan data yang telah diproses dan menampilkan kembali data yang telah dihapus atau di undo. Tab ubah pada aplikasi dapat dilihat pada Gambar 4.1.

Gambar 4.4 Tab Ubah

(49)

4.1.5. Tab MST

Tab MST berisikan tampilan, hapus, dan data dimana masing masing mempunyai fungsi masing-masing. Tab MST dan sub menu tampilan pada aplikasi dapat dilihat pada Gambar 4.4 dan Gambar 4.5.

Gambar 4.4 Tab MST

Gambar 4.5 Sub Menu Tampilan

(50)

37

4.2. Pengujian Sistem

Pengujian sistem merupakan tahap mengidentifikasi hasil dari implementasi sistem apakah sistem akan berjalan sesuai dengan fungsi-fungsi yang telah ditentukan sebelumnya pada tahap analisis dan perancangan sistem. Pengujian sistem ini dilakukan pada vertex yang berupa titik pada map. Pengujian sistem ini di bagi dalam 2 proses yaitu pengujian proses algoritma Kruskal dan algoritma Prim.

4.2.1. Pengujian algoritma Kruskal

Pengujian sistem algoritma Kruskal ini dilakukan dengan tahap memasukan vertex yang diinginkan secara manual di halaman utama. Langkah-langkah pengujian sistem algoritma Kruskal dapat dilihat sebagai berikut.

1. Input vertex secara manual di tempat yang diinginkan. Vertex yang telah diinput dapat dilihat pada Gambar 4.6.

Gambar 4.6. Vertex yang Telah di Input

2. Pilih tab MST dan pilih sub menu tampilkan.

3. Memilih algoritma sesuai yang diinginkan yaitu agoritma Kruskal atau bisa juga menekan tombol pada keyboard sebagai alternatif yaitu shift+k.

4. Lalu akan muncul jalur minimum spanning tree dari algoritma Kruskal yang telah dipilih. Minimum spanning tree dari algoritma kruskal dapat dilihat pada Gambar 4.7.

(51)

Gambar 4.7. Minimum Spanning Tree Algoritma Kruskal

4.2.2. Pengujian algoritma Prim

Pengujian sistem algoritma Prim ini dilakukan dengan tahap sama seperti pengujian sistem pada algoritma Kruskal yaitu memasukan vertex yang diinginkan secara manual di halaman utama. Langkah-langkah pengujian sistem algoritma Kruskal dapat dilihat sebagai berikut.

1. Input vertex secara manual di tempat yang diinginkan. Vertex yang telah diinput dapat dilihat pada Gambar 4.8.

Gambar 4.8. Vertex yang Telah di Input

(52)

39

2. Pilih tab MST dan pilih sub menu tampilkan

3. Memilih algoritma sesuai yang diinginkan yaitu agoritma Prim atau bisa juga menekan tombol pada keyboard sebagai alternatif yaitu shift+p.

4. Lalu akan muncul jalur minimum spanning tree dari algoritma Prim yang telah dipilih. Minimum spanning tree dari algoritma Prim dapat dilihat pada Gambar 4.9.

Gambar 4.9. Minimum Spanning Tree Algoritma Prim

4.3. Hasil Pengujian

Berdasarkan penelitian pengujian sistem dari gambar running time dari minimum spanning tree dengan algoritma Kruskal dan algoritma Prim dapat di ketahui dari beberapa vertex yang telah diinputkan dengan 5 kali percobaan. Adapun hasil pengujian dari algoritma Kruskal dan algoritma Prim dapat dilihat pada Tabel 4.1.

Tabel 4.1. Hasil Pengujian Algoritma Kruskal dan Algoritma Prim No Banyak Vertex Running Time (ms)

Algoritma Kruskal

Running Time (ms) Algoritma Prim

1 18 0,015 0,016

2 24 0,016 0,015

3 30 0,031 0,031

4 36 0,063 0,032

5 40 0,031 0,078

Total 0,156 0,172

Rata-rata 0,031 0,034

(53)

Setelah mendapatkan hasil pengujian dari Tabel 4.1 maka dapat dibuat grafik perbandingan algoritma Kruskal dan algoritma Prim berdasarkan hasil pengujian.

Grafik dapat dilihat pada Gambar 4.10.

15 16 31

63

16 15 31 32 31

78

0 50 100

0 10 20 30 40 50

Waktu (ms)

Vertex

Running Time

Algoritma Kruskal Algoritma Prim

Gambar 4.10. Grafik Running time Algoritma Kruskal dan Algoritma Prim

Berdasarkan gambar 4.2 dapat disimpulkan bahwa algoritma Kruskal memiliki running time yang relative lebih sedikit di bandingkan algoritma Prim namun perbandingan tersebut perbedaannya tidak telalu jauh dengan rata-rata waktu perbedaan 3ms. Rata-rata waktu kedua algoritma dapat dilihat pada Gambar 4.11.

151

31 172

34

0 50 100 150 200

Waktu (ms)

Running Time

Algoritma Kruskal Algoritma Prim

Gambar 4.11. Grafik Perbandingan Total dan Rata-rata Running time Algoritma Kruskal dan Algoritma Prim

(54)

41

4.4. Kompleksitas Waktu

Kompleksitas waktu yang akan di uji adalah kompleksitas algoritma Kruskal dan algoritma Prim.

4.4.1. Kompleksitas algoritma Prim

Kompleksitas algoritma Prim dapat kita cari melalui algoritma yang ada dan melihat dari koding yang telah dibuat pada aplikasi yang dibuat oleh peneliti. Kompleksitas algoritma Prim dapat dilihat pada tabel 4.2.

Tabel 4.2. Kompleksitas Fungsi Proses Algoritma Prim

Langkah T(V,E) Koding

1 1 ArrayList<Sisi> result = new

ArrayList<Sisi>();

result.add(arraySisi.remove(0));

2 V for (int i = 0; i < source.size() -

2; i++)

a i for (int j = 0; j <arraySisi.size();

j++)

b 1 if (isBeside(result, s)) {

c 1 if (!isCircular(result, s)) { arraySisi.remove(s);

result.add(s);

Sehingga dapat kita lihat kompleksitas algoritma dari algoritma Prim adalah T(V,E) = 1 + V (i+1+1)

= 1 + + 2V = ½ V2 + 2 ½ V + 1

Sehingga kompleksitas algoritma Prim adalah O = (V2) dengan V menyatakan banyaknya vertex.

(55)

4.4.2. Kompleksitas algoritma Kruskal

Kompleksitas algoritma Kruskal dapat kita cari melalui algoritma yang ada dan melihat dari koding yang telah dibuat pada aplikasi yang dibuat oleh peneliti.

Kompleksitas algoritma Prim tidak jauh berbeda dengan algoritma Kruskal karena mempunyai banyak perulangan yang sama. Kompleksitas algoritma Kruskal dapat dilihat pada tabel 4.3.

Tabel 4.3. Kompleksitas Fungsi Proses Algoritma Kruskal

Langkah T(V,E) Koding

1 1 ArrayList<Sisi> result = new

ArrayList<Sisi>();

result.add(arraySisi.remove(0));

2 V while (result.size() <

source.size() - 1)

a i for (int j = 0; j <arraySisi.size();

j++)

b 1 if (isBeside(result, s)) {

c 1 if (!isCircular(result, s)) { result.add(arraySisi.remove(j));

Sehingga dapat kita lihat kompleksitas algoritma dari algoritma Kruskal adalah T(V,E) = 1 + V (i+1+1)

= 1 + + 2V = ½ V2 + 2 ½ V + 1

Sehingga kompleksitas algoritma Kruskal adalah O = (V2) dengan V menyatakan banyaknya vertex.

Notasi untuk big O adalah keadaan terburuk (worst case) artinya pencapaian T(n) paling maksimum atau tidak ada yang bisa lebih lambat dari T(n) yang didapat.

Notasi untuk big O bisa dikatakan jika algoritma dengan T(n) = Ɵ(n) artinya memiliki O sama dengan atau lebih besar dari Ɵ(n).

Notasi untuk big Ω adalah keadaan terbaik (best case) artinya pencapaian T(n) paling minimum atau tidak ada yang bisa lebih cepat dari T(n) yang didapat. Notasi

(56)

43

untuk big Ω bisa dikatakan jika algoritma dengan T(n) = Ɵ(n) artinya memiliki Ω sama dengan atau lebih kecil dari Ɵ(n). Notasi untuk big Ɵ adalah keadaan rata-rata (average case) artinya pencapaian nilai tengah atau T(n) berada di tengah antara O(n) dan Ω(n).

Notasi untuk big Ɵ bisa dikatakan jika algoritma dengan T(n) = Ɵ(n) artinya jika nilai O(n) dan Ω(n) sama maka dikatakan kompleksitas itu adalah Ɵ. Pada penelitian, algoritma Kruskal memiliki T(n) = Ɵ(n2) sedangkan algoritma Prim memiliki T(n) = Ɵ(n2).

Maka kompleksitas kedua algoritma sama sama memiliki Ɵ(n2) tetapi memiliki perbedaan running time yang tidak terlalu besar dikarenakan variabel yang berbeda algoritma Kruskal memiliki variabel yang lebih sedikit di bandingkan algoritma Prim sehingga algoritma Kruskal lebih cepat beberapa ms dalam melakukan proses minimum spanning tree.

(57)

BAB 5

KESIMPULAN DAN SARAN

Pada bab 5 ini akan disimpulkan, aplikasi yang telah dirancang telah dapat melakukan minimum spanning tree. Pada bab ini juga akan disajikan saran-saran yang bermanfaat bagi yang akan mengembangkan aplikasi minimum spanning tree dengan algoritma Kruskal dan algoritma Prim menjadi lebih baik.

5.1. Kesimpulan

Kesimpulan yang dapat di ambil dari penelitian ini adalah :

1. Aplikasi yang telah dirancang oleh peneliti telah dapat melakukan proses minimum spanning tree dengan algoritma Kruskal dan algoritma Prim.

2. Aplikasi yang telah dirancang dalam penelitian ini dapat melakukan proses minimum spanning tree dengan vertex yang dinamis.

3. Hasil pengujian waktu proses antara algoritma Kruskal dan Algoritma Prim adalah 0.31 detik dan 0.34 detik dengan perbedaan waktu rata-rata 0,03 detik.

4. Kompleksitas dari masing-masing algoritma Prim dan algoritma Kruskal adalah sama yaitu O(n2).

5.2. Saran

Saran yang dapat diberikan penulis untuk mengembangkan dan memperbaiki sistem adalah:

1. Waktu proses algoritma yang lebih efesien dan lebih akurat.

2. Aplikasi yang dirancang dapat dipakai pada wilayah yang lebih luas.

3. Aplikasi yang dirancang memiliki fitur yang sangat sederhana, sehingga diharapkan bisa dikembangkan menjadi lebih kompleks lagi.

Gambar

Gambar 2.6 Pohon Rentang Minimum Algoritma Kruskal
Diagram  Ishikawa,  Use  Case  Diagram,  Activity  Diagram,  Sequence  Diagram  dan  Flowchart
Gambar 3.2. Use Case Diagram
Tabel 3.1 Spesifikasi Use Case Home (input vertex)
+7

Referensi

Dokumen terkait

Bila pemeriksaan tersebut tidak dapat dilakukan di RS Nene Mallomo maka akan dibuatkan pengantar ke Rumah Sakit lain atau ke bagian laboratorium yang lebih lengkap

Hasil evaluasi teknis terlampir. Evaluasi harga dilakukan kepada penawaran yang memenuhi persyaratan administrasi dan persyaratan teknis. 1) Unsur-unsur yang dievaluasi yaitu:

Salah satu solusi yang biasanya dilakukan oleh para pelaku terutama industri adalah dengan melakukan pendekatan yang bersifat meminimalkan risiko dari sisi proses

Pengujian simultan yang dilakukan terhadap model penelitian diatas secara signifikan membuktikan adanya pengaruh secara simultan variabel Indeks Harga Saham Global ( Dow

Dengan demikian, prestasi siswa yang dimaksud dalam pembahasan skripsi ini adalah suatu bentuk keberhasilan yang diperoleh siswa setelah melalui proses belajar mengajar

Untuk menjawab rumusan masalah dan hipotesis yang telah dikemukakan terhadap peningkatan sikap peduli lingkungan antara siswa yang memperoleh pembelajaran dengan

model graf dengan bobot sesuai data yang diperoleh menggunakan Free Pascal, mensimulasikan model graf berbobot dengan algoritma Prim dan algoritma Kruskal oleh program

Dampak yang muncul dalam keluarga diantaranya keluarga panik saat salah satu anggota keluarga mendapat diagnosa filariasis, berusaha untuk mencari pertolongan ke