PDA

View Full Version : [tanya] adt mahasiswa menggunakan C


Darkc0der
20th November 2011, 10:45 PM
para mastah.. mohon bantuannya..

saya newbie :ganteng:, ini program yang saya utak atik dari tadi, niatnya akan ditampilkan seperti ini :



1. [nim] [namamhs] [nilai]

2. [nim] [namamhs] [nilai]

3. dst



dan berikut source kodenya


Spoiler for code:





Code:

#include
#include
#include

typedef struct Pointer
{
int nim, nilai;
char nama;
Pointer *next;
Pointer *prev;
} Pointer;

Pointer *head, *tail;

void init()
{
head = NULL;
tail = NULL;
}

int isEmpty()
{
if(tail == NULL) return 1;
else return 0;
}

void tambahDepan (int nimbaru, char namabaru, int nilaibaru)
{
Pointer *baru;
baru = new Pointer;
baru->nim = nimbaru;
baru->nilai = nilaibaru;
baru->nama = namabaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
tail=head;
head->next = NULL;
head->prev = NULL;
tail->prev = NULL;
tail->next = NULL;
}
else
{
baru->next = head;
head->prev = baru;
head = baru;
}
printf("data sudah masuk\n");
}

void tambahBelakang(int nimbaru, char namabaru, int nilaibaru)
{
Pointer *baru;
baru = new Pointer;
baru->nim = nimbaru;
baru->nilai = nilaibaru;
baru->nama = namabaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
tail=head;
head->next = NULL;
head->prev = NULL;
tail->prev = NULL;
tail->next = NULL;
}
else
{
tail->next = baru;
baru->prev = tail;
tail = baru;
tail->next = NULL;
}
printf("data sudah masuk\n");
}

void tampil()
{
Pointer *bantu;
int n = 1;
bantu = head;
if(isEmpty()==0)
{
printf("List seluruh data = \n");
while(bantu!=tail->next)
{
printf("%d. %d %s %d\n", n, bantu->nim, bantu->nama, bantu->nilai);
bantu=bantu->next;
n=n+1;
}
printf("\n");
}
printf("data kosong\n");
}

void hapusDepan()
{
Pointer *hapus;
int d, e;
char f;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = head;
d = hapus->nim;
e = hapus->nilai;
f = hapus->nama;
head = head->next;
head->prev = NULL;
delete hapus;
}
else
{
d = head->nim;
e = head->nilai;
f = head->nama;
head = NULL;
tail = NULL;
}
printf("data sudah terhapus\n");
}
else printf("data kosong\n");
}

void hapusBelakang()
{
Pointer *hapus;
char f;
int d, e;
if (isEmpty()==0)
{
if(head->next != NULL)
{
hapus = tail;
d = tail->nim;
e = tail->nilai;
f = tail->nama;
tail = tail->prev;
tail->next = NULL;
delete hapus;
}
else
{
d = head->nim;
e = head->nilai;
f = head->nama;
head = NULL;
tail = NULL;
}
printf("data sudah terhapus\n");
}
else printf("data kosong\n");
}

void clear()
{
Pointer *bantu,*hapus;
bantu = head;
while(bantu!=NULL)
{
hapus = bantu;
bantu = bantu->next;
delete hapus;
}
head = NULL;
tail = NULL;
}

int main()
{
int nim, nilai;
char nama;
int pilihan;
do
{
printf("-------------------------\n");
printf("---------- Menu ---------\n");
printf("-------------------------\n");
printf("1. Tambah Depan\n");
printf("2. Tambah Belakang\n");
printf("3. Hapus Depan\n");
printf("4. Hapus Belakang\n");
printf("5. Tampilkan semua data\n");
printf("6. Clear\n");
printf("7. Keluar\n");
printf("-------------------------\n\n");
printf("Masukkan pilihan : ");scanf("%d",&pilihan);
switch(pilihan)
{
case 1: printf("NIM: ");scanf("%d",&nim);
printf("\nNama: ");scanf("%s",&nama);
printf("\nNilai: ");scanf("%d",&nilai);
tambahDepan(nim,nama,nilai);
break;

case 2: printf("NIM: ");scanf("%d",&nim);
printf("\nNama: ");scanf("%s",&nama);
printf("\nNilai: ");scanf("%d",&nilai);
tambahBelakang(nim,nama,nilai);
break;

case 3: printf("Elemen yang dihapus : ");"%d",hapusDepan();
break;

case 4: printf("Elemen yang dihapus : ");"%d",hapusBelakang();
break;

case 5: tampil();
break;

case 6: clear();
printf("Data sudah di delete!\n");
break;
}
getch();
}
while(pilihan!=7);
}











semua berjalan normal, cuman bagian fungsi tampil() ada yang error, yang ane warnain merah yang menurut ane penyebabnya..



klo dicompile ga ada yang error, tpi ketika di run dan memanggil fungsi tampil(), jadinya error



mohon petunjuk mastah :shakehand:

</div>