24 Apr 2011

Array berdimensi dua

Operasi yang umumnya dilakukan menggunakan array adalah :
- Mengurutkan bilangan terbesar / terkecil (bubble sort)
- Seleksi data ( selection sort)
- Mengurutkan data dengan metode penyisipan(insertion sort)

Kali ini saya mencoba program mengurutkan data menggunakan metode "bubble sort".
metode pengurutan gelembung (bubble sort) mempunyai perilaku seperti gelembung di mana bila akan diurutkan naik, nilai yang besar akan naik (indeks besar) sementara nilai yang kecil akan turun (ke indeks yang kecil). Setiap data (data pertama) akan dibandingkan dengan data yang ada disebelahnya (dari data kedua sampai selesai). Bila data pertama lebih besar drai data yang sesudahnya, dilakukan penukaran tempat atau posisi data. demikian, sampai data tesebut berurut.
    Berikut contoh Algoritm pengurutan data "bubble sort"

  • Algoritma :     

                    Deklarasi :
                                larik = aray [1..100] of integer
                                i, a : byte
                                k    : larik
                                j, bantu : integer 
      
                    Deskripsi :
                    for i ß 1 to n-1 do
                    for j ß i+1 to n do
                    if x[i] > x[j] then // data sebelah kiri > kanan
        tukar(x[i], x[j])
        endif
                    endfor
                                endfor
  • Data Uji :        

  Data awal :
[8, 4, 7, 3, 1, 2, 6, 5]

  fase 1
[1, 8, 7, 4, 3, 2, 6, 5]

  fase 2
[1, 2, 8, 7, 4, 3, 6, 5]

  fase 3
[1, 2, 3, 8, 7, 4, 6, 5]

  fase 4
[1, 2, 3, 4, 8, 7, 6, 5]

  fase 5
[1, 2, 3, 4, 5, 8, 7, 6]

  fase 6
[1, 2, 3, 4, 5, 6, 8, 7]

  fase 7
[1, 2, 3, 4, 5, 6, 7, 8]

  fase 8
[1, 2, 3, 4, 5, 6, 7, 8]


  • Bahasa C++
#include <iostream.h>
#include <conio.h>

void main()
{
   int data[10];
   int i, j, tmp;
   cout<<"Program Mengurutkan Data"<<endl;
   cout<<"Dengan Metode Bubble Sort"<<endl;
   for(i=0; i<10; i++)
   {
       cout<<"Masukkan data ke "<<(i+1)<<" : ";
      cin>>data[i];
   }

   clrscr();
   cout<<"Data sebelum diurutkan : "<<endl;
   for(i=0; i<10; i++)
   {
       cout<<data[i]<<" ";
   }
   cout<<endl;
for(i=0; i<9; i++)
   {
       for(j=i+1; j<10; j++)
      {
          if(data[i]>data[j])
         {
             tmp = data[i];
            data[i] = data[j];
            data[j] = tmp;
         }
      }
   }

   cout<<"Data setelah diurutkan : "<<endl;
   for(i=0; i<10; i++)
   {
       cout<<data[i]<<" ";
   }
   getch();
}

Tidak ada komentar:

Posting Komentar