Wednesday, 7 January 2015

Macam-macam metode sorting pada java


 Exchange Sort
  • Semua data dibandingkan dengan data pembanding, dimana pada akhir proses data terbesar akan berada pada akhir urutan.
  • Pada proses 1: data ke-1 dibandingkan dengan data ke-2 jika data ke-1 lebih besar maka kedua data langsung ditukar. Kemudian data ke-1 dibandingkan lagi dengan data ke-3, lebih besar? Tukar! Demikian seterusnya.
  • Pada proses 2: data ke-2 dibandingkan dengan data ke-3 jika data ke-2 lebih besar maka kedua data langsung ditukar. Kemudian data ke-2 dibandingkan lagi dengan data ke-4, lebih besar? Tukar! Demikian seterusnya.
  • Dan seterusnya…..
Selection Sort
  • Hampir sama dengan Exchange Sort, bedanya yang ditukar adalah indeknya. Penukaran data dilakukan di akhir proses.
  • Pada proses 1: variabel indek diberi nilai 1 (data ke-1) kemudian data indek dibandingkan dengan data ke-2 jika data indek lebih besar maka nilai indek adalah 2 (data ke-2). Kemudian data indek dibandingkan lagi dengan data ke-3, lebih besar? Nilai indek ditukar! Demikian seterusnya. Setelah selesai, nilai indek diperiksa apakah nilai indek berubah atau tidak. Jika nilai indek mengalami perubahan maka data ke-1 ditukar dengan data indek.
  • Pada proses 2: variabel indek diberi nilai 2 (data ke-2) kemudian data indek dibandingkan dengan data ke-3 jika data indek lebih besar maka nilai indek adalah 3 (data ke-3). Kemudian data indek dibandingkan lagi dengan data ke-4, lebih besar? Nilai indek ditukar! Demikian seterusnya. Setelah selesai, nilai indek diperiksa apakah nilai indek berubah atau tidak. Jika nilai indek mengalami perubahan maka data ke-2 ditukar dengan data indek.
  • Dan seterusnya…..
Insertion Sort
  • Mirip dengan cara orang mengurutkan kartu selembar demi selembar kartu diambil dan disisipkan (insert) ke tempat yang seharusnya.
  • Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil atau lebih besar, maka akan ditempatkan (diinsert) diposisi yang seharusnya.
Bubble Sort
  • Membandingkan data ke-1 dengan data ke-2, jika data ke-1 lebih besar, maka kedua data ditukar.
  • Kemudian membandingkan data ke-2 dengan data ke-3, jika data ke-2 lebih besar, kedua data ditukar lagi.
  • Demikian seterusnya sampai data terakhir, sehingga data kedudukannya akan bergeser-geser.
  • Untuk proses 2, pembandingan (pergeseran data) hanya sampai pada data terakhir dikurangi satu.
Quick Sort
  • Tentukan data acuan (data paling tengah).
  • Tentukan indek bawah (data ke-1) dan indek atas (data terakhir).
  • Disebelah kiri dari data acuan, besarnya harus lebih kecil dari data acuan.
  • Sedangkan disebelah kanan dari data acuan, besarnya harusnya lebih besar dari data acuan.
  • Selama data indek bawah < data acuan, maka indek bawah dinaikkan.
  • Selama data indek atas > data acuan, maka indek atas diturunkan.
  • Jika indek bawah <= indek atas maka data indek bawah dan data indek atas ditukar kemudian indek bawah dinaikkan dan indek atas diturunkan.
  • Jika indek pertama < indek atas maka proses pengurutan dimulai lagi dimana data telah berubah dari indek pertama sampai indek atas.
  • Jika indek bawah < indek terakhir (jumlah data) maka proses pengurutan dimulai lagi dimana data telah berubah dari indek bawah sampai indek terakhir.
Shell Sort
  • Proses 1: menentukan jarak dari data yang akan dibandingkan (jumlah data dibagi 2 à N/2).
  • Dilakukan pengulangan dari 1 sampai dengan N/2.
  • Setiap pengulangan dilakukan perbandingan antara data ke-1 dengan data ke-1+(N/2), apabila data ke-1 > data ke-1+(N/2) maka kedua data ditukar.
  • Pengulangan berikutnya membandingkan data ke-2 dengan data ke-2+(N/2).
  • Proses 2: membagi jarak data N/2 menjadi 2 lagi (N/4)
  • Kemudian dilakukan langkah-langkah seperti proses 1 tetapi pengulangan yang dilakukan adalah dari 1 sampai dengan N-N/2.
  • Hal ini dilakukan terus menerus sampai jaraknya = 1.
Binary Insertion Sort
  • Mengurutkan sekumpulan data dengan membandingkan data yang dimasukkan dengan data yang ada ditengah.
  • Jika data yang dimasukkan lebih besar dari data tengah, maka data tersebut harus ditempatkan disebelah kanan dari data tengah.
  • Sebaliknya jika lebih kecil, maka harus ditempatkan disebelah kiri dari data tengah.
  • Untuk data selanjutnya (yang akan dimasukkan), cari data tengah yang baru untuk membandingkan data yang akan dimasukkan selanjutnya.
  • Demikian seterusnya.
download materi disini

No comments:

Post a Comment