Struktur data pertemuan 10

 NAMA : Fikriansyah

NIM       : 191011400352

KELAS    : 03TPLE021

PERTEMUAN 10

1. Buat program animasi Stack menggunakan Linked List tanpa Head untuk mengelola data mahasiswa dengan struktur mahasiswa sbb : NAMA, NIM, GENDER, NILAI STRUKTUR DATA. Program dibuat dalam bentuk menu dengan pilihan : INSERT DATA, HAPUS DATA, CETAK DATA, EXIT. 


 *program: 

#include<iostream>

#include<conio.h>

#include<stdlib.h>

using namespace std;

struct SIMPUL{

                char NAMA[30];

                char NIM[15];

                char GENDER;

                int NILAI;

                struct SIMPUL*LINK;

};

SIMPUL *P,*Q,*FRONT,*REAR;

void BUAT_SIMPUL(void);

void INIT (void);

void INSERT(void);

void DELETE(void);

void CETAKLAYAR(void);

void FREE_MEMORY(void);

int PIL;

char PILIHAN[1],huruf;

using namespace std;

int main(void)

{

INIT();

do

{

system("cls");

cout<<" =============================================="<<endl;

cout<<" = ABDUL AJIJI  | 191011401517 ="<<endl;

cout<<" =============================================="<<endl;

cout<<" =         STACK SINGLE LINGKED LIST          ="<<endl;

cout<<" =============================================="<<endl;

cout<<" 1.INSERT DATA"<<endl;

cout<<" 2.HAPUS DATA"<<endl;

cout<<" 3.CETAK DATA"<<endl;

cout<<" 4.EXIT"<<endl;

cout<<" PILIHAN(1-4): ";cin>>PILIHAN;

PIL=atoi(PILIHAN);

switch (PIL)

{

case 1:

INSERT();

break;

case 2:

DELETE();

break;

case 3:

CETAKLAYAR();

break;

default:

18;

cout<<endl<<" TERIMAKASIH"<<endl<<endl;

FREE_MEMORY();

break;

}

}while(PIL<4);

}

void BUAT_SIMPUL(void)

{

P=(SIMPUL*)malloc(sizeof(SIMPUL));

if (P!=NULL)

{

cout<<"nama \t: ";cin>>P->NAMA;

cout<<"nim \t: ";cin>>P->NIM;

cout<<"gender \t: ";cin>>P->GENDER;

cout<<"nilai \t: ";cin>>P->NILAI;

}

else

{

cout<<" pembuatan simpul gagal"<<endl;

getchar();

exit(1);

}

}

void INIT(void)

{

FRONT=NULL;

REAR=NULL;

}

void INSERT(void)

{

BUAT_SIMPUL();

if(FRONT==NULL)

{

FRONT=P;

REAR=P;

REAR->LINK=NULL;

}

else

{

REAR->LINK=P;

REAR=P;

REAR->LINK=NULL;

}

}

void DELETE(void)

{

if(FRONT==NULL)

{

cout<<" data belum ada"<<endl;

getchar();

}

else

{

Q=FRONT->LINK;

free(FRONT);

FRONT=Q;

if(FRONT==NULL)

19;

INIT();

cout<<" data terakhir di hapus"<<endl;

getch();

}

}

void CETAKLAYAR(void)

{

int i=1;

if(FRONT!=NULL)

{

Q=FRONT;

while(Q!=NULL)

{

cout<<"\n data ke- \t: "<<i++<<endl;

cout<<" NAMA \t\t: "<<Q->NAMA<<endl;

cout<<" NIM \t\t: "<<Q->NIM<<endl;

cout<<" GENDER \t\t: "<<Q->GENDER<<endl;

cout<<" NILAI \t\t: "<<Q->NILAI<<endl;

Q=Q->LINK;

cout<<endl;

}

}

else

cout<<" Data kosong"<<endl;

getch();

}

void FREE_MEMORY(void)

{

while(FRONT!=NULL)

{

Q=FRONT->LINK;

free(FRONT);

FRONT=Q;

}

}

 

Komentar