4
Metode Sorting dan Aplikasinya Tugas Kuliah Algoritma dan Struktur Data Mohammad Aziz Fikri Manajemen Informatika Politeknik Negeri Lampung Bandar Lampung, Lampung [email protected] Sorting—Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang dikehendaki. PENGURUTAN DAPAT DILAKUKAN SECARA ASCENDING (URUT NAIK) MAUPUN DESCENDING (URUT TURUN). (Sorting) Sumber: (http://www.mdp.ac.id/materi/2012-2013-2/ sp244/121076 ) I. PENDAHULUAN SORT adalah Suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut aturan tertentu. • Biasanya pengurutan menjadi 2 (dua), yaitu : • Ascending → Pengurutan dari karakter / angka kecil ke karakter / angka besar. • Descending → Pengurutan dari karakter / angka besar ke karakter / angka kecil. Beberapa Metode String Untuk melakukan proses pengurutan dapat menggunakan beberapa metode, diantaranyanya adalah : Bubble Sort Selection Sort Insertion Sort Merge Sort Quick Sort Sumber: (http://widuri.raharja.info/index.php? title=Logika_dan_Algoritma_%28LA103F%29 ) II. BUBBLE SORT Bubble Sort adalah Suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya. Bubble sort sangatlah simple, dan tidak efektif. Metode sorting ini tidak direkomendasikan untuk digunakan. Dikarenakan penggunaan metode ini dapat dikatakan lambat. Metode ini sangat baik jika digunakan dalam skala data yang sedikit, namun sangat tidak disarankan untuk digunakan dalam skala besar Sumber: (http://pascal-programming.info/articles/sorting.php ) Contoh Bubble Sort I. 10 41 5 7 9 8 10 5 41 7 9 8 5 10 41 7 9 8 II. 5 10 41 7 9 8 5 10 7 41 9 8 5 7 10 41 9 8 III. 5 7 10 41 9 8

Tugas Algoritma M. Aziz Fikri | Zeyst Dokumen

Embed Size (px)

Citation preview

Page 1: Tugas Algoritma M. Aziz Fikri | Zeyst Dokumen

Metode Sorting dan AplikasinyaTugas Kuliah Algoritma dan Struktur Data

Mohammad Aziz FikriManajemen Informatika

Politeknik Negeri LampungBandar Lampung, [email protected]

Sorting—Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang dikehendaki. PENGURUTAN DAPAT DILAKUKAN SECARA ASCENDING (URUT NAIK) MAUPUN DESCENDING (URUT TURUN). (Sorting)

Sumber:

(http://www.mdp.ac.id/materi/2012-2013-2/sp244/121076)

I. PENDAHULUAN

SORT adalah Suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut aturan tertentu.• Biasanya pengurutan menjadi 2 (dua), yaitu :• Ascending → Pengurutan dari karakter / angka kecil ke karakter / angka besar.• Descending → Pengurutan dari karakter / angka besar ke karakter / angka kecil.Beberapa Metode StringUntuk melakukan proses pengurutan dapat menggunakan be-berapa metode, diantaranyanya adalah :

Bubble SortSelection SortInsertion SortMerge SortQuick Sort

Sumber: (http://widuri.raharja.info/index.php?title=Logika_dan_Algoritma_%28LA103F%29)

II. BUBBLE SORT

Bubble Sort adalah Suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen berikutnya.

Bubble sort sangatlah simple, dan tidak efektif. Metode sorting ini tidak direkomendasikan untuk digunakan. Dikarenakan penggunaan metode ini dapat dikatakan lambat. Metode ini sangat baik jika digunakan dalam skala data yang sedikit, namun sangat tidak disarankan untuk digunakan dalam skala besar

Sumber:

(http://pascal-programming.info/articles/sorting.php)

Contoh Bubble Sort

I. 10 41 5 7 9 8

10 5 41 7 9 8

5 10 41 7 9 8

II. 5 10 41 7 9 8

5 10 7 41 9 8

5 7 10 41 9 8

III. 5 7 10 41 9 8

5 7 10 41 8 9

5 7 10 8 41 9

5 7 8 10 41 9

IV. 5 7 8 10 41 9

5 7 8 10 9 41

5 7 8 9 10 41

Hasilnya :

5 7 8 9 10 41

Page 2: Tugas Algoritma M. Aziz Fikri | Zeyst Dokumen

Aplikasinya dalam Turbo Pascal

void bubblesort2(){

for(i=1;i<n;i++){

for(int j=0;j<n-i;j++){

if(data[j]<data[j+1])

tukar(&data[j],&data[j+1]); //ascending

}

}

}

III. SELECTION SORT

Kondisi awal:

- Unsorted list = data- Sorted list = kosong-

Ambil yang terbaik ( select ) dari unsorted list, tambahkan di belakang sorted list. Lakukan terus sampai unsorted list habis

Sumber:

(http:// core.ac.uk/download/pdf/11719025.pdf )

Contoh Selection Sort

Posisi 0 1 2 3 4 5

I. 10 41 5 7 9 8

Pembanding Posisi

10 < 41 0

10 > 5 (Tukar Idx) 2

5 < 7 2

5 < 9 2

5< 8 2

Posisi 0 1 2 3 4 5

II. 5 41 10 7 9 8

Pembanding Posisi

41 > 10 (Tukar Idx) 2

10 > 7 (Tukar Idx) 3

7 < 9 3

7 < 8 3

Posisi 0 1 2 3 4 5

III. 5 7 10 41 9 8

Pembanding Posisi

10 < 41 2

10 > 9 (Tukar Idx) 4

7 > 9 (Tukar Idx) 5

Posisi 0 1 2 3 4 5

IV. 5 7 8 41 9 10

Pembanding Posisi

41 > 9 (Tukar Idx) 4

9 < 10 4

Posisi 0 1 2 3 4 5

V. 5 7 8 41 9 10

Pembanding Posisi

41 > 10 (Tukar Idx) 5

Hasilnya : 5 7 8 9 10 41

Aplikasinya dalam Turbo Pascal

void selection_sort(){

for(int i=0;i<n-1;i++){

pos = i;

for(int j=i+1;j<n;j++){

if(data[j] < data[pos]) pos = j; //ascending

}

if(pos != i) tukar(&data[pos],&data[i]);

}

}

IV. INSERTION SORT

Kondisi awal:- Unsorted list = data- Sorted list = kosong

Ambil sembarang elemen dari unsorted list, sisipkan (insert) pada posisi yang benar dalam sorted list.Lakukan terus sampai unsorted list habis. Bayangkan anda mengurutkan kartu.

Sumber:

(http:// core.ac.uk/download/pdf/11719025.pdf )

Page 3: Tugas Algoritma M. Aziz Fikri | Zeyst Dokumen

Contoh Insertion Sort

I.

Posisi 0 1 2 3 4 5

10 41 5 7 9 8Temp Cek Geser

41 Temp > 10 -

II.

Posisi 0 1 2 3 4 5

10 41 5 7 9 8Temp Cek Geser

5 Temp < 41 Geser data ke-1 ke posisi 25 Temp < 10 Geser data ke-0 ke posisi 1

III.

Posisi 0 1 2 3 4 5

5 10 41 7 9 8Temp Cek Geser

7 Temp < 41 Geser data ke-2 ke posisi 37 Temp < 10 Geser data ke-1 ke posisi 27 Temp > 5 -

IV.

Posisi 0 1 2 3 4 5

5 7 10 41 9 8Temp Cek Geser

9 Temp < 41 Geser data ke-3 ke posisi 49 Temp < 10 Geser data ke-2 ke posisi 39 Temp > 7 -9 Temp > 5 -

V.

Posisi 0 1 2 3 4 5

5 7 9 10 41 8Temp Cek Geser

8 Temp < 41 Geser data ke-4 ke posisi 58 Temp < 10 Geser data ke-3 ke posisi 48 Temp < 9 Geser data ke-2 ke posisi 38 Temp > 7 -8 Temp > 5 -

Aplikasinya dalam Turbo Pascal

void insertion_sort(){

int temp;

for(int i=1;i<n;i++){

temp = data[i];

j = i -1;

while(data[j]>temp && j>=0){

data[j+1] = data[j];

j--;

}

data[j+1] = temp;

}

}

V. MERGE SORT

Adalah teknik sorting dengan ide dasarnya adalah meng-gabungkan setiap kali dua deretan angka atau elemen dan melakukan sort terhadap angka-angka atau elemen-elemen tersebut.

Ulangi langkah tersebut sampai diperoleh dua deretan ele-men yang akan digabungkan menjadi satu deretan angka atau elemen yang sudah di sort.

Sumber: (http://widuri.raharja.info/index.php?title=Logika_dan_Algoritma_%28LA103F%29)

I. MERGE SORT

Divide and conquer approachAlgoritma quickSort(S)

◦ Jika jumlah elemen dalam S = 0 atau 1, return.◦ Pilih sembarang elemen v ∈ S – sebutlah pivot.◦ Partisi S – {v} ke dalam 2 bagian:

- L = {x ∈ S – {v} | x ≤ v}

- R = {x ∈ S – {v} | x ≥ v}◦Kembalikan nilai quickSort(S), diikuti v, diikuti quickSort(S).

Sumber:

(http:// core.ac.uk/download/pdf/11719025.pdf )