• No results found

Text ABSTRAK pdf

N/A
N/A
Protected

Academic year: 2020

Share "Text ABSTRAK pdf"

Copied!
39
0
0

Loading.... (view fulltext now)

Full text

(1)

PENGGUNAAN ALGORITMA SOLLIN YANG DIMODIFIKASI UNTUK MENYELESAIKAN MASALAH DEGREE CONSTRAINED

MINIMUM SPANNING TREE

(Skripsi)

Oleh

FEBI MUDIYANTO

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG

(2)

ABSTRACT

USING THE MODIFIED SOLLIN ALGORITHM TO SOLVE THE DEGREE CONSTRAINED

MINIMUM SPANNING TREE

Febi Mudiyanto

Given a connected weighted graph G(V,E), The Degree Constrained Minimum Spanning Tree (DCMST) is a problem of finding a spanning tree T of G with the minimum weight while also maintaining the degree requirement on every vertex. In this research, the algorithm for solving the DCMST is made based on Sollin’s algorithm. The algorithm is implemented using 300 random table problems and the result show that the performance of the algorithm against its lower bound is 8,33%.

(3)

ABSTRAK

PENGGUNAAN ALGORITMA SOLLIN YANG DIMODIFIKASI UNTUK MENYELESAIKAN MASALAH DEGREE CONSTRAINED

MINIMUM SPANNING TREE

Oleh

Febi Mudiyanto

Diberikan graf terhubung berbobot G (V, E), Degree Constrained Minimum

Spanning Tree (DCMST) adalah masalah untuk menentukan spanning tree T dari G dengan bobot minimum dan juga tetap mempertahankan persyaratan derajat pada tiap titik. Dalam penelitian ini, algoritma untuk menyelesaikan DCMST dibuat berdasarkan modifikasi Algoritma Sollin. Algoritma ini diimplementasikan menggunakan 300 masalah. Hasil penelitian menunjukkan bahwa kinerja algoritma adalah 8.33% bedanya dari batas bawah DCMST.

(4)

PENGGUNAAN ALGORITMA SOLLIN YANG DIMODIFIKASI UNTUK MENYELESAIKAN MASALAH DEGREE CONSTRAINED

MINIMUM SPANNING TREE

Oleh

FEBI MUDIYANTO

Skripsi

Sebagai Salah Satu Syarat untuk Memperoleh Gelar SARJANA MATEMATIKA

Pada

Jurusan Matematika

Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Lampung

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS LAMPUNG

(5)
(6)
(7)
(8)

RIWAYAT HIDUP

Penulis bernama lengkap Febi Mudiyanto, anak pertama dari dua bersaudara yang

dilahirkan di Gedung Ratu pada tanggal 18 Februari 1999 oleh pasangan Bapak

Radiyanto dan Ibu Murniati.

Penulis telah menempuh pendidikan di SD Negeri 02 Gedung Ratu pada tahun

2004-2010, setelah itu melanjutkan sekolah di SMP N 01 Anak Ratu Aji pada tahun

2010-2013, dan bersekolah di SMA N 01 Terbanggi Besar pada tahun 2013-2016.

Pada tahun 2016 penulis terdaftar sebagai mahasiswa S1 Matematika Fakultas

Matematika dan Ilmu Pengetahuan Alam Universitas Lampung melalui Jalur

SBMPTN.

Pada Januari 2019 penulis melaksanakan Kerja Praktik (KP) di PT. Bimandiri Agro

Sedaya, Lembang, Bandung. Pada September tahun 2019 melakukan Kuliah Kerja

(9)

KATA INSPIRASI

“Janganlah engkau bersedih, sesungguhnya Allah Bersama kita” (QS: At-Taubah, 40)

“Nothing is impossible”

(10)

Karya ini aku persembahkan untuk keluargaku tersayang,

Bapak, Mamak dan adek, serta Almamater tercinta

(11)

SANWACANA

Alhamdulillah puji syukur kepada Allah SWT yang telah melimpahkan segala

rahmat dan hidayah-Nya sehingga skripsi ini dapat diselesaikan. Shalawat serta

salam semoga tetap tercurah kepada junjungan besar Nabi Muhammad SAW,

penuntun jalan bagi seluruh umat manusia. Skripsi ini berjudul “Penggunaan

Algoritma Sollin yang Dimodifikasi untuk Menyelesaikan Masalah Degree

Constrained Minimum Spanning Tree”, disusun sebagai salah satu syarat untuk

