Minggu, 07 Januari 2018

PROGRAM E-TRANS

BAB I
PENDAHULUAN

1.1  Latar Belakang
Jual Beli adalah kegiatan manusia yang ada sejak zaman dahulu, sebelum mengenal uang masyarakat indonesia melakukan aktifitas jual beli dengan Sistem Barter (saling tukar barang). Sejak tahun 1817 masyarakat indonesia telah mengenal Uang sebagai alat pembayaran yang sah yang diperkenalkan oleh Belanda ketika masa penjajahan. 

Ketika uang di indonesia telah diketahui oleh banyak masyarakat, masyarakat indonesia menggunakan uang tersebut dengan berbagai hal yang tentunya bisa ditukarkan atau diperjual belikan oleh barang maupun jasa yang setara dengan nilai tukar uang tersebut. Banyak toko yang sudah menggunakan teknologi komputer untuk memudahkan transaksi penjualan seperti penjualan tiket kereta, pembayaran uang kuliah dan pengiriman uang.

Perkembangan teknologi informasi, yang ditandai  dengan perkembangan teknologi komputer dan teknologi komunikasi serta transportasi, membuat setiap lembaga / instansi dituntut memiliki infrastruktur teknologi informasi, sebagai tuntutan kemajuan zaman. Di era globalisasi sekarang ini, seluruh sistem pelayanan diotomatisasi dengan peralatan yang bersifat efisien dalam waktu dan tenaga. Hal ini diharapkan akan memuaskan keinginan konsumen dan proses permintaan pasar sehingga menjangkau keseluruh bidang kehidupan.

Mobilitas manusia yang tinggi menuntut dunia perdagangan mampu menyediakan layanan jasa dan barang dengan cepat sesuai permintaan konsumen. Untuk mengatasi masalah tersebut, kini muncul transaksi yang menggunakan media internet untuk menghubungkan produsen dan konsumen.

Terkait dengan uraian diatas, maka penulis tertarik untuk membuat suatu program yang dapat digunakan untuk melakukan transaksi elektronik penjualan tiket kereta api, pembayaran uang kuliah serta pengiriman uang. Dengan hadirnya sistem ini, diharapkan mampu memenuhi kebutuhan transaksi konsumen, sehingga transaksi lebih efisien dan cepat.

1.2  Perumusan Masalah
Berdasarkan latarbelakang tersebut diatas maka rumusan masalah yang akan dibahas adalah “Bagaimana cara membuat program yang dapat digunakan untuk transaksi penjualan tiket kereta api, pembayaran uang kuliah dan pengiriman uang”.

1.3  Pembatasan Masalah
Untuk menjaga kemungkinan semakin berkembangnya masalah, mengingat objek yang dijadikan makalah memiliki banyak ragamnya maka penulis hanya menitikberatkan permasalahan yang berupa pembuatan program transaksi menggunakan Borland C++

1.4  Manfaat Makalah
Hasil makalah ini diharapkan akan memberi manfaat bagi penulis, rekan rekan mahasiswa 13.1D.01 Teknik Komputer Kelas Sore serta pelaku usaha atau toko yang mengaplikasikan program e-Trans.

1.5 Tujuan Makalah
Tujuan makalah ini adalah untuk memenuhi salah satu tugas dari mata kuliah Dasar Pemrograman berupa pembuatan program e-Trans yang diharapkan mampu meningkatkan efisiensi kerja dan waktu sehingga dapat memuaskan semua pihak.




BAB II
LANDASAN TEORI

2.1 Pengertian C++
C++ adalah bahasa pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan perkembangan dari bahasa C dikembangkan di Bong Labs (Dennis Ritchie) pada awal tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B, Pada awalnya, bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem Unix,
Pada perkembangannya, versi ANSI (American National Standart Institute) Bahasa pemrograman C menjadi versi dominan, Meskipun versi tersebut sekarang jarang dipakai dalam pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada Bel labs pertama kali mengembangkan C++ pada awal 1980-an. Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level coding).

2.2 Perkembangan Bahasa C
      Bahasa C dikembangken di Bell lab pada tahun 1972 ditulis pertama kali oleh Brian W. Kernighan dan Denies M. Ricthie merupakan bahasa turunan atau pengembangan dari bahasa B yang ditulis oleh Ken Thompson pada tahun 1970 yang diturunkan oleh bahasa sebelumnya, yaitu BCL. Bahasa C, pada awalnya dirancang sebagai bahasa pemrograman yang dioperasikan pada sistem operasi UNIX.
      Bahasa C merupakan bahasa pemrograman tingkat menengah yaitu diantara bahasa tinggat rendah dan tingkat tinggi yang biasa disebut dengan Bahasa Tingkat Menengah. Bahasa C mempunyai banyak kemampuan yang sering digunakan diantaranya kemampuan untuk membuat perangkat lunak, misalnya dBASE, Word Star dan lain-lain.



2.3 Perbedaan Antara Bahasa C Dengan C++
      Bahasa C merupakan bahasa pemrograman prosedural, di mana penyelesaian atas suatu masalah dilakukan dengan membagi-bagi masalah tersebut ke dalam sub-sub masalah yang lebih kecil. Sedangkan C++ merupakan bahasa pemrograman yang memiliki sifat Object Oriented Programming (OOP). Untuk menyelesaikan masalah, C++ melakukan langkah pertama dengan mendefinisikan class-class yang merupakan a.-class yang dibuat sebelumnya sebagai abstraksi dari objek-objek fisik. Class tersebut berisi keadaan objek, anggota-anggotanya, dan kemampuan dari objeknya. Setelah beberapa class dibuat, masalah dipecahkan menggunakan class.

