Monday, July 2, 2012

Second Attempt at Unfolding

Lagi nyoba buat papercraft hasil unfold sendiri, walaupun desain bukan punya sendiri :p

btw, nih yang mau saya coba...



Pasti tau lah kalo pernah main Armored Core.. :D
yep, ini kepala H-11 Queen, walaupun cuma main Armored Core V, tapi seenggaknya udah pernah ngerasain sensasi mainnya :p

Masi delay sementara, gara-gara gak ada uang sama masi UAS -__-
Untuk sementara, tunggu tanggal mainnya :D

Struktur Data : Struct, Sorting and Searching

Pos pertama saya dalam bahasa Indonesia :D
Pos pertama ini akan saya persembahkan untuk Source Code Borland C++.
Berikut adalah contoh source code yang saya dapat dari teman saya, yang juga tugas kelas Struktur Data saya yang lalu....
#include <iostream.h>
#include <conio.h>


delay(int Z);
delay(int Z)
{
    for(int x=0;x<Z*100;x++)
   {
   for(int y=0;y<Z*100;y++)
   {}
   }
}

struct artis
{
 char nama[100], alamat[100],pacar[100];
};
artis art[10000];
int honor[100],honor2[100];
int n;

void tukar(int a,int b)
{
int t;
t = honor[b];
honor[b] = honor[a];
honor[a] = t;
}

void bubble_sort()
{ clrscr();
  for(int i=1;i<n;i++)
   {
    for(int j=n-1;j>=i;j--)
     {
     if(honor[j]<honor[j-1]) tukar(j,j-1);
     }
     }
cout<<"Bubble Sort Success!"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<honor[i]<<" ";
}
cout<<endl;
}

void selection_sort()
{
clrscr();
int pos,i,j;
for(i=0;i<n-1;i++)
{
pos = i;
for(j = i+1;j<n;j++)
{
if(honor[j] < honor[pos]) pos = j;
}
if(pos != i) tukar(pos,i);
}
cout<<"Selection Sort Success!"<<endl;

cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<honor[i]<<" ";
}
cout<<endl;
}


void insertion_sort()
{
clrscr();
int temp,i,j;
for(i=1;i<n;i++)
{
temp = honor[i];
j = i -1;
while(honor[j]>temp && j>=0)
{
honor[j+1] = honor[j];
j--;
}
honor[j+1] = temp;
}
cout<<"Insertion Sort Success!"<<endl;
cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<honor[i]<<" ";
}
cout<<endl;
}


void QuickSort(int L, int R)
{ clrscr();
int i, j;
int mid;

i = L;
j = R;
mid = honor[(L+R) / 2];

do
{
while (honor[i] < mid) i++;
while (honor[j] > mid) j--;

if (i <= j)
{
tukar(i,j);
i++;
j--;
};
} while (i < j);

if (L < j) QuickSort(L, j);
if (i < R) QuickSort(i, R);

cout<<"Data : "<<endl;
for(int i=0;i<n;i++)
{
cout<<honor[i]<<" ";
}
cout<<endl;
}


void Input()
{
   gotoxy(15,3)  ;cout<<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
    gotoxy(15,4)  ;cout<<"º                 SET LIMIT                   º";
   gotoxy(15,5)  ;cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(15,6)  ;cout<<"º                       º                     º";
   gotoxy(15,7)  ;cout<<"º                       º     [        ]      º";
   gotoxy(15,8)  ;cout<<"º                       º                     º";
   gotoxy(15,9)  ;cout<<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
   gotoxy(49,7) ;cin>>n;
   clrscr();

      cout<<"================================================\n"
            "DATA INPUT\n"
            "================================================\n";
   for(int i=0;i<n;i++)
   {
        cout<<"Input 'Nama'         : ";cin>>art[i].nama;
      cout<<"Input 'Alamat'       : ";cin>>art[i].alamat;
        cout<<"Input 'Nama Pacar'   : ";cin>>art[i].pacar;
      cout<<"Honor"<<"                : ";cin>>honor[i];
      honor2[i] = honor[i];
        cout<<"----------------------------------------------"<<endl;
   }

}


