Sorting.

Slides:



Advertisements
Presentasi serupa
Algoritma Sorting Alpro-2.
Advertisements

- PERTEMUAN 11 - SORTING (PENGURUTAN)
STRUKTUR DATA (3) sorting array
Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
STRUKTUR DATA sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
Struktur Data (Data Structure) – IS 2313
SORTING (PENGURUTAN).
STRUKTUR DATA (3) sorting array
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
BAB 6 S O R T I R Sebelum mengetahui lebih jauh tentang sorting, sebaiknya kita ingat kembali pengertian file dan record. File adalah kumpulan record,
STRUKTUR DATA (4) Sorting dan Searching Array
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Algoritma Sorting Tenia Wahyuningrum.
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
Sorting (Pengurutan).
Sorting 2007/2008 – Ganjil – Minggu 5.
SORTING Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
Sort Insert Sort.
Metode Pengurutan (Sorting)
Sort Pertemuan 8.
Tugas Kelompok 6 Teknik Sort.
Fondasi Pemrograman & Struktur Data
Algoritma dan Struktur Data 1 pertemuan 11
LANJUTAN DARI SHORTING
PENGURUTAN (SORTING).
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Sorting Pengurutan data dalam struktur data sangat penting terutama untuk data yang beripe data numerik ataupun karakter. Pengurutan dapat dilakukan secara.
Pertemuan 10 SORTING.
Struktur Data Prio Handoko, S. Kom., M.T.I.
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
Sorting.
Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Metode pemecahan masalah
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
STRUKTUR DATA sorting array
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
Pengurutan Rekaman SUB Pengurutan Gelembung.
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
Shorting (Pengurutan)
IT234 Algoritma dan Struktur Data
Sorting.
Sorting (Pengurutan).
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
IT234 Algoritma dan Struktur Data
STRUKTUR DATA (3) sorting array
Pengurutan (sorting).
IT234 Algoritma dan Struktur Data
SORTING Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data.
MODEL SORTING Kelompok V Rahmawati ( )
Sorting (Pengurutan).
SORTING.
FONDASI PEMROGRAMAN & STRUKTUR DATA #9
Transcript presentasi:

sorting

Tentang sorting Pada umumnya ada 2 macam pengurutan, yaitu: Sorting adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu ataupun secara acak, sehingga menjadi tersusun secara teratur menurut aturan tertentu. Pada umumnya ada 2 macam pengurutan, yaitu: Pengurutan secara ascending (urut naik). Pengurutan secara descending (urut turun).

(Sorting) Algoritma untuk melakukan sorting juga ada berbagai macam, antara lain: Teoretis : Computational complexity theory, Big O notation, Total order, Stability, Comparison sort. Exchange sorts : Exchange sort, Bubble sort, Cocktail sort, Comb sort, Gnome sort, Quick sort. Selection sorts : Selection sort, Heap sort, Smooth sort. Insertion sorts : Insertion sort, Shell sort, Tree sort, Library sort, Patience sorting. Merge sorts : Merge sort. Non-comparison : Radix sort, Bucket sort, Counting sort, Pigeonhole sort. Others : Topological sorting, Sorting network.

(Sorting) Algoritma-algoritma diatas tentu mempunyai efek yang berbeda dalam setiap prosesnya, ada yang mudah digunakan, ada yang mempunyai proses yang sangat cepat, dan sebagainya. Tidak semua algortima yang pendek itu buruk dan tidak semua algoritma yang super cepat juga akan baik dalam semua kondisi. Misal: algoritma Quick Sort adalah algoritma sorting yang tercepat dalam proses pencariannya, namun jika data yang akan diurutkan ternyata sudah hampir terurut atau tidak terlalu banyak, maka algoritma ini malah akan memperlama proses pengurutan itu sendiri, karena akan banyak perulangan tidak perlu yang dilakukan dalam proses sorting ini Hal umum dilakukan dalam proses sorting adalah proses pertukaran antara 2 elemen atau lebih (analogi memindah air dalam gelas). Untuk melakukan proses pertukaran akan diperlukan adanya variable baru yang digunakan sebagai variable penampung.

Bublle sort

Bublle sort (lanjut) 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.

Bublle sort (lanjut) Pengurutan Ascending :Jika elemen sekarang lebih besar dari elemen berikutnya maka kedua elemen tersebut ditukar. Pengurutan Descending: Jika elemen sekarang lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar. Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc.

Bublle sort (lanjut) Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya, asc atau desc. Ketika satu proses telah selesai, maka bubble sort akan mengulangi proses, demikian seterusnya sampai dengan iterasi sebanyak n-1. Kapan berhentinya?  Bubble sort berhenti jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan.

Bublle sort (lanjut)

Bublle sort (lanjut)

Bublle sort (lanjut)

Bublle sort (lanjut) // buble sort Void bubble sort (int a[], int n){ Int I,j for (i=n;i>=1;i--){ for (j=2;j<i;j++) if (a[j-1] > a[j]) tukar (a,j-1,j); }

#include <iostream> #include <conio #include <iostream> #include <conio.h> int data[10],data2[10]; int n; void tukar(int a,int b) { int t; t = data[b]; data[b] = data[a]; data[a] = t; } void Input() cout<<"Masukkan jumlah data = ";cin>>n; cout<<"--------------------------------------"<<endl; for(int i=0;i<n;i++) cout<<"Masukkan data ke-"<<(i+1)<<" = ";cin>>data[i]; data2[i] = data[i];

cout<<"Masukkan data ke-"<<(i+1)<<" = "; cin>>data[i]; data2[i] = data[i]; } cout<<endl; void Tampil() { for(int i=0;i<n;i++) cout<<data[i]<<" "; void bubble_sort() for(int i=1;i<n;i++) for(int j=n-1;j>=i;j--) if(data[j]<data[j-1]) tukar(j,j-1);

Tampil(); } cout<<endl; main() { cout<<"*-------------------------------------*"<<endl; cout<<"* Contoh aplikasi *"<<endl; cout<<"* Bubble Sort *"<<endl; Input(); cout<<"Proses Bubble Sort,,,,,,,"<<endl; cout<<"-------------------------------------"<<endl; bubble_sort(); getch();}

Selection Sort

Selection Sort Merupakan kombinasi antara sorting dan searching Setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]). Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses.

(Selection Sort)

(Selection Sort)

(Selection Sort) Dan seterusnya... Hingga hasil akhir seperti dibawah:

Selection Sort (3) Void selection (int a[], int n){ Int i,j, pos; Fungsi Selection Sort // Selection Sort Void selection (int a[], int n){ Int i,j, pos; for (i=1;i<n;i++){ pos = i; for (j=(i+1);j<n;j++) if (a[j] > a[pos]) Pos = j; tukar (a,pos,i); }

Contoh lain

Insertion Sort

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/index ke 1, 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

(Insertion Sort) Merupakan metode pengurutan yang mengambil sebuah data sisip pada data yang diurutkan dan menggeser data yang lebih besar dari data sisip agar data sisip dapat ditempatkan pada tempat yang benar. Misalkan ada sebuah array yang berisi angka- angka sebagai berikut :

(Insertion Sort) Jika data akan diurutkan dengan urutan menaik (ascending) menggunakan metode penyisipan langsung (straight insertion) maka prosesnya adalah sebagai berikut :

(Insertion Sort)

(Insertion Sort) Dan seterusnya... Hasil Akhirnya Adalah:

Insertion Sort

Insertion Sort

Quick sort

Quick sort Metode Quick sering disebut juga metode partisi (partition exchange sort). Metode ini diperkenalkan pertama kali oleh C.A.R. Hoare pada tahun 1962. Untuk mempertinggi efektifitas dari metode ini, digunakan teknik menukarkan dua elemen dengan jarak yang cukup besar.

Quick sort Bersifat devide & conquer Merupakan metode pencarian yang sangat cepat ( saat ini tercepat ) Pertama deret dibagi dua bagian Misal : semua elemen pada bagian b (bag. pertama) mempunyai kurang dari atau sama dengan semua elemen pada bagian c (bagian kedua – membagi) Kemudian, kedua bagian tersebut dilakukan proses sorting dengan rekursif secara terpisah dgn prosedur yg sama (conquer) Kemudian gabungkan lagi kedua bagian terpisah tersebut

Quick sort Langkah Memilih sebuah elemen pembanding(pivot), misal x Semua elemen dari deret yg kurang dari x diletakkan pada bagian kedua Kemudian semua elemen dari yg lebih besar dari x diletakkan pada bagian kedua Utk elemen yang sama dengan x bisa diletakkan di mana saa bahkan bisa juga diantara kedua bagian tersebut

Quick sort Algoritma partisi input : sequnce a0…..an-1 with n elements Output : permutation of the suquence such that all elements a0,…, aj are less than or equal to all elements ai,….an-1 (i>j) Method : choose the element in the middle of the sequence as comparison element x Let I = 0 and j=n-1 While i≤j search the first elements ai which in greater than or equal to x search the last elements aj which is less than or equal to x If i ≤ j Exchange ai and aj Let i=i+1 and j=j-1

Quick sort Setelah mempartisi, prosedur sorting akan dilakukan secara rekursif. Hingga proses rekursif tersebut akan berhenti saat sebuah bagian hanya tinggal terdapat satu elemen saja. Tidak baik jika elemen2 yang akan diurutkan hanya ada sedikit atau sudah hampir terurut, karena jika menggunakan ,metode ini justru akan melakukan perulangan yang tidak berguna dan lama Mempunyai algoritma dan program yg cukup kompleks

//quick sort Void quickshort (int a[],int 1, int r){ Int I,j,v; v=a[r];i=1-1;j=r; for (;;) { while (a[++i]<v); while (a[--j]<v); if (i>l) break; Tukar (a,i.j) } Tukar (a,I,r) Quickshort (a,1,i-1); Quickshort (a,1,i+1);

Metode Quick Sort

Metode Quick Sort

Metode Quick Sort

Exchange Sort

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.

// exchange sort Void exchange (int a[], int n){ Int i,j for (i=0;i<=n-1;i++){ for (j=(i+1);j<n;j++) if (a[i] > a[j]) tukar (a,i,j); }

Ilustrasi 9 2 5 4 7 8 2 9 5 4 7 8 2 4 9 5 7 8 2 4 5 9 7 8 2 4 5 7 9 8 2 4 5 7 8 9

Fungsi insertion Sort // insertion Sort Void selection (int a[], int n){ Int i,j, v; for (i=2;i<=n;i++){ v = a[i]; j=1; While (a[j-1]>v){ a[j]=a[j-1] j--; a[j=v]; }