Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // LINK SOAL : https://www.dropbox.com/s/s148os0ispnnpb3/S__5021795.jpg?dl=0
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include <ctype.h>
- #include <sys/ipc.h>
- #include <sys/types.h>
- #include <sys/sem.h>
- #include <sys/shm.h>
- struct data {
- char provider[16];
- int speed;
- int price;
- char area[100];
- char tgl[100];//tambahan di soal ga ada
- };
- int main(){
- struct sembuf s;
- int h=shmget(123456,sizeof(struct data),IPC_CREAT|0666);
- int e=semget(123456,1,IPC_CREAT|0666);
- semctl(e,0,SETVAL,0);
- struct data *internet=(struct data*)shmat(h,NULL,0666);
- int flag,i;
- //biar ga boleh sama
- char list_nama_yang_udah [100][100];
- int jumlah=0;
- printf("\n\n====================================\nPROGRAM REGISTRASI INTERNET - CLIENT\n====================================\n\n");
- do{
- printf("\nWaiting for Input\n");
- s.sem_num=0;
- s.sem_op=-1;
- s.sem_flg=0;
- semop(e,&s,1);
- flag=0;//kondisi ga ada yg sama
- for(i=0;i<jumlah;i++){
- if(strcmp(list_nama_yang_udah[i],internet->provider)==0){
- flag=1;//kalo pas di cek ada yg sama
- printf("\nNama Provide sudah terdaftar\n");
- break;
- }
- }
- if(strcasecmp("exit",internet->provider)!=0&&flag==0){
- printf("\nNama Provide : %s\n",internet->provider);
- strcpy(list_nama_yang_udah[jumlah],internet->provider);
- jumlah++;//jumlah data udah nambah;
- printf("Speed Internet : %d Mbps\n",internet->speed);
- if(internet->speed>50)
- printf("Internet Category : Fast\n");
- else if(internet->speed>25)
- printf("Internet Category : Standart\n");
- else if(internet->speed>0)
- printf("Internet Category : Low\n");
- printf("Internet Raw Price : Rp. %d,00\n",internet->price);
- if(internet->price>=6000)
- printf("Internet Service : Premium\n");
- if(internet->price>=1000)
- printf("Internet Service : Standart\n");
- printf("Area Jangkauan : %s\n",internet->area);
- int total;
- total=internet->speed*internet->price;
- printf("Internet Total : Rp. %d,00\n",total);
- }
- else if(flag!=1)//kalo dia bener2 exit bukan karena kenda data sama
- printf("\nExiting Program...\n");
- }while(strcasecmp("exit",internet->provider)!=0);
- shmdt(&internet);
- shmctl(h,IPC_RMID,0);
- semctl(e,0,IPC_RMID);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement