Sorting Pengurutan Macammacam Metode Pengurutan 1 Penyisipan langsung

  • Slides: 21
Download presentation
Sorting (Pengurutan)

Sorting (Pengurutan)

Macam-macam Metode Pengurutan: 1. Penyisipan langsung ( straight insertion sort) 2. Seleksi (selection sort)

Macam-macam Metode Pengurutan: 1. Penyisipan langsung ( straight insertion sort) 2. Seleksi (selection sort)

Pengurutan Definisi algoritma : ‘ algoritma pengurutan adalah untuk meletakkan kumpulan elemen data ke

Pengurutan Definisi algoritma : ‘ algoritma pengurutan adalah untuk meletakkan kumpulan elemen data ke dalam urutan tertentu, berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen’ Ada 2 macam urutan dalam proses pengurutan: 1. Ascending 2. Descending

Mengapa data harus diurutkan? Agar data dapat dilihat dengan mudah. Pengurutan disini mengenai data

Mengapa data harus diurutkan? Agar data dapat dilihat dengan mudah. Pengurutan disini mengenai data larik. Const max = 1000 ; Var Data : Array [0. . Max] of word; Indeks larik dimulai dari 0. data yang sebenarnya disimpan mulai dari indeks 1, tetapi ada metode pengurutan yang memerlukan penampung sementara sehingga digunakan indeks 0.

Metode Pengurutan Beberapa metode pengurutan akan menemukan pemanggilan TUKAR. Kegunaan prosedur ini adalah menukar

Metode Pengurutan Beberapa metode pengurutan akan menemukan pemanggilan TUKAR. Kegunaan prosedur ini adalah menukar isi dua variabel. Berikut definisi Tukar : Procedure Tukar (var Data 1, Data 2 : word); Var temp : word; Begin temp : = Data 1; Data 1 : = Data 2; Data 2 : = Data 1; End;

Contoh pengurutan data Untuk contoh di gunakan data bilangan bulat berjumlah sembilan yaitu: 12

Contoh pengurutan data Untuk contoh di gunakan data bilangan bulat berjumlah sembilan yaitu: 12 35 9 11 3 17 23 15 31 Kita akan mengurutkan data diatas menjadi urut naik, seperti; 3 9 11 12 15 17 23 31 35

Menilai pengurutan yang baik Ada 2 hal untuk menilai pengurutan yang baik: 1. Jumlah

Menilai pengurutan yang baik Ada 2 hal untuk menilai pengurutan yang baik: 1. Jumlah pembandingan yang dilakukan atau sering disingkat dengan simbol C 2. Jumlah penukaran atau penggeseran data yang dilakukan atau sering disingkat dengan M

1. Metode Penyisipan Langsung (straight insertion sort) Data di cek satu persatu mulai dari

1. Metode Penyisipan Langsung (straight insertion sort) Data di cek satu persatu mulai dari yang ke dua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil dari sebelumnya, maka data disisipkan ke posisi yang sesuai. Misalnya; pengurutan kartu

Algoritma Penyisipan Langsung 1. i 2 2. Selama (i<=N) kerjakan baris 3 sampai dengan

Algoritma Penyisipan Langsung 1. i 2 2. Selama (i<=N) kerjakan baris 3 sampai dengan 10 3. x Data[i] 4. Data[0] x 5. j i – 1 6. Selama (x < Data[j] ) kerjakan baris 7 dan 8 7. Data [j+i] Data [j] 8. j j – 1 9. Data[j+1] x 10. i i + 1

Proses pengurutan Iterasi Data [1] Data [2] Data [3] Data [4] Data [5] Data

Proses pengurutan Iterasi Data [1] Data [2] Data [3] Data [4] Data [5] Data [6] Data [7] Data [8] Data [9] Awal 12 35 9 11 3 17 23 15 31 i=2 12 35 9 11 3 17 23 15 31 i=3 12 35 9 11 3 17 23 15 31 i=4 9 12 35 11 3 17 23 15 31 i=5 9 11 12 35 3 17 23 15 31 i=6 3 9 11 12 35 17 23 15 31 i=7 3 9 11 12 17 35 23 15 31 i=8 3 9 11 12 17 23 35 15 31 i=9 3 9 11 12 15 17 23 35 31 Akhir 3 9 11 12 15 17 23 31 35

Penjelasan • i = 2, x samadengan Data[2], yaitu 35 dan j=1. karena Data[1]=12

Penjelasan • i = 2, x samadengan Data[2], yaitu 35 dan j=1. karena Data[1]=12 dan 35>12 maka proses dilanjutkan • i=3, x samadengan Data[3], yaitu 9 dan j=2. karena Data[2]=35 dan 9<35 maka dilakukan penggeseran sampai menemukan yang lebih kecil dari 9. Hasilnya, Data[2]=12 dan Data[3]=35. Bagaimana dengan Data[1]? Data[1] = x yaitu 9. • i=4, x samadengan Data[4], yaitu 11 dan j=3. karena Data[3]=35 dan 11<35, maka dilakukan penggeseran sampai ditemukan data yang lebih kecil dari 11. Hasil penggeseran Data[3]=12 dan Data[4]=45, Data[2] diisi 11 • dst

