Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <time.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <ctype.h>
- struct dataMhs{
- char nama[100];
- char telp[8];
- int tglLahir;
- char jurusan[100];
- };
- int main(){
- pid_t pFork;
- int pipes[2];
- int flag,i;
- struct dataMhs data;
- if(pipe(pipes)<0)
- printf("Error Pipe");
- pFork=fork();
- if(pFork<0)
- printf("Error Fork");
- else if(pFork==0){
- printf("\nChild Process\n================\n");
- do{
- flag=0;
- printf("Masukan Nama [5-20]: ");
- scanf("%[^\n]s",data.nama);getchar();
- if(strlen(data.nama)<5||strlen(data.nama)>20)
- flag=1;
- }while(flag==1);
- do{
- flag=0;
- printf("Masukan No.Telp [8-12]: ");
- scanf("%s",data.telp);getchar();
- for(i=0;i<strlen(data.telp);i++){
- if(!isdigit(data.telp[i]))
- flag=1;
- }
- if(strlen(data.telp)<8||strlen(data.telp)>12)
- flag=1;
- }while(flag==1);
- do{
- flag=0;
- printf("Masukan Tgl Lahir: ");
- scanf("%d",&data.tglLahir);getchar();
- if(data.tglLahir<1||data.tglLahir>31)
- flag=1;
- }while(flag==1);
- do{
- flag=0;
- printf("Jurusan yang diinginkan[Teknik Informatika/Sistem Komputer]: ");
- scanf("%[^\n]s",data.jurusan);getchar();
- if(strcasecmp("teknik informatika",data.jurusan)!=0&&
- strcasecmp("sistem komputer",data.jurusan)!=0)
- flag=1;
- }while(flag==1);
- close(pipes[0]);
- write(pipes[1],(struct dataMhs*)&data,sizeof(data));
- }
- else if(pFork>0){
- close(pipes[1]);
- read(pipes[0],(struct dataMhs*)&data,sizeof(data));
- printf("\nParent Process\n================\n\n");
- printf("Data Mahasiswa Baru\n");
- printf("Nama Lengkap : %s\n",data.nama);
- printf("No. Telp : %s\n",data.telp);
- printf("Tangal Lahir : %d\n",data.tglLahir);
- printf("Jurusan : %s\n",data.jurusan);
- int randomNIM,kodeJurusan;
- //buat nimnya 170[random 2 angka 12-14][jurusan TI=2,SK=3]0[tglLahir]
- srand(time(NULL));
- randomNIM=rand()%3+12;
- if(strcasecmp("teknik informatika",data.jurusan)==0)
- kodeJurusan=2;
- else
- kodeJurusan=3;
- printf("\n===========================\nNIM ANDA\n===========================\n");
- printf("170%d%d0%d\n",randomNIM,kodeJurusan,data.tglLahir);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement