SORT (pengurutan) M. Ajir Muzakki, S.Si.

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
PENGURUTAN ( SORTING ) Fajrizal.
STRUKTUR DATA sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
PENGURUTAN (SORTING).
SORTING.
SORTING (PENGURUTAN).
ARRAY SESI 2.
STRUKTUR DATA (3) sorting array
PENCARIAN (SEARCHING)
SORTING.
Algoritma & Struktur Data Sorting Evangs Mailoa.
Dasar Pemrograman ARRAY/LARIK.
Pertemuan – 14 Sorting (Bab 8) Informatics Engineering Department
Sorting Pertemuan ke 14..
Algoritma dan Struktur Data
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,
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
BAB III PENGURUTAN DATA (SORTING) Tertia Avini, S. Kom tertiaavini
STRUKTUR DATA (4) Sorting dan Searching Array
Metode Pengurutan (Sorting)
Insertion Sort Dilakukan dengan cara membandingkan data ke-i (di mana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya.
LANJUTAN DARI SHORTING
Struktur Data Algoritma Sorting
STRUKTUR DATA Chapt 07 : Sorting Oleh : Yuli Praptomo PHS, S.Kom.
Algoritma dan Struktur Data
Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan.
Pertemuan 10 SORTING.
Algoritma dan Pemrograman Sorting
Struktur Data Prio Handoko, S. Kom., M.T.I.
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
PENGURUTAN (SORTING) Pengurutan adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat dilakukan secara.
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
STRUKTUR DATA (3) sorting array
P.MARPAUNG SORTING(PENGURUTAN)
STRUKTUR DATA Array Statis.
STRUKTUR DATA Array Statis.
STRUKTUR DATA (3) sorting array
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
STRUKTUR DATA sorting array
STRUKTUR DATA Array Statis.
Imam Gunawan, M. Kom STMIK-AMIK Jayanusa Padang
Algoritma dan Pemrograman Sorting
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
STRUKTUR DATA Array Statis.
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
Shorting (Pengurutan)
Algoritma dan Pemrograman Sorting
Sorting (Pengurutan).
Pengurutan (Shorting)
STRUKTUR DATA (3) sorting array
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
SORTING (PENGURUTAN) Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending.
SORTING (PENGURUTAN).
IT234 Algoritma dan Struktur Data
Sorting Dasar Pemrograman
STRUKTUR DATA (3) sorting array
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.
Sorting (Pengurutan).
SORTING.
Transcript presentasi:

SORT (pengurutan) M. Ajir Muzakki, S.Si

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).

• 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]

(i) 23, 27, 45, 67 (data integer terurut menaik) • 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) <08053110001, Eko, A>, < 08053110011, Reza, C>, <08053110012, Sam, E> (data mahasiswa terurut menaik berdasarkan field NIM

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

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.

Metode Pengurutan Data Bubble/Exchange Sort Selection Sort(Maximum/Minimum Sort ) Insertion Sort Quick Sort Heap Sort; Merge Sort; Radix Sort; Tree Sort, dan lain-lain.

Bubble Sort 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

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.

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

Procedure TukarData (Var a,b : Word); Var c : word; Begin c := a ; b := c ; End; Procedure Asc_Buble (data : array; jmldata : integer); Var i,j : integer ; 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] Sedang untuk pengurutan secara descending dilakukan dengan mengganti baris Ke-6 if data [j] > data [j-1]

Iterasi ke-1 (Langkah 1) 22 10 15 3 8 2 22 10 15 3 2 8 22 10 15 2 3 8 22 10 2 15 3 8 22 2 10 15 3 8 2 22 10 15 3 8 Iterasi ke-2 (Langkah 2) 2 22 10 15 3 8 2 22 10 15 3 8 2 22 10 3 15 8 2 22 3 10 15 8 2 3 22 10 15 8

Iterasi ke-3(Langkah 3) 2 3 22 15 15 8 2 3 22 10 8 15 2 3 22 8 10 15 2 3 8 22 10 15 Iterasi ke-4 (Langkah 4) 2 3 8 22 10 15 2 3 8 22 10 15 2 3 8 10 22 15 Iterasi ke-5 (Langkah 5 2 3 8 10 22 15 2 3 8 10 15 22 terurut 2 3 8 10 15 22

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.

Procedure Asc_Selection; Var min, pos : byte ; Begin for i := 1 to max – 1 do 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;

22 10 15 3 8 2 Iterasi ke-1 (Langkah 1) Pembanding Posisi 10 > 3 4 10 < 15 2 1 Posisi data ke-1 (22) = 6 Tukar data ke -1 dengan data ke-6 3 > 2 6 3 < 8 4 i = 1 2 3 4 5 6 2 10 15 3 8 22 22 > 10 2

Iterasi ke-2 (Langkah 2) Pembanding Posisi 10 > 3 4 10 < 15 2 Posisi data ke-4 (10) = 4 Tukar data ke -2 dengan data ke-4 3 < 22 4 3 < 8 4 i = 1 2 3 4 5 6 2 3 15 10 8 22 2 10 15 3 8 22

Iterasi ke-3 (Langkah 3) Pembanding Posisi 15 > 10 4 Posisi data ke-3(15) = 5 Tukar data ke -3 dengan data ke-5 8 < 22 5 10 > 8 5 i = 1 2 3 4 5 6 2 3 8 10 15 22 2 3 15 10 8 22 Iterasi ke-4 (Langkah 4) Posisi data ke-4 (10) tetap pada posisinya =4 (tidak berubah) 10 < 22 4 10 < 15 4

Iterasi ke-4 (Langkah 4) Pembanding Posisi Posisi data ke-5 (15) tetap pada posisinya =5 (tidak berubah) 15 > 22 5 2 3 8 10 15 22 i = 1 2 3 4 5 6 Terurut

Insertion Sort 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

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

Iterasi ke-1 (Langkah 1) i = 1 2 3 4 5 6 22 10 15 3 8 2 Temp cek Geser 10 Temp < 22 Data ke-1 → Posisi 2 Temp menempati posisi ke-1 10 22 15 3 8 2 Iterasi ke-2 (Langkah 2) i = 1 2 3 4 5 6 10 22 15 3 8 2 Temp cek Geser 15 Temp < 22 Data ke-2 → Posisi 3 Temp > 10 Temp menempati posisi ke-2 10 15 22 3 8 2

Iterasi ke-3 (Langkah 3) i = 1 2 3 4 5 6 10 15 22 3 8 2 Temp cek Geser 3 Temp < 22 Data ke-3 → Posisi 4 Temp < 15 Data ke-2 → Posisi 3 Temp < 10 Data ke-1 → Posisi 2 Temp menempati posisi ke-1 3 10 15 22 8 2 Iterasi ke-4 (Langkah 4) i = 1 2 3 4 5 6 3 10 15 22 8 2 Temp cek Geser 8 Temp < 22 Data ke-4 → Posisi 5 Temp < 15 Data ke-3 → Posisi 4 Temp < 10 Data ke-2 → Posisi 3 Temp > 3 Temp menempati posisi ke-2 3 8 10 15 22 2

Iterasi ke-5 (Langkah 5) i = 1 2 3 4 5 6 3 8 10 15 22 2 Temp cek Geser 2 Temp < 22 Data ke-5 → Posisi 6 Temp < 15 Data ke-4 → Posisi 5 Temp < 10 Data ke-3 → Posisi 4 Temp < 8 Data ke-2 → Posisi 3 Temp < 3 Data ke-1 → Posisi 2 Temp menempati posisi ke-1 2 3 8 10 15 22 Terurut 2 3 8 10 15 22

Quick Sort 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

Iterasi ke-1 (Langkah 1) i = 1 2 3 4 5 6 22 10 15 3 8 2 j i 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) Karena i < j maka data yang ditunjuk oleh I ditukar dengan data j sehingga menjadi 2 10 15 3 8 22

Iterasi ke-2 (Langkah 2) i = 1 2 3 4 5 6 2 10 15 3 8 22 j i 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) Karena i < j maka data yang ditunjuk oleh i ditukar dengan data j sehingga menjadi 2 10 8 3 15 22

Iterasi ke-2 (Langkah 2) i = 1 2 3 4 5 6 2 10 8 3 15 22 j i 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) Karena i < j maka data yang ditunjuk oleh i ditukar dengan data j sehingga menjadi 2 3 8 10 15 22

Tugas Tunjukan dengan Gambar cara pengurutan sekumpulan data berikut ini secara ascending dan sampai berapa iterasi yang diperlukan ?: 4 10 6 7 2 5 8 Gunakan metode : - Buble short - Quick Short