Mengurutkan Elemen Array

9.5. Mengurutkan Elemen Array

Ada banyak sekali metode untuk berubah atau tidak. Jika nilai mengurutkan data, antara lain

indek mengalami perubahan Exchange Sort, Selection Sort,

maka data ke-1 ditukar dengan Insertion Sort, Bubble Sort, Quick

data indek.

Sort, Shell Sort, Binary Insertion Sort,

2. Pada proses 2: variabel indek dan masih banyak lagi.

diberi nilai 2 (data ke-2) kemudian Dari sekian banyak metode,

data indek dibandingkan dengan hanya metode Exchange Sort,

data ke-3. Jika data indek lebih Bubble Sort, dan Insertion Sort saja

besar maka nilai indeknya diganti yang akan kita bahas karena ketiga

dengan 3 (data ke-3). metode ini merupakan metode yang

Kemudian data indek paling mudah dan banyak digunakan.

dibandingkan lagi dengan data Untuk metode Selection Sort

ke-4, lebih besar? Nilai indek langkah-langkahnya adalah sebagai

ditukar! Demikian seterusnya. berikut :

Setelah selesai, nilai indek

1. Proses 1: variabel indek diberi diperiksa apakah nilai indek nilai 1 (data ke-1) kemudian data

berubah atau tidak. Jika nilai indek dibandingkan dengan data

indek mengalami perubahan ke-2. Jika data indek lebih besar

maka data ke-2 ditukar dengan maka nilai indeknya diganti

data indek. dengan 2 (data ke-2), jika tidak 3. Demikian untuk proses

nilai indeknya tetap. selanjutnya dimana banyak Kemudian data indek prosesnya adalah jumlah elemen dibandingkan lagi dengan data

array dikurangi satu.

ke-3, lebih besar? Nilai indek Berikut program lengkap metode ditukar! Demikian seterusnya.

Selection Sort dalam bahasa C++ Setelah selesai, nilai indek adalah:

diperiksa apakah nilai indek

Direktorat Pembinaan SMK | 2008

Array Bahasa Pemrorgraman

Program 9.6 #include <iostream>

using namespace std;

int a[ 10 ]; void input(int data,int i) { a[i] = data; } void tampil() {

for(int i= 0 ; i< 10 ; i++) cout << a[i] << " " ; cout << endl; } void tukar(int data1, int data2) {

long temp = a[data1]; a[data1] = a[data2]; a[data2] = temp;

} void selectionSort() {

int i,j,indek; for(i= 0 ; i< 5 ‐ 1 ; i++) { indek=i;

for(j=i+ 1 ; j< 5 ; j++) if(a[indek] > a[j] ) indek=j;

tukar(i,indek); } } void main() {

input( 57 , 0 ); input( 89 , 1 ); input( 49 , 2 ); input( 51 , 3 ); input( 12 , 4 ); input( 90 , 5 );

input( 1 , 6 ); input( 0 , 7 );

input( 63 , 8 ); input( 25 , 9 );

tampil(); selectionSort();

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Array

tampil(); }

Keluaran program diatas adalah sebagai berikut :

Metode Bubble Sort mempunyai

3. Demikian seterusnya sampai data langkah-langkah sebagai berikut :

terakhir, sehingga data

1. Membandingkan data ke-1 kedudukannya akan bergeser- dengan data ke-2, jika data ke-1

geser.

lebih besar, maka kedua data

4. Untuk proses 2, pembandingan ditukar.

(pergeseran data) hanya sampai

2. Kemudian membandingkan data pada data terakhir dikurangi satu. ke-2 dengan data ke-3, jika data

Kode program lengkapnya dalam

ke-2 lebih besar, kedua data bahasa C++ adalah sebagai berikut : ditukar lagi.

Program 9.7 #include <iostream>

using namespace std;

int a[ 10 ]; void input(int data,int i) { a[i] = data; } void tampil() {

for(int i= 0 ; i< 10 ; i++) cout << a[i] << " " ; cout << endl; } void tukar(int data1, int data2) {

long temp = a[data1]; a[data1] = a[data2]; a[data2] = temp;

} void bubSort() {

int i, j; for(i= 10 ‐ 1 ; i> 1 ; i‐‐)

for(j= 0 ; j<i; j++) if( a[j] > a[j+ 1 ] ) tukar(j, j+ 1 );

Direktorat Pembinaan SMK | 2008

Array Bahasa Pemrorgraman

void main() { input( 57 , 0 ); input( 89 , 1 ); input( 49 , 2 ); input( 51 , 3 ); input( 12 , 4 ); input( 90 , 5 );

input( 1 , 6 ); input( 0 , 7 );

input( 63 , 8 ); input( 25 , 9 );

tampil(); bubSort(); tampil();

Keluaran program diatas adalah sebagai berikut:

Metode Insertion Sort mirip sampai dengan data terakhir. dengan cara orang mengurutkan  Jika ditemukan data yang lebih kartu selembar demi selembar, kartu

kecil atau lebih besar, maka akan diambil dan disisipkan (insert) ke

ditempatkan (diinsert) diposisi tempat yang seharusnya. Adapun

yang seharusnya

langkah-langkahnya adalah sebagai Program selengkapnya dalam berikut :

bahasa C++ adalah :

 Pengurutan dimulai dari data ke-2

Program 9.8. #include <iostream>

using namespace std;

int a[ 10 ]; void input(int data,int i) { a[i] = data; } void tampil() {

for(int i= 0 ; i< 10 ; i++) cout << a[i] << " " ; cout << endl; } void insertionSort() {

2008 | Direktorat Pembinaan SMK

Bahasa Pemrograman Array

int i,j; for(i= 1 ; i< 10 ; i++) { long temp = a[i]; j=i;

while(j> 0 && a[j‐ 1 ] >= temp) { a[j] = a[j‐ 1 ];

‐‐j;

} a[j] = temp;

} } void main() {

input( 57 , 0 ); input( 89 , 1 ); input( 49 , 2 ); input( 51 , 3 ); input( 12 , 4 ); input( 90 , 5 );

input( 1 , 6 ); input( 0 , 7 );

input( 63 , 8 ); input( 25 , 9 );

Keluaran programnya adalah sebagai berikut: