24
Sorting 12/10/2012 1 Nurdiansah PTIK 09 UNM

Document12

Embed Size (px)

Citation preview

Page 1: Document12

Sorting

12/10/2012

1

Nurdiansah PTIK 09 UNM

Page 2: Document12

Sorting

Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun)

Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.

Contoh: Data Acak : 5 6 8 1 3 25 10 Ascending : 1 3 5 6 8 10 25 Descending : 25 10 8 6 5 3 1

12/10/2012

2

Nurdiansah PTIK 09 UNM

Page 3: Document12

Metode Pengurutan Data

Pengurutan berdasarkan perbandingan (comparison-based sorting)

Pengurutan berdasarkan prioritas (priority queue sorting method)

Pengurutan berdasarkan penyisipan danpenjagaan terurut (insert and keep sorted method)

Pengurutan berdasarkan pembagian danpenguasaan (devide and conquer method)

Pengurutan berkurang menurun (diminishing increment

sort method)

12/10/2012

3

Nurdiansah PTIK 09 UNM

Page 4: Document12

Deklarasi Array

Deklarasikan:

int data[100];

int n; //untuk jumlah data

Fungsi untuk Tukar 2 Buah Data (by reference):

void tukar(int *a,int *b){

int t=*a;

*a=*b;

*b=t;

}

12/10/2012

4

Nurdiansah PTIK 09 UNM

Page 5: Document12

Bubble Sort

Metode sorting termudah

Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang tepat, seperti gelembung yang keluar dari sebuah gelas bersoda.

Bubble Sort mengurutkan data dengan cara membandingkan elemen sekarang dengan elemen berikutnya.

12/10/2012

5

Nurdiansah PTIK 09 UNM

Page 6: Document12

Cont’…

Pengurutan Ascending :Jika elemen sekarang lebih besardari elemen berikutnya maka kedua elemen tersebutditukar.

Pengurutan Descending: Jika elemen sekarang lebih kecildari elemen berikutnya, maka kedua elemen tersebutditukar.

Algoritma ini seolah-olah menggeser satu per satu elemendari kanan ke kiri atau kiri ke kanan, tergantung jenispengurutannya, asc atau desc.

Ketika satu proses telah selesai, maka bubble sort akanmengulangi proses, demikian seterusnya sampai denganiterasi sebanyak n-1.

Kapan berhentinya? Bubble sort berhenti jika seluruharray telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telahdiinginkan.

12/10/2012

6

Nurdiansah PTIK 09 UNM

Page 7: Document12

Cont‘...

12/10/2012

7

Nurdiansah PTIK 09 UNM

Page 8: Document12

Cont’…

12/10/2012

8

Nurdiansah PTIK 09 UNM

Page 9: Document12

Cont’…

12/10/2012

9

Nurdiansah PTIK 09 UNM

Page 10: Document12

Cont’…

Versi 1

Versi 2

12/10/2012

10

Nurdiansah PTIK 09 UNM

Page 11: Document12

Cont’…

Dengan prosedur diatas, data terurut naik (ascending), untuk urut turun (descending) silahkan ubah bagian:

if (data[j]<data[j-1]) tukar(&data[j],&data[j-1]);

Menjadi:

if (data[j]>data[j-1]) tukar(&data[j],&data[j-1]);

“The bubble sort is an easy algorithm to program, but it is slower than many other sorts”

12/10/2012

11

Nurdiansah PTIK 09 UNM

Page 12: Document12

Exchange Sort

Sangat mirip dengan Bubble Sort Banyak yang mengatakan Bubble Sort sama dengan

Exchange Sort Pebedaan : dalam hal bagaimana membandingkan antar

elemen-elemennya. Exchange sort membandingkan suatu elemen dengan elemen-

elemen lainnya dalam array tersebut, dan melakukan pertukaran elemen jika perlu. Jadi ada elemen yang selalu menjadi elemen pusat (pivot).

Sedangkan Bubble sort akan membandingkan elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian elemen tersebut itu akan menjadi pusat (pivot) untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi, begitu seterusnya.

12/10/2012

12

Nurdiansah PTIK 09 UNM

Page 13: Document12

Cont’…

12/10/2012

13

Nurdiansah PTIK 09 UNM

Page 14: Document12

Cont’…

12/10/2012

14

Nurdiansah PTIK 09 UNM

Page 15: Document12

Cont’…

12/10/2012

15

Nurdiansah PTIK 09 UNM

Page 16: Document12

Cont’…

Prosedur Exchange Sort

12/10/2012

16

Nurdiansah PTIK 09 UNM

Page 17: Document12

Selection Sort

Merupakan kombinasi antara sorting dan searching Untuk setiap proses, akan dicari elemen-elemen yang

belum diurutkan yang memiliki nilai terkecil atauterbesar akan dipertukarkan ke posisi yang tepat didalam array.

Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan diindeks terkecil (data[0]), pada putaran kedua akan dicaridata kedua terkecil, dan akan ditempatkan di indekskedua (data[1]).

Selama proses, pembandingan dan pengubahan hanyadilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.

12/10/2012

17

Nurdiansah PTIK 09 UNM

Page 18: Document12

Cont’…

12/10/2012

18

Nurdiansah PTIK 09 UNM

Page 19: Document12

Cont‘...

Prosedur Selection Sort

12/10/2012

19

Nurdiansah PTIK 09 UNM

Page 20: Document12

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, maka akan ditempatkan (diinsert) diposisi yang seharusnya.

Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang

12/10/2012

20

Nurdiansah PTIK 09 UNM

Page 21: Document12

Cont’…

12/10/2012

21

Nurdiansah PTIK 09 UNM

Page 22: Document12

Cont’…

12/10/2012

22

Nurdiansah PTIK 09 UNM

Page 23: Document12

Perbandingan

Tabel Perbandingan Kecepatan Metode Pengurutan Data

Untuk data sejumlah 10.000 data pada komputer Pentium II 450 MHz

12/10/2012

23

Nurdiansah PTIK 09 UNM

Page 24: Document12

TO BE CONTINUE…

Nurdiansah PTIK 09 UNM 12/10/2012

24