2.4 Pengenalan IDE Borland C++
IDE merupakan singkatan dari Integrated Development Environment, merupakan Lembar kerja terpadu untuk pengembangan program. IDE dari Borland C++, dapat digunakan untuk:
a.       Menulis Naskah Program.
b.      Mengkompilasi Program ( Compile )
c.       Melakukan Pengujian Program ( Debugging )
d.      Mengaitkan Object dan Library ke Program ( Linking )
e.       Menjalankan Program ( Running )

2.5 Struktur program C++
Sama seperti struktur program C yang terdahulu, struktur program C++ terdiri dari sejumlah blok fungsi, setiap fungsi terdiri dari satu atau beberapa pernyataan yang melaksanakan tugas tertentu.

Bentuk Umum :

#include <file-header>
main()
{
pernyataan;
}

Contoh :                #include <conio.h>
#include <iostream.h>
main()
{
cout<<”Teknik Komputer BSI Margonda”;
getch();
}

Penjelasan :
a.       #include <file-header> merupakan preprocessor pada C++ untuk pemanggilan file header yang memuat beberapa perintah-perintah dari C++ (contoh, apabila ingin menggunakan perintah cout maka harus menggunakan file header iostream.h)
b.      main( ) merupakan awal mula dari blok program utama
c.       tanda { dan } sebagai punctuator yang awal blok program hingga akhir blok program
d.      cout merupakan perintah keluaran pada C++
e.       getch( ); apabila ditempatkan sebelum funtuator }, maka berfungsi sebagai penahan dari tampilan hasil

2.6 Pengenalan Tipe Data
Borland C++ memiliki 7 tipe data dasar dan 3 tipe tambahan, diantaranya:

Table 2.1 Tipe Data
Tipe
Data
Ukuran
Memori
Jangkauan Nilai
Jumlah
Digit
Char
1 Byte
-128 s.d 127

Int
2 Byte
-2,147,435,648 s.d 2,147,435,647

Short
2 Byte
-32768 s.d 32767

Long
4 Byte
-2,147,435,648 s.d 2,147,435,647

Float
4 Byte
3.4 x 10-38 s.d 3.4 x 10+38
5 – 7
Double
8 Byte
1.7 x 10-308 s.d 1.7 x 10+308
15 – 16
Long
Double
10 Byte
3.4 x 10-4932 s.d 1.1 x 10+4932
19

2.7 Variabel
Adalah suatu tempat menampung data atau konstanta dimemori yang mempunyai nilai atau data yang dapat berubah-ubah selama proses program.

Dalam pemberian nama variabel, mempunyai ketentuan-ketentuan antara lain :
1.      Tidak boleh ada spasi ( contoh : gaji bersih ) dan dapat menggunakan tanda garis bawah ( _ ) sebagai penghubung (contoh : gaji_bersih).
2.      Tidak boleh diawali oleh angka dan menggunakan operator aritmatika.

         Variabel, dibagi menjadi dua jenis kelompok, yaitu :
A.    Variabel Numerik
B.     Variabel Teks

         A. Variabel Numerik
Variabel numerik ini dibagi menjadi menjadi 3 (tiga) macam :
1.      Bilangan Bulat atau Integer
2.      Bilangan Desimal Berpresisi Tunggal atau Floating Point.
3.      Bilangan Desimal Berpresisi Ganda atau Double Precision.

         B. Variabel Text
1.      Character ( Karakter Tunggal )
2.      String ( Untuk Rangkaian Karakter )

         Deklarasi Variabel
Adalah proses memperkenalkan variabel kepada Borland C++ dan pendeklarasian tersebut bersifat mutlak karena jika tidak diperkenalkan terlebih dahulu maka Borland C++ tidak menerima variabel tersebut.
Deklarasi Variabel ini meliputi tipe variabel, seperti integer atau character dan nama variabel itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh tanda titik koma ( ; ).

Bentuk penulisan :
Tipe data nama_variabel;

   Contoh Deklarasi :
char nama_mahasiswa[20];
char grade;
float rata_rata ;
int nilai;
2.8 Operator Aritmatika
Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program, yang digunakan untuk melakukan sesuatu operasi atau manipulasi, seperti penjumlahan, pengurangan dan lain-lain.

Operator mempunyai sifat sebagai berikut:
A.    Unary
Sifat Unary pada operator adalah hanya melibatkan sebuah operand pada suatu operasi aritmatik
Contoh : -5
B.     Binary
Sifat Binary pada operator adalah melibatkan dua buah operand pada suatu operasi aritmatik
Contoh : 4 + 8
C.    Ternary
Sifat Tenary pada operator adalah melibatkan tiga buah operand pada suatu operasi aritmatik
Contoh : (10 % 3) + 4 + 2

Operator untuk operasi aritmatika yang tergolong sebagai operator Unary adalah:
Tabel 2.2 Operator Aritmatika (Unary)
Operator
Keterangan
Contoh
+
Tanda Plus
−4
Tanda Minus
+6

Operator yang tergolong sebagai operator Binary, adalah:

Tabel 2.3 Operator Aritmatika (Binary)
Operator
Keterangan
Contoh
*
Perkalian
4 * 5
/
Pembagian
8 / 2
%
Sisa Pembagian (mod)
5 % 2
+
Penjumlahan
7 + 2
Pengurangan
6 − 2


2.9 Operasi Penyeleksian Kondisi
Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain.

Pernyataan IF
Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”.
Bentuk umum dari pernyataan if

if (kondisi)
pernyataan;

Penulisan kondisi berada di dalam tanda kurung kurawal jika pemakaian if diikuti dengan pernyataan majemuk, bentuk penulisannya sebagai berikut :
if (kondisi)
{
pernyataan;
……
}

        Pernyataan IF - ELSE
Pernyataan if mempunyai pengertian, “Jika kondisi bernilai benar, maka perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan perintah-2”.
Bentuk umum dari pernyataan if –else
if (kondisi)
perintah-1;
else
perintah-2;

Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan majemuk atau pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan majemuk, bentuk penulisannya sebagai berikut :
if (kondisi)
{
perintah-1;
...
}
else
{
perintah-2;
...

Pernyataan NESTED IF
Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya. Bentuk penulisan pernyataan Nested if adalah :
if(syarat)
{
if(syarat)
… perintah;
else
… perintah;
}
else
{
if(syarat)
… perintah;
else
… perintah;
}

2.10  Perulangan (Looping)
Struktur pengulangan digunakan untuk menguang suatu perintah sebanyak yang diinginkan. Untuk melakukan perintah dengan melakukan banyak perulangan akan lebih efisien apabilaa kita menggunakan perulangan. Ada beberapa perulangan dalam C++ yaitu : for, nested for, goto, while, do..while.

String Compare digunakan membandingkan dua string dengan cara membandingkan string 1 ke string 2. Fungsi ini dimulai membandingkan karakter pertama dari setiap string.
Jika mereka sama satu sama lain, terus dengan pasangan berikutnya sampai membandingkan karakter yang berbeda atau sampai ke terminator karakter null.
(referensi : Utama, Didit N & Widayanti, Riya, “Algoritma dan Pemrograman dengan Borland C++”, Graha Ilmu – Yogyakarta, 2005)

Array adalah suatu variable yang terdiri dari sekumpulan data dimana data-data tersebut mempunyai tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda-beda dan disebut dengan elemen array.
Setiap elemen mempunyai nilai indek sesuai dengan urutannua, melalui indek inilah kita dapat mengakses data-data tersebut.
Array didekatkan dengan tanda [] (bracket). Baik dalam Bahasa C++ dan Java. Bentuk umum dari tipe data array adalah :
tipe_data nama_array[jumlah_elemen]

A.    Array Dimensi Satu
Setiap elemen array dapat diakses melalui index
-          Index array secara default dimulai dari 0
-          Deklarasi array :
tipe_array nama_array[ukuran]

B.     Array Dimensi Dua
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah kolom bentuknya dapat berupa matriks atau table
Deklarasi array :
tipe_array nama_array[baris][kolom]
















BAB III
PEMBAHASAN

3.1    Ketentuan Program
3.1.1    Menu Utama
            Dalam menu utama ada tiga pilihan transaksi :

Tabel 3.1 Menu Utama
Kode
Jenis Transaksi
K
Pemesanan Tiket Kereta Api
B
Pembayaran Biaya Kuliah BSI
U
Pengiriman Uang

3.1.2    Pemesanan Tiket Kereta Api
Maksimal pemesanan tiket 4
Bayi (0-3 Tahun) tidak mendapatkan kursi
Jika ingin memesan kursi untuk bayi data tanggal lahir bayi di isi dengan data orang dewasa (orang tua)
Pilihan tujuan perjalanan Kereta Api, antara lain :

Tabel 3.2 Menu Pemesanan Tiket Kereta Api
Kode
Tujuan
S
Gambir - Surabaya
M
Gambir – Malang
Y
Gambir – Yogyakarta
P
Gambir - Purwokerto
                    
Setelah memilih tujuan perjalanan, dapat memilih jenis kereta.
Data perjalanan disesuaikan dengan data dari PT. KAI

3.1.3        Pembayaran Biaya Kuliah BSI
Tabel 3.3 Menu Pembayaran Biaya Kuliah BSI
Kode
Jurusan
Semester
Harga
A
Komputer Akuntansi
1
3.000.000
2
2.800.000
3
2.600.000
>3
2.400.000
Kode
Jurusan
Semester
Harga
B
Akademi Bahasa Asing
1
3.100.000
2
2.900.000
3
2.750.000
>3
2.500.000
M
Manajemen Informatika
1
3.000.000
2
2.750.000
3
2.500.000
>3
2.450.000
T
Teknik Komputer
1
3.000.000
2
2.700.000
3
2.650.000
>3
2.400.000

3.1.4        Pengiriman Uang
Tabel 3.4 Menu Pengiriman Uang
Ketentuan
Maksimal Pengiriman
Rp. 6.000.000
Biaya Pengiriman
< 1.000.000
15.000
Biaya Pengiriman
> =1.000.000
25.000













3.2    Flow Chart
3.2.1 Pemesanan Tiket Kereta Api
Gambar 3.1 Flowcart Pemesanan Tiket Kereta Api

3.2.2    Pembayaran Biaya Kuliah

Gambar 3.2 Flowcart Pembayaran Biaya Kuliah BSI
3.2.3 Pengiriman Uang

Gambar 3.3 Flowcart Pengiriman Uang









3.3    Studi Kasus
3.3.1 Menu Utama
Aplikasi E-Trans ini digunakan untuk beberapa transaksi yang dimuat dalam satu menu utama. Ketika seorang pelanggan ingin memulai transaksi, maka tampilan Menu Utama pada E-Trans adalah pilihan transaksi.
Pelanggan tersebut diminta untuk memasukan kode transaksi yang akan dilakukan.
 










Gambar 3.4 Menu Utama
3.3.2 Pemesanan Tiket Kereta Api
Jika pelanggan memasukan Kode “K” maka transaksi yang dipilih adalah Pemesanan Tiket Kereta Api.
-          Pelanggan akan diminta memasukan tanggal keberangkatan.
-          Kemudian pelanggan memilih tujuan keberangkatan kereta api, jumlah penumpang dewasa dan penumpang bayi
(maksimal total tiket 4)
-          Setelah tujuan keberangkatan dipilih, maka pelanggan memilih jenis kereta api, kelas dan jam keberangkatan yang tersedia dalam menu.
-          Biodata penumpang dibutuhkan untuk kelengkapan  data pemesanan.
-          Pelanggan juga diminta memasukan kode tujuan, jumlah penumpang).
 









Gambar 3.5 Input Tanggal Keberangkatan Kereta Api
 








Gambar 3.6 Pemilihan Tujuan Keberangkatan Kereta Api
 











Gambar 3.7 Daftar Jadwa Kereta Api
 













Gambar 3.8 Input Data Diri Penumpang
-          Jika semua data yang dibutuhkan telah dimasukan, maka akan terlihat total harga yang harus dibayarkan untuk pemesanan tiket kereta api
-          tersebut dan juga biaya administrasi.
-          Pelanggan akan diminta membayar sesuai dengan total harga yang tertera, Jumlah Bayar dimasukan jumlah uang yang dibayarkan.
-          Setelah Jumlah Bayar dimasukan, maka akan tampil jumlah uang kembalian.
 























Gambar 3.9 Struk Pembayaran Tiket Kereta Api

-          Pelanggan akan diminta memasukan kode [Y/T] untuk melanjutkan transaksi atau tidak.

3.3.3        Pembayaran Kuliah
Jika pelanggan memasukan Kode “B” maka transaksi yang dipilih adalah Pembayaran Biaya Kuliah BSI
-          Pelanggan akan diminta memasukan data diri Mahasiswa BSI, yaitu berupa Nama Mahasiswa, NIM, Kode Juruan dan Semester
 









Gambar 3.10 Input Data Pembayaran Biaya Kuliah

-          Jika semua data yang dibutuhkan telah dimasukan, maka akan terlihat total harga yang harus dibayarkan untuk Pembayaran Biaya Kuliah BSI tersebut dan juga biaya administrasi.
-          Pelanggan akan diminta membayar sesuai dengan total harga yang tertera, Jumlah Bayar dimasukan jumlah uang yang dibayarkan.
-          Setelah Jumlah Bayar dimasukan, maka akan tampil jumlah uang kembalian.
 












              Gambar 3.11 Struk Pembayaran Biaya Kuliah BSI
-          Pelanggan akan diminta memasukan kode [Y/T] untuk melanjutkan transaksi atau tidak.
3.3.4 Pengiriman Uang
Jika pelanggan memasukan Kode “U” maka transaksi yang dipilih adalah Pengiriman Uang.
-          Pelanggan akan diminta memasukan data diri pengirim uang, berupa Nama Pengirim, Nomor Identitas dan Nomor Kontak.
-          Pelanggan juga diminta memasukan data diri penerima uang, berupa Nama Penerima, Nomor Identitas, Nomor Kontak dan Alamat.
-          Pelanggan diminta memasukan jumlah uang yang akan dikirim  ke penerima.
 








                 Gambar 3.12 Input Data Pengiriman Uang
-          Jika semua data yang dibutuhkan telah dimasukan, maka akan terlihat total harga yang harus dibayarkan untuk Pengiriman Uang tersebut dan juga biaya administrasi.
-          Pelanggan akan diminta membayar sesuai dengan total harga yang tertera, Jumlah Bayar dimasukan jumlah uang yang dibayarkan.
-          Setelah Jumlah Bayar dimasukan, maka akan tampil jumlah uang kembalian.
 













                Gambar 3.13 Struk Pembayaran Pengiriman Uang
3.4    Coding
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
garis()
{cout<<"\n\t===============================================\n";}
garis1()
{cout<<"\n\t\t------------------------------------------\n";}

main()
{
char ko,kod,ket[10],jur[30],tuj[30],nk[10],kls[10],nama[7][20],lagi,nj[25],id[7][20],kontak[7][20],alamat[25],jam[12];
int k,bt,nim,smt,uang,tot=0,kk,pd,pb;
float harga1[7],harga,bayar,total,kembali,adm,tgl,bln,thn,tl[7],bl[7],thl[7];
awal:
clrscr();
garis();
cout<<"\t           SELAMAT DATANG DI E-TRANS";
garis();
cout<<"\t                 MENU E-TRANS\n\n";
cout<<"\t KODE            TRANSAKSI\n\n";
cout<<"\t  K              PEMESANAN TIKET KERETA API\n";
cout<<"\t  B              PEMBAYARAN KULIAH BSI\n";
cout<<"\t  U              PENGIRIMAN UANG\n";
garis();
cout<<"\t Masukkan Kode : ";cin>>ko;

switch (ko)
{
case strcmp,'K':
case strcmp,'k':
input:
clrscr();
cout<<"\n\t E- KAI PENCARIAN JADWAL KERETA 2018";
cout<<"\n\n\t Isi 0 untuk kembali ke menu utama";
cout<<"\n\n\tTanggal Keberangkatan \t(dd mm yyyy) : ";
cin>>tgl;
if(tgl>31)
{goto input;}
else if(tgl==0)
{goto awal;}
cin>>bln;
if(bln>12)
{goto input;}
cin>>thn;
if(thn<2018)
{goto input;}
else if(thn>2018)
{goto input;}
clrscr();
cout<<"\n\t=====================================";
cout<<"\n\t| Kode  |         Tujuan            |";
cout<<"\n\t-------------------------------------";
cout<<"\n\t|   S   |      Gambir-Surabaya      |";
cout<<"\n\t|   M   |       Gambir-Malang       |";
cout<<"\n\t|   Y   |     Gambir-Yogyakarta     |";
cout<<"\n\t|   P   |     Gambir-Purwokerto     |";
cout<<"\n\t=====================================";
cout<<"\n\t\tMasukkan Kode Tujuan\t : ";cin>>kod;
cout<<"\t\tPenumpang Dewasa : ";cin>>pd;
if(pd>4)
{printf ("\n\t\tJumlah Pemesanan Melebihi Batas !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  {goto awal; }
 else
  {goto akhir;  }
  }
cout<<"\t\tPenumpang Bayi   : ";cin>>pb;
bt=pd+pb;

if(kod=='S'||kod=='s')
{
strcpy(jur,"Gambir-Surabaya");
clrscr();
cout<<"\n\t======================DAFTAR JADWAL KERETA API=========================";
printf("\n\t%s %.f/%.f/%.f  ",jur,tgl,bln,thn);
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|Kode |         Nama         |  Stasiun Awal  |   Kelas   |   Harga   |";
cout<<"\n\t|     |        Kereta        | Stasiun Tujuan |           |   Tiket   |";
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|  1  | Argo Bromo Anggrek 2 |     Gambir     | Eksekutif |  485.000  |";
cout<<"\n\t|     |     09:30-18:30      |  Sby. Ps. Turi |           |           |";
cout<<"\n\t|  2  | Argo Bromo Anggrek 7 |     Gambir     |   Bisnis  |  425.000  | ";
cout<<"\n\t|     |     21:30-06:30      |  Sby. Ps.Turi  |           |           |";
cout<<"\n\t|  3  |    Bangunkarta 56    |     Gambir     | Eksekutif |  450.000  |";
cout<<"\n\t|     |     15:00-03:30      |   Sby. Gubeng  |           |           |";
cout<<"\n\t|  4  |    BangunKarta 66    |     Gambir     |   Bisnis  |  350.000  |";
cout<<"\n\t|     |     15:30-04:10      |   Sby. Gubeng  |           |           |";
cout<<"\n\t=======================================================================";
cout<<"\n\t\tMasukkan Kode Kereta : ";cin>>kk;
for (k=1;k<=bt;k++)
{
if (kk==1)
{strcpy(nk,"Argo Bromo Anggrek 2");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Sby. Pasar Turi ");strcpy(jam,"09:30-18:30");harga1[k]=485000;}
else if (kk==2)
{strcpy(nk,"Argo Bromo Anggrek 7");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Sby. Pasar Turi ");strcpy(jam,"21:30-06:30");harga1[k]=425000;}
else if (kk==3)
{strcpy(nk,"Bangun Karta 56 ");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Surabaya Gubeng ");strcpy(jam,"15:00-03:30");harga1[k]=450000;}
else if (kk==4)
{strcpy(nk,"Bangun Karta 66 ");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Surabaya Gubeng ");strcpy(jam,"15:30-04:10");harga1[k]=350000;}
else
{printf ("\n\t\tData Yang Anda Masukan Salah !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
 goto akhir;
  }
 }
 }
else if(kod=='M'||kod=='m')
{
strcpy(jur,"Gambir-Malang");
clrscr();
cout<<"\n\t======================DAFTAR JADWAL KERETA API=========================";
printf("\n\t%s %.f/%.f/%.f  ",jur,tgl,bln,thn);
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|Kode |         Nama         |  Stasiun Awal  |   Kelas   |   Harga   |";
cout<<"\n\t|     |        Kereta        | Stasiun Tujuan |           |   Tiket   |";
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|  1  |     Gajayana 42      |     Gambir     | Eksekutif |  465.000  |";
cout<<"\n\t|     |     16:30-08:15      | Malang Kepanjen|           |           |";
cout<<"\n\t|  2  |     Gajayana 41      |     Gambir     |   Bisnis  |  420.000  | ";
cout<<"\n\t|     |     20:30-12:20      | Malang Kepanjen|           |           |";
cout<<"\n\t|  3  |       Bima 44        |     Gambir     | Eksekutif |  460.000  |";
cout<<"\n\t|     |     17:40-09:06      | Malang Lawang  |           |           |";
cout<<"\n\t|  4  |       Bima 45        |     Gambir     |   Bisnis  |  415.000  |";
cout<<"\n\t|     |     19:45-11:11      | Malang Lawang  |           |           |";
cout<<"\n\t=======================================================================";
cout<<"\n\t\tMasukkan Kode Kereta : ";cin>>kk;
for (k=1;k<=bt;k++)
{
if (kk==1)
{strcpy(nk,"Gajayana 42");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Malang Kepanjen ");strcpy(jam,"16:30-08:15");harga1[k]=465000;}
else if (kk==2)
{strcpy(nk,"Gajayana 41");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Malang Kepanjen ");strcpy(jam,"20:30-12:20");harga1[k]=420000;}
else if (kk==3)
{strcpy(nk,"Bima 44 ");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Malang Lawang ");strcpy(jam,"17:40-09:06");harga1[k]=460000;}
else if (kk==4)
{strcpy(nk,"Bima 45 ");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Malang Lawang ");strcpy(jam,"19:45-11:11");harga1[k]=415000;}
else
{printf ("\n\t\tData Yang Anda Masukan Salah !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
 goto akhir;
  }
  }
  }
else if(kod=='Y'||kod=='y')
{
strcpy(jur,"Gambir-Yogyakarta");
clrscr();
cout<<"\n\t======================DAFTAR JADWAL KERETA API=========================";
printf("\n\t%s %.f/%.f/%.f  ",jur,tgl,bln,thn);
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|Kode |         Nama         |  Stasiun Awal  |   Kelas   |   Harga   |";
cout<<"\n\t|     |        Kereta        | Stasiun Tujuan |           |   Tiket   |";
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|  1  |      Taksaka 52      |     Gambir     | Eksekutif |  300.000  |";
cout<<"\n\t|     |     08:30-16:25      | Tugu Yogyakarta|           |           |";
cout<<"\n\t|  2  |      Taksaka 54      |     Gambir     |   Bisnis  |  260.000  | ";
cout<<"\n\t|     |     20:45-04:15      | Tugu Yogyakarta|           |           |";
cout<<"\n\t|  3  |     Argo Lawu 7      |     Gambir     | Eksekutif |  290.000  |";
cout<<"\n\t|     |     08:57-16:27      | Tugu Yogyakarta|           |           |";
cout<<"\n\t|  4  |     Argo Lawu 8      |     Gambir     |   Bisnis  |  265.000  |";
cout<<"\n\t|     |     20:15-03:48      | Tugu Yogyakarta|           |           |";
cout<<"\n\t=======================================================================";
cout<<"\n\t\tMasukkan Kode Kereta : ";cin>>kk;
for (k=1;k<=bt;k++)
{
if (kk==1)
{strcpy(nk,"Taksaka 52");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Tugu Yogyakarta");strcpy(jam,"08:30-16:25");harga1[k]=300000;}
else if (kk==2)
{strcpy(nk,"Taksaka 54");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Tugu Yogyakarta");strcpy(jam,"20:45-04:15");harga1[k]=260000;}
else if (kk==3)
{strcpy(nk,"Argo Lawu 7");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Tugu Yogyakarta");strcpy(jam,"08:57-16:27");harga1[k]=290000;}
else if (kk==4)
{strcpy(nk,"Argo Lawu 8");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Tugu Yogyakarta");strcpy(jam,"20:15-03:48");harga1[k]=265000;}
else
{printf ("\n\t\tData Yang Anda Masukan Salah !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
 goto akhir;
  }
  }
  }
  else if(kod=='P'||kod=='p')
{
strcpy(jur,"Gambir-Purwokerto");
clrscr();
cout<<"\n\t======================DAFTAR JADWAL KERETA API=========================";
printf("\n\t%s %.f/%.f/%.f  ",jur,tgl,bln,thn);
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|Kode |         Nama         |  Stasiun Awal  |   Kelas   |   Harga   |";
cout<<"\n\t|     |        Kereta        | Stasiun Tujuan |           |   Tiket   |";
cout<<"\n\t-----------------------------------------------------------------------";
cout<<"\n\t|  1  |  Argo Dwipangga 10   |     Gambir     | Eksekutif |  285.000  |";
cout<<"\n\t|     |     08:00-12:56      | Prwokerto (PWT)|           |           |";
cout<<"\n\t|  2  |  Argo Dwipangga 11   |     Gambir     |   Bisnis  |  250.000  | ";
cout<<"\n\t|     |     20:15-01:09      | Prwokerto (PWT)|           |           |";
cout<<"\n\t|  3  |    Purwo Jaya 55     |     Gambir     | Eksekutif |  280.000  |";
cout<<"\n\t|     |     17:40-22:34      | Prwokerto (PWT)|           |           |";
cout<<"\n\t|  4  |    Purwo Jaya 58     |     Gambir     |   Bisnis  |  255.000  |";
cout<<"\n\t|     |     22:05-03:08      | Prwokerto (PWT)|           |           |";
cout<<"\n\t=======================================================================";
cout<<"\n\t\tMasukkan Kode Kereta : ";cin>>kk;
for (k=1;k<=bt;k++)
{
if (kk==1)
{strcpy(nk,"Argo Dwipangga 10" );strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Prwokerto (PWT)");strcpy(jam,"08:00-12:56");harga1[k]=285000;}
else if (kk==2)
{strcpy(nk,"Argo Dwipangga 11 ");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Prwokerto (PWT)");strcpy(jam,"20:15-01:09");harga1[k]=250000;}
else if (kk==3)
{strcpy(nk,"Purwo Jaya 55");strcpy(kls,"Eksekutif");
strcpy(tuj,"Gambir - Prwokerto (PWT)");strcpy(jam,"17:40-22:34");harga1[k]=280000;}
else if (kk==4)
{strcpy(nk,"Purwo Jaya 58");strcpy(kls,"Bisnis");
strcpy(tuj,"Gambir - Prwokerto (PWT)");strcpy(jam,"22:05-03:08");harga1[k]=255000;}
else
{printf ("\n\t\tData Yang Anda Masukan Salah !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
 goto akhir;
  }
  }
  }

clrscr();
cout<<"\t=============================================================================\n";
cout<<"\t ASAL - TUJUAN  : "<<tuj<<endl;
cout<<"\t NAMA KERETA    : "<<nk<<endl;
printf("\t JADWAL         : %.f/%.f/%.f  %s \n",tgl,bln,thn,jam);
cout<<"\t KELAS          : "<<kls<<endl;
cout<<"\t=============================================================================\n";
cout<<"\t* Harga Tiktet Bayi (0-3 Thn)  : 0 (Tidak mendapatkan kursi)\n";
cout<<"\t* Tgl. Lahir Bayi yg mengambil kursi, isi dengan Tgl. Lahir dewasa (Org Tua)\n";
cout<<"\t* Harga Tiket Bayi yg mengambil kursi = Harga Tiket Dewasa \n";
cout<<"\t=============================================================================\n";
for (k=1;k<=bt;k++)
{
cout<<"PENUMPANG KE- "<<k;
cout<<"\n\t\tNama\t\t\t : ";gets(nama[k]);
cout<<"\t\tTgl. Larir (dd mm yyyy)  : ";cin>>tl[k];cin>>bl[k];cin>>thl[k];
cout<<"\t\tNo. HP\t\t\t : ";cin>>kontak[k];
cout<<"\t\tNo.Identitas\t\t : ";cin>>id[k];
}
 clrscr();
cout<<"\n\t  ==========================================================";
cout<<"\n\t             DATA PEMESANAN TIKET KERETA API ";
cout<<"\n\t  ----------------------------------------------------------";
printf("\n\t\tStasiun Asal-Tujuan\t : %s",tuj);
printf("\n\t\tNama Kereta\t\t : %s",nk);
printf("\n\t\tKelas   \t\t : %s",kls);
printf("\n\t\tJadwal Keberangkatan     : %.f/%.f/%.f %s\n",tgl,bln,thn,jam);
cout<<"\t  ==========================================================\n";
  for (k=1;k<=bt;k++)
 {
 if(thl[k]>2014)
 {strcpy(ket,"Bayi");
 harga1[k]=0;
 }
 else
  {strcpy(ket,"Dewasa");}
 cout<<"PENUMPANG KE-"<<k;
 cout<<"\n\t\tNama Penumpang      No.Identitas       No.Kontak  \n\n";
 cout<<"\t\t";
 cout<<setiosflags(ios::left)<<setw(20)<<nama[k];
 cout<<setiosflags(ios::left)<<setw(19)<<id[k];
 cout<<setiosflags(ios::left)<<setw(14)<<kontak[k];
 cout<<"\n\t  ----------------------------------------------------------";
 printf("\n\t\tKeterangan\t\t : %s",ket);
 printf("\n\t\tHarga Tiket\t\t : %.f",harga1[k]);
 cout<<"\n\t  ==========================================================\n";
 tot=tot+harga1[k];
 }

 adm=1*tot/100;
 total=tot+adm;
 printf("\n\t\tJumlah Harga\t\t : %d",tot);
 printf("\n\t\tBiaya  Admin\t\t : %.f",adm);
 printf("\n\t\tTotal Harga\t\t : %.f",total);
 garis1();
 printf("\t\tJumlah Bayar\t\t : ");cin>>bayar;
 kembali=bayar-total;
 printf("\t\tKembali\t\t\t : %.f",kembali);
 cout<<"\n\t  ==========================================================";
 cout<<"\n\t                 Segera lakukan cetak tiket          ";
 cout<<"\n\t                   paling lambat 30 menit          ";
 cout<<"\n\t                Sebelum jadwal keberangkatan       ";
 cout<<"\n\t  ==========================================================";
 cout<<"\n\t\t\tIngin Cetak lagi? [Y/T]  : ";cin>>lagi;

 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;
case strcmp,'B':
case strcmp,'b':
clrscr();
cout<<"\n\t  ======DAFTAR PEMBAYARAN KULIAH BSI=======";
cout<<"\n\t----------------------------------------------";
cout<<"\n\t| KODE  |   NAMA JURUSAN                     |";
cout<<"\n\t----------------------------------------------";
cout<<"\n\t|  A                |   Komputer Akutansi                |";
cout<<"\n\t|  B                |   Manejemen Bahasa Asing           |";
cout<<"\n\t|  M               |   Manejemen Informatika            |";
cout<<"\n\t|  T                 |   Teknik Komputer                  |";
cout<<"\n\t----------------------------------------------";
cout<<"\n\n\t\tNama Mahasiswa\t : ";gets(nama[0]);
cout<<"\t\tNIM     \t : ";cin>>nim;
if(nim>99999999||nim<=9999999)
{printf ("\n\t\tNIM Tidak Terdaftar !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;
  }
cout<<"\t\tKode Jurusan\t : ";cin>>kod;
cout<<"\t\tSemester\t : ";cin>>smt;
if(smt==1)
{printf ("\n\t\tAnda Sudah Tidak Memiliki Tagihan Untuk Semester ini !!!");
 cout<<"\n\t\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;
  }

clrscr();
if (kod=='A'||kod=='a')
 {strcpy(nj,"Komputer Akuntansi");
if (smt==2)
 harga=2800000;
 else if (smt==3)
 harga=2600000;
 else
 harga=2400000;
  }
else if (kod=='B'||kod=='b')
 {
 strcpy(nj,"Manajemen Bahasa Asing ");
if (smt==2)
 harga=2900000;
 else if (smt==3)
 harga=2750000;
  else
  harga=2500000;
  }
else if (kod=='M'||kod=='m')
 {
 strcpy(nj,"Manajemen Informatika");
if (smt==2)
 harga=2750000;
 else if (smt==3)
 harga=2500000;
  else
  harga=2450000;
  }
else if (kod=='T'||kod=='t')
 {
 strcpy(nj,"Teknik Komputer");
if (smt==2)
 harga=2700000;
 else if (smt==3)
 harga=2650000;
  else
  harga=2400000;
  }

 else
 {printf ("\n\t\tKode Salah !!!");
 cout<<"\n\t\tIngin Cetak lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;
  }
 clrscr();
 adm=0.2/100*harga;
 total=harga+adm;
 cout<<"\n\t Bukti Pembayaran Kuliah Bina Sarana Informatika";
 cout<<"\n\t+++++++++++++++++++++++++++++++++++++++++++++++++++";
 printf("\n\n\t\tNama \t\t : %s",nama[0]);
 printf("\n\t\tNIM\t\t : %i",nim);
 printf("\n\t\tJurusan\t\t : %s",nj);
 printf("\n\t\tSemeter\t\t : %d",smt);
 printf("\n\t\tBiaya kuliah\t : %.f",harga);
 cout<<"\n\t\tBiaya Admin\t : "<<adm;
 cout<<"\n\t--------------------------------------------------";
 printf("\n\t\tTotal Biaya\t : %.f ",total);
 cout<<"\n\t--------------------------------------------------";
 printf("\n\t\tJumlah Bayar\t : ");cin>>bayar;
  kembali=(bayar-total);
 printf("\t\tKembali\t         : %.f ",kembali);
 cout<<"\n\t===================================================";
 cout<<"\n\t+++++ Simpan struk ini untuk bukti transaksi ++++++";
 cout<<"\n\t+++++++++++++++++++++++++++++++++++++++++++++++++++";
 cout<<"\n\tApakah anda ingin melakukan transaksi lagi ? [Y/T] : ";cin>>lagi;

 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;

case strcmp,'U':
case strcmp,'u':
clrscr();
cout<<"\n\t============== PENGIRIMAN UANG ===============";
cout<<"\n\t========= Masukkan Data Pengiriman ===========";
cout<<"\n\n\tNama Pengirim\t\t : ";gets(nama[0]);
cout<<"\tNo. Identitas/KTP\t : ";cin>>id[0];
cout<<"\tNo. Kontak\t\t : ";cin>>kontak[0];
cout<<"\t------------------------------------------------";
cout<<"\n\tNama Penerima\t  : ";gets(nama[1]);
cout<<"\tNo. Identitas/KTP : ";cin>>id[1];
cout<<"\tNo. Kontak\t  : ";cin>>kontak[1];
cout<<"\tAlamat\t\t  : ";gets(alamat);
cout<<"\tJumlah Uang \t  : ";cin>>uang;
if (uang>6000000)
{printf ("\n\tJumlah Uang Melebihi Batas Pengiriman !!!");
 cout<<"\n\tApakah anda ingin melakukan transaksi  lagi? [Y/T] : ";cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  goto awal;
 else
  goto akhir;
  }

clrscr();
if(uang>1000000)
adm=25000;
else
adm=15000;
cout<<"\n\t=========================================================";
cout<<"\n\t           Bukti Transaksi Pengiriman Uang";
cout<<"\n\t=========================================================";
cout<<"\n\tNama                     No.                 No.  ";
cout<<"\n\tPengirm                  Identitas/KTP       Kontak  \n\n";
cout<<"\t"<<setiosflags(ios::left)<<setw(25)<<nama[0];
cout<<setiosflags(ios::left)<<setw(20)<<id[0];
cout<<setiosflags(ios::left)<<setw(15)<<kontak[0];
cout<<"\n\t---------------------------------------------------------\n";
cout<<"\n\t\tNama Penerima\t\t : "<<nama[1];
cout<<"\n\t\tNo. Identitas/KTP\t : "<<id[1];
cout<<"\n\t\tNo. Kontak\t         : "<<kontak[1];
cout<<"\n\t\tAlamat\t\t\t : "<<alamat;
cout<<"\n\t\t------------------------------------------";
cout<<"\n\t\tJumlah Uang \t         : "<<uang;
cout<<"\n\t\t------------------------------------------";
cout<<"\n\t\tBiaya Pengiriman\t : "<<adm;
tot=(uang+adm);
cout<<"\n\t\tTotal\t\t         : "<<tot;
cout<<"\n\t\tTunai\t\t\t : ";cin>>bayar;
kembali=bayar-tot;
cout<<"\t\tKembali\t\t\t : "<<kembali;
cout<<"\n\t=========================================================";
cout<<"\n\tPenerima dapat mengambil uang kiriman di Capmart terdekat";
cout<<"\n\t     dengan membawa kartu identitas sesuai data pemesanan";
cout<<"\n\t=========================================================";
cout<<"\n\t        Simpan struk ini sebagai bukti transaksi";
cout<<"\n\t*********************************************************";
cout<<"\n\tIngin melakukan transaksi lagi ? [Y/T] : ";cin>>lagi;
if(lagi=='Y'||lagi=='y')
goto awal;
else
goto akhir;
 default:
 printf ("\n\t\tKode Salah !!!");
 cout<<"\n\t\tIngin Melakukan Transaksi Lagi? [Y/T] : ";
 cin>>lagi;
 if (lagi=='Y'||lagi=='y')
  {goto awal;  }
 else
 { goto akhir; }
  }
 akhir :
 printf("\n\t\t\tTerima Kasih");
 getch();
}



























BAB IV
PENUTUP
4.1    Kesimpulan
Pembuatan program e-Trans diyakini mampu meningkatkan efisiensi kerja dan waktu sehingga dapat memuaskan baik pihak manajemen toko maupun pihak konsumen.

4.2    Kritik dan Saran
Penulis menyadari masih banyak kekurangan dalam makalah ini. Oleh karenanya, masukan dari Ibu Dewi Laraswati selaku pembimbing dan rekan rekan mahasiswa kami harapkan, guna perbaikan makalah dan karya tulis dikemudian hari.




















DAFTAR PUSTAKA

         Utama, Didit N & Widayanti, Riya, “Algoritma dan Pemrograman dengan Borland C++”, Graha Ilmu – Yogyakarta, 2005

         Tim Penyusun Komisi MI, “Modul Praktikum Pemrograman C++”, Akademi Manajemen Informatika dan Komputer BSI – Depok, 2017