Metode Depth First Search Untuk Pencarian Rute Jadwal Penerbangan
METODE
DEPTH FIRST SEARCH
UNTUK PENCARIAN RUTE
JADWAL PENERBANGAN
SKRIPSI
MASPIN SAHPUTRA
071402030
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
(2)
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Teknologi Informasi
MASPIN SAHPUTRA 071402030
PROGRAM STUDI TEKNOLOGI INFORMASI
FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA
(3)
ii
PERSETUJUAN
Judul : METODE DEPTH FIRST SEARCH UNTUK
PENCARIAN RUTE JADWAL PENERBANGAN
Kategori : SKRIPSI
Nama : MASPIN SAHPUTRA
Nomor Induk Mahasiswa : 071402030
Program Studi : SARJANA (S1) TEKNOLOGI INFORMASI
Departemen : TEKNOLOGI INFORMASI
Fakultas : ILMU KOMPUTER DAN TEKNOLOGI
INFORMASI (Fasilkom-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, 28 Juni 2012 Komisi pembimbing :
Pembimbing 2 Pembimbing 1
Drs. Sawaluddin M.IT M. Fadly Syahputra B.Sc.M.Sc.IT NIP 19591231 199802 1001 NIP 19830129 200912 1003
Diketahui/Disetujui oleh
Program Studi S1 Teknologi Informasi Ketua,
Prof. Dr. Opim Salim Sitompul, M.Sc NIP 19610817 198701 1001
(4)
PERNYATAAN
METODE DEPTH FIRST SEARCH UNTUK PENCARIAN RUTE JADWAL PENERBANGAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 28 Juni 2012
MASPIN SAHPUTRA 071402030
(5)
iv
PENGHARGAAN
Namo buddhaya, puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa, karena atas berkah, rahmat, dan bimbingan-NYA penulis dapat menyelesaikan penyusunan skripsi ini.
Dalam penulisan skripsi ini, penulis banyak mendapat bantuan berupa dukungan dan dorongan dari pihak lain. Dengan segala kerendahan hati, penulis ingin mengucapkan terima kasih kepada :
1. Kedua orang tua penulis, yaitu ayahanda Ong Eng Liong dan Ibunda tercinta Ng Suk Min yang telah memberi banyak dukungan dan kasih sayang serta bimbingan kepada penulis sehingga bisa menyelesaikan skripsi ini sesuai harapan mereka. Serta saudara-saudara saya Novita S.Kom, Ongky Maspin Wiratama B.Com.Sci, Monika Ratu Permata Sari, Raja Maspin Winata, dan Caroline yang telah memberikan dukungan moril maupun materil kepada penulis selama ini, dan seluruh keluarga besar atas perhatian dan dukungannya kepada penulis.
2. Ketua Program Studi Teknologi Informasi, Bapak Prof. Dr. Opim Sitompul, M.Sc dan Sekretaris Program Studi Teknologi Informasi juga selaku dosen pembimbing Bapak Drs. Sawaluddin, M.IT, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer Dan Teknologi Informasi Universitas Sumatera Utara, semua dosen pada Program Studi Teknologi Informasi dan pegawai di Teknologi Informasi Ibu Delima Harahap, Ibu Bamelia, Kak Maya Sofia, S.Kom, Kak Naumi Syah, Amd, Kak Wardah Chairani, S.E dan Bang Faisal. 3. Bapak M. Fadly Syahputra, B.Sc.M.Sc.IT selaku dosen pembimbing saya yang
telah meluangkan banyak waktu, tenaga, ide dan pikiran untuk menyelesaikan skripsi ini.
4. Bapak M. Anggia Muchtar, ST.MM.IT dan Bapak Dedy Arisandi, ST.M.Kom selaku dosen pembanding yang telah memberikan banyak saran dan masukkan serta petunjuk untuk menyelesaikan skripsi ini.
5. Teman-teman mahasiswa Teknologi Informasi Stambuk 2007 terutama Nurul Hayati, Tika Yunita dan Shifa Sihotang. Teman dan junior-junior saya baik di lingkungan atau di luar kampus serta Rekan kerja saya Willy Indrawan khususnya atas bantuan, masukkan, motivasi dan kerjasamanya.
(6)
Akhir kata penulis mengharapkan semoga skripsi ini dapat bermanfaat dan membantu semua pihak yang memerlukannya.
(7)
vi
ABSTRAK
Bertambahnya jumlah penumpang dan kebutuhan penumpang dari tahun ke tahun telah mengakibatkan munculnya banyak operator maskapai penerbangan. Oleh karena itu penggunaan pesawat terbang sebagai alat transportasi semakin diminati. Namun terdapat kendala bagi seorang penumpang yaitu apabila penumpang tersebut harus ke kota tujuan tertentu dimana tidak ada satu operator maskapai saja yang melayani langsung ke rute tujuan sehingga penumpang harus menggunakan atau berganti maskapai lain. Pada skripsi ini akan dijelaskan bagaimana menganalisis dan mengaplikasikan algoritma Depth First Search (DFS) dalam menentukan rute penerbangan tercepat dengan biaya atau waktu terbaik. Skripsi ini menggunakan data jadwal penerbangan di Indonesia. DFS akan mencari keseluruhan kemungkinan rute yang dapat terjadi dari data yang tersedia kemudian hasil dari seluruh pencarian akan dibandingkan untuk mendapatkan hasil tercepat atau termurah. Hasil dari penelitian ini menghasilkan sistem pencarian jadwal penerbangan berbasis desktop menggunakan bahasa pemprograman visual basic yang dapat menampilkan jadwal penerbangan tercepat atau termurah.
(8)
DEPTH FIRST SEARCH METHODS FOR SEARCH FLIGHT ROUTE SCHEDULE
ABSTRACT
Increasing the number of passanger over the year resulted many avation company. That is why the use of aircraft most widely used. However there is an obstacle if the passanger had to go to the destination where there is no airlines serving the directly route to destination so that the passanger have to looking for other airlines. In this study explains about how to analyze the Dept First Search (DFS) algorithm to determine the fastest flight route with the best cost and time. The DFS algorithm will search all possible that may occur from the available data of flight route then the result of all searches will be compared to get the fastest flight route. This study uses data of Indonesian flight schedule. The result of this paper is a desktop-based to retrieval system of flight schedule using visual basic programming language that can display flight schedule with the best cost and time.
(9)
viii
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar isi viii
Daftar tabel x
Daftar gambar xiii
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 3
1.3 Batasan Masalah 3
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 4
1.6 Metode Penelitian 4
1.7 Sistematika Penulisan 5
Bab 2 Landasan Teori 7
2.1 Teori Graf 7
2.1.1 Definisi Graf 7
2.1.2 Jenis Graf 9
2.1.3 Walk dan Path 10
(10)
2.2.1 Metode Pencarian Blind/Un-Informed Search 11
2.2.2 Depth First Search 12
2.3 Unified Modeling Language (UML) 14
Bab 3 Analisis dan Perancangan Sistem 16
3.1 Analisis Sistem 16
3.1.1 Analisis Algoritma Depth First Search (DFS) 16
3.1.2 Hasil Analisis 71
3.2 Perancangan Sistem 71
3.2.1 Perancangan UML 71
3.2.2 Perancangan Tampilan 77
3.2.3 Flowchart Algoritma 80
Bab 4 Implementasi dan Pengujian Sistem 83
4.1 Implementasi Sistem 83
4.2 Pengujian Sistem 83
4.2.1 Form Menu Utama User 84
4.2.2 Form Cek Rute 84
4.2.3 Form Login Admin 85
4.2.4 Form Menu Utama Admin 85
4.2.5 Form Menu Rute Baru 86
4.2.6 Form Menu Kota Baru 87
4.3 Proses Pencarian Rute dengan Metode DFS 90
Bab 5 Kesimpulan dan Saran 98
5.1 Kesimpulan 98
5.2 Saran 98
Daftar Pustaka 99
(11)
x
DAFTAR TABEL
Halaman
Tabel 3.1 Tabel Penjelasan Gambar 3.1 18
Tabel 3.2 Penjelasan Gambar 3.2 18
Tabel 3.3 Penjelasan Gambar 3.4 19
Tabel 3.4 Penjelasan Gambar 3.5 20
Tabel 3.5 Penjelasan Gambar 3.6 21
Tabel 3.6 Penjelasan Gambar 3.7 21
Tabel 3.7 Penjelasan Gambar 3.8 22
Tabel 3.8 Penjelasan Gambar 3.10 23
Tabel 3.9 Penjelasan Gambar 3.11 24
Tabel 3.10 Penjelasan Gambar 3.13 25
Tabel 3.11 Penjelasan Gambar 3.14 26
Tabel 3.12 Penjelasan Gambar 3.15 27
Tabel 3.13 Penjelasan Gambar 3.16 28
Tabel 3.14 Penjelasan Gambar 3.17 29
Tabel 3.15 Penjelasan Gambar 3.18 30
Tabel 3.16 Penjelasan Gambar 3.19 31
Tabel 3.17 Penjelasan Gambar 3.20 32
Tabel 3.18 Penjelasan Gambar 3.21 32
Tabel 3.19 Penjelasan Gambar 3.22 33
Tabel 3.20 Penjelasan Gambar 3.23 34
(12)
Tabel 3.22 Penjelasan Gambar 3.25 35
Tabel 3.23 Penjelasan Gambar 3.26 36
Tabel 3.24 Penjelasan Gambar 3.27 36
Tabel 3.25 Penjelasan Gambar 3.29 37
Tabel 3.26 Penjelasan Gambar 3.30 38
Tabel 3.27 Penjelasan Gambar 3.31 39
Tabel 3.28 Penjelasan Gambar 3.32 39
Tabel 3.29 Penjelasan Gambar 3.33 40
Tabel 3.30 Penjelasan Gambar 3.34 41
Tabel 3.31 Penjelasan Gambar 3.35 41
Tabel 3.32 Penjelasan Gambar 3.36 42
Tabel 3.33 Penjelasan Gambar 3.37 42
Tabel 3.34 Penjelasan Gambar 3.39 43
Tabel 3.35 Penjelasan Gambar 3.40 44
Tabel 3.36 Penjelasan Gambar 3.41 44
Tabel 3.37 Penjelasan Gambar 3.42 45
Tabel 3.38 Penjelasan Gambar 3.44 46
Tabel 3.39 Penjelasan Gambar 3.45 46
Tabel 3.40 Penjelasan Gambar 3.46 47
Tabel 3.41 Penjelasan Gambar 3.48 48
Tabel 3.42 Penjelasan Gambar 3.49 49
Tabel 3.43 Penjelasan Gambar 3.50 49
Tabel 3.44 Penjelasan Gambar 3.51 50
Tabel 3.45 Penjelasan Gambar 3.52 51
Tabel 3.46 Penjelasan Gambar 3.53 51
Tabel 3.47 Penjelasan Gambar 3.55 52
Tabel 3.48 Penjelasan Gambar 3.56 53
Tabel 3.49 Penjelasan Gambar 3.57 54
Tabel 3.50 Penjelasan Gambar 3.59 55
(13)
xii
Tabel 3.52 Penjelasan Gambar 3.61 56
Tabel 3.53 Penjelasan Gambar 3.63 57
Tabel 3.54 Penjelasan Gambar 3.64 58
Tabel 3.55 Penjelasan Gambar 3.65 59
Tabel 3.56 Penjelasan Gambar 3.66 60
Tabel 3.57 Penjelasan Gambar 3.67 60
Tabel 3.58 Penjelasan Gambar 3.68 61
Tabel 3.59 Penjelasan Gambar 3.69 62
Tabel 3.60 Penjelasan Gambar 3.70 62
Tabel 3.61 Penjelasan Gambar 3.71 63
Tabel 3.62 Penjelasan Gambar 3.72 64
Tabel 3.63 Penjelasan Gambar 3.73 65
Tabel 3.64 Penjelasan Gambar 3.74 66
Tabel 3.65 Penjelasan Gambar 3.75 66
Tabel 3.66 Penjelasan Gambar 3.76 67
Tabel 3.67 Penjelasan Gambar 3.77 68
Tabel 3.68 Penjelasan Gambar 3.78 68
Tabel 3.69 Penjelasan Gambar 3.79 69
Tabel 3.70 Penjelasan Gambar 3.80 70
Tabel 3.71 Penjelasan Gambar 3.81 71
(14)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Gambar graf dimana setiap titik mewakili kota-kota dan garis 7 mewakili jalan.
Gambar 2.2 Gambar graf sederhana (G) 8
Gambar 2.3 Gambar kiri merupakan graf (G), gambar kanan merupakan 8 adjacency lists.
Gambar 2.4 Gambar kiri merupakan graf (G), gambar kanan merupakan matriks 9 dari graf(G)
Gambar 2.5 Gambar graf (G) 10
Gambar 2.6 Proses algoritma DFS 13
Gambar3.1 Proses Pencarian Secara Keseluruhan 17
Gambar 3.2 Pengecekan Rute Nomor Data 13 18
Gambar 3.3 Penyaringan Kota Tujuan dari Data 13 19
Gambar 3.4 Pengecekan Rute Nomor Data 13-7 19
Gambar 3.5 Pengecekan Rute Nomor Data 13-8 20
Gambar 3.6 Pengecekan Rute Nomor Data 13-9 20
Gambar 3.7 Pengecekan Rute Nomor Data 13-10 21
Gambar 3.8 Pengecekan Rute Nomor Data 13-11 22
Gambar 3.9 Penyaringan Kota Tujuan dari Data 13-11 22
Gambar 3.10 Pengecekan Rute Nomor Data 13-11-13 23
Gambar 3.11 Pengecekan Rute Nomor Data 13-11-14 23
(15)
xiv
Gambar 3.13 Pengecekan Rute Nomor Data 13-11-14-7 24
Gambar 3.14 Pengecekan Rute Nomor Data 13-11-14-8 25
Gambar 3.15 Pengecekan Rute Nomor Data 13-11-14-9 26
Gambar 3.16 Pengecekan Rute Nomor Data 13-11-14-10 27
Gambar 3.17 Pengecekan Rute Nomor Data 13-11-14-11 28
Gambar 3.18 Pengecekan Rute Nomor Data 13-11-14-12 29
Gambar 3.19 Pengecekan Rute Nomor Data 13-11-14-19 30
Gambar 3.20 Pengecekan Rute Nomor Data 13-11-14-25 31
Gambar 3.21 Pengecekan Rute Nomor Data 13-11-20 32
Gambar 3.22 Pengecekan Rute Nomor Data 13-11-21 33
Gambar 3.23 Pengecekan Rute Nomor Data 13-11-22 33
Gambar 3.24 Pengecekan Rute Nomor Data 13-12 34
Gambar 3.25 Pengecekan Rute Nomor Data 13-19 35
Gambar 3.26 Pengecekan Rute Nomor Data 13-25 35
Gambar 3.27 Pengecekan Rute Nomor Data 14 36
Gambar 3.28 Penyaringan Kota Tujuan dari Data 14 37
Gambar 3.29 Pengecekan Rute Nomor Data 14-7 37
Gambar 3.30 Pengecekan Rute Nomor Data 14-8 38
Gambar 3.31 Pengecekan Rute Nomor Data 14-9 38
Gambar 3.32 Pengecekan Rute Nomor Data 14-10 39
Gambar 3.33 Pengecekan Rute Nomor Data 14-11 40
Gambar 3.34 Pengecekan Rute Nomor Data 14-12 40
Gambar 3.35 Pengecekan Rute Nomor Data 14-19 41
Gambar 3.36 Pengecekan Rute Nomor Data 14-25 42
Gambar 3.37 Pengecekan Rute Nomor Data 20 42
Gambar 3.38 Penyaringan Kota Tujuan dari Data 20 43
Gambar 3.39 Pengecekan Rute Nomor Data 20-15 43
Gambar 3.40 Pengecekan Rute Nomor Data 20-16 43
Gambar 3.41 Pengecekan Rute Nomor Data 20-17 44
(16)
Gambar 3.43 Penyaringan Kota Tujuan dari Data 21 45
Gambar 3.44 Pengecekan Rute Nomor Data 21-15 45
Gambar 3.45 Pengecekan Rute Nomor Data 21-16 46
Gambar 3.46 Pengecekan Rute Nomor Data 21-17 47
Gambar 3.47 Penyaringan Kota Tujuan dari Data 21-17 47
Gambar 3.48 Pengecekan Rute Nomor Data 21-17-13 48
Gambar 3.49 Pengecekan Rute Nomor Data 21-17-14 48
Gambar 3.50 Pengecekan Rute Nomor Data 21-17-20 49
Gambar 3.51 Pengecekan Rute Nomor Data 21-17-21 50
Gambar 3.52 Pengecekan Rute Nomor Data 21-17-22 50
Gambar 3.53 Pengecekan Rute Nomor Data 22 51
Gambar 3.54 Penyaringan Kota Tujuan dari Data 22 52
Gambar 3.55 Pengecekan Rute Nomor Data 22-23 52
Gambar 3.56 Pengecekan Rute Nomor Data 22-27 53
Gambar 3.57 Pengecekan Rute Nomor Data 22-28 53
Gambar 3.58 Penyaringan Kota Tujuan dari Data 22-28 54
Gambar 3.59 Pengecekan Rute Nomor Data 22-28-1 54
Gambar 3.60 Pengecekan Rute Nomor Data 22-28-2 55
Gambar 3.61 Pengecekan Rute Nomor Data 22-28-3 56
Gambar 3.62 Penyaringan Kota Tujuan dari Data 22-28-3 56
Gambar 3.63 Pengecekan Rute Nomor Data 22-28-3-23 57
Gambar 3.64 Pengecekan Rute Nomor Data 22-28-3-27 57
Gambar 3.65 Pengecekan Rute Nomor Data 22-28-3-28 58
Gambar 3.66 Pengecekan Rute Nomor Data 22-28-3-29 59
Gambar 3.67 Pengecekan Rute Nomor Data 22-28-3-30 60
Gambar 3.68 Pengecekan Rute Nomor Data 22-28-3-31 61
Gambar 3.69 Pengecekan Rute Nomor Data 22-28-3-32 61
Gambar 3.70 Pengecekan Rute Nomor Data 22-29 62
Gambar 3.71 Pengecekan Rute Nomor Data 22-30 63
(17)
xvi
Gambar 3.73 Pengecekan Rute Nomor Data 22-30-7 64
Gambar 3.74 Pengecekan Rute Nomor Data 22-30-8 64
Gambar 3.75 Pengecekan Rute Nomor Data 22-30-9 65
Gambar 3.76 Pengecekan Rute Nomor Data 22-30-10 66
Gambar 3.77 Pengecekan Rute Nomor Data 22-30-11 67
Gambar 3.78 Pengecekan Rute Nomor Data 22-30-12 67
Gambar 3.79 Pengecekan Rute Nomor Data 22-30-19 68
Gambar 3.80 Pengecekan Rute Nomor Data 22-30-25 69
Gambar 3.81 Pengecekan Rute Nomor Data 22-31 69
Gambar 3.82 Pengecekan Rute Nomor Data 22-32 70
Gambar 3.83 Diagram Use Case 72
Gambar 3.84 Diagram aktivitas cek rute 73
Gambar 3.85 Diagram aktivitas login 74
Gambar 3.86 Diagram aktivitas update rute 75
Gambar 3.87 Diagram aktivitas update kota 76
Gambar 3.88 Tampilan form utama user 77
Gambar 3.89 Tampilan form utama admin 77
Gambar 3.90 Tampilan form rute 78
Gambar 3.91 Tampilan form kota 78
Gambar 3.92 Tampilan form login 79
Gambar 3.93 Tampilan form pengecekan rute 79
Gambar 3.94 Flowchart algoritma 82
Gambar 4.1 Form menu utama user 84
Gambar 4.2 Form cek rute 84
Gambar 4.3 Form menu login 85
Gambar 4.4 Pesan kesalahan login 85
Gambar 4.5 Menu utama admin 85
Gambar 4.6 Form menu rute baru 86
Gambar 4.7 Pesan data rute berhasil disimpan 86
(18)
Gambar 4.9 Tampilan awal sistem dengan menginput kota asal, kota tujuan dan 90 tanggal tujuan
Gambar 4.10 Hasil filter data dengan kota asal medan 91
Gambar 4.11 Pencarian di data no 13-9 92
Gambar 4.12 Hasil pertama, rute yang dapat terjadi 93
Gambar 4.13 Pencarian di data no 13-25 93
Gambar 4.14 Hasil kedua, rute yang dapat terjadi 94
Gambar 4.15 Pencarian di data no 22-29 95
Gambar 4.16 Hasil ketiga, rute yang dapat terjadi 95
Gambar 4.17 Hasil rute tercepat 96
(19)
vi
ABSTRAK
Bertambahnya jumlah penumpang dan kebutuhan penumpang dari tahun ke tahun telah mengakibatkan munculnya banyak operator maskapai penerbangan. Oleh karena itu penggunaan pesawat terbang sebagai alat transportasi semakin diminati. Namun terdapat kendala bagi seorang penumpang yaitu apabila penumpang tersebut harus ke kota tujuan tertentu dimana tidak ada satu operator maskapai saja yang melayani langsung ke rute tujuan sehingga penumpang harus menggunakan atau berganti maskapai lain. Pada skripsi ini akan dijelaskan bagaimana menganalisis dan mengaplikasikan algoritma Depth First Search (DFS) dalam menentukan rute penerbangan tercepat dengan biaya atau waktu terbaik. Skripsi ini menggunakan data jadwal penerbangan di Indonesia. DFS akan mencari keseluruhan kemungkinan rute yang dapat terjadi dari data yang tersedia kemudian hasil dari seluruh pencarian akan dibandingkan untuk mendapatkan hasil tercepat atau termurah. Hasil dari penelitian ini menghasilkan sistem pencarian jadwal penerbangan berbasis desktop menggunakan bahasa pemprograman visual basic yang dapat menampilkan jadwal penerbangan tercepat atau termurah.
(20)
DEPTH FIRST SEARCH METHODS FOR SEARCH FLIGHT ROUTE SCHEDULE
ABSTRACT
Increasing the number of passanger over the year resulted many avation company. That is why the use of aircraft most widely used. However there is an obstacle if the passanger had to go to the destination where there is no airlines serving the directly route to destination so that the passanger have to looking for other airlines. In this study explains about how to analyze the Dept First Search (DFS) algorithm to determine the fastest flight route with the best cost and time. The DFS algorithm will search all possible that may occur from the available data of flight route then the result of all searches will be compared to get the fastest flight route. This study uses data of Indonesian flight schedule. The result of this paper is a desktop-based to retrieval system of flight schedule using visual basic programming language that can display flight schedule with the best cost and time.
(21)
BAB 1
PENDAHULUAN
1.1. Latar Belakang
Perjalanan melalui jalur udara merupakan salah satu alternatif bagi seseorang untuk melakukan perjalanan jarak jauh. Salah satu hal dipilihnya perjalanan jalur udara dikarenakan waktu tempuh yang relatif cepat jika bandingkan menggunakan transportasi laut ataupun darat.
Pesawat terbang sebagai armada komersil transportasi udara telah menjadi pilihan bagi setiap orang yang menginginkan waktu perjalanan yang singkat. Penggunaan pesawat terbang sebagai alat transportasi semakin diminati. Menurut data dari Direktorat Hubungan Udara dari tahun 2005 sampai tahun 2009 rata-rata terjadi peningkatan jumlah penumpang yang melakukan perjalanan dengan transportasi udara.
Bertambahnya jumlah penumpang dan kebutuhan penumpang dari tahun ke tahun telah mengakibatkan munculnya banyak operator maskapai penerbangan. Operator maskapai penerbangan muncul dengan berbagai cara untuk menarik jumlah penumpang baik meningkatkan pelayanan, memurahkan harga tiket sampai mengoperasikan pesawat sesuai jadwal penerbangan (on time).
Jumlah peminat pengguna transportasi udara yang terus meningkat tidak terlepas dari adanya program Low Cost Carriers (LCC) dari sejumlah maskapai penerbangan. Low cost carriers merupakan program perjalanan transportasi udara bertarif rendah dengan
(22)
mengurangi biaya pelayanan dan operasional (non full service) (Rizki, 2009) yang diusung maskapai penerbangan untuk menarik penumpang telah membuat dunia penerbangan menjadi kompetitif yang sebelumnya dikuasai oleh operator maskapai penerbangan yang full pelayanan (O’Connell & Williams, 2005).
Maskapai penerbangan yang menjadi pilihan penumpang biasanya memiliki harga yang murah dan memiliki jadwal yang tepat serta mau mengukur dan memonitor kualitas dan kepuasan layanan yang diberikan agar penumpang tetap memilih maskapai tersebut (Saha & Theingi, 2009). Maskapai penerbangan yang sering membatalkan dan menunda jadwal penerbangan akan berakibat langsung pada jumlah peminat penumpang untuk menggunakan maskapai penerbangan tersebut (Zegordi & Jafari, 2010)
Ketika seorang penumpang merencanakan sebuah perjalanan dari sebuah kota ke kota lain dengan menggunakan sebuah maskapai penerbangan, penumpang tersebut akan mencari maskapai penerbangan yang melayani rute tersebut. Akan tetapi tidak semua kota atau rute tujuan dapat dilayani sebuah operator maskapai penerbangan.
Salah satu kendala bagi seorang penumpang yaitu apabila penumpang tersebut harus ke kota tujuan tertentu dimana tidak ada satu operator maskapai saja yang melayani langsung ke rute tujuan sehingga penumpang harus menggunakan atau berganti maskapai lain untuk melanjutkan perjalanan kekota tujuan dan harus transit dikota lain agar sampai kekota yang ditujunya. Penumpang tersebut harus mencari informasi tentang maskapai lain yang melayani rute yang diinginkannya.
Apabila rute tujuan telah ada maskapai yang melayani langsung tanpa transit di kota lain memang bukan sebuah masalah bagi seorang penumpang, akan tetapi jika harus dilakukan transit dan harus berganti maskapai tentu menyulitkannya apalagi biaya atau waktu menjadi pertimbangan dalam menentukan maskapai yang harus digunakannya.
Oleh karena itu pada penulisan skripsi ini penulis akan meneliti metode Depth First Search (DFS) untuk menentukan rute penerbangan dengan waktu atau biaya yang terbaik diantara rute penerbangan yang mungkin terjadi.
(23)
3
1.2. Rumusan Masalah
Berdasarkan pada penjelasan latar belakang sebelumnya, maka perumusan masalah dalam skripsi ini adalah bagaimana menganalisis dan mengaplikasikan algoritma
Depth First Search dalam menentukan rute penerbangan dengan biaya atau waktu terbaik.
1.3.Batasan Masalah
Agar pembahasan dalam penulisan ini lebih terarah dan mencegah adanya perluasan masalah dan pembahasan yang terlalu kompleks, maka penulis membuat batasan masalah yang akan dijadikan pedoman dalam pelaksanaan tugas akhir yaitu:
1. Pengujian data yaitu beberapa rute-rute penerbangan domestik (dalam negeri) dari sejumlah maskapai di Indonesia.
2. Metode yang digunakan yaitu metode Depth First Search (DFS).
3. Perancangan program aplikasi penerbangan menggunakan bahasa pemrograman visual basic 6.
1.4. Tujuan Penelitian
Tujuan dari penelitian skripsi ini adalah membuat aplikasi sistem informasi yaitu sistem penerbangan dengan metode Depth First Search (DFS) untuk rute penerbangan domestik.
(24)
1.5. Manfaat Penelitian
Manfaat dari penelitian pada skripsi ini yaitu:
1. Sistem penerbangan domestik dengan menggunakan metode Depth First
Search diharapkan dapat membantu para penumpang dalam pengambilan
keputusan untuk melakukan perjalanan dengan maskapai penerbangan.
2. Menunjukkan pengoptimalan sistem dengan menerapkan algoritma Depth Fist Search.
1.6. Metode Penelitian
Tahapan-tahapan yang akan dilakukan pada pelaksanaan skripsi ini adalah sebagai berikut :
1. Studi Literatur
Studi literatur dilakukan dengan mengumpulkan bahan-bahan referensi baik dari buku, artikel, paper, jurnal, makalah, maupun situs-situs internet. Studi literatur yang dilakukan terkait dengan metode Depth First Search, serta data rute-rute penerbangan domestik di Indonesia.
2. Analisis Permasalahan
Pada tahap ini dilakukan analisis terhadap hasil studi literatur untuk mengetahui dan mendapatkan pemahaman mengenai metode Depth Fisth Search.
3. Perancangan Sistem
Pada tahap ini dilakukan perancangan arsitektur, perancangan data dan perancangan antarmuka. Proses perancangan dilakukan berdasarkan hasil analisis studi literatur yang telah didapatkan.
(25)
5
4. Implementasi Sistem
Pada tahap ini dilakukan proses implementasi pengkodean program dalam aplikasi komputer menggunakan bahasa pemrograman yang telah dipilih yang sesuai dengan analisis dan perancangan yang sudah dilakukan.
5. Pengujian
Pada tahap ini dilakukan proses pengujian dan percobaan terhadap sistem sesuai dengan kebutuhan yang ditentukan sebelumnya serta memastikan program yang dibuat berjalan seperti yang diharapkan.
6. Dokumentasi
Pada tahap ini dilakukan pembuatan dokumentasi sistem, lengkap dengan analisis yang diperoleh.
7. Penyusunan Laporan
Pada tahap ini dilakukan dokumentasi hasil analisis dan implementasi dari konsep metode Depth First Search.
1.7. Sistematika Penulisan
Penulisan skripsi ini terdiri dari lima bab dengan masing-masing bab secara singkat dijelaskan sebagai berikut:
Bab 1 : Pendahuluan
Bab ini berisi berisikan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
(26)
Bab 2 : Landasan Teori
Pada bab ini dibahas mengenai teori-teori pendukung penelitian skrispsi yaitu metode Depth First Search (DFS).
Bab 3 : Analisis dan Perancangan Sistem
Pada bab ini berisikan paparan analisis terhadap permasalahan dan penyelesaian persoalan terhadap metode Depth First Search serta identifikasi kebutuhan perancangan sistem.
Bab 4 : Implementasi Sistem
Pada bab ini berisi implementasi perancangan sistem dari hasil analisis dan perancangan yang sudah dibuat, serta menguji sistem untuk menemukan kelebihan dan kekurangan pada sistem rekomendasi yang dibuat.
Bab 5 : Kesimpulan dan Kritik
Pada bab ini berisikan kesimpulan yang didapatkan terhadap hasil penelitian skripsi dan saran untuk pengembangan lebih lanjut tentang topik terkait yang dibahas pada skripsi.
(27)
BAB 2
LANDASAN TEORI
2.1 Teori graf
2.1.1 Definisi graf
Graf adalah kumpulan dari minimal satu atau lebih simpul (vertex) yang dihubungkan oleh sisi atau busur (edge). Dalam kehidupan sehari-hari, graf banyak diaplikasikan (Suryanaga, 2003) seperti untuk pengaturan arus lalu lintas, jaringan komputer, pembuatan chip, jaringan sosial dan sebagainya.
Simpul didalam graf biasanya dilambangkan dengan titik sedangkan busur dilambangkan dengan garis. Contohnya : kota-kota di lambangkan dengan titik dan garis melambangkan jalan yang menghubungkan antar kota.
Gambar 2.1 Gambar graf dimana setiap titik mewakili kota-kota dan garis mewakili jalan.
Menurut Diestel (2000), sebuah graf G dapat diartikan sebagai himpunan berhingga dan tak kosong dari v dan e yang merupakan himpunan pasangan tak berurut dari unsur-unsur di v, dimana v=Vertex
dan e=edge.
(28)
Gambar 2.2 Gambar graf sederhana (G)
pada gambar 2.2, G memiliki v={1,2,3,4} dan e={(1,3), (1,2), (1,4), (2,4), (3,4)} atau {e1,e2,e3,e4,e5}.
Ada dua cara merepresentasikan sebuah graf (Adamchik, 2005)
1. Adjacency lists
Representasi ini secara visual lebih mudah dimengerti, akan tetapi kurang bagus untuk dioperasikan bila vertex yang dimiliki terlalu banyak.
Biasanya adjacency lists direpresentasikan seperti bentuk array.
Gambar 2.3 Gambar kiri merupakan graf (G), gambar kanan merupakan adjacency lists.
Kerugian potensial dari representasi adjacency-daftar adalah bahwa tidak ada cara cepat untuk menentukan apakah ada edge diantara dua simpul.
2. Adjacency matrix
Representasi ini baik digunakan untuk representasi graf didalam komputer.
e3 e1
e2
e4 e5 1
2 3
(29)
9
Kekurangan dari adjacency lists dapat ditutupi dengan adjacency matrix. Adjacency matrix adalah matriks dari v x v dimana,
Mi,j 1, jika ada � diantara dan
0, jika tidak ada � diantara dan
Gambar 2.4 gambar kiri merupakan graf (G), gambar kanan merupakan matriks dari graf(G)
2.1.2 Jenis-jenis graf
Menurut Scheinerman dan Ullman (2008), berdasarkan ada atau tidaknya gelang (loop), graf digolongkan menjadi dua, yaitu :
a. Graf sederhana (simple graph)
Graf yang tidak memiliki loops dan sisi paralel. b. Graf tak-sederhana (unsimple graph/multigraph)
Graf yang memiliki loops dan sisi paralel.
Menurut Munir (2008), Berdasarkan ada atau tidaknya arah, graf digolongkan menjadi dua, yaitu :
a. Graf berarah (directed graph)
Graf yang memiliki orientasi arah pada sisinya. (va,vb) ≠ (vb,va)
Pada simpul (va,vb), va adalah simpul asal sedangkan vb adalah
simpul tujuan.
b. Graf tak berarah (undirected graph)
Graf yang tidak memiliki orientasi arah pada sisinya. (va,vb) = (vb,va)
(30)
Dalam hal ini tidak terdapat simpul asal maupun simpul tujuan karena bukan merupakan hal yang terlalu diperhatikan.
Berdasarkan bobotnya, graf juga terbagi menjadi dua, yaitu : a. Graf berbobot
Graf yang setiap sisinya memiliki nilai atau harga. Misalnya sisi melambangkan jalan, bobot bisa merupakan panjang jalan dan sebagainya tergantung kebutuhan.
b. Graf tak berbobot
Graf yang setiap sisinya tidak memiliki nilai atau harga.
2.1.3 Walk dan path
Menurut Yulianti (2008), walk dalam graf G adalah sebuah urutan tak nol yang suku-sukunya bergantian antara simpul dan sisi. dimana
w = v0e1v1e2v2…eivi…ekvk : 1≤ i ≤ k
Panjang dari sebuah walk adalah banyaknya sisi yang dilalui dalam walk
tersebut.
Sebuah path atau jalur adalah walk dengan semua simpul dalam barisan berbeda.
Gambar 2.5 gambar graf (G)
e – c – d – b – c – d – b – a adalah sebuah walk dengan panjang 7. e – c – d – b – a adalah sebuah path dengan panjang 4.
(31)
11
Berdasarkan hasil diatas maka dapat dinyatakan bahwa setiap simpul walk
pasti mengandung simpul path.
2.2 Searching (pencarian)
Metode pencarian dapat dibedakan ke dalam dua jenis, yaitu: 1. pecarian buta/tanpa informasi (blind atau un-informed search)
2. pencarian heuristik/dengan informasi (heuristic atau informed search) Menurut Russel dan Norvig (1995), untuk mengukur performansi metode pencarian, terdapat 4 kriteria yang dapat digunakan, yaitu :
a. Completeness : apakah metode tersebut menjamin penemuan solusi jika solusinya memang ada?
b. Time complexity : berapa lama waktu yang diperlukan? c. Space complexity : berapa banyak memori yang diperlukan?
d. Optimality : apakah metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi berbeda?
2.2.1 Metode Pencarian Blind/Un-Informed Search
Metode pencarian blind/un-informed search merupakan metode pencarian tanpa adanya informasi awal yang digunakan dalam proses pencarian
Metode-metode yang termasuk kedalam teknik pencarian Blind/Un-Informed Search , yaitu:
a. Breadth First Search (BFS)
b. Uniform Cost Search (UCS)
c. Depth First Search (DFS)
d. Depth-Limited Search (DLS)
e. Iterative Deepening Search (IDS)
(32)
2.2.2 Depth First Search (DFS)
Pada metode DFS, pencarian dilakukan pada suatu simpul dalam setiap level dari paling kiri, jika pada level terdalam solusi belum ditemukan, maka pencarian dilanjutkan pada simbul sebelah kanan dan simpul yang kiri dapat dihapus dari memori. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.
Menurut Suyanto (2007), Kelebihan DFS adalah pemakaian memori yang lebih sedikit. DFS hanya menyimpan sekitar bd simpul, di mana b
adalah faktor percabangan dan d adalah kedalaman solusi. Jika b = 10 dan
d = 3, maka jumlah simpul yang disimpan di memori adalah 1 + 10 + 10 + 10 = 31. Hal ini berbeda jauh dengan Breadth First Search yang harus menyimpan semua simpul yang pernah dibangkitkan. Pada kasus tersebut,
Breadth First Search harus menyimpan 1 + 10 + 100 + 1000 = 1111 simpul. Kelebihan lainnya adalah jika solusi yang dicari berada pada level yang dalam dan paling kiri, maka DFS akan menemukannya dengan cepat.
Sedangkan kelemahan DFS adalah jika pohon yang dibangkitkan mempunyai level yang sangat dalam (tak terhingga), maka tidak ada jaminan menemukan solusi. Artinya DFS tidak complete. Kelemahan lainnya adalah jika terdapat lebih dari satu solusi yang sama tetapi berada pada level yang berbeda, maka DFS tidak menjamin untuk menemukan solusi yang paling baik artinya DFS tidak optimal.
(33)
13
Algoritma DFS:
1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar = simpul solusi, maka Stop.
2. Jika Q kosong, tidak ada solusi. Stop. 3. Ambil simpul v dari kepala (head) antrian.
4. Jika kedalaman simpul v sama dengan batas kedalaman maksimum, kembali ke langkah 2.
5. Bangkitkan semua anak dari simpul v. Jika v tidak mempunyai anak lagi, kembali ke langkah 2. Tempatkan semua anak dari v di antrian Q. 6. Jika anak dari simpul v adalah simpul tujuan, berarti solusi telah
ditemukan, kalau tidak, kembali lagi ke langkah 2.
Start with A Discovered [B,C] Explore B
Discovered [D,E,C] Explore D
Discovered [H,I,E,C] Explore H
Finished H Discovered [I,E,C]
Explore I
Finished I,D Discovered [E,C]
Gambar 2.6 proses algoritma DFS A
B C
D E F G
H I J K L M N O
A
B C
D E F G
H I J K L M N O
A
B C
D E F G
H I J K L M N O
A
B C
D E F G
H I J K L M N O
A
B C
D E F G
H I J K L M N O
A
B C
D E F G
(34)
2.3 Unified Modeling Language (UML)
Unified Modeling Language (UML) adalah sebuah “bahasa” yang sudah menjadi standard industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak (Dharwiyanti, S dan Wahono, S.R., 2003). Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa berorientasi objek.
Unified Modeling Language (UML) bukanlah :
1. Bahasa pemrograman visual, tapi bahasa pemodelan visual. 2. Spesifikasi kakas, tetapi spesifikasi bahasa pemodelan. 3. Proses, tetapi yang memungkinkan proses-proses. UML membagi diagram menjadi dua tipe yaitu :
1. Diagram Struktur
Diagram ini untuk memvisualisasi, menspesifikasi, membangun dan mendokumentasikan aspek statik dari sistem. Diagram struktur di UML terdiri dari :
a. Diagram Kelas (Class diagram) b. Diagram Objek (Object diagram)
c. Diagram komponen (Component Diagram) d. Diagram deployment (Deployment Diagram)
2. Diagram perilaku
Diagram ini untuk memvisualisasi, menspesifikasi, membangun dan mendokumentasikan aspek dinamis dari sistem. Diagram struktur di UML terdiri dari :
(35)
15
a. Diagram use-case (Use case diagram) b. Diagram sekuen (Sequence diagram)
c. Diagram kolaborasi (Collaboration diagram) d. Diagram statechart (Statechart diagram) e. Diagram aktivitas (Activity diagram)
(36)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Tahap analasis sistem dilakukan sebelum tahapan perancangan dilakukan. Tujuan dibuatnya analisis sistem adalah untuk mengetahui alasan mengapa sistem diperlukan, merumuskan kebutuhan-kebutuhan dari sistem sehingga fungsi yang terdapat dalam sistem dapat bekerja secara optimal. Dalam bab ini juga akan dibahas analisis algoritma DFS dan contoh proses kerja DFS terhadap sistem.
3.1.1 Analisis Algoritma Depth First Search (DFS)
Sistem yang dibangun untuk menyelesaikan masalah, menggunakan metode pencarian
Depth First Search (DFS). DFS akan mencari keseluruhan kemungkinan rute yang dapat terjadi dari data yang tersedia kemudian hasil dari seluruh pencarian akan dibandingkan untuk mendapatkan hasil yang tercepat atau termurah tergantung kondisi yang diinginkan.
Pencarian solusi DFS dicirikan dengan simpul-simpul terdalam terdalam terlebih dahulu. Pertama simpul awal dibangkitkan, kemudian simpul pada arah kedua, pada simpul arah ketiga dan seterusnya. Jadi pencarian mengikuti sebuah lintasan tunggal mulai dari simpul awal terus menurun kebawah ke simpul-simpul arah bawahnya. Jika pencarian mencapai level terdalam, maka pencarian dilakukan level sebelumnya.
Berikut adalah cara kerja algoritma DFS pada sistem penerbangan. Contoh kasus yang dijelaskan dimisalkan yaitu rute penerbangan dari kota asal Medan ke kota tujuan Denpasar berdasarkan database.
(37)
17
Gambar 3.1 Proses Pencarian Secara Keseluruhan
J5 B2 B3 S5 J4
D2 M3
B3
M4
BJ Bt1 D1 M1 M2 S4 Y1 D3
J1 S1
M5 BJ BJ D4 J8 U1 U2
B2 B3 S5 J4
BJ Bt1 D1 M1 M2 S4 Y1 D3
M5 BJ D4 U1 U2
S5
D2 M3 M4
B2
BJ Bt1 D1 M1 M2 S4 Y1 D3
J5
BJ Bt1 D1 M1 S4 Y1 D3
M
J4
M2 BJ J8
(38)
Tabel 3.1 Tabel Penjelasan Gambar 3.1
Kode Nama Kota
M Medan
B Bandung J Jakarta BJ Banjarmasin U UjungPandang S Surabaya Y Yogyakarta D Denpasar Bt Batam
NB : nilai pada edge merupakan ID data yang memuat nilai terkait data tersebut seperti yang dilampirkan.
Gambar 3.2 Pengecekan Rute Nomor Data 13
Tabel 3.2 Penjelasan Gambar 3.2
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
Total 135 538000
Ket : pencarian dilanjutkan ke level berikutnya.
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
(39)
Gambar 3.3 Penyaringan Kota Tujuan dari Data 13
Gambar 3.4 Pengecekan Rute Nomor Data 13-7
Tabel 3.3 Penjelasan Gambar 3.4
No data
Kota asal
Kota tujuan Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 7 Jakarta
4
Banjarmasin 1
GA058 Citilink 12:10 14:50 100 370000 2
Total 245 908000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan selisih waktu tunggu antara jam tiba penerbangan 13 dan jam berangkat penerbangan 7 tidak >=30 menit.
Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 4
11 12
19 25 7
8 9
10
Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 4
11 12
19 25 7
8 9
(40)
Gambar 3.5 Pengecekan Rute Nomor Data 13-8
Tabel 3.4 Penjelasan Gambar 3.5
No data
Kota asal Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 8 Jakarta 4 Batam 1 GA036 Citilink 07:40 09:20 100 345000 2
Total - 883000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 13 lebih besar dari jam berangkat penerbangan 8.
Gambar 3.6 Pengecekan Rute Nomor Data 13-9 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 4
11 12
19 25 7
8 9
10
Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 4
11 12
19 25 7
8 9
(41)
21
Tabel 3.5 Penjelasan Gambar 3.6
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 9 Jakarta
4
Denpasar 1
GA082 Citilink 17:30 20:15 105 377000 2
Total 570 915000
Ket : pencarian tidak dilanjutkan kelevel berikutnya dikarenakan kota tujuan Denpasar telah ditemukan dan waktu tunggu antar jadwal penerbangan >=30menit.
Gambar 3.7 Pengecekan Rute Nomor Data 13-10
Tabel 3.6 Penjelasan Gambar 3.7
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
10 Jakarta 4
Medan 1
GA040 Citilink 07:00 09:15 135 482000 2
Total - 1020000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 13 lebih besar dari jam berangkat penerbangan 10.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 4
11 12
19 25 7 8 9 10
(42)
Gambar 3.8 Pengecekan Rute Nomor Data 13-11
Tabel 3.7 Penjelasan Gambar 3.8
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
Total - 1020000
Ket : pencarian dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 13 lebih kecil dari jam berangkat penerbangan 11.
Gambar 3.9 Penyaringan Kota Tujuan dari Data 13-11 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 4
11 12
19 25 7
8 9
10
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
(43)
23
Gambar 3.10 Pengecekan Rute Nomor Data 13-11-13
Tabel 3.8 Penjelasan Gambar 3.10
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
13 Medan 2
Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 3
Total - 1512000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 11 lebih besar dari jam berangkat penerbangan 13.
Gambar 3.11 Pengecekan Rute Nomor Data 13-11-14
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
Medan 2
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
(44)
Tabel 3.9 Penjelasan Gambar 3.11 No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 3
Total 745 1512000
Ket : pencarian dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 11 lebih kecil dari jam berangkat penerbangan 14 dan waktu tunggu antar jadwal penerbangan >=30 menit.
Gambar 3.12 Penyaringan Kota Tujuan dari Data 13-11-14
Gambar 3.13 Pengecekan Rute Nomor Data 13-11-14-7 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(45)
25
Tabel 3.10 Penjelasan Gambar 3.13
No data
Kota asal
Kota tujuan Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Le vel
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 3
7 Jakarta 5
Banjarmasin 1
GA058 Citilink 12:10 14:50 100 370000 4
Total - 1882000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 7.
Gambar 3.14 Pengecekan Rute Nomor Data 13-11-14-8 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(46)
Tabel 3.11 Penjelasan Gambar 3.14
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 3
8 Jakarta 5
Batam 1
GA036 Citilink 07:40 09:20 100 345000 4
Total - 1857000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 8.
Gambar 3.15 Pengecekan Rute Nomor Data 13-11-14-9 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(47)
27
Tabel 3.12 Penjelasan Gambar 3.15
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 11 Jakarta
4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 3
9 Jakarta 5
Denpasar 1
GA082 Citilink 17:30 20:15 105 377000 4
Total - 1889000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 9.
\
Gambar 3.16 Pengecekan Rute Nomor Data 13-11-14-10 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(48)
Tabel 3.13 Penjelasan Gambar 3.16
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 3
10 Jakarta 5
Medan 1
GA040 Citilink 07:00 09:15 135 482000 4
Total - 1994000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 10.
Gambar 3.17 Pengecekan Rute Nomor Data 13-11-14-11 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(49)
29
Tabel 3.14 Penjelasan Gambar 3.17
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4
GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 3
11 Jakarta 5
Medan 2
GA042 Citilink 17:10 19:25 135 436000 4
Total - 1948000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 11.
Gambar 3.18 Pengecekan Rute Nomor Data 13-11-14-12 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(50)
Tabel 3.15 Penjelasan Gambar 3.18
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 3
12 Jakarta 5
Surabaya 4
GA015 Citilink 11:35 12:55 80 357000 4
Total - 1869000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 12.
Gambar 3.19 Pengecekan Rute Nomor Data 13-11-14-19 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(51)
31
Tabel 3.16 Penjelasan Gambar 3.19
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Le vel
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 3
19 Jakarta 5
Yogyakarta 1
QZ7552 Airasia 10:40 11:45 65 555000 4
Total - 2067000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 19.
Gambar 3.20 Pengecekan Rute Nomor Data 13-11-14-25 Medan 2
Denpasar 3
Surabaya 4
Yogyakarta 1 Banjarmasin 1
Batam 1
Denpasar 1
Medan 1
Jakarta 5
11 12
19 25 7
8 9
(52)
Tabel 3.17 Penjelasan Gambar 3.20 No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 11 Jakarta
4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
14 Medan 2
Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 3
25 Jakarta 5
Denpasar 3
QZ7516 Airasia 19:35 22:25 110 465000 4
Total - 1977000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 25.
Gambar 3.21 Pengecekan Rute Nomor Data 13-11-20
Tabel 3.18 Penjelasan Gambar 3.21
No data
Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Le vel 13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 11 Jakarta 4 Medan 2 GA042 Citilink 17:10 19:25 135 436000 2 20 Medan 2 Bandung
2
QZ7981 Airasia 17:10 19:30 140 555000 3
Total - 1529000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 11 lebih besar dari jam berangkat penerbangan 20.
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20 21 22 14 Medan 2
(53)
33
Gambar 3.22 Pengecekan Rute Nomor Data 13-11-21
Tabel 3.19 Penjelasan Gambar 3.22
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
11 Jakarta 4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
21 Medan 2
Bandung 3
QZ7987 Airasia 08:25 10:45 140 555000 3
Total - 1529000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 11 lebih besar dari jam berangkat penerbangan 21.
Gambar 3.23 Pengecekan Rute Nomor Data 13-11-22
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
Medan 2
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
(54)
Tabel 3.20 Penjelasan Gambar 3.23 No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 11 Jakarta
4
Medan 2 GA042 Citilink 17:10 19:25 135 436000 2
22 Medan 2
Surabaya 5
QZ7611 Airasia 11:50 14:50 180 685000 3
Total - 1659000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 11 lebih besar dari jam berangkat penerbangan 22.
Gambar 3.24 Pengecekan Rute Nomor Data 13-12
Tabel 3.21 Penjelasan Gambar 3.24
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1 12 Jakarta
4
Surabaya 4
GA015 Citilink 11:35 12:55 80 357000 2
Total - 895000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 13 lebih besar dari jam berangkat penerbangan 12.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 4
11 12
19 25 7 8 9 10
(55)
35
Gambar 3.25 Pengecekan Rute Nomor Data 13-19
Tabel 3.22 Penjelasan Gambar 3.25
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Le vel
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
19 Jakarta 4
Yogyakarta 1
QZ7552 Airasia 10:40 11:45 65 555000 2
Total - 1093000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 13 lebih besar dari jam berangkat penerbangan 19.
Gambar 3.26 Pengecekan Rute Nomor Data 13-25 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 4
11 12
19 25 7 8 9 10 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 4
11 12
19 25 7 8 9 10
(56)
Tabel 3.23 Penjelasan Gambar 3.26
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
13 Medan Jakarta 4 GA041 Citilink 09:45 12:00 135 538000 1
25 Jakarta 4
Denpasar 3
QZ7516 Airasia 19:35 22:25 110 465000 2
Total - 1003000
Ket : pencarian tidak dilanjutkan kelevel berikutnya dikarenakan kota tujuan Denpasar telah ditemukan dan waktu tunggu antar jadwal penerbangan >=30menit.
Gambar 3.27 Pengecekan Rute Nomor Data 14
Tabel 3.24 Penjelasan Gambar 3.27
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
14 Medan Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 1
Total - 538000
Ket : pencarian dilanjutkan ke level berikutnya.
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20
21
22 14
(57)
37
Gambar 3.28 Penyaringan Kota Tujuan dari Data 14
Gambar 3.29 Pengecekan Rute Nomor Data 14-7
Tabel 3.25 Penjelasan Gambar 3.29
No data
Kota asal
Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Le vel
14 Medan Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 1
7 Jakarta 5
Banjarmasin 1
GA058 Citilink 12:10 14:50 100 370000 2
Total - 908000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 7.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(58)
Gambar 3.30 Pengecekan Rute Nomor Data 14-8
Tabel 3.26 Penjelasan Gambar 3.30
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 1
8 Jakarta 5
Batam 1
GA036 Citilink 07:40 09:20 100 345000 2
Total - 883000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 8.
Gambar 3.31 Pengecekan Rute Nomor Data 14-9 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1
11 12
19 25 7 8 9 10 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(59)
39
Tabel 3.27 Penjelasan Gambar 3.31
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 1
9 Jakarta 5
Denpasar 1
GA082 Citilink 17:30 20:15 105 377000 2
Total - 915000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 9.
Gambar 3.32 Pengecekan Rute Nomor Data 14-10
Tabel 3.28 Penjelasan Gambar 3.32
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 1
10 Jakarta 5
Medan 1
GA040 Citilink 07:00 09:15 135 482000 2
Total - 1020000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 10.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(60)
Gambar 3.33 Pengecekan Rute Nomor Data 14-11
Tabel 3.29 Penjelasan Gambar 3.33
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5
GA043 Citilink 19:55 22:10 135 538000 1
11 Jakarta 5
Medan 2
GA042 Citilink 17:10 19:25 135 436000 2
Total - 974000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 11.
Gambar 3.34 Pengecekan Rute Nomor Data 14-12 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1
11 12
19 25 7 8 9 10 Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(61)
41
Tabel 3.30 Penjelasan Gambar 3.34
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 1
12 Jakarta 5
Surabaya 4
GA015 Citilink 11:35 12:55 80 357000 2
Total - 895000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 12.
Gambar 3.35 Pengecekan Rute Nomor Data 14-19
Tabel 3.31 Penjelasan Gambar 3.35
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Le vel 14 Medan Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 1 19 Jakarta
5
Yogyakarta 1
QZ7552 Airasia 10:40 11:45 65 555000 2
Total - 1093000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 19.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1 Jakarta 5
11 12
19 25 7 8 9 10
(62)
Gambar 3.36 Pengecekan Rute Nomor Data 14-25
Tabel 3.32 Penjelasan Gambar 3.36
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
14 Medan Jakarta 5 GA043 Citilink 19:55 22:10 135 538000 1 25 Jakarta
5
Denpasar 3
QZ7516 Airasia 19:35 22:25 110 465000 2
Total - 1003000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 14 lebih besar dari jam berangkat penerbangan 25.
Gambar 3.37 Pengecekan Rute Nomor Data 20
Tabel 3.33 Penjelasan Gambar 3.37
No data Kota asal Kota tujuan Kode penerbangan Nama maskapai Jam berangkat Jam tiba Waktu perjalanan
Biaya Level
20 Medan Bandung 2
QZ7981 Airasia 17:10 19:30 140 555000 1
Total - 555000
Ket : pencarian dilanjutkan ke level berikutnya.
Medan 2 Denpasar 3 Surabaya 4 Yogyakarta 1 Banjarmasin 1 Batam 1 Denpasar 1 Medan 1
11 12
19 25 7 8 9 10
Jakarta 5 Bandung 2 Bandung 3
Jakarta 4 Surabaya 5
13 20 21 22 14 Medan
(63)
43
Gambar 3.38 Penyaringan Kota Tujuan dari Data 20
Gambar 3.39 Pengecekan Rute Nomor Data 20-15
Tabel 3.34 Penjelasan Gambar 3.39
No data
Kota asal
Kota tujuan
Kode penerbangan
Nama maskapai
Jam berangkat
Jam tiba
Waktu perjalanan
Biaya Level
20 Medan Bandung 2
QZ7981 Airasia 17:10 19:30 140 555000 1
15 Bandung 2
Denpasar 2
QZ7910 Airasia 07:30 10:15 105 425000 2
Total - 980000
Ket : pencarian tidak dilanjutkan ke level berikutnya dikarenakan jam tiba penerbangan 20 lebih besar dari jam berangkat penerbangan 15.
Gambar 3.40 Pengecekan Rute Nomor Data 20-16
Denpasar 2 Medan 3 Medan 4
Bandung 2
16
17 15
Denpasar 2 Medan 3 Medan 4
Bandung 2
16
17 15
Denpasar 2 Medan 3 Medan 4
Bandung 2
16
17 15
(1)
RealDayArrive = "Friday" ElseIf !Saturday = True Then DayX = 5
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 6
RealDayArrive = "Sunday" End If
End With End Sub Sub Selasa() With Rs_Flight
If !Tuesday = True Then DayX = 0
RealDayArrive = "Tuesday" ElseIf !Wednesday = True Then DayX = 1
RealDayArrive = "Wednesday" ElseIf !Thursday = True Then DayX = 2
RealDayArrive = "Thursday" ElseIf !Friday = True Then DayX = 3
RealDayArrive = "Friday" ElseIf !Saturday = True Then DayX = 4
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 5
RealDayArrive = "Sunday" ElseIf !Monday = True Then DayX = 6
RealDayArrive = "Monday" End If
End With End Sub Sub Rabu() With Rs_Flight
If !Wednesday = True Then DayX = 0
RealDayArrive = "Wednesday" ElseIf !Thursday = True Then DayX = 1
RealDayArrive = "Thursday" ElseIf !Friday = True Then DayX = 2
RealDayArrive = "Friday" ElseIf !Saturday = True Then DayX = 3
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 4
RealDayArrive = "Sunday" ElseIf !Monday = True Then DayX = 5
RealDayArrive = "Monday" ElseIf !Tuesday = True Then DayX = 6
RealDayArrive = "Tuesday" End If
End With End Sub Sub Kamis()
(2)
With Rs_Flight
If !Thursday = True Then DayX = 0
RealDayArrive = "Thursday" ElseIf !Friday = True Then DayX = 1
RealDayArrive = "Friday" ElseIf !Saturday = True Then DayX = 2
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 3
RealDayArrive = "Sunday" ElseIf !Monday = True Then DayX = 4
RealDayArrive = "Monday" ElseIf !Tuesday = True Then DayX = 5
RealDayArrive = "Tuesday" ElseIf !Wednesday = True Then DayX = 6
RealDayArrive = "Wednesday" End If
End With End Sub Sub Jumat() With Rs_Flight
If !Friday = True Then DayX = 0
RealDayArrive = "Friday" ElseIf !Saturday = True Then DayX = 1
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 2
RealDayArrive = "Sunday" ElseIf !Monday = True Then DayX = 3
RealDayArrive = "Monday" ElseIf !Tuesday = True Then DayX = 4
RealDayArrive = "Tuesday" ElseIf !Wednesday = True Then DayX = 5
RealDayArrive = "Wednesday" ElseIf !Thursday = True Then DayX = 6
RealDayArrive = "Thursday" End If
End With End Sub Sub Sabtu() With Rs_Flight
If !Saturday = True Then DayX = 0
RealDayArrive = "Saturday" ElseIf !Sunday = True Then DayX = 1
RealDayArrive = "Sunday" ElseIf !Monday = True Then DayX = 2
RealDayArrive = "Monday" ElseIf !Tuesday = True Then DayX = 3
(3)
RealDayArrive = "Tuesday" ElseIf !Wednesday = True Then DayX = 4
RealDayArrive = "Wednesday" ElseIf !Thursday = True Then DayX = 5
RealDayArrive = "Thursday" ElseIf !Friday = True Then DayX = 6
RealDayArrive = "Friday" End If
End With End Sub
Sub Jawaban1()
With Me.LstFlight2
FlightIndex2 = Me.LstFlight2.ListItems.Count FlightIndex2 = FlightIndex2 + 1
Num2 = Num2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , Me.CboFrom & "-->" & CityResult(No1, 0, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, 0, 0, 0, 0) & "(" & FlightName(No1, 0, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, 0, 0, 0, 0) & "-" & ArriveTime(No1, 0, 0, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, 0, 0, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , ArriveDate(ResultIndex) & "(" & DayOfArrive(ResultIndex) & ")"
WaktuConverter
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Journey :" & WaitResult(ResultIndex) + JourneyResult(ResultIndex) & "Minutes (" & HourConverter & "H " & MinuteConverter & "M" & ")" FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Fee :" & TotalFee(No1, 0, 0, 0, 0) JourneyCompare1 = WaitResult(ResultIndex) + JourneyResult(ResultIndex)
FeeCompare1 = FeeResult(ResultIndex) End With
End Sub Sub Jawaban2() With Me.LstFlight2
FlightIndex2 = Me.LstFlight2.ListItems.Count FlightIndex2 = FlightIndex2 + 1
Num2 = Num2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , Me.CboFrom & "-->" & CityResult(No1, 0, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, 0, 0, 0, 0) & "(" & FlightName(No1, 0, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, 0, 0, 0, 0) & "-" & ArriveTime(No1, 0, 0, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, 0, 0, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, 0, 0, 0, 0) & "-->" & CityResult(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, 0, 0, 0) & "(" & FlightName(No1, No2, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, 0, 0, 0) & "-" & ArriveTime(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
(4)
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , ArriveDate(ResultIndex) & "(" & DayOfArrive(ResultIndex) & ")"
WaktuConverter
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Journey :" & WaitResult(ResultIndex) + JourneyResult(ResultIndex) & "Minutes (" & HourConverter & "H " & MinuteConverter & "M" & ")" FlightIndex = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Fee :" & FeeResult(ResultIndex) JourneyCompare1 = WaitResult(ResultIndex) + JourneyResult(ResultIndex)
FeeCompare1 = FeeResult(ResultIndex) End With
End Sub Sub Jawaban3() With Me.LstFlight2
FlightIndex2 = FlightIndex2 + 1 Num2 = Num2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , Me.CboFrom & "-->" & CityResult(No1, 0, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, 0, 0, 0, 0) & "(" & FlightName(No1, 0, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, 0, 0, 0, 0) & "-" & ArriveTime(No1, 0, 0, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, 0, 0, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, 0, 0, 0, 0) & "-->" & CityResult(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, 0, 0, 0) & "(" & FlightName(No1, No2, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, 0, 0, 0) & "-" & ArriveTime(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, No3, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, 0, 0, 0)
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, 0, 0, 0) & "-->" & CityResult(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, 0, 0) & "(" & FlightName(No1, No2, No3, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, 0, 0) & "-" & ArriveTime(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , ArriveDate(ResultIndex) & "(" & DayOfArrive(ResultIndex) & ")"
WaktuConverter
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Journey :" & WaitResult(ResultIndex) + JourneyResult(ResultIndex) & "Minutes (" & HourConverter & "H " & MinuteConverter & "M" & ")" FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Fee :" & FeeResult(ResultIndex)
JourneyCompare1 = WaitResult(ResultIndex) + JourneyResult(ResultIndex) FeeCompare1 = FeeResult(ResultIndex)
End With End Sub
(5)
Sub Jawaban4() With Me.LstFlight2
FlightIndex2 = FlightIndex2 + 1 Num2 = Num2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , Me.CboFrom & "-->" & CityResult(No1, 0, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, 0, 0, 0, 0) & "(" & FlightName(No1, 0, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, 0, 0, 0, 0) & "-" & ArriveTime(No1, 0, 0, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, 0, 0, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, 0, 0, 0, 0) & "-->" & CityResult(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, 0, 0, 0) & "(" & FlightName(No1, No2, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, 0, 0, 0) & "-" & ArriveTime(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, No3, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, 0, 0, 0)
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, 0, 0, 0) & "-->" & CityResult(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, 0, 0) & "(" & FlightName(No1, No2, No3, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, 0, 0) & "-" & ArriveTime(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, No3, 0, 0) & "-->" & CityResult(No1, No2, No3, L, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, No4, 0) & "(" & FlightName(No1, No2, No3, No4, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, No4, 0) & "-" & ArriveTime(No1, No2, No3, No4, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, No4, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , ArriveDate(ResultIndex) & "(" & DayOfArrive(ResultIndex) & ")"
WaktuConverter
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Journey :" & WaitResult(ResultIndex) + JourneyResult(ResultIndex) & "Minutes (" & HourConverter & "H " & MinuteConverter & "M" & ")" FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Fee :" & FeeResult(ResultIndex) JourneyCompare1 = WaitResult(ResultIndex) + JourneyResult(ResultIndex)
FeeCompare1 = FeeResult(ResultIndex) End With
End Sub
Sub Jawaban5() With Me.LstFlight2
FlightIndex2 = FlightIndex2 + 1 Num2 = Num2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , Me.CboFrom & "-->" & CityResult(No1, 0, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, 0, 0, 0, 0) & "(" & FlightName(No1, 0, 0, 0, 0) & ")"
(6)
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, 0, 0, 0, 0) & "-" & ArriveTime(No1, 0, 0, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, 0, 0, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, 0, 0, 0, 0) & "-->" & CityResult(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, 0, 0, 0) & "(" & FlightName(No1, No2, 0, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, 0, 0, 0) & "-" & ArriveTime(No1, No2, 0, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , TotalWait(No1, No2, No3, 0, 0) .ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, 0, 0, 0)
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, 0, 0, 0) & "-->" & CityResult(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, 0, 0) & "(" & FlightName(No1, No2, No3, 0, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, 0, 0) & "-" & ArriveTime(No1, No2, No3, 0, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, 0, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, No3, 0, 0) & "-->" & CityResult(No1, No2, No3, L, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, No4, 0) & "(" & FlightName(No1, No2, No3, No4, 0) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, No4, 0) & "-" & ArriveTime(No1, No2, No3, No4, 0)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, No4, 0) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , CityResult(No1, No2, No3, No4, 0) & "-->" & CityResult(No1, No2, No3, No4, No5)
.ListItems(FlightIndex2).ListSubItems.Add , , FlightNum(No1, No2, No3, No4, No5) & "(" & FlightName(No1, No2, No3, No4, No5) & ")"
.ListItems(FlightIndex2).ListSubItems.Add , , DepartTime(No1, No2, No3, No4, No5) & "-" & ArriveTime(No1, No2, No3, No4, No5)
.ListItems(FlightIndex2).ListSubItems.Add , , 0
.ListItems(FlightIndex2).ListSubItems.Add , , Fee(No1, No2, No3, No4, No5) FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , ArriveDate(ResultIndex) & "(" & DayOfArrive(ResultIndex) & ")"
WaktuConverter
FlightIndex2 = FlightIndex2 + 1 .ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Journey :" & WaitResult(ResultIndex) + JourneyResult(ResultIndex) & "Minutes (" & HourConverter & "H " & MinuteConverter & "M" & ")" FlightIndex2 = FlightIndex2 + 1
.ListItems.Add , , Num2
.ListItems(FlightIndex2).ListSubItems.Add , , "Total Fee :" & FeeResult(ResultIndex) JourneyCompare1 = WaitResult(ResultIndex) + JourneyResult(ResultIndex)
FeeCompare1 = FeeResult(ResultIndex) End With End Sub
Sub WaktuConverter()
TempTotaljourney = WaitResult(ResultIndex) + JourneyResult(ResultIndex) HourConverter = Int(TempTotaljourney / 60)
MinuteConverter = TempTotaljourney Mod 60 End Sub