Kali ini sedikit membahas tentang contoh sorting (pengurutan data), ada banyak sekali metodenya. Tapi yang disini kita membahas tentang bubble, exchange dan insertion saja.
Contoh Soal.
Data Awal : 5 7 4 2 1
Urutkan secara ASCENDING
(besar à kecil)
1.
Bubble Sort
Disini, data ke-i (data
sekarang) dibandingkan dengan data ke-(i+1) {data selanjutnya}. Jika data sekarang lebih dari
data yang selanjutnya, maka akan
dilakukan pertukaran tempat.
a.
Proses 1
Data sekarang (data
indeks ke-0) dibandingkan dengan data selanjutnya (data indeks ke-1). Apabila
memenuhi syarat (data_indeks_ke-0 > data_indeks_ke_1), maka akan ditukar.
Apabila tidak memenuhi syarat, maka akan dibiarkan seperti itu. Contohnya pada saat
membandingkan data indeks ke-0 dengan data indeks ke-1, 5 dibandingkan dengan 7. Karena
5 tidak lebih dari 7 , maka kedua data tidak ditukar. Namun pada langkah
berikutnya, saat membandingkan data indeks ke-1 dengan data indeks ke-2 ( 7
dibandingkan dengan 4), karena 7 lebih dari 4 (memenuhi syarat) maka dilakukan
penukaran data.
b.
Proses 2
Pada proses ke-2, sama
dengan yang dilakukan pada proses pertama. Membandingkan data ke-i dengan data
ke-(i+1). Apabila data ke-i > data ke-(i+1) maka dilakukan penukaran data.
Pada kolom indeks ke-4 (yg diblok kemerah-merahan, data terakhir) tidak perlu
dicek lagi. Karena sudah pasti dia adalah data yang paling besar nilainya. Data
pada indeks ke-4 ini adalah hasil dari proses 1.
c.
Proses 3
Sama seperti pada proses
1 dan 2. Data pada indeks ke-3 (yg diblok biru) adalah hasil dari proses ke-2.
Tidak usah dicek lagi (tidak usah dibandingkan)
d.
Proses 4
2.
Exchange Sort
Misal : Data_ Patokan = A
Data_Pembanding
= B
Tipe Urutan : Ascending à
syarat : A<B
a.
Proses 1
Data yang paling kiri (data awal) dibuat sebagai
patokan (lihat yg dikotaki merah). Kemudian dibandingkan dengan data yang di
sebelah kanannya (membandingkan 2 data) sampai ke data yang terakhir.
Jika data patokannya lebih dari data pembandingnya
(A>B), maka dilakukan penukaran tempat.
b.
Proses 2
Apabila proses 1 sudah selesai, maka lanjut ke proses
2. Pada proses 1, data yang menjadi patokan adalah data ke-1 (indeks ke-0),
untuk proses 2 data yang menjadi patokan adalah data ke-2 (indeks ke-1). Untuk
proses pengurutannya sama dengan proses sebelumnya, membandingkan 2 data, data
patokan dengan data di sebelah kanannya. Apabila yang dibandingkan tidak
memenuhi syarat maka akan dilakukan penukaran data. Pembandingan dilakukan
terus sampai tidak ada lagi data yang di sebalah kanan
c.
Proses 3
Seperti pada proses sebelumnya, dilakukan pembandingan
antar 2 data (data patokan dan data di sebelah kanannya). Untuk Data patokan
digunakan data ke-3 (indeks ke-2)
d.
Proses 4
Lakukan langkah seperti pada proses-proses sebelumnya.
Sampai Data terurut sesuai permintaan.
Dalam Exchange
sort ini, setelah proses 1, maka di proses selanjutnya data yang sebelah
kiri (data hasil proses sebelumnya) tidak usah dibandingkan (dicek) kembali.
Lihat, data yang di-blok merah muda, adalah hasil dari proses 1. Dalam proses 2
dan selanjutnya dia tidak dicek lagi. Kemudian data yang diblok biru (hasil
dari proses 2), pada proses 3 dan 4 dia tidak dicek. Begitu seterusnya, karena
data di sebelah kiri yg merupakan hasil dari proses sebelumnya sudah pasti data
yang terkecil diantara data yang sebelah kanannya.
3.
Insertion Sort
Insertion sort, mirip dengan exchange.
Menggunakan data pada indeks ke-0 sebagai patokan. Data patokan dibandingkan
dengan data di sebelah kanannya (data selanjutnya). Bedanya dengan exchange
adalah,
Exchange : memenuhi
syarat maka data ditukar
Insertion : memenuhi
syarat maka data patokan digeser dengan data pembanding.
Contohnya pada saat
membandingkan data indeks ke-0 dengan data indeks ke-2 (membandingkan 5 dengan
4), karena benar bahwa 5>4 maka posisi 5 digeser dengan 4. Data di
belakangnya mengikuti
Untuk Source code:
1.
Bubble
2.
Exchange
3.
Insertion
0 comments:
Post a Comment