Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

M. Ajir Muzakki, S.Si. Pengertian :  Sort adalah proses pengurutan data yang tersusun secara acak menjadi data yang tersusun secara teratur menurut aturan.

Presentasi serupa


Presentasi berjudul: "M. Ajir Muzakki, S.Si. Pengertian :  Sort adalah proses pengurutan data yang tersusun secara acak menjadi data yang tersusun secara teratur menurut aturan."— Transcript presentasi:

1 M. Ajir Muzakki, S.Si

2 Pengertian :  Sort adalah proses pengurutan data yang tersusun secara acak menjadi data yang tersusun secara teratur menurut aturan tertentu.  Urutan data dapat berbentuk Ancending (naik) atau Descending(turun).

3 Bila N obyek disimpan dalam larik L, maka pengurutan menaik berarti menyusun elemen larik sedemikian sehingga: L[1] ≤ L[2] ≤ L[3] ≤ … ≤ L[N] Sedangkan pengurutan menurun berarti menyusun elemen larik sedemikian sehingga: L[1] ≥ L[2] ≥ L[3] ≥ … ≥ L[N]

4 Data yang diurut dapat berupa data bertipe numerik dasar atau tipe bentuk. Jika data bertipe bentukan (rekaman), maka harus dijelaskan berdasarkan field apa data tersebut diurutkan. Contoh: (i) 23, 27, 45, 67 (data integer terurut menaik) (ii) 25.12, 20.19,-12.20 (data riil terurut menurun) (iii) Amir, Badu, Budi, Dudi (data string terurut manaik) (iv),, (data mahasiswa terurut menaik berdasarkan field NIM

5 Keuntungan Data Terurut Mempercepat pencarian; Mudah menentukan data maksimum / minimum.

6 Pengurutan Terbagi Dua Kelompok: Pengurutan Internal adalah pengurutan terhadap sekumpulan data yang disimpan di dalam memori utama komputer. Umumnya struktur data yang dipakai adalah larik, sehingga pengurutan internal disebut juga pengurutan larik. Pengurutan Eksternal adalah pengurutan data yang disimpan di dalam memori sekunder, biasanya data bervolume besar sehingga tidak mampu dimuat semuanya dalam memori komputer, disebut juga pengurutan arsip (file), karena struktur eksternal yang dipakai adalah arsip.

7 Metode Pengurutan Data 1. Bubble/Exchange Sort 2. Selection Sort( Maximum/Minimum Sort ) 3. Insertion Sort 4. Quick Sort 5. Heap Sort; 6. Merge Sort; 7. Radix Sort; 8. Tree Sort, dan lain-lain.

8  Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan.  Metode ini dilakukan dengan cara membandingkan elemen yang sekarang dengan yang berikutnya, jika elemen berikutnya lebih kecil maka elemen ditukar

9 Algoritma Pengurutan Gelembung Untuk mendapatkan larik yang terurut menaik, proses yang dilakukan pada setiap langkah sebagai berikut: Langkah 1: Mulai elemen K =N, N-1, …, 2, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 1, elemen L[1] berisi harga minimum pertama. Langkah 2: Mulai elemen K =N, N-1, …, 3, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah 2, elemen L[2] berisi harga minimum kedua dan larik L[1..2] terurut. Langkah N-1: Mulai elemen K =N, bandingkan L[K] dengan L[K-1]. Jika L[K] < L[K-1], pertukarkan L[K] dengan L[K-1]. Pada akhir langkah N-1, elemen L[N-1] berisi harga minimum ke-(N-1) dan larik L[1..N-1] terurut menaik, sehingga elemen yang tersisa adalah L[N] yang tidak perlu lagi diurutkan karena hanya satusatunya.

10 procedure UrutGelembung(input/output L: Larik; input N : integer) I : integer {pencacah untuk jumlah langkah} K : integer {pencacah untuk pengapungan pada setiap langkah} Temp : integer {peubah bantu untuk pertukaran} Algoritma for I ← 1 to N-1 do for K ← N downto i+1 do if L[K] < L[K-1] then {pertukarkan L[K] dengan L[K-1]} Temp ← L[K] L[K] ← L[K-1] L[K-1] ← Temp endif endfor

11 Procedure TukarData (Var a,b : Word); Var c : word; Begin c := a ; a := b ; b := c ; End; Procedure Asc_Buble (data : array; jmldata : integer); Var i,j : integer ; Begin For i := 2 to jmldata do For j := jmldata downto i do if data[j] < data[j-1] then TukarData (data[j],data[j-1] End; Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-6 if data [j] > data [j-1]

12 221015382 222101538 221015328 222101538 221021538 221015238 Iterasi ke-1 (Langkah 1) Iterasi ke-2 (Langkah 2) 222101538 232210158 222103158 222310158

13 Iterasi ke-3(Langkah 3) 232215158 232210815 232281015 238221015 238102215 238101522 Iterasi ke-4 (Langkah 4) Iterasi ke-5 (Langkah 5 238101522 terurut

14 Selection Sort Metode ini dilakukan dengan cara membandingkan elemen sekarang dengan elemen berikutnya,jika ditemukan elemen yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian tukar data dari posisi sekarang ke posisi yang terakhir dicatat tsb.

15 Procedure Asc_Selection; Var min, pos : byte ; Begin for i := 1 to max – 1 do Begin pos := i ; for j := i+1 to max do If data [j] < data [pos] then pos := j; If i <> pos then TukarData(data[i], data [pos]); End; Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-8 if data [pos] < data [j] then pos := j;

16 221015382 Iterasi ke-1 (Langkah 1) Pembanding Posisi 10 > 3 4 10 < 152 1 Posisi data ke-1 (22) = 6 Tukar data ke -1 dengan data ke-6 3 > 26 3 < 84 i = 123456 210153822 22 > 102

17 Iterasi ke-2 (Langkah 2) Pembanding Posisi 10 > 34 10 < 152 Posisi data ke-4 (10) = 4 Tukar data ke -2 dengan data ke-4 3 < 224 3 < 84 i = 123456 231510822 210153822

18 Iterasi ke-3 (Langkah 3) Pembanding Posisi 15 > 104 Posisi data ke-3(15) = 5 Tukar data ke -3 dengan data ke-5 8 < 225 10 > 85 i = 123456 238101522 231510822 Iterasi ke-4 (Langkah 4) Pembanding Posisi Posisi data ke-4 (10) tetap pada posisinya =4 (tidak berubah) 10 < 224 10 < 154 i = 123456 238101522 238101522

19 Iterasi ke-4 (Langkah 4) Pembanding Posisi Posisi data ke-5 (15) tetap pada posisinya =5 (tidak berubah) 15 > 225 238101522 238101522 i = 123456 238101522 Terurut

20 Dilakukan dengan cara membandingkan data ke-i (di mana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya

21 Procedure Asc_Insert; Var i, j, temp : byte Begin For i := 2 to max do Begin Temp := data[i]; j :=i – 1; While (data[j] > temp) and (j > 0) do Begin data[j + 1] := data [j]; dec(j) End; Data [j+1] := temp; End; Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-8 While (data [ j ] 0) do

22 221015382 Iterasi ke-1 (Langkah 1) Temp cekGeser Temp menempati posisi ke-1 10Temp < 22Data ke-1 → Posisi 2 i = 123456 102215382 102215382 Iterasi ke-2 (Langkah 2) Temp cekGeser Temp menempati posisi ke-2 15Temp < 22Data ke-2 → Posisi 3 i = 123456 101522382 Temp > 10

23 101522382 Iterasi ke-3 (Langkah 3) Temp cekGeser Temp menempati posisi ke-1 3Temp < 22Data ke-3 → Posisi 4 i = 123456 310152282 Temp < 15Data ke-2 → Posisi 3 Temp < 10Data ke-1 → Posisi 2 310152282 Iterasi ke-4 (Langkah 4) Temp cekGeser Temp menempati posisi ke-2 8Temp < 22Data ke-4 → Posisi 5 i = 123456 381015222 Temp < 15Data ke-3 → Posisi 4 Temp < 10Data ke-2 → Posisi 3 Temp > 3

24 381015222 Iterasi ke-5 (Langkah 5) Temp cekGeser Temp menempati posisi ke-1 2Temp < 22Data ke-5 → Posisi 6 i = 123456 238101522 Temp < 15Data ke-4 → Posisi 5 Temp < 10Data ke-3 → Posisi 4 Temp < 3Data ke-1 → Posisi 2 Temp < 8Data ke-2 → Posisi 3 238101522 Terurut

25 Dilakukan cara membandingkan suatu elemen (disebut pivot) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga elemen-elemen lain yang lebih kecil dari pada pivot tersebut terletak disebelah kirinya dan elemen lain yang lebih besar dari pada pivot terletak sebelah kanannya.sehinggga terbentuk dua sublist yang terletak di sebelah kiri dan kanan pivot. Proses : i bergerak dari sudut kiri ke kanan sampai mendapatkan nilai >= pivot j bergerak dari sudut kanan kekiri sampai menemukan nilai < pivot

26 221015382 Iterasi ke-1 (Langkah 1) i = 123456 i berhenti pada indek ke-1 karena diperoleh nilai yang lebih besar dari pivot (15) j berhenti pada indek ke-6 karena diperoleh nilai yang lebih kecil dari pivot (15) i j Karena i < j maka data yang ditunjuk oleh I ditukar dengan data j sehingga menjadi 210153822

27 210153822 Iterasi ke-2 (Langkah 2) i = 123456 i berhenti pada indek ke-3 karena tidak menemukan bilangan yang lebih besar dari pivot (15) j berhenti pada indek ke-5 karena diperoleh nilai yang lebih kecil dari pivot (15) i j Karena i < j maka data yang ditunjuk oleh i ditukar dengan data j sehingga menjadi 210831522

28 210831522 Iterasi ke-2 (Langkah 2) i = 123456 i berhenti pada indek ke-2 karena tidak menemukan bilangan yang lebih besar dari pivot (8) j berhenti pada indek ke-4 karena diperoleh nilai yang lebih kecil dari pivot (8) i j Karena i < j maka data yang ditunjuk oleh i ditukar dengan data j sehingga menjadi 238101522

29 Tugas Tunjukan dengan Gambar cara pengurutan sekumpulan data berikut ini secara ascending dan sampai berapa iterasi yang diperlukan ?: 41067258 Gunakan metode :- Buble short - Quick Short


Download ppt "M. Ajir Muzakki, S.Si. Pengertian :  Sort adalah proses pengurutan data yang tersusun secara acak menjadi data yang tersusun secara teratur menurut aturan."

Presentasi serupa


Iklan oleh Google