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: