laporan program ka

27
Program Pengolahan Pemesanan Tiket KA Algoritma & Struktur Data II Ai Hayati 10507451 Andri Kurnaedi 10507454 Arif Noor Iman 10507457 Feri Faisal M 10507430 Heru Novriyendra 10507444 Susi Warnengsih 10507459 Teknik & Ilmu Komputer Manajemen Informatika MI-10 2007 Turbo C

Upload: andri-kurnaedi

Post on 11-Jun-2015

426 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Laporan Program KA

Program Pengolahan Pemesanan Tiket KAAlgoritma & Struktur Data II

Ai Hayati 10507451Andri Kurnaedi 10507454Arif Noor Iman 10507457Feri Faisal M 10507430Heru Novriyendra 10507444Susi Warnengsih 10507459

Teknik & Ilmu KomputerManajemen InformatikaMI-102007

Turbo C

Page 2: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

PENGOLAHAN PEMESANAN TIKET KERETA API

Permasalahan Percaloan tiket Kereta Api

Batasan / Asumsi Masalah Pencaloan yang dilakukan oleh oknum Luar / Pembeli Pembeli hanya bisa di pesan sejak H-5 Hanya untuk KA Argo Gede dan Prahyangan Hanya untuk kelas Eksekutif dan Bisnis Jurusan hanya antara Bandung - Gambir

Solusi Masalah Pembeli hanya bisa membeli tiket sebanyak 4 buah pembelian Pembelian Selanjutnya tak bisa jika :

No .KTP telah terdaftar untuk tiket dengan tujuan dan tanggal pemberangkatan belum lewat tanggal pemesanan kedua

Apabila ada kesalahan pemesanan tiket dapat diubah tanggal keberangkatannya, baik tanggal maupun jamnya

Tutorial Program Pengolahan Tiket KA

Gambar tampilan awal program

Ini adalah tampilan utama dari program KA. Apabila ada menekan salah satu tombol pada

keyboard, maka akan muncul tampilan menu dibawah ini.

Page 3: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar menu utama

Jika anda memilih menu nomor 1, maka tampilannya sebagai berikut :

Gambar sub menu 1

Ini adalah menu persyaratan angkutan penumpang, apabila anda menekan angka 1, maka

tampilan sebagai berikut :

Page 4: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar sub menu 1-1

Ini merupakan tampilan tarif angkutan penumpang. Bila tekan enter akan kembali ke sub menu 1.

Apabila anda menekan tombol angka 2, maka menu sebagai berikut :

Gambar sub menu 1-2

Ini tampilan menu pembatalan karcis pesanan. Bila anda tekan enter maka akn kembali ke sub

menu 1. Apabila anda memilih 3 maka tampilan sebagai berikut :

Page 5: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar sub menu 1-3

Ini adalah tampilan menu perubahan jam keberangkatan. Bila anda tekan enter maka akan

kembali ke sub menu 1. Bila anda memilih 4 maka akan kembali ke menu utama.

Pada menu utama, apabila anda memilih angka 2, maka tampilan sebagai berikut :

Gambar sub menu 2

Ini adalah menu jadwal keberangkatan. Bila tekan 1 maka tampilan sebagai berikut :

Page 6: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar sub menu 2-1

Ini adalah tampilan jadwal KA Argo Gede. Bila tekan enter maka kembali ke sub menu 2.

Pada sub menu 2, apabila menekan tombol 2, maka tampilan sebagai berikut :

Gambar sub menu 2-2

Ini adalah tampilan Jadwal KA Parahyangan. Bila tekan enter maka kembali ke sub menu 2.

Pada sub menu 2, apabila menekan tombol 3, maka akan kembali ke menu utama.

Apabila anda menekan tobol 3, maka tampilan seperti dibawah ini :

Page 7: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar sub menu 3

Ini adalah tampilan data penumpang yang sudah diinputkan. Untuk Jurusan dan Kelas, tidak akan

dapat diinputkan kecuali sesuai dengan pilihan yang ada. Apabila tekan Y, maka akan tambah

data, apabila tekan N maka kembali ke menu utama.

Apabila di menu utama menekan angka 4 maka akan muncul tampilan sebagai berikut :

Gambar sub menu 4

Ini adalah tampilan perubahan jam/tanggal keberangkatan yang sudah diinputkan sesuai dengan

data (no. KTP) yang sebelumnya sudah diinputkan. Apabila tekan enter maka tampilan sebagai

berikut :

Page 8: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar sub menu 4-1

Ini adalah tampilan info penumpang setelah mengganti tanggal keberangkatan dan waktu

keberangkatan. Dengan merubah tanggal dan waktu keberangkatan maka biaya pembayaran

sesuai yang telah ditentukan.

Bila anda menekan enter maka akan kembali ke menu utama. Apabila di menu utama anda

menekan 5, maka tampilan sebagai berikut :

Gambar sub menu 5

Ini adalah tampilan info penumpang. Bila anda menekan Y, maka tampilan sebagai berikut :

Page 9: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Gambar info penumpang

Ini adalah tampilan menu info penumpang yang telah diinputkan sebelumnya.

Bila pada tampilan sub menu 5 menekan tombol T, maka tampilan sebagai berikut :

Gambar sub menu 5

Ini adalah gambar sub menu 5 bila ditekan T. Ini digunakan untuk melihat data penumpang sesuai

No.KTP yang diinginkan. Bila tidak sesuai dengan No.KTP, maka akan tampil keterangan ”File Tidak

Ditemukan”.

Terakhir menu pilihan 6 adalah keluar dari aplikasi ini..

Page 10: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

Page 11: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

#include<stdio.h>#include<conio.h>#include<ctype.h>#include<graphics.h>#include<dos.h>#include<alloc.h>#include<string.h>#include<stdlib.h>//===============#ifdef __cplusplus int max (int value1, int value2); int max (int value1, int value2) {return ( (value1 > value2) ? value1 : value2);}#endif//===============void suara();void tarif_angkutan_penumpang();void pembatalan_karcis();void perubahan_jam();void fpilih(int x,int y,char z);void parahyangan();void argo();buat_senarai_data();float ambil_tiket();float bayar();urutkan();tampilkan();pencarian();edit();//===============char pilih,tanya,data_cari[20];int i,j,index_ambil,tiket_diambil,ketemu;float a;//===============static char menu[][50]= {" Menu Aplikasi"," ", " 1. Persyaratan Angkutan Penumpang", " 2. Jadwal Keberangkatan", " 3. Pembelian Tiket", " 4. Perubahan Tiket", " 5. Info Penumpang", " 6. Keluar"};//===============struct time waktu;struct date tgl;//===============struct tkt{ float no; struct tkt *next;};struct tkt *tiket[5]={NULL,NULL,NULL,NULL,NULL};//===============struct dat{ char nama[25],jur[8],kls[10],jam[5],ktp[20]; int umur,tgl,n_tiket,hke; float notiket[5],byr; struct dat *next;};struct dat *data=NULL,*tambah=NULL,*bantu=NULL;

Page 12: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

//===========================================================================main(){clrscr();

printf("\n Selamat Datang\n");puts(" Di Aplikasi");puts(" Pengolahan Tiket KA");printf("\n\n Press Anykey");//========inisialisasi tiket===========struct tkt *baru=NULL;

for(i=0;i<5;i++){ for(a=240;a>0;a--) { baru = (struct tkt *) malloc(sizeof(struct tkt)); baru->no=a; baru->next=NULL; if (tiket[i]==NULL) tiket[i]=baru; else { baru->next=tiket[i]; tiket[i]=baru; } }}getch();suara();

do{//========menu utama=================== clrscr(); puts(" "); for (i=0;i<8;i++) printf("%s\n",menu[i]); fpilih(67,11,'6');//========sub menu 1=================== if (pilih=='1') { do{ clrscr(); gotoxy(2,2);cputs("Persyaratan Angkutan Penumpang"); gotoxy(5,5);cputs("1. Tarif Angkutan Penumpang"); gotoxy(5,6);cputs("2. Pembatalan Karcis Pesanan & Pengambilan Bea"); gotoxy(5,7);cputs("3. Perubahan Jam/Tgl Keberangkatan"); gotoxy(5,8);cputs("4. Kembali"); fpilih(67,11,'4');

if (pilih=='1') tarif_angkutan_penumpang(); else if (pilih=='2') pembatalan_karcis(); else if (pilih=='3') perubahan_jam(); else break; }while(kbhit); }//========sub menu 2=================== else if (pilih=='2') { do{

Page 13: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

clrscr(); gotoxy(2,2);cputs("Jadwal Keberangkatan"); gotoxy(5,5);cputs("1. Argo Gede"); gotoxy(5,6);cputs("2. Parahyangan"); gotoxy(5,7);cputs("3. Kembali"); fpilih(67,10,'3'); if (pilih=='1') argo(); else if (pilih=='2') parahyangan(); else break; }while(kbhit); }//========sub menu 3=================== else if (pilih=='3') { tambah = (struct dat *) malloc(sizeof(struct dat));

buat_senarai_data();// urutkan(); }//========sub menu 4=================== else if (pilih=='4') { clrscr(); printf("\n Perubahan Jam/Tgl Keberangkatan\n"); puts(" ______________"); printf("\n\n No. KTP : ");gets(data_cari); pencarian(); edit(); }//========sub menu 5=================== else if (pilih=='5') { clrscr(); printf("\n Info Penumpang\n"); puts(" ______________"); do { gotoxy(2,5);delline(); cputs("Tampilkan Semua Data Penumpang [y/t] : ");pilih=getche(); }while(!((tolower(pilih)=='y')||(tolower(pilih)=='t')));

if(tolower(pilih!='y')) { printf("\n\n No. KTP : ");gets(data_cari); pencarian(); tampilkan(); } else { bantu=data; if(bantu!=NULL) while(bantu!=NULL) { ketemu=1; tampilkan(); bantu=bantu->next; } else { ketemu=0; tampilkan();

Page 14: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

} } }//========keluar======================= else if (pilih=='6') break;

}while(kbhit); return 0;}//===========================================================================void suara(){ sound(440); delay(100); nosound();}//============================================================================void fpilih(int x,int y,char z){ gettime(&waktu); gotoxy(x,2); cprintf("%2d:%2d:%2d",waktu.ti_hour,waktu.ti_min,waktu.ti_sec); getdate(&tgl); gotoxy(x,3); cprintf("%d-%d-%d",tgl.da_day,tgl.da_mon,tgl.da_year); do{ gotoxy(x,y);delline(); cputs("Pilih : ");pilih=getch(); }while(!(isdigit(pilih)!=0)||(pilih>z)); suara();}//===========================================================================void tarif_angkutan_penumpang(){clrscr();

printf("\n Tarif Angkutan Penumpang\n");puts(" 1. Usia kurang dari 3 tahun tidak mengambil tempat untuk duduk sendiri");puts(" untuk kelas bisnis bebas biaya tarif, sedangkan kelas eksekutif");printf(" dikenakan 10% dari tarif murni dewasa\n\n");

puts(" 2. Usia kurang dari 3 tahun mengambil untuk duduk sendiri");puts(" untuk kelas bisnis dikenakan tarif anak/reduksi C");printf(" sedangkan untuk kelas eksekutif dikenakan tarif dewasa\n\n");

puts(" 3. Usia 3-10 tahun untuk kelas bisnis dikenakan tarif anak/reduksi");

printf(" sedangkan untuk kelas eksekutif dikenakan tarif dewasa\n\n");

puts(" 4. Usia > 10 tahun dikenakan tarif dewasa untuk semua kelas");

Page 15: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

printf("\n 5. Tidak memiliki karcis dikenakan 2X tarif berlaku");getch();suara();}//===========================================================================void pembatalan_karcis(){clrscr();

printf("\n Pembatalan karcis pesanan dan pengambilan bea\n");puts(" 1. Setiap pembatalan bea pesanan dan pengantaran tidak dikembalikan");

printf("\n 2. Sampai 1 hari sebelum pemberangkatan KA bea dikembalikan 75%\n");

puts(" 3. Pada hari keberangkatan sampai 3 jam sebelum KA berangkat bea");puts(" dikembalikan 50%");

printf("\n 4. Kurang dari 3 jam sampai KA berangkat atau karcis pembelian langsung\n");puts(" (tanpa melalui pesanan) atau penumpang terlambat (ketinggalan KA)");puts(" tidak ada pengembalian bea (hangus)");

printf("\n 5. Pembatalan karena tidak terselenggaranya angkutan di stasiun awal\n");cputs(" bea dikembalikan penuh");getch();suara();}//===========================================================================void perubahan_jam(){clrscr();printf("\n Perubahan Jam/Tanggal Keberangkatan\n\n");puts(" Pemesanan boleh dilakukan 1X selambat-lambatnya h-5 hingga h-1");puts(" dengan biaya administrasi sebagai berikut:");

printf("\n * 10.000,- untuk kelas eksekutif\n");cputs(" * 6.000,- untuk kelas bisnis");getch();suara();}//===========================================================================void parahyangan(){clrscr();printf("\n Jadwal KA Parahyangan\n\n");

Page 16: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

puts(" ÚÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿");puts(" ³ ³ ³Bandung³ Cimahi ³ Bekasi ³JatiNegara ³Gambir³ ³");puts(" ³No.³ KA ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÄ´ Katerangan ³");puts(" ³ ³ ³ Br ³ Br ³ Da ³ Br ³ Da ³ Br ³ Da ³ Da ³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 1 ³KA 51³ 04.00 ³ Ls ³ Ls ³06.33³06.35³06.49³06.51³ 07.01³stlh libur ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 2 ³KA 53³ 05.00 ³ LS ³ Ls ³07.36³07.38³07.53³07.55³ 08.05³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 3 ³KA 55³ 06.35 ³ Ls ³ Ls ³09.16³09.18³09.33³19.33³ 09.45³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 4 ³KA 57³ 08.45 ³08.55³08.57³11.24³11.26³11.41³11.43³ 11.53³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 5 ³KA 59³ 12.45 ³12.55³12.57³15.28³15.30³15.44³15.46³ 15.56³Cimahi Stop ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 6 ³KA 61³ 17.05 ³17.15³17.17³19.40³19.42³19.56³19.58³ 20.08³Cimahi Stop ³");puts(" ÃÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 7 ³KA 63³ 19.15 ³ Ls ³ Ls ³21.55³21.57³22.12³22.14³ 22.24³Kpn diprlkan³");cputs(" ÀÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÙ");getch();suara();}//===========================================================================void argo(){clrscr();printf("\n Jadwal KA Argo Gede\n\n");

puts(" ÚÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");

Page 17: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

puts(" ³ ³ ³Bandung³ Bekasi ³Jatinegara ³Gambir³ ³");puts(" ³No.³ KA ÃÄÄÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÂÄÄÄÄÄÅÄÄÄÄÄÄ´ Keterangan ³");puts(" ³ ³ ³ Br ³ Br ³ Da ³ Br ³ Da ³ Da ³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 1 ³KA 15 ³ 06.00 ³08.24³08.26³08.40³08.42³ 08.52³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 2 ³KA 17 ³ 07.35 ³09.59³10.01³10.14³10.16³ 10.26³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 3 ³KA 19 ³ 10.30 ³12.58³13.00³13.15³13.17³ 13.27³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 4 ³KA 21 ³ 14.30 ³16.56³16.58³17.12³17.14³ 17.24³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 5 ³KA 23 ³ 16.15 ³18.42³18.44³18.58³19.00³ 19.10³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 6 ³KA 25 ³ 18.30 ³21.02³21.04³21.18³21.20³ 21.31³ ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 7 ³KA 7029³ 09.30 ³11.51³11.53³12.04³12.06³ 12.15³ Hari Minggu ³");puts(" ÃÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄ´");puts(" ³ 8 ³KA 7013³ 07.00 ³09.22³09.24³19.36³19.38³ 09.47³ Hari Senin ³");puts(" ÀÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÙ");getch();suara();}//===========================================================================float ambil_tiket(){ struct tkt *ambil; ambil = (struct tkt *) malloc(sizeof(struct tkt)); a=tiket[index_ambil]->no;

if (tiket[index_ambil]->next==NULL) { free(tiket[index_ambil]); tiket[index_ambil]=NULL; } else { ambil=tiket[index_ambil]; tiket[index_ambil]=tiket[index_ambil]->next;

Page 18: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

free(ambil); } return (a);}//===========================================================================float bayar(){ float a; if ((tambah->umur>3)&&(tambah->umur<10)) { if (strcmp(strlwr(tambah->kls),"bisnis")==0) a=float(tambah->n_tiket*15000); else a=float(tambah->n_tiket*65000); } else if(tambah->umur>10) { if (strcmp(strlwr(tambah->kls),"bisnis")==0) a=float(tambah->n_tiket*45000); else a=float(tambah->n_tiket*65000); }return(a);}//===========================================================================buat_senarai_data(){ do{ tambah = (struct dat *) malloc(sizeof(struct dat)); for(i=0;i<25;i++) tambah->nama[i]=NULL; clrscr();

printf("\n Data Penumpang\n"); puts(" ______________");

printf("\n Nama : ");gets(tambah->nama); cputs(" No. KTP : ");gets(tambah->ktp); cputs(" Umur : ");scanf("%d",&tambah->umur);fflush(stdin); gotoxy(36,7);puts("Tahun");

do{ gotoxy(2,8);delline(); cputs(" Jurusan [Bandung/Jakarta] : ");gets(tambah->jur); }while((strcmp(strlwr(tambah->jur),"bandung")!=0)&&(strcmp(strlwr(tambah->jur),"jakarta")!=0));

do{ gotoxy(2,9);delline(); cputs(" Kelas [Eksekutif/Bisnis] : ");gets(tambah->kls); }while((strcmp(strlwr(tambah->kls),"eksekutif")!=0)&&(strcmp(strlwr(tambah->kls),"bisnis")!=0));

cprintf(" Tgl Sekarang : %d-%d-%d",tgl.da_day,tgl.da_mon,tgl.da_year);

do{ gotoxy(2,12);delline(); gotoxy(2,11);delline();

Page 19: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

cputs(" Tgl Keberangkatan [max h-4]: ");scanf("%d",&tambah->tgl);fflush(stdin); gotoxy(35,11);cprintf("-%d-%d",tgl.da_mon,tgl.da_year); tambah->hke=(tambah->tgl-tgl.da_day); gotoxy(2,12);delline(); cputs(" H-ke : ");printf("h-%d\n",tambah->hke); }while((tambah->hke<0)||(tambah->hke>4)); index_ambil=tambah->hke;

