Fondasi Pemrograman Struktur Data Sesi 11 Teknik Sort
- Slides: 18
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 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 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, – 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 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 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 Jaya – SIF_TIF SIF 1213 - 7
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 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 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 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. 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 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 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 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 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 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 SIF 1213 - 18
- Fondasi pendidikan
- Teknik-teknik pendiskripsian semantik bahasa pemrograman
- Pemrograman konvensional adalah
- Pemrograman konvensional
- Apa yang dimaksud dengan pemrograman konvensional
- Contoh pemrograman konvensional
- Pondasi penelitian adalah
- Bubble sort vs selection sort
- Difference between selection sort and bubble sort
- Pseudo code for bubble sort
- Selection sort vs bubble sort
- Bubble sort 5-66
- Who invented selection sort
- Difference between bubble sort and selection sort
- Quick sort merge sort
- Quick sort merge sort
- Radix sort animation
- Radix bucket sort
- Raller sesi