Mengapa diperlukan Data[0]? Untuk berjaga-jaga apabila data yang sedang dipindah lebih kecil daripada Data[1].

Mengapa diperlukan Data[0]? Untuk berjaga-jaga apabila data yang sedang dipindah lebih kecil daripada Data[1]. Contohnya pada saat i=3, data yang digeser adalah 9 yang lebih kecil dari 12. Apabila tidak ada Data[0] maka kondisi (x<Data[j]) akan selalu terpenuhi, artinya kalang tidak pernah terpenuhi.

Contoh prosedur penyisipan langsung Procedure Straight. Insertion. Sort; Var i, j , x :

Contoh prosedur penyisipan langsung Procedure Straight. Insertion. Sort; Var i, j , x : word; Begin for i : = 2 to N do begin x : = Data[i]; Data[0] : = x; j : = i – 1; while (x < Data[j]) do begin Data[j + 1] : = Data[j]; dec (j); end; Data[j + 1] : = x; end; End;

Tugas 1: Buat pengurutan dengan metode Penyisipan Langsung (straight insertion sort) dari bilangan di

Tugas 1: Buat pengurutan dengan metode Penyisipan Langsung (straight insertion sort) dari bilangan di bawah ini : 23, 46, 20, 22, 14, 28, 34, 26, 41

2. Metode Seleksi (selection sort) Melakukan pengurutan dengan cara mencari data yang terkecil kemudian

2. Metode Seleksi (selection sort) Melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan disebut pivot. Mula-mula dilakukan pengulangan dari 1 sampai dengan (N – 1). Tiap-tiap pengulangan dicari data yang paling kecil diantara data ke (i + 1) sampai data terakhir (=N). Data terkecil ditukarkan dengan pivot, yaitu data ke -i. Apabila data terkecil tersebut lebih keci dari data ke-im proses penuakaran tidak perlu dilakukan.

Algoritma Seleksi 1. 2. 3. 4. 5. 6. 7. 8. 9. i 1 Selama

Algoritma Seleksi 1. 2. 3. 4. 5. 6. 7. 8. 9. i 1 Selama ( i <= N-1) kerjakan baris 3 sampai 9 k i j i+1 Selama ( j <= N) kerjakan baris 6 dan 7 Jika (Data[k] > Data[j]) maka k j j j+1 Tukar Data[i] dengan Data[k] i i+1

Proses pengurutan seleksi Iterasi Data [1] Data [2] Data [3] Data [4] Data [5]

Proses pengurutan seleksi Iterasi Data [1] Data [2] Data [3] Data [4] Data [5] Data [6] Data [7] Data [8] Data [9] Awal 12 35 9 11 3 17 23 15 31 i=1 12 35 9 11 3 17 23 15 31 i=2 3 35 9 11 12 17 23 15 31 i=3 3 9 35 11 12 17 23 15 31 i=4 3 9 11 35 12 17 23 15 31 i=5 3 9 11 12 35 17 23 15 31 i=6 3 9 11 12 15 17 23 35 31 i=7 3 9 11 12 15 17 23 35 31 i=8 3 9 11 12 15 17 23 35 31 Akhir 3 9 11 12 15 17 23 31 35

Penjelasan • Saat i=1, data yang terkecil diantara data ke-2 sampai 9 adalah data

Penjelasan • Saat i=1, data yang terkecil diantara data ke-2 sampai 9 adalah data ke-5, yaitu 3. Kemudian data ke-1 yaitu 12 ditukar dengan data ke-5 yaitu 3 • Saat i=2, data yang terkecil diantara data ke-3 sampai 9 adalah data ke-3, yaitu 9. Kemudian data ke-2 yaitu 35 ditukar dengan data ke-3 yaitu 9 • Saat i=3, data yang terkecil diantara data ke-4 sampai 9 adalah data ke-4, yaitu 11. Kemudian data ke-3 yaitu 35 ditukar dengan data ke-4 yaitu 11 • dst

Prosedur Metode Seleksi Procedure Selection. Sort; Var i, j, k : word; Begin for

Prosedur Metode Seleksi Procedure Selection. Sort; Var i, j, k : word; Begin for i : = 1 to N – 1 do begin k : = i; for j : = i + 1 to N do if (Data[k] > Data[j]) then k : = j; Tukar (Data[i], Data[k]); end; End;

Tugas 2: 50, 40, 60, 30, 70, 20, 90, 100 nim genap 23, 46,

Tugas 2: 50, 40, 60, 30, 70, 20, 90, 100 nim genap 23, 46, 20, 22, 14, 28, 34, 26, 41 nim ganjil • Buat pengurutan seleksi (selection sort) dari bilangan di atas. • Buat pengurutan dengan metode Penyisipan Langsung (straight insertion sort) dari bilangan di atas.

---selesai----

---selesai----