Dickys11

Tubes

Apr 2nd, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 10.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <conio.h>
  5.  
  6. struct{
  7.     char nama[15];
  8.     char pass[15];
  9. }data[100],login,regi,admin;
  10.  
  11. struct bus{
  12.     char asal[20];
  13.     char tujuan[20];
  14.     int harga,kursi;
  15. }jadwal[100],input,display,sorting[100],sortingtemp;;
  16.  
  17.  
  18. FILE *Userdata;
  19. FILE *FileJadwal;
  20.  
  21. void bersih();
  22. void regis();
  23. void masuk(int *m);
  24. int masukadmin(char nama[20],char pass[20]);
  25. void InputJadwal();
  26. void DisplayJadwal();
  27. void DisplayJadwalUser(int *pil,int PilihJadwal);
  28. void BeliTiket();
  29. void JadwalSortingAsalTerbesar();
  30. void JadwalNormal();
  31.  
  32. int main()
  33. {
  34.     int pilihan,sukses,z=0,StatusAdmin,piljadwal=0;
  35.     char c;
  36.     MenuAwal:
  37.         bersih();
  38.         printf("\t\t=================\n");
  39.         printf("\t\t*    PITIBUS    *\n");
  40.         printf("\t\t=================\n");
  41.         printf("\n");
  42.         printf("1. Login\n");
  43.         printf("2. Register\n");
  44.         printf("3. Login As Admin\n");
  45.         printf("4. Exit\n");
  46.         printf("\nMasukkan pilihan Anda: ");
  47.     scanf("%d",&pilihan);
  48.     bersih();
  49.     switch(pilihan){
  50.     case 1:
  51.         Login:
  52.         masuk(&sukses);
  53.         if(sukses==1)
  54.             goto MainMenu;
  55.         else{
  56.             printf("\n---------------------------------------------\n");
  57.             printf("\tUSERNAME ATAU PASSWORD SALAH\n");
  58.             printf("\tTEKAN Y UNTUK LOGIN KEMBALI\n");
  59.             printf("\tTEKAN ENTER UNTUK KEMBALI KE MENU UTAMA\n");
  60.             if((getch()=='y')||(getch()=='Y'))
  61.                 goto Login;
  62.             else goto MenuAwal;
  63.         }
  64.         break;
  65.     case 2:
  66.         regis();
  67.         goto MenuAwal;
  68.         break;
  69.     case 3:
  70.         AdminLogin:
  71.         bersih();
  72.         printf("\t\t====================\n");
  73.         printf("\t\t*    LOGIN ADMIN   *\n");
  74.         printf("\t\t====================\n");
  75.         printf("\n\n");
  76.         printf("MASUKKAN USERNAME: ");
  77.         fflush(stdin);
  78.         gets(admin.nama);
  79.         printf("MASUKKAN PASSWORD: ");
  80.         while((c=getch())!=13){
  81.             admin.pass[z++]=c;
  82.             printf("%c",'*');
  83.         }
  84.         admin.pass[z]='\0';
  85.         StatusAdmin=masukadmin(admin.nama,admin.pass);
  86.         if(StatusAdmin==1){
  87.             StatusAdmin=0;
  88.             printf("\n------------------------------\n");
  89.             printf("\tSELAMAT DATANG ADMIN\n");
  90.             admin.pass[0]='\n';
  91.             z=0;
  92.             system("pause");
  93.             goto MenuAdmin;
  94.         }else{
  95.             printf("\n------------------------------\n");
  96.             printf("\tUSERNAME ATAU PASSWORD SALAH\n");
  97.             printf("\tTEKAN Y UNTUK LOGIN KEMBALI\n");
  98.             printf("\tTEKAN ENTER UNTUK KEMBALI KE MENU UTAMA\n");
  99.             if((getch()=='y')||(getch()=='Y'))
  100.                 goto AdminLogin;
  101.             else goto MenuAwal;
  102.         }
  103.     case 4:
  104.         return 0;
  105.         break;
  106.     }
  107.     MainMenu:
  108.         bersih();
  109.         printf("\tJASA PELAYANAN BUS\n");
  110.         printf("------------------------------\n");
  111.         printf("1.Jadwal Bus\n2.Beli Tiket\n3.Riwayat Pemesanan\n5.Tentang Aplikasi\n6.Bantuan\n7.Logout\n");
  112.         printf("------------------------------\n");
  113.         printf("Masukkan pilihan Anda: ");
  114.         scanf("%d", &pilihan);
  115.         bersih();
  116.         switch (pilihan) {
  117.         case 1 :
  118.             MenuJadwal:
  119.             bersih();
  120.             printf("\t\tJADWAL BUS\n");
  121.             printf("=========================================\n");
  122.             if(piljadwal==0||piljadwal==4){
  123.                 JadwalNormal();
  124.                 piljadwal=0;
  125.             }
  126.             if(piljadwal==1){
  127.                 JadwalSortingAsalTerbesar();
  128.                 piljadwal=0;
  129.             }
  130.             printf("1. Beli\n");
  131.             printf("2. Urutkan\n");
  132.             printf("3. Cari\n");
  133.             printf("4. Menu\n");
  134.             printf("----------------------\n");
  135.             printf("Masukkan pilihan Anda: ");
  136.             scanf("%d",&pilihan);
  137.             if(pilihan==1){
  138.                 BeliTiket();
  139.             }
  140.             if(pilihan==2){
  141.                 bersih();
  142.                 printf("1. Berdasarkan Daerah\n");
  143.                 printf("4. Kembali\n");
  144.                 printf("----------------------\n");
  145.                 printf("Masukkan pilihan Anda: ");
  146.                 scanf("%d",&piljadwal);
  147.                 goto MenuJadwal;
  148.             }
  149.             if(pilihan==4){
  150.                 goto MainMenu;
  151.             }
  152.             break;
  153.         case 2 :
  154.             BeliTiket();
  155.             break;
  156.         case 3 :
  157.             printf("UNDERMAINTENANCE");
  158.             break;
  159.         case 4 :
  160.             printf("UNDERMAINTENANCE");
  161.             break;
  162.         case 5 :
  163.             printf("UNDERMAINTENANCE");
  164.             break;
  165.         case 6 :
  166.             printf("UNDERMAINTENANCE");
  167.             break;
  168.         case 7:
  169.             goto MenuAwal;
  170.         default :
  171.             printf("menu tidak tersedia");
  172.             break;
  173.         }
  174.  
  175.     MenuAdmin:
  176.         bersih();
  177.         printf("\tMENU ADMIN\n");
  178.         printf("---------------------------\n");
  179.         printf("1. Input Jadwal\n");
  180.         printf("2. Ganti Jadwal\n");
  181.         printf("3. Lihat Jadwal\n");
  182.         printf("4. Logout\n");
  183.         printf("---------------------------\n");
  184.         printf("Masukkan pilihan Anda: ");
  185.         scanf("%d",&pilihan);
  186.         switch(pilihan){
  187.         case 1:
  188.             InputJadwal();
  189.             goto MenuAdmin;
  190.             break;
  191.         case 3:
  192.             DisplayJadwal();
  193.             system("pause");
  194.             goto MenuAdmin;
  195.         case 4:
  196.             goto MenuAwal;
  197.             break;
  198.         }
  199.     return 0;
  200. }
  201.  
  202. void bersih()
  203. {
  204.     system("cls");
  205. }
  206.  
  207. void regis()
  208. {
  209.     char c,cek_nama[20],cek_pass[20];
  210.     int z=0;
  211.     daftar:
  212.         bersih();
  213.         Userdata=fopen("Data.txt","a+");
  214.         printf("\t\t==============\n");
  215.         printf("\t\t* REGISTRASI *\n");
  216.         printf("\t\t==============\n");
  217.         printf("\n\n");
  218.         printf("MASUKKAN USERNAME: ");
  219.         scanf("%s",regi.nama);
  220.         while(!feof(Userdata)){
  221.             fscanf(Userdata,"%s %s\n",cek_nama,cek_pass);
  222.             if(strcmp(cek_nama,regi.nama)==0){
  223.                 printf("\n------------------------------\n");
  224.                 printf("\tUSERNAME TIDAK TERSEDIA\n");
  225.                 printf("\tTEKAN Y UNTUN MENCOBA LAGI\n");
  226.                 if((getch()=='Y')||(getch()=='y'))
  227.                     goto daftar;
  228.                 else main();
  229.             }
  230.         }
  231.     printf("MASUKKAN PASSWORD: ");
  232.     while (z<=15){
  233.       regi.pass[z]=getch();
  234.       c=regi.pass[z];
  235.       if(c==13) break;
  236.       else printf("*");
  237.       z++;
  238.     }
  239.     fprintf(Userdata,"%s %s\n",regi.nama,regi.pass);
  240.     fclose(Userdata);
  241.     printf("\n------------------------------\n");
  242.     printf("\tREGISTRASI SUKSES\n");
  243.     system("pause");
  244. }
  245.  
  246. void masuk(int *m)
  247. {
  248.     char c,cek_nama[15],cek_pass[15];
  249.     int z=0;
  250.     *m=0;
  251.     bersih();
  252.     Userdata=fopen("Data.txt","r+");
  253.     printf("\t\t===============\n");
  254.     printf("\t\t*    LOGIN    *\n");
  255.     printf("\t\t===============\n");
  256.     printf("\n\n");
  257.     printf("MASUKKAN USERNAME: ");
  258.     scanf("%s",login.nama);
  259.     printf("MASUKKAN PASSWORD: ");
  260.     while((c=getch())!=13){
  261.         login.pass[z++]=c;
  262.         printf("%c",'*');
  263.     }
  264.     login.pass[z]='\0';
  265.     while(!feof(Userdata)){
  266.         fscanf(Userdata,"%s %s\n",cek_nama,cek_pass);
  267.         if((strcmp(cek_nama,login.nama)==0)&&(strcmp(login.pass,cek_pass)==0)){
  268.             printf("\n------------------------------\n");
  269.             printf("\tLOGIN SUKSES\n");
  270.             system("pause");
  271.             *m=1;
  272.             goto keluar;
  273.         }else if((strcmp(cek_nama,login.nama)!=0)||(strcmp(login.pass,cek_pass)!=0)){
  274.             *m=0;
  275.         }
  276.     }
  277.     keluar:
  278.         fclose(Userdata);
  279. }
  280.  
  281. int masukadmin(char nama[20],char pass[20])
  282. {
  283.     if((strcmp(nama,"Dickys11")==0)&&(strcmp(pass,"kmzway87aa")==0))
  284.        return 1;
  285.     else
  286.         return 0;
  287. }
  288.  
  289. void InputJadwal()
  290. {
  291.     char pil;
  292.     printf("\t\tINPUT JADWAL\n");
  293.     printf("=========================================\n");
  294.     bersih();
  295.     FileJadwal=fopen("Jadwal.txt","a+");
  296.     do{
  297.         printf("Asal\t\t: ");scanf("%s",input.asal);
  298.         printf("Tujan\t\t: ");scanf("%s",input.tujuan);
  299.         printf("Harga\t\t: ");scanf("%d",&input.harga);
  300.         printf("Jumlah Penumpang: ");scanf("%d",&input.kursi);
  301.         fprintf(FileJadwal,"%s %s %d %d\n",input.asal,input.tujuan,input.harga,input.kursi);
  302.         printf("Tekan Y untuk input jadwal kembali \n");
  303.         pil=getch();
  304.     }while(pil=='y'||pil=='Y');
  305.     fclose(FileJadwal);
  306. }
  307.  
  308. void DisplayJadwal()
  309. {
  310.     int i=1;
  311.     FileJadwal=fopen("Jadwal.txt","r");
  312.     bersih();
  313.     printf("\t\tJADWAL BUS\n");
  314.     printf("=========================================\n");
  315.     while(!feof(FileJadwal)){
  316.         fscanf(FileJadwal,"%s %s %d %d\n",display.asal,display.tujuan,&display.harga,&display.kursi);
  317.         printf("Rute No %d\n",i);
  318.         printf("\tAsal\t\t: %s\n",display.asal);
  319.         printf("\tTujan\t\t: %s\n",display.tujuan);
  320.         printf("\tHarga\t\t: %d\n",display.harga);
  321.         printf("\tJumlah Penumpang: %d\n",display.kursi);
  322.         printf("--------------------------------------\n");
  323.         i++;
  324.     }
  325.     fclose(FileJadwal);
  326. }
  327.  
  328. void BeliTiket()
  329. {
  330.     printf("ini beli\n");
  331.     system("pause");
  332. }
  333.  
  334. void JadwalNormal()
  335. {
  336.     int i=1;
  337.     FileJadwal=fopen("Jadwal.txt","r");
  338.     while(!feof(FileJadwal)){
  339.         fscanf(FileJadwal,"%s %s %d %d\n",display.asal,display.tujuan,&display.harga,&display.kursi);
  340.         printf("Rute No %d\n",i);
  341.         printf("\tAsal\t\t: %s\n",display.asal);
  342.         printf("\tTujan\t\t: %s\n",display.tujuan);
  343.         printf("\tHarga\t\t: %d\n",display.harga);
  344.         printf("\tJumlah Penumpang: %d\n",display.kursi);
  345.         printf("--------------------------------------\n");
  346.         i++;
  347.     }
  348.     fclose(FileJadwal);
  349. }
  350.  
  351. void JadwalSortingAsalTerbesar()
  352. {
  353.     int i=0,j,n;
  354.     FileJadwal=fopen("Jadwal.txt","r");
  355.     while(!feof(FileJadwal)){
  356.         fscanf(FileJadwal,"%s %s %d %d\n",sorting[i].asal,sorting[i].tujuan,&sorting[i].harga,&sorting[i].kursi);
  357.         i++;
  358.     }
  359.     n=i;
  360.     for(i=1;i<n;i++){
  361.         for(j=0;j<n-i;j++){
  362.             if(strcmp(sorting[j+1].asal,sorting[j].asal)<0){
  363.                 sortingtemp=sorting[j+1];
  364.                 sorting[j+1]=sorting[j];
  365.                 sorting[j]=sortingtemp;
  366.             }
  367.         }
  368.     }
  369.     for(i=0;i<n;i++){
  370.         printf("Rute No %d\n",i+1);
  371.         printf("\tAsal\t\t: %s\n",sorting[i].asal);
  372.         printf("\tTujan\t\t: %s\n",sorting[i].tujuan);
  373.         printf("\tHarga\t\t: %d\n",sorting[i].harga);
  374.         printf("\tJumlah Penumpang: %d\n",sorting[i].kursi);
  375.         printf("--------------------------------------\n");
  376.     }
  377. }
Add Comment
Please, Sign In to add comment