Metode Depth First Search Untuk Pencarian Rute Jadwal Penerbangan

(1)

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