• Tidak ada hasil yang ditemukan

Aplikasi pencarian jalur alternatif kereta api berbasis web.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Aplikasi pencarian jalur alternatif kereta api berbasis web."

Copied!
108
0
0

Teks penuh

(1)

Abstraksi

Kereta Api merupakan salah satu transportasi masal yang cukup populer di

Indonesia, khususnya di daerah Jawa. Bermacam kereta dengan berbagai jalur

mengangkut ribuan orang setiap harinya, termasuk kereta api kelas eksekutif. Dengan

banyaknya kereta yang melewati banyak stasiun, memungkinkan adanya sebuah jalur

alternatif yaitu kereta lain yang melewati stasiun yang sama. Untuk melakukan pencarian

jalur alternatif ini tidak mudah, penumpang harus mengetahui kereta, stasiun, dan kursi

yang masih kosong untuk setiap kereta pada jalur tersebut. Dengan banyaknya kereta dan

stasiun yang dilewati, maka pencarian secara manual menjadi lama. Tujuan dari skripsi

ini adalah untuk membangun suatu aplikasi yang mampu membantu untuk melakukan

pencarian jalur alternatif secara efisien dan melakukan pemesanan.

Aplikasi dibangun dengan teknologi web dan basis data oracle menggunakan

metodologi waterfall model. Untuk menggunakan aplikasi ini pengguna melakukan login,

kemudian memasukan beberapa inputan berupa tanggal berangkat, stasiun asal, stasiun

tujuan. Selanjutnya aplikasi menampilkan hasil pencarian yang kemudian bisa dipesan.

Dari hasil pengujian oleh beberapa responden yaitu enam orang pengguna dan

aktifis penggemar kereta api dapat disimpulkan bahwa sistem dapat berjalan dengan baik

(2)

Abstract

Train is one of popular public transportations in Indonesia, especially in Java. Various of trains with different of tracks carry thausand of people everyday, including in executive class train. Many trains that pass many stations urge us to make alternative tracks which depart the different trains from the same station. To search this alternative track is not easy, passenger should know trains, tracks, and seats that are still empty for each train. The passenger often miss some trains and stations due to the manual wasting time. This tessis goal is build an application to help search the alternative track efficienlly and order seat.

The Aplication is build with web technology and the oracle database use waterfall model. To use this aplication user must login and enter several inputs, such as departure date, departure station and destination station. Then aplication show result of searching that can be ordered by passengers.

(3)

APLIKASI PENCARIAN JALUR ALTERNATIF KERETA API

BERBASIS WEB

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer

Program Studi Teknik Informatika

   

Oleh :

AMIKO BINTORO 075314087

   

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(4)

WEB-BASED TRAIN TRACK SEARCH APPLICATION

A THESIS

Presented as Partial Fulfillment of the Requirements To Obtain the SarjanaKomputerDegree

In Informatics Engineering Department

   

By:

AMIKO BINTORO 075314087

   

INFORMATICS ENGINEERING PROGRAM

DEPARTMENT OF INFORMATICS ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

(5)

2013

SKRIPSI

PENCARIAN JALUR ALTERNATIFKERETA API BERBASIS WEB

Oleh : AmikoBintoro

075314087

Telahdisetujuioleh :

DosenPembimbingTugasAkhir

(6)

SKRIPSI

APLIKASI PENCARIAN JALURALTERNATIF KERETA API BERBASIS WEB

Dipersiapkandandisusunoleh : AmikoBintoro

NIM : 075314087

Telahdipertahankan di depan Tim Penguji Padatanggal 17 September 2013 Dan dinyatakanmemenuhisyarat

SusunanPanitiaPenguji :

NamaLengkap Tandatangan

Ketua Alb. AgungHadhiatma, M.T ………

Sekretaris Sri HartatiWijono, S.Si.,M.Kom. ………...… Anggota JB Budi Darmawan, S.T., M.Sc. ………

Yogyakarta, 16Oktober 2013 FakutasSainsdanTeknologi

UniversitasSanata Dharma

Dekan

(7)

HALAMAN PERSEMBAHAN

Untukgembala yang baik, TUHAN YESUS KRISTUS

Untukkeluargaterkasih

dan

Untukteman-temantercinta

(8)

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini

tidak memuat karya/ bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, 14Oktober 2013

Penulis

(9)

PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertandatangan di bawahini, sayamahasiswaUniversitasSanataDharma :

Nama : AmikoBintoro

NIM : 075314087

Demi pengembanganilmupengetahuan,

sayamemberikankepadaperpustakaanUniversitaSanata Dharma karyailmiahsaya

yang berjudul :

APLIKASI PENCARIAN JALUR ALTERNATIF KERETA API BERBASIS WEB

Besertaperangkat yang diperlukan( bila perlu ). Dengan demikian saya

memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk

menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk

pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di

internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari

saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama

saya sebagai penulis. Demikian pernyataan ini saya buat dengan sebenarnya.

Dibuat di Yogyakarta

Padatanggal :14 Oktober 2013

Yang menyatakan

(10)

APLIKASI PENCARIAN JALUR ALTERNATIF KERETA API BERBASIS WEB

Abstraksi

Kereta Api merupakan salah satu transportasi masal yang cukup populer di

Indonesia, khususnya di daerah Jawa. Bermacam kereta dengan berbagai jalur

mengangkut ribuan orang setiap harinya, termasuk kereta api kelas eksekutif.

Dengan banyaknya kereta yang melewati banyak stasiun, memungkinkan adanya

sebuah jalural ternatif yaitu keretalain yang melewati stasiun yang sama. Untuk

melakukan pencarian jalur alternatif ini tidak mudah, penumpang harus

mengetahui kereta, stasiun, dan kursi yang masih kosong untuk setiap kereta pada

jalur tersebut. Dengan banyaknya kereta dan stasiun yang dilewati, maka

pencarian secara manual menjadi lama. Tujuandari skripsi ini adalah untuk

membangun suatu aplikasi yang mampu membantu untuk melakukan pencarian

jalur alternatif secara efisien dan melakukan pemesanan.

Aplikasi dibangun dengan teknologi web dan basis data oracle

menggunakan metodologi waterfall model.Untuk menggunakan aplikasi ini

pengguna melakukan login, kemudian memasukan beberapa inputan berupa

tanggal berangkat, stasiun asal, stasiun tujuan. Selanjutnya aplikasi menampilkan

hasil pencarian yang kemudian bisa dipesan.

Dari hasil pengujian oleh beberapa responden yaitu enam orang pengguna

dan aktifis penggemar kereta api dapat disimpulkan bahwa sistem dapat berjalan

(11)

WEB-BASED TRAIN TRACK SEARCH APPLICATION

Abstract

Train is one of popular public transportations in Indonesia, especially in

Java. Various of trains with different of tracks carry thausand of people everyday,

including in executive class train. Many trains that pass many stations urge us to

make alternative tracks which depart the different trains from the same station. To

search this alternative track is not easy, passenger should know trains, tracks, and

seats that are still empty for each train.The passenger often miss some trains and

stations due to the manual wasting time. This tessis goal is build an application to

help search the alternative track efficienlly and order seat.

TheAplication is build with web technology and the oracle database use

waterfall model. To use this aplication user must login and enter several inputs,

such as departure date, departure station and destination station. Then aplication

show result of searching that can be ordered by passengers.

Based on result of testing six users can be concluded that the application

(12)

KATA PENGATAR

Puji syukur kepada Tuhan Yesus Kristus yang telah memberikan kasih

karunia, kemampuan dan kesempatan sehingga penulis dapat menyelesaikan tugas

akhir dengan judul “APLIKASI PENCARIAN JALUR ALTERNATIF KERETA

API BERBASIS WEB”.

Terimakasih yang sebesar-besarnya kepada semua pihak yang telah

memberikan dukungan, semangat, serta bantuan sehingga penulis mampu

menyelesaikan skripsi ini :

1.P.H Prima Rosa, S.Si.,M.Sc., selaku Dekan Fakultas Sains dan

Teknologi Universitas Sanata Dharma Yogyakarta

2. Ibu Ridhowati Gunawan, S.Kom.,M.T., selaku ketua jurusan Program

Studi Teknik Informatika Universitas Sanata Dharma Yogyakarta

3. Bapak JB Budi Darmawan S.T.,M.Sc., selaku dosen pembimbing atas

kesabaran , saran dan waktu yang diberikan

4. Ibu Sri Hartati Wijono, S.Si.,M.Kom., dan Bapak Alb. Agung

Hadhiatma.M.T, selaku dosen penguji atas saran dan kritikannya.

5. Orang tuasaya , Bapak Mikhael Dwi Puryanto dan Ibu Silvia Triwigati

dan Bapak Nuhman dan adik-adik saya , Eunike Beti Wigati, AmKeb., dan

Yosia Candra Pramudito yang telah memberikan seluruh dukungan, baik

(13)

6. Teman-teman komunitas jimbez (Taufik, S.Kom., Leonardus ,S.Kom,

AlbertusDio, S.Kom, RobertusAtyantama, Mariano Lucky Z, S.Kom,

Markus Herjuno,S.Kom., Andri Yudha P., S.Kom., Yohanes Sapto

Prabowo) atas dukungan penuh yang diberikan.

7. Gembala Sidang dan seluruh jemaat GBI M3, atas dukungan doa yang

diberikan.

8. Teman-teman Mitra Perpustakaan Universitas Sanata Dharma atas

dukungan dan semangat yang diberikan.

9. Teman-teman TI’07 dan semua pihak yang telah berperan serta baik

secara langsung maupun tidak langsung sehingga penulis mampu

menyelesaikan skripsi ini.

Penulis menyadari bahwa masih banyak kekurangan dalam penyusunan

skripsi ini. Saran dan kritik sangat diharap kan untuk perbaikan kedepannya.

Semoga dapat bermanfaat.

Yogyakarta, 14 Oktober 2013

(14)

DAFTAR ISI

HALAMAN JUDUL BAHASA INDONESIA ... i

HALAMAN JUDUL BAHASA INGGRIS ... ii

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

HALAMAN PERNYATAAN KEASLIAN KARYA ... vi

HALAMAN PERSETUJUAN PUBLIKASI ... vii

ABSTRAK ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR TABEL ... xvii

DAFTAR GAMBAR ... xviii

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan Penelitian ... 3

1.4 Batasan Masalah ... 3

1.5 Metode Penelitian ... 3

1.5.1 Perencanaan ... 3

1.5.2 Definisi Kebutuhan ... 4

1.5.3 Perancangan ... 4

(15)

1.5.5 Integrasi dan Tes ... 4

1.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 6

2.1 Aplikasi ... 6

2.2 Aplikasi Web ... 6

2.2.1 Hyper Text Markup Languages ( HTML) ... 7

2.2.2 Java Server Pages ... 7

2.2.2 Session dan Cookies ... 9

2.3 Basisdata( Database ) ... 10

2.4 Model Waterfall ... 10

2.4.1 Perencanaan ... 11

2.4.2 Definisi Kebutuhan ... 11

2.4.3 Perancangan ... 12

2.4.3.1 Logical Design ... 14

2.4.3.1 Physical Design ... 15 

2.4.4 Pengembangan ... 15

2.4.5 Integrasi dan Tes ... 15

BAB III ANALISIS DAN PERANCANGAN SISTEM ... 16

3.1 Analisis Sistem ... 16

3.1.1 Gambaran Sistem Lama ... 16

3.1.2 Gambaran Sistem Baru ... 17

3.2 Use Case ... 19

3.2.1 Use Case Diagram ... 19

3.2.2 Tabel Use Case ... 19

(16)

3.3 Data Flow Diagram (DFD) ... 24

3.3.1 DFD Level 0 ... 24

3.3.2 DFD Level 1 ... 26

3.3.2.1 DFD Level 1 Login ... 26

3.3.2.2 DFD Level 1 Update Data Kereta ... 27

3.3.2.3 DFD Level 1 Update Data Kereta_template ... 27

3.3.2.4 DFD Level 1 Update Data Stasiun ... 28

3.3.2.5 DFD Level 1 Update Data Jam ... 28

3.3.2.6 DFD Level 1 Cari Jalur Alternatif ... 28

3.3.2.7 DFD Level 1 Lihat Order ... 29

3.4 Perancangan Database ... 30

3.4.1 E-R Diagram ... 30

3.4.2 Desain Logikal Basisdata ... 31

3.4.3 Desain Fisikal Basisdata ... 32

3.4.3.1 Tabel Kereta ... 32

3.4.3.2 Tabel Stasiun ... 32

3.4.3.3 Tabel Kereta Template ... 32

3.4.3.4 Tabel Kereta Berangkat... 33

3.4.3.5 Tabel Gerbong ... 33

3.4.3.6 Tabel Kursi ... 33

3.4.3.7 Tabel Pengguna ... 34

3.4.3.8 Tabel Pesan ... 34

3.4.3.9 Tabel Has Stasiun ... 34

(17)

3.5.1 Desain Halaman Home Admin ... 35

3.5.2 Desain Halaman Login ... 35

3.5.3 Desain Halaman Hasil Pencarian ... 36

3.5.4 Desain Halaman Update ... 36

3.5.5 Desain Form Pesan ... 37

3.5.6 Desain Halaman Home User ... 37

3.5.7 Desain Halaman Hasil Pencarian User ... 38

3.5.8 Desain Halaman Pesan User ... 38

BAB IV IMPLEMENTASI DAN ANALISIS HASIL ... 39

4.1 Antar Muka Pengguna Sistem ... 39

4.1.1 Halaman Login dan Logout ... 39

4.1.2 Halaman Home Admin ... 45

4.1.3 Halaman Hasil Pencarian ... 46

4.1.4 Halaman Update ... 52

4.1.5 Halaman Lihat Order ... 60

4.1.6 Halaman Sisa Kursi ... 61

4.1.5 Halaman Home User ... 64

4.2 Proses Generate Database ... 67

BAB V ANALISIS HASIL ... 78

5.1 Analisis Hasil Perangkat Lunak ... 78

5.2 Kelebihan dan Kekurangan Aplikasi ... 79

BAB VI KESIMPULAN ... 80

6.1 Kesimpulan ... 80

(18)
(19)

DAFTAR TABEL

Gambar 3.1 Diskripsi Use Case ... 19

Gambar 3.2 Penjelasan Gambar kereta ... 32

Gambar 3.3 PenjelasanGambar stasiun ... 32

Gambar 3.4 Penjelasan Gambar kereta_template ... 32

Gambar 3.5 Penjelasan Gambar kereta_berangkat ... 33

Gambar 3.6 Penjelasan Gambar gerbong ... 34

Gambar 3.7 Penjelasan Gambar kursi ... 33

Gambar 3.8 Penjelasan Gambarpengguna ... 34

Gambar 3.9 Penjelasan Gambar pesan ... 34

Gambar 3.10 Penjelasan Gambarhas_stasiun ... 34

Gambar 4.1 Database Connection ... 39

Gambar 4.2 Servlet Login Controller... 42

Gambar 4.3 Tampil Jalur.jsp ... 46

Gambar 4.4 Method Cari2... 48

Gambar 4.5 Update Stasiun... 53

Gambar 4.6 Method LihatDataStasiun ... 56

Gambar 4.7 Ubah Data Stasiun ... 58

Gambar 4.8 Method LihatDataStasiun2 ... 60

Gambar 4.9 Generate Kereta Berangkat ... 64

Gambar 4.10 Generata Gerbong ... 68

Gambar 4.11 Generata Kursi... 69

 

 

 

 

(20)

DAFTAR GAMBAR

 

Gambar 2.1 Waterfall Model ... 11

Gambar 2.2 Tools Requirements Definition ... 12

Gambar 2.3 Tools Design E-R Diagram ... 12

Gambar 2.4 Tools Design DFD ... 13

Gambar 3.1 Ilustrasi Alternatif ... 16

Gambar 3.2 Diagram Konteks... 17

Gambar 3.3 Use Case ... 19

Gambar 3.4 Diagram Berjenjang ... 23

Gambar 3.5 DFD Level 0 Admin ... 24

Gambar 3.6 DFD Level 0 User ... 25

Gambar 3.7 DFD Level 0 Sistem ... 25

Gambar 3.8 DFD Level 1 Login ... 26

Gambar 3.9 DFD Level 1 Update Data Kereta ... 27

Gambar 3.10 DFD Level 1 Update data Kereta Template ... 27

Gambar 3.11DFD Level 1 Update Data Stasiun ... 28

Gambar 3.12 DFD Level 1 Cari Jalur Alternatif... 28

Gambar 3.13 DFD Level 1 Lihat Order ... 29

Gambar 3.14 E-R Diagram ... 30

Gambar 3.15 Desain Logikal Basisdata ... 31

Gambar 3.16 Desain Halaman Home ... 35

Gambar 3.17 Desain Halaman Login ... 35

Gambar 3.18 Desain Halaman Hasil Pencarian ... 36

Gambar 3.19 Desain Halaman Update ... 36

Gambar 3.20 Pesan ... 37

Gambar 3.21 Halaman Home Admin... 37

Gambar 3.22 Halaman Hasil Pencarian User ... 38

Gambar 3.23 Halaman Pesan User... 38

Gambar 4.1 Login ... 39

(21)

Gambar4.3 Halaman Home Admin... 45

Gambar 4.4 Halaman Hasil Pencarian ... 46

Gambar 4.5 Form Pesan ... 51

Gambar 4.6 Pemesanan Berhasil... 52

Gambar 4.7 Halaman Update ... 52

Gambar 4.8 Ubah Data Stasiun ... 58

