#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