Penerapan Algoritma Maximum-Flow Dalam Optimasi Volume Air Pada Pipa S-1 Ilmu Komputer USU

(1)

SKRIPSI

NURUL HIKMAH NASUTION

101401009

PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(2)

PENERAPAN ALGORITMA MAXIMUM-FLOW DALAM

OPTIMASI VOLUME AIR PADA PIPA S-1 ILMU

KOMPUTER USU

SKRIPSI

Diajukan Untuk Melengkapi Tugas Dan Memenuhi Syarat Mencapai

Ijazah Sarjanah Komputer

NURUL HIKMAH NASUTION

101401009

PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN 2015


(3)

PERSETUJUAN

Judul : PENERAPAN ALGORITMA MAXIMUM-FLOW DALAM OPTIMASI VOLUME AIR PADA PIPA

S-1 ILMU KOMPUTER USU. Kategori : SKRIPSI

Nama : NURUL HIKMAH NASUTION Nomor Induk Mahasiswa : 101401009

Program Studi : S-1 ILMU KOMPUTER Departemen : ILMU KOMPUTER

Fakultas : FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

Komisi Pembimbing:

Dosen PembimbingII Dosen Pembimbing I

M.Andri Budiman, ST, M Comp.Sc.MEM Prof. Dr. Muhammad Zarlis NIP. 197510082008011011 NIP. 195707011986011003

Diketahui/Disetujuioleh

Program Studi S1 Ilmu Komputer Ketua,

Dr. PoltakSihombing, M.Kom NIP.19620217 199103 1 001


(4)

PERNYATAAN

PENERAPAN ALGORITMA

MAXIMUM-FLOW

DALAM

OPTIMASI VOLUME AIR PADA ALIRAN PIPA S-1 ILMU

KOMPUTER USU.

SKRIPSI

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

Medan, Januari 2015

Nurul Hikmah Nasution 101401009


(5)

PENGHARGAAN

Puji syukur kehadirat Allah SWT yang telah memberikan Rahmat dan Hidayah kepada penulis sehingga penulis dapat menyelesaikan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, pada Program Studi S-1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Sumatera Utara.

Dalam penulisan ini tidak lupa penulis mengucapkan terima kasih kepada pihak-pihak yang telah banyak memberi motivasi hingga pada akhirnya penulis mampu menyelesaikan tugas akhir ini dengan baik. Oleh karena itu penulis mengucapkan banyak terima kasih kepada :

1. Allah SWT segala puji bagi-NYA yang kalau sudah Berkehendak cukup bagi-NYA mengatakan jadi(Kun) maka jadilah(Fayakun).Sholawat dan salam untuk Nabi Muhammad SAW agar menjadi do’a supaya semua bisa tetap istiqomah.

2. Ayahanda Drs.Abdul Rahman Nst, MM dan Ibunda Jumilawati MK S,pdI yang menjadi motivasi penulis untuk sukses dan selalu memberikan dukungan baik materi maupun non-materi,perhatian serta doa tanpa henti kepada penulis.

3. Bapak Prof.Dr.dr. Syahril Pasaribu, DTM&H, MSc(CTM), Sp.A(K) selaku Rektor Universitas Sumatera Utara.

4. Bapak Prof. Muhammad Zarlis selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.

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

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

7. Bapak Prof. Dr.Muhammad Zarlis selaku Dosen Pembimbing I yang telah banyak meluangkan waktunya dalam memberikan masukkan-masukkan kepada penulis.


(6)

8. Bapak M. Andri B, ST,M.Comp.Sc,MEM selaku Dosen Pembimbing II yang telah banyak meluangkan waktunya dalam memberikan masukkan-masukkan kepada penulis.

9. Bapak Dr.Poltak Sihombing,M.Kom selaku dosen Penguji I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

10.Ibu Dian Rachmawati,S.Si,M.Kom selaku dosen Penguji II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.

11.Semua dosen serta pegawai di Program Studi S1 Ilmu Komputer Fasilkom-TI USU.

12.Abangda tercinta Akbar Syahdan Nst , Adik tercinta Ahmad Yahya Usman Nst, Fajar Rahmah Nst, Khairul Ansyor Nst, dan Amin firmansyah Nst yang selalu mendoakan penulis.

13.Abang Heryprastia, Muhammad irfan, Azwar Ammar, Arif Julyardi, Muhammad Al-gozali, kakak Novita sari dan kakak santi. yang selalu memberikan saran serta motivasi dalam penulisan tugas akhir ini kepada penulis.

14.Sahabat tercintaku Muflah Hulhusnah, Amalia Chairy, Popy Tania, Leni mayasari Lubis, lizya arie syaela purba, Dina nasution, Asnizar, Nazria, Anugrah Bagus susilo, Nurhayati yang selalu memberikan semangat kepada penulis.

15.Teman-teman Stambuk 2010 (Kom-A&B) yang telah memberikan semangat kepada penulis.

16.Teman-teman pengurus KPLI-Medan, RTIK-Sumut, yang telah memberikan semangat kepada penulis.

Penulis menyadari bahwa penulisan tugas akhir ini masih banyak keterbatasan dan kekurangan Untuk itu kritik serta saran yang sifatnya membangun sangat penulis harapkan.Akhirnya penulis ucapkan semoga tugas akhir ini dapat berguna bagi pembaca dan bagi penulis khususnya.

Medan, Januari 2015


(7)

ABSTRAK

Flow-network adalah maximum flow problem . Secara sederhana, Maximum-flow problem

dapat di deskripsikan sebagai masalah pencarian untuk mencari arus maximum yang dapat mengalir pada sebuah network yang hanya memiliki satu source dan sink. Flow-network sering digunakan untuk memodelkan sistem lalu lintas, suatu sistem yang sering menjadi masalah utama dalam kehidupan, terutama di kota besar. Model aliran maksimum mempunyai tujuan untuk memaksimalkan jumlah arus yang melewati Aliran Pipa Air dalam sebuah sistem Aliran Air. Hal ini tentunya sangat umum terjadi pada bidang transportasi, produksi, komunikasi, dan distribusi aplikasi masalah aliran maksimum yang akan dibahas dalam skripsi ini adalah Aliran Air S-1 Ilmu Komputer USU. Serta memperoleh aliran maximum dengan menggunakan Algoritma Maximum-Flow pada Pada Aliran Pipa Air S-1 Ilmu Komputer USU. Dan mengetahui hasil dari pencarian aliran maximum dengan menggunakan algoritma maximum-flow.

Kata kunci: Volume Air, Graf, Network Flow, maximum-flow, bahasa pemerograman


(8)

APPLICATION ALGORITHM MAXIMUM-FLOW IN

OPTIMIZATION THE FLOW OF WATER PIPE S-1

USU COMPUTER SCIENCE

ABSTRACT

Flow-network is maximum flow problem, In a simple Maximum-flow problem can be described as a search problem to find flow maximum that can flow in a network which has only one source and the sink. Flow-network often used to model traffic system, a system that often a major issue in the life, Especially in the city big. Maximum flow model has the objective to maximize the amount of current passing through Water Pipe Flow in of a Water Flow system. certainly this is very common in the field of transport, production, communication, and distribution applications the maximum flow problem which will be discussed essay in this Water Flow S-1 USU Computer Science. And undestand result of from search flow maximum with using algorithm maximum-flow.

Keywords : Volime Water. Graf, Network Flow, Maximum-Flow, Java Programming Language.


(9)

DAFTAR ISI

PERSETUJUAN... ii

PERNYATAAN ... iii

PENGHARGAAN ... iv

ABSTRAK ... vi

ABSTRACT ... vii

DAFTAR ISI………. viii

DAFTAR TABEL ... x

DAFTAR GAMBAR………..……xvi

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang ... 2

1.2 Rumusan Masalah ... 3

1.3 Batasan Masalah... 3

1.4 Tujuan Penelitian ... 3

1.5 Manfaat Penelitian... 3

1.6 Metodologi Penelitian ... 4

1.7 Sistematika Penulisan ... 4

BAB 2 TINJAUAN PUSTAKA ... 5

2.1 Teori Graf ... 5

2.1.1 Defenisi Graf ... 8

2.1.2 Graf Berbobot... 8

2.1.3 Representasi Graf Pada Komputer ………..8

2.2 Jenis-Jenis Graf ... 10

2.3 Network- Flow ... 11

2.4 Maximum-Flow Problem ... 13

2.5 Contoh Aplikasi Maximum-Flow Problem ... 16

2.6 Model Aliran Maximum (Maximum-Flow) ... 16

2.7 Prosedur Maximum-Flow ... 17

2.8 Aliran Maximum ... 17

BAB 3 ANALISIS DAN PERANCANGAN SISTEM ... 23

3.1 Analisis Sistem ... 24

3.1.1 Analisis Masalah ... 24

3.1.2 Analisis Kebutuhan Sistem ... 25

3.1.2.1 Persyaratan Fungsional... 25

3.1.2.2 Persyaratan Non-Fungsional ... 25

3.1.3 Pemodelan ... 26


(10)

3.1.3.2 Activity Diagram ... 27

3.1.3.3 Sequence Diagram ... 29

3.2 Perancangan ... 29

3.2.1 Flowchart Sistem ... 29

3.2.2 Pseudocode Algoritma Maximum-Flow ... 31

3.3 Perancangan Sistem ... 32

3.3.1 Menu Awal ... 32

3.3.2 Menu Utama ... 33

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM... 35

4.1 Implementasi Sistem ... 35

4.1.1 Form Menu Awal ... 36

4.1.2 Form Upload Graf ... 37

4.1.3 Form Upload Graf Selanjutnya ... 38

4.1.4 Form Tampilan Hasil Upload Graf ... 39

4.1.5 Form Tampilan Perhitungan U, V, W, X, Y Setiap Iterasi ... 40

4.1.6 Form Tampilan Menu Log Out ... 41

4.2 Pengujian ... 42

4.2.1 Pengujian Implementasi Maximum-Flow ... 42

4.2.2 Pengujian Hasil Akhir Maximum-Flow ... 46

BAB 5 KESIMPULAN DAN SARAN ... 59

Kesimpulan ... 59

Saran ... 59

DAFTAR PUSTAKA LAMPIRAN


(11)

Daftar Gambar

Gambar 2. 1 Graf (V,E) ... 6

Gambar 2.2 Graf G ... 7

Gambar 2.3 Graf Berbobot ... 8

Gambar 2.4 Diagram Dan Matriks Keterhubungan Graf G ... 9

Gambar 2.5 Graf Berarah, (B) Graf-Ganda Berarah ... 11

Gambar 2.6 Network-Flow.. ... 11

Gambar 2.7 Maximum-Flow Pada Sebuah Flow-Network ... 14

Gambar 3.1 Ilustrasi Maximum Aliran Pipa Air ... 23

Gambar 3.2 Diagram Ishikawa Untuk Analisis Permasalahan Sistem ... 24

Gambar 3.3 Use-Case Diagram Pada Sistem ... 27

Gambar 3.4 Activity Diagram Pada Sistem ... 27

Gambar 3.5 Sequence Diagram Pada Sistem ... 29

Gambar 3.6 Flowchart Sistem ... 30

Gambar 3.8 Menu Awal ... 32

Gambar 3.9 Menu Utama ... 33

Gambar 4.1 Form Menu Awal ... 36

Gambar 4.2 Form Upload Graf ... 37

Gambar 4.3 Form Upload Graf Selanjutnya ... 38

Gambar 4.4 Form Tampilan Hasil Upload Graf ... 39

Gambar 4.5 Form Tampilan Perhitungan U,V,W,X,Y Pada Iterasi ... 40

Gambar 4.6 Form Tampilan Menu Log Out ... 41

Tabel 3.7 Pseudocode Algoritma Maximum-Flow ... 3


(12)

ABSTRAK

Flow-network adalah maximum flow problem . Secara sederhana, Maximum-flow problem

dapat di deskripsikan sebagai masalah pencarian untuk mencari arus maximum yang dapat mengalir pada sebuah network yang hanya memiliki satu source dan sink. Flow-network sering digunakan untuk memodelkan sistem lalu lintas, suatu sistem yang sering menjadi masalah utama dalam kehidupan, terutama di kota besar. Model aliran maksimum mempunyai tujuan untuk memaksimalkan jumlah arus yang melewati Aliran Pipa Air dalam sebuah sistem Aliran Air. Hal ini tentunya sangat umum terjadi pada bidang transportasi, produksi, komunikasi, dan distribusi aplikasi masalah aliran maksimum yang akan dibahas dalam skripsi ini adalah Aliran Air S-1 Ilmu Komputer USU. Serta memperoleh aliran maximum dengan menggunakan Algoritma Maximum-Flow pada Pada Aliran Pipa Air S-1 Ilmu Komputer USU. Dan mengetahui hasil dari pencarian aliran maximum dengan menggunakan algoritma maximum-flow.

Kata kunci: Volume Air, Graf, Network Flow, maximum-flow, bahasa pemerograman


(13)

APPLICATION ALGORITHM MAXIMUM-FLOW IN

OPTIMIZATION THE FLOW OF WATER PIPE S-1

USU COMPUTER SCIENCE

ABSTRACT

Flow-network is maximum flow problem, In a simple Maximum-flow problem can be described as a search problem to find flow maximum that can flow in a network which has only one source and the sink. Flow-network often used to model traffic system, a system that often a major issue in the life, Especially in the city big. Maximum flow model has the objective to maximize the amount of current passing through Water Pipe Flow in of a Water Flow system. certainly this is very common in the field of transport, production, communication, and distribution applications the maximum flow problem which will be discussed essay in this Water Flow S-1 USU Computer Science. And undestand result of from search flow maximum with using algorithm maximum-flow.

Keywords : Volime Water. Graf, Network Flow, Maximum-Flow, Java Programming Language.


(14)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Flow-Network ini memilik banyak aplikasi dalam kehidupan sehari-hari. Flow-Network sering digunakan untuk memodelkan sistem lalu lintas, suatu sistem yang sering menjadi masalah utama dalam kehidupan, terutama di kota besar. Salah satu masalah yang sering muncul dalam Flow-Network adalah Maximum-Flow Problem. Secara sederhana, Maximum-Flow Problem dapat dideskripsikan sebagai masalah pencarian untuk mencari arus Maximum yang dapat mengalir pada sebuah Network

yang hanya memiliki satu source dan sink.

Model aliran maksimum mempunyai tujuan untuk memaksimalkan jumlah arus yang melewati Aliran Pipa Air dalam sebuah sistem Aliran Air. Hal ini tentunya sangat umum terjadi pada bidang transportasi, produksi, komunikasi, dan distribusi aplikasi masalah aliran maksimum yang akan dibahas dalam skripsi ini adalah Aliran Air S-1 Ilmu Komputer USU. Penulis memilih bagaimana mencari solusi pada pipa air di S-1 Ilmu Komputer USU agar air yang dialiri lebih deras dari belokan-belokan pipa air yang lainnya (Farizal, 2013).


(15)

Dan yang akan mengalir sesuai dengan arah lebih rendah atau tinggat pada pipa yang lebih tinggi. Untuk daerah kampus pada umumnya air yang dialiri masuk ke dalam saluran-saluran pipa buatan yang mengalirkan air masuk ke dalam masing-masing pipa bak kamar mandi dan wastafel. Kasus-kasus kelancaran air pada aliran pipa air di kampus S-1 Ilmu Komputer USU yang memiliki beberapa masalah sepenuhnya bergantung pada kondisi pipa air yang berada di kampus, karena adanya bangunan-bangunan yang menghalangi arah aliran air. Aliran yang terjadi berubah arah karena membentur bangunan dan mengakibatkan arah aliran memantul atau berbelok baik ke kiri maupun ke kanan pada aliran pipa air pada kampus (Loebis, 1992).

Sebuah model matematis telah dikembangkan sejak dua dekade yang lalu untuk melakukan analisa spasial terhadap aliran air (steady flow) pada saluran. Akan tetapi model matematis tersebut membutuhkan banyak persamaan matematis yang sangat kompleks untuk melakukan penelitian dibidang drainase tetapi dipenelitian ini tidak dibahas tentang drainase pada aliran-aliran diluar kondisi kampus, melainkan hanya membahas tentang bagaimana mencari aliran maximum pada aliran pipa air S-1 Ilmu Komputer USU untuk mengetahui kapasitas maximum-nya setiap pipa. Salah satu model lain yang juga seringkali digunakan pada proyek modernisasi sistem pengairan adalah simulasi aliran air yang(unsteady flow) pada saluran terbuka (Gartrell,1993).

Kelemahan model tersebut adalah pengguna perlu memahami dasar dari sistem yang akan dimodelkan serta mempunyai cukup waktu dan kemampuan untuk menetapkan apakah model yang dihasilkan masuk akal atau tidak. Oleh karena itu pada penelitian kali ini akan digunakan sebuah metode Maximum-flow yang sederhana dan tidak memerlukan banyak persamaan matematis pengairan (Misra, 1995).

1.2 Rumusan masalah

Bagaimana menggunakan algoritma Maximum-flow untuk menyelesaikan penerapan algoritma Maximum-flow dalam optimasi volume air pada pipa S-1 Ilmu Komputer


(16)

USU dan membuktikan bahwa Algoritma Maximum-flow digunakan pada pengguna memahami dasar dari sistem yang akan dimodelkan serta mempunyai cukup waktu dan kemampuan untuk menetapkan apakah model yang dihasilkan masuk akal atau tidak, serta bagaimana mengetahui kapasitas Maximum air yang dialirkan masing-masing pada pipa air tersebut. Dan bagaimana hasil pencarian aliran maksimum dengan menggunakan Algoritma Maximum-flow pada Aliran Pipa S-1 Ilmu Komputer USU.

1.3Batasan masalah

Berdasarkan latar belakang diatas maka ada beberapa hal yang dapat dijadikan rumusan masalah yaitu:

1. Wilayah studi terbatas pada aliran pipa air S-1 Ilmu Komputer USU.

2. Tidak membahas tentang visual simulasi ini (seperti animasi objek) dan hanya membahas tentang graf dan cara kerja dari algoritma Maximum-flow

tersebut.

3. Bagaimana hasil pencarian aliran maximum dengan menggunakan algoritma

Maximum-flow pada aliran pipa air S-1 Ilmu Komputer USU.

4. Aplikasi yang digunakan dalam membangun penerapan algoritma

Maximum-flow untuk optimasi volume Pada Aliran Pipa Air menggunakan bahasa Pemerograman Java.

5. Kapasitas air yang berada didalam wadah penampungan air dianggap penuh atau Full Bank Capacity (konstan).

1.4Tujuan penelitian

Menentukan Penerapan Algoritma Maximum-Flow Dalam Optimasi Volume Air Pada Pipa S-1 Ilmu Komputer USU.


(17)

1.5Manfaat penelitian

Manfaat penelitian ini adalah:

a. Memperoleh aliran maximum dengan menggunakan Algoritma Maximum-flow pada Pada Aliran Pipa Air S-1 Ilmu Komputer USU.

b. Mengetahui hasil pencarian aliran maximum dengan menggunakan algoritma Maximum-flow.

1.6Metodologi Penelitian

Metode penelitian yang akan dilakukan dalam penyelesaian skripsi ini adalah: 1. Studi Literatur

Pada tahap ini, penulisan skripsi diawali dengan pembelajaran terhadap buku-buku, artikel-artikel, paper, e-book, situs internet, maupun hasil penelitian yang membahas tentang Maximum-flow yang terkait dengan aliran pipa air.

2. Analisis dan Pengumpulan Data

Melakukan analisis Pada Aliran Pipa Air S-1 Ilmu Komputer USU Pipa Air Menggunakan Algoritma Maximum-flow.

3. Perancangan Sistem

• Menguraikan Kemampuan Dari Algoritma Maximum-flow, Berupa Pencarian aliran maksimum pada Aliran Pipa Air .

• Dan mengetahui Alairan maximum air .

• Membuat kesimpulan bahwa kemampuan dari Algoritma Maximum-flow dapat/tidak dapat dilakukan.

• Aplikasi yang digunakan dalam membangun penerapan algoritma Maximum-flow dalam optimasi volume air pada Aliran Pipa Air menggunakan bahasa pemrograman Java.


(18)

4. Implementasi

Pada tahap ini dilakukan pengkodean (coding). 5. Pengujian

• Pengujian aplikasi yang telah selesai dibuat dilakukan menggunakan pemrograman Java.

• Pengujian dilakukan dengan Algoritma Maximum-Flow sebagai pencarian aliran maximum pada Aliran Pipa Air.

6. Dokumentasi

Dokumentasi dihasilkan dengan membuat skripsi sebagai laporan dari hasil penelitian.


(19)

BAB 2

TINJAUAN PUSTAKA

2.1. Teori Graf

2.1.1 Definisi Graf

Teori graf merupakan salah satu cabang matematika yang paling banyak aplikasinya dalam kehidupan sehari hari. Salah satu bentuk dari graf adalah Flow-network, yaitu

graf berarah yang tiap sisinya mempunyai kapasitas tertentu. Flow-network ini memiliki banyak aplikasi dalam kehidupan sehari-hari. Flow-network sering digunakan untuk memodelkan sistem lalu lintas, sebuah sistem yang sering menjadi masalah utama dalam kehidupan, terutama di kota besar, serta sistem pipa air. Salah satu masalah yang sering muncul dalam Flow-network adalah Maximum-flow Problem.

Secara sederhana graf didefinisikan sebagai kumpulan titik yang di hubungkan oleh garis. Secara matematis, graf adalah pasangan himpunan (V, E) dimana V adalah himpunan tak kosong yang memiliki elemen disebut simpul (vertices) dan E adalah kumpulan dari dua elemen subsets V yang disebut busur (edges). Simpul direpresentasikan dengan titik dan busur direpresentasikan dengan garis. Dapat dilihat pada gambar 2.1 contoh graf (V.E) dimana:


(20)

Gambar 2.1. Graf (V,E) (Farizal, 2013).

V ={A,B,C,D,E,F, G,H,I}. dan

E ={{A,B},{A,C},{B,D},{C,D},{C,E},{E,F},{E,G},{H,I}}

Dalam teori graf, Network- flow adalah graf terarah dimana setiap edge-nya

memiliki kapasitas dan setiap edge memiliki aliran. Nilai dari aliran dalam suatu

edge tidak dapat melampaui kapasitas dari edge tersebut. Sering kali dalam

research operasi, graf terarah disebut jaringan, vertices-nya disebut dengan nodes

dan edge-nya disebut arcs. Diberikan G (V,E) adalah graf terarah tertutup di mana disetiap edge-nya c(u,v) E E, dimana E adalah bilangan positif, nilai kapasitas sebenarnya c(u,v) (Syahdatina, 2007).

Graf G adalah pasangan (V(G),E(G)) dengan (V(G)) adalah himpunan tidak kosong dan berhingga dari objek-objek yang disebut titik, (E(G)) adalah himpunan (mungkin kosong) pasangan tak berurutan dari titik- titik berbeda di (V(G)) yang disebut sisi. Banyaknya unsur di V(G) disebut order dari G dan dilambangkan dengan

p(G), dan banyaknya unsur di E(G) disebut ukuran dari G dan di lambangkan dengan

q(G). Jika graf yang dibicarakan hanya graf G, maka order dan ukuran dari G masing-masing cukup ditulis p dan q. Graf dengan order p dan q di sebut graf-(p,q).

Nama “Graf” diberikan karena graf dapat disajikan secara grafik atau gambar, dan justru dengan bentuk gambar inilah sifat-sifat graf dapat dikenali secara detail. Titik disajikan dalam bentuk noktah atau lingkaran kecil dan sisi disajikan dalam bentuk garis atau kurva yang memasangkan dua titik.


(21)

Perhatikan graf G yang memuat himpunan titik V(G) dan himpunan sisi E(G)

seperti berikut ini:

V(G) = {a,b,c,d,e}

E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)} Graf G tersebut secara lebih jelas dapat di gambar sebagai berikut:

Gambar 2.2 Graf G (Sanjaya, 2014).

Graf G mempunyai 5 titik sehingga order G adalah p = 5. Graf G mempunyai 6 sisi sehingga ukuran graf G adalah 6.

Graf G dengan himpunan titik dan sisi masing-masing V(G) = {a, b, c, d, e}

E(G) = {(a, b), (a, c), (a, d), (b, d), (b, c), (d, e)} Dapat juga ditulis dengan

V(G) = {a, b, c, d, e} E(G) = {e1, e2, e3, e4, e5, e6}

Dengan

G :

a c

d b

e

e1

e2

e3


(22)

e1 = (a, b) e2 = (a, c) e3 = (a, d) e4 = (b, d) e5 = (b, c) e6 = (d, e)

Sisi e = (a, b) di katakan menghubungkan titik a dan b. Jika e = (a, b) adalah sisi graf G, maka a dan b disebut terhubung langsung (adjacent), a dan e serta b dan e

disebut terkait langsung (incident), dan titik a dan b disebut ujung dari e. Dua sisi berbeda e1 dan e2 di sebut terhubung langsung (adjacent), jika terkait langsung pada satu titik yang sama. Untuk selanjutnya, sisi e = (a, b) akan ditulis e = ab (sanjaya, 2014).

2.1.2 Graf Berbobot

Graf berbobot adalah graf yang setiap sisinya diberi sebuah nilai atau bobot. Bobot pada setiap sisi graf dapat berbeda-beda bergantung pada masalah yang dimodelkan. Bobot dapat menyatakan jarak antara dua buah kota, biaya perjalanan antara dua buah kota, waktu tempuh antara dua buah kota, waktu tempuh pesan antara simpul komunikasi dengan simpul komunikasi lainya, ongkos produksi dan sebagainya. Graf

berbobot juga sering dikaitkan dengan istilah graf berlabel.

Untuk membuat label, masing-masing vertex diberi sebuah label dan setiap

edge diberikan sebuah nilai atau bobot. Tampilan graf berlabel dapat dilihat pada Gambar 2.3

P Q

R S

T 6

9

12 7

9


(23)

V1 V2

V3 V4

v1 v2v3v4

v1

v2

v3

v4

Gambar 2.3 Graf Berbobot (Sanjaya, 2014).

2.1.3 Representasi Graf Pada Komputer

Meskipun menggambar merupakan cara yang mudah untuk menjelaskan suatu graf, cara ini tentunya mempunyai kelemahan ketika akan menyimpan data tentang graf

dalam komputer, atau ketika akan mengkaji sifat-sifat suatu graf melalui hitungan matematis. Mepresentasikan graf dalam bentuk matriks akan memberikan kemudahan bagi sesorang yang senang menggunakan komputer ketika mengkaji informasi atau menyelesaikan permasalahan yang melibatkan graf.

Matriks keterhubungan suatu graf G adalah matriks simetri dengan unsur 0 dan 1 dan memuat nilai 0 pada diagonal utamanya. Hal ini karena graf tidak memuat

loop dan tidak memuat sisi paralel.

Perhatikan contoh berikut. Misalkan graf G dengan himpunan titik V(G) = {v1, v2, v3, v4}

dan himpunan sisi

E(G) = {v1v2, v1v4, v2v3, v2v4, v3v4 }


(24)

Gambar 2.4 Diagram dan Matriks Keterhubungan Graf G (Sanjaya, 2014).

Derajat suatu simpul deg(v) adalah banyaknya ruas yang menghubungkan suatu simpul. Secara umum, jika graf G dengan order p (p ≥ 1) dengan himpunan titik V(G) = {v1,v2, … vp} dan A (G) = [aij], 1 ≤ i, j ≤ p adalah matriks keterhubungan dari G, maka:

deg (vi) =

Hal yang sama juga berlaku jika menghitung derajat titik melalui kolom, yaitu:

deg (vi) =

Dengan melihat matriks keterhubungan dari graf G dapat diperoleh bahwa:

a11 + a12 + a13 + a14 = 0 + 1 + 0 + 1 = 2 = deg(v1), a21 + a22 + a23 + a24 = 1 + 0 + 1 + 1 = 3 = deg(v2), a31 + a32 + a33 + a34 = 0 + 1 + 0 + 1 = 2 = deg(v3), dan a41 + a42 + a43 + a44 = 1 + 1 + 1 + 0 = 3 = deg(v4).

Dari diagram terlihat bahwa:

deg(v1) = 2, deg(v2) = 3, deg(v3) = 2, dan deg(v4) = 3.

2.2 Jenis-Jenis Graf

1. Berdasarkan ada tidaknya gelang atau sisi ganda pada suatu graf, maka graf

digolongkan menjadi dua jenis:


(25)

Graf yang tidak mengandung gelang maupun sisi-ganda dinamakan graf sederhana.

Graf tak-sederhana (unsimple-graf / multigraf).

Graf yang mengandung ruas ganda atau gelung dinamakan graf tak- sederhana (unsimple graf atau multigraf).

2. Berdasarkan jumlah simpul pada suatu graf, maka secara umum graf dapat digolongkan menjadi dua jenis:

Graf berhingga (limited graf)

Graf berhingga adalah graf yang jumlah simpulnya, N, berhingga.

Graf tak-berhingga (Unlimited graf)

Graf yang jumlah simpulnya, n, tidak berhingga banyaknya disebut graf tak Berhingga.

3. Berdasarkan orientasi arah pada sisi, maka secara umum graf di bedakan atas 2

jenis:

Graf tak-berarah (undirected graf)

Graf yang sisinya tidak mempunyai orientasi arah disebut Graf tak-berarah.

Graf berarah (Directed Graf atau di graf)

Graf yang setiap sisinya diberikan orientasi arah disebut sebagai graf berarah (a) G Dua buah graf pada Gambar 2.5 adalah graf berarah.


(26)

2.3 Network-Flow

Jaringan transportasi adalah sebuah graf berarah yang sederhana dengan setiap sisi mempunyai kapasitas dengan sejumlah syarat sebagai berikut:

1. Terdapat satu simpul didalam graf itu yang tidak mempunyai sisi masuk disebut dengan sumber.

2. Terdapat satu simpul didalam graf itu yang tidak mempunyai sisi keluar disebut dengan tujuan.

3. Pembobot setiap sisi C i j dari suatu sisi berarah (i, j) merupakan sebuah bilangan

real non negatif disebut dengan kapasitas sisi (i, j) (Johnsonbaugh, 1986).

Gambar : aliran setiap sisi (farizal, 2013).

Gambaran aliran setiap sisi CAB = 6,CAD = 8, CAC = 3, CBC = 9, CCD = 5, CCE = 7, CDE = 10.

Flow-network adalah sebuah graf berarah yang tiap sisinya memiliki kapasitas/bobot dan pada tiap sisi tersebut terdapat arus (flow) yang mengalir antara 2 simpul yang mengapit sisi tersebut. Jumlah arus yang mengalir pada tiap sisi harus lebih kecil atau sama dengan kapasitas sisi tersebut. Pada aplikasinya, sebuah graf berarah sering disebut dengan Network. Jumlah arus yang mengalir pada tiap sisi harus lebih kecil atau sama dengan kapasitas sisi tersebut. Pada aplikasinya, sebuah graf berarah sering disebut dengan network. Setiap arus (flow) yang ada dalam network, harus memenuhi sebuah batasanya itu arus yang masuk pada suatu simpul harus sama dengan arus yang keluar pada simpul tersebut, kecuali pada source, yang keluarnya lebih besar dari arus masuk, dan sink, yang arus masuknya lebih besar dari arus keluar sebuah

network biasanya digunakan untuk memodelkan sistem lalu lintas, saluran pipa, sirkuit elektrik dapat dilihat pada gambar 2.6 Network-flow


(27)

Gambar 2.6. Network-Flow. (Septiana, 2010)

4. Arus (flow) pada network, harus:

• Arus yg mengalir ≤ kapasitas sisi yg dialiri.

• Arus masuk ke node = arus keluar dari node, kecuali pada source . Sedangkan pada sink, arus masuk > arus keluar.

• Biasa digunakan untuk memodelkan sistem lalu lintas.

• Saluran pipa, sirkuit elektrik, dsb (Shella, 2010).

Network banyak dipakai dalam banyak hal untuk kegunaan yang berbeda-beda. Jaringan transportasi, jaringan listrik dan jaringan telekomunikasi adalah contoh-contoh dimana network ditemukan dalam kehidupan sehari-hari. Representasi network juga dipakai dalam produksi, distribusi, project planning, penempatan fasilitas, manajemen resource dan financial planning suatu network diperlukan karena memberi gambaran visual dan bantuan konseptual yang lebih jelas untuk memotret hubungan antar komponen dalam sistem yang sering dijumpai dalam banyak kasus. Dalam konteks optimasi, perkembangan metodologi maupun aplikasi

network termasuk yang cepat. Banyak temuan baru dalam hal algoritma yang berkenaan dengan permasalahan network flow membawa pengaruh besar dalam struktur data dan manipulasi data dalam Bidang Ilmu Komputer. Dengan berkembangnya ilmu komputer, memungkinkan penyelesaian problem Network-Flow


(28)

sebelumnya tidak terpecahkan. Banyak permasalahan Network flow yang sebenarnya berbentuk linear programming. Sebagai contoh, masalah transportasi atau assignment

yang kita bahas sebelumnya. Dalam bab ini akan kita bahas beberapa aplikasi Network flow.

Macam-macam Aplikasi Network-Flow antara lain:

1. Shortest-Path Problem.

2. Minimum Spanning Tree Problem. 3. Maximum Flow Problem.

4. Minimum Cost Flow Problem (Habibi, 2008).

2.4 Maximum-Flow Problem

Secara sederhana, Maximum-flow problem dapat dideskripsikan sebagai masalah pencarian untuk mencari arus maksimum yang dapat mengalir pada sebuah

network yang hanya memiliki sebuah source dan sebuah sink. model aliran Maximum (Maximum flow), sesuai dengan namanya adalah sebuah model yang dapat digunakan untuk mengetahui nilai maximum seluruh arus di dalam sebuah sistem jaringan. Contoh aliran maximum pada sebuah jaringan adalah jaringan listrik, pipa saluran, dan jalur lalu lintas dalam sebuah sistem jaringan yang tertutup. Kapasitas pada setiap jaringan akan membatasi jumlah arus atau aliran yang melewatinya. model aliran

maximum mempunyai tujuan untuk memaksimalkan jumlah arus yang melewati jaringan dalam sebuah sistem jaringan. Hal ini tentunya sangat umum terjadi pada bidang transportasi, produksi, komunikasi, dan distribusi (Fakhri, 2008).

Aplikasi dari Maximum-flow problem ini adalah sebagai berikut: “Terdapat pipa-pipa yang berhubungan, dengan kapasitas / daya tampung yang berbeda – beda. Pipa – pipa ini terhubung dengan sebuah keran, berapa volume

maximum air yang dapat dialirkan dari penampungan air sampai dengan keran di rumah kita” . Merujuk pada teori graf, pada Maximum -flow problem kita diberikan sebuah Network-Graf berbobot dan berarah. Dan di setiap sisinya terdapat kapasitas c yang di asosiasikan dengannya, simpul awal kita sebut sebagai source, dan simpul akhir sink. Kita disuruh mencari nilai f yang


(29)

memenuhi persyaratan f ≤ c untuk setiap sisi selain source dan sink, dan jumlah nilai f yang masuk kedalam suatu sisi pasti sama dengan jumlah nilai yang meningalkannya. Kemudian kita akan mencari nilai maximum f yang memenuhi persyaratan di atas. Gambar di bawah ini menunjukkan solusi optimal untuk salah satu permasalahan di atas, setiap sisi di labeli dengan sebuah nilai f/c yang dia sosiasikan dengannya:

Gambar 2.7 Maximum-Flow pada sebuah Flow-Network (fackhry,2008). Pada gambar di atas, kita di minta untuk mencari arus maksimal yang dapat mengalir dari simpul s (source) ke simpul t (sink) melalui beberapa sisi yang masing masing memilik kapasitas tertentu. Dengan melihat gambar di atas maka dapat disimpulkan bahwa arus maksimal yang dapat mengalir pada Network

di atas adalah 5 satuan (Sedgewick, 2002).

Mencari penugasan suatu aliran pada suatu jaringan kerja sehingga aliran yang sampai ke tujuan maksimal. Dan menentukan aliraan aliran maximum yang dapat mengalir dalam suatu graf ( misal : air, bandwidth).

Secara formal : bagaimana mengotimalkan material dalam sebuah graf dari source

ke sink, tanpa melanggar melaggar konstrain (Rosyida, 2006).

Pada Maximum Flow Problem, sering dijumpai istilah sebagai berikut:

Network N

Network N adalah di graph berbobot yang memiliki suatu titik sumber dan satu titik tujuan. Pada titik sumber, tidak terdapat sisi masuk, sedangkan pada titik tujuan tidak terdapat sisi keluar, bobot tiap sisi pada suatu network adalah kapasitas (C) sisi tersebut.


(30)

Walk (jalan)

Misalkan titik U dan V (tidak harus berbeda ) pada suatu graf G . Jalan (walk) (u, v) di G adalah titik.

Flow (f)

Flow (f) merupakan suatu bilangan tak negatif yang di definisikan pada tiap sisi pada suatu network yang memenuhi Fij < Cij untuk sebarang sisi (i,j) pada network tersebut. Setiap arus (flow) yang ada dalam Network , harus memenuhi sebuah batasan yaitu arus yang masuk pada suatu simpul harus sama dengan arus yang keluar pada simpul tersebut, kecuali pada source, yang arus keluarnya lebih besar dari arus masuk, soure dan sink, yang arus masuknya lebih besar dari arus keluar.

Residual Network

Residual Network merupakan Network dengan ketentuan pelabelan sisinya adalah sebagai berikut: C‟(i,j) = C(i,j) – F(i,j), C‟(j,i) = F(i,j).

Secara umum Maximum-flow bisa dijelaskan sebagai berikut:

1. Semua aliran barang melalui suatu network yang berarah dan tersambung dari

node awal ke node akhir. Node awal disebut sumber dan node akhir disebut tujuan.

2. Node sisa yang lain dinamakan node antara.

3. Aliran dalam satu cabang hanya di perbolehkan ke arah yang ditunjukkan oleh anak panah dimana jumlah maximum di berikan sebagai kapasitas cabang tersebut. Pada node sumber, semua cabang mengarah meninggalkan node.

Pada node tujuan semua cabang mengarah masuk ke node.

4. Tujuannya adalah memaximumkan jumlah total yang bisa diangkut dari sumber ke tujuan. Jumlah yang diangkut ini bisa dikatakan jumlah yang meninggalkan sumber atau jumlah yang sampai pada tujuan.


(31)

2.5 Contoh Aplikasi Maximum-Flow Problem

1. Maksimasi aliran dalam jaringan distribusi suatu perusahaan dari pabrik ke pelanggan.

2. Maksimasi aliran dalam jaringan suplai suatu perusahaan dari vendor ke pabrik-pabriknya.

3. Maksimasi aliran minyak dalam sistem perpipaan.

4. Maksimasi aliran air dalam distribusi air PDAM.

5. Maksimasi aliran kendaraan dalam jaringan transportasi.

6. Maksimasi pesan dalam suatu jaringan telekomunikasi.

Meskipun Maximum-flow bisa diformulasikan sebagai linear programming, namun ada algoritma yang cukup efisien untuk menyelesaikannya. Suatu network diperlukan karena memberi gambaran visual dan bantuan konseptual yang lebih jelas untuk memotret hubungan antar, komponen dalam sistem yang sering dijumpai dalam banyak kasus. Dalam konteks optimasi, perkembangan metodologi maupun aplikasi

Network termasuk yang cepat. Banyak temuan baru dalam hal algoritma yang berkenaan dengan permasalahan Network- flow membawa pengaruh besar dalam struktur data dan manipulasi data dalam bidang ilmu komputer. Dengan berkembangnya Ilmu Komputer, memungkinkan penyelesaian problem Network -flow

dengan bantuan software terutama untuk masalah-masalah besar yang beberapa tahun sebelumnya tidak terpecahkan. Banyak permsalahan Network-flow yang sebenarnya berbentuk linear programming.

2.7 Model Aliran Maksimum ( Maximal Flow )

Model Aliran Maximum ( Maximal-flow ), sesuai dengan namanya adalah sebuah model yang dapat digunakan untuk mengetahui nilai maksimum seluruh arus di dalam sebuah system jaringan. Jaringan listrik, pipa saluran dan jalur lalu lintas dalam sebuah system jaringan yang tertutup. adalah contoh – contohnya. Kapasitas pada setiap jaringan hubungan akan membatasi jumlah arus atau aliran yang melewatinya. Sebagai contoh, sebuah kabel listrik dengan kapasitas 10 ampere akan segera terbakar


(32)

apabila kita memaksa kabel itu dilewati oleh arus 50 ampere pada tingkat tegangan yang sama. Contoh lain, lalu lintas pada sebuah arus jalan searah akan macet apabila kemampuannya untuk menampung jumlah kendaraan terlampaui.

Situasi yang telah dijelaskan oleh kedua contoh di atas merupakan pusat perhatian model aliran maximum yang mempunyai tujuan untuk memaksimumkan jumlah arus yang melewati jaringan hubungan dalam sebuah sistem jaringan. Hal ini tentunya sangat umum terjadi pada bidang – bidang transportas, produksi/operasi, komunikasi dan distribusi (veriyen, 2012).

2.8 Prosedur Maximal Flow

1. Cari dan temukan path dari titik sumber ke titik lokasi tujuan yang memiliki arah dengan aliran kapasitas yang lebih besar dari nol untuk seluruh segitiga di dalam path. Jika tidak ada path yang tersedia, berarti optimal solution telah tercapai

2. Cari di aliran kapasitas yang paling kecil (Sf) di dalam path yang terpilih di Step 1. Lakukan perubahan di dalam aliran di dalam jaringan dengan mengirimkan sejumlah (Sf).

3. Untuk path yang terpilih di Step 1, kurangkan seluruh arus kapasitas dengan (Sf) di node arah masuk dan tambahkan di arus balik node sebesar (Sf)


(33)

5. Hentikan algoritma, ketika di node arah lebih kecil dari nol.

Contoh : Aliran Maximum Iteration 1 :

1 4 7

2 5 3 6 0 10 30 0 10 0 20 0 40 0 0 20 15 0 40 20 0 10 0 0 10 0 30 10 0 10 20 10 sourse sink

1 – 2 – 5 - 7 10 < 30 < 40 Minimum = 10

Kemudian nilai yang ada pada iterasi pada 1, 2, 5, 7 di kurangi dengan nilai minimum atau dari nilai terkecil yang telah didapat sebelumnya, sehingga mendapatkan hasil.


(34)

1

2

5

7

30

10 0 10 30 10

Iteration 2 :

1 4 7

2 5 3 6 10 0 20 10 10 0 20 0 40 0 0 20 15 0 30 20 0 10 0 1 0 10 0 20 20 0 10 10 10 20 10 Source sink

1 – 2 - 4 – 5 - 7 10 < 20 < 20 < 30 Minimum = 10 liter air


(35)

Kemudian nilai yang ada pada iterasi pada 1, 2, 4, 5, 7 di kurangi dengan nilai minimum yang telah di dapat sebelumnya, sehingga mendapatkan hasil.

1

2

4

7

5

20

20

0

10

10

10

10

20

Iteration 3 :

1 4 7

2 5 3 6 20 0 10 20 10 5 20 0 30 10 0 20 5 10 20 10 0 0 10 10 10 0 25 15 0 15 5 0

Source sink

1 – 3 - 4 – 5 - 7 10 < 10 < 15 < 40 Minimum = 10 liter air

Kemudian nilai yang ada pada iterasi pada 1, 3, 4, 5, 7 di kurangi dengan nilai


(36)

1

3

4

5

7

30 10 5 10 0 10 0 30

Iteration 4:

1 4 7

2 5 3 6 20 0 10 20 10 5 20 0 30 10 0 20 5 10 20 10 0 0 10 10 10 0 25 15 0 15 5 0


(37)

1 -3 - 4 - 7 5 < 10 < 30

Minimum = 5 liter air

Kemudian nilai yang ada pada iterasi pada 1, 3, 4, 7 di kurangi dengan nilai minimum yang telah di dapat sebelumnya, sehingga mendapatkan hasil.

1

3

4 7

25

10 0

15

5 5


(38)

1 4 7 2 5 3 6 20 0 10 20 5 5 20 0 25 15 0 20 5 15 20 10 0 0 10 10 10 0 5 35

0 20 0

20

Source Sink

1 – 3 - 6 - 7 20 < 20 < 25

Minimum = 20 liter air

Kemudian nilai yang ada pada iterasi pada 1, 3,6,7 di kurangi dengan nilai minimum yang telah di dapat sebelumnya, sehingga mendapatkan hasil.

1

3

5

35

20

6

7

0

0

20


(39)

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

Persoalan aliran pipa air merupakan salah satu permasalahan optimasi. Graf yang digunakan adalah suatu graf berbobot jarak antar user yang merupakan tempat-tempat yang akan di lintasi. Untuk meminimumkan waktu atau biaya dalam melintasi tempat-tempat, diperlukan informasi dari setiap maximum aliran yang harus dilalui. Permasalahan pencarian aliran maximum yang dialiri setiap pipa yang dapat diselesaikan dengan algoritma Maximum-flow yang bekerja sebagai pencarian arus

maximum dari setiap aliran air pada setiap pipa, untuk selanjutnya dapat diterapkan pada pencarian arus maximum pada setiap pipa yang ingin diketahui. Contoh kasus yang akan diambil adalah pencarian arus maximum antara titik A dan titik D.

0 1 2 3 4 5

1 2 3 4

5 A

B

C

D 2,5

5,4

4,1 1,2


(40)

Dilihat pada gamabar 3.1 merupakan koordinat pengguna yang digunakan sebagai banyak aliran air pada setiap pipa yang dialirikan kemudian sistem ini akan mencari aliran

maximum menggunakan algoritma maximum-flow.

3.1.1 Analisis Masalah

Untuk mengidentifikasi masalah menggunakan diagram Ishikawa (fishbone diagram). Masalah yang akan di identifikasi yaitu bahasa pemerograman Java belum digunakan secara maksimal., sehingga waktu yang digunakan akan jauh lebih efektif dari pada perhitungan secara manual. Permasalahan tersebut dapat diperlihatkan pada gambar 3.2. melalui sebuah diagram Ishikawa.

Kapasitas air flow

Mencari aliran maximum pada aliran Pipa air

Material

User

Metode

Machine

Memaximumkan jumlah aliran yang bisa di aliri dari sumber(source) ke tujuan(sink)

Bahasa Java Aliran pipa air

Maximum-flow

Matlab

C++

Gambar 3.2 Diagram Ishikawa Untuk Analisis Permasalahan Sistem


(41)

Analisis Kebutuhan Sistem meliputi analisis kebutuhan fungsional sistem dan analisis kebutuhan non-fungsional sistem.

3.1.2.1Kebutuhan Fungsional Sistem

Kebutuhan fungsional yang harus dimiliki oleh sistem. Dalam sistem penerapan pada aliran pipa air S-1 Ilmu Komputer USU yaitu dengan menggunakan aloritma Maximum-flow. Ini terdapat beberapa hal yang menjadi syarat fungsional yang harus dipenuhi, antara lain :

1. Sistem akan mencari kapasitas maximum yang dialiri air.

2. Mencari aliran maximum pada setiap aliran menggunakan alagoritma

Maximum-flow .

3. Sistem dapat mengetahui setiap aliran maximum yang akan dialiri setiap aliran air.

3.1.2.2Kebutuhan Non-Fungsional Sistem

Persyaratan non-fungsional adalah persyaratan apa yang dilakukan sistem, beberapa persyaratan fungisonal yang haru dipenuhi oleh sistem yang dirancang adalah sebagai berikut :

a. Performa

Sistem yang akan dibangun harus mampu memberi dan mengetahui hasil dari proses pada setiap aliran air yang dialiri.


(42)

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

c. Mudah dipelajari dan digunakan

Sistem yang akan dibangun harus sederhana dan mudah dipelajari oleh pengguna (user).

d. Kontrol

Sistem yang telah dibangun harus tetap dikontrol setelah selesai dirancang agar fungsi dan kinerja sistem tetap terjaga dan dapat memberikan hasil yang sesuai dengan keinginan pengguna.

e. Efisiensi

Sistem harus dirancang sesederhana mungkin agar memudahkan pengguna dalam menggunakan atau menjalankan aplikasi tersebut.

f. Pelayanan

Sistem yang telah dirancang bisa dikembangkan ke tingkat yang lebih kompleks lagi bagi pihak-pihak yang ingin mengembangkan sistem tersebut.

3.1.3 Pemodelan

Pemodelan aplikasi yang dirancang bertujuan untuk menggambarkan semua kondisi dan bagian-bagian yang berperan dalam sistem yang dirancang. Pemodelan aplikasi dilakukan dengan membuat use-case diagram, activity diagram, dan sequence diagram.

3.1.3.1Use-Case Diagram

Untuk menganalisa komponen-komponen yang berperan dalam sistem yang dirancang, penulis menggunakan use-case diagram agar proses penganalisaan komponen dapat


(43)

dilakukan dengan mudah. Use-case diagram sistem pada aplikasi yang dirancang dapat dilihat pada Gambar 3.3.

System

Pengguna

«uses»

«uses»

«uses»

«uses»

«uses» Maximum-Flow

Menentukan kapasitas air

Menghitung kapasitas air

Update kapasitasl air

Proses pencarian hitung setiap kapasitas air setiap

iterasi

Hitung keseluruhan hasil aliran maximum

Gambar 3.3. Use-Case Diagram Pada Sistem

3.1.3.2Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam system yang sedang dirancang. Bagaimana masing-masing aliran berawal, decision yang mungkin terjadi. Untuk menganalisa aktivitas-aktivitas yang akan berlangsung selama aplikasi dijalankan


(44)

diperlukan sebuah activity diagram. Berikut ini merupakan activitydiagram pada sistem yang akan dirancang.

Input nilai pada titik U,V,W,X,Y,Z

Pengguna menekan tombol iterasi

Pengguna menekan tombol update pada titik U,V,W,X,Y,Z

selesai Kembali ke home

Menampilkan hasil dari proses langkah setiap iteras i pada maximum-flow

PENGGUNA SYSTEM

Menampilkan nilai update dari titik U,V,W,X,Y,Z Pengguna menekan tombol hitung dari

Titik U,V,X,Y,Z

Menampilkan nilai maximum keseluruhan Membaca nilai U,V,W,X,Y,Z

Menampilkan nilai pada titik U,V,W,X,Y,Z

Mengitung nilai minimum pada titik U,V,W,X,Y,Z

System menghitung nilai kapasitas - minimum

flow + min

yes

no


(45)

3.1.3.3 Sequence Diagram

Sequence diagram adalah suatu diagram yang memperlihatkan atau menampilkan interaksi-interaksi antar objek didalam sistem yang disusun pada sebuah urutan atau rangkaian waktu. Sequence diagram digunakan untuk menggambarkan scenario atau rangkain langkah-langkah yang dilakukan sebagai sebuah respon dari suatu kejadian /


(46)

Input Maximum-flow Sumber(sourse ke tujuan (sink) iterasi

Pengguna

Input kapasitas

air Menentukan kapasitas air

Proses menhitung kapasitas air dari iterasi awal sampai

akhir

Proses menghitung setiap kapasitas airl pada setiap iterasi

Perhitungan nilai dari keseluruhan

maximum Mengitung

kapasitas air Update kapasitas

air Mengulangi setiap angka pada setiap

kapasitas air

Hasil maximum

Gambar 3.5 Sequence Diagram Pada Sistem.

3.2Perancangan Sistem

3.2.1 Flowchart Sistem

Flowchart merupakan bagan yang menunjukkan arus pekerjaan secara keseluruhan dari sistem. Flowchart menjelaskan tentang urutan-urutan dari prosedur yang ada didalam sistem dengan menggunakan simbol-simbol. Berikut ini merupakan flowchart awal dari sistem secara umum yang nantinya akan dibangun yang dapat dilihat Gambar 3.6.


(47)

Mulai

Input nilai kapasitas air

Menentukan kapasitas air

Proses hitung kapasitas air pada iterasi selanjutnya

Mentukan titik awal sampai titik akhir

kapasitas air

Input nilai yang dialiri setiap iterasi

Yes

No

Proses hitung setiap kapasitas air pada

setiap iterasi Mengulangi setiap aliran pada setiap


(48)

Gambar 3.6 Flowchart Sistem 3.2.2 Pseudocode Algoritma Maximum-flow

Pseudocode adalah teknik untuk menuliskan algoritma secara hight-level tanpa tergantung pada sebuah bahasa pemrograman. Penulisan pseudocode biasanya ditulis dengan menggunakan bahasa inggris dan diberi tambahan notasi matematika.

Pseudeocode Algoritma maximum-flow ditunjukkan oleh tabel 3.7 di bawah ini:

Tabel 3.7 Pseudocode Algoritma Maximum-flow

Baris Kode Pseudocode 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

// public class MaxFlow extends JFrame {

// public void actionPerformed(ActionEvent evt) { int a,b,c;

//mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel

a =

Integer.parseInt(txtVar3.getText());

a

//mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel

b =

Integer.parseInt(txtNilaiTerkecil.getText());

a

//menjumlahkan variabel a dan b kemudian menampungnya di variabel

c = a-b;

c //mengubah

String hasil = String.valueOf(c);

data integer ke string di variabel hasil //menampilkan string hasil di label Hasil


(49)

18 19 20 21 22 23 24 25 26 27 28 29 30 31

} });

// lblHasil = new JLabel("Mencari Nilai Mininum :"); // lblNilaiMax = new JLabel("Nilai Maximum :"); // btnHitung = new JButton("Hitung");

End End

3.3 Perancangan sistem

3.3.1 Menu awal

Menu awal merupakan sebagai authentikasi data untuk mengakses halaman utama aplikasi. Halaman ini digunakan sebagai gambaran tampilan yang akan dilalui program selanjutnya. Agar dapat masuk kedalam aplikasi, maka pengguna harus memberikan button menandakan go to aplikasi sudah terdaftar sebelumnya.agar dapat melakukan proses selanjutnya Kemudian pengguna dapat melakukan proses selanjutnya. Tampilan dapat dilihat pada gambar 3.8


(50)

Gambar 3.8 Menu Awal

Keterangan:

1. Label yang berisi aplikasi logo universitas 2. Label judul

3. Label file nama penulis. 4. Label file fakultas.

5. Text box untuk menampilkan proses selanjutnya.

3.3.1.1Menu Utama

Menu utama adalah halaman yang digunakan sebagai antar-muka user setelah berhasil melakukan proses masuk dari menu awal. Halaman ini juga akan menampilkan posisinya berada berdasarkan cara kerja algoritma dapat dilihat seperti pada Gambar 3.9

logo (1)

JUDUL(2)

nama dan nim(3)

fakultas(5)


(51)

Gambar 3.9 Menu Utama

Menu utama berfungsi untuk menampilkan informasi tentang cara kerja dari algoritma. Dan menampilakan setiap iterasi-iterasi yang dilalui setiap variabel dan kapasitas yang sudah ditentukan menu utama dapat dilihat seperti pada Gambar 3.9

JUDUL(2)

Iterasi(14)

(4) Z(7)

V(4)

U(3) LOGO(1)

Update(8)

Hitung(13) W(5)

Y(6)

Log out(15) Mencari nilai maximum


(52)

Km

Ws

Km Km Km

Ws Ws Ws

Km Ws

Km Km Km

Ws Ws Ws

Km Ws

Km Km Km

Ws Ws Ws

Km Ws

Km Km Km

Ws Ws Ws

Km Ws

Km Km Km

Ws Ws Ws

Km Ws

Km Km Km

Ws Ws Ws

WADAH PENAMPUNG

AIR

LAKI-LAKI PEREMPUAN

Lantai 3 Lantai 3

Lantai 2 Lantai 2

Lantai 1 Lantai 1

Pipa air Pipa air

Pipa air Pipa air

Pipa air Pipa air

A L I R A N P I P A A I R S1 I L M U K O M P U T E R U S U Pipa air

L E G E N D

ws

Km

Wadah air

= Aliran Air = Washtafel

= Kamar Mandi = Wadah Penampung Air = Pipa Air Masing-Masing Bagian

Gambar 3.10 gambaran Ilustrasi Dari Penerapan Algoritma Maximum-Flow Dalam Optimasi Volume Air Pada Pipa S-1 Ilmu Komputer USU.

BAB 4


(53)

4.1 Implementasi Sistem

Tahap implementasi sistem merupakan lanjutan dari tahap perancangan sistem. Pada tahap ini dilakukan implementasi sistem ke dalam bahasa pemrograman berdasarkan hasil analisis dan perancangan sistem. Pada tahap implementasi ini digunakan perangkat lunak dan perangkat keras. Implementasi dilakukan dengan menggunakan bahasa pemrograman

Java. Perancangan sistem yang baik akan memudahkan pengembangan sistem dalam tahap implementasi. Proses selanjutnya dalam penerapan pembuatan aplikasi adalah proses implementasi dan pengujian sistem. Implementasi merupakan tahap di mana sistem melakukan fungsionalitas utamanya setelah suatu program atau perangkat lunak selesai di rancang. Sedangkan tahap pengujian merupakan tahap yang di lakukan setelah proses pengimplementasian selesai dilakukan dan sampai proses uji coba sesuai dengan kriteria-kriteria yang diinginkan pengguna pada tahap perancangan sistem. Pada sistem ini terdapat 5 form yaitu form Menu Awal, Form Upload Graf, Form Keluaran Graf

Gambar, Form Graf Perhitungan U,V,W,X,Y Pada Setiap Iterasi, Form Keluaran Graf


(54)

di jalakan. Form ini berisi informasi mengenai judul skripsi, penulis dan jurusan. Berikut pada gambar 4.1 di tampilkan Form Menu Awal pada sistem ini.


(55)

4.1.2 Form Upload Graf

Form Upload Graf ini merupakan tampilan untuk melakukannya proses menampilkan

graf gambar menggunakan upload graf. Di mana graf yang dimasukkan akan dilakukan proses menampilkan gambar graf. Kemudian tekan tombol next. Upload

gambar graf dapat di lihat pada gambar 4.2.


(56)

4.1.3 Form Upload Graf selanjutnya

Form Upload Graf ini merupakan tampilan untuk melakukannya proses dari tampilan

graf gambar sebelumnya menggunakan upload graf. Dimana graf yang dimasukkan akan di lakukan proses menampilkan gambar graf. Kemudian tekan tombol look in mencari gambar graf atau graf.png. Kemudian tekan tombol open untuk melihat keluaran dari graf gambar tersebut dapat melihat pada gambar 4.3


(57)

Gambar 4.3 Form Upload Graf Selanjutnya

4.1.4Form Tampilan Hasil Upload Graf

Form Tampilan Hasil Upload Graf merupakan form yang berisi gambaran dari graf

yang akan dijelaskan pada form selanjutnya. Ini juga dapat membantu pengguna dalam menjelaskan dan menjalankan sistem ini. Form keluaran graf ini dapat dilihat pada gambar 4.4


(58)

Gambar 4.4 Form Tampilan Hasil Upload Graf


(59)

Form Tampilan PerhitunganU,V,W,X,Y Setiap Iterasi merupakan form yang berisi gambaran dari graf guna mengitung setiap iterasi-iterasi yang akan dilalui. Form tampilan perhitungan U,V,W,X,Y pada iterasi ini dapat dilihat pada gambar 4.5.


(60)

4.1.6Form Tampilan Menu Log Out

Form Tampilan Menu Log Out merupakan form yang berisi gambaran dari akhir keseluruhan proses pada sistem. Ini juga dapat membantu pengguna dalam menjelaskan dan menjalankan system ini. Form tampilan menu log out ini dapat dilihat pada gambar 4.6.


(61)

4.2Pengujian

4.2.1 Pengujian Implementasi Maximum-Flow

Maximum-Flow Untuk Mencari Aliran Maximum Pada Setiap Aliran Pipa air S1 Ilmu Komputer USU.

Iteration 1: Node 1 – 2 - 5 – 7 10 < 30 < 40


(62)

1 4 7 2 5 3 6 0 10 30 0 10 0 20 0 40 0 0 20 15 0 40 20 0 10 0 0 10 0 30 10 0 10 20 10 sourse sink U W X

Dalam gambar diatas dijelaskan bahwa, salah satu aliran air yang mengalir melalui lintasan adalah 1-2-5-7, yang mempunyai sisa min 40-10-30 =10 liter air. Kemudian Kemudian nilai yang ada pada iterasi pada 1, 2, 5, 7 dikurangi dengan nilai minimum yang telah didapat sebelumnya, sehingga mendapatkan hasil.


(63)

1

2

5

7

30

10

0

10

30

10

Iteration 2: Node 1 – 2 – 4 - 5 – 7 10 < 20 < 20 < 30 Minimum = 10 liter air


(64)

1 4 7 2 5 3 6 10 0 20 10 10 0 20 0 40 0 0 20 15 0 30 20 0 10 0 10 10 0 20 20 0 10 10 10 20 10 Source sink U V W X

Pada gambar diatas dijelaskan bahwa, salah satu aliran air pada aliran lintasan 1-2-4-5-7, dan memiliki nilai sisa min 30-10-20-20 = 10 liter air. Kemudian nilai yang ada pada iterasi pada 1, 2, 4, 5, 7 di kurangi dengan nilai minimum yang telah di dapat sebelumnya, sehingga mendapatkan hasil.


(65)

1

2

4

7

5

20

20

0

10

10

10

10

20

Iteration 3: Node 1 – 3 – 4 - 5 – 7 10 < 10 < 15 < 40 Minimum = 10 liter air

1 4 7

2 5 3 6 20 0 10 20 10 0 20 0 40 0 0 20 15 5 20 10 0 0 10 10 10 0 30 10 5 10 0 10 0 30 Source Sink

U V

W


(66)

Kemudian pada iteration 3 dijelaskan pada aliran 1-3-4-5-7 yang mempunyai sisa min 40-15-10-10 = 10 liter air. Kemudian nilai yang ada pada iterasi pada 1, 3, 4, 5, 7 di kurangi dengan nilai minimum yang telah didapat sebelumnya, sehingga mendapatkan hasil.

1

3

4

5

7

30

10 5

10 0

10

0

30

Iteration 4: Node 1 – 3 – 4 – 7 5 < 10 < 30


(67)

1 4 7 2 5 3 6 20 0 10 20 10 5 20 0 30 10 0 20 5 10 20 10 0 0 10 10 10 0 25 15 0 15 5 0

Source sink

U V

W

Kemudian pada iteration 4 juga dijelaskan pada aliran 1-3-4-7 yang mempunyai sisa min 30-5-10 = 5 liter air. Kemudian nilai yang ada pada iterasi pada 1, 3, 4, 7 dikurangi dengan nilai minimum yang telah didapat sebelumnya, sehingga mendapatkan hasil 1 3 4 7 25 10 0 15 5 5


(68)

Iteration 5: Node 1 – 3 – 6 – 7 20 < 20 < 25

Minimum = 20 liter air

1 4 7

2 5 3 6 20 0 10 20 5 5 20 0 25 15 0 20 5 15 20 10 0 0 10 10 10 0 5 35

0 20 0

20

Source Sink

U

V

W

Kemudian pada iteration 5 dijelaskan pada aliran 1-3-6-7 juga yang mempunyai sisa min 25-20-20 = 20 liter air. Kemudian nilai yang ada pada iterasi pada 1, 3, 6, 7 dikurangi dengan nilai minimum yang telah di dapat sebelumnya, sehingga mendapatkan hasil.


(69)

1

3

5 35 20

6

7

0 0 20

ITERASI Node/Aliran Air Dari Bilangan U,V,W,X,Y, Kapasitas Air Nilai Minimum(Terkecil) Iterasi 1

1 Ke 2 U 30 L

10 Liter Air 2 Ke 5 V 10 L

5 Ke 7 W 10 L

Iterasi 2

1 Ke 2 U 30 L

10 Liter Air 2 Ke 4 V 10 L

4 Ke 5 W 20 L 5 Ke 7 X 20 L

Iterasi 3

1 Ke 3 U 40 L

10 Liter Air 3 Ke 4 V 15 L

4 Ke 5 W 10 L 5 Ke 7 X 10 L

Iterasi 4

1 Ke 3 U 30 L

5 Liter Air 3 Ke 4 V 5 L

4 Ke 7 W 10 L

Iterasi 5

1 Ke 3 U 25 L

20 Liter Air 3 Ke 6 V 20 L


(70)

Jumlah Aliran Maximum Yang Dilalui Pipa Air 55 Liter Air

Gambar 4.7 Form Hasil

Graf Dengan Capacity (c), Source (s) Dan

Sink (t)

Flow (f) Dari

s Ke t Yang Maximum.

4.2.2 pengujian Hasil Akhir Maximum-Flow

Pengujian sistem pada Penerapan Algoritma Maximum-Flow dalam optimasi volume air pada Pipa S-1 Ilmu Komputer USU. Hal pertama yang akan di lakukan adalah

uploadgraf guna untuk mencari gambar yaitu graf yang dimasukan akan melakukan suatu proses untuk menampilakan gambar graf. Dengan menggunakan tombol look in untuk mencari gambar graf atau graf.png kemudian tekan tombol open untuk melihat


(71)

keluaran dari graf gambar, selanjutnya tekan tombol next untuk proses selanjutnya.

Kemudian pada pengujian Penerapan Algoritma Maximum-flow dalam optimasi volume air pada Pipa S-1 Ilmu Komputer USU di bawah ini merupakan tabel graf

gambar pengujian yang mana pada inputan U, V, W, X, Y merupakan iterasi dari graf

gambar yaitu pada inputan U, V, W, X, Y kita inputkan variabel atau angka yang telah di tentukan seberapa besar kapasitasnya, kemudian setelah kita inputkan maka tekan tombol hitung maka hasil hitung akan diproses.


(72)

(73)

Setelah selesai hasil hitung diproses maka proses selanjutnya yaitu di temukan nilai

minimum (nilai terkecil) pada inputan U, V, W, X, Y. Kemudian tekan tombol update

pada masing-masing dari inputan U, V, W, X, Y, yang mana sistem update akan memproses pada sistem. Guna untuk menampilkan hasil dari nilai minimum dari inputan U, V, W, X, Y pada setiap iterasi.


(74)

lalu setelah di masukan kapasita air pada inputan U, V, W, X, Y , maka inputan akan di


(75)

Kemudian pada proses hasil dari sistem update, tekan tombol iterasi(n). yaitu proses langkah pada iterasi Maximum-Flow tersebut.


(76)

Kemudian ulangi proses awal untuk mengitung kembali inputan U, V, W, X, Y lanjutan, atau bisa disebut proses iterasi selanjutnya.


(77)

lalu setelah di masukan kapasitas air pada inputan U, V, W, X, Y , maka inputan akan di proses pada sistem update. Kemudian nilai yang dihasilkan dikurangi dengan nilai minimum yang telah didapat sebelumnya, sehingga mendapatkan hasil.

Ulangi proses inputan pada U, V, W, X, Y yang akan di lalui setiap iterasi, sampai iterasi semua selesai.


(78)

Setelah semua inputan U, V, W, X, Y yang sudah dilalui pada setiap iterasi, maka proses selanjutnya yaitu hitung nilai keseluruhan maximum keseluruhan maka proses berakhir.


(79)

BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dari hasil analisis dari Penerapan Algoritma Maximum-Flow dalam optimasi volume air pada pipa S-1 Ilmu Komputer USU dengan algoritma yang telah dilakukan, dapat disimpulkan bahwa:

1. Untuk Penerapan algoritma Maximum-Flow, dalam pipa air S-1 ilmu Komputer USU.

2. Supaya hasil optimum mendekati kondisi nyata di lapangan, perlu ditambah dengan analisis mengenai bagaimana aliran air yang ada di S-1 ilmu Komputer USU.


(80)

Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah sebagai berikut:

Penentuan algoritma yang digunakan untuk permasalah maximum flow sangatlah bergantung pada graf yang diberikan dan permasalan spesifik dari graf yang diberikan. Algoritma yang dipakai bergantung pada jenis permasalahan pada penerapan algoritma maximum flow dalam optimasi volume air pada pipa air S-1 Ilmu Komputer USU.


(81)

DAFTAR PUSTAKA

Bagus S, 2010. Kaji Eksperimental Rugi Tekan (Head Losses) Dan Faktor

Gesekan Yang Terjadi Pada Pipa Lurus Dan Belokan, Undip, Semarang. Evi, S. 2010, Pengembangan Simulasi Aliran Air Pada Saluran Drainase

Kota Menggunakan Pemodelan Network Flow. Program Magister Bidang Keahlian Telematik Jurusan Teknik Elektro Fakultas Teknologi Industri Institut Teknologi Sepuluh November Surabaya.

Fakhri, 2008, Penerapan Algoritma Djikstra Dalam Pencarian Solusi Maximu-Flow, Jurusan Teknik Informatika Sekolah Tinggi Elektro Dan Informatika ITB, Bandung.

Fathima, T. 2013, Penyelesaian Masalah Aliran Maksimum Menggunakan Edmons

Karp Algorithm. Universitas Negeri Malang

Habibi, L. 2008 Pemodelan Network-Flow Analysis Sistem Distribusi Air Menggunakan Algoritma Genetika-Metode Newton. Tesis Magister. Institut Teknologi Bandung.

Hayati, Izza, Dkk. 2010. Penyelesaian Maximum-Flow Problem Pada Distribusi Semen Di Pt. Jawa Berkat Utama. Laporan. Universitas Negeri Malang. Email. Elizabeth Dan Wuntikatri. Inu 2007. Penerapan Graf Kompatibel Dan Maximum-Flow Dalam Teori Graf Pada Lintasan Kendaraan


(82)

Laporan.

Joesron, L. 1992 “Banjir Rencana Untuk Bangunan Air”. Departemen Pekerjaan Umum

Kevin, T. 2013, Analisis Kompleksitas Algoritma Untuk Menyelesaikan Oktaviana, S, S. 2007. Universitas Negri Medan. Aplikasi Teori Graf Dengan Menggunakan Pipa Pdam Daerah Sawojajar Blok H-1.

Putra, A, P. 2010, Eksplorasi Kerja Maximum Edmons Karb Dalam Meneyelesaikan Maximum Flow Problem. Skripsi Malang Universitas Negri Malang. Rossen, K.H. 2000. Discreate Mathematics And Its Aplications.: Mc Graw Hill, Inc Newyork

Rosyida. 2006 Penerapan Model Maximum-Flow Dalam Teori Graf Pada 1990 Willson. Graf An Introduction Approach Canada.

Sanjaya, D. 2014. Implementasi Mobile Tracking Menggunakan Metode Ant Colony Optimization dan Google Maps Api. Program Studi Ekstensi S1 Ilmu Komputer Fakultas Ilmu Komputer Dan Teknologi Informasi Universitas Sumatera Utara Medan.

Thesa, F. 2013, Pencarian Aliran Maksimum Dengan Algoritma Ford-Fulkerson (Studi Kasus Pada Jaringan Listrik Di Kota Tegal). Skripsi. Jurusan

Matematika Fakultas Matematika Dan Ilmu Pengetahuan Alam Universitas Negeri Semarang


(83)

LISTING PROGRAM

package app.maximumflow;

import java.awt.BorderLayout; import java.awt.EventQueue;

import javax.swing.JFrame; import javax.swing.JPanel;

import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableModel; import javax.swing.JLabel;

import javax.swing.ImageIcon;

import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.Color;

import java.awt.Font;

import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.JTextField; import javax.swing.JPasswordField; import javax.swing.JButton;


(84)

import net.java.balloontip.BalloonTip;

import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.sql.Blob;

import java.util.Vector;

import java.util.logging.Level; import java.util.logging.Logger;

import javax.swing.JScrollPane; import javax.swing.JTable;

import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.awt.Toolkit;

import java.io.File;

import java.io.FileInputStream;


(85)

private JPanel contentPane; private JLabel lblBackgrond; private JPanel panel;

private JLabel label_1; private JLabel lblVari1; private JButton btnUpdate; private JButton btnKeluar; private JTextField txtVar1; private BalloonTip tooltip; private JTextField txtVar2; private JLabel lblVariabel; private JTextField txtVar3; private JLabel lblVariabel_1; private JLabel lblHasil;

private JTextField txtNilaiTerkecil; private JScrollPane scrTabel; private JTable table;

DefaultTableModel tabelModel;

String data[] = { "U", "V","W","X","Y", "Nilai.Min" }; private JButton btnHit;

private JLabel lblNilaiMax; private JTextField txtNilaiMax; private JButton btnUpdateV; private JButton btnUpdateW;


(86)

private JButton btnHitung; private JTextField txtVar4; private JLabel lblX;

private JButton btnUpdateX; private JTextField txtVar5; private JLabel lblY;

private JButton btnUpdateY; private JLabel label;

private JLabel label_2;

private JFileChooser fc = new JFileChooser(); Blob blob;

BufferedImage img; /**

* Launch the application. */

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() { public void run() {

try {

MaxFlow frame = new MaxFlow(); frame.setVisible(true);

} catch (Exception e) { e.printStackTrace(); }


(87)

} }); }

/**

* Create the frame. */

public MaxFlow() {

setIconImage(Toolkit.getDefaultToolkit().getImage(MaxFlow.class.getRes ource("/img/sl.png")));

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 417, 470);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane);

contentPane.setLayout(null); setLocationRelativeTo(null);

JPanel panel_1 = new JPanel();

panel_1.setBackground(Color.BLACK); panel_1.setBounds(0, 434, 571, 10); contentPane.add(panel_1);


(88)

txtVar1 = new JTextField();

txtVar1.addKeyListener(new KeyAdapter() { @Override

public void keyTyped(KeyEvent e) {

btnHit.setEnabled(false); btnHitung.setEnabled(true); }

});

txtVar1.requestFocus();

txtVar1.addFocusListener(new FocusAdapter() { @Override

public void focusGained(FocusEvent e) {

tooltip = new BalloonTip(txtVar1, "Masukan kapasitas");

}

@Override

public void focusLost(FocusEvent e) { tooltip.closeBalloon();

} });


(89)

txtVar1.setBackground(Color.BLACK); txtVar1.setBounds(50, 101, 46, 25); contentPane.add(txtVar1);

txtVar1.setColumns(10);

JLabel lblUsername = new JLabel("Proses langkah setiap iterasi pada maximum-flow :");

lblUsername.setFont(new Font("Comic Sans MS", Font.BOLD, 12));

lblUsername.setForeground(Color.WHITE); lblUsername.setBounds(25, 248, 302, 25); contentPane.add(lblUsername);

lblVari1 = new JLabel("U :");

lblVari1.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); lblVari1.setForeground(Color.WHITE);

lblVari1.setBounds(25, 101, 69, 25); contentPane.add(lblVari1);

btnUpdate = new JButton("Update"); btnUpdate.setEnabled(false);

btnUpdate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) {


(90)

//mengambil nilai string txt1 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

a = Integer.parseInt(txtVar1.getText());

//mengambil nilai string txt1 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c

c = a-b;

//mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c);

//menampilkan string hasil di label Hasil txtVar1.setText(hasil);

btnHit.setEnabled(true); btnHitung.setEnabled(false); }

});

btnUpdate.setFont(new Font("Comic Sans MS", Font.BOLD, 12)); btnUpdate.setForeground(new Color(255, 255, 255));

btnUpdate.setBackground(new Color(0, 0, 0)); btnUpdate.setBounds(108, 101, 86, 25);

contentPane.add(btnUpdate);


(91)

btnUpdateV.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

int a,b,c;

//mengambil nilai string txt2 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

a = Integer.parseInt(txtVar2.getText());

//mengambil nilai string txt2 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c

c = a-b;

//mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c);

//menampilkan string hasil di label Hasil txtVar2.setText(hasil);

} });

btnUpdateV.setEnabled(false);

btnUpdateV.setForeground(Color.WHITE);

btnUpdateV.setFont(new Font("Comic Sans MS", Font.BOLD, 12));

btnUpdateV.setBackground(Color.BLACK); btnUpdateV.setBounds(108, 138, 86, 25);


(92)

contentPane.add(btnUpdateV);

btnUpdateW = new JButton("Update");

btnUpdateW.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {

int a,b,c;

//mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

a = Integer.parseInt(txtVar3.getText());

//mengambil nilai string txt3 dan mengubahnya menjadi tipe integer kemudian menampungnya di variabel a

b = Integer.parseInt(txtNilaiTerkecil.getText()); //menjumlahkan variabel a dan b kemudian menampungnya di variabel c

c = a-b;

//mengubah data integer ke string di variabel hasil String hasil = String.valueOf(c);

//menampilkan string hasil di label Hasil txtVar3.setText(hasil);

} });

btnUpdateW.setEnabled(false);


(93)

btnUpdateW.setFont(new Font("Comic Sans MS", Font.BOLD, 12));

btnUpdateW.setBackground(Color.BLACK); btnUpdateW.setBounds(287, 101, 77, 25); contentPane.add(btnUpdateW);

lblVariabel = new JLabel("V :");

lblVariabel.setForeground(Color.WHITE);

lblVariabel.setFont(new Font("Comic Sans MS", Font.BOLD, 12));

lblVariabel.setBounds(25, 139, 18, 25); contentPane.add(lblVariabel);

txtVar2 = new JTextField();

txtVar2.addFocusListener(new FocusAdapter() { @Override

public void focusGained(FocusEvent e) {

tooltip = new BalloonTip(txtVar2, "Masukan kapasitas");

}

@Override

public void focusLost(FocusEvent e) { tooltip.closeBalloon();


(1)

panel.setBackground(Color.BLACK); panel.setBounds(0, 0, 571, 89);

contentPane.add(panel); panel.setLayout(null);

label_1 = new JLabel(""); label_1.setIcon(new

ImageIcon(Main.class.getResource("/img/usu.png"))); label_1.setBounds(12, 0, 81, 91);

panel.add(label_1);

label = new JLabel("SIMULASI PIPA AIR MENGGUNAKAN \n");

label.setForeground(Color.WHITE);

label.setFont(new Font("Comic Sans MS", Font.BOLD, 14)); label.setBounds(105, 12, 288, 37);

panel.add(label);

label_2 = new JLabel("ALGORITMA MAXIMUM-FLOW"); label_2.setForeground(Color.WHITE);

label_2.setFont(new Font("Comic Sans MS", Font.BOLD, 14)); label_2.setBounds(105, 40, 255, 37);


(2)

}

void Keluar(){ try {

int reply = JOptionPane.showConfirmDialog (this, "Yakin Mau Logout?", "Sistem - Keluar",

JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if (reply == JOptionPane.YES_OPTION) {

setVisible (false); //Menyembunyikan Frame.

dispose(); //Membersihkan Resource dari system memori

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Membebaskan aplikasi dari memori

//System.exit (0); //Keluar dari Aplikasi. }

}

catch (Exception ex) {

System.out.println(ex); }


(3)

void hitMax(){

int jumlahBaris = tabelModel.getRowCount(); int x = 0;

int y;

for (int i=0; i<jumlahBaris; i++){

y = Integer.parseInt(tabelModel.getValueAt(i, 5).toString()); x = x + y;

}

txtNilaiMax.setText(String.valueOf(x)); }

void bersihkan(){

txtVar1.setText(""); txtVar2.setText(""); txtVar3.setText(""); txtVar4.setText(""); txtVar5.setText("");

txtNilaiTerkecil.setText(""); txtVar1.requestFocus(); }


(4)

for(int i=0;i<brs;i++){

String no = String.valueOf(i+1); tabelModel.setValueAt(no+".",i,0); }

}

public static Object neighbors(int x, int[][] capacities) { // TODO Auto-generated method stub

return null; }

void aktifkan(){

btnUpdate.setEnabled(true); btnUpdateV.setEnabled(true);

btnUpdateW.setEnabled(true); btnUpdateX.setEnabled(true); btnUpdateY.setEnabled(true); btnHitung.setEnabled(false);

}


(5)

CURRICULUM VITAE

Nama : NURUL HIKMAH NASUTION

Alamat Sekarang : Jalan Perjuangan No 18 C, Kec. Setia Budi Kota Medan

Alamat Orang Tua : Jalan Printis Kemerdekaan Kec.Lima Puluh Kel.Empat Negri Dusun VII No 12. Kab.Batu Bara

Telp/ HP : 087868761654

Email : nurulhikmahnst@gmail.com

Riwayat Pendidikan:

1998 – 2004 MADRASAH IBTIDAIYAH NEGRI(MIN) KUALA GUNUNG 2004 – 2007 MADRASAH TSANAWIYAH(MTS) CIPTA SIMPANG DOLOK 2007 – 2010 MADRASAH ALIYAH NEGRI(MAN) LIMA PULUH

Keahlian/kursus yang diikuti: Keahlian Bahasa Pemrograman: - Berbasis Dekstop: Java, Matlab, - Database: MySQL

- Design : Photoshop, Kursus:


(6)