memperoleh gelar Sarjana Matematika (S.Mat.) di Jurusan Matematika Fakultas

Matematika dan Ilmu Pengetahuan Alam Universitas Lampung.

Dengan ketulusan hati penulis ingin mengucapkan terima kasih kepada :

1. Ibu Prof. Dra. Wamiliana, MA., Ph.D., selaku Dosen Pembimbing I, dan Ketua

Jurusan Matematika yang telah memberikan masukan, ide, kritik, dan saran

kepada penulis selama penyusunan skripsi ini.

2. Bapak Dr. rer. nat. Akmal Junaidi, M.Sc., selaku Dosen Pembimbing II yang

telah memberikan arahan dan masukannya selama penyusunan skripsi ini.

3. Bapak Amanto, S.Si., M.Si., selaku Dosen Penguji, terima kasih atas

kesediaannya untuk menguji dan memberi saran yang baik dalam skripsi ini.

4. Bapak Drs. Nusyirwan, M.Si., selaku Dosen Pembimbing Akademik yang

(12)

5. Bapak Drs. Suratman, M.Sc., selaku Dekan FMIPA Universitas Lampung.

Seluruh Dosen dan Karyawan Jurusan Matematika Fakultas Matematika dan

Ilmu Pengetahuan Alam Universitas Lampung.

6. Bapak Radiyanto dan Ibu Murniati, orang tuaku tercinta serta Dwi Novitasari,

adikku tersayang yang tak pernah berhenti memberi semangat, doa, dorongan,

nasehat dan kasih sayang serta pengorbanan yang tak tergantikan hingga

penulis selalu kuat menjalani setiap rintangan yang ada di setiap perjalanan

hidup penulis.

7. Rita Anggraini, yang selalu menemani masa-masa akhir perkuliahan dan

mendampingi penulis dalam penyelesaian skripsi ini.

8. Kawan-kawan angkatan 2016, serta abang dan yunda jurusan matematika yang

memberikan bantuan, nasihat serta dukungannya.

9. Teman-teman UKM Universitas yang mewarnai kisah-kisah di dunia

perkuliahan.

10. Almamater tercinta Universitas Lampung.

Penulis

(13)

DAFTAR ISI

Halaman

DAFTAR GAMBAR ... xiv

DAFTAR TABEL ... xv

I. PENDAHULUAN 1.1 Latar Belakang dan Masalah ... 1

1.2 Batasan Masalah ... 3

1.3 Tujuan Penelitian ... 4

1.4 Manfaat Penelitian ... 4

II. TINJAUAN PUSTAKA 2.1 Konsep Dasar Teori Graf ... 5

2.2 Minimum Spanning Tree dan Turunannya ... 9

2.3 Algoritma Sollin... 10

2.4 Python ... 11

III. METODE PENELITIAN 3.1 Waktu dan Tempat Penelitian ... 13

3.2 Bahan dan Alat ... 13

(14)

IV. PEMBAHASAN

4.1 Data yang Digunakan ... 20 4.2 Algoritma Penentuan DCMST ... 20 4.3 Source Code untuk Load Data dan Representasi Graf dalam Bentuk

Matriks Adjacent ... 21 4.4 Source Code untuk Menentukan DCMST Menggunakan Algoritma

Modified Sollin... 22 4.5 Pengujian dan Hasil ... 26

V. KESIMPULAN

3.1 Kesimpulan ... 37 3.2 Saran ... 37

(15)

DAFTAR GAMBAR

Gambar Halaman

1. Contoh graf berbobot ... 7

2. Contoh Tree ... 7

3. Tampilan data folder orde 10 file 1.dat di Python ... 14

4. Visualisasi label X dan Y dari data folder orde 10 file ‘1.dat’ ... 15

5. Tampilan matriks adjacent dari data folder orde 10 file ‘1.dat’ ... 16

6. Isi file orde 10 file “1.dat” ... 18

7. Representasi graf lengkap untuk file orde 10 ... 18

(16)

DAFTAR TABEL

Tabel Halaman

1. Hasil penyelesaian MST dan DCMST pada orde 10 ... 26

2. Hasil penyelesaian MST dan DCMST pada orde 20 ... 27

3. Hasil penyelesaian MST dan DCMST pada orde 30 ... 28

4. Hasil penyelesaian MST dan DCMST pada orde 40 ... 29

5. Hasil penyelesaian MST dan DCMST pada orde 50 ... 30

6. Hasil penyelesaian MST dan DCMST pada orde 60 ... 31

7. Hasil penyelesaian MST dan DCMST pada orde 70 ... 31

8. Hasil penyelesaian MST dan DCMST pada orde 80 ... 32

9. Hasil penyelesaian MST dan DCMST pada orde 90 ... 33

10. Hasil penyelesaian MST dan DCMST pada orde 100 ... 34

(17)

1

I. PENDAHULUAN

1.1 Latar Belakang dan Masalah

Ilmu matematika memberikan dampak yang sangat besar dalam perkembangan

teknologi saat ini. Matematika sebagai The Mother of Science telah

menyumbangkan teori-teorinya dalam menyelesaikan permasalahan kehidupan

sehari-hari. Salah satu cabang ilmu matematika yang memiliki peran terhadap

pemecahan masalah adalah Teori Graf.

Menurut Deo (1989), Teori Graf memiliki penerapan yang luas pada

penerapan-penerapan di bidang teknik, fisika, sosial, ilmu biologi, ilmu bahasa serta banyak

bidang lainnya. Teori Graf digunakan untuk merepresentasikan suatu komponen

dan hubungan antar komponen.

Optimisasi biasa dilakukan untuk mendapatkan suatu nilai optimum (maksimum

atau minimum) dari suatu variabel keputusan dengan batasan-batasan tertentu

(Winston, 2003). Misalkan pemerintah suatu kota akan membangun jaringan pipa

air. Jaringan pipa ini menghubungkan setiap kelurahan yang direpresentasikan

dengan graf, dimana himpunan titik (vertex) mewakili kelurahan-kelurahan yang

(18)

2

setiap kelurahan serta bobot mewakili panjang pipa atau biaya yang diperlukan.

Permasalahan yang terjadi yaitu pemerintah ingin setiap kelurahan terhubung,

namun dengan total bobot minimum. Masalah tersebut dalam teori graf dan

optimisasi, disebut dengan istilah Minimum Spanning Tree (MST) yaitu penentuan

spanning tree yang memiliki bobot minimum dari suatu graf. Terdapat dua

algoritma yang umum digunakan dalam penyelesaian MST yaitu Algoritma Prim

dan Algoritma Kruskal. Walaupun demikian, Algoritma yang pertama kali

dikembangkan untuk menyelesaikan masalah MST adalah algoritma yang

dikembangkan oleh Bӧruvka yang kemudian lebih dikenal sebagai Algoritma

Sollin.

Permasalahan jaringan pipa air dapat berkembang menjadi suatu masalah baru jika

terdapat batasan-batasan lainnya. Misalnya dalam jaringan pipa-pipa tersebut

memiliki batasan maksimal jumlah pipa yang dapat terhubung di setiap kelurahan.

Batasan tersebut merupakan batasan derajat disetiap titiknya yang disebut dengan

Degree Constrained, sehingga MST tersebut menjadi DCMST (Degree

Constrained Minimum Spanning Tree). Garey dan Jhonson (1979) menunjukkan

bahwa permasalahan DCMST ini termasuk dalam kelas sulit diselesaikan secara

komputasi (NP-Complete). Wamiliana dan Caccetta (2013) menyelesaikan

masalah DCMST menggunakan algoritma Modified CW1 sampai pada 500 titik.

Wamiliana dkk (2014) membuktikan perbandingan kompleksitas dari Algoritma

(19)

3

pada sebuah jaringan pipa air, namun hanya diimplementasikan Algoritma Sollin

untuk menyelesaikan masalah Minimum Spanning Tree (MST), bukan DCMST.

DCMST dapat diselesaikan dengan menggunakan MST yang telah dimodifikasi.

Oleh karena itu, untuk mendapatkan DCMST, dapat digunakan Algoritma Prim,

Kruskal maupun Sollin yang dimodifikasi. Pada penelitian ini akan digunakan

Algoritma Sollin yang dimodifikasi untuk menentukan DCMST.

Persoalan dalam penelitian ini akan diselesaikan dengan bantuan program komputer

yang ditulis dalam bahasa pemprograman Python. Python merupakan sebuah

bahasa pemprograman berbasis object-oriented. Guido von Rossum, merancang

dan mengembangkan bahasa pemprograman Python sebagai bahasa yang mudah

dipelajari. Prinsip-prinsip yang diterapkan oleh Guido adalah menggabungkan

kemampuan dan kapabilitas dengan disertai sintaksis kode yang sangat jelas, serta

dilengkapi dengan fungsionalitas pustaka yang komprehensif. Python dapat

digunakan untuk berbagai komputasi matematika, operasi matriks serta dapat

berjalan diberbagai platform sistem operasi. Bahasa pemprograman Python dapat

dengan mudah didapatkan dan dipergunakan secara bebas dan bersifat open source.

Python akan sangat membantu dalam proses komputasi Algoritma Modified Sollin,

sehingga penulis tertarik untuk menyelesaikan DCMST dengan Algoritma

Modified Sollin menggunakan bahasa pemprograman Python.

1.2 Batasan Masalah

Pada penelitian ini masalah dibatasi hanya pada penentuan DCMST dengan

(20)

4

1.3 Tujuan Penelitian

Tujuan dari penelitian yang dilakukan adalah sebagai berikut:

1. Mengembangkan Algoritma Modified Sollin untuk penyelesaian DCMST.

2. Mengembangkan source code untuk poin 1.

3. Mengimplementasikan source code pada poin 2 menggunakan data yang telah

dibangkitkan.

1.4 Manfaat Penelitian

Manfaat dari penelitian ini adalah sebagai salah satu gambaran untuk penyelesaian

suatu masalah optimisasi jaringan dalam kehidupan sehari-hari. Masalah

dikehidupan sehari-hari dapat berupa seperti yang telah diuraikan sebelumnya,

ketika pemerintah menginginkan untuk membangun jaringan pipa air yang

terhubung pada setiap kelurahan, tetapi, terdapat beberapa kendala seperti berikut:

1. Keterbatasan penghubung antar bangunan, yaitu berupa batas maksimal jumlah

pipa yang dapat terhubung disetiap kelurahan (degree constrained)

2. Setiap kelurahan harus terhubung dengan biaya yang minimum (minimum

spanning tree).

Pada proses instalasi jaringan pipa air yang sebenarnya, permasalahan topologi

(21)

5

II. TINJAUAN PUSTAKA

Bab ini menjelaskan tentang istilah-istilah yang digunakan pada penelitian ini.

2.1 Konsep Dasar Teori Graf

Pada Subbab ini istilah-istilah diambil dari Deo (1989).

Graf

Graf G(V,E) adalah pasangan terurut (V,E) dengan V adalah himpunan berhingga

dari elemen yang disebut vertex atau titik, V ≠

ø

, dan E adalah himpunan

garis-garis atau edge yang menghubungkan titik-titik di V. Loop adalah garis yang titik

awal dan akhirnya adalah titik yang sama.

Degree (Derajat)

Pada graf G, misalkan v adalah titik yang terdapat dalam V, maka banyaknya garis

yang menempel pada titik v dan garis suatu loop dihitung dua kali merupakan

(22)

6

Walk (Perjalanan), Path (Lintasan) dan Circuit (Sirkuit)

Barisan titik-titik yang terhubung dan garis berselang seling, diawali dari titik v dan

berakhir pada w dengan syarat disetiap garis menempel pada titik sebelum dan

sesudahnya, merupakan suatu walk dari v ke w. Walk dengan panjang n dan dari v

ke w dapat ditulis sebagai berikut: v0 e1 v1 e2 v2 e3…vn-1 en vn dengan v0 = v; vn =w;

vi-1 dan vi merupakan titik-titik diujung garis ei.

Path yang memiliki panjang n dari v ke w merupakan walk dari v ke w dengan garis

yang berbeda. Path dari v ke w dapat ditulis sebagai v = v0 e1 v1 e2 v2 e3 … vn-1 en

vn = w dengan ei ≠ ej.untuk i≠ j.

Path yang dimulai serta diakhiri pada titik yang sama adalah sirkuit dengan panjang

n. Sirkuit merupakan path yang memiliki bentuk v0 e1 v1 e2 v2 e3 …

vn-1 en vn dengan v0 = vn .

Graf Terhubung

Sebuah graf G disebut terhubung jika ada sekurang-kurangnya satu path untuk

setiap pasangan titik di G.

Graf Berbobot

Graf berbobot merupakan graf yang memiliki nilai atau bobot pada setiap

(23)
[image:23.595.250.377.93.214.2]

7

Gambar 1. Contoh graf berbobot

Tree (Pohon)

Tree (Pohon) didefinisikan sebagai graf terhubung yang tidak mengandung sirkuit,

sedangkan forest (hutan) merupakan himpunan dari beberapa tree yang tidak saling

terhubung. Kelima pernyataan tentang tree ini adalah ekuivalen :

1. G terhubung dan tidak mengandung sirkuit, atau

2. G tidak mengandung sirkuit dan mempunyai n-1 garis, atau

3. G mempunyai n-1 garis dan terhubung.

4. Ada tepat satu path diantara setiap pasangan titik di G, atau

5. G adalah suatu graf yang terhubung minimal.

Gambar 2. Contoh Tree

a b c d e 4 6 3 4 2 3 a

b e

[image:23.595.247.376.573.689.2]
(24)

8

Gambar 2, merupakan salah satu contoh dari Tree. Gambar tersebut adalah graf

yang terhubung dan tidak memiliki sirkuit, serta memiliki n-1 garis.

Subgraf

Graf g dikatakan sebuah Subgraf dari graf G jika setiap titik dan setiap garis dari g

ada dalam G, dan setiap garis dari g memiliki titik-titik ujung yang sama dalam g

seperti pada G.

Spanning Tree (Pohon Rentangan)

Suatu Tree T dapat dikatakan suatu spanning tree dari sebuah graf terhubung G,

jika T merupakan subgraf dari G dan T mengandung setiap titik dari G

Adjacent (Bertetangga) dan Incidence (Menempel)

Jika titik vi merupakan titik ujung dari garis ej maka vi dan ej dapat dikatakan incident satu sama lain. Dua titik dapat dikatakan adjacent jika kedua titiktersebut

merupakan titik akhir dari garis yang sama, dan dua garis yang tidak paralel

dikatakan adjacent jika kedua garis tersebut incident pada satu titik.

Matriks Adjacent

Matriks adjacent dari sebuah graf G dengan n titik dan tanpa garis paralel adalah

(25)

9

xij = 1, jika ada sebuah garis diantara titik i dan titik j, dan

xij = 0, jika tidak ada garis diantara titik i dan titik j.

Matriks adjacent pada graf berbobot, maka nilai xij adalah nilai bobot garis diantara

titik i dan titik j, dan xij = 0 jika tidak terdapat garis diantara titik i dan titik j. Misal

graf pada Gambar 1 memiliki matriks adjacent sebagai berikut:

𝑎 𝑏 𝑐 𝑑 𝑒

𝑎 𝑏 𝑐 𝑑 𝑒 [ 0 3 0 0 4

3 0 0 4

0 4 0 6

4 0 6 0 2 0 2 0 0 3 3 0]

2.2 Minimum Spanning Tree dan Turunannya

Tree (pohon) merupakan suatu graf terhubung yang tidak mengandung sirkuit.

Contoh tree dapat dilihat pada Gambar 2. Himpunan tree yang terpisah satu sama

lain disebut dengan forest (hutan). Titik (vertex) berderajat 1 dinamakan daun (leaf)

atau disebut juga titik pendant atau titik terminal, sedangkan titik yang memiliki

derajat lebih dari 1 dinamakan titik cabang (branch node) atau titik internal

(internal node). Misal pada Gambar 2 , titik a, e, g, j, h, dan k merupakan daun dan

titik b, c, d, f, i adalah titik cabang.

Menurut Deo (1989), di dalam tree memiliki sifat-sifat sebagai berikut:

1. Garis antara dua titik bersifat tunggal.

2. Jumlah titik lebih banyak daripada jumlahgaris.

(26)

10

Minimum Spanning Tree (MST)

Menurut Munir (2009), jika terdapat G, suatu graf berbobot, maka bobot spanning

tree T dari G didefinisikan sebagai jumlah bobot setiap garis di T. Spanning tree

yang berbeda dapat memiliki jumlah bobot yang berbeda pula. Diantara semua

spanning tree pada graf G, spanning tree yang memiliki bobot terkecil atau

minimum didefinisikan sebagai Minimum Spanning Tree (MST). MST ini memiliki

terapan yang luas dalam permasalahan riil, misalnya masalah jaringan listrik dan

jaringan PDAM.

Degree Constrained Minimum Spanning Tree (DCMST)

DCMST adalah permasalahan yang dikembangkan dari masalah MST, yaitu dengan

menambahkan kendala degree (derajat) pada MST. Kondisi pembatasan jumlah

degree yang dimiliki oleh suatu titik disebut dengan Degree Constrained. DCMST

merupakan permasalahan untuk menemukan MST dari graf G dengan degree pada

setiap titiknya dibatasi persamaan, di≤bi (Caccetta dan Hill, 2001).

2.3 Algoritma Sollin

Konsep awal dari Algoritma Sollin adalah menghubungkan setiap titik dengan edge

atau garis dengan nilai terendah di graf G. Fase awal dari Algoritma Sollin adalah

menghubungkan tiap titik dengan garis terendah yang menempel dengannya,

kemudian menggabungkan garis yang telah terpilih. Algoritma Sollin

(27)

11

Inisialisasi: Graf G dengan n titik dan m garis.

Langkah-langkah:

1. Daftarkan semua titik yang ada di graf G

2. Pilih garis dengan bobot terkecil yang menempel pada setiap titik. Jika terdapat

dua garis dengan bobot terkecil yang sama, pilih satu. (proses ini akan

menghasilkan forest yang merupakan gabungan dari k komponen dari graf G)

3. Simpan garis yang terpilih dalam suatu himpunan (set), dengan ketentuan bahwa

titik yang terhubung di dalam himpunan yang sama. Banyaknya himpunan

menunjukkan banyaknya k komponen yang terbentuk.

4. Tentukan garis dengan bobot terkecil yang berada di luar masing-masing

komponen, yang menghubungkan dua komponen. Gabungkan dua komponen

yang baru terhubung tersebut, menjadi satu komponen, sehingga jumlah

komponen menjadi k-1.

5. Ulangi langkah 4 sampai k=1.

6. Hapus garis yang tidak terpakai.

7. Selesai, MST didapat.

2.4 Python

Python merupakan bahasa pemrograman yang bersifat gratis dan open source.

Python memiliki sintaksis kode yang jelas, mudah dipahami, memiliki struktur data

yang kuat, dan merupakan bahasa pemrograman yang dinamis serta biasa

digunakan untuk software quality, developer productivity, program portability, dan

component integration (Lutz, 2010). Python adalah bahasa pemrograman yang

(28)

12

ada. Bahasa pemrograman Python telah digunakan untuk mengembangkan

berbagai perangkat lunak, seperti internet scripting, system programming, user

interfaces, product customization, dan numberic programming (Harismawan dkk,

2018).

Menurut Lutz (2010), Bahasa pemrograman Python memiliki beberapa fitur yang

dapat digunakan dalam pengembangan perangkat lunak. Berikut adalah fitur yang

dimiliki oleh bahasa pemrograman Python:

1. Multi Paradigm Design

2. Open Source

3. Simplicity

4. Library Support

5. Portability

6. Extendable

(29)

13

III. METODE PENELITIAN

3.1 Waktu dan Tempat Penelitian

Penelitian ini dilakukan di Jurusan Matematika, Fakultas Matematika dan Ilmu

Pengetahuan Alam, Universitas Lampung tahun 2019.

3.2 Bahan dan Alat

Bahan yang dibutuhkan untuk mendukung penelitian ini adalah data masalah dari

berbagai literatur mengenai Matriks, Algoritma Sollin serta implementasinya.

Alat yang digunakan dalam penyelesaian penelitian ini adalah:

1. Perangkat keras Notebook Lenovo Ideapad 110, dengan spesifikasi:

a. Processor Intel Core i5-6200U CPU 2.3 GHz

b. SSD 120 GB

c. RAM 4 GB

2. Perangkat lunak (Software)

a. Windows 10 Pro 64-bit

(30)

14

3.3 Alur Penelitian

Langkah-langkah yang ditempuh dalam penelitian ini adalah:

1. Mengumpulkan bahan literatur serta studi kepustakaan.

2. Membuat program untuk load data.

Data penelitian perlu dimasukkan ke Python, sehingga dapat dilakukan

proses selanjutnya. Berikut adalah source code untuk load data pada editor

Python :

import numpy as np

