Membuat Animasi pada C++ 1

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 (); }

copy Source Code d'atas...
Untuk penjelasannya,,bisa kirim ke "Contact Me" di atas..
Thax










Label:

Posting Komentar

MKRdezign

Formulir Kontak

Nama

Email *

Pesan *

Diberdayakan oleh Blogger.
Javascript DisablePlease Enable Javascript To See All Widget