Kemarin kita udach belajar banyak tentang pengulangan atau yang kita sebut dengan Looping,,sekarang dengan meggunakan teknik loping kita membuat Animasi..
Langsung ajaa kita ke Source Code :
#include <iostream.h>
#include <stdio>
#include <conio.h>
#include <malloc.h>
#include <dos.h>
delay (int d);
delay (int d)
{
for (int x=0; x<d*100; x++)
{
for (int y=0; y<d*100; y++)
{}
}
}
void animasi()
{
_setcursortype(_NOCURSOR);
//kiri delay
textcolor(4);
gotoxy(29,11);cprintf(">");
delay(100);
textcolor(6);
gotoxy(30,11);cprintf(">");
delay(100); //smkin gd nile na smkn lmbat
textcolor(7);
gotoxy(31,11);cprintf(">");
//tengah-tengah
textcolor(3);
gotoxy(33,11);cprintf("Program Linked List");
//kanan delay
textcolor(4);
gotoxy(53,11);cprintf("<");
delay(100);
textcolor(6);
gotoxy(54,11);cprintf("<");
delay(100);
textcolor(7);
gotoxy(55,11);cprintf("<");
//mulai stikom bali
sleep(2);
textcolor(1);
gotoxy(46,13);cprintf("I");
delay(100);
textcolor(0);
gotoxy(46,13);cprintf(" ");
textcolor(2);
gotoxy(45,13);cprintf("L");
delay(100);
textcolor(0);
gotoxy(45,13);cprintf(" ");
textcolor(3);
gotoxy(44,13);cprintf("A");
delay(100);
textcolor(0);
gotoxy(44,13);cprintf(" ");
textcolor(4);
gotoxy(43,13);cprintf("B");
delay(100);
textcolor(0);
gotoxy(43,13);cprintf(" ");
textcolor(5);
gotoxy(42,13);cprintf("M");
delay(100);
textcolor(0);
gotoxy(42,13);cprintf(" ");
textcolor(6);
gotoxy(41,13);cprintf("O");
delay(100);
textcolor(0);
gotoxy(41,13);cprintf(" ");
textcolor(7);
gotoxy(40,13);cprintf("K");
delay(100);
textcolor(0);
gotoxy(40,13);cprintf(" ");
textcolor(8);
gotoxy(39,13);cprintf("I");
delay(100);
textcolor(0);
gotoxy(39,13);cprintf(" ");
textcolor(9);
gotoxy(38,13);cprintf("T");
delay(100);
textcolor(0);
gotoxy(38,13);cprintf(" ");
textcolor(10);
gotoxy(37,13);cprintf("S");
delay(100);
textcolor(0);
gotoxy(37,13);cprintf(" ");
//balik
gotoxy(36,13);cprintf("S");
delay(100);
textcolor(10);
gotoxy(36,13);cprintf("S");
textcolor(15);
gotoxy(37,13);cprintf("T");
delay(100);
textcolor(9);
gotoxy(37,13);cprintf("T");
textcolor(15);
gotoxy(38,13);cprintf("I");
delay(100);
textcolor(8);
gotoxy(38,13);cprintf("I");
textcolor(15);
gotoxy(39,13);cprintf("K");
delay(100);
textcolor(7);
gotoxy(39,13);cprintf("K");
textcolor(15);
gotoxy(40,13);cprintf("O");
delay(100);
textcolor(6);
gotoxy(40,13);cprintf("O");
textcolor(15);
gotoxy(41,13);cprintf("M");
delay(100);
textcolor(5);
gotoxy(41,13);cprintf("M");
textcolor(15);
gotoxy(42,13);cprintf("B");
delay(100);
textcolor(4);
gotoxy(42,13);cprintf("B");
textcolor(15);
gotoxy(43,13);cprintf("A");
delay(100);
textcolor(3);
gotoxy(43,13);cprintf("A");
textcolor(15);
gotoxy(44,13);cprintf("L");
delay(100);
textcolor(2);
gotoxy(44,13);cprintf("L");
textcolor(15);
gotoxy(45,13);cprintf("I");
delay(100);
textcolor(1);
gotoxy(45,13);cprintf("I");
textcolor(15);
sleep(5);
clrscr();
delay(100);
clrscr();
}
typedef struct Node *Pnode;
struct Node
{
int info;
Pnode next;
};
void inisialisasi(Pnode *Head,Pnode *Tail)
{
*Head = *Tail =NULL;
}
Pnode CreateNode(int Data)
{
Pnode node_baru;
node_baru = (Pnode) malloc (sizeof (Node));
node_baru->info = Data;
node_baru->next = NULL;
return (node_baru);
}
void InsertFirst(Pnode *Head,Pnode *Tail, int Data)
{
Pnode node_baru;
node_baru = CreateNode(Data);
if(*Head==NULL)
{*Head = *Tail = node_baru;}
else
{node_baru->next = *Head;
*Head = node_baru;}
}
void DeleteFirst(Pnode *Head,Pnode *Tail)
{
Pnode bantu;
if (*Head == NULL)
{gotoxy(21,8);cout<<"List Kosong";}
else if (*Head == *Tail)
{
free(*Head);
*Head=*Tail=NULL;
gotoxy(21,10);cout<<"Node Berhasil Dihapus, Saat ini List Kosong";
}
else
{
bantu = *Head;
*Head = (*Head)->next;
free(bantu);
gotoxy(21,12);cout<<"Node Awalberhasil dihapus";
}
}
void InsertLast(Pnode *Head,Pnode *Tail, int Data)
{
Pnode node_baru;
node_baru = CreateNode(Data);
if(*Head==NULL)
{*Head = *Tail = node_baru;}
else
{(*Tail)->next = node_baru;
*Tail = node_baru;}
}
void DeleteLast (Pnode *Head,Pnode *Tail)
{
Pnode bantu;
if (*Head == NULL)
{gotoxy(21,8);cout<<"List Kosong";}
else if (*Head == *Tail)
{
free(*Head);
*Head=*Tail=NULL;
gotoxy(21,10);cout<<"Node berhasil dihapus, saat in ilist kosong";
}
else
{
bantu = *Head;
while (bantu->next != *Tail)
{
bantu = bantu->next;
}
free(*Tail);
bantu->next = NULL;
*Tail = bantu;
gotoxy(21,12);cout<<"Node Akhir Berhasil Dihapus";
}
}
//void Print(Pnode Head)
//{
//Pnode bantu;
//if (Head != NULL)
//{
// bantu = Head;
//while (bantu != NULL)
//{
// cout<<bantu->info<<" ->";
// bantu = bantu->next;
// }
// }
// else
// {cout<<"List Kosong";}
//}
void InsertAfter (Pnode *Head , Pnode *Tail, int Data, int posisi)
{
Pnode node_baru,bantu;
int jml_node,x;
if(*Head==NULL)
{InsertFirst(Head,Tail,Data);}
else
{
jml_node =1;
bantu = *Head;
while(bantu->next != NULL)
{ bantu = bantu->next;
jml_node++; }
if (posisi<=1)//insert di awal
{InsertFirst (Head ,Tail ,Data);}
else if (posisi>jml_node) //insert di akhir
{InsertLast (Head, Tail, Data);}
else
{
node_baru = CreateNode (Data);
bantu = *Head ;
x=1;
while (x < (posisi-1))
{bantu = bantu->next;
x++;}
node_baru->next = bantu->next;
bantu->next = node_baru;
}
}
}
void DeleteAfter (Pnode *Head, Pnode *Tail, int posisi)
{
Pnode bantu, bantu2;
int jml_node, x;
if (*Head == NULL)
{cout<<"List Kosong";}
else
{
jml_node =1;
bantu = *Head;
//menghitung jumlah node
while (bantu->next !=NULL)
{ bantu = bantu->next;
jml_node++;}
if((posisi<1) || (posisi > jml_node))
{cout<<"posisi diluar jangkauan."<<endl;}
else if (posisi==1)
{DeleteFirst (Head, Tail);}
else if (posisi==jml_node)
{DeleteLast (Head, Tail);}
else
{
bantu = *Head;
x=1;
while (x<(posisi-1))
{ bantu = bantu->next;
x++;}
bantu2=bantu->next;
bantu->next = bantu2->next;
free (bantu2);
}
}
}
int Searching (Pnode Head, int data)
{
Pnode bantu;
int posisi=1, ketemu=0;
bantu = Head;
while ((bantu !=NULL) && (ketemu==0))
{
if (bantu->info==data)
{ketemu=1;}
else
{
bantu=bantu->next;
posisi++;
}
}
if (ketemu == 1)
return posisi;
else
return 0;
}
void main ()
{
int c,a;
char bes=196,b=219,d=179;
int pilihan,baru,data,posisi;
Pnode head, tail;
inisialisasi (&head, &tail);
do
{
animasi();
lagi:
clrscr();
for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
gotoxy(62,1+c);printf("%c",d);
gotoxy(63,1+c);printf("%c",b);
}
textcolor(10);gotoxy(21,8);cprintf("1. Insert Node di awal List\n");
textcolor(9);gotoxy(21,9);cprintf("2. Insert Node di akhir List\n");
textcolor(8);gotoxy(21,10);cprintf("3. Mengapus Node awal List\n");
textcolor(7);gotoxy(21,11);cprintf("4. Menghapus Node akhir dari List\n");
textcolor(6);gotoxy(21,12);cprintf("5. Menambahkan Data pada posisi tertentu\n");
textcolor(5);gotoxy(21,13);cprintf("6. Menghapus Data pada posisi tertentu\n");
textcolor(4);gotoxy(21,14);cprintf("7. Mencari Data dalam list\n");
// cout<<"8. Print Data dalam List"<<endl;
cout<<endl;
textcolor(3);gotoxy(21,18);cprintf("Pilihan = ");
cin>>pilihan;
clrscr();
switch(pilihan)
{
case 1:
{
for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
}
gotoxy(28,2);cout<<"Insert Node di awal List";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
cout<<endl;
gotoxy(21,10);cout<<"Data yang akan di tambahkan = ";
cin>>baru;
InsertFirst(&head,&tail,baru);
gotoxy(21,12);cout<<"Data Berhasil Ditambahkan"<<endl;
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
getch ();
break; }
case 2:
{for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
} gotoxy(28,2);cout<<"Insert Node di akhir List";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
cout<<endl;
gotoxy(21,10);cout<<"Data yang akan di tambahkan = ";
cin>>baru;
InsertLast(&head,&tail,baru);
gotoxy(21,12);cout<<"Data Berhasil Ditambahkan"<<endl;
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
getch ();
break;}
case 3:
{for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
} gotoxy(28,2);cout<<"Mengapus Node awal List";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{gotoxy(21,8);cout<<"List Kosong";}
cout<<endl;
DeleteFirst(&head,&tail);
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
getch ();
break;}
case 4:
{for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
} gotoxy(28,2);cout<<"Menghapus Node akhir dari List";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{gotoxy(21,8);cout<<"List Kosong";}
cout<<endl;
DeleteLast(&head,&tail);
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
getch ();
break;}
case 5:
{for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
} gotoxy(28,2);cout<<"Menambahkan Data pada posisi tertentu";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{gotoxy(21,8);cout<<"List Kosong";}
cout<<endl;
gotoxy(21,10);cout<<"Insert Data = ";
cin>>baru;
gotoxy(21,12);cout<<"Insert Posisi = ";
cin>>posisi;
InsertAfter(&head,&tail, baru, posisi);
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
//Print (head);
getch ();
break;}
case 6:
{for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
}gotoxy(28,2);cout<<"Menghapus Data pada posisi tertentu";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{gotoxy(21,8);cout<<"List Kosong";}
cout<<endl;
gotoxy(21,10);cout<<"Posisi yang akan dihapus : ";
cin>>posisi;
DeleteAfter(&head, &tail, posisi);
gotoxy(21,14);cout<<"Kondisi List saat ini : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{cout<<"List Kosong";}
//Print(head);
getch ();
break;}
case 7:
{
for(a=1;a<53;a++)
{
gotoxy(14+a,3);printf("%c",bes);
gotoxy(14+a,4);printf("%c",b);
gotoxy(14+a,22);printf("%c",bes);
gotoxy(14+a,21);printf("%c",b);
}
for(c=1;c<23;c++)
{
gotoxy(18,1+c);printf("%c",b);
gotoxy(19,1+c);printf("%c",d);
}gotoxy(28,2);cout<<"Mencari Data dalam list";
Pnode bantu;
gotoxy(21,8);cout<<"List Sebelumnya : ";
if (head != NULL)
{
bantu = head;
while (bantu != NULL)
{
cout<<bantu->info<<" ->";
bantu = bantu->next;
}
}
else
{gotoxy(21,8);cout<<"List Kosong";}
cout<<endl;
if (head==NULL)
{gotoxy(21,8);cout<<"List Kosong";}
else
{
gotoxy(21,10);cout<<"data yang ingin dicari : ";
cin>>data;
posisi = Searching (head, data);
if (posisi==0)
{ gotoxy(21,12);cout<<"data yang dicari tidak ada";}
else
{ gotoxy(21,14);cout<<"data ada pada posisi : "<<posisi;}
}
getch ();
break;}
//case 8:
//{ Print(head);
// getch ();
// break;}
default:
{ cout<<"tidak ada dalam pilihan"<<endl;
goto lagi;}
}
}while(pilihan>=1 && pilihan<=8);
getch (); }
0 comments:
Post a Comment