LAPORAN AKHIR
PRAKTIKUM PEMROGRAMAN WEB
LABORATORIUM PEMROGRAMAN LANJUT
SISTEM INFORMASI KERETA API
Disusun Oleh:
Nama/NIM : Lalu Kismara Hadi / 14523144
Nama/NIM : Shofwan Hanif / 14523150
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
LAPORAN AKHIR
PRAKTIKUM PEMROGRAMAN WEB
LABORATORIUM PEMROGRAMAN LANJUT
SISTEM INFORMASI KERETA API
Asisten Pembimbing : M. Kausar Ramadhan
Disusun Oleh:
Nama/NIM : Lalu Kismara Hadi / 14523144
Nama/NIM : Shofwan Hanif / 14523150
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
HALAMAN PERSEMBAHAN
Kami persembahkan Laporan Akhir Project Praktikum Pemrograman Web ini kepada kedua orang tua kami yang selalu mendukung kami dan senantiasa menyertakan kami dalam setiap doanya. Untuk rekan-rekan kami yang telah memberi kami semangat untuk berjuang dan bertahan dalam setiap keadaan. Untuk dosen pembimbing kami yang telah memberikan banyak ilmu bermanfaat bagi kami yang InsyaAllah dapat kami pergunakan dengan baik suatu saat nanti, serta kakak asisten yang telah membantu dan bersedia meluangkan waktunya untuk berbagi ilmu dengan kami.
MOTTO
“Sukses hanya bagi orang yang tetap semangat meski halangan dan rintangan di depan mata.”
“Maka sesungguhnya bersama kesulitan itu ada kemudahan. Sesungguhnya bersama kesuliatan itu ada kemudahan.”
(Q.S. Al-Insyirah: 5-6)
KATA PENGANTAR
Assalamualaikum Wr.Wb.
Puji syukur kami panjatkan atas kehadirat Allah SWT yang telah memberikan rahmat dan hidayah-Nya sehingga penyusunan laporan ini dapat terselesaikan dengan baik. Sholawat serta salam senantiasa kita limpahkan kepada junjungan kita Nabi Muhammad SAW beserta keluarganya, sahabatnya, serta pengikutnya hingga akhir zaman.
Tujuan penulisan laporan Project Sistem Informasi Kereta Api ini adalah sebagai syarat untuk menyelesaikan mata kuliah Praktikum Pemrograman Web.
Kami menemukan hambatan dan kesukaran dalam penyusunan laporan
project ini, maka dari itu kami menyampaikan rasa terima kasih yang sebesar-besarnya dan penghargaan yang setinggi-tingginya kepada semua pihak yang terkait dalam penyelesaian tugas laporan ini sesuai dengan rentang waktu yang telah diberikan. Terima kasih dan penghargaan itu diantaranya kami berikan kepada :
1. Allah SWT yang telah memberi kami kekuatan, petunjuk, karunia, nikmat serta hidayahnya.
2. Kedua orang tua kami yang selalu memberikan dukungan kepada kami baik berupa moral ataupun material.
3. Dosen yang telah membimbing kami hingga kami dapat menyelesaikan
project ini.
4. Kakak-kakak asisten Laboratorium Informatika Terpadu yang telah membimbing selama praktikum dan asistensi untuk menyelesaikan project
dan laporan ini.
Dan semoga Allah SWT meridhoi penyusunan laporan ini, sehingga bisa membawa khazanah yang baru dan bermanfaat bagi kita semua.
Wassalamualaikum Wr.Wb.
Yogyakarta, 12 Juni 2016
TAKARIR
database basis data
input masukan
output keluaran
programming project proyek pemrograman
user pengguna
screenshot hasil tampilan
source code kode program
flowchart diagram alur
website halaman situs
data flow diagram diagram aliran data
entity relationship diagram diagram relasi entitas
DAFTAR ISI
HALAMAN JUDUL ... ii
HALAMAN PENGESAHAN ... iii
HALAMAN PERSEMBAHAN ... iv
HALAMAN MOTTO ... v
KATA PENGANTAR ... vi
TAKARIR ... vviiiii
DAFTAR ISI ... ix
DAFTAR TABEL ... xi
DAFTAR GAMBAR ... xii
BAB I PENDAHULUAN ... 1
1.1. Latar Belakang Masalah ... 1
1.2. Rumusan Masalah ... 1
1.2. Tujuan ... 2
1.2. Batasan Masalah ... 2
1.3. Sistematika Penulisan ... 2
BAB II METODOLOGI ... 4
2.1. Analisis Kebutuhan ... 4
2.2. Struktur Tabel ... 5
BAB III PERANCANGAN ... 19
3.1. Entity Relathionship Diagram ... 19
3.2. Data Flow Diagram ... 20
3.3. Desain Mockup ... 29
BAB IV HASIL DAN PEMBAHASAN ... 36
4.1. Penjelasan dan Screenshot Program ... 36
4.2. Kekurangan dan Kelebihan Program ... 48
4.3. Source Code ... 49
BAB V PENUTUP ... 71
5.1. Kesimpulan ... 71
DAFTAR TABEL
Tabel 2.1 Struktur Tabel Admin ... 5
Tabel 2.2 Struktur Tabel Artikel ... 6
Tabel 2.3 Struktur Tabel Kontak_Us ... 8
Tabel 2.4 Struktur Tabel Kereta ... 9
Tabel 2.5 Struktur Tabel Tujuan ... 11
Tabel 2.6 Struktur Tabel Asal ... 12
Tabel 2.7 Struktur Gerbong ... 13
Tabel 2.8 Struktur Tabel Kursi ... 14
DAFTAR GAMBAR
Gambar 2.1 Tabel Admin ... 6
Gambar 2.2 Tabel Artikel ... 7
Gambar 2.3 Tabel Kontak_Us ... 8
Gambar 2.4 Tabel Kereta ... 11
Gambar 2.5 Tabel Tujuan ... 12
Gambar 2.6 Tabel Asal ... 13
Gambar 2.7 Tabel Gerbong ... 14
Gambar 2.8 Tabel Kursi ... 16
Gambar 2.9 Tabel Pelanggan ... 18
Gambar 3.1 Entitty Relationship Diagram (ERD) ... 19
Gambar 3.2 DFD Level 0 ... 20
Gambar 3.12 Halaman Beranda Admin ... 29
Gambar 3.13 Halaman Sunting Artikel ... 30
Gambar 3.14 Halaman Ubah Data ... 31
Gambar 3.15 Halaman Lihat Data ... 31
Gambar 3.16 Halaman Lihat Artikel ... 32
Gambar 3.17 Halaman Pengaturan ... 32
Gambar 3.18 Halaman Pemberitahuan Perubahan Password ... 33
Gambar 3.20 Halaman Cari Jadwal ... 34
Gambar 3.21 Halaman Hasil Pencarian ... 34
Gambar 3.22 Halaman Pesan... 35
Gambar 3.23 Halaman Review Tiket ... 35
Gambar 4.1 Tampilan Home ... 36
Gambar 4.2 Tampilan Cari Jadwal ... 37
Gambar 4.3 Tampilan Hasil Pencarian Jadwal ... 37
Gambar 4.4 Tampilan Halaman Detail ... 38
Gambar 4.5 Tampilan Cek Kursi ... 39
Gambar 4.6 Tampilan Form Isi Data Pemesan ... 39
Gambar 4.7 Tampilan Halaman Pilih Kursi ... 40
Gambar 4.8 Tampilan Review Tiket ... 41
Gambar 4.9 Tampilan Cetak / Unduh Tiket ... 42
Gambar 4.10 Tampilan Login Admin... 42
Gambar 4.11 Tampilan Beranda Admin... 43
Gambar 4.12 Tampilan Halaman Sunting Artikel ... 43
Gambar 4.13 Tampilan Halaman Ubah Data ... 44
Gambar 4.14 Tampilan Halaman Lihat Data... 45
Gambar 4.15 Tampilan Halaman Daftar Artikel ... 45
Gambar 4.16 Tampilan Halaman Pengaturan... 46
Gambar 4.17 Tampilan Pengaturan Password ... 47
BAB I
PENDAHULUAN
1.1. Latar Belakang Masalah
Kereta Api adalah salah satu sarana transportasi yang cukup digemari di kalangan masyarakat pada umumnya terutama, masyarakat yang tinggal di daerah Pulau Jawa. Transportasi ini merupakan transportasi yang mampu menampung penumpang dalam jumlah banyak. Selain itu, kereta api beroperasi selama 24 jam penuh yang bisa digunakan oleh masyarakat untuk berpergian.
Banyaknya minat masyarakat terhadap transportasi kereta api, membuat para pekerja di bidang perkeretaapian perlu meningkatkan kinerjanya agar dapat memberikan pelayanan terbaik kepada pengguna kereta api. Seiring perkembangan teknologi yang semakin canggih, pekerja perkereta apian dituntut untuk bisa bekerja secara efektif dan efisien.
Untuk menghadapi kondisi tersebut, perlu dibangun sebuah sistem yang dapat dimanfaatkan dalam menunjang kegiatan operasional kereta api. Oleh karena itu, sistem informasi kereta api adalah sarana yang akan memudahkan, baik dari segi pekerja sebagai pengelola kereta api, maupun dari segi masyarakat sebagai pengguna transportasi kereta api.
1.2. Rumusan Masalah
a. Bagaimana pekerja di bidang perkereta apian mengelola informasi yang akan disajikan kepada penumpang secara cepat dan tepat?
1.3. Tujuan
a. Membangun sistem informasi kereta api yang akan memudahkan pekerja di
bidang perkeretaapian dalam mengelola informasi.
b. Dengan sistem informasi kereta api ini, pengguna transportasi akan diberikan form pencarian jadwal kereta api yang memudahkan pengguna mencari jadwal sesuai kehendaknya.
1.4. Batasan Masalah
a. Satu kereta hanya memiliki satu jenis kelas.
b. Data yang akan dimasukkan ke dalam database hanya dilakukan dengan satu user.
c. Satu gerbong terdiri dari 10 kursi.
d. Sistem informasi ini hanya melayani pemesanan tiket kereta dengan tujuan beberapa kota saja.
1.5. Sistematika Penulisan
Sistematika penulisan dalam penulisan laporan ini adalah sebagai berikut :
BAB I PENDAHULUAN
Membahas tentang latar belakang masalah, rumusan masalah, tujuan, batasan masalah, serta sistematika penulisan dalam pembuatan laporan Project
Sistem Informasi Kereta Api ini.
BAB II METODOLOGI
Memuat uraian mengenai analisis kebutuhan dalam pelaksanaan Project
BAB III PERANCANGAN
Memuat tentang perancangan – perancangan dasar dari Project Sistem Informasi Kereta Api yang meliputi Entity Relationship Diagram (ERD) , Data Flow Diagram (DFD), dan Desain Mockup.
BAB IV HASIL DAN PEMBAHASAN
Memuat pembahasan serta hasil mengenai screenshot dan penjelasan tiap halaman website, kelebihan dan kekurangan program, serta source code
program dari Project Sistem Informasi Kereta Api.
BAB V KESIMPULAN DAN SARAN
BAB II
METODOLOGI
2.1. Analisis Kebutuhan
Dalam analisis kebutuhan ini terdiri dari beberapa analisis, yaitu analisis kebutuhan antarmuka, analisis perangkat lunak dan analisis perangkat keras.
2.1.1. Analisis Kebutuhan Antarmuka
Dalam proses pembuatan project dan laporan ini di perlukan antarmuka sebagai penghubung antara user dengan hardware. Maka dari itu kami menggunakan antarmuka sistem operasi Windows 10 dan Ubuntu 16.04 untuk mempermudah serta memperlancar proses pembuatan project dan laporan .
2.1.2. Analisis Kebutuhan Perangkat Lunak
Perangkat keras computer tidak akan berarti tanpa adanya perangkat lunak , begitu pula sebaliknya. Perangkat lunak dan perangkat keras saling membutuhkan dan saling mendukung satu sama lain.
Perangkat lunak memberikan instruksi-instruksi kepada perangkat keras untuk melakukan suatu tugas tertentu. Dalam pembuatan laporan ini, kami menggunakan beberapa perangkat lunak yaitu :
1. Pembuatan program menggunakan Sublime Text 3.
2. Penggunaan aplikasi XAMPP yang didalamnya Apache sebagai Web Server dan MySQL yang digunakan sebagai database.
3. Penulisan laporan menggunakan Microsoft Office Word 2013 4. Perancangan Entity Relationship Diagram (ERD) dan Data Flow
5. Perancangan desain Mockup dengan menggunakan aplikasi Balsamiq 3.
6. Pengambilan Screenshot program menggunakan Shutter.
2.1.3. Analisis Kebutuhan Perangkat Keras
Untuk mendukung kinerja dari perangkat lunak maka, kami menggunakan beberapa perangkat keras. Perangkat keras yang kami gunakan adalah :
1. Laptop 2. Printer 3. Mouse 4. Keyboard
2.2. Struktur Tabel
2.2.1. Tabel Admin
Tabel admin adalah tabel yang digunakan sebagai tempat penyimpanan data dari akun admin di dalam database.
Tabel 2.1 Struktur Tabel Admin
ATRIBUT DESKRIPSI TIPE DATA
username Username dari admin
varchar, 12 karakter
Tidak Tidak
password Password dari admin
varchar, 13 karakter
Struktur tabel admin terdiri dari 3 kolom , yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan
length
2 digit. Digunakan untuk menyimpan id dari admin.
2. Kolom username dengan tipe data varchar dengan length
sebanyak
12 karakter. Digunakan untuk menyimpan username dari admin. 3. Kolom password dengan tipe data varchar dengan length
sebanyak
12 karakter. Digunakan untuk menyimpan password dari admin.
Kemudian di bawah ini adalah screenshot dari tabel admin yang dibuat di dalam phpmyadmin.
Gambar 2.1 Tabel Admin
2.2.2. Tabel Artikel
Tabel artikel adalah tabel yang digunakan sebagai tempat penyimpanan data dari artikel seperti judul artikel dan isi artikel di dalam database.
Tabel 2.2 Struktur Tabel Artikel
artikel Isi Isi dari
artikel Text Tidak Tidak
Tanggal
Tanggal pembuatan
artikel
Date Tidak Tidak
Struktur tabel artikel terdiri dari 4 kolom, yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan length
11 digit. Digunakan untuk menyimpan id dari admin. 2. Kolom judul dengan tipe data text dan digunakan untuk
menyimpan judul dari artikel.
3. Kolom isi dengan tipe data text dan digunakan untuk menyimpan isi dari artikel.
4. Kolom tanggal dengan tipe data date digunakan untuk menyimpan waktu tanggal pembuatan dari artikel.
Kemudian di bawah ini adalah screenshot dari tabel artikel yang dibuat di dalam phpmyadmin.
2.2.3. Tabel Kontak_Us
Tabel kontak_us adalah tabel yang digunakan sebagai tempat penyimpanan data kontak yang bisa dihubungi dari website sistem informasi kereta apidi dalam database.
Tabel 2.3 Struktur Tabel Kontak_Us
ATRIBUT DESKRIPSI TIPE DATA
Struktur tabel kontak_us terdiri dari 2 kolom, yaitu :
1. Kolom no_telp sebagai primary key dengan tipe data varchar dan
length 14 karakter. Digunakan sebagai tempat untuk penyimpanan data nomor telepon yang bisa dihubungi.
2. Kolom email dengan tipe data varchar dan length 400 karakter yang digunakan sebagai tempat untuk penyimpanan data dari email yang bisa dihubungi.
Gambar 2.3 Tabel Kontak_Us
2.2.4. Tabel Kereta
Tabel kereta adalah tabel yang digunakan sebagai tempat penyimpanan data dari kereta seperti nama kereta, kelas, tanggal keberangkatan, jam keberangkatan, jam tiba, tarif kereta, dan status keberangkatan dari kereta di dalam database.
Tabel 2.4 Struktur Tabel Kereta
ATRIBUT DESKRIPSI TIPE DATA
Nama_kereta Nama dari kereta
Jam_tiba Jam tiba kerata
Varchar,
karakter Tarif_dewasa Tarif kereta
untuk dewasa
Struktur tabel kereta terdiri dari 9 kolom, yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan length 11 digit. Digunakan untuk menyimpan id dari kereta.
2. Kolom nama_kereta dengan tipe data varchar dan length 400 karakter.
Digunakan untuk menyimpan nama dari kereta.
3. Kolom kelas dengan tipe data varchar dan length 50 karakter. Digunakan untuk menyimpan jenis – jenis kelas yang dimiliki oleh kereta.
4. Kolom tanggal dengan tipe data date digunakan untuk menyimpan tanggal keberangkatan dari kereta.
5. Kolom jam_berangkat dengan tipe data varchar dan length 5 karakter. Digunakan untuk menyimpan waktu jam keberangkatan dari kereta. 6. Kolom jam_tiba dengan tipe data varchar dan length 5 karakter. Digunakan untuk menyimpan waktu jam tiba dari kereta. 7. Kolom tarif_dewasa dengan tipe data decimal dan length 22,2.
Digunakan untuk menyimpan tarif kereta khusus penumpang dewasa. 8. Kolom tarif_anak dengan tipe data decimal dan length 22,2.
Digunakan untuk menyimpan tarif kereta khusus penumpang anak anak.
Digunakan untuk menyimpan status keberangkatan dari kereta apakah sudah berangkat atau belum.
Kemudian di bawah ini adalah screenshot dari tabel kereta yang dibuat di dalam phpmyadmin.
Gambar 2.4 Tabel Kereta
2.2.5. Tabel Tujuan
Tabel tujuan adalah tabel yang digunakan sebagai tempat penyimpanan data seperti nama tujuan di dalam database.
Tabel 2.5 Struktur Tabel Tujuan
ATRIBUT DESKRIPSI TIPE DATA
Nama_tujuan Nama dari
tujuan kereta text Tidak Tidak
Id_kereta Id dari tabel kereta
int,
Struktur tabel tujuan terdiri dari 3 kolom , yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan
length
11 digit. Digunakan untuk menyimpan id dari tujuan.
2. Kolom nama_tujuan dengan tipe data text yang digunakan untuk menyimpan nama tujuan kereta.
3. Kolom id_kereta sebagai foreign key dengan tipe data integer dan
length 11 digit. Digunakan untuk menyimpan id dari tabel kereta.
Kemudian di bawah ini adalah screenshot dari tabel tujuan yang dibuat di dalam phpmyadmin.
Gambar 2.5 Tabel Tujuan
2.2.6 Tabel Asal
Tabel asal adalah tabel yang digunakan sebagai tempat penyimpanan data seperti nama asal di dalam database.
Tabel 2.6 Struktur Tabel Asal
ATRIBUT DESKRIPSI TIPE DATA
Nama_asal Nama dari
asal kereta text Tidak Tidak
Id_kereta Id dari tabel kereta
int,
Struktur tabel tujuan terdiri dari 3 kolom , yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan
length
11 digit. Digunakan untuk menyimpan id dari asal.
2. Kolom nama_asal dengan tipe data text yang digunakan untuk menyimpan nama asal kereta.
3. Kolom id_kereta sebagai foreign key dengan tipe data integer dan
length 11 digit. Digunakan untuk menyimpan id dari tabel kereta.
Kemudian di bawah ini adalah screenshot dari tabel tujuan yang dibuat di dalam phpmyadmin.
Gambar 2.6 Tabel Asal
2.2.7. Tabel Gerbong
Tabel gerbong adalah tabel yang digunakan sebagai tempat penyimpanan data seperti posisi gerbong dari kereta di dalam
database.
Tabel 2.7 Struktur Tabel Gerbong
ATRIBUT DESKRIPSI TIPE DATA
Posisi_gerbong Posisi dari gerbong
Varchar,
karakter Id_kereta Id dari tabel
kereta
int,
11 digit Tidak Ya
Struktur tabel tujuan terdiri dari 3 kolom , yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan
length
11 digit. Digunakan untuk menyimpan id dari tabel gerbong. 2. Kolom posisi_gerbong dengan tipe data varchar dan length
sebanyak 2 karakter. Digunakan untuk menyimpan data posisi gerbong dari kereta.
3. Kolom id_kereta sebagai foreign key dengan tipe data integer dan
length 11 digit. Digunakan untuk menyimpan id dari tabel kereta.
Kemudian di bawah ini adalah screenshot dari tabel gerbong yang dibuat di dalam phpmyadmin.
Gambar 2.7 Tabel Gerbong
2.2.8. Tabel Kursi
Tabel kursi adalah tabel yang digunakan sebagai tempat penyimpanan data seperti posisi kursi dari kereta di dalam database.
Tabel 2.8 Struktur Tabel Kursi
dari tabel kursi
255 digit
Posisi_kursi Posisi dari kursi
Varchar, 4 karakter
Tidak Tidak
Status Status dari kursi
Varchar, 8 karakter
Tidak Tidak
kd_booking Kode
booking
Varchar, 10 karakter
Tidak Tidak
id_gerbong Id dari tabel gerbong
Int ,
11 digit Tidak Ya
id_pelanggan Id dari tabel pelanggan
Int,
11 digit Tidak Ya
Struktur tabel tujuan terdiri dari 3 kolom , yaitu :
1. Kolom id sebagai primary key dengan tipe data integer dan
length
255 digit. Digunakan untuk menyimpan id dari tabel kursi. 2. Kolom posisi_kursi dengan tipe data varchar dan length
sebanyak 4 karakter. Digunakan untuk menyimpan data posisi kursi dari kereta.
3. Kolom status dengan tipe data varchar dan length 8 karakter. Digunakan untuk menyimpan data status dari kursi apakah masih tersedia atau tidak.
4. Kolom kd_booking dengan tipe data varchar dan length 10 karakter. Digunakan untuk menyimpan data kode booking di dalam database.
6. Kolom id_pelanggan sebagai foreign key dengan tipe data integer dan length 11 digit. Digunakan untuk menyimpan id dari tabel pelanggan.
Kemudian di bawah ini adalah screenshot dari tabel kursi yang dibuat di dalam phpmyadmin.
Gambar 2.8 Tabel Kursi
2.2.9. Tabel Pelanggan
Tabel pelanggan adalah tabel yang digunakan sebagai tempat penyimpanan data pelanggan seperti nama pelanggan, nomor KTP pelanggan, nomor telepon pelanggan, email, total pembayaran dan tanggal pemesanan kereta.
Tabel 2.9 Struktur Tabel Pelanggan
pelanggan karakter
Nama_pelanggan Nama dari pelanggan
Tgl_pemesanan Tanggal
pemesanan Date Tidak Tidak
Struktur tabel pelanggan terdiri dari 7 kolom, yaitu :
1. Kolom id_pelanggan sebagai primary key dengan tipe data integer dan
length 11 digit. Digunakan untuk menyimpan id dari tabel pelanggan. 2. Kolom no_ktp dengan tipe data varchar dan length 25 karakter digunakan
untuk menyimpan data dari nomor KTP pelanggan.
3. Kolom nama_pelanggan dengan tipe data varchar dan length 100 karakter
digunakan untuk menyimpan nama pelanggan yang melakukan pemesanan tiket kereta api.
4. Kolom no_telp dengan tipe data varchar dan length 20 karakter digunakan
untuk menyimpan data nomor telepon dari pelanggan.
6. Kolom total_pembayaran dengan tipe data decimal dan length 22,2 digunakan untuk menyimpan data total pembayaran yang harus dibayarkan oleh pelanggan.
7. Kolom tgl_pemesanan dengan tipe data date digunakan untuk
menyimpan data tanggal pemesanan yang dilakukan oleh pelanggan.
Kemudian di bawah ini adalah screenshot dari tabel pelanggan yang dibuat di dalam phpmyadmin.
BAB III
PERANCANGAN
3.1. Entity Relathionship Diagram
3.2. Data Flow Diagram
3.2.1DFD Level 0
3.2.2 DFD Level 1
3.2.3 DFD Level 2 Manajemen Artikel
3.2.4 DFD Level 2 Manajemen Kereta
3.2.5 DFD Level 2 Manajemen Gerbong
3.2.6 DFD Level 2 Manajemen Kursi
3.2.7 DFD Level 2 Manajemen Asal
3.2.8 DFD Level 2 Manajemen Tujuan
3.2.9 DFD Level 2 Manajemen Kontak
3.3. Desain Mockup
3.3.1Halaman Login.
Gambar 3.11 Halaman Login.
3.3.2Halaman beranda Admin.
3.3.3Halaman Sunting Artikel.
3.3.4Halaman Ubah Data.
Gambar 3.14 Halaman Ubah Data.
3.3.5Halaman Lihat Data.
3.3.6Halaman Lihat Artikel.
Gambar 3.16 Halaman Lihat Artikel.
3.3.7Halaman Pengaturan.
3.3.8Pemberitahuan perubahan password.
Gambar 3.18 Pemberitahuan perubahan password.
3.3.9Halaman Utama Pegunjung.
3.3.10Halaman Cari Jadwal.
Gambar 3.20 Halaman Cari Jadwal.
3.3.11Halaman Hasil Pencarian.
3.3.12 Halaman Pesan.
Gambar 3.22 Halaman Pesan.
3.3.13 Halaman Review Tiket.
BAB IV
HASIL DAN PEMBAHASAN
4.1. Penjelasan dan Screenshot Program 4.1.1 Frontend
a. Halaman home
Gambar 4.1 Tampilan home
b. Halaman menu cari jadwal kereta api
Gambar 4.2 Tampilan cari jadwal
Pada tampilan menu cari jadwal kereta api ini, tampilan yang digunakan adalah tampilan secara pop up. Pada menu cari jadwal ini digunakan untuk mencari jadwal kereta api berdasarkan tanggal , asal, dan tujuan kereta.
c. Halaman hasil pencarian jadwal.
Di halaman ini sistem menampilkan hasil pencarian jadwal yang dilakukan oleh pelanggan sesuai kriteria yang dimasukkan. Keterangan jadwal yang ditampilkan pada halaman ini hanya beberapa saja. Untuk melihat keterangan jadwal kereta lebih lengkap, pelanggan diharuskan menggunakan aksi detail.
d. Halaman Detail.
Gambar 4.4 Tampilan halaman detail.
Pada halaman detail, pengguna disuguhkan keterangan yang lengkap dari jadwal kereta berserta tarif tiket untuk kalangan dewasa dan kalangan anak dibawah kurang dari atau sama dengan tiga tahun.
Gambar 4.5 Tampilan cek kursi.
Selain itu, terdapat tombol PESAN untuk memulai langkah-langkah pemesanan tiket.
e. Halaman Isi Data Pemesan.
Halaman ini muncul setelah pelanggan mengklik tombol pesan pada halaman sebelumnya. Pada halaman ini, pelanggan atau pengguna diharuskan memasukkan data diri yang digunakan sebagai identitas pemilik tiket nantinya.
Di halaman ini juga terdapat menu jumlah penumpang yang terbagi menjadi dua yaitu, dewasa dan anak. Jumlah penumpang ini digunakan untuk membatasi jumlah kursi yang bisa di booking dan menghitung total tarif tiket keseluruhannya.
f. Halaman Pilih Kursi.
Gambar 4.7 Tampilan halaman pilih kursi.
Halaman ini menampilkan kursi-kursi yang tersedia dari tiap gerbong yang ada pada kereta. Kursi yang tersedia, bisa di bookingoleh pengguna dengan mengklik tombol booking sampai dengan jumlah penumpang yang dibutuhkan.
mengklik tombol batal. Sedangkan kursi dengan status booked,
pengguna tidak bisa membooking kursi tersebut karena telah dibooking
oleh pengguna yang lain. Tombol lanjutkan digunakan untuk mengarahkan pengguna ke halaman selanjutnya yaitu halaman review.
g. Halaman Review dan Cetak Tiket.
Gambar 4.8 Tampilan review tiket.
Gambar 4.9 Tampilan cetak/unduh tiket.
Agar tiket dapat diunduh, pengguna harus menyimpannya sebagai file
pdf. File pdf yang telah terunduh digunakan sebagai tanda bukti atas kepemilikan tiket yang sah.
4.1.2 Backend
a.Halaman Login Admin.
Menu login ini dapat ditemukan pada halaman utama website. Menu login digunakan oleh Admin untuk masuk kedalam sistem
website.
b.Halaman Beranda Admin.
Gambar 4.11 Tampilan beranda admin.
Setalah admin melakukan login, admin akan diarahkan ke halaman beranda yang berisi petunjuk penggunaan dari masing-masing navigasi atau menu yang ada pada halaman khusus untuk admin ini.
Gambar 4.12 Tampilan halaman sunting artikel.
Pada halaman ini, admin dapat menambahkan artikel baru untuk ditampilkan di halaman utama website.
d.Halaman Ubah Data.
Gambar 4.13 Tampilan halaman ubah data.
dimasukkan inilah yang akan tampil apabila pelanggan atau pengguna
website melakukan pencarian jadwal.
e.Halaman Lihat Data.
Gambar 4.14 Tampilan halaman lihat data.
f. Halaman Daftar Artikel.
Gambar 4.15 Tampilan halaman daftar artikel.
Sedangkan halaman daftar artikel berfungsi untuk menampilkan seluruh judul artikel yang telah ditambahkan sebelumnya oleh admin. Pada halaman ini terdapat tiga aksi yaitu edit, lihat artikel, hapus. Aksi
g.Halaman Pengaturan.
Gambar 4.16 Tampilan halaman pengaturan.
Gambar 4.17 Tampilan pengaturan password.
Untuk mengubah sandi, admin harus memasukkan kata sandi yang lama dan diikuti dengan memasukkan kata sandi yang baru, kemudian memasukkan kata sandi yang baru lagi untuk memverifikasi. Dengan mengklik tombol simpan, kata sandi akan disimpan ke sistem. Tombol pilihan pengaturan berfungsi untuk menampilkan kembali tombol ubah sandi dan ubah kontak.
Untuk menu kontak, admin hanya perlu memasukkan nomer telpon dan email atau memasukkan salah satu diantaranya bila ingin mengubah nomer telpon atau email saja.
4.2. Kelebihan dan Kekurangan Program
4.2.1. Kelebihan :
1. Bisa mencatat jadwal kereta api.
2. Bisa menyimpan artikel yang di buat oleh admin dan menampilkannya pada halaman utama Transys.
3. Pelanggan dapat memesan tiket di website Transys.
4. Tiket dapat diunduh sebagai tanda bukti telah memesan tiket. 4.2.2. Kekurangan :
1. Admin tidak bisa mengganti username yang digunakan untuk login
ke dalam website Transys.
2. Admin tidak bisa menambahkan gambar ke dalam artikel, hanya berupa teks saja.
3. Admin tidak bisa melihat tarif dewasa dan tarif untuk anak pada halaman lihat data yang telah dimasukkan sebelumnya pada halaman ubah data kecuali, melalui database.
4. Pelanggan tidak bisa mendaftar ke Transys, hanya bisa mencari jadwal dan memesan tiket.
5. Pelanggan yang memesan tiket untuk lebih dari 1 orang, data pelanggan yang dimasukkan hanya berupa data diri pelanggan yang memesan saja, tidak dengan data diri pelanggan yang dipesankan. Oleh karena itu, pelanggan yang memesankan tadi merupakan sebagai penanggung jawab tiket yang dibeli.
4.3. Source Code
<link rel="icon" type="image/png"
href="images/logo.png">
<link rel="stylesheet" type="text/css"
href="css/style3.css">
<link rel="stylesheet" type="text/css"
href="css/style.css">
<li><a id="click" >Cari Jadwal Kereta
Api</a></li>
<li class="login"><a>Login Admin</a></li>
</header>
<form id="rform" method="POST"
action="hasilpencarian.php">
<label>Tanggal
(tanggal-bulan-tahun)</label><
br>
<?php
echo "<select name='tanggal'>";
for ($i=1; $i <=31 ; $i++) {
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='bulan'>";
$query = mysqli_query($database,"SELECT * FROM
KONTAK_US");
$data = mysqli_fetch_array($query);
echo "<h3 style='margin-left: 83%; padding-top:
8px;'> Contact Us </h3>";
echo "<img style='width: 15px; height:
15px;margin-left: 66.5%;' src='images/telpon.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['no_telp']."</h5><br>";
echo "<img style='width: 15px; height:
13px;margin-left: 66.5%; margin-top: 4px;'
src='images/email.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['email']."</h5>";
mysqli_close($database);
?>
</div>
<hr width="500px" color="white">
Copyright © 2016 by 14523144 dan 14523150
<marquee align="down">Transys : Sistem Informasi
Kereta Api</marquee>
</footer>
</body>
</html>
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='tahun'>";
for($i=2016;$i<=2020;$i++){
echo "<option value='$i'>$i</option>";
echo "</select>";
?><br>
<label>Asal</label><br>
<select id="roption" name="asal">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun
Hall">Bandung - Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
Semut">Surabaya - Stasiun Semut</option>
</select><br>
<label>Tujuan</label><br>
<select id="roption" name="tujuan">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun
Hall">Bandung - Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
</select><br>
<button id="lbutton" type="submit"
name="cari">Cari</button>
<h1>Login to TranSys</h1>
</header>
<center>
<form id="lform" method="POST"
action="proses/sesi_login.php">
<input id="linput" type="text" name="username"
placeholder="Username"></input><br>
<input id="linput" type="password"
name="password"
placeholder="Password"></input><br>
<button id="lbutton" type="submit"
name="login">Login</button>
$query = mysqli_query($database,"SELECT * FROM
ARTIKEL ORDER BY id DESC");
while ($data = mysqli_fetch_array($query)) {
$tanggal = date("d-m-Y",
strtotime($data['tanggal']));
echo "<h5 style='clear: both; position: absolute;
margin-left: 74%;'>$tanggal</h5>";
echo "<h3 class='judul'
id='".$data['judul']."'>".$data['judul']."</h3>";
echo "<p class='isi'>".$data['isi']."</p>";
}
<form id="lform" method="POST"
action="proses/sesi_login.php">
<input id="linput" type="text" name="username"
placeholder="Username"></input><br>
<input id="linput" type="password" name="password"
placeholder="Password"></input><br>
<button id="lbutton" type="submit"
name="login">Login</button>
$query = mysqli_query($database,"SELECT * FROM
ARTIKEL ORDER BY id DESC");
while ($data = mysqli_fetch_array($query)) {
$tanggal = date("d-m-Y",
strtotime($data['tanggal']));
echo "<h5 style='clear: both; position: absolute;
margin-left: 74%;'>$tanggal</h5>";
echo "<h3 class='judul'
id='".$data['judul']."'>".$data['judul']."</h3>";
echo "<p class='isi'>".$data['isi']."</p>";
}
?>
</article>
</div>
<footer>
<div id="kontak_us">
File hasilpencarian.php
<!DOCTYPE html>
<html>
<head>
<title>Home Transys</title>
<link rel="icon" type="image/png"
href="images/logo.png">
<link rel="stylesheet" type="text/css"
href="css/style3.css">
<link rel="stylesheet" type="text/css"
href="css/style.css">
<li><a class="active" id="click" >Cari Jadwal
Kereta Api</a></li>
<li class="login"><a>Login Admin</a></li>
</ul>
</nav>
</header>
<div id="carijadwal2">
<button id="close">close</button>
<header id="rheader">
<h1>Cari Jadwal</h1>
</header>
<form id="rform" method="POST"
action="hasilpencarian.php">
<label>Tanggal
(tanggal-bulan-tahun)</label><br>
<?php
echo "<select name='tanggal'>";
for ($i=1; $i <=31 ; $i++) {
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='bulan'>";
for($i=1;$i<=12;$i++){
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='tahun'>";
for($i=2016;$i<=2020;$i++){
echo "<option value='$i'>$i</option>";
}
echo "</select>";
?><br>
<label>Asal</label><br>
<select id="roption" name="asal">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun Hall">Bandung
- Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
Semut">Surabaya - Stasiun Semut</option>
</select><br>
<label>Tujuan</label><br>
<select id="roption" name="tujuan">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun Hall">Bandung
- Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
Semut">Surabaya - Stasiun Semut</option>
</select><br>
<button id="lbutton" type="submit"
<header id="lheader">
<h1>Login to TranSys</h1>
</header>
<center>
<form id="lform" method="POST"
action="proses/sesi_login.php">
<input id="linput" type="text" name="username"
placeholder="Username"></input><br>
<input id="linput" type="password" name="password"
placeholder="Password"></input><br>
<button id="lbutton" type="submit"
name="login">Login</button>
$tgl = $_POST['tanggal'];
$bln = $_POST['bulan'];
$thn = $_POST['tahun'];
$tujuan = $_POST['tujuan'];
$asal = $_POST['asal'];
$database =
mysqli_connect("localhost","root","","usertransys")
;
$get = mysqli_query($database,"SELECT * FROM KERETA
WHERE tanggal='$thn-$bln-$tgl'");
$cek = mysqli_num_rows($get);
if($cek==0){
echo "<center><h1>Tidak ada jadwal yang
tersedia</h1></center>";
}else{ ?>
<center><table id="tbhasil">
<th id="jdwl">Nama Kereta</th>
<th id="jdwl">Asal</th>
<th id="jdwl">Tujuan</th>
<th id="jdwl">Tanggal</th>
<th id="jdwl">Jam Berangkat</th>
<th id="jdwl">Jam Tiba</th>
<th id="jdwl">Kelas</th>
<th id="jdwl">Aksi</th>
<?php
<form id="rform" method="POST"
action="hasilpencarian.php">
<label>Tanggal
(tanggal-bulan-tahun)</label><br>
<?php
echo "<select name='tanggal'>";
for ($i=1; $i <=31 ; $i++) {
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='bulan'>";
for($i=1;$i<=12;$i++){
echo "<option value='$i'>$i</option>";
}
echo "</select>-";
echo "<select name='tahun'>";
for($i=2016;$i<=2020;$i++){
echo "<option value='$i'>$i</option>";
}
echo "</select>";
?><br>
<label>Asal</label><br>
<select id="roption" name="asal">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun Hall">Bandung
- Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
Semut">Surabaya - Stasiun Semut</option>
</select><br>
<label>Tujuan</label><br>
<select id="roption" name="tujuan">
<option value="Yogyakarta - Stasiun
Tugu">Yogyakarta - Stasiun Tugu</option>
<option value="Bandung - Stasiun Hall">Bandung
- Stasiun Hall</option>
<option value="Semarang - Stasiun Semarang
Tawang">Semarang - Stasiun Semarang
Tawang</option>
<option value="Malang - Stasiun Malang
Kotabaru">Malang - Stasiun Malang
Kotabaru</option>
<option value="Surabaya - Stasiun
Semut">Surabaya - Stasiun Semut</option>
</select><br>
<button id="lbutton" type="submit"
<h1>Login to TranSys</h1>
</header>
<center>
<form id="lform" method="POST"
action="proses/sesi_login.php">
<input id="linput" type="text" name="username"
placeholder="Username"></input><br>
<input id="linput" type="password" name="password"
placeholder="Password"></input><br>
<button id="lbutton" type="submit"
name="login">Login</button>
$tgl = $_POST['tanggal'];
$bln = $_POST['bulan'];
$thn = $_POST['tahun'];
$tujuan = $_POST['tujuan'];
$asal = $_POST['asal'];
$database =
mysqli_connect("localhost","root","","usertransys")
;
$get = mysqli_query($database,"SELECT * FROM KERETA
WHERE tanggal='$thn-$bln-$tgl'");
$cek = mysqli_num_rows($get);
if($cek==0){
echo "<center><h1>Tidak ada jadwal yang
tersedia</h1></center>";
}else{ ?>
<center><table id="tbhasil">
<th id="jdwl">Nama Kereta</th>
<th id="jdwl">Asal</th>
<th id="jdwl">Tujuan</th>
<th id="jdwl">Tanggal</th>
<th id="jdwl">Jam Berangkat</th>
<th id="jdwl">Jam Tiba</th>
<th id="jdwl">Kelas</th>
<th id="jdwl">Aksi</th>
<?php
while ($data = mysqli_fetch_array($get)) {
$id = $data['id'];
$get1 = mysqli_query($database,"SELECT * FROM ASAL
WHERE id_kereta=$id AND nama_asal='$asal'");
$get2 = mysqli_query($database,"SELECT * FROM
TUJUAN WHERE id_kereta=$id AND
nama_tujuan='$tujuan'");
$data1 = mysqli_fetch_array($get1);
$data2 = mysqli_fetch_array($get2);
$tanggal = date("d-m-Y",
strtotime($data['tanggal']));
if($data1['nama_asal']!=null &&
$data2['nama_tujuan']!=null){
echo "<tr>";
echo "<td
id='isijdwl'>".$data['nama_kereta']."</td>";
echo "<td id='isijdwl'>".$data1['nama_asal'];
echo "<td
id='isijdwl'>".$data2['nama_tujuan']."</td>";
echo "<td id='isijdwl'>$tanggal</td>";
echo "<td align='center'
id='isijdwl'>".$data['jam_berangkat']."</td>";
echo "<td align='center'
id='isijdwl'>".$data['jam_tiba']."</td>";
echo "<td id='isijdwl'>".$data['kelas']."</td>";
if($data['status']=='Belum berangkat'){
echo "<td id='isijdwla'><a style='color: white;'
href='detail.php?id=$id'>Detail</a></td>";
}else{
echo "<td id='isijdwla'><a style='color: white;'
href='#'>Detail</a></td>";
$query = mysqli_query($database,"SELECT * FROM
KONTAK_US");
$data = mysqli_fetch_array($query);
echo "<h3 style='margin-left: 83%; padding-top:
8px;'> Contact Us </h3>";
echo "<img style='width: 15px; height:
15px;margin-left: 66.5%;' src='images/telpon.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['no_telp']."</h5><br>";
echo "<img style='width: 15px; height:
13px;margin-left: 66.5%; margin-top: 4px;'
src='images/email.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['email']."</h5>";
mysqli_close($database);
?>
</div>
<hr width="500px" color="white">
Copyright © 2016 by 14523144 dan 14523150
<marquee style="position: relative;">Transys :
Sistem Informasi Kereta Api</marquee>
</footer>
</body>
File form_pemesan.php
<!DOCTYPE html>
<html>
<head>
<title>Home Transys</title>
<link rel="icon" type="image/png"
href="images/logo.png">
<link rel="stylesheet" type="text/css"
href="css/style3.css">
<link rel="stylesheet" type="text/css"
href="css/style.css">
var pilihan = confirm('Yakin data Anda sudah
benar?');
if (pilihan==true) {
<img src="images/logo.png"></a>
<nav>
<ul>
<br>
<li><a class="active">Isi Data Pemesan</a></li>
<li><a>Pilih Kursi</a></li>
<h3 id="jddetail">Isi Data Pemesan</h3>
<table>
<tr>
<td id="jd">No. KTP</td>
<td id="jdisi"><input name="no_ktp" style="width:
400px;"></td>
</tr>
<tr>
<td id="jd">Nama Lengkap</td>
<td id="jdisi"><input name="nama" style="width:
400px;"></td>
</tr>
<tr>
<td id="jdisi"><input name="no_telp" style="width:
400px;"></td>
</tr>
<tr>
<td id="jd">Email</td>
<td id="jdisi"><input name="email" style="width:
400px;"></td>
</tr>
<tr>
<td id="jd">Jumlah Penumpang</td>
<td><label>Dewasa</label>
<select name="dewasa" id="jdisi">
<?php for($i=1;$i<=4;$i++){echo "<option
value='$i'>$i</option>";}?>
</select>
<label>Anak ≤ 3</label>
<select name="anak" id="jdisi">
<?php for($i=0;$i<=3;$i++){echo "<option
value='$i'>$i</option>";}?>
</select>
</td>
</tr>
</table>
<button type="submit" onclick="return konfirmasi()"
name="lanjut" id="tbpesan2">Lanjut Pilih
Kursi</button>
</form>
<br>
<h5>Note : Semua form wajib diisi!</h5>
</center>
</article>
<footer>
$query = mysqli_query($database,"SELECT * FROM
KONTAK_US");
$data = mysqli_fetch_array($query);
echo "<h3 style='margin-left: 83%; padding-top:
8px;'> Contact Us </h3>";
echo "<img style='width: 15px; height:
15px;margin-left: 66.5%;' src='images/telpon.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['no_telp']."</h5><br>";
echo "<img style='width: 15px; height:
13px;margin-left: 66.5%; margin-top: 4px;'
src='images/email.png'>";
echo "<h5 style='display: inline;margin-left:
85%;'>".$data['email']."</h5>";
mysqli_close($database);
?>
</div>
<hr width="500px" color="white">
Copyright © 2016 by 14523144 dan 14523150
<marquee style="position: relative;">Transys :
Sistem Informasi Kereta Api</marquee>
</footer>
</body>
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Transys (Sistem Informasi Kereta Api) merupakan sistem informasi yang cukup mumpuni yang bisa memberikan fasilitas berupa pencarian jadwal, pemesanan tiket, dan pengunduhan tiket oleh Pelanggan. penggunaan Transys membuat pemesanan tiket lebih praktis, karena tidak perlu jauh-jauh pergi ke stasiun untuk memesan tiket.
5.2.Saran
DAFTAR PUSTAKA
http://stackoverflow.com/ http://www.nyekrip.com/ http://www.duniailkom.com/
http://d-genera.blogspot.co.id/2013/01/216-kode-warna-css-hexadecimal-colour.html