void menu_Searching()
{
clrscr();
   gotoxy(12,2) ;cout<<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
    gotoxy(12,3) ;cout<<"º                                               º";
   gotoxy(12,4) ;cout<<"º                   SEARCHING                   º";
   gotoxy(12,5) ;cout<<"º                                               º";
    gotoxy(12,6) ;cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,7) ;cout<<"º                                               º";
    gotoxy(12,8) ;cout<<"º                                               º";
    gotoxy(12,9) ;cout<<"º [1] Sequential Search                         º";
   gotoxy(12,10);cout<<"º                                               º";
   gotoxy(12,11);cout<<"º [2] Binary     Search                         º";
   gotoxy(12,12);cout<<"º                                               º";
   gotoxy(12,13);cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,14);cout<<"º                                               º";
   gotoxy(12,15);cout<<"º Pick Your Choice   :   [         ]            º";
   gotoxy(12,16);cout<<"º                                               º";
   gotoxy(12,17);cout<<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";

}



void Menu_Sorting()
{
clrscr();
   gotoxy(12,2) ;cout<<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
    gotoxy(12,3) ;cout<<"º                                               º";
   gotoxy(12,4) ;cout<<"º              SORTING METHOD                   º";
   gotoxy(12,5) ;cout<<"º                                               º";
    gotoxy(12,6) ;cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,7) ;cout<<"º                                               º";
    gotoxy(12,8) ;cout<<"º [1] BUBBLE Sort                               º";
    gotoxy(12,9) ;cout<<"º [2] INSERTION Sort                            º";
   gotoxy(12,10);cout<<"º [3] QUICK Sort                                º";
   gotoxy(12,11);cout<<"º [4] SELECTION Sort                            º";
   gotoxy(12,12);cout<<"º                                               º";
   gotoxy(12,13);cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,14);cout<<"º                                               º";
   gotoxy(12,15);cout<<"º Pick Your Choice   :   [         ]            º";
   gotoxy(12,16);cout<<"º                                               º";
   gotoxy(12,17);cout<<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
}

void Menu()
{
clrscr();
    gotoxy(12,3) ;cout<<"ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»";
    gotoxy(12,4) ;cout<<"º                                                       º";
   gotoxy(12,5) ;cout<<"º                                                       º";
   gotoxy(12,6) ;cout<<"º                                                       º";
    gotoxy(12,7) ;cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,8) ;cout<<"º                                                       º";
    gotoxy(12,9) ;cout<<"º                                                       º";
    gotoxy(12,10);cout<<"º                                                       º";
   gotoxy(12,11);cout<<"º                                                       º";
   gotoxy(12,12);cout<<"º                                                       º";
   gotoxy(12,13);cout<<"º                                                       º";
   gotoxy(12,14);cout<<"º                                                       º";
   gotoxy(12,15);cout<<"ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹";
   gotoxy(12,16);cout<<"º                                                       º";
   gotoxy(12,17);cout<<"º                                                       º";
   gotoxy(12,18);cout<<"º                                                       º";
   gotoxy(12,19);cout<<"ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ";
   gotoxy(29,5) ;cout<<"S";delay(10);
   gotoxy(30,5) ;cout<<"O";delay(10);
   gotoxy(31,5) ;cout<<"R";delay(10);
   gotoxy(32,5) ;cout<<"T";delay(10);
   gotoxy(34,5) ;cout<<"A";delay(10);
   gotoxy(35,5) ;cout<<"N";delay(10);
   gotoxy(36,5) ;cout<<"D";delay(10);
   gotoxy(38,5) ;cout<<"S";delay(10);
   gotoxy(39,5) ;cout<<"E";delay(10);
   gotoxy(40,5) ;cout<<"A";delay(10);
   gotoxy(41,5) ;cout<<"R";delay(10);
   gotoxy(42,5) ;cout<<"C";delay(10);
   gotoxy(43,5) ;cout<<"H";delay(10);

   gotoxy(15,9) ;cout<<"[";delay(10);
   gotoxy(16,9) ;cout<<"1";delay(10);
   gotoxy(17,9) ;cout<<"]";delay(10);
   gotoxy(19,9) ;cout<<"I";delay(10);
   gotoxy(20,9) ;cout<<"N";delay(10);
   gotoxy(21,9) ;cout<<"P";delay(10);
   gotoxy(22,9) ;cout<<"U";delay(10);
   gotoxy(23,9) ;cout<<"T";delay(10);
   gotoxy(15,10) ;cout<<"[";delay(10);
   gotoxy(16,10) ;cout<<"2";delay(10);
   gotoxy(17,10) ;cout<<"]";delay(10);
   gotoxy(19,10) ;cout<<"S";delay(10);
   gotoxy(20,10) ;cout<<"E";delay(10);
   gotoxy(21,10) ;cout<<"A";delay(10);
   gotoxy(22,10) ;cout<<"R";delay(10);
   gotoxy(23,10) ;cout<<"C";delay(10);
   gotoxy(24,10) ;cout<<"H";delay(10);
   gotoxy(15,11) ;cout<<"[";delay(10);
   gotoxy(16,11) ;cout<<"3";delay(10);
   gotoxy(17,11) ;cout<<"]";delay(10);
   gotoxy(19,11) ;cout<<"E";delay(10);
   gotoxy(20,11) ;cout<<"X";delay(10);
   gotoxy(21,11) ;cout<<"I";delay(10);
   gotoxy(22,11) ;cout<<"T";delay(10);

   gotoxy(15,17) ;cout<<"P";delay(10);
   gotoxy(16,17) ;cout<<"I";delay(10);
   gotoxy(17,17) ;cout<<"C";delay(10);
   gotoxy(18,17) ;cout<<"K";delay(10);
   gotoxy(20,17) ;cout<<"Y";delay(10);
   gotoxy(21,17) ;cout<<"O";delay(10);
   gotoxy(22,17) ;cout<<"U";delay(10);
   gotoxy(23,17) ;cout<<"R";delay(10);
   gotoxy(25,17) ;cout<<"C";delay(10);
   gotoxy(26,17) ;cout<<"H";delay(10);
   gotoxy(27,17) ;cout<<"O";delay(10);
   gotoxy(28,17) ;cout<<"I";delay(10);
   gotoxy(29,17) ;cout<<"C";delay(10);
   gotoxy(30,17) ;cout<<"E";delay(10);
   gotoxy(33,17) ;cout<<":";delay(10);
   gotoxy(37,17) ;cout<<"[";delay(10);
   gotoxy(47,17) ;cout<<"]";delay(10);

}
int cari;

void main()
{
    char menu;

        do
        {
         Menu();
         int pil;
            gotoxy(42,17);cin>>pil;
            switch(pil)
            {
            case 1:
         {
         clrscr();
         Input();
         } break;

            case 2:
              {
             char sch;
             do
             { menu_Searching();
             int search;
             gotoxy(42,15);cin>>search;
                switch(search)
                {
                 case 1:
               {
                   clrscr();
                   int cari;
                   int flag=0;
                   int i;
                   input:

                    if (n<=100)
                     {
                       goto Input_data;
                     }
                      else if(n>100)
                     {
                     cout<<"INPUT ERROR!!";
                    getch();
                    clrscr();
                     goto input;
                      }
                      Input_data:


                     for(int i=0;i<n;i++)
                      {
                        cout<<"Honor >> "<<(i+1)<<"  : "<<honor[i]<<"\n";
                      honor2[i] = honor[i];
                       }

                      cout<<"Searching Data = ";cin>>cari;
                       i=0;
                      while(i<100)
                      {
                      if(honor[i]==cari)
                       {
                      flag=1;
                        }
                       i++;
                        }

                        if(flag==1)
                          {
                          cout<<"Data found!\n";
                           }
                            else
                           {
                            cout<<"Data isn't exist!\n";
                            }

                }break;

                case 2:
               {
               char srting;
                  do
                  {
                   Menu_Sorting();
                          int ctr;
                          gotoxy(42,15);cin>>ctr;

                             switch(ctr)
                                 {
                                     case 1:
                                       {
                                        bubble_sort();

                                         int left,right,middle,cari;
                                    int flag=0;
                                         left=0;
                              right=n-1;
                                         cout<<"Searching Data = ";cin>>cari;

                                        while(left<=right&&flag==0)
                              {
                                         middle=(left+right)/2;
                               cout<<"Middle Section = "<<honor[middle]<<endl;
                                         if(honor[middle]==cari)
                                             {
                                              flag=1;
                                             }
                                         else if(cari<honor[middle])
                                             {
                                              cout<<"Searching in Left Section...\n";
                                              right=middle-1;
                                 }

                                         else
                                             {
                                              left=middle+1;
                                 cout<<"Searching in Right Section...\n";
                                 }
                                 if(flag==1)
                                             {
                                             cout<<"Data found!\n";
                                 }
                                             else
                                             {
                                             cout<<"Data isn't exist!\n";
                                 }
                                            }
                                   }break;

                                   case 2:
                                   {

                                  insertion_sort();

                              int left,right,middle,cari;
                                    int flag=0;
                                         left=0;
                              right=n-1;
                                         cout<<"Searching Data = ";
                                         cin>>cari;

                                        while(left<=right&&flag==0)
                              {
                                         middle=(left+right)/2;
                               cout<<"Middle Section = "<<honor[middle]<<endl;
                                         if(honor[middle]==cari)
                                             {
                                              flag=1;
                                             }
                                         else if(cari<honor[middle])
                                             {
                                              cout<<"Searching in Left Section...\n";
                                              right=middle-1;
                                 }

                                         else
                                             {
                                              left=middle+1;
                                 cout<<"Searching in Right Section...\n";
                                 }
                                 if(flag==1)
                                             {
                                             cout<<"Data found!\n";
                                 }
                                             else
                                             {
                                             cout<<"Data isn't exist!\n";
                                 }
                                            }

                                       }break;

                                   case 3:
                           {
                                selection_sort();

                              int left,right,middle,cari;
                                    int flag=0;
                                         left=0;
                              right=n-1;
                                         cout<<"Searching Data =";
                                         cin>>cari;

                                        while(left<=right&&flag==0)
                              {
                                         middle=(left+right)/2;
                               cout<<"Middle Section = "<<honor[middle]<<endl;
                                         if(honor[middle]==cari)
                                             {
                                              flag=1;
                                             }
                                         else if(cari<honor[middle])
                                             {
                                              cout<<"Searching in Left Section...\n";
                                              right=middle-1;
                                 }

                                         else
                                             {
                                              left=middle+1;
                                 cout<<"Searching in Right Section...\n";
                                 }
                                 if(flag==1)
                                             {
                                             cout<<"Data found!\n";
                                 }
                                             else
                                             {
                                             cout<<"Data isn't exist!\n";
                                 }
                                            }
                           }break;

                                   case 4:
                                   {
                                       QuickSort(0,n-1);

                            int left,right,middle,cari;
                                    int flag=0;
                                         left=0;
                              right=n-1;
                                         cout<<"Searching Data = ";cin>>cari;

                                        while(left<=right&&flag==0)
                              {
                                         middle=(left+right)/2;
                               cout<<"Middle Section = "<<honor[middle]<<endl;
                                         if(honor[middle]==cari)
                                             {
                                              flag=1;
                                             }
                                         else if(cari<honor[middle])
                                             {
                                              cout<<"Searching in Left Section...\n";
                                              right=middle-1;
                                 }

                                         else
                                             {
                                              left=middle+1;
                                 cout<<"Searching in Right Section...\n";
                                 }
                                 if(flag==1)
                                             {
                                             cout<<"Data found!\n";
                                 }
                                             else
                                             {
                                             cout<<"Data isn't exist!\n";
                                 }
                                            }
                                   }break;

                              }
                                      cout<<" Return to Sort option? [Y/N]: ";
                                      cin>>srting;
                                      }while((srting=='Y')||(srting=='y'));

                }break;

             }cout<<" Return to Search option ? [Y/N] : ";cin>>sch;
                     }while((sch=='Y')||(sch=='y'));
           }
           case 3:
           { }
         }

         cout<<"Return to Main Menu ? [Y/N] : ";cin>>menu;
    }
   while((menu=='Y')||(menu=='y'));
getch();

}

Selamat Mencoba! :D