1 / 52

Sorting ( Pengurutan )

Sorting ( Pengurutan ). Sort. Sort adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut atau teratur menurut suatu aturan tertentu. Sort. Biasanya pengurutan dibagi menjadi 2 yaitu : Ascending  Pengurutan dari kecil ke besar

Download Presentation

Sorting ( Pengurutan )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sorting(Pengurutan)

  2. Sort • Sort adalahsuatuprosespengurutan data yang sebelumnyadisusunsecaraacakatautidakteraturmenjadiurutatauteraturmenurutsuatuaturantertentu.

  3. Sort • Biasanyapengurutandibagimenjadi 2 yaitu : • Ascending  Pengurutandarikecilkebesar • Descending  Pengurutandaribesarkekecil

  4. Sort • Adabanyakcaraataumetodeuntukmelakukanpengurutan ascending atau pun descending. • Dalamprosespengurutankitaakanmemerlukanprosespenukaran data. • Prosespenukaran data tidakbisakitalakukansecaralangsungdenganmenukarisivariabel. • Penukaran data dilakukandenganmetodeswap.

  5. Swap • Misalkan terdapat dua data yang akan ditukar yaitu : • Cara yang salah : • Cara yang benar : data[1] = 5; data[2] = 10; data[1] = data[2]; data[2] = data[1]; swap = data[1]; data[1] = data[2]; data[2] = swap;

  6. Sort • Untukmelakukanpengurutanterdapatbeberapacaraataumetodediantaranya : • Bubble Sort • Selection Sort • Insertion Sort

  7. Bubble Sort • Bubble Sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen yang berikutnya. • Apabila elemen yang sekarang > elemen berikutnya, maka posisinya ditukar, jika tidak maka tidak perlu ditukar.

  8. Bubble Sort • Misalkankitamemiliki data acaksebagaiberikut : 5, 34, 32, 25, 75, 42, 22, 2

  9. Bubble Sort • Data sebelumnya : 5, 34, 32, 25, 75, 42, 22, 2 • Langkah ke 0 : • 5 > 34 ? TIDAK (tetap) = 5, 34 • 34 > 32 ? YA (tukar) = 32, 34 • 34 > 25 ? YA (tukar) = 25, 34 • 34 > 75 ? TIDAK (tetap) = 34, 75 • 75 > 42 ? YA (tukar) = 42, 75 • 75 > 22 ? YA (tukar) = 22, 75 • 75 > 2 ? YA (tukar) = 2, 75 • Hasil : 5, 32, 25, 34, 42, 22, 2, 75

  10. Bubble Sort • Data sebelumnya : 5, 32, 25, 34, 42, 22, 2, 75 • Langkah ke 1 : • 5 > 32 ? TIDAK (tetap) = 5, 32 • 32 > 25 ? YA (tukar) = 25, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 22 ? YA (tukar) = 22, 42 • 42 > 2 ? YA (tukar) = 2, 42 • 42 > 75 ? TIDAK (tetap) 42, 75 • Hasil : 5, 25, 32, 34, 22, 2, 42, 75

  11. Bubble Sort • Data sebelumnya : 5, 25, 32, 34, 22, 2, 42, 75 • Langkah ke 2 : • 5 > 25 ? TIDAK (tetap) = 5, 25 • 25 > 32 ? TIDAK (tetap) = 25, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 22 ? YA (tukar) = 22, 34 • 34 > 2 ? YA (tukar) = 2, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 75 ? TIDAK (tetap) = 42, 75 • Hasil : 5, 25, 32, 22, 2, 34, 42, 75

  12. Bubble Sort • Data sebelumnya : 5, 25, 32, 22, 2, 34, 42, 75 • Langkah ke 3 : • 5 > 25 ? TIDAK (tetap) = 5, 25 • 25 > 32 ? TIDAK (tetap) = 25, 32 • 32 > 22 ? YA (tukar) = 22, 32 • 32 > 2 ? YA (tukar) = 2, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 75 ? TIDAK (tetap) = 42, 75 • Hasil : 5, 25, 22, 2, 32, 34, 42, 75

  13. Bubble Sort • Data sebelumnya : 5, 25, 22, 2, 32, 34, 42, 75 • Langkah ke 4 : • 5 > 25 ? TIDAK (tetap) = 5, 25 • 25 > 22 ? YA (tukar) = 22, 25 • 25 > 2 ? YA (tukar) = 2, 25 • 25 > 32 ? TIDAK (tetap) = 25, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 75 ? TIDAK (tetap) = 42, 75 • Hasil : 5, 22, 2, 25, 32, 34, 42, 75

  14. Bubble Sort • Data sebelumnya : 5, 22, 2, 25, 32, 34, 42, 75 • Langkah ke 5 : • 5 > 22 ? TIDAK (tetap) = 5, 22 • 22 > 2 ? YA (tukar) = 2, 22 • 22 > 25 ? TIDAK (tetap) = 22, 25 • 25 > 32 ? TIDAK (tetap) = 25, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 75 ? TIDAK (tetap) = 42, 75 • Hasil : 5, 2, 22, 25, 32, 34, 42, 75

  15. Bubble Sort • Data sebelumnya : 5, 2, 22, 25, 32, 34, 42, 75 • Langkah ke 6 : • 5 > 2 ? YA (tukar) = 2, 5 • 5 > 22 ? TIDAK (tetap) = 5, 22 • 22 > 25 ? TIDAK (tetap) = 22, 25 • 25 > 32 ? TIDAK (tetap) = 25, 32 • 32 > 34 ? TIDAK (tetap) = 32, 34 • 34 > 42 ? TIDAK (tetap) = 34, 42 • 42 > 75 ? TIDAK (tetap) = 42, 75 • Hasil : 2, 5, 22, 25, 32, 34, 42, 75

  16. Bubble Sort • Data Awal : 5, 34, 32, 25, 75, 42, 22, 2 • Data Akhir : 2, 5, 22, 25, 32, 34, 42, 75

  17. #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap; cout<<"Data sebelumdiurutkan : "<<endl; for(inti=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(inti=0; i<7; i++) { for(int j=0; j<7; j++) { if(data[j] > data[j+1]) { swap = data[j]; data[j] = data[j+1]; data[j+1] = swap; } } } cout<<"Data setelahdiurutkan : "<<endl; for(inti=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch(); }

  18. Selection Sort • Selection Sort adalah suatu metode pengurutan yang membandingkan elemen sekarang dengan elemen berikutnya sampai ke elemen yang terakhir. • Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.

  19. Selection Sort • Misalkankitamemiliki data acaksebagaiberikut : 5, 34, 32, 25, 75, 42, 22, 2

  20. Selection Sort • Langkah 0, data sebelumnya : 5, 34, 32, 25, 75, 42, 22, 2 • Pembanding  Posisi Terkecil • 5 > 34 ? TIDAK  0 • 5 > 32 ? TIDAK  0 • 5 > 25 ? TIDAK  0 • 5 > 75 ? TIDAK  0 • 5 > 42 ? TIDAK  0 • 5 > 22 ? TIDAK  0 • 5 > 2 ? YA  7 • Hasil, tukar posisi 0 dan posisi 7 : 2, 34, 32, 25, 75, 42, 22, 5

  21. Selection Sort • Langkah 1, data sebelumnya : 2, 34, 32, 25, 75, 42, 22, 5 • Pembanding  Posisi Terkecil • 34 > 32 ? YA  2 • 32 > 25 ? YA  3 • 25 > 75 ? TIDAK  3 • 25 > 42 ? TIDAK  3 • 25 > 22 ? YA  6 • 22 > 5 ? YA  7 • Hasil, tukar posisi 1 dan posisi 7 : 2, 5, 32, 25, 75, 42, 22, 34

  22. Selection Sort • Langkah 2, data sebelumnya : 2, 5, 32, 25, 75, 42, 22, 34 • Pembanding  Posisi Terkecil • 32 > 25 ? YA  3 • 25 > 75 ? TIDAK  3 • 25 > 42 ? TIDAK  3 • 25 > 22 ? YA  6 • 22 > 34 ? TIDAK  6 • Hasil, tukar posisi 2 dan posisi 6 : 2, 5, 22, 25, 75, 42, 32, 34

  23. Selection Sort • Langkah 3, data sebelumnya : 2, 5, 22, 25, 75, 42, 32, 34 • Pembanding  Posisi Terkecil • 25 > 75 ? TIDAK  3 • 25 > 42 ? TIDAK  3 • 25 > 32 ? TIDAK  3 • 25 > 34 ? TIDAK  3 • Hasil, tukar posisi 3 dan posisi 3 : 2, 5, 22, 25, 75, 42, 32, 34

  24. Selection Sort • Langkah 4, data sebelumnya : 2, 5, 22, 25, 75, 42, 32, 34 • Pembanding  Posisi Terkecil • 75 > 42 ? YA  5 • 42 > 32 ? YA  6 • 32 > 34 ? TIDAK  6 • Hasil, tukar posisi 4 dan posisi 6 : 2, 5, 22, 25, 32, 42, 75, 34

  25. Selection Sort • Langkah 5, data sebelumnya : 2, 5, 22, 25, 32, 42, 75, 34 • Pembanding  Posisi Terkecil • 42 > 75 ? TIDAK  5 • 42 > 34 ? YA  7 • Hasil, tukar posisi 5 dan posisi 7 : 2, 5, 22, 25, 32, 34, 75, 42

  26. Selection Sort • Langkah 6, data sebelumnya : 2, 5, 22, 25, 32, 34, 75, 42 • Pembanding  Posisi Terkecil • 75 > 42 ? YA  7 • Hasil, tukar posisi 6 dan posisi 7 : 2, 5, 22, 25, 32, 34, 42, 75

  27. Selection Sort • Data Awal : 5, 34, 32, 25, 75, 42, 22, 2 • Data Akhir : 2, 5, 22, 25, 32, 34, 42, 75

  28. #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap, terkecil; cout<<"Data sebelumdiurutkan : "<<endl; for(inti=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(inti=0; i<7; i++) { terkecil = i; for(int j=i+1; j<8; j++) { if(data[terkecil] > data[j]) { terkecil = j; } } swap = data[i]; data[i] = data[terkecil]; data[terkecil] = swap; } cout<<"Data setelahdiurutkan : "<<endl; for(inti=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch(); }

  29. Insertion Sort • Metode Insertion Sort mirip dengan cara mengurutkan kartu, kartu diambil selembar demi selembar dan disisipkan (insert) pada posisi seharusnya. • Proses pengurutan dimulai dari data ke 2 sampai data terakhir. • Data akan dibandingkan dengan posisi sebelumnya dan disisipkan pada posisi yang sesuai. • Pada proses penyisipan data, maka data-data yang lain akan bergeser ke belakang (kanan).

  30. Insertion Sort • Misalkan kita memiliki data acak sebagai berikut : 95, 34, 32, 25, 75, 42, 22

  31. Insertion Sort • Data sebelumnya : 95, 34, 32, 25, 75, 42, 22 • Langkah 1, Temp = 34 • J = 0  Temp < 95? YA  Data Ke 1 = 95 95, 95, 32, 25, 75, 42, 22 • J = -1  STOP • Hasil : Data ke J+1 (0) = Temp (34) 34, 95, 32, 25, 75, 42, 22

  32. Insertion Sort • Data sebelumnya : 34, 95, 32, 25, 75, 42, 22 • Langkah 2, Temp = 32 • J = 1  Temp < 95? YA  Data ke 2 = 95 34, 95, 95, 25, 75, 42, 22 • J = 0  Temp < 34? YA  Data ke 1 = 34 34, 34, 95, 25, 75, 42, 22 • J = -1  STOP • Hasil : Data ke J+1 (0) = Temp (32) 32, 34, 95, 25, 75, 42, 22

  33. Insertion Sort • Data sebelumnya : 32, 34, 95, 25, 75, 42, 22 • Langkah 3, Temp = 25 • J = 2  Temp < 95? YA  Data ke 3 = 95 32, 34, 95, 95, 75, 42, 22 • J = 1  Temp < 34? YA  Data ke 2 = 34 32, 34, 34, 95, 75, 42, 22 • J = 0  Temp < 32? YA  Data ke 1 = 32 32, 32, 34, 95, 75, 42, 22 • J = -1  STOP • Hasil : Data ke J+1 (0) = Temp (25) 25, 32, 34, 95, 75, 42, 22

  34. Insertion Sort • Data sebelumnya : 25, 32, 34, 95, 75, 42, 22 • Langkah 4, Temp = 75 • J = 3  Temp < 95? YA  Data ke 4 = 95 25, 32, 34, 95, 95, 42, 22 • J = 2  Temp < 34? TIDAK  STOP • Hasil : Data ke J+1 (3) = Temp (75) 25, 32, 34, 75, 95, 42, 22

  35. Insertion Sort • Data sebelumnya : 25, 32, 34, 75, 95, 42, 22 • Langkah 5, Temp = 42 • J = 4  Temp < 95? YA  Data ke 5 = 95 25, 32, 34, 75, 95, 95, 22 • J = 3  Temp < 75? YA  Data ke 4 = 75 25, 32, 34, 75, 75, 95, 22 • J = 2  Temp < 34? TIDAK  STOP • Hasil : Data ke J+1 (3) = Temp (42) 25, 32, 34, 42, 75, 95, 22

  36. Insertion Sort • Data sebelumnya : 25, 32, 34, 42, 75, 95, 22 • Langkah 6, Temp = 22 • J = 5  Temp < 95? YA  Data ke 6 = 95 25, 32, 34, 42, 75, 95, 95 • J = 4  Temp < 75? YA  Data ke 5 = 75 25, 32, 34, 42, 75, 75, 95 • J = 3  Temp < 42? YA  Data ke 4 = 42 25, 32, 34, 42, 42, 75, 95 • J = 2  Temp < 34? YA  Data ke 3 = 34 25, 32, 34, 34, 42, 75, 95 • J = 1  Temp < 32? YA  Data ke 2 = 32 25, 32, 32, 34, 42, 75, 95 • J = 0  Temp < 25? YA  Data ke 1 = 25 25, 25, 32, 34, 42, 75, 95 • J = -1  STOP • Hasil : Data ke J+1 (0) = Temp (22) 22, 25, 32, 34, 42, 75, 95

  37. Insertion Sort • Data Awal : 22, 25, 32, 34, 42, 75, 95 • Data Akhir :

  38. #include <iostream.h> #include <conio.h> void insertion_sort(int data[]) { int temp, j; for(inti=1; i<10; i++) { temp = data[i]; j = i-1; while(temp < data[j] && j>=0) { data[j+1] = data[j]; j--; } data[j+1] = temp; } } void main() { int data[10]={5,34,32,25,75,42,22,2,9,1}; insertion_sort(data); for (inti=0;i<10;i++) cout<<"data["<<i<<"]= : "<<data[i]<<endl; getch(); }

  39. Sortingpengurutan

  40. Fungsi sorting • Diperlukanuntukmempercepatpencariansuatu target dalamsuatudaftar (list) • Metodepengurutan : • Ascending  Pengurutan yang dilakukanmulaidarinilaiterkecilmenujunilaiterbesar • Descending  Pengurutan yang dilakukanmulaidarinilaiterbesarmenujunilaiterkecil

  41. Jenis Sorting • Internal sorting • Insertion sort • Selection sort • Bubble sort • Quick sort • Merge sort • Binary tree sort • External sorting • Two way sort • Balanced two way sort • Balanced k-way sort

  42. Selection Sort 69 69 519 69 69 419 127 127 419 127 127 381 419 381 127 519 519 519 419 69 381 381 419 519 381

  43. Bubble Sort 519 519 519 519 69 419 419 419 69 519 69 419 127 127 419 127 127 69 69 127 381 381 381 381 381 69 69 69 69 519 519 519 127 419 419 127 519 127 419 127 419 381 381 381 381

  44. 69 69 69 127 127 127 519 519 381 419 381 519 419 419 381 69 69 127 127 381 381 519 419 419 519

  45. Insertion Sort 519 419 127 69 69 419 519 419 127 127 127 519 419 381 127 69 519 419 69 69 519 381 381 381 381

  46. Quick Sort 44 33 11 55 77 90 40 60 99 22 88 66 22 33 11 55 77 90 40 60 99 44 88 66 22 33 11 77 90 40 60 99 88 66 44 55 22 33 11 40 77 90 44 60 99 88 66 55 22 33 11 40 44 90 77 60 99 88 66 55

  47. 22 33 11 40 44 90 77 60 99 88 66 55 66 90 33 40 44 77 60 99 88 11 22 55 99 66 44 77 60 88 11 90 55 22 33 40 99 66 88 90 44 77 60 11 55 22 33 40 66 99 88 90 44 77 60 11 55 22 33 40

  48. 99 88 77 90 44 60 11 55 66 22 33 40 99 88 77 90 44 11 55 22 33 40 60 66 99 90 44 11 55 77 88 22 33 40 60 66 99 90 44 11 55 77 88 22 33 40 60 66

  49. Merge sort 34 36 23 12 16 18 24 10 34 36 16 18 12 23 10 24 12 23 34 36 10 16 18 24 10 12 16 18 23 24 34 36

  50. External Sort 5 110 95 10 100 36 153 40 120 60 70 130 22 140 80 File 1 : 5 95 110 40 120 153 22 80 140 File 2 : 10 36 100 60 70 130 File 1 : File 2 : File 3 : 5 10 36 95 100 110 40 60 70 120 130 153 22 80 140 File dan record yang akandisortdenganurutan key sbb:

More Related