Gambar 4.9 Lihat Order ... 60

Gambar 4.10 Halaman Sisa Kursi. ... 61

Gambar 4.11 Halaman Home User. ... 64

Gambar 4.12 Halaman Hasil Pencarian. ... 65

Gambar 4.13 Form Pesan ... 66

Gambar 4.14 Pesan Berhasil ... 66 

(22)

BAB I PENDAHULUAN

1.1. Latar Belakang 

Kereta Api (KA) merupakan sarana transportasi darat yang cukup

penting di Indonesia yang dikelola oleh PT. Kereta Api Indonesia ( Persero ),

khususnya di daerah pulau jawa. Kereta Api di Jawa dapat diketegorikan ke

dalam dua kategori yaitu KA barang dan KA penumpang . KA barang banyak

dipakai untuk mendistribusikan barang-barang ke berbagai daerah di pulau

jawa. KA penumpang digunakan untuk membantu mobilisasi orang dari

daerah satu ke daerah lain. KA penumpang memiliki jenis dan kelas yang

beragam. Mulai dari kelas ekonomi, ekonomi AC, Bisnis sampai kelas

tertinggi kelas eksekutif yang dibedakan berdasarkan layanan yang diberikan

pada masing-masing kelas. Kelas eksekutif sebagai kelas unggulan memiliki

layanan terbaik diantara kelas yang lain seperti; gerbong yang berpendingin

udara, tempat duduk yang nyaman, hiburan audio visual dan layanan lain

yang membuat penumpang sangat nyaman. Selain itu KA kelas ini juga

memiliki beberapa keunggulan lain, seperti pemberhentian yang lebih sedikit

dibandingkan dengan KA kelas bisnis maupun ekonomi. Setiap kelas

memiliki armada yang cukup banyak dengan berbagai jalur. Untuk kelas

eksekutif terdapat dua ( 2 ) tipe yaitu jenis Argo yang namanya diambil dari

nama-nama Gunung seperti ; Argo Bromo Anggrek , Argo Dwipangga , Argo Jati , Argo Lawu , Argo Muria , Argo Parahyangan , Argo Sindoro , Argo Wilis dan jenis Satwa yaitu : Bangunkarta , Bima , Gajayana , Sembrani , Taksaka , Turangga yang diberi nama berdasarkan nama hewan atau tokoh pewayangan. Untuk kelas eksekutif setiap harinya ribuan orang diangkut

(23)

Penumpang KA kelas eksekutif kebanyakan adalah orang-orang yang

memiliki mobilitas tinggi dan sudah akrab dengan teknologi. Bahkan, sering

harus melakukan tugas yang berbeda dalam satu waktu. Untuk mencari

informasi tentang berbagai hal, salah satunya KA, mereka sering mengunakan

internet. Dengan berbagai macam KA yang tersedia setiap harinya, maka

teknologi digunakan untuk membantu pencariannya. Dari kasus ini bisa dicari

alternatif jalur dengan memanfaatkan kursi yang masih kosong. Misalnya,

seorang pemumpang ingin naik KA dari Purwokerto dengan tujuan

Yogyakarta. Penumpang bisa memilih KA yang berangkat dari Purwokerto

dengan tujuan Yogyakarta atau mencari KA lain yang melewati Purwokerto

dan Yogyakarta. KA yang lain inilah yang dimaksud dengan alternatif. Untuk

mendapat jalur alternatif ini maka penumpang harus mengetahui KA mana

saja yang melewati kedua kota ini dan memiliki kursi yang masih kosong.

Dengan teknologi yang ada sekarang dimungkinkan adanya suatu

sistem yang mampu membantu menangani pencarian jalur alternatif

khususnya pada KA eksekutif. Selain itu dengan aplikasi ini memungkinkan

sebuah KA dapat terisi maksimum sepanjang jalur.

Dengan adanya aplikasi ini diharapkan mampu memberikan

peningkatan pelayanan bagi penumpang KA maupun pengelola KA.

1.2. Rumusan Masalah 

Dari latar belakang di atas terdapat pokok masalah, yaitu :

Bagaimana membangun aplikasi yang mampu melakukan pencarian dan

(24)

1.3. Tujuan Penelitian  : 

Membangun aplikasi jalur alternatif kereta api untuk membantu

melakukan pencarian dan pemesanan jalur alternatif kereta api.

1.4. Batasan Masalah : 

Adapun batasan masalah dari aplikasi jalur alternatif kereta api adalah:

1. Aplikasi hanya menangani pencarian jalur alternatif kereta api kelas

eksekutif dan pemesanan kursi, dengan satu kursi untuk sekali pesan.

2. Dibangun dengan teknologi Web menggunakan Java dan Database Oracle

Express Edition.

1.5. Metode Penelitian :  

Metodologi penelitian yang digunakan dalam penulisan tugas akhir

ini adalah metode waterfall. Dalam metode ini terdapat beberapa tahap yang

dikerjakan secara berurutan. Tahap-tahapnya sebagai berikut ; ( Presman,

1996 )

1.5.1 Perencanaan

Ini adalah tahapan awal untuk membangun sebuah pandangan atau

pengertian tentang produk perangkat lunak. Di tahapan ini dilakukan

pengumpulan data untuk mengevaluasi sistem lama dan

mendeskripsikan pendekatan management dan teknikal sebagai

pengembangan struktur project dasar.

(25)

Tahapan definisi kebutuhan adalah tahapan dimana dilakukan

pengumpulan proses yang selanjutnya akan dijadikan input tujuan.

Masing – masing tujuan akan membutuhkan satu atau lebih

requirements.

1.5.3 Perancangan

Tahapan perancangan adalah tahap untuk melakukan perancangan

produk yang akan dibuat yang mengacu pada use case yang ada.

Tahapan ini meliputi design database dan design user interface.

1.5.4 Pengembangan

Tahapan pengembangan dilakukan pengerjaan perangkat lunak yang

telah dirancang pada tahap perencanaan, yaitu dengan coding sesuai

dengan apa yang sudah direncanakan seperti coding database, user interface.

1.5.5 Integrasi dan Tes

Pada tahap integrasi dan tes, semua hasil yang telah dibuat menjadi

bahan tes untuk memastikan program berjalan dengan sempurna.

Kesuksesan dalam menjalankan program menetapkan bahwa

perangkat lunak yang dibuat, siap untuk diedarkan ke konsumen. Jika

program mengalami kegagalan maka di tahapan ini akan diperlukan

sebuah perbaikan untuk memastikan bahwa program benar – benar

sempurna.

(26)

Memberikan gambaran secara umum tentang isi skripsi yang meliputi:

latar belakang, rumusan masalah, batasan masalah, tujuan dan manfaat,

metode penelitian dan sistematika penulisan.

Bab II Landasan Teori

Berisi konsep dasar dan teori-teori yang digunakan dalam penulisan

skripsi meliputi aplikasi, aplikasi web dan database.

Bab III Analisa dan Perancangan

Berisi gambaran umum sistem, usecase diagram, sekenario

perancangan, analisa peracangan, perancangan basis data, perancangan

tampilan masukan dan keluaran untuk pengguna.

Bab IV Implementasi dan Pengujian

Bab ini menjelaskan tentang implementasi ke dalam bentuk program

berdasarkan desain yang telah dibuat dan pengujian aplikasi.

Bab V Kesimpulan dan Saran

Bab ini berisi semua simpulan yang didapatkan dari penelitian yang

telah dilakukan. Simpulan menjawab rumusan masalah yang dituliskan pada

bab pendahuluan secara ringkas dan jelas.

(27)

BAB II

LANDASAN TEORI

2.1 Aplikasi

Menurut Kamus Besar Bahasa Indonesia,(1998) “Aplikasi penerapan dari

rancang sistem untuk mengolah data dan menggunakan aturan atau ketentuan

bahasa pemrograman tertentu”.

Aplikasi berasal dari kata application yang artinya penerapana atau

lamaran atau penggunaan. Secara istilah aplikasi adalah program siap pakai yang

direka untuk melaksanakan suatu fungsi bagi pengguna atau aplikasi yang lain

dan dapat digunakan oleh sasaran yang dituju. (www.totalinfo.or.id)

2.2 Aplikasi Web

Aplikasi Web adalah suatu aplikasi yang dapat membentuk halaman –

halaman Web berdasarkan permintaan user ( pengguna ), merupakan salah satu

contoh aplikasi client / server. Ada 2 ( dua ) pihak yang terlibat dalam aplikasi

client / server yaitu client ( pemakai ) dan server ( penyedia ). Client mewakili pihak yang menggunakan layanan aplikasi, sedangkan server adalah pihak yang

menyediakan layanan aplikasi. Pihak client mengunakan perangkat lunak Web

browser, sering disebut browser saja, contohnya : Internet Explorer, Mozilla, Netscape. Pihak server menggunakan perangkat lunak Web server, contohnya Apache dan IIS ( Internet Information Server ). Web server biasanya juga menggunakan database server ( sebuah server yang melayani akses terhadap database ), contohnya : Oracle dan MySQL. Untuk membangun aplikasi Web digunakan bahasa pemrograman seperti : Java Server Pages ( JSP ), Hypertext

(28)

Dalam berkomunikasi, client dan server terhubung melalui Internet atau Intranet.

Internet adalah kumpulan komputer atau jaringan komputer yang terhubung secara global ( seluruh dunia ) sedangkan Intranet adalah komputer yang

terhubung dalam suatu jaringan dalam wilayah tertentu. Client akan melakukan

request ( permintaan ) kepada server melalui protokol HyperText Transfer Protocol ( HTTP ) dalam bentuk HyperText Markup Language ( HTML ),

kemudian server akan membalas dan mengirimkan dokumen sesuai yang

di-request oleh client. (Kadir, 2004)

2.2.1 Hyper Text Markup Language ( HTML )

HTML adalah standar informasi yang berbasis hypertext yang dipakai

pada Web. HTML bekerja menggunakan HyperText Transfer protocol (

HTTP ), suatu protokol komunikasi yang memungkinkan Web sever berkomunikasi dengan Web browser. Dengan adanya protocol ini maka antara

Web Server dan Web browser dapat berkomunikasi. Aturan penulisan kode HTML :

<HTML>

<HEAD>

<TILTE></TITLE>

</HEAD>

<BODY></BODY>

</HTML>

2.2.2 JAVA SERVER PAGES ( JSP )

JSP adalah fitur pada bahasa java yang memungkinkan sebuah aplikasi

Web yang menggunakan pendekatan pemrosesan pada sisi Server. Artinya

(29)

adalah client melakukan request halaman Web ( berupa dokumen JSP ) melalui Internet. Permintaan tersebut diterima oleh server kemudian

dikirimkan ke JSP Servlet Engine. Servlet adalah teknologi Java yang memungkinkan pembuatan halaman Web yang bersifat dinamis dan diproses

pada sisi server. Oleh JSP Servlet Engine dilakukan pemrosesan ( di-generate

) sehingga membentuk kode HTML dan dikirimkan ke client melalui Internet.

Kode JSP pada dasarnya adalah kode HTML yang dilengkapi dengan tag - tag

JSP. Ada 3 ( tiga ) jenis elemen JSP yaitu :

1. Ekspresi berbentuk <%= ekspresi %> yang dievaluasi dan disisipkan ke dalam output ( keluaran ). menyisipkan nilai java secara langsung sebagai

output. Ekspresi java dievaluasi, dikonversi ke suatu String dan disisipkan dalam halaman Web.

2. Scriptlet berbentuk <% kode %> yg disisipkan kedalam metode service

servlet. Mampu menyisipkan ekspresi yg lebih kompleks, memungkinkan menyisipkan arbitrary code ke dalam metode servlet yg akan dibuat untuk

men-generate halaman.

3. Deklarasi berbentuk <%! kode %> yang disisipkan ke dalam body class servlet, diluar metode yang sedang digunakan. Karena tidak men-generate suatu output, maka memungkinkan mendefinisikan metode atau field yang

disisipkan dalam main body ( badan utama ) dari class servlet ( diluar dari

metode service yang memproses request ). Normalnya digunakan untuk konjungsi dengan ekspresi dan scriptlet.

Cotohnya Kode JSP :

<HTML>

<HEAD>

<TILTE>Contoh kode JSP</TITLE>

(30)

<BODY>

<%

Out.print(“Contoh kode JSP”)

%>

</BODY>

</HTML>

Pasangan <% dan %> merupakan salah satu model dari tag JSP.

(Abdul Kadir, 2004)

2.2.3 SESSION dan COOKIE

Session adalah catatan aktifitas bagi keseluruhan interaksi antara satu client dengan server. Server akan menandai client dengan ID session yang

unik. Session akan dimulai ketika request pertama dan dapat diakhiri baik oleh server maupun client. Selama koneksi tidak terputus maka session akan

tetap valid. Berikut Statement yang dipakai untuk pengaturan session:

Statement untuk menciptakan session:

session=request.getSession(true);

Statement untuk membentuk session:

setAtribut(String name, object nilai);

Statement untuk membaca data session: getAtribut(String name);

Statement untuk menghapus data session:

session.removeAttribut(String name);

(31)

Sedangkan cookies sebuah informasi kecil yang dikirimkan oleh servlet ( server ) kepada web-browser ( client ) dan disimpan dalam mesin

lokal yang nantinya dapat dikirimkan kembali ke servlet . Salah satu

pemakaianya yaitu untuk menangani login. Dengan adanya cookies maka

tidak perlu untuk melakukan login secara berulang-ulang saat mengakses

sebuah web yang mensyaratkan login. ( Wijono, 2007 )

2.3 BASISDATA ( DATABASE )

Basis data adalah kumpulan informasi yang disimpan di dalam

komputer secara sistematik sehingga dapat diperiksa menggunakan suatu

program komputer untuk memperoleh informasi dari basis data tersebut.

Perangkat lunak yang digunakan untuk mengelola dan memanggil kueri (

query ) basis data disebut sistem manajemen basis data ( database management system, DBMS ). Sistem basis data dipelajari dalam ilmu informasi. (Wesley, 2004)

Salah satu contoh DBMS adalah Oracle dan MySql. Oracle sendiri

memiliki kelebihan yaitu pada Procedural Language/Structured Query

Language (PL/SQL) dan kemampuan untuk konsistensi dan proteksi data. Dalam pemrograman database , sering digunakan prosedur atau sering disebut

juga Storade Procedure. Prosedure sendiri adalah salah satu tipe dari subprogram yang melakukan sebuah aksi.

2.4 MODEL WATERFALL

Model waterfall adalah model pengembangan sisterm secara

(32)
(33)

Tools yang penulis gunakan untuk requirements definition seperti use case bisa dilihat pada Gambar 2.2 di bawah ini.

Tools :

Aktor Use Case Alur Data Depends On

Gambar 2.2 Tools Requirements Definition 2.4.3 Perancangan

Pada tahapan perancangan ( design ) dilakukan perancangan untuk produk

yang akan dibuat yang mengacu pada use case yang ada. Tahapan ini

meliputi design database ( Entity Relationalship Diagram ), DFD ( Data

Flow Diagram ) dan design user interface.

Tools yang digunakan untuk penulisan Entity Relationalship Diagram (

E_R Diagram ) menurut ( Atzeni, 2000 ),bisa dilihat pada Gambar 2.3 berikut:

Entitas Relasi Atribut

External Identifier

(34)

Entitas merupakan simbol untuk sebuah tabel data tertentu yang memiliki

atribut. Sedangkan relasi adalah sebuah hubungan antar tabel. Untuk

atribut adalah isi dari sebuah entitas atau tabel data. Misalkan sebuah

entitas mahasiswa memiliki beberapa atribut yaitu nim dan nama.

Sedangkan external identifier adalah sebuah kondisi dimana sebuah atribut data tidak cukup untuk dijadikan identitas dengan jelas. Misalkan

ada, ada mahasiswa mendaftarkan pada bemacam universitas, dua

mahasiswa yang memiliki nomor registrasi yang sama. yang sama. Pada

kasus ini, untuk menjadikan sebuah identitas mahasiswa yang jelas, kita

membutuhkan universitas yang bersangkutan beserta nomor

registrasinya. Untuk itu dibutuhkan kode universitas ditambahkan

kedalam nim sehingga bisa dijadikan sebagai identitas yang jelas (

Atzeni, 2000 ).

Tools yang penulis gunakan untuk design DFD bisa dilihat pada Gambar 2.4 di bawah ini :

proses external entity alur data data storage

Gambar 2.4 Tools Design DFD

(35)

Logical design merupakan translasi dari conseptual model yang didefinisikan dalam fase-fase ke dalam bentuk model data yang diadopsi

oleh database management system yang tersedia. Produk dari fase-fase tersebut dinamakan logical schema dari basis data dan hampir sama

artinya dengan logical data model. Model logikal merepresentasikan data

dalam sebuah alur yang terlepas dari physical design. Logical design merupakan sebuah gambar nonteknikal yang memberikan gambaran

tentang apakah sistem dan apa yang dilakukannya. Dalam logical design

akan diterjemahkan conceptual schema kedalam model data yang sesuai

dengan DBMS yang digunakan. Hasil dari tahap ini adalah logical schema

basis data yang mengacu pada logical data model.

Logical data mode dapa disebut juga relational model. Dalam logical model ini, menggambarkan data secara logikal dan harus memperhatikan kriteria optimal yaitu: ada tidaknya redudansi data atau penyimpanan di

beberapa tempat untuk data yang sama dan data yang tidak konsisten (

Atzeni, 2000 ). 

2.4.3.2Physical Design

Physical design melanjutkan logical schema yang kemudian di implementasi secara fisik sesuai dengan DBMS yang digunakan dengan

lebih detail. Selain itu, tahap ini merupakan bentuk perancangan basis data

yang menterjemahkan kebutuhan bisnis ke dalam model sistem yang

menggambarkan implementasi teknik dari kebutuhan bisnis itu sendiri (

Atzeni, 2000 ).

(36)

Tahapan pengembangan ( development ) dilakukan pengembangan

perangkat lunak yang akan dibuat, yaitu dengan coding sesuai dengan apa

yang sudah direncanakan sebelumnya pada tahapan design.

2.4.5 Integrasi dan Tes

Selama pada tahapan integrasi dan tes ( integration and test ), semua

menu yang telah dibuat menjadi bahan tes untuk memastikan program

berjalan dengan sempurna. Kesuksesan dalam menjalankan program

menetapkan bahwa perangkat lunak yang dibuat, siap untuk diedarkan ke

konsumen. Jika program mengalami kegagalan maka di tahapan ini akan

diperlukan sebuah perbaikan untuk memastikan bahwa program benar –

(37)

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1 Analisis Sistem

3.1.1 Gambaran Sistem Lama

PT. KERETA API INDONESIA (PERSERO) merupakan pengelola

perkereta-apian di Indonesia yang memiliki visi menjadi penyedia jasa

perkeretaapian terbaik yang fokus pada pelayanan pelanggan dan memenuhi

harapan stakeholders. Dan misi menyelenggarakan bisnis perkeretaapian dan

bisnis usaha penunjangnya, melalui praktek bisnis dan model organisasi

terbaik untuk memberikan nilai tambah yang tinggi bagi stakeholders dan

kelestarian lingkungan berdasarkan 4 pilar utama : keselamatan, ketepatan

waktu, pelayanan dan kenyamanan. Untuk meningkatkan pelayanan PT

KAI(PERSERO) memiliki sebuah website yang memuat berbagai informasi

tentang kereta api, termasuk di dalamnya jadwal keberangkatan kereta api.

Sampai saat ini belum ada sistem yang menangani pencarian jalur

alternatif KA. Yang dimaksud jalur alternatif sebagai berikut :

Gambar 3.1 Ilustrasi Alternatif

Dari gambar 3.1 di atas terdapat kotak A, kotak B, dan kotak C sebagai

stasiun. Garis panah menunjukan KA yang melewati stasiun tersebut. Jalur

alternatif yaitu dengan mencari KA yang melewati jalur yang sama, pada hari

yang sama juga. Pada contoh di atas jika tidak ingin naik KA merah, ada KA

hitam.

(38)

Untuk mencari jalur alternatif, harus mememperhatikan beberapa hal.

Yang pertama adalah KA apa saja yang tersedia.Yang ke dua KA berhenti di

stasiun mana saja, jam tiba dan jam keberangkatan KA. Setelah mengetahui

informasi tersebut kemudian menentukan KA apa yang akan dipilih, pada

pukul berapa dan berganti KA di stasiun mana.

3.1.2 Gambaran Sistem Baru

Sistem baru ini akan membantu pencarian jalur alternatif KA.

Pengguna (user) dapat mengakses sistem baru ini untuk mencari jalur

alternatif KA yang ada berdasarkan beberapa inputan. Setelah inputan

dimasukkan, sistem akan langsung mencari jalur alternatif yang ada dan

menampilkanya. Untuk diagram konteks sistem baru ini ditunjukan oleh

Gambar 3.2 berikut :

Gambar 3.2 Diagram Konteks

Dalam diagram konteks di atas menggambarkan bahwa user dan admin dapat

berinteraksi dengan aplikasi. Untuk menggunakan aplikasi ini maka user

harus melakukan login terlebih dahulu. Kemudian melakukan pencarian

dengan memasukkan bebeberapa inputan yaitu tanggal berangkat, stasiun asal,

stasiun tujuan dan jumlah kursi yang diinginkan. Setelah semua input

dimasukan dan melakukan perintah pencarian dengan menekan tombol yang

tersedia, maka aplikasi akan langsung melakukan proses pencarian dan

menampilkan hasilnya dalam bentuk tabel. Dalam hasil pencarian juga

terdapat link untuk pemesanan kursi. Untuk melakukan pemesanan kursi user

User Aplikasi Pencarian Jalur

Alternatif

(39)

diminta untuk mengisikan data pribadi yaitu nama dan nomor KTP sebagai

identitas ( id ) yang wajib diisikan. Untuk detail proses di atas dapat dilihat

pada Use case.

Untuk mempersiapkan sebuah kursi yang dapat dipesan maka

dibutuhkan beberapa tabel diantaranya ; tabel untuk menyimpan data kereta,

data stasiun, data jadwal keberangkatan, data pemesan dan data-data lain yang

dibutuhkan. Skenario untuk mempersiapkan kursi yang dapat dipesan diawali

dengan sebuah jadwal keberangkatan yang ditangani oleh tabel

kereta_template. Tabel ini menyimpan informasi data kereta, data stasiun.

Tabel ini memiliki tanggal awal berlaku dan akhir berlaku, dan akan

digenerate kedalam ke dalam sebuah tabel kereta_berangkat yang menunjukan

bahwa ada sebuah kereta yang akan diberangkatkan. Syaratnya adalah tanggal

saat melakukan generate berada dalam rentang tanggal awal berlaku dan

tanggal akhir berlaku. Setelah digenerate ke dalam tabel kereta_berangkat

data dari kereta_template tadi akan mendapat tambahan tanggal_berangkat

dan tanggal tiba. Kemudian data pada kereta_berangkat digenerate ke dalam

tabel gerbong untuk mendapatkan nomor_gerbong berdasarkan banyaknya

gerbong yang dimiliki. Kemudian data pada gerbong akan digenerate ke

dalam tabel kursi. Pada tabel kursi ini ditambahkan nomor kursi dan semua

stasiun yang dilewati. Pada tabel ini juga ditambahkan flag sebagai tempat

untuk menandai apakah sebuah kursi dipesan atau tidak di setiap stasiunnya.

Dalam tabel kursi inilah dilakukan proses pencarian jalur alternatif, jadi dapat

dimunculkan kereta mana yang memiliki kursi yang masih kosong dan bisa

dipesan. Ketika sebuah kursi dipesan maka akan dilakukan pengisian pada

(40)

3.2 Use Case

3.2.1 Use Case Diagram

Gambar 3.3 Use Case

3.2.2 Table Use Case

Tabel 3.1 Deskripsi Use Case

Nama Use Case Deskripsi Use Case Aktor yang

berpartisipasi user  login 

Admin 

<<depends 

Pesan Kursi 

Lihat Order 

Update  Data Stasiun  Update  Data Kereta  Cari Jalur Alternatif 

Update  Data Kereta  Template

(41)

Login Use case ini menggambarkan kejadian dimana admin dan

pengunjung masuk ke dalam

sistem sesuai dengan akunnya

sebelum melakukan aksi di

dalam sistem.

- Admin

- User

Update Data Kereta

Use case ini menggambarkan kejadian dimana admin

melakukan pengolahan update

terhadap data kereta seperti

menambah, menghapus atau

mengubah data kereta.

- Admin

Update Data Kereta

Template

Use case ini menggambarkan kejadian dimana admin

melakukan pengolahan update

terhadap data kereta template

seperti menambah,menghapus

atau mengubah data kereta

template.

- Admin

(42)

Stasiun kejadian dimana admin

melakukan pengolahan update

data Stasiun, seperti menambah,

menghapus, atau mengubah data

Stasiun.

Update Data User

Use case ini menggambarkan kejadian dimana admin

melakukan pengolahan update

data user seperti menambah,

mengubah, dan menghapus data

user .

- Admin

Cari Jalur

Alternatif

Use case ini menggambarkan kejadian dimana admin dan user

melakukan pencarian jalur

alternative dari jalur KA yang

tersedia.

- Admin

- User

Pesan Kursi Use case ini menggambarkan

kejadian dimana admin dan user

melakukan pemesanan kursi KA.

- Admin

(43)

Lihat Order Use case ini menggambarkan kejadian dimana Admin dan

User melakukan pemeriksaan

terhadap data pesan.

(44)

3.2.3 Diagram Berjenjang

Gambar 3.4 Diagram Berjenjang

(Level 0)

(45)

3.3 Data Flow Diagram (DFD) 3.3.1 DFD Level 0

 

Gambar 3.5 DFD Level 0 Admin

Data KURSI (TGL_B, 

Tanggal Berangkat,  Stasiun Asal, Stasiun 

Tujuan  Data USER 

KERETA TEMPLATE  Data KERETA TEMPLATE 

Data KERETA  

Username, Password  Username, Password 

Data KERETA   (NOMOR_KERETA, dll) 

Data KERETA TEMPLATE   (NOMOR_KERETA,  NAMA_KERETA ,dll) 

Data STASIUN       ( NOMOR_STASIUN,  NAMA_STASIUN )  Login 

(ID_Anggota, Nama,  password ) 

(46)

Data KURSI (TGL,  NOMOR_KERETA,STAS_ ASAL, STAS_TUJUAN, dll  ) 

Cari Jalur Alternatif 

Data Kursi 

KURSI User 

User

Gambar 3.6 DFD Level 0 User

Data KERETA BERANGKAT 

Data KURSI (TGL_B,  NOMOR_KERETA,STAS_ ASAL, dll )  

Data GERBONG(TGL_B,  NOMOR_KERETA, 

Data KERETA BERANGKAT 

GERBONG

Generate Tabel  GERBONG 

9

Generate Tabel 

KURSI  KURSI

(47)

3.3.2 DFD LEVEL 1 3.3.2.1 DFD Level 1 Login

Gambar 3.8 DFD Level 1 Login Data login 

1.1

Input Data 

Username, password

Status 

False  Username, password 

Status True

Admin,   User 

1.2

Verifikasi Data  User Pesan 

Error  USER 

Status User 

(48)

3.3.2.2 DFD Level 1 Update Data Kereta

Gambar 3.9 DFD Level 1 Update Data Kereta

2.1

Tampil Data  KERETA

Status  False

NO_KER, NAMA_KER,  TGL _AWAL_BERLAKU,  TGL_AKHIR_BERLAKU 

Status True

3.3.2.3 DFD Level 1 Update Data Kereta_Template

Gambar 3.10 DFD Level 1 Update data Kereta Template Admin 

      KERETA 

NO_KER, NAMA_KER, TGL  _AWAL_BERLAKU,  TGL_AKHIR_BERLAKU,  JML_KURSI, JML_GERBONG 

Status update 

2.2

NO_KER, NAMA_KER,  STASIUN_ASAL, 

NO_KER, NAMA_KER,  STASIUN_ASAL, 

Status update 

(49)

3.3.2.4 DFD Level 1 Update Data Stasiun

Gambar 3.11 DFD Level 1 Update Data Stasiun

3.3.2.5 DFD Level 1 Cari Jalur Alternatif

Gambar 3.12 DFD Level 1 Cari Jalur Alternatif Status True

Status update 

4.2

NAMA_KER, STASIUN_ASAL,  STASIUN_TUJUAN 

7.1

Tampil Jalur  Alternatif

NAMA_KER, STASIUN_ASAL,  STASIUN_TUJUAN 

Admin,  User 

     KURSI 

NAMA_KER, STASIUN_ASAL,  STASIUN_TUJUAN 

Status Search 

7.2

Pesan 

(50)

3.3.2.6 DFD Level 1 Lihat Order

Gambar 3.13 DFD Level 1 Lihat Order

PESAN NAMA_PEMESAN,NO_KURSI,

NAMA_KER, STASIUN_ASAL,  STASIUN_TUJUAN,TGL_BERAN GKAT. 

7.1

Tampil Order 

(51)

3.4 Perancangan Database 3.4.1 E-R Diagram

Gambar 3.14 E-R Diagram n

KERETA TEMPLATE 

TGL_AWAL_BERLAKU 

(52)

3.4.2 Desain Logikal Basisdata

kereta_template  kereta 

PK  nomor_template  PK  nomor_kereta 

   nomor_kereta     nama_kereta 

   tanggal_awal_berlaku     arah     tanggal_akhir_berlaku 

   jam_berangkat  has_stasiun  stasiun 

   jam_tiba     nomor_template  PK  nomor_stasiun 

   jumlah_gerbong     nomor_stasiun     nama_stasiun 

   jumlah_kursi_tiap_gerbong     Jam_berangkat 

   jam_tiba 

           

kereta_berangkat  PK  nomor_berangkat  PK  tanggal_berangkat     tanggal_tiba 

gerbong  pengguna 

PK  nomor_berangkat  PK  id_anggota  PK  tanggal_berangkat     nama 

PK  nomor_gerbong     user_name 

   tanggal_tiba     password 

 

   hak_akses 

kursi  pesan 

PK  nomor_berangkat  PK  id  PK  tanggal_berangkat     nama  PK  nomor_gerbong 

PK  nomor_kursi  PK  stasiun     flag 

   tanggal_berangkat 

(53)

3.4.3 Desain Fisikal Basisdata 3.4.3.1Tabel Kereta

Tabel ini untuk menyimpan data kereta.

Tabel 3.2 Penjelasan tabel kereta

Nama field Tipe data Panjang data Primary key nomor_kereta number

nama_kereta varchar 100

arah

3.4.3.2Tabel Stasiun

Tabel ini untuk menyimpan data stasiun.

Tabel 3.3 Penjelasan tabel stasiun

Nama field Tipe data Panjang data Primary key nomor_stasiun number

nama_stasiun varchar 100 jam_berangkat timestamp

jam_tiba timestamp

3.4.3.3Tabel Kereta_Template

Tabel ini untuk menyimpan data kereta_template.

Tabel 3.4 Penjelasan tabel kereta_template

Nama field Tipe data Panjang data Primary key nomor_template number

nomor_kereta number tanggal_awal_berlaku number tanggal_akhir berlaku number jam_berangkat timestamp

jam_tiba timestamp

(54)

jumlah_kursi_tiap_gerbong number

3.4.3.4Tabel Kereta_Berangkat

Tabel ini untuk menyimpan data kereta berangkat.

Tabel 3.5 Penjelasan tabel kereta_berangkat

Nama field Tipe data Panjang data Primary key nomor_berangkat number

Primary key tanggal_berangkat number tanggal_tiba number

3.4.3.5Tabel Gerbong

Tabel ini untuk menyimpan data gerbong tiap kereta berangkat.

Tabel 3.6 Penjelasan tabel gerbong

Nama field Tipe data Panjang data Primary key nomor_berangkat number

Primary key tanggal_berangkat number Primary key nomor_gerbong number

tanggal_tiba number

3.4.3.6Tabel Kursi

Tabel ini untuk menyimpan data kursi tiap kereta berangkat.

Tabel 3.7 Penjelasan tabel kursi

Nama field Tipe data Panjang data Primary key nomor_berangkat number

Primary key tanggal_berangkat number Primary key nomor_gerbong number

Primary key nomor_kursi number Primary key Stasiun number

Flag number

(55)

3.4.3.7Tabel Pengguna

Tabel ini untuk menyimpan data pengguna.

Tabel 3.8 Penjelasan tabel pengguna

Nama field Tipe data Panjang data Primary key Id_anggota number

Nama Varchar 100 user_name Varchar 100 Password Varchar 8 hak_akses Varchar 15

3.4.3.8Tabel Pesan

Tabel ini untuk menyimpan data kursi tiap kereta berangkat.

Tabel 3.9 Penjelasan tabel pesan

Nama field Tipe data Panjang data Primary key id number

nama varchar 100

3.4.3.9Tabel has_stasiun

Tabel ini untuk menyimpan data stasiun tiap kereta_template

Tabel 3.10 Penjelasan tabel has_stasiun

Nama field Tipe data Panjang data Primary key nomor_template number

(56)

3.5 Desain Antar Muka

3.5.1 Desain Halaman Home Admin

Desain antar muka untuk halaman awal adalah seperti Gambar 3.17 berikut

Gambar 3.16 Desain Halaman Home

3.5.2 Desain Halaman Login

Desain antar muka untuk halaman login ditampilkan pada Gambar 3.18

berikut

Gambar 3.17 Desain Halaman Login

‐Tanggal ‐  

 

Login 

‐Stasiun ‐Asal‐

‐Stasiun Tujuan‐

‐Jumlah Kursi‐  Update  Lihat Order 

Home 

Cari 

  Login 

 

‐User Name‐ 

‐Password ‐ 

(57)

3.5.3 Desain Halaman Hasil Pencarian

Desain antar muka Hasil Pencarian ditampilkan pada Gambar 3.19 berikut;

Gambar 3.18 Desain Halaman Hasil Pencarian

3.5.4 Desain Halaman Update

Desain antar muka Halaman Update ditampilkan dalam Gambar 3.20 berikut;

Gambar 3.19 Desain Halaman Update

Update Kereta

Nama Kereta Ubah Hapus

NomorKereta 

Nomor   Nama Kereta Pesan

1      Kereta1              pesan       

2      Kereta1               pesan      

(58)

3.5.5 Desain Form Pesan

Desain antar muka untuk Pesan ditunjukan dalam Gambar 3.21

berikut :

Gambar 3.20 Pesan

   Kereta1       

  Stasiun asal‐stasiun tujuan 

Tanggal berangkat‐tanggal tiba

Nomor KTP 

Pesan  Batal 

3.5.6 Desain Halaman Home User

Desain antar muka Halaman Update ditampilkan dalam Gambar 3.22

berikut;

Gambar 3.18 Desain Halaman Update

‐Tanggal ‐  

 

Login 

‐Stasiun ‐Asal‐ 

‐Stasiun Tujuan‐ 

‐Jumlah Kursi‐ 

Home 

Cari  Pesan 

(59)

3.5.7 Desain Halaman Hasil Pencarian User

Desain antar muka Hasil Pencarian ditampilkan pada Gambar 3.23 berikut;

Gambar 3.22 Halaman Hasil Pencarian User

3.5.8 Desain Halaman Pesan User

Desain antar muka halaman pesan user ditampilkan pada Gambar 2.24

berikut :

Gambar 3.23 Halaman Pesan User

 

Pesan    Kereta1       

  Stasiun asal‐stasiun tujuan 

Tanggal berangkat‐tanggal tiba

Batal 

Nomor KTP 

‐Tanggal ‐  

  Home  Pesan 

Logout 

Nama Kereta

Nomor   Pesan

‐Stasiun ‐Asal‐ 1      Kereta1              pesan   

‐Stasiun Tujuan‐ 2      Kereta1              pesan       

‐Jumlah Kursi‐ 

(60)

BAB IV

IMPLEMENTASI DAN ANALISIS HASIL

4.1 Antar Muka Pengguna Sistem 4.1.1 Halaman Login dan Logout

Berikut adalah tampilan hasil implementasi rancangan untuk proses

login, ditunjukan pada Gambar 4.1 berikut ;

Gambar 4.1 Login

Dibawah ini adalah potongan listing untuk koneksi ke database ,

disajikan dalam listing 4.1 berikut :

Listing 4.1 DatabaseConnection public class DatabaseConnection { 

     

    String url = "jdbc:oracle:thin:@localhost:1521:XE"; 

    String user = "skripsi"; 

    String password = "skripsi"; 

     

(61)

    public Statement st; 

    Connection conn; 

 

    public DatabaseConnection() { 

        try {       

      Class.forName("oracle.jdbc.driver.OracleDriver"); 

        } catch (ClassNotFoundException ex) { 

      

Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE,  null, ex); 

        } 

        try { 

      conn = (Connection) DriverManager.getConnection(url, user,  password); 

      System.out.println("Your Connection Ready....^.^ \n"); 

      st = conn.createStatement(); 

        } catch (SQLException ex) { 

      

Logger.getLogger(DatabaseConnection.class.getName()).log(Level.SEVERE,  null, ex); 

        } 

    } 

    public Statement getSt(){ 

        return st; 

    } 

    public int updateData(String sql) throws SQLException{ 

        int i=0; 

        i=st.executeUpdate(sql); 

(62)

    } 

    public void closeConnection() throws SQLException{ 

        if(conn!=null){ 

      conn.close(); 

      System.out.println("Connection was close"); 

        } 

    } 

    public Connection openConnection() throws SQLException{ 

        conn= DriverManager.getConnection(url, user, password); 

        return conn; 

    } 

    public ResultSet lihatData(String sql) throws SQLException{ 

        ResultSet rset=null; 

        rset=st.executeQuery(sql); 

        return rset;  }

Pada listing 4.1 diatas merupakan koneksi ke database, dengan user

skripsi dan password skripsi. Untuk port yang dipakai adalah 1521.

Gambar 4.1 merupakan tampilan untuk proses login. Untuk dapat

mengakses sistem sampai ke tahap pemesanan maka user harus melakukan

proses login terlebih dahulu. User diminta untuk memasukkan username dan

password ,maka sistem akan melakukan pengecekan apakah username dan password yang dimasukkan valid atau tidak. Jika tidak, maka user diminta untuk mengulang proses login, dan menampilkan pesan “login  GAGAL 

(63)

Gambar 4.2 Login Gagal

Tetapi jika valid maka user akan mendapatkan tampilan halaman Home sesuai

dengan hak akses yang dimiliki. Berikut adalah potongan listing program

untuk proses login, disajikan dalam listing 4.2 berikut :

Listing 4.2 ServletLoginController.jsp

HttpSession session = request.getSession(true);  session.setMaxInactiveInterval(‐1);  

response.setContentType("text/html;charset=UTF‐8"); 

 PrintWriter out = response.getWriter(); 

        String send = request.getParameter("send"); 

       else if (send.equals("login")) { 

              try { 

      String user_Name = request.getParameter("username"); 

      String password = request.getParameter("password"); 

       

      Login_Aksi log = new Login_Aksi(); 

      String level = log.getLevel(user_Name, password);     

       boolean hasil = log.login(user_Name, password); 

      if (hasil = true) { 

      if (level.equals("admin")) { 

(64)

      session.setAttribute("admin", "administratornya"); 

      RequestDispatcher rd = 

request.getRequestDispatcher("./Admin_Home.jsp"); 

      rd.forward(request, response); 

       

      } else if (level.equals("user")) { 

       

      session.setAttribute("user", "usernya"); 

      RequestDispatcher rd = 

request.getRequestDispatcher("./User_Home.jsp"); 

      rd.forward(request, response); 

              } else { 

      System.out.println("Login salah"); 

      response.sendRedirect("index.jsp?error=yes"); 

      } 

      } else { 

      System.out.println("salah"); 

      response.sendRedirect("index.jsp?error=yes"); 

      } 

Penjelasan Listing 4.2

Proses penerimaan variabel yang dimasukkan user dalam halaman

login, terjadi pada baris berikut :

String user_Name = request.getParameter("username"); 

(65)

Untuk penanganan mengenai login selanjutnya menggunakan class

Login_Aksi, ditunjukan pada baris berikut :

 

Login_Aksi log = new Login_Aksi(); 

Untuk pengecekan user dan mendapatkan hak akses menggunakan method

getLevel, dan method login. Terjadi pada baris berikut :

String level = log.getLevel(user_Name, password);    

         boolean hasil = log.login(user_Name, password); 

Jika hasil pengecekan valid maka kemudian akan ditampilkan halaman yang

sesuai dengan hak akses yang dimiliki, sebagai admin atau user biasa. Proses

ini ditunjukan pada baris berikut :

 

if (hasil = true) { 

        if (level.equals("admin")) { 

        session.setAttribute("admin", level);  RequestDispatcher rd = 

request.getRequestDispatcher("./Admin_Home.jsp"); 

        rd.forward(request, response); 

       } else if (level.equals("user")) { 

        session.setAttribute("user", level); 

        RequestDispatcher rd = request.getRequestDispatcher("./User_Home.jsp"); 

        rd.forward(request, response); 

        } 

  

Jika pada proses di atas data tidak ditemukan, maka terjadi kesalahan dan

(66)

        } else { 

        response.sendRedirect("index.jsp?error=yes") 

 

4.1.2 Halaman Home Admin

Gambar 4.3 Halaman Home Admin

Gambar 4.3 merupakan halaman tampilan awal ketika proses login

berhasil dan hak akses yang dimiliki adalah sebagai admin.Pada halaman ini

terdapat beberapa menu yaitu menu Home, Pesan Kursi, Update, Lihat Order

dan Menu Sisa Kursi. Pada halaman ini juga ditampilkan form Cari Jalur

dengan 4 inputan, yaitu ; Tanggal Berangkat, Stasiun asal, Stasiun tujuan dan

Jumlah Kursi. Form ini mendukung admin untuk bisa melakukan pencarian jalur alternatif. Untuk melakukan pencarian, admin diminta untuk memasukan

inputan Tanggal Berangkat, Stasiun asal, Stasiun tujuan dan Jumlah Kursi

yang tersedia. Kemudian menekan tombol cari. Secara otomatis sistem akan

melakukan pencarian. Pada halaman ini juga terdapat tombol untuk

(67)

4.1.3 Halaman Hasil Pencarian

Gambar 4.4 Halaman Hasil Pencarian

Gambar 4.4 menunjukan halaman hasil pencarian jalur kereta.

Halaman ini akan muncul setelah user memasukan semua inputan yaitu ;

Tanggal Berangkat, Stasiun asal, Stasiun tujuan dan Jumlah Kursi dan

menekan tombol cari. Halaman ini juga mnampilkan informasi

keberangkanya pada hari Jumat, 3 Januari 2012 dengan tujuan yaitu

GAMBIR-YOGYAKARTA untuk 1 kursi. Sebelah kanan dari tabel hasil

pencarian ini terdapat form Cari Jalur, jika ingin melakukan pencarian lagi

tinggal melakukan langkah yang sama seperti pada halaman Home. Listing

4.3 di bawah merupakan potongan program untuk melakukan pencarian jalur.

Listing 4.3 Tampil_Jalur.jsp

        java.sql.ResultSet result = Aksi.Cari_Aksi.Cari2(tanggal, asal, tujuan, jumlah); 

        out.println("BERANGKAT  : " + tgl + " _ _ _ "); 

(68)

jumlah); 

        while (result.next()) { 

      out.println("<tr class=\"gradeA\" >"); 

      out.println("<td align=\"center\"> </td>"); 

      out.println("<td>" + result.getString("nomor_kereta") + "</td>"); 

      out.println("<td>" + result.getString("nama_kereta") + "</td>"); 

      %> 

      <td align="center" class="style20"><div ><a  onclick="editkereta(<%= result.getString("nomor_kereta")%>)" 

href="Pesan.jsp?ns=<%= result.getString("nomor_kereta")%>‐<%=tanggal%>‐ <%=asal%>‐<%=tujuan%>‐<%=jumlah%>" class="ubahguru" rel="iframe width:740  height:300 modal:true" title="Pesan Kursi...">Pesan</a></div></td> 

         <%  

 out.print("<form id='deleteform' method='post' 

action='servletStasiunController'>");      

out.print("<input type='hidden' name='nostasion'>");       out.print("<input type='hidden' name='Job' value='deletestasiun'>");        out.print("</form>"); 

%> 

 <td align="center" class  ="style20"><div ><a 

onclick="deletekeretalihat(<%=result.getString("Nomor_Kereta")%>);"   href="#" 

id="<%=result.getString("Nomor_Kereta")%>">Alternatif</a></div></td> 

 <% 

      out.println("</tr>"); 

        }

(69)

Untuk melakukan pencarian dilakukan dengan memanggil kelas

method Cari2, pada kelas Cari Aksi, yang ditunjukan pada baris berikut :

 

java.sql.ResultSet result = Aksi.Cari_Aksi.Cari2(tanggal, asal, tujuan, jumlah); 

Method Cari2 mendapatkan empat input yaitu; tanggal, asal, tujuan, dan jumlah. Listing 4.4 berikut merupakan potongan program method Cari2 :

Listing 4.4 Method Cari2

public static ResultSet Cari2(String tgl, String stasiunA, String stasiunB, String  jumlah) throws SQLException { 

        DatabaseConnection connection = new DatabaseConnection(); 

        ResultSet rs = null; 

        String sql = "select k1.nomor_kereta, k1.nama_kereta, k2.nomor_template  from kereta k1,(select t2.nomor_kereta,t2.nomor_template from kereta_template  t2,(select nomor_berangkat as kereta from kursi_temp where 

tanggal_berangkat='" + tgl + "' and stasiun<='" + stasiunA + "' and stasiun='" +  stasiunB + "'and flag is null group by nomor_berangkat having 

count(nomor_kursi)>='"+jumlah+"')t1 where t2.NOMOR_TEMPLATE=t1.kereta  order by nomor_kereta)k2 where k1.NOMOR_KERETA=k2.nomor_kereta and  k1.arah=1"; 

 

        rs = (ResultSet) connection.lihatData(sql); 

        return rs; 

    }

(70)

Method Cari2 pada listing 4.4 di atas menunjukan bahwa method ini bertipe ResultSet dan memiliki 4 input bertipe String , ditunjukan pada baris

berikut :

public static ResultSet Cari2(String tgl, String stasiunA, String stasiunB, String  jumlah)  

Pada baris program berikut menunjukan method Cari2 melakukan koneksi ke

database.

 

DatabaseConnection connection = new DatabaseConnection();

Untuk mendapatkan data yang dicari digunakan perintah perintah query yang

ditunjukan pada baris berikut :

String sql = "select k1.nomor_kereta, k1.nama_kereta, k2.nomor_template from  kereta k1,(select t2.nomor_kereta,t2.nomor_template from kereta_template  t2,(select nomor_berangkat as kereta from kursi_temp where tanggal_berangkat='"  + tgl + "' and stasiun<='" + stasiunA + "' and stasiun='" + stasiunB + "'and flag is null  group by nomor_berangkat having count(nomor_kursi)>='"+jumlah+"')t1 where  t2.NOMOR_TEMPLATE=t1.kereta order by nomor_kereta)k2 where 

k1.NOMOR_KERETA=k2.nomor_kereta and k1.arah=1"; 

Perintah query ini memiliki 4 paramaeter input yaitu tgl, StasiunA, StasiunB

dan jumlah .Perintah ini dimulai dengan perintah select untuk memilih atau

mengambil data yang kemudian diikuti baris yang dipilih yaitu nomor_kereta,

nama_kereta dan nomor_template. Sedangkan k1 dan k2 untuk menandakan

bahwa data ini berasal dari tabel yang berbeda. Kemudian diikuti tabel yang

dipilih dimulai dengan perintah from. Dan diakhiri dengan perintah where.

(71)

dikirimkan ke database untuk diproses menggunakan perintah yang

ditunjukan pada baris berikut;

 

rs = (ResultSet) connection.lihatData(sql);

Untuk mengembailkan nilai menggunakan perintah berikut;

return rs; 

Setelah melakukan pemanggilan method Cari2 program menampilkan

hasil pencarian, ditunjukan pada baris berikut ;

while (result.next()) { 

        out.println("<tr class=\"gradeA\" >"); 

        out.println("<td align=\"center\"> </td>"); 

out.println("<td>" + result.getString("nomor_kereta") + "</td>"); 

        out.println("<td>" + result.getString("nama_kereta") + "</td>"); 

 

Tombol pesan pada hasil pencarian, ditampilkan pada baris program berikut ;

%> 

    <td align="center" class="style20"><div ><a onclick="editkereta(<%=  result.getString("nomor_kereta")%>)" href="Pesan.jsp?ns=<%= 

result.getString("nomor_kereta")%>‐<%=tanggal%>‐<%=asal%>‐<%=tujuan%>‐ <%=jumlah%>" class="ubahguru" rel="iframe width:740 height:300 modal:true"  title="Pesan Kursi...">Pesan</a></div></td> 

      <%  out.print("<form id='deleteform'  method='post' action='servletStasiunController'>"); 

(72)

      out.print("<input type='hidden' name='Job'  value='deletestasiun'>"); 

      out.print("</form>");%> 

      <td align="center" class  ="style20"><div ><a  onclick="deletekeretalihat(<%=result.getString("Nomor_Kereta")%>);"  href="#"  id="<%=result.getString("Nomor_Kereta")%>">Alternatif</a></div></td> 

 

<%

Gambar 4.5 Form Pesan

Gambar 4.5 di atas menampilkan sebuah form pemesanan. Form ini

akan muncul jika tombol pesan pada gambar 4.4 ditekan. Form ini

menampilkan detail pemesanan. Sebelum form ini dikirimkan untuk

melanjutkan proses pemesanan, maka pengguna harus mengisikan data

pemesan yang berupa nama dan nomor identitas yang digunakan. Kemudian

klik tombol pesan jika setuju untuk memesan, jika tidak maka bisa menekan

(73)

dipesan maka akan ditampilkan pesan bahwa pemesanan telah berhasil,

dengan ditunjukan pada gambar 4.6 di berikut :

Gambar 4.6 Pemesanan Berhasil.

4.1.4 Halaman Update

Gambar 4.7 Halaman Update

Gambar halaman update di atas adalah halaman update data untuk

admin. Halaman ini memiliki empat (5) submenu, yaitu Update Kereta,

Gambar

gambar 2.1.. Tetapi paada
Gambar 2.2 Tools Requirements Definition
Gambar 2.4 Tools Design DFD
Gambar 3.1 Ilustrasi Alternatif
+7

Referensi

Dokumen terkait

Prosiding Seminar Nasional Sains V; Bogor, 10 November 2012 Aturan penyusulan pada kereta api inbound juga dapat dijelaskan dengan cara yang sama. seperti kereta

Kereta Api Indonesia (Persero), diharapkan dengan penelitian ini dapat dijadikan sebagai masukan dalam merencanakan jalur KA perkotaan di DIY yang sudah direncanakan dalam

Pada kenyataannya aplikasi android gratis yang terdapat di market kadang hanya versi demo dan tidak dapat digunakan di negara Indonesia serta juga tidak semua

Jalur II, memiliki karakteristik yaitu tidak memiliki persilangan dengan jalan provinsi namun juga melewati sungai yang lebar yaitu Sungai Cijangkelok, serta memiliki

Aplikasi penentu jalur alternatif kemacetan di Jakarta Barat berbasis Android ini berfungsi sebagai alat bantu pengguna Android untuk menampilkan informasi

Penelitian ini membahas mengenai metode penanganan dengan tiga alternatif yaitu (1) metode perkuatan tanah alternatif ke-1 menggunakan pelat beton dan kayu gelam,

Permasalahan dalam penulisan skripsi ini adalah bagaimana cara menghindari kemacetan lalu lintas yang ada dengan mencari jalur alternatif yang ada dengan menggunakan

Skytrain adalah jalur kereta pendek yang dapat Anda gunakan untuk menuju Stasiun Kereta Api Soekarno-Hatta juga dikenal sebagai Stasiun Kereta Bandara Terpadu Soekarno-Hatta, atau