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 :
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 :
Proses diatas dilakukan secara berulang
sampai elemen pertama selesai dibandingkan dengan elemen terakhir yaitu elemen
ke-8. Sehingga hasilnya menjadi :
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 :
Proses diatas dilakukan berulang sampai
semua elemen selesai dibandingkan dengan elemen ke-2. Setelah proses ini
selesai maka isi array menjadi :
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 :
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 selection dapat diimplementasikan dalam bentuk flowchart
seperti berikut :
Gambar 11.1 flowchart (sambungan)
Berdasarkan flowchart diatas, proses
pengurutan bilangan dari kecil ke besar dapat dirangkum sebagai berikut :
- 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.
- 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.
- 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.
- variabel
N ditambah 1. variabel ini untuk menentukan elemen array yang akan diisi
nilai dari variabel BIL.
- isi
elemen array dengan nilai yang tersimpan di variabel BIL. Posisi elemen
tersebut ditentukan berdasarkan harga N.
- kembali
ke langkah 2 untuk menginput bilangan lainnya.
- variabel
I ditambah 1.
- variabel
J ditambah 1.
- 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.
- pindahkan
isi elemen ARRBIL(I) ke variabel sementara yaitu TEMP. pindahkan isi
ARRBIL(J) ke ARRBIL(I). pindahkan isi TEMP ke ARRBIL(J).
- 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.
- variabel
J ditambah 1.
- kembali
ke langkah 9 untuk membandingkan
isi ARRBIL(I) dengan elemen lainnya.
- 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.
- variabel
I diisi dengan nilai 0. variabel ini untuk menentukan elemen array yang
akan dicetak.
- variabel
I ditambah 1.
- cetak
isi ARRBIL(I).
- 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.
Tidak ada komentar:
Posting Komentar