Jumat, 31 Oktober 2008

ARRAY

Array adalah sekumpulan data yang menggunakan nama variable yang sama. Tiap-tiap nilai dari array disebut sebagai elemen dan memiliki index. Setiap elemen array adalah sebuah variable juga.

METODE PENGURUTAN (SORTING)

Adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu secara teratur sesuai aturan tertentu. Dalam melakukan pengurutan data ada beberapa metode yang dapat kita gunakan,antara lain:

* Buble short : Mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Banyak orang mengatakan metode ini merupakan metode termudah karena proses pengurutanya secara bertahap -tahap berpindah keposisi yang tepat,seperti gelembung-gelembung oleh karena itu dinamakan buble.

/*********************************************

* Demonstration program of Bubble sorting *

* (about n*n comparisons used). *

* ------------------------------------------ *

* Reference: "A book on C By Al Kelley and *

* Ira Pohl, The Benjamin/Cummings Publishing *

* Company, Inc, 1984" [BIBLI 09]. *

* *

* C++ version by J-P Moreau. *

* ------------------------------------------ *

* SAMPLE RUN: *

* *

* Initial table A: *

* 7 3 66 3 -5 22 -77 2 36 -12 *

* *

* Sorted table A: *

* -77 -12 -5 2 3 3 7 22 36 66 *

* *

*********************************************/

#include

//return p,q in ascending order

void Order(int *p,int *q) {

int temp;

if(*p>*q) {

temp=*p;

*p=*q;

*q=temp;

}

}

//Buuble sorting of integer array A[]

void Bubble(int *a,int n) {

int i,j;

for (i=0; i

for (j=n-1; i

Order(&a[j-1], &a[j]);

}

void main() {

int i,n=10;

static int a[] = {7,3,66,3,-5,22,-77,2,36,-12};

printf("\n\n Initial table A:\n");

for(i=0; i

printf(" %d ",a[i]);

Bubble(a,n);

printf("\n\n Sorted table A:\n");

for(i=0; i

printf(" %d ",a[i]);

printf("\n\n");

}

//end of file bubble.cpp

* Exchange Sort : metode ini sangat mirip dengan metode buble sort. Perbedaannya exchange sort membandingkan suatu elemen dengan elemen-elemen laenya dalam array tersebut, trus melakukan pertukaran bila perlu. Nah kalo buble sort yang dibandingkan elemen pertama/ terakhir dengan eleman sebelumnya/sesudahnya,kemudian elemen teersebut alan menjadi pusat untuk dibandingkan dengan elemen sesudahnya/sebelumnya lagi,begitu…ampe selesai yang ngurutin datanya.

* Insertion Sort : Mengurutkan datanya dimulai dari yang ke-2 ampe yang terakhir,jika ditemukan data yang lebih kecil,maka akan ditempatkan/diinsert diposisi seharusnya. Kayak maen kartu itu lah..misal poker..

* Shell short : Mengurutkan data dengan cara membangdingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga dibentuk sub_list,kemudian dilakukan pertukaran jika diperlukan.

* Quick short

CONTOH PROGRAM MENGGUNAKAN ARRAY METODE BUBLE SHORT :

//sort.cpp=program penyortiran array

#include

const int MIN=2;

const int MAX=10;

int getNumPoint(int low, int high)

{

int NumPoint;

do

{

cout<<"Tuliskan jumlah bilangan bulat dalam array["<>NumPoint;

}

while(NumPointshigh);

return NumPoint;

}

void inputArray(int intArr[],int num)

{

//meminta anda untuk menuliskan elemen-elemen array

for(int i=0;i

{

cout<<"array["<

cin>>intArr[i];

}

}

void showArray(int intArr[],int num)

{

for(int i=0;i

{

cout.width(5);

cout<

}

cout<

}

void bublesort(int intArr[],int num)

{

for(int i=1;i

for(int j=0;j<=i;++j)

if(int intArr[i]

{

int temp=intArr[i];

intArr[i]=intArr[j];

intArr[j]=temp;

}

}

int main()

{

int arr[MAX];

int num_elem;

num_elem=getNumPoint(MIN,MAX);

inputArray(arr,num_elem);

cout<<"Array tidak diurutkan:"<

showArray(arr,num_elem);

bublesort(arr,num_elem);

cout<

showArray(arr,num_elem);

return 0

}

Ket :

Baris-baris program 8-20 akan meminta andauntuk menuliskan banyaknya bilanagn bulat dengan pembatasan 2 sampai 10 bilangan (lihat baris 59) dan jika tidak program akan terus menerus meminta kepada anda untuk menuliskan jumlah yang benar,yaitu 2 sampai 10. (perhatikan perulangan do-while pada baris 12-17).

Baris program 22-30 adalah fungsi yang akan menginput bilangan-bilangan yang anda tuliskan ke dalam setiap elemen array kemudian ditampilkan dengan fungsi show array yang ada pada baris program 32-40.

Fungsi bubleshort yang ada pada baris program 42-52 adalah proses untuk mengurutkan elemen-elemen array. Fungsi ini akan membandingkan setiap eleman dengan elemen sebelumnya dalam suatu array (int intArr[i] dibandingkan dengan int intArr[j]). Jika elemen yang dibandingkan lebih kecil dari elemen sebelumnya maka dilakukan pertukaran urutan dengan cara swap (pertukaran isi variable) sebagaimana tercermin dalam baris program 46-51.

Baris-baris program pada main () akan meminta anda menentukan banyaknya dan nilai masing-masing elemen array untuk kemudian ditampilkan tanpa diurutkan. Pada baris program 63 elemen-elemen yang anda tuliskan akan diurutkan dengan cara sebagaimana telah dijelaskan dalam paragraf sebelumnya untuk ditampilkan dengan baris program 65.(hal 77 – 79)

//sumber : Tuntunan P raktis Pemrograman BorlandC++ 5

Drs. Setiaadi, Ak, MBA

©1998, PT Elex Media Komputindo kelompok PT Gramedia, Jakarta

Tidak ada komentar: