TUGAS BESAR ALGORITMA DAN PEMROGRAMAN 1B (Semester 1, 2019)

Link YouTube : https://www.youtube.com/watch?v=VQ1qFvHUSd8 


Codingan dalam bahasa C (Menggunakan Dev C)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char hapus1[100],edit[100];
int i,n,x,y;

FILE *datbaru;
FILE *datupdate;

struct{
char name[100],nim[100],email[100],kls[100],nohp[100];
float ipk;
}mhs,temp[100],a;

void input();
void tampil();
void update();
void hapus();
void sorting();
void keluar();


main(){
system("cls");
printf("==MAIN MENU==\n\n1. Input data\n2. Tampilkan data\n3. Update data\n4. Delete data\n5. Sorting data\n6. keluar\n\nMasukkan Pilihan : ");
scanf("%d",&n); printf("\n");
switch(n){
case 1:input();break;
case 2:tampil();break;
case 3:update();break;
case 4:hapus();break;
case 5:sorting();break;
case 6:keluar();break;
default:printf("Pilihan salah\n Input ulang");system("pause");main();break;
}
}


void input(){
system("cls");
printf("Silakan masukkan data yang akan ditambahkan.\n");
getchar();
datbaru=fopen("mahasiswa.dat","ab");
printf("NAMA\t: ");gets(mhs.name);
printf("NIM\t: ");gets(mhs.nim);
printf("NO.HP\t: ");gets(mhs.nohp);
printf("KELAS\t: ");gets(mhs.kls);
printf("EMAIL\t: ");gets(mhs.email);
printf("IPK\t: ");scanf("%f", &mhs.ipk);
fwrite(&mhs,sizeof(mhs),1,datbaru);
fclose(datbaru);
main();
}
void tampil(){
datbaru=fopen("mahasiswa.dat","rb");
while(fread(&mhs,sizeof(mhs),1,datbaru)==1){
printf("NAMA\t: %s\n",mhs.name);
printf("NIM\t: %s\n",mhs.nim);
printf("NO.HP\t: %s\n",mhs.nohp);
printf("KELAS\t: %s\n",mhs.kls);
printf("EMAIL\t: %s\n",mhs.email);
printf("IPK\t: %.2f\n\n",mhs.ipk);
}
fclose(datbaru);
system("pause");
main();
}
void update(){
getchar();
printf("Siapa yang ingin anda edit : ");gets(edit);
datbaru=fopen("mahasiswa.dat","rb+");
datupdate=fopen("mahasiswa1.dat","wb");

while(fread(&mhs,sizeof(mhs),1,datbaru)==1){
if(strcmp(edit,mhs.name)==0){
printf("NAMA\t: %s\n",mhs.name);
printf("NIM\t: %s\n",mhs.nim);
printf("NO.HP\t: %s\n",mhs.nohp);
printf("KELAS\t: %s\n",mhs.kls);
printf("EMAIL\t: %s\n",mhs.email);
printf("IPK\t: %.2f\n\n",mhs.ipk);
getchar();getchar();
printf("edit dengan :\n");
printf("NAMA\t: ");gets(mhs.name);
printf("NIM\t: ");gets(mhs.nim);
printf("NO.HP\t: ");gets(mhs.nohp);
printf("KELAS\t: ");gets(mhs.kls);
printf("EMAIL\t: ");gets(mhs.email);
printf("IPK\t: ");scanf("%f", &mhs.ipk);
fwrite(&mhs,sizeof(mhs),1,datupdate);
}
else{
fwrite(&mhs,sizeof(mhs),1,datbaru);
}
}
fclose(datbaru);
fclose(datupdate);
datbaru=fopen("mahasiswa.dat","ab");
datupdate=fopen("mahasiswa1.dat","rb");
while(fread(&mhs,sizeof(mhs),1,datupdate)==1){
if(strcmp(edit,mhs.name)!=0){
fwrite(&mhs,sizeof(mhs),1,datbaru);
}
}
fclose(datbaru);
fclose(datupdate);
datbaru=fopen("mahasiswa.dat","rb");
datupdate=fopen("mahasiswa1.dat","wb");

while(fread(&mhs,sizeof(mhs),1,datbaru)==1){
if(strcmp(edit,mhs.name)!=0){
fwrite(&mhs,sizeof(mhs),1,datupdate);
}
}
fclose(datbaru);
fclose(datupdate);
remove("mahasiswa.dat");
rename("mahasiswa1.dat","mahasiswa.dat");
main();
}
void hapus(){
getchar();
printf("Siapa yang ingin anda hapus : ");gets(hapus1);
datbaru=fopen("mahasiswa.dat","rb");
datupdate=fopen("mahasiswa1.dat","wb");

while(fread(&mhs,sizeof(mhs),1,datbaru)==1){
if(strcmp(hapus1,mhs.name)!=0){
fwrite(&mhs,sizeof(mhs),1,datupdate);
}
}
fclose(datbaru);
fclose(datupdate);
remove("mahasiswa.dat");
rename("mahasiswa1.dat","mahasiswa.dat");
main();
}
void sorting(){
datbaru=fopen("mahasiswa.dat","rb");
x=0;
while(fread(&mhs,sizeof(mhs),1,datbaru)==1){
temp[x]=mhs;
x++;
}
for(i=x-1;i>=1;i--){
for(y=1;y<=i;y++){
if(temp[y-1].ipk<temp[y].ipk){
a=temp[y-1];
temp[y-1]=temp[y];
temp[y]=a;
}
}
}
for(i=0;i<x;i++){
printf("NAMA\t: %s\n",temp[i].name);
printf("NIM\t: %s\n",temp[i].nim);
printf("NO.HP/t: %s\n",temp[i].nohp);
printf("KELAS\t: %s\n",temp[i].kls);
printf("EMAIL\t: %s\n",temp[i].email);
printf("IPK\t: %.2f\n\n",temp[i].ipk);
}
system("pause");
main();
}
void keluar()
{

}

Comments

Popular posts from this blog

TUGAS PENGERJAAN SOAL PTE (Rabu, 4 September 2019)

TUGAS PENGENALAN TEKNIK ELEKTRO DALAM 1000 KATA