misi agan2 ane kan coba terjemahin program linked list dari bahasa C++ ke C tapi ada error ini ga ketemu salahnya dmana masih bingung nih..
errornya muncul bhw simpul undeclarated padahal udah ane deklarasiin..
nih scriptnya, yg error ane merahin ..
Spoiler for linkedlist:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();
struct simpul
{
char nim[8], nama [20];
int umur;
struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
int main()
{
do
{
system("CLS");
printf("MENU SINGLE LINKEDLIST\n");
printf("1. Tambah Depan\n");
printf("2. Tambah Belakang\n");
printf("3. Hapus Depan\n");
printf("4. Hapus Belakang\n");
printf("5. Tampilkan\n");
printf("6. Selesai\n");
printf("Pilihan Anda : ");
scanf("%i",pil);
pilih();
} while(pil!=6);
return 0;
}
void pilih()
{
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
tampil();
else
printf("selesai");
}
void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct simpul));
printf("input nim : ");scanf("%[^\n]",&baru->nim);
printf("input nama : ");scanf("%[^\n]",&baru->nama);
printf("input umur : ");scanf("%[^\n]",&baru->umur);
baru->next=NULL;
}
void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
}
else
{
akhir->next=baru;
}
akhir=baru;
akhir->next=NULL;
printf("\n\n");
tampil();
}
void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
akhir->next=NULL;
}
else
{
baru->next=awal;
awal=baru;
}
printf("\n\n");
tampil();
}
void hapus_depan()
{
if (awal==NULL)
printf("Kosong");
else
{
hapus=awal;
awal=awal->next;
free(hapus);
}
printf("\n\n");
tampil();
}
void hapus_belakang()
{
if (awal==NULL)
printf("Kosong");
else if(awal==akhir)
{
hapus=awal;
awal=awal->next;
free(hapus);
}
else
{
hapus=awal;
while(hapus->next!=akhir)
hapus=hapus->next;
akhir=hapus;
hapus=akhir->next;
akhir->next=NULL;
free(hapus);
}
printf("\n\n");
tampil();
}
void tampil()
{
if (awal==NULL)
printf("Kosong");
else
{
bantu=awal;
while(bantu!=NULL)
{
printf(" nim : %i",bantu->nim);
printf(" nama : %c",bantu->nama);
printf(" umur : %i",bantu->umur);
bantu=bantu->next;
}
}
getch();
}
mohon di koreksi gan kesalahannya
