SKRIPSI
NURUL HIKMAH NASUTION
101401009
PROGRAM STUDI S-1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
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
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,
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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.
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
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.
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).
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
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
T 6
9
12 7
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 }
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:
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.
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
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
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
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
• 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.
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 )
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)
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
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
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
1
3
4
5
7
30 10 5 10 0 10 0 30Iteration 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
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
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.
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
[image:39.595.219.421.580.733.2]4,1 1,2
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
[image:40.612.134.515.410.566.2]C++
Gambar 3.2 Diagram Ishikawa Untuk Analisis Permasalahan Sistem
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.
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
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
[image:43.612.141.507.182.550.2]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
[image:44.612.130.520.185.657.2]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 /
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
[image:46.612.121.533.144.408.2]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
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.
[image:48.612.101.529.448.715.2]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
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
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)
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
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
[image:52.612.112.460.136.584.2]= 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
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
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.
4.1.2 Form Upload Graf
Form Upload Graf ini merupakan tampilan untuk melakukannya proses menampilkan
[image:55.595.168.488.297.577.2]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.
4.1.3 Form Upload Graf selanjutnya
Form Upload Graf ini merupakan tampilan untuk melakukannya proses dari tampilan
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
[image:57.595.137.517.185.463.2]
Gambar 4.4 Form Tampilan Hasil Upload Graf
[image:58.595.157.494.203.504.2]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.
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.
[image:60.595.177.443.299.606.2]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
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
1
2
5
7
30
10
0
10
30
10
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
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
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
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
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
1
3
5 35 206
7
0 0 20ITERASI 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
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
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
[image:71.595.173.466.389.731.2]gambar pengujian yang mana pada inputan U, V, W, X, Y merupakan iterasi dari graf
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
lalu setelah di masukan kapasita air pada inputan U, V, W, X, Y , maka inputan akan di
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.
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.
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.
Adapun saran yang dapat penulis berikan untuk mengembangkan penelitian ini adalah sebagai berikut:
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
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
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 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;
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 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();
}
});
}
/**
* 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);
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();
}
});
txtVar1.setBackground(Color.BLACK);
txtVar1.setBounds(50, 101, 46, 25);
contentPane.add(txtVar1);
txtVar1.setColumns(10);
JLabel lblUsername = new JLabel("Pr