if(tiket[index_ambil]!=NULL) { for (j=0;j<5;j++) tambah->jam[j]=NULL; for (j=0;j<5;j++) { do{ gotoxy(2,13);delline(); cputs(" Waktu Keberangkatan : "); for (i=0;i<5;i++) { if (tambah->jam[i]!=NULL) printf("%c",tambah->jam[i]); else break; } gotoxy(33+j,13); if (j!=2)tambah->jam[j]=getche(); else {tambah->jam[j]='.';break;} }while((isdigit(tambah->jam[j])==0)); }

do{ gotoxy(2,14);delline(); cputs(" Jumlah Tiket [max 4] : ");scanf("%d",&tambah->n_tiket);fflush(stdin); }while(tambah->n_tiket>4);

cputs(" No. Tiket : "); for(i=0;i<(tambah->n_tiket);i++) { tambah->notiket[i]=ambil_tiket(); printf("| no.%.0f |",tambah->notiket[i]); }

tambah->byr=bayar(); printf("\n Bayar : ");printf("Rp %.0f",tambah->byr); } else printf("\n\n\nTiket H-%d Habis",tambah->hke);

tambah->next=NULL;

if (data==NULL) data=tambah; else { tambah->next=data; data=tambah; }

do{ gotoxy(2,18);delline(); cputs("Tambah Data [Y/N]");tanya=getch();

Page 20: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

}while(!((toupper(tanya)=='Y')||(toupper(tanya)=='N')));

}while(toupper(tanya)=='Y'); return 0;}//===========================================================================urutkan(){ struct dat *bantu1=NULL,*bantu2=NULL,*index=NULL; char t_nama[25],t_jur[8],t_kls[10],t_jam[5],t_ktp[20]; int t_umur,t_tgl,t_n_tiket,t_hke; float t_notiket[4],t_byr;

if(data!=NULL) { bantu1=data; while(bantu1->next!=NULL) { bantu2=bantu1; index=bantu1; bantu2=bantu2->next; while(bantu2!=NULL) { for (i=0;i<max(strlen(bantu2->nama),strlen(index->nama));i++) if (int(tolower(bantu2->nama[i]))<=int(tolower(index->nama[i]))) { index=bantu2; break; } bantu2=bantu2->next; }

strcpy(t_nama,bantu1->nama); strcpy(bantu1->nama,index->nama); strcpy(index->nama,t_nama);

strcpy(t_ktp,bantu1->ktp); strcpy(bantu1->ktp,index->ktp); strcpy(index->ktp,t_ktp);

strcpy(t_jur,bantu1->jur); strcpy(bantu1->jur,index->jur); strcpy(index->jur,t_jur);

strcpy(t_kls,bantu1->kls); strcpy(bantu1->kls,index->kls); strcpy(index->kls,t_kls);

t_umur=bantu1->umur; bantu1->umur=index->umur; index->umur=t_umur; t_tgl=bantu1->tgl;bantu1->tgl=index->tgl;index->tgl=t_tgl;

for(j=0;j<4;j++) { t_jam[j]=bantu1->jam[j]; bantu1->jam[j]=index->jam[j]; index->jam[j]=t_jam[j]; }

Page 21: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

t_n_tiket=bantu1->n_tiket; bantu1->n_tiket=index->n_tiket; index->n_tiket=t_n_tiket;

t_hke=bantu1->hke; bantu1->hke=index->hke; index->hke=t_hke;

t_byr=bantu1->byr; bantu1->byr=index->byr; index->byr=t_byr;

for(j=0;j<4;j++) { t_notiket[j]=bantu1->notiket[j]; bantu1->notiket[j]=index->notiket[j]; index->notiket[j]=t_notiket[j];

} bantu1=bantu1->next; }} return 0;}//===========================================================================pencarian(){struct dat *p;

if(data!=NULL){ ketemu=0; p=data;

while((p!=NULL)&&(ketemu==0)) { if(strcmp(strlwr(p->ktp),strlwr(data_cari))==0) { ketemu=1; bantu=p; } else p=p->next; }}return 0;}//===========================================================================tampilkan(){ clrscr();

printf("\n Info Penumpang\n"); puts(" ______________");

