Advertisement
akevintg

MATERI UAP III (SERVER)

Jan 20th, 2016
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.70 KB | None | 0 0
  1. //LINK : https://www.dropbox.com/s/8z3yo9b72hd17i1/Screen%20Shot%202016-01-21%20at%2011.29.16%20AM.png?dl=0
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <ctype.h>
  7. #include <string.h>
  8. #include <sys/types.h>
  9. #include <sys/sem.h>
  10. #include <sys/shm.h>
  11. #include <sys/ipc.h>
  12.  
  13. struct data{
  14.     char nama_pelanggan[20];
  15.     char gender[10];
  16.     char majalah[100];
  17.     int bulan;
  18.     char alamat[100];
  19. };
  20.  
  21. int main(){
  22.     struct sembuf s;
  23.     int h=shmget(123456,sizeof(struct data),IPC_CREAT|0666);
  24.     int e=semget(123456,1,IPC_CREAT|0666);
  25.     struct data *langananan=(struct data*)shmat(h,NULL,0666);
  26.     int flag=0,i;
  27.     printf("\n===================================\nPROGRAM PENDAFTARAN MAJALAH-SERVER\n===================================\n\n");
  28.     do{
  29.         printf("\n\nWaiting For Input\n\n");
  30.         s.sem_num=0;
  31.         s.sem_op=-1;
  32.         s.sem_flg=0;
  33.         semop(e,&s,1);
  34.         if(strcasecmp(langananan->nama_pelanggan,"exit")!=0){
  35.             printf("Nama Pelanggan \t\t\t: ");
  36.             if(strcasecmp(langananan->gender,"Male")==0)
  37.                 printf("Mr. %s\n",langananan->nama_pelanggan);
  38.             else if(strcasecmp(langananan->gender,"Female")==0)
  39.                 printf("Mrs. %s\n",langananan->nama_pelanggan);
  40.             printf("Pilihan Majalah \t\t: %s\n",langananan->majalah);
  41.             printf("Periode Langganan \t\t: %d bulan\n",langananan->bulan);
  42.             printf("Alamat Pengirimana \t\t: %s\n",langananan->alamat);
  43.             int harga;
  44.             if(strcmp(langananan->majalah,"TIME")==0)
  45.                 harga=25000;
  46.             else if(strcmp(langananan->majalah,"National Geographic")==0)
  47.                 harga=20000;
  48.             else if(strcmp(langananan->majalah,"Femina")==0)
  49.                 harga=15000;
  50.             printf("Harga Per Edisi \t\t: Rp. %d,00\n",harga);
  51.             int sebelumDiskon=harga*langananan->bulan;
  52.             printf("Harga Total \t\t\t: Rp. %d,00\n",sebelumDiskon);
  53.             int diskon;
  54.             if(langananan->bulan>18)
  55.                 diskon=30;
  56.             else if(langananan->bulan>12)
  57.                 diskon=20;
  58.             else if(langananan->bulan>6)
  59.                 diskon=10;
  60.             printf("Diskon \t\t\t\t: %d%%\n",diskon);
  61.             int total;
  62.             total=sebelumDiskon-(sebelumDiskon*((float)diskon/100));
  63.             printf("Total yang harus dibayar \t: Rp. %d,00\n",total);
  64.             int pembayaran;
  65.             do{
  66.                 printf("Masukan Pembayaran \t\t: Rp. ");
  67.                 scanf("%d",&pembayaran);getchar();
  68.             }while(pembayaran<total);
  69.             printf("Pengembalian \t\t\t: Rp. %d,00\n",pembayaran-total);
  70.             printf("Kode Pembayaran \t\t: %c%c%d%c%c\n",langananan->majalah[0],
  71.                 langananan->majalah[1],langananan->bulan,langananan->nama_pelanggan[0],langananan->majalah[1]);
  72.             printf("=====================\nORDER COMPLETED\n=====================\n\n");
  73.         }
  74.         else{
  75.             printf("\nExiting Program\n");
  76.         }
  77.     }while(strcasecmp(langananan->nama_pelanggan,"exit")!=0);
  78.     shmdt(&langananan);
  79.     shmctl(h,IPC_RMID,0);
  80.     semctl(e,0,IPC_RMID);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement