Fondasi Pemrograman Struktur Data Sesi 11 Teknik Sort

  • Slides: 18
Download presentation
Fondasi Pemrograman & Struktur Data Sesi 11 Teknik Sort AER – 2011/2012 Universitas Pembangunan

Fondasi Pemrograman & Struktur Data Sesi 11 Teknik Sort AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF 1

Tujuan Pertemuan • • Memahami tentang sort (pengurutan data). Memahami teknik-teknik melakukan sort. Mampu

Tujuan Pertemuan • • Memahami tentang sort (pengurutan data). Memahami teknik-teknik melakukan sort. Mampu menjelaskan algoritma sorting. Mampu membuat aplikasi sorting untuk beberapa teknik sorting. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF 2

Sort Unsorted g it a be chin o r s l a sea y

Sort Unsorted g it a be chin o r s l a sea y a to m ta step a d ry g tin ina r So elim pr AER – 2011/2012 Sorted Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 3

Sort • Terdapat 3 algoritma yang memiliki metode sorting yang mirip; – Bubble sort,

Sort • Terdapat 3 algoritma yang memiliki metode sorting yang mirip; – Bubble sort, – Selection sort, – Insertion sort. • Ketiga algoritma tersebut melibatkan 2 langkah yang dilaksanakan secara berulang-ulang sampai data ter-urut, langkah-langkah tersebut: – Bandingkan 2 item. – Tukar tempat kedua item tersebut. Namun tiap algoritma tersebut memiliki detil penanganan yang berbeda satu sama lainnya. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 4

Bubble Sort k i n t k a e t g n n a

