Anda di halaman 1dari 5

Algoritma & Pemrograman 1A

PENGURUTAN BILANGAN
METODE STRAIGHT SELECTION

PROSES PENGURUTAN

Metode ini dapat dikatakan sebagai kebalikan dari metode bubble sort. Jika pada bubble sort
pengurutan dimulai dengan mencari bilangan terbesar, maka pada metode straight selection
pencarian dimulai dengan bilangan terkecil. Bilangan terkecil ini lalu diletakkan di elemen atau
urutan pertama. Demikian seterusnya sampai dihasilkan urutan bilangan dari kecil ke besar.

Dibawah ini terlampir contoh array yang sama pada pembahasan metode bubble sort.

Array
20 12 35 11 17 9 58 23
Indeks yg
menunjukkan posisi
1 2 3 4 5 6 7 8
elemen

Sebagai langkah awal pengurutan dengan metode staight selection, isi elemen pertama
dibandingkan dengan elemen ke-2. Jika isi elemen ke-2 lebih kecil, maka isi kedua elemen tersebut
ditukar. Isi array kini berubah menjadi :

12 20 35 11 17 9 58 23

1 2 3 4 5 6 7 8

Elemen array yang ditukar

Proses selanjutnya adalah membandingkan elemen pertama tadi dengan elemen ke-3. Karena isi
elemen ke-3 lebih besar, maka isi kedua elemen tidak ditukar dan dilanjutkan dengan
membandingkan elemen berikutnya yaitu elemen ke-4.

Karena isi elemen ke-4 lebih kecil dari elemen pertama, maka isi kedua elemen tersebut ditukar
sehingga isi array menjadi :

11 20 35 12 17 9 58 23

1 2 3 4 5 6 7 8

Isi elemen array setelah


ditukar

Metode Straight Selection


Algoritma & Pemrograman 1A

Proses diatas dilakukan secara berulang sampai elemen pertama selesai dibandingkan dengan
elemen terakhir yaitu elemen ke-8. Sehingga hasilnya menjadi :

9 20 35 12 17 11 58 23

1 2 3 4 5 6 7 8

Proses diatas hanya membandingkan elemen pertama dengan semua elemen array. Sehingga elemen
pertama terisi bilangan terkecil. Selanjutnya ulangi proses diatas untuk membandingkan elemen ke-
2 dengan elemen lainnya.

Elemen ke-2 dibandingkan dengan elemen ke-3. Karena isi elemen ke-3 lebih besar, maka isi kedua
elemen tersebut tidak ditukar. Selanjutnya elemen ke-2 dibandingkan lagi dengan elemen ke-4.
Karena isi elemen ke-4 lebih kecil, maka isi kedua elemen tersebut ditukar sehingga isi array
menjadi :

9 12 35 20 17 11 58 23

1 2 3 4 5 6 7 8

setelah kedua elemen ditukar

Proses diatas dilakukan berulang sampai semua elemen selesai dibandingkan dengan elemen ke-2.
Setelah proses ini selesai maka isi array menjadi :

9 11 35 20 17 12 58 23

1 2 3 4 5 6 7 8

Kini isi elemen pertama dan ke-2 sudah urut dari bilangan kecil ke besar. Ulangi proses diatas untuk
membandingkan elemen ke-3 dengan elemen lainnya. Setelah itu elemen ke-4 dan seterusnya
sampai elemen terakhir. Sehingga hasil akhirnya adalah :

9 11 12 17 20 23 35 58

1 2 3 4 5 6 7 8

IMPLEMENTASI DALAM BENTUK FLOWCHART

Dalam bentuk flowchart, proses pengurutan ini sama seperti pada pengurutan bubble sort. Yaitu
menggunakan variabel array untuk menyimpan semua bilangan yang akan diurutkan. Dan memakai
satu variabel cadangan untuk menukar isi elemen array.

Metode Straight Selection


Algoritma & Pemrograman 1A

Dari proses pengurutan diatas, maka metode straight selection dapat diimplementasikan dalam
bentuk flowchart seperti berikut :

start 1

I=I+1
I=0
N=0

J=I+1

Input BIL

ARRBIL(I) <
ARRBIL(J)
BIL = 0 1

TEMP = ARRBIL(I)
ARRBIL(I)=ARRBIL(J)
N=N+1 ARRBIL(J)=TEMP

ARRBIL(N) =
BIL
J=N 2

J=J+1

Gambar 11.1 Flowchart Pengurutan Metode Straight Selection (bersambung)

Metode Straight Selection


Algoritma & Pemrograman 1A

I=N-1 I=0

I=I+1
1

PRINT
ARRBIL(I)

I=N END

Gambar 11.1 flowchart (sambungan)

Berdasarkan flowchart diatas, proses pengurutan bilangan dari kecil ke besar dapat dirangkum
sebagai berikut :
1. persiapkan variabel yang dipakai dalam proses, yaitu :
N : variabel untuk menyatakan jumlah elemen array. Jumlah ini diketahui berdasarkan
banyaknya bilangan yang diinput melalui keyboard.
I, J : variabel indeks untuk membandingkan isi array.
2. proses pertama yang dilakukan adalah mengisi semua bilangan yang akan diurutkan ke
array. Pada flowchart diatas, array tersebut diberi nama ARRBIL. Bilangan diinput melalui
keyboard dan disimpan didalam variabel BIL.
3. periksa isi variabel BIL. Pada flowchart diatas, diasumsikan pengisian bilangna berakhir jika
operator mengetik 0 untuk bilangan yang diinput. Oleh karena itu jika BIL = 0 maka proses
dilanjutkan ke langkah 7 untuk mulai melakukan pengurutan bilangan. Jika BIL tidak sama
dengan 0 berarti pengisian bilangan belum berakhir, maka proses dilanjutkan ke langkah 4.
4. variabel N ditambah 1. variabel ini untuk menentukan elemen array yang akan diisi nilai
dari variabel BIL.
5. isi elemen array dengan nilai yang tersimpan di variabel BIL. Posisi elemen tersebut
ditentukan berdasarkan harga N.
6. kembali ke langkah 2 untuk menginput bilangan lainnya.
7. variabel I ditambah 1.
8. variabel J ditambah 1.

Metode Straight Selection


Algoritma & Pemrograman 1A

9. perbandingkan isi elemen array pada posisi sesuai dengan nilai variabel I atau ARRBIL(I)
dengan elemen array pada posisi sesuai dengan nilai variabel J atau ARRBIL(J). jika isi
ARRBIL(I) lebih kecil dari ARRBIL(J) maka isi kedua elemen tersebut tidak ditukar. Untuk
itu proses dilanjutkan ke langkah 11. namun jika isi ARRBIL(I) > dari ARRBIL(J) lanjutkan
ke langkah 10 untuk menukar isi kedua elemen tersebut.
10. pindahkan isi elemen ARRBIL(I) ke variabel sementara yaitu TEMP. pindahkan isi
ARRBIL(J) ke ARRBIL(I). pindahkan isi TEMP ke ARRBIL(J).
11. periksa isi variabel J. jika J sama dengan N maka proses perbandingan untuk mencari
bilangan terkecil pertama selesai. Untuk itu proses dilanjutkan ke langkah 14. jika isi J
masih belum sama, maka proses perbandingan untuk mecari bilangan terkecil belum selesai,
lanjutkan ke langkah 12.
12. variabel J ditambah 1.
13. kembali ke langkah 9 untuk membandingkan isi ARRBIL(I) dengan elemen lainnya.
14. periksa isi variabel I. jika J sama dengan N-1, maka semua elemen telah diperbandingkan
dan proses pengurutan selesai. Untuk itu proses dilanjutkan ke langkah 15 untuk mencetak
seluruh isi array. Jika isi J masih belum sama dengan N-1 maka semua bilangan belum
terurut. Untuk itu proses kembali ke langkah 7 untuk mencari bilangan terkecil lainnya.
15. variabel I diisi dengan nilai 0. variabel ini untuk menentukan elemen array yang akan
dicetak.
16. variabel I ditambah 1.
17. cetak isi ARRBIL(I).
18. periksa isi I. jika I sama dengan N berarti semua elemen array telah dicetak maka proses
selesai. Jika isi I belum sama dengan N berarti semua elemen array belum tercetak. Untuk
itu kembali ke langkah 16 untuk mencetak elemen lainnya.

Metode Straight Selection