Program ini merupakan program reservasi pembelian tiket kereta api yang dapat menghitung total biaya berdasarkan input nama kereta api, kelas, dan jumlah penumpang dewasa dan anak."
1. BAB I
PENDAHULUAN
1.1
Latar Belakang
Seiring dengan kemajuan dan perkembangan zaman di era
globalisasi
pengetahuan
ini,
manusia dituntut
dan
teknologi.
mengikuti
Semakin
perkembangan
ilmu
banyaknya perangkat
lunak
(Software), dan semakin meningkatnya kecanggihan perangkat keras
(Hardware), maka perangkat komputer sebagai alat bantu menjadi
semakin berperan dalam menyelesaikan suatu pekerjaan. Tersedianya
bahasa-bahasa pemograman komputer (C++, Pascal, Basic, dan lain-lain)
telah mendorong para ahli komputer untuk merancang sebuah program
yang dapat dipergunakan sebagai alat bantu dalam menyelesaikan sebuah
pekerjaan dalam bidang tertentu, seperti mesin penghitung untuk Reservasi
Penjualan Tiket Kereta Api. Dimana mesin penghitung mempermudah
penjual dalam melakukan proses pembayaran.
Reservasi Penjualan Tiket Kereta Api
perhitungan
yang
ini
memerlukan
sebuah
lumayan rumit. Sesuai kebutuhan informasi yang
dibutuhkan oleh user, aplikasi ini sangatlah membantu dalam perhitungan
pembayaran Tiket Kereta Api sesuai dengan nama Kereta Api dan Kelas yang
diinputkan oleh user.
1.2
Tujuan dan Manfaat
Program Reservasi Pembelian Tiket Kereta Api ini bertujuan untuk
menampilkan Informasi Harga Tiket Kereta Api dan menampilkan Tiket
Kereta Api dengan cara memasukkan data inputan dari user .
Manfaat dari Program ini adalah:
1. Memudahkan user untuk memilih Kereta Api dan Kelas
1
2. 2. Memudahkan user untuk menghitung total pembayaran pembelian Tiket
Kereta Api
1.3
Batasan Masalah
Batasan-batasan permasalahan dari solusi yang diambil:
1.
Program Reservasi Kereta Api ini hanya dapat dijalankan melalui
Aplikasi Turbo C++ saja. Sementara dijalankan tidak pada Turbo C++
tidak bisa.
2.
Program Reservasi Kereta Api ini belum bisa mengeluarkan struk
(tiket) karena keterbatasan pembuat program.
2
3. BAB II
PEMBAHASAN
Pada Program Reservasi Tiket Kereta Api memakai beberapa metode:
2.1 Landasan Teori
2.1.1 Percabangan
1. If-Else
If-Else digunakan jika kondisi yang diperiksa dinilai benar terpenuhi
maka
pernyataan pertama yang dilaksanakan, jika kondisi yang
diperiksa bernilai salah maka pernyataan yang kedua yang
dilaksanakan. Begitu seterusnya.
Syntax umum
If (kondisi)
{
pernyataan 1;
}else{
pernyataan 2;
}
2. Switch-Case
Switch-Case
digunakan
untuk
penyeleksian
kondisi
dengan
kemungkinan yang terjadi cukup banyak.
Syntax Umum:
Switch (ekspresi)
{
case: konstanta 1;
pernyataan 1;
break;
case: konstanta 2;
3
4. pernyataan 2;
break;
case: konstanta 3;
pernyataan 3;
break;
default:
pernyataan lain;
}
2.1.2 Fungsi dan Prosedur
1. Fungsi
Fungsi adalah satu blok kode yang melakukan tugas tertentu yang
memiliki nilai kembalian. Criri utama Fungsi adalah terdapat syntax
‘return’ pada fungsi tersebut.
Syntax umum:
Tipe_Nilai_BalikNama_Fungsi( )
{
Pernyataan;
return Nilai_Balik;
}
2. Prosedur (Fungsi Void)
Satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain
dalam suatu program. Ciri utama prosedur adalah Tipe Nilai Baliknya
berupa ‘void.
Syntax Umum:
Void Nama_Prosedur( )
{
Pernyataan;
}
4
5. 2.1.3 Perulangan
1. For
For digunakan untuk mengulang program yang menggunakan nilai
awal dan nilai akhir.
Syntax umum:
For(inisialisasi; kondisi; pengubah nilai pencacah)
{
Pernyataan;
}
2. While
Perulangan while digunakan untuk melakukan pengeksekusian dengan
jumlah yang belum diketahui pasti. Pernyataan pada While akan
dieksekusi setelah pengecekan kondisi pada While bernilai True.
Syntax umum:
While(kondisi)
{
Pernyataan;
Pengubah nilai pencacah;
}
3. Do – While
Penyataan perulangan do-while merupakan bentuk perulangan yang
melaksanakan perulangan terlebih dahulu dan pengujian perulangan
dilakukan belakangan.
Syntax umum:
Do
{
Pernyataan;
Pengubah nilai pencacah;
}while(kondisi);
5
6. 2.1.4 Array
Array digunakan untuk menyimpan sekelompok data sejenis yang
disimpan ke dalam variabel dengan nama yang sama, dengan memberi
indeks pada variabel untuk membedakan antara yang satu dengan yang
lain.
Syntax umum:
Nama_Variable[indeks];
6
7. 2.2 FLOWCHART
START
INISIALISASI
PILIH
INPUT KA
KA
(1)
ARGO BROMO
(2)
GAJAYANA
(3)
MALABAR
(3)
MALIOBORO
INPUT
KELAS
(1)
EKSEKUTIF
INPUT
Jml Pnp
Dewasa
(2)
BISNIS
(3)
EKONOMI
INPUT
Jml Pnp
Anak
HRG TIKET
DEWASA=
Hrg Tiket * Jml Pnp
Dewasa
HRG TIKET ANAK=
Hrg Tiket * Jml Pnp
Anak * 20%
FUNGSI
TOTAL= HRG Tiket Anak
DEWASA + HRG Tiket
Dewasa
PESAN
TIKET
[Y/T]
T
Y
INPUT NAMA, NO
KTP, ALAMAT
END
TERIMAKASIH
ULANG[Y/T]
N
CETAK
TIKET
Y
WHILE
(setuju==’y
’||setuju==’Y’)
7
8. 2.3 ALGORITMA
3.2.1 Start Program
3.2.1 Output Tampilan Awal Program
3.2.2 Masukkan Kode Kereta Api
3.2.3 Jika Kode Kereta Api = 1 maka Kereta Api Argo Bromo
3.2.4 Jika Kode Kereta Api = 2 maka Kereta Api Gajayana
3.2.5 Jika Kode Kereta Api = 3 maka Kereta Api Malabar
3.2.6 Jika Kode Kereta Api = 4 maka Kereta Api Malioboro
3.2.7 Masukkan Kode Kelas
3.2.8 Jika Kode Kelas = 1 maka Kelas Eksekutif
3.2.9 Jika Kode Kelas = 2 maka Kelas Bisnis
3.2.10 Jika Kode Kelas = 3 maka Kelas Ekonomi
3.2.11 Masukkan Jumlah Penumpang Dewasa
3.2.12 Output Harga Tiket Penumpang Dewasa
3.2.13 Masukkan Jumlah Penumpang Anak
3.2.14 Ouput Harga Tiket Penumpang Anak
3.2.15 Pilih Y/T untuk melanjutkan pemesanan Tiket Kereta Api
3.2.16 Jika pilihan Y maka Pesan Tiket Kereta Api
3.2.17 Jika pilihan T maka kembali ke Output Tampilan Awal Program
3.2.18 Input Nama, No KTP, dan Alamat
3.2.19 Cetak Tiket
Kereta Api dengan Format: Nama, No KTP,
Alamat,Jumlah Penumpang, Nama Kereta Api, Kelas Kereta Api dan
Total Harga
3.2.20 Output pilihan untuk kembali ke awal Program Y/T
3.2.21 Jika pilih Y akan kembali ke awal program
3.2.22 Jika pilih T akan mengakhiri Program
3.2.23 Program Selesai
8
9. 2.4 Source Code
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
int KA, KA1, kelas, kelas1, jmlTiket, dewasa,anak;
long int hargatiket,hitbyrAnak,totalbyrAnak;
double bayarKADewasa, bayarKAAnak,bayarSemuaKA;
char Nama[40], Ktp[40], Alamat[40],setuju,ulang,ulang1;
char namaKelas[3][10]={"Eksekutif" ,"Bisnis" , "Ekonomi"};
char namaKA[4][25] ={ "Argo Bromo", "Gajayana" , "Malabar"
"Malioboro"};
long int Eksekutif[4]={400000,350000,285000,175000};
long int Bisnis[4]={250000,200000,160000,100000};
long int Ekonomi[4]={85000,75000,60000,45000};
void Garis(int G);
long int Bayar(long int x, long int y);
void TampilanProgram();
void BayarKAAnggrek();
void BayarKAGajayana();
void BayarKAMalabar();
void BayarKAMalioboro();
,
main()
{
do
{
TampilanProgram();
switch(KA)
{
case 0:
BayarKAAnggrek();
break;
case 1:
BayarKAGajayana();
break;
case 2:
BayarKAMalabar();
break;
case 3:
BayarKAMalioboro();
break;
default:
cout <<"tPILIHAN TIDAK TERSEDIA"<<endl;
break;
9
10. }
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"tAPAKAH ANDA INGIN MEMBELI
PESAN?[Y/T]nttt-->";
cin>>setuju;
if(setuju=='T' || setuju=='t')
{
clrscr();
TampilanProgram();
}
TIKET
YANG
SUDAH
ANDA
clrscr();
cout<<"tt ";
Garis(40);
cout<<"nt" << "t|" << "tIDENTITAS PEMESAN KERETA APIt
"<<"|t";
cout<<"ntt|========================================|";
cout<<"ntt ";
Garis(40);
cout<<"ntttNAMA t: ";
gets(Nama);
cout<<"tttNO KTPt: ";
gets(Ktp);
cout<<"tttALAMATt: ";
gets(Alamat);
cout<<endl;
clrscr();
cout<<"tt ";
Garis(49);
cout<<"ntt|" << "ttTIKET KERETA APItt |";
cout<<"ntt|================================================
=|";
cout<<"ntt NAMAttt: "<<Nama;
cout<<"ntt NO KTPttt: "<<Ktp;
cout<<"ntt ALAMATttt: "<<Alamat;
cout<<"ntt JUMLAH PENUMPANGt: "<<jmlTiket;
cout<<"ntt KERETA APItt: " <<namaKA[KA];
cout<<"ntt KELASttt: "<<namaKelas[kelas];
cout<<"ntt DEWASAttt: "<<dewasa;
cout<<"ntt ANAKttt: " <<anak;
10
11. cout<<"nttTOTALttt:Rp."<<Bayar(bayarKAAnak,bayarKADewas)
<< endl;
cout<<endl;
cout<<endl;
cout<<"ttAPAKAH ANDA INGIN MEMESAN TIKET LAGI?[Y/T]";
cin>>ulang1;
ulang++;
clrscr();
}while(ulang1=='Y'||ulang1=='y');
clrscr();
cout << "tt------------------TERIMAKASIH------------------"<<
endl;
getch();
}
void TampilanProgram()
{
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"tttPILIH NO KERETA API [1-4]nttt-->";
cin>>KA1;
KA = KA1 - 1;
cout<<endl;
while(KA1>4)
{
clrscr();
TampilanProgram();
cout<<"tttULANGI
SEKALI
LAGI,PILIHAN
TIDAK
TERSEDIA"<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"tttPILIH NO KERETA API [1-4]nttt-->";
cin>>KA1;
KA = KA1 - 1;
cout<<endl;
11
12. }
cout<<"tttPILIH KELAS [1-3]nttt-->";
cin>>kelas1;
kelas = kelas1 - 1;
cout<<endl;
while(kelas1>3)
{
cout<<"tttULANGI
SEKALI
LAGI,PILIHAN
TERSEDIA!"<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"tttPILIH KELAS [1-3]nttt-->";
cin>>kelas1;
kelas = kelas1 - 1;
cout<<endl;
}
TIDAK
cout<<"tttJUMLAH TIKET YANG DIPESANnttt--> ";
cin>>jmlTiket;
while(jmlTiket>4)
{
clrscr();
cout<<"tttMAKSIMAL MEMESAN 4 TIKET"<<endl;
cout <<"tt";
Garis(40);
cout<<endl;
cout<<"tt";
Garis(40);
cout<<endl;
cout<<"tttJUMLAH TIKET YANG DIPESANnttt--> ";
cin>>jmlTiket;
}
cout<<"tttPENUMPANG DEWASAnttt--> ";
cin>>dewasa;
do
{
cout<<endl;
12
13. cout<<"tttJUMLAH PENUMPANG DEWASA TAK SESUAI"<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<"ttttPENUMPANG DEWASAnttt-->";
cin>>dewasa;
dewasa++;
}while(dewasa>jmlTiket);
if(dewasa==jmlTiket)
{
cout <<"tttPENUMPANG ANAK-ANAKnttt--> 0"<<endl;
anak = 0;
}else{
anak = jmlTiket-dewasa;
cout<<"tttPENUMPANG
ANAK
ANAKnttt-->
"<<anak<<endl;
}
cout<<"tt ";
Garis(40);
cout<<
"nt"<<"t|"<<"tRESERVASI
TIKET
KERETA
APIt
"<<"|t";
cout<<"ntt|========================================|";
cout<<"ntt ";
Garis(40);
cout<<endl;
cout<<endl;
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"t";
Garis(65);
cout<<endl;
cout<<"tNO KAt NAMA KAttEKSEKUTIF(1) t BISNIS(2)t
EKONOMI(3)"<<endl;
cout<<"t 1tARGO
BROMOtRp."<<Eksekutif[0]<<"tRp."<<Bisnis[0]<<"tRp."
<<Ekonomi[0]<<endl;
cout<<"t2tGAYAJANAtRp."<<Eksekutif[1]<<"tRp."<<Bisnis[1]
<<"tRp."
<<Ekonomi[1]<<endl;
cout<<"t3tMALABARttRp."<<Eksekutif[2]<<"tRp."<<Bisnis[2]
<<"tRp."<<Ekonomi[2]<<endl;
cout<<"t4tMALIOBOROtRp."<<Eksekutif[3]<<"tRp."<<Bisnis[3]
13
14. <<"tRp."<<Ekonomi[3]<<endl;
cout<<endl;
cout<<endl;
}
void Garis(int G)
{
for(int x = 1; x <= G; x++)
{
cout<<"-";
}
}
long int Bayar(long int x, long int y)
{
long int xy;
xy = x + y;
return xy;
}
void BayarKAGajayana()
{
switch(kelas)
{
case 0:
hargatiket = Eksekutif[1];
bayarKADewasa = hargatiket * dewasa;
if(anak == 0)
{
bayarKAAnak = 0;
}else{
hitbyrAnak =hargatiket * anak * 0.2;
bayarKAAnak = hargatiket - hitbyrAnak;
}
Break;
case 1:
hargatiket = Bisnis[1];
bayarKADewasa = hargatiket * dewasa;
if(anak == 0)
{
bayarKAAnak = 0;
}else{
hitbyrAnak =hargatiket * anak * 0.2;
bayarKAAnak = hargatiket - hitbyrAnak;
}
14
19. 2.5 Analisis Program
1. Pada tampilan awal ini berisi Informasi Harga Tiket Kereta Api,
Gambar 2.1 Tampilan Awal
(Sumber: Praktikum)
2. Untuk memesan Tiket Kereta Api, masukkan No Kereta Api dan Kelas Kereta
Api. Kemudian Klik Tombol Enter pada Keyboard.
Gambar 2.2 Pemilihan Kereta Api dan Kelas Kereta Api
(Sumber: Praktikum)
19
20. 3. Masukkan Jumlah Penumpang. Untuk Jumlah Penumpang dibatasi hanya bias
memesan 4 orang dalam 1 tiket. Kemudian masukkan Jumlah Penumpang
Dewasa dan Anak-Anak, kemudian input ‘Y’ jika ingin memesan Tiket
Kereta Api atau ‘T’ jika ingin membatalkan pemesanan Tiket Kereta Api.
Gambar 2.3 Inputan Jumlah Penumpang
(Sumber: Praktikum)
4. Kemudian inputkan Nama, No KTP dan Alamat. Kemudian klik enter
Gambar 2.4 Penginputan Identitas Pemesan Tiket Kereta Api
(Sumber: Praktikum)
20
21. 5. Setelah itu akan tampil output hasil dari opsi - opsi yang telah kita pilih tadi
yaitu Tiket Kereta Api
Gambar 2.5 Tampilan Tiket Kereta Api
(Sumber: Parktikum)
2.6 Rancangan Pengembangan
1. Bisa mencetak Tiket Kereta Api dalam bentuk print out.
2. Menambahkan Inputan Tempat Duduk Kereta Api dan perhitungan
pembayaran sesuai dengan Pemberangkatan dan Kedatangan.
3. Bisa melakukan pencarian data, pengeditan data, dan penghapusan data.
21
22. BAB III
PENUTUP
3.1
Kesimpulan
Program Reservasi Penjualan Tiket Kereta Api dibuat dari Bahasa
Pemrograman C++ yang berbasis TUI ( Text User Interface). Program ini
menggunakan statement for, while , do – while, if-else, switch-case, array
serta fungsi prosedur. Dengan adanya program ini maka dapat disimpulkan:
1. Operator akan lebih mudah dalam menjalankan proses pembayaran
Tiket Kereta. Karena operator tersebut hanya tinggal memilih Nama
Kereta Api, Kelas dan Jumlah Penumpang.
2.
Waktu yang terpakai dalam proses Penjualan Tiket Kereta Api menjadi
jauh lebih efisien.
3.1
Saran
Program yang dibuat oleh penulis masih dapat dikembangkan menjadi
lebih besar, karena penulis menyadari bahwa program yang dibuat masih
terdapat banyak kekurangan. Beberapa saran yang dapat penulis sampaikan
diantaranya:
1. Nama Kereta Api yang terdapat pada opsi dapat ditambah lebih banyak.
2. Program ini dapat mencetak Tiket Kereta Api yang berupa print out.
3. Program ini dapat ditambahkan Inputan Tempat Duduk Kereta Api dan
perhitungan pembayaran sesuai dengan Pemberangkatan dan Kedatangan.
4. Program ini dapat didesain dengan tampilan yang lebih baik dan
lebih menarik lagi.
22