Bubble Sort k i n t k a e t g n n a a s k a a y p n u a r s e m e t i s m r o t o r r g p l t o s a a g g n e n n a a bl a y k s b a n u g p a B n t u. r a u ) r y e n u a p m g a e i l n s p u e n a p t m o r , k t e n a p a b k g m u n t a e l n d u g h n i a sort el (mud p m i s AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 5

Bubble Sort Mechanism • Berikut Rule pada Bubble Sort: – Mulai dari kiri, bandingkan

Bubble Sort Mechanism • Berikut Rule pada Bubble Sort: – Mulai dari kiri, bandingkan 2 item. – Jika yang di sebelah kiri lebih besar, tukar tempat. – Geser satu posisi ke kanan, untuk melakukan pembandingan selanjutnya. • Lakukan rule tersebut hingga mencapai posisi paling kanan. • Teknik ini dinamakan Bubble karena progres algoritma-nya: the biggest items "bubble up" to the top end of the array, just like bubble in soda water AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 6

Bubble Sort Mechanism After the first pass (1 round) AER – 2011/2012 Universitas Pembangunan

Bubble Sort Mechanism After the first pass (1 round) AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 7

Bubble Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. 2. 3.

Bubble Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. 2. 3. 4. Bandingkan elemen sekarang dengan elemen berikutnya, mulai dari kiri (tergantung jenis, ascending atau descending). Geser posisi satu per satu dari kiri ke kanan (tergantung jenis, ascending atau descending) Ulangi langkah 1 - 2 sebanyak jumlah item (n) Ulangi langkah 1 - 3 sebanyak jumlah item-1 (n-1) AER – 2011/2012 for (i=0; i<=n-2; i++) { for (j=0; j<=n-2; j++) { if (a[j+1] < a[j]) { x = a[j]; a[j] = a[j+1]; a[j+1] = x; } } } Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 8

Selection Sort by 2 t r o ) s e N l ( b

Selection Sort by 2 t r o ) s e N l ( b O b u m b o r f he t y r n a o ss s e e c v e s ro aps n n i p a m m e r rt i of sw o s s on n r s o i e i r t b a p lec e num e m s o fc o The ing th r e b c u m d nu re. e ) h (N , t y O l e o t at n u t r o f n U 2. Sort Pro ) N cessing B ( O y selecti and com ng Item, pare it w ith other to find th Items e smalle st or Big (depend est on the so rt type). AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 9

Selection Sort Mechanism • Berikut Rule pada Selection Sort: – Putaran pertama mulai dari

Selection Sort Mechanism • Berikut Rule pada Selection Sort: – Putaran pertama mulai dari kiri (indeks 0) cari item terkecil, letakkan item terkecil tersebut pada posisi paling kiri (indeks 0). – Putaran kedua dimulai dari item kedua dari kiri (indeks 1) cari item terkecil kedua, letakkan item terkecil kedua pada posisi kedua dari kiri (indeks 1). – Lakukan langkah tersebut hingga semua item di proses. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 10

Selection Sort Mechanisme • Penjelasan: – Mulai dari ujung kiri, catat tinggi pemain paling

Selection Sort Mechanisme • Penjelasan: – Mulai dari ujung kiri, catat tinggi pemain paling kiri di catatan Anda dan beri tanda di depan orang ini. – Kemudian bandingkan dengan pemain berikutnya (ke kanan) dengan nilai tinggi pada catatan Anda. – Jika pemain ini lebih pendek, coret nilai tinggi pemain pertama dan catat tinggi pemain kedua sebagai gantinya. Juga pindahkan tanda ke depan pemain yang lebih pendek ini. – Lanjutkan dengan membandingkan pemain berikutnya dengan nilai pada catatan anda untuk mendapatkan pemain terpendek, dan merubah nilai tinggi pada catatan setiap didapatkan pemain yang lebih pendek, serta pindahkan tanda ke pemain terpendek. – Setelah didapatkan pemain terpendek, pindahkan pemain terpendek ke posisi paling kira, dan ulangi langkah di atas dengan dimulai dari posisi kedua dari kiri, dan demikian seterusnya. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 11

Selection Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. 2. 3.

Selection Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. 2. 3. 4. 5. Mulai dari ujung kiri, Catat nilainya dan beri tanda posisi. Bandingkan nilai yang dicatat dengan nilai berikutnya (ke kanan) untuk mencari nilai lebih kecil. Jika nilai berikutnya lebih kecil, catat nilainya dan pindahkan tanda. Lanjutkan untuk posisi kedua dari kiri (dan posisi seterusnya) dengan proses 2 -4, dan seterusnya hingga semua posisi dibandingkan. AER – 2011/2012 for (int i=0; i<n-1; i++) { y=i; //tanda posisi x=a[i]; //catatan nilai for (int j=i+1; j<n; j++) { if (a[j] < x) { y = j; //Memindahkan tanda x = a[j]; //merubah catatan } } //swap nilai terkecil a[y]=a[i]; a[i]=x; } Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 12

Insertion Sort e l b ub b e th n i s t a

Insertion Sort e l b ub b e th n i s t a r t o s s a f n o as electi e c i tw the s t s u n i o n a b a a m e r rt ster th o s s n o n a s f o i i r t t a a p h er s w m n i e o fc o The nd som ons. r e b i a t t m a r u u t n so i s e l h a , t m y r l o e n at n u t r o f n Sort Pro U 2. cessing i ) N ( s just lik O the card e sorting , one by one the pulled a card nd inser ted into posision it's right. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 13

Insertion Sort Mechanism • Berikut Rule pada Insertion Sort: – Putaran pertama mulai dari

Insertion Sort Mechanism • Berikut Rule pada Insertion Sort: – Putaran pertama mulai dari item kedua kiri (indeks 1) cari item terkecil, letakkan item terkecil tersebut pada posisi paling kiri (dengan penyisipan mundur /kebelakang untuk mendapatkan posisi terkiri data tersebut pada urutan). – Putaran kedua dimulai dari item kedua dari kiri (indeks 1) cari item terkecil kedua, letakkan item terkecil kedua pada posisi kedua dari kiri (indeks 1). – Lakukan langkah tersebut hingga semua item di proses. AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 14

Insertion Sort - Mechanism Temp=30 25 30 n-1 n 15 10 Temp=30 45 20

Insertion Sort - Mechanism Temp=30 25 30 n-1 n 15 10 Temp=30 45 20 5 15 Putaran 1 Putaran 2 25 30 n-1 n 10 25 30 15 n-1 n 10 45 20 5 a[n-1] >= temp, maka; a[n] = a[n-1] Temp=15 25 30 30 n-1 n 10 10 45 45 20 20 5 5 15 25 n-1 n 30 10 45 5 20 25 30 10 n-1 n 45 20 5 a[n-1] >= temp, maka; a[n] = a[n-1] 15 15 a[n-1] >= temp, maka; a[n] = a[n-1] 25 20 Temp=10 Lanjut ke putaran 2 Temp=15 45 25 30 30 n-1 n 25 30 30 45 20 5 n-1 n 30 45 20 5 a[n-1] >= temp, maka; a[n] = a[n-1] 5 15 25 25 n-1 n n= 0, maka; a[n] =temp 25 25 30 n AER – 2011/2012 10 45 20 5 15 25 30 10 45 20 5 n Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 15

Insertion Sort - Mechanism Temp=20 15 25 n-1 n 25 30 45 20 10

Insertion Sort - Mechanism Temp=20 15 25 n-1 n 25 30 45 20 10 5 15 25 30 Putaran 5 45 20 n-1 n 5 Temp=10 a[n-1] >= temp, maka; a[n] = a[n-1] 15 15 n-1 n 25 30 45 20 10 5 15 25 30 5 a[n-1] >= temp, maka; a[n] = a[n-1] 10 10 15 25 30 45 20 15 25 30 45 45 n-1 n 30 45 45 5 n-1 n 45 5 n n= 0, maka; a[n] =temp 10 15 25 Temp=30 a[n-1] >= temp, maka; a[n] = a[n-1] 10 15 25 30 n-1 n 45 20 5 10 Putaran 3 Temp=45 10 15 25 AER – 2011/2012 30 45 n-1 n 20 5 Putaran 4 Universitas Pembangunan Jaya – SIF_TIF 15 25 30 30 n-1 n … … Dst… Hingga putaran 6 selesai SIF 1213 - 16

Insertion Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. Mulai dari

Insertion Sort Algorithm & Code • Pengurutan data dilakukan dengan cara: 1. Mulai dari data indeks 2 (n), sampai data terakhir. 2. Jika ditemukan data yang lebih kecil; – maka tempatkan dengan melakukan penyisipan mundur (kebelakang) untuk mendapatkan posisi data tersebut pada urutan. AER – 2011/2012 // out is dividing line for(out=1; out<n; out++) { int temp = a[out]; // remove marked item in = out; // start shifts at out while(in>0 && a[in-1] >= temp) { // until one is smaller a[in] = a[in-1]; // shift item right --in; // go left one position } a[in] = temp; // insert marked item } Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 17

See You Next Session • Thank’s AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF

See You Next Session • Thank’s AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF 1213 - 18