data=np.loadtxt('F:\\Penelitian

Skripsi\\data\\10\\1.dat')

data=data.astype(int)

data=data.reshape(len(data),1)

Tampilan data yang telah dimasukkan ke Python terlihat pada Gambar 3

berikut:

Gambar 3. Tampilan data folder orde 10 file 1.dat di Python.

3. Membuat program untuk menghitung banyaknya titik (vertex) yang

digunakan.

Informasi yang didapat dari data penelitian adalah bobot setiap garis, maka

perlu dihitung banyaknya titik yang digunakan. Sedangkan penelitian ini

menggunakan graf lengkap, sehingga setiap titik dihubungkan dengan satu

garis ke setiap titik lainnya dan misalkan 𝑥 adalah banyaknya garis,

banyaknya titik dapat dihitung dengan Persamaan 3.1 berikut:

𝑛 =1+ √1+4(2𝑥)

(31)

15

import math

#function untuk menghitung jumlah titik graf

def jumlahtitik(data):

jumlah_garis=len(data)

n=(1+math.sqrt(1+(8*jumlah_garis)))/2

return int(n)

n=jumlahtitik(data)

4. Membuat program untuk memberikan label pada setiap titik yaitu X dan Y

sebagai ‘sumber’ dan ‘tujuan’.

Data yang telah dimasukkan dalam Python perlu didefinisikan sebagai

bobot dari titik X dan Y, sebagai label ‘sumber’ dan ‘tujuan’. Gambar 4

[image:31.595.307.345.327.719.2]

merupakan visualisasi label X dan Y dari data folder orde 10 file ‘1.dat’.

(32)

16

Source code program Python,

def label(n):

c=list(range(n,0,-1)) d=list(range(1,n+1)) x_y=[[],[]]

for t in d:

i=1 a=t+1

while (i < c[t-1]):

x_y[0].append(t) x_y[1].append(a) i += 1

a += 1

return np.asarray(x_y).T

x_y=label(n)

5. Membuat program untuk memasukkan bobot untuk setiap X dan Y,

sehingga akan diperoleh tabel yang mengandung nilai sumber, tujuan, dan

bobot.

Bobot yang telah dimasukkan diawal, kemudian digabungkan dengan label

yang dibuat pada langkah 4. Hasilnya adalah tabel dengan 3 kolom yaitu

sumber, tujuan, dan bobot. Berikut adalah source code program Python:

tab=np.concatenate((x_y,data),axis=1)

6. Membuat program untuk merubah tabel menjadi bentuk matriks adjacent.

[image:32.595.147.335.105.271.2]

Matriks adjacent memiliki entri bernilai mij=mji seperti yang terlihat pada

[image:32.595.225.422.615.711.2]
(33)

17

Source code pada Python,

def matriks_adjacent(tab,n):

m=np.zeros((n,n))

for i in range(len(tab)):

a=int(tab[i][0]) b=int(tab[i][1]) m[a-1,b-1]=tab[i][2] m += m.T

return m

m=matriks_adjacent(tab,n)

7. Membuat program Algoritma Sollin fase 1, untuk mendapatkan beberapa

komponen graf.

Algorima Sollin pada awalnya mencari garis terpendek dari setiap titiknya,

kemudian dihubungkan menjadi k komponen graf. Modifikasi yang

dilakukan pada penelitian ini adalah derajat setiap titiknya dibatasi dengan

persamaan 1 ≤ d(v) ≤ 3, dan jika pada fase 1 ini derajat titik pada komponen

tersebut atau d(v) > 3, maka reduksi garis dengan jarak terpanjangnya.

8. Membuat program Algoritma Sollin untuk DCMST serta menghubungkan

setiap komponen.

Beberapa komponen yang dihasilkan pada langkah 7 dihubungkan setiap

komponennya, namun dengan tetap membatasi pada 1 ≤ d(v) ≤ 3.

9. Mengimplementasikan dengan data yang telah dibangkitkan.

Data yang digunakan merupakan data dari penelitian yang telah dilakukan

oleh Wamiliana dkk. (2015). Data tersebut adalah data yang dibangkitkan

secara acak menggunakan distribusi uniform dan terbagi menjadi 10 folder

dengan masing-masing memiliki 30 file dengan ekstensi “.dat”. Salah satu

(34)

18

data tersebut direpresentasikan dalam bentuk graf lengkap, seperti yang

[image:34.595.239.424.519.697.2]

terlihat pada gambar 7.

Gambar 6. Isi file orde 10 file “1.dat”

(35)

19

[image:35.595.229.392.128.726.2]

Flowchart (diagram alur) penelitian, dapat dilihat pada Gambar 8 berikut ini:

Gambar 8. Flowchart Penelitian

Mulai

Studi Kepustakaan

Membuat algoritma menentukan DCMST

Membuat source code untuk

load data dan representasi graf dalam bentuk matriks

adjacent

Membuat source code untuk

menentukan DCMST

Mengimplementasikan source code dengan data yang telah dibangkitkan

(36)

37

V. KESIMPULAN

Penelitian pengembangan Algoritma Modified Sollin dalam menyelesaikan

masalah Degree Constrained Minimum Spanning Tree (DCMST) telah selesai

dilakukan. Berikut ini merupakan kesimpulan dan saran yang dapat digunakan

sebagai rujukan untuk penelitian selanjutnya

5.1 Kesimpulan

Algoritma Sollin yang dimodifikasi (Algoritma Modified Sollin) dapat digunakan

dalam penyelesaian masalah DCMST dan setelah dilakukan implementasi

mendapatkan hasil yang tidak jauh berbeda dari solusi penyelesaian MST dengan

Algoritma Sollin. Solusi MST dan solusi DCMST menghasilkan rasio

rata-rata |DCMST−MST

MST | 𝑥 100% adalah 8.335%. Rasio terendah yaitu 4.879% pada orde

10 dan rasio tertinggi yaitu 9.801% pada orde 70.

5.2 Saran

(37)

38

1. Menambahkan fitur menampilkan graf menggunakan libraryNetworkx dalam

Python untuk memudahkan melihat bentuk graf solusi.

2. Membuat modifikasi lain dengan mengubah algoritma pengabungan

(38)

39

DAFTAR PUSTAKA

Caccetta, L. and S. P. Hill. 2001. A Branch and Cut Method for the Degree

Constrained Minimum Sapnning Tree Problem. Networks. 37(2):74-83.

Deo, N. 1989. Graph Theory with Applications to Engineering and Computer

Science. Prentice Hall Inc., New York.

Garey, M.R. dan D.S. Johnson. 1979. Computer and Intractability, A Guide to

The Theory of NP-Completeness. Freemann, San Fransisco.

Lubis, A. S. 2017. Implementasi Algoritma Sollin dalam Menentukan Minimum

Spanning Tree pada Pembuatan Jalur Pipa Air di Universitas Sumatera Utara [Skripsi]. Medan, Universitas Sumatera Utara.

Harismawan, A. F, Kharisma, A. P., dan Afirianto, T. 2018. Analisis

Perbandingan Performa Web Service Menggunakan Bahasa Pemrograman

Python, PHP, dan Perl pada Client Berbasis Android. Jurnal

Pengembangan Teknologi Informasi dan Ilmu Komputer. 2(1): 237-245

Lutz, Mark. 2010. Programming Python. Edisi keempat. O’Reilly Media Inc.,

Sebastopol.

Munir, Rinaldi. 2009. Matematika Diskrit. Edisi Ketiga. Informatika, Bandung.

Wamiliana, dan L. Caccetta. 2013. The Modified CW1 Algorithm For The

Degree Restricted Minimum Spanning Tree Problem. International Jurnal

(39)

40

Wamiliana, Kurniawan D., dan Shavitri N.F.C. 2014. Perbandingan

Kompleksitas Algoritma Prim, Algoritma Kruskal, Dan Algoritma Sollin

Untuk Menyelesaikan Masalah Minimum Spanning Tree. Jurnal

Komputasi. 2(1): 60-67.

Wamiliana, Faiz A. M. Elfaki, Mustofa Usman, and M. Azram, 2015. Some Greedy Based Algorithms for Multi Periods Degree Constrained Minimum

Spanning Tree Problem. ARPN Journal of Engineering and Applied

Science. Vol. 10 (21): 10147-10152.

Winston, Wayne L. 2003. Operations Research Applications and Algorithms.

Figure

Gambar 1. Contoh graf berbobot
Gambar 4.  Visualisasi label X dan Y dari data folder orde 10 file ‘1.dat’
Gambar 5 berikut:
Gambar 6.  Isi file orde 10 file “1.dat”
+2

References

Related documents

valves in the Salvador record (Figure 4.1 0), absence of Cythridella boldii valves in Castilla (Figure 4.9), and the sharp decline in herbaceous pollen types in both

Thus, we show that if there is cooperation among the exporters only and the product-market is characterised by quantity competition, higher cooperation among

En este trabajo combinamos la aplicación de conceptos de lingüística cognitiva y de teoría de la comunicación de masas para analizar un corpus de titulares de noticias de

107 However, in light of the fact that (1) anti-fraud provisions apply to publicly and privately traded companies, (2) Dodd-Frank allows private company whistleblowers to

SOUTH DISTRICT LEGAL SERVICES AUTHORITY FINAL LIST OF RECOMMENDED ADVOCATES.. SESSIONS COURTS

The circumflex branch of the left coronary artery descends in the anterior interventricular groove and passes around the apex of the heartb. Coronary arteries can be classified

Head of the Management and Strategy Department (Lille, Nice) (2005-2006) Deputy Head of the Management and Strategy Department (Nice) (2002-2005) Programme coordinator of the MSc

Assuming that  (the unexpected change rate of future mortality rate and interest rate) are 5%, 10%, and 15%, Table 2 represents the optimal units of life insurance to hedge