PENGURUTAN BILANGAN

advertisement
Algoritma & Pemrograman 1A
//PENGURUTAN BILANGAN
MET/*DE 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
**
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 :
Metode Straight Selection
Algoritma & Pemrograman 1A
11
20
35
12
17
9
58
23
1
2
3
4
5
6
7
8
Isi elemen array setelah
ditukar
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 :
Metode Straight Selection
Algoritma & Pemrograman 1A
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.
Dari
proses
pengurutan
diatas,
maka
metode
straight
diimplementasikan dalam bentuk flowchart seperti berikut :
Metode Straight Selection
selection
dapat
Algoritma & Pemrograman 1A
start
1
I=I+1
I=0
N=0
J=I+1
Input BIL
ARRBIL(I) <
ARRBIL(J)
BIL = 0
N=N+1
ARRBIL(N) =
BIL
1
TEMP = ARRBIL(I)
ARRBIL(I)=ARRBIL(J)
ARRBIL(J)=TEMP
J=N
J=J+1
Gambar 11.1 Flowchart Pengurutan Metode Straight Selection (bersambung)
Metode Straight Selection
2
Algoritma & Pemrograman 1A
2
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
Metode Straight Selection
Algoritma & Pemrograman 1A
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.
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.
Metode Straight Selection
Algoritma & Pemrograman 1A
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
Download