if (ketemu) {

Page 22: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

printf("_____________________________________________________________\n"); printf("\n Nama : ");printf("%s\n",bantu->nama); cputs(" No. KTP : ");printf("%s\n",bantu->ktp); cputs(" Umur : ");printf("%d Tahun\n",bantu->umur); cputs(" Jurusan [Bandung/Jakarta] : ");printf("%s\n",bantu->jur); cputs(" Kelas [Eksekutif/Bisnis] : ");printf("%s\n",bantu->kls); cprintf(" Tgl Sekarang : %d-%d-%d",tgl.da_day,tgl.da_mon,tgl.da_year); printf("\n Tgl Keberangkatan [max h-5]: ");printf("%d-%d-%d\n",bantu->tgl,tgl.da_mon,tgl.da_year); cputs(" H-ke : ");printf("h-%d\n",bantu->hke); cputs(" Waktu Keberangkatan : "); for (i=0;i<5;i++) { if (i!=2) printf("%c",bantu->jam[i]); else cputs("."); } printf("\n Jumlah Tiket [max 4] : ");printf("%d\n",bantu->n_tiket); cputs(" No. Tiket : "); for (i=0;i<bantu->n_tiket;i++) printf("| no.%3.0f | ",bantu->notiket[i]); printf("\n\n Bayar : ");printf("Rp %.0f\n",bantu->byr); printf("_____________________________________________________________\n"); } else printf("\n\n File Tidak Di Temukan");

getch();return 0;}//===========================================================================edit(){ clrscr();

printf("\n Info Penumpang\n"); puts(" ______________");

if (ketemu) { printf("_____________________________________________________________\n"); printf("\n Nama : ");printf("%s\n",bantu->nama); cputs(" No. KTP : ");printf("%s\n",bantu->ktp); cputs(" Umur : ");printf("%d Tahun\n",bantu->umur); cputs(" Jurusan [Bandung/Jakarta] : ");printf("%s\n",bantu->jur); cputs(" Kelas [Eksekutif/Bisnis] : ");printf("%s\n",bantu->kls); cprintf(" Tgl Sekarang : %d-%d-%d",tgl.da_day,tgl.da_mon,tgl.da_year);

do{ gotoxy(2,13);delline(); gotoxy(2,12);delline();

Page 23: Laporan Program KA

2008

1

Program Pengolahan Pemesanan Tiket KA

cputs(" Tgl Keberangkatan [max h-4]: ");scanf("%d",&bantu->tgl);fflush(stdin); gotoxy(35,11);cprintf("-%d-%d",tgl.da_mon,tgl.da_year); bantu->hke=(bantu->tgl-tgl.da_day); gotoxy(2,13);delline(); cputs(" H-ke : ");printf("h-%d\n",bantu->hke); }while((bantu->hke<0)||(bantu->hke>4)); index_ambil=bantu->hke;

if(tiket[index_ambil]!=NULL) { for (j=0;j<5;j++) tambah->jam[j]=NULL; for (j=0;j<5;j++) { do{ gotoxy(2,14);delline(); cputs(" Waktu Keberangkatan : "); for (i=0;i<5;i++) { if (bantu->jam[i]!=NULL) printf("%c",bantu->jam[i]); else break; } gotoxy(33+j,14); if (j!=2)bantu->jam[j]=getche(); else { bantu->jam[j]='.'; break; } }while((isdigit(bantu->jam[j])==0)); }

printf("\n Jumlah Tiket [max 4] : ");printf("%d\n",bantu->n_tiket);

if (strcmp(strlwr(bantu->kls),"eksekutif")==0) bantu->byr+=(bantu->n_tiket*10000); else bantu->byr+=(bantu->n_tiket*6000);

cputs(" No. Tiket : "); for (i=0;i<bantu->n_tiket;i++) printf("| no.%3.0f | ",bantu->notiket[i]); printf("\n\n Bayar : ");printf("Rp %.0f\n",bantu->byr); printf("_____________________________________________________________\n"); } } else printf("\n\n File Tidak Di Temukan");

getch();return 0;}//===========================================================================