Kamis, 12 April 2012

//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 :


 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 :
  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.
  1. 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.
  2. 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.
  3. variabel N ditambah 1. variabel ini untuk menentukan elemen array yang akan diisi nilai dari variabel BIL.
  4. isi elemen array dengan nilai yang tersimpan di variabel BIL. Posisi elemen tersebut ditentukan berdasarkan harga N.
  5. kembali ke langkah 2 untuk menginput bilangan lainnya.
  6. variabel I ditambah 1.
  7. variabel J ditambah 1.
  8. 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.
  9. pindahkan isi elemen ARRBIL(I) ke variabel sementara yaitu TEMP. pindahkan isi ARRBIL(J) ke ARRBIL(I). pindahkan isi TEMP ke ARRBIL(J).
  10. 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.
  11. variabel J ditambah 1.
  12. kembali ke langkah 9 untuk membandingkan  isi ARRBIL(I) dengan elemen lainnya.
  13. 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.
  14. variabel I diisi dengan nilai 0. variabel ini untuk menentukan elemen array yang akan dicetak.
  15. variabel I ditambah 1.
  16. cetak isi ARRBIL(I).
  17. 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: