Selasa, 01 Oktober 2013

Algoritma Pengurutan Angka dari Kecil ke Besar

Kali ini saya akan membuat algoritma pengurutan angka dari kecil ke besar. Mengurutkan angka dengan menggunakan algoritma banyak sekali caranya. Setelah saya baca-baca tentang algoritma hasil penelusuran dari ‘mbah’ google, sebagai orang awam dalam hal algoritma-algoritmaan saya mau menggunakan algoritma bubble short dan juga saya akan menyertakan algoritma bahasa manusianya (human language) dan contohnya juga.
Saya memilih menggunakan algoritma bubble short karena setelah saya baca, sedikit bisa saya mengerti dibandingkan algoritma-algoritma lainnya. Yuk kita langsung aja..

Algoritma Bahasa Manusia (human language)
1. Mulai.
2. Memasukkan jumlah data (N) yang diinputkan.
3. Inisialisasi data (N) yang diinputkan.
4. Memasukkan data ke-1.
5. Memasukkan data ke-2.
6. Memasukkan data ke-3.
7. Memasukkan data ke-4.
8. Memasukkan data ke-5.
9. Inisialisasi data ke-1 sampai ke-5.
10. Jika data ke-5 < >
11. Jika data ke-4 < >
12. Jika data ke-3 < >
13. Jika data ke-2 < >
14. Jika data ke-1 > data ke-5, maka tukar data.
15. Ulangi proses pertukaran data dari akhir ke awal.
16. Cetak hasil data ke-1 hingga ke-5.
17. End (stop).

Contoh :
Data : 5, 3, 1, 9, 7
Data ke-1 > data ke-2, maka tukar data menjadi 3, 5, 1, 9, 7
Data ke-2 < data ke-3, maka tukar data menjadi 3, 1, 5, 9, 7
Data ke-3 < data ke-4, maka tukar data menjadi 3, 1, 5, 7, 9
Data ke-1 > data ke-2, maka tukar data menjadi 1 ,3, 5, 7,  9
Data sudah terurut 
Selesai

Algoritma Bubble Short
1. Membandingkan data ke-i dengan data ke-(i+1) (tepat bersebelahan). Jika tidak sesuai (data ke-i > data ke-(i+1))  maka tukar (data ke-i = data ke-(i+1)) dan data ke-(i+1) = data ke-i). Apa maksudnya tidak sesuai? Jika kita menginginkan algoritme menghasilkan data dengan urutan ascending (A-Z) kondisi tidak sesuai adalah data ke-i > data ke-i+1, dan sebaliknya untuk urutan descending (Z-A).
2. Membandingkan data ke-(i+1) dengan data ke-(i+2). Kita melakukan pembandingan ini sampai data terakhir. Contoh: 1 dgn 2; 2 dgn 3; 3 dgn 4; 4 dgn 5 … ; n-1 dgn n.
3. Selesai satu iterasi, adalah jika kita sudah selesai membandingkan antara (n-1) dgn n. Setelah selesai satu iterasi kita lanjutkan lagi iterasi berikutnya sesuai dengan aturan ke-1. mulai dari data ke-1 dgn data ke-2, dst.
4. Proses akan berhenti jika tidak ada pertukaran dalam satu iterasi.

Contoh :
Data : 5, 3, 1, 9, 7  
Proses pengurutannya :
Iterasi ke-1 : 3, 5, 1, 9, 7 :: 3, 1, 5, 9, 7 :: 3, 1, 5, 9, 7 (ada 2 pertukaran)
Iterasi ke-2 : 1, 3, 5, 9, 7 :: 1, 3, 5, 9, 7 :: 1, 3, 5, 9, 7 (ada 1 pertukaran)
Iterasi ke-3 : 1, 3, 5, 7, 9 :: 1, 3, 5, 7, 9 :: 1, 3, 5, 7, 9 (ada 1 pertukaran)
Iterasi ke-4 : 1, 3, 5, 7, 9 :: 1, 3, 5, 7, 9 :: 1, 3, 5, 7, 9 (ada 0 pertukaran)
 ~> Proses selesai