Hak cipta dan penggunaan kembali:
Lisensi ini mengizinkan setiap orang untuk menggubah,
memperbaiki, dan membuat ciptaan turunan bukan untuk
kepentingan komersial, selama anda mencantumkan nama
penulis dan melisensikan ciptaan turunan dengan syarat
yang serupa dengan ciptaan asli.
Copyright and reuse:
This license lets you remix, tweak, and build upon work
non-commercially, as long as you credit the origin creator
and license it on your new creations under the identical
terms.
IMPLEMENTASI ALGORITMA MIN-COST MAX-FLOW
UNTUK PENCOCOKAN PEKERJAAN PADA APLIKASI
LELANG PEKERJAAN BERBASIS WEB
SKRIPSI
Diajukan sebagai salah satu syarat untuk memperoleh gelar
Sarjana Komputer (S. Kom.)
Kevin Purwito 11110110017
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI
LEMBAR PENGESAHAN SKRIPSI
IMPLEMENTASI ALGORITMA MIN-COST MAX-FLOW
UNTUK PENCOCOKAN PEKERJAAN PADA APLIKASI
LELANG PEKERJAAN BERBASIS WEB
oleh Nama : Kevin Purwito NIM : 11110110017
Fakultas : Teknologi Informasi dan Komunikasi Program Studi : Teknik Informatika
Tangerang, 12 Agustus 2015
Ketua Sidang
Dr. P M Winarno, M.Kom.
Dosen Penguji
Yustinus Widya W., S.Kom., M.Sc. Dosen Pembimbing I
Dennis Gunawan, S.Kom., M.Sc.
Dosen Pembimbing II
Adhi Kusnadi, S.T., M.Si.
Mengetahui,
Ketua Program Studi Teknik Informatika
PERNYATAAN TIDAK MELAKUKAN PLAGIAT
Dengan ini saya:
Nama : Kevin Purwito NIM : 11110110017 Program studi : Teknik Informatika
Fakultas : Teknologi Informasi dan Komunikasi
menyatakan bahwa skripsi yang berjudul “Implementasi Algoritma Min-Cost Max-Flow untuk Pencocokan Pekerjaan pada Aplikasi Lelang Pekerjaan Berbasis Web” adalah karya ilmiah pribadi saya, bukan karya ilmiah yang ditulis oleh orang atau lembaga lain. Semua karya ilmiah orang atau lembaga lain yang dirujuk dalam skripsi ini telah disebutkan sumbernya serta dicantumkan dalam Daftar Pustaka.
Jika di kemudian hari terbukti ditemukan kecurangan/penyimpangan baik dalam pelaksanaan karya ilmiah skripsi maupun dalam penulisan laporan karya ilmiah skripsi, saya bersedia menerima konsekuensi dinyatakan tidak lulus untuk mata kuliah skripsi yang telah saya tempuh.
Tangerang, 12 Agustus 2015
IMPLEMENTASI ALGORITMA MIN-COST MAX-FLOW
UNTUK PENCOCOKAN PEKERJAAN PADA APLIKASI
LELANG PEKERJAAN BERBASIS WEB
ABSTRAK
Penelitian ini membahas tentang implementasi algoritma min-cost max-flow untuk melakukan job assignment pada situs lelang pekerjaan, yaitu dengan menyusun pekerjaan dan pekerja ke dalam suatu bipartite matching graph untuk menghasilkan assignment yang memiliki total biaya paling minimal. Penelitian ini dilakukan karena situs-situs lelang pekerjaan umumnya tidak memiliki fitur auto assignment, sehingga para pengguna harus memilih pekerja secara manual. Hal inilah yang mendorong untuk dilakukannya suatu penelitian untuk membuat fitur
auto assignment tersebut. Tujuan penelitian ini adalah untuk
mengimplementasikan algortima min-cost max-flow untuk job assignment pada situs lelang pekerjaan yang dibangun dengan bahasa pemrograman PHP dan basis data MySQL, serta menyusun pekerjaan dan tenaga kerja ke dalam bipartite matching graph. Pengujian pada penelitian dilakukan dengan membuat tabel yang berisi daftar proyek yang diujikan, hasil yang diharapkan sebelum pengujian, dan hasil akhir setelah pengujian. Jika hasil akhir setelah pengujian sudah sesuai dengan hasil yang diharapkan, maka penelitian bisa dikatakan berhasil. Hasil yang diharapkan diperoleh dengan menghitung biaya total minimal secara manual, sedangkan hasil pengujian dilakukan dengan menjalankan prosedur yang telah dibuat untuk menghitung biaya total minimal setiap pemilik proyek. Selain itu, dibuat juga suatu skenario dari salah satu sampel yang menjelaskan bagaimana penyusunan bipartite matching graph dan pemilihan assignment dilakukan. Hasil penelitian menunjukkan bahwa hasil job assignment yang dilakukan dengan implementasi algoritma min-cost max-flow pada aplikasi sudah sesuai dengan hasil yang diharapkan, yaitu memiliki total biaya yang paling minimal.
Kata kunci: bipartite matching graph, job assignment, min-cost max-flow, situs lelang pekerjaan
IMPLEMENTATION OF MIN-COST MAX-FLOW ALGORITHM FOR
JOB ASSIGNMENT ON A WEB-BASED FREELANCE APPLICATION
ABSTRACT
This research discusses about the implementation of min-cost max-flow algorithm to do the job assignment on job auction sites, namely by arranging jobs and workers into a bipartite matching graph to generate assignment that has the minimum total cost. This research was conducted because job auction sites generally do not have auto assignment feature, so the user must manually assign workers. This encourages the research to make the auto assignment to be done. The purpose of this research is to implement min-cost max-flow algorithm for job assignment on job auction site that is developed with PHP programming language and MySQL database, and to arrange the jobs and workers into a bipartite matching graph. Tests on this research is done by creating a table that contains a list of projects that are tested, the results of which are expected before the test, and the final results after the test. If the end result after the test is in conformity with the expected results, this research can be said to be successful. Expected results are done by calculating the minimum total cost manually, while the results of tests are carried out by running a procedure that has been created to calculate the minimum total cost of every owner of the project/job. In addition, a scenario from one sample explaining how the arrangement and selection of bipartite graph matching and job assignment is done is also created. The results showed that the results of job assignment performed by the implementation of min-cost max-flow algorithm on the application are in conformity with the expected results, which have the minimum total cost.
Keywords: bipartite matching graph, job assignment, job auction sites, min-cost max-flow
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa, karena atas rahmat-Nya, penulis dapat menyelesaikan laporan skripsi dengan judul “Implementasi Algoritma Min-Cost Max-Flow untuk Pencocokan Pekerjaan pada Aplikasi Lelang Pekerjaan Berbasis Web”. Laporan ini dibuat sebagai salah satu syarat kelulusan mata kuliah skripsi dan sebagian syarat untuk memperoleh gelar sarjana pada Program Studi Teknik Informatika, Fakultas ICT, Universitas Multimedia Nusantara.
Laporan skripsi ini dapat penulis selesaikan atas dukungan dari banyak pihak, untuk itu penulis mengucapkan terima kasih kepada:
1. Dr. Ninok Leksono, selaku Rektor Universitas Multimedia Nusantara. 2. Maria Irmina Prasetiyowati, S.Kom., M.T., selaku Ketua Program Studi
Teknik Informatika.
3. Dennis Gunawan, S.Kom., M.Sc., selaku pembimbing penulisan laporan skripsi.
4. Adhi Kusnadi, S.T., M.Si., selaku pembimbing pembuatan sistem yang digunakan dalam skripsi.
5. Archie Pusaka, kakak angkatan penulis di UMN, yang telah banyak membimbing penulis selama berkuliah, khususnya dalam kompetisi pemrograman, sehingga penulis dapat menggunakan ilmu yang didapat dalam pembuatan skripsi ini.
6. Keluarga dan sahabat penulis yang telah mendukung penulis dalam pembuatan dan penyelesaian laporan skripsi.
7. Seluruh dosen, teman dan pihak lain yang tidak dapat penulis sebutkan satu per satu.
Semoga laporan skripsi ini bermanfaat bagi para pembaca, khususnya bagi mahasiswa Universitas Multimedia Nusantara.
Jakarta, 12 Agustus 2015
DAFTAR ISI
LEMBAR PENGESAHAN SKRIPSI ... ii
PERNYATAAN TIDAK MELAKUKAN PLAGIAT ... iii
ABSTRAK ... iv
ABSTRACT ... v
KATA PENGANTAR ... vi
DAFTAR ISI ... viii
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xi
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah ... 2
1.3 Batasan Masalah ... 2
1.4 Tujuan Penelitian ... 3
1.5 Manfaat Penelitian ... 3
1.6 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 5
2.1 Flow Network ... 5
2.2 Maximum Flow ... 6
2.3 Min-Cost Max-Flow ... 7
2.4 Edmonds-Karp dan Dijkstra ... 8
BAB III METODE DAN PERANCANGAN APLIKASI ... 10
3.1 Metode Penelitian ... 10
3.2 Rancangan Aplikasi ... 11
3.2.1 Alur Aplikasi ... 12
3.2.2 Diagram Alir Sistem Lelang Kerja ... 17
3.2.3 Struktur Basis Data Aplikasi ... 29
3.3 Rancangan Antarmuka Aplikasi ... 36
BAB IV IMPLEMENTASI DAN HASIL PENELITIAN ... 47
4.1 Spesifikasi Sistem... 47
4.1.1 Spesifikasi untuk Mengembangkan Sistem ... 47
4.1.2 Spesifikasi untuk Menguji Sistem dan Mengumpulkan Data ... 47
4.2 Tampilan Antarmuka Aplikasi ... 48
4.3 Pengumpulan dan Analisis Sampel Data ... 57
BAB V SIMPULAN DAN SARAN ... 77
5.1 Simpulan ... 77
5.2 Saran ... 77
DAFTAR PUSTAKA ... 79
LAMPIRAN ... 81
DAFTAR GAMBAR
Gambar 2.1 Contoh Flow Network ... 6
Gambar 2.2 Contoh Maximum Flow Network ... 7
Gambar 2.3 Contoh Min-Cost Max-Flow Network ... 8
Gambar 2.4 Pseudocode untuk Algoritma Dijkstra ... 8
Gambar 2.5 Pseudocode untuk Algoritma Edmonds-Karp ... 9
Gambar 3.1 Context Diagram Lelang Kerja ... 13
Gambar 3.2 Diagram Level 1 Lelang Kerja ... 14
Gambar 3.3 Diagram Level 2 Subproses 1 ... 15
Gambar 3.4 Diagram Level 2 Subproses 2 ... 16
Gambar 3.5 Diagram Level 2 Subproses 3 ... 17
Gambar 3.6 Flowchart Sistem Lelang Kerja ... 18
Gambar 3.7 Cara Kerja Otomatisasi Job Assignment ... 19
Gambar 3.8 Flowchart Prosedur Mcmf (Min-cost Max-flow)... 20
Gambar 3.9 Flowchart Prosedur InitMcmf ... 21
Gambar 3.10 Flowchart Prosedur Dijkstra ... 22
Gambar 3.11 Flowchart Prosedur InitDijkstra ... 23
Gambar 3.12 Flowchart Prosedur StartDijkstra ... 24
Gambar 3.13 Flowchart Prosedur CancelPath ... 25
Gambar 3.14 Flowchart Prosedur SelectPath ... 26
Gambar 3.15 Flowchart Prosedur Pot ... 26
Gambar 3.16 Flowchart Prosedur EndDijkstra ... 27
Gambar 3.17 Flowchart Prosedur StartMcmf ... 28
Gambar 3.18 Flowchart Prosedur UpdateFlow ... 29
Gambar 3.19 ERD Aplikasi Lelang Kerja ... 30
Gambar 3.20 Rancangan Laman Beranda ... 36
Gambar 3.21 Rancangan Laman Beranda dengan Form Daftar ... 37
Gambar 3.22 Rancangan Laman Beranda dengan Form Masuk ... 38
Gambar 3.23 Rancangan Laman Pengisian Kemampuan ... 39
Gambar 3.24 Rancangan Laman Cari Pekerjaan ... 39
Gambar 3.25 Rancangan Laman Profil Saya ... 40
Gambar 3.26 Rancangan Laman Buat Proyek ... 41
Gambar 3.27 Rancangan Laman Cari Pekerja ... 42
Gambar 3.28 Rancangan Laman Proyek Pemberi Kerja Terbuka ... 43
Gambar 3.29 Rancangan Laman Proyek Pemberi Kerja Berjalan ... 43
Gambar 3.30 Rancangan Laman Proyek Pemberi Kerja Lampau ... 44
Gambar 4.1 Laman Beranda Bagian Atas ... 48
Gambar 4.2 Laman Beranda Bagian Bawah ... 49
Gambar 4.3 Laman Beranda, Form Login ... 49
Gambar 4.4 Laman Beranda, Form Register ... 50
Gambar 4.5 Laman Form Kemampuan ... 50
Gambar 4.6 Laman Cari Pekerjaan ... 51
Gambar 4.7 Laman Profil ... 51
Gambar 4.8 Laman Buat Proyek ... 52
Gambar 4.9 Laman Cari Pekerja ... 52
Gambar 4.10 Laman Proyek Terbuka untuk Pemberi Kerja ... 53
Gambar 4.11 Laman Proyek Berjalan untuk Pemberi Kerja ... 53
Gambar 4.12 Laman Proyek Lampau untuk Pemberi Kerja ... 54
Gambar 4.13 Laman Proyek Terbuka untuk Pekerja ... 54
Gambar 4.14 Laman Proyek Berjalan untuk Pekerja ... 54
Gambar 4.15 Laman Proyek Lampau untuk Pekerja ... 55
Gambar 4.16 Laman Detail Proyek untuk Pemberi Kerja ... 55
Gambar 4.17 Laman Detail Proyek untuk Pekerja ... 56
Gambar 4.18 Laman Detail Proyek, Form Penawaran ... 56
Gambar 4.19 Hasil Uji Coba pada Username “khaaaalid” ... 67
Gambar 4.20 Hasil Uji Coba pada Username “decaldesign” ... 67
Gambar 4.21 Hasil Uji Coba pada Username “jlipsey” ... 68
Gambar 4.22 Hasil Uji Coba pada Username “ndalleva” ... 68
Gambar 4.23 Hasil Uji Coba pada Username “REYMARTE” ... 69
Gambar 4.24 Hasil Uji Coba pada Username “tolle82” ... 69
Gambar 4.25 Bipartite Matching Graph pada Pengguna “decaldesign” ... 71
Gambar 4.26 Bipartite Matching Graph pada Simulasi Pertama ... 73
Gambar 4.27 Bipartite Matching Graph pada Simulasi Kedua ... 74
DAFTAR TABEL
Tabel 3.1 Struktur Tabel Kategori ... 31
Tabel 3.2 Struktur Tabel Kemampuan ... 31
Tabel 3.3 Struktur Tabel Pengguna ... 32
Tabel 3.4 Struktur Tabel Proyek... 33
Tabel 3.5 Struktur Tabel Daftar_kemampuan ... 34
Tabel 3.6 Struktur Tabel Daftar_kemampuan_proyek ... 35
Tabel 3.7 Struktur Tabel Penawaran... 35