Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //LINK : https://www.dropbox.com/s/8z3yo9b72hd17i1/Screen%20Shot%202016-01-21%20at%2011.29.16%20AM.png?dl=0
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <string.h>
- #include <sys/types.h>
- #include <sys/sem.h>
- #include <sys/shm.h>
- #include <sys/ipc.h>
- struct data{
- char nama_pelanggan[20];
- char gender[10];
- char majalah[100];
- int bulan;
- char alamat[100];
- };
- int main(){
- struct sembuf s;
- int h=shmget(123456,sizeof(struct data),IPC_CREAT|0666);
- int e=semget(123456,1,IPC_CREAT|0666);
- struct data *langananan=(struct data*)shmat(h,NULL,0666);
- int flag=0,i;
- printf("\n===================================\nPROGRAM PENDAFTARAN MAJALAH-CLIENT\n===================================\n\n");
- do{
- do{
- flag=0;
- printf("Masukan Nama [5..15][EXIT to close] : ");
- scanf("%[^\n]",langananan->nama_pelanggan);getchar();
- if(strcasecmp(langananan->nama_pelanggan,"exit")==0)
- break;
- else if(strlen(langananan->nama_pelanggan)>=5&&strlen(langananan->nama_pelanggan)<=15)
- flag=1;
- for(i=0;i<strlen(langananan->nama_pelanggan);i++){
- if(isdigit(langananan->nama_pelanggan[i]))
- flag=0;
- }
- }while(flag==0);
- if(strcasecmp(langananan->nama_pelanggan,"exit")!=0){
- do{
- flag=0;
- printf("Masukan Gender [Male|Female] : ");
- scanf("%[^\n]",langananan->gender);getchar();
- if(strcasecmp(langananan->gender,"Male")==0||strcasecmp(langananan->gender,"Female")==0)
- flag=1;
- }while(flag==0);
- do{
- flag=0;
- printf("Pilih Majalah [TIME|National Geographic|Femina](case sesnitive): ");
- scanf("%[^\n]",langananan->majalah);getchar();
- if(strcmp(langananan->majalah,"TIME")==0||strcmp(langananan->majalah,"National Geographic")==0||strcmp(langananan->majalah,"Femina")==0)
- flag=1;
- }while(flag==0);
- do{
- flag=0;
- printf("Periode Langganan[3...24 bulan](Kelipatan 3 Bulan): ");
- scanf("%d",&langananan->bulan);getchar();
- if(langananan->bulan%3==0&&langananan->bulan>=3&&langananan->bulan<=24)
- flag=1;
- }while(flag==0);
- do{
- flag=0;
- printf("Masukan Alamat [diakhiri dengan Street): ");
- scanf("%[^\n]",langananan->alamat);getchar();
- int j=strlen(langananan->alamat);
- if(j>8){
- if(langananan->alamat[j-6]=='S'&&langananan->alamat[j-5]=='t'&&
- langananan->alamat[j-4]=='r'&&langananan->alamat[j-3]=='e'&&
- langananan->alamat[j-2]=='e'&&langananan->alamat[j-1]=='t')
- flag=1;
- }
- }while(flag==0);
- printf("\nMasukan Data\n");
- }
- else{
- printf("\nExiting Program\n");
- }
- s.sem_num=0;
- s.sem_op=1;
- s.sem_flg=0;
- semop(e,&s,1);
- printf("<Press Enter>");
- getchar();
- printf("\n");
- }while(strcasecmp(langananan->nama_pelanggan,"exit")!=0);
- shmdt(&langananan);
- shmctl(h,IPC_RMID,0);
- semctl(e,0,IPC_RMID);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement