Minggu, 07 Juni 2015

Code C : Single Link List

#include <stdio.h>#include <conio.h>#include <malloc.h>#include <string.h>#include <time.h>struct dtnilai{  char judul[20];  char id[10];  struct dtnilai *next;};struct dtnilai *ujung;//////////////////////////////////INPUT DATA///////////////////////////////////int input_data(){  struct dtnilai *tampung, *awal;  int j=0;char jawab[2];   while (1){    awal=(struct dtnilai*)malloc(sizeof(struct dtnilai));    fflush(stdin);    printf("Judul Buku   :");gets(awal->judul);    printf("ID Buku      :");gets(awal->id);    awal->next=NULL;    if(j==0){      ujung=awal;      tampung=ujung;    }else{      tampung->next=awal;      tampung=tampung->next;    }    printf("Ada data lagi (y/t) :");scanf("%s",&jawab);    if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0)){      j++;continue;    }else if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))    break;  }}//////////////////////////////////////////TAMPIL LIST/////////////////////////////int tampil_list(){  struct dtnilai *tampil,*awal;   printf("Data Buku yang ada : \n");  printf("Judul Buku\t\tID Buku\n");   tampil=ujung;   while(tampil!=NULL){    printf("%s\t\t%s\n",tampil->judul, tampil->id);    tampil=tampil->next;  }  return 0;}///////////////////////////////////////HAPUS AKHIR/////////////////////////////int hapus_akhir(){  struct dtnilai *hapus, *sblhapus;  hapus=ujung;   while(hapus->next!=NULL){    sblhapus=hapus;    hapus=hapus->next;  }  free(hapus);  sblhapus->next=NULL;}////////////////////////////////////SISIP AWAL//////////////////////////////////int sisip_awal(){  struct dtnilai *tampung,*awal;  char jawab[2];  int j=0;  tampung=ujung;   while (1){    awal=(struct dtnilai*)malloc(sizeof(struct dtnilai));    fflush(stdin);    printf("Judul Buku   :");gets(awal->judul);    printf("ID Buku      :");gets(awal->id);    awal->next=tampung;       if(j==0||j!=0){      ujung=awal;      tampung=ujung;    }    printf("Ada data lagi (y/t) :");scanf("%s",&jawab);    if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0)){      j++;continue;    }else if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))    break;  }}////////////////////////////////////////////////HAPUS LIST TERDEPAN//////////////////////////////////////int hapus_awal(){  struct dtnilai *hapus, *stlhapus;  hapus=ujung;  stlhapus=hapus->next;  ujung=stlhapus;  free(hapus);}///////////////////////////////////////////////HAPUS ELEMEN KE-N/////////////////////////////////////////int hapus_n(){  struct dtnilai *hapus, *sblhapus;  int cari;;  fflush(stdin);  printf("Data yang akan dihapus ? (data ke-) :");scanf("%d",&cari);  hapus=ujung;  for(int i=1;i<cari;i++){    sblhapus=hapus;    hapus=hapus->next;  }  sblhapus->next=hapus->next;  free(hapus);}////////////////////////////////////////////////BADAN PROGRAM////////////////////////////////////////////int main(){  int a;  char b[2];  ulang :    system("cls");  puts("--------------------------------------------------------------------------------");  puts("                                 STRUKTUR DATA                                 ");  puts("                        RIZKI TAUFIK ULIL A (2210131040)                       ");   puts("                            1 D4 TEKNIK KOMPUTER                               ");  puts("                  POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - 2014                ");  puts("================================================================================");  puts("                                     MENU                                       ");  puts(" (1) input data  (2) hapus akhir  (3) sisip awal  (4) hapus awal  (5) hapus ke-n");  puts(" (6) tampil data (7) exit");  puts("================================================================================");  printf("Pilih menu :");scanf("%d",&a);  switch (a) {    case 1  :input_data();puts("");break;    case 2  :tampil_list();puts("");goto hapus;break;    case 3  :tampil_list();puts("");sisip_awal();puts("");break;    case 4  :tampil_list();puts("");hapus_awal();puts("");break;    case 5  :tampil_list();puts("");hapus_n();puts("");break;    case 6  :goto tampil;break;    case 7  :goto exit;break;    default :break;  }  goto ulang;  hapus :  puts("Apakah ingin menghapus data akhir ? (y/t)");fflush(stdin);scanf("%s",&b);  if((strcmp(b,"Y")==0)||(strcmp(b,"y")==0)){      hapus_akhir();      goto tampil;    }  tampil :  tampil_list();  puts("Apakah ingin mengolah data ? (y/t)");fflush(stdin);scanf("%s",&b);  if((strcmp(b,"Y")==0)||(strcmp(b,"y")==0)){      goto ulang;    }  exit:  puts("                       Anda akan keluar dari program ");  puts("                 Silakan pencet tombol enter pada keyboard");  getch();  return 0;}

Tidak ada komentar:

Posting Komentar

Me

Foto saya
I'm 18 year old I'm ugly I'm lazy I do what I want I'm poor I want to learn and I want make money