Advertisement
mbah_bejo

SIAKAD TAEK

Dec 13th, 2019
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <windows.h>
  5. #include<conio.h>
  6. #include <iostream>
  7.  
  8.  
  9.  
  10. typedef struct mhs{
  11.     char nama[100];
  12.     char NRP[100];
  13.     float EAS;
  14.     float ETS;
  15.     float rata;
  16.     struct mhs* kepala ;
  17.     struct mhs *ekor;
  18. }mhs;
  19.  
  20.     mhs *baru; // untuk naruh data sementara khusus ADD
  21.     mhs *palkon; // data utama
  22.     mhs *temp; // untuk naruh data sementara
  23.     mhs *joko;
  24.    
  25. int tot=1;
  26. void awali();
  27. void input();
  28. void tampil();
  29. void simpan();
  30. void file();
  31. void masukin(struct mhs keluari);
  32.  
  33. int main(){
  34. awali();
  35.     return 0;
  36. }
  37.  
  38. void input()
  39. {  
  40.         system("cls");
  41.     printf("DATA NO. %d\n",tot);
  42.    
  43.     baru =(mhs*) malloc(sizeof(mhs));
  44.     printf("Nama Mahasiswa\t: ")    ;gets(baru->nama);
  45.     printf("NRP Mahasiswa\t: ")     ;gets(baru->NRP);
  46.     printf("Nilai ETS\t: ")         ;scanf("%f",&baru->ETS);
  47.     printf("Nilai EAS\t: ")         ;scanf("%f",&baru->EAS);
  48.     baru->rata= (baru->ETS + baru->EAS)/2;
  49.     tot++;
  50.     temp = palkon;
  51.  
  52.     baru->ekor = NULL;
  53.  
  54.     if (palkon == NULL) {
  55.         baru->ekor = NULL;
  56.         palkon = baru;
  57.        // printf("ok");
  58.     } else
  59.     {
  60.     while (temp->ekor != NULL)
  61.         temp = temp->ekor;
  62.  
  63.     temp->ekor = baru;
  64.     baru->kepala = temp;
  65.   }
  66.  system("pause");  
  67. awali();
  68. }
  69.  
  70.  
  71. void tampil()
  72. { system("cls");
  73.     joko= palkon;
  74.     int i=1;
  75.     if(joko==NULL)
  76.     {
  77.         printf("DATA KOSONG, POK!\n\n"); system("pause");awali();
  78.     }
  79.     while (joko!= NULL) {
  80.     printf("DATA NO. %d\n",i);
  81.     printf("Nama Mahasiswa\t: %s\n",joko->nama);
  82.     printf("NRP Mahasiswa\t: %s\n",joko->NRP);
  83.     printf("Nilai ETS\t: %.0f\n",joko->ETS);
  84.     printf("Nilai EAS\t: %.0f\n",joko->EAS);
  85.     printf("Nilai Rata-Rata\t: %.2f\n",joko->rata);
  86.     printf("------------------------------\n");
  87.     joko=joko->ekor;i++;
  88. } system("pause");//awali();
  89. }
  90.  
  91. void hapus()
  92. {
  93.      system("cls");
  94.     tampil();
  95.  
  96.     int target;
  97.     printf("\nMASUKKAN NOMOR DATA YANG AKAN DI HAPUS : ") ;scanf("%d",&target);
  98.     temp=palkon; //sebelum
  99.     joko=palkon; // sekarang
  100.     if(target==1)
  101.     {
  102.         if(joko->ekor==NULL) // baru 1 data aja
  103.         {
  104.         palkon=NULL;
  105.         tampil();awali();
  106.         }else // kalo udah ada data setelahnya
  107.         {
  108.         palkon=joko->ekor;
  109.         palkon->kepala=NULL;   
  110.         }
  111.        
  112.     }else {
  113.         //ini untuk data ke-n,n!=1
  114.     while(target!=1)
  115.     {  
  116.         temp=joko;
  117.         joko=joko->ekor;
  118.         target--;
  119.        
  120.     }
  121.  
  122.  
  123.     temp->ekor=joko->ekor;
  124.     joko->ekor=NULL;
  125.     delete joko;
  126. }
  127.     tampil(); system("pause"); awali();
  128.    
  129. }
  130.  
  131. void file()
  132. { system("cls");
  133.     FILE *daleman;
  134.     daleman = fopen("data.bin","rb");
  135.     if(daleman!=NULL)
  136.     {
  137.     fseek(daleman,0,SEEK_END); //buat ngeliat file dari awal ampe akhir
  138.      
  139.     //rewind(daleman);// untuk ngebuat filenya dibaca dari awal
  140.    
  141.      tot=(int)(ftell(daleman)/sizeof(mhs));
  142.         printf("total data %d\n",tot);
  143.        
  144.         int cari;
  145.         for(cari=0;cari<tot;++cari)
  146.         {
  147.         fseek(daleman,(sizeof(mhs)*cari),SEEK_SET); // ngefokusin start read file dari ke n
  148.         if(palkon==NULL)
  149.         {
  150.             palkon= new mhs();
  151.             fread(palkon,sizeof (mhs),1,daleman);
  152.             palkon->ekor=NULL;
  153.        
  154.         }
  155.         else
  156.         {
  157.        
  158.             joko = palkon;
  159.             mhs *maba = new mhs();
  160.             while(joko->ekor!=NULL)
  161.             {
  162.             ///printf("*-");
  163.                 joko=joko->ekor;
  164.             }
  165.             fread(maba,sizeof(mhs),1,daleman);
  166.             joko->ekor=maba;
  167.             maba->ekor=NULL;
  168.             maba->kepala=joko;     
  169.     }
  170.         }
  171.         system("pause");
  172.        
  173.     }
  174. else{
  175.     printf("Data Masih kosong\n");system("pause"); awali();
  176. }
  177.     tampil();awali();
  178. }
  179.  
  180. void awali()
  181. {system("cls");
  182. int n;
  183.    
  184.     printf("--------------------------------------\n\nD A T A B A S E - D A T A B A S E A N\n\n--------------------------------------\n\n");
  185.  
  186.     printf("1. Input Data\n2. Hapus Data\n3. Tampilkan Data\n4. Load file\n5. Keluar dan Simpan\n\n");\
  187.     printf("Masukkan Nomor perintah : ");
  188.     scanf("%d",&n);getchar();  
  189.     switch(n)
  190.     {
  191.         case 1 : input(); break;
  192.         case 2 : hapus(); break;   
  193.         case 3 : tampil();awali(); break;
  194.         case 4 : file(); break;
  195.         default : system("cls");simpan();printf("T E R I M A  K A S I H"); break;
  196.  
  197.     }
  198. }
  199.  
  200. void simpan()
  201. {
  202.     FILE *daleman;
  203.     daleman= fopen("data.bin","wb");
  204.     joko= palkon;
  205.     while(joko!=NULL)
  206.     {
  207.         fwrite(joko,sizeof(mhs),1,daleman);
  208.         joko=joko->ekor;
  209.     }
  210. fclose(daleman);
  211. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement