♥selamat datang di blog saya♥bisa karena terbiasa♥terima kasih sudah mampir♥

Wednesday, March 2, 2016

0

SORTING dalam Bahasa C++


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