Anda di halaman 1dari 65

SORTING DATA

KELOMPOK 3

KELOMPOK 3
MIRANTI DWI HENDRIYAH (39025) HERMAWAN RAHMAT HIDAYAT (39033) RICKY JULIANJATSONO (39036) ATHYA RAMADHANI (39044) M. HARITS FAISHAL ( :3 )

DIAN ARYANTI HAPSARI (39074)

Sorting (Pengurutan)
Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending = dari data kecil ke data lebih besar) atau menurun (descending = dari data besar ke data lebih kecil).

OUTLINE SORTING
BUBBLE SORT
SELECTION SORT
SORTING INSERTION SORT SHELL MERGE SORT

Bubble Sort (Metode Gelembung)


Metode pengurutan gelembung (bubble sort) diinspirasi oleh gelembung sabun yang ada di permukaan air. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung.

Cara ini adalah pengurutan elemen yang paling sederhana. Inti dari metode ini menggunakan perbandingan dan pertukaran.
Ascending Sort

Bubble Sort
Descending Sort

Bubble Sort: Pseudocode


BUBBLESORT(A) 1for i1 to length[A] 2 3 4 for jlength[A] downto i+1 if A[j] < A[j-1] then exchange A[j] A[j-1]

Bubble Sort : Algoritma(Descending)


banyaknya data: n Contoh: Data diurutkan/disorting dari yang bernilai besar ke kecil

Proses
step 1 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-1. Jika nilai kiri<kanan, tukarkan kedua data itu.

step 2 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-2. Jika nilai kiri<kanan, tukarkan kedua data itu.
step n-1 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-n-1. Jika nilai kiri<kanan, tukarkan kedua data itu.

Bubble Sort : Algoritma(Ascending)


banyaknya data: n Contoh: Data diurutkan/disorting dari yang bernilai kecil ke besar

Proses
step 1 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-1. Jika nilai kiri>kanan, tukarkan kedua data itu.

step 2 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-2. Jika nilai kiri>kanan, tukarkan kedua data itu.
step n-1 : Periksalah nilai dua elemen mulai dari urutan ke-n sampai urutan ke-n-1. Jika nilai kiri>kanan, tukarkan kedua data itu.

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Step 3 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Step 3 :

Bubble Sort Ascending


Awal : 5 4 3 2 1

Step 1 :

Step 2 :

Step 3 :

Bubble Sort Ascending


Step 1 : 1 5 4 3 2

Step 2 :

Step 3 :

Step 4 :

Bubble Sort Ascending


Step 1 : 1 5 4 3 2

Step 2 :

Step 3 :

Step 4 : (Selesai)

Bubble Sort
Jika seluruh array telah diperiksa dan tidak ada pertukaran lagi yang bisa dilakukan, serta tercapai perurutan yang telah diinginkan

Selection Sort
Metode pengurutan ini disebut pengurutan maksimum / minimum karena didasarkan pada pemilihan elemen maksimum atau minimum kemudian mempertukarkan elemen maksimum/minimum tersebut dengan elemen terujung larik (elemen ujung kiri atau elemen ujung kanan). Selanjutnya elemen terujung itu kita isolasi dan tidak diikut sertakan pada proses selanjutnya. Karena proses utama dalam pengurutan adalah pemilihan elemen maksimum / minimum, maka metode ini disebut metode seleksi (selection sort).

Selection Sort : Algorthm


Langkah 1: Tentukan Harga Maksimum didalam L1[1..N] Pertukarkan harga maksimum dng L[N] Langkah 2: Tentukan Harga Maksimum didalam L1[1..N-1] Pertukarkan harga maksimum dng L[N-1] Langkah 3: Tentukan Harga Maksimum didalam L1[1..N-2 Pertukarkan harga maksimum dng L[N-2] .. Langkah N-1: Tentukan Harga Maksimum didalam L1[1..2] Pertukarkan harga maksimum dng L[2].

Selection Sort : Algorthm


SELECTIONSORT(A) 1 for i 1 to length[A]-1 2 min = i; 3 do for j i+1 to length[A] 4 do if A[j] < A[min] 5 min = j; 6 exchange A[min] A[i]

Prinsip kerja: Dari elemen sebanyak n, 1. Carilah elemen terkecil dari array A, dan swap-lah elemen terkecil tersebut dengan elemen pertama (A[1] ). 2. Carilah elemen terkecil kedua dari array A, dan swaplah elemen tersebut dengan elemen kedua (A[2]) 3. Ulangi sampai n-1 elemen pertama dari array A

Selection Sorting
The minimal 2 5 1 1 27 2 7 3 19 4 9 5 4

Selection Sorting

1 2

2 7

3 19

4 9

5 27

Selection Sorting

1 2

2 7

3 9

4 19

5 27

Metode Sisipan (Insertion Sort)


Dari namanya, pengurutan sisip (insertion sort) adalah metode pengurutan dengan cara menyisipkan elemen larik pada posisi yang tepat.

Pencarian posisi yang tepat dilakukan dengan pencarian beruntun. Selama pencarian posisi yang tepat dilakukan pergeseran elemen larik.

30

Metode Sisipan: Pseudocode


INSERTION-SORT(A) 1 for j2 to length[A] 2 do keyA[j] 3 Insert A[j] ke sekuens yang sudah disorting A[1j-1] 4 i j-1 5 while i>0 and A[i] > key 6 do A[i+1] A[i] 7 i i -1 8 A[i+1] key
31

Metode Sisipan: Algoritma (Ascending)


Andaikan: L[1] dianggap sudah tempatnya. Langkah 2: L[2] harus dicari tempatnya yang tepat pada L[1..2] dengan cara menggeser elemen L[1] ke kanan bila L[1]

lebih besar dari L[2]. Misalkan posisi elemen yang


tepat adalah K sisipkan L[2] pada K. Langkah 3: L[3] harus dicari tempatnya yang tepat pada L[1..3] dengan cara menggeser elemen L[1..2] ke kanan bila L[1..2] lebih besar dari L[3]. Misalkan posisi elemen yang tepat adalah K sisipkan L[3] pada K.

32

Metode Sisipan: Algoritma (Ascending)


Langkah 4: L[4] harus dicari tempatnya yang tepat pada L[1..4] dengan cara menggeser elemen L[1..4] ke kanan bila L[1..4] lebih besar dari L[4]. Misalkan posisi elemen

yang tepat adalah K sisipkan L[4] pada K.


Langkah N: L[N] harus dicari tempatnya yang tepat pada L[1..N] dengan cara menggeser elemen L[1..N ke kanan bila L[1..N] lebih besar dari L[N]. Misalkan posisi elemen yang tepat adalah K sisipkan L[N] pada K.

33

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

22 5 18 10 20 1

Elemen L1 dianggap sudah terurut

34

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2]

22 5 18 10 20 1

35

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2]

5 22 18 10 20 1

36

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3]

5 22 18 10 20 1
1 2 3 4 5 6

5 22 18 10 20 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3]

5 22 18 10 20 1
1 2 3 4 5 6

5 18 22 10 20 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4]

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 18 22 10 20 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4]

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 10 18 22 20 1

40

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4 5

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4] Cari posisi yang tepat untuk L[5] pada L[1..5]

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 10 18 22 20 1
1 2 3 4 5 6

5 10 18 22 20 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4 5

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4] Cari posisi yang tepat untuk L[5] pada L[1..5]

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 10 18 22 20 1
1 2 3 4 5 6

5 10 18 20 22 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4 5 6

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4] Cari posisi yang tepat untuk L[5] pada L[1..5] Cari posisi yang tepat untuk L[6] pada L[1..6]
43

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 10 18 22 20 1
1 2 3 4 5 6

5 10 18 20 22 1
1 2 3 4 5 6

5 10 18 20 22 1

Metode Sisipan: Contoh (Ascending)


1 2 3 4 5 6

1
2 3 4 5 6

22 5 18 10 20 1
1 2 3 4 5 6

Elemen L1 dianggap sudah terurut Cari posisi yang tepat untuk L[2] pada L[1..2] Cari posisi yang tepat untuk L[3] pada L[1..3] Cari posisi yang tepat untuk L[4] pada L[1..4] Cari posisi yang tepat untuk L[5] pada L[1..5] Cari posisi yang tepat untuk L[6] pada L[1..6] SELESAI 44

5 22 18 10 20 1
1 1 2 2 3 3 4 4 5 5 6 6

5 18 22 10 20 1 5 10 18 22 20 1
1 2 3 4 5 6

5 10 18 20 22 1
1 2 3 4 5 6

1 5 10 18 20 22

Metode Shell
Penemu : Donald Shell pada tahun 1959 Metode perbandingan dan pertukaran Perbandingan dimulai dari separuh list yang akan disortir dengan separuh bagian yang lain. Metode ini mengurutkan data dengan cara membandingkan suatu data dengan data lain yang memiliki jarak tertentu sehingga membentuk sebuah sub-list, kemudikan dilakukan penukaran bila diperlukan

45

Metode Shell
Contoh : Jika terdapat 100 elemen, diperbandingkan elemen 1 dan elemen 51, elemen 2 dan elemen 52 dst. Selanjutnya algoritma akan membandingkan elemen 1 dan elemen 26, elemen 2 dan elemen 27 dst.

46

Metode Shell: Contoh (Descending)

Langkah 1: GAP = 10/2 = 5 98

22 73 26 55 18 81 94 76 47
22 81 73 94 76 55 98 26 47

18

81 94 76 55 98 22 73 26 47

18

Metode Shell: Contoh

Langkah 2: GAP = 5

81 94 76 55 98 22 73 26 47 18
22 81 73 94 76 55 98 26 47 18

81 94 76 55 98 22 73 26 47 18

Metode Shell: Contoh

Langkah 3: GAP = 5/2=2

81 94 76 55 98 22 73 26 47 18
76
81 94 55 98 76 55 22 76

73 26

22 73

47 18 22

81 94 98 55 76 26 73

22 47 18

Metode Shell: Contoh

Langkah 4: GAP = 2

81 94 98 55 76 26 73 22 47 18
81
98 94 55 81 76 55 26 76

73 26

22 73

47 18 22

98 94 81 55 76 26 73 22 47 18

Metode Shell: Contoh

Langkah 5: GAP = 2

98 94 81 55 88 26 73 22 47 18
81
98 94 55 81 88 55 26 88

73 26

22 73

47 18 22

98 94 81 55 88 26 73 22 47 18

Metode Shell: Contoh

Langkah 6: GAP = 2/2=1

98 94 81 55 76 26 73 22 47 18
94
98 94 81 55 81 76 55 55 26 26 73 26 22 22 47 22 18

98 94 81 76 55 73 26 47 22 18

Metode Shell: Contoh

Langkah 7: GAP = 1

98 94 81 76 55 82 26 47 22 18
94
98 94 81 76 81 76 55 82 55 26 55 47 26 22 26 22 18

98 94 81 76 82 55 47 26 22 18

Metode Shell: Contoh

Langkah 8: GAP = 1

98 94 81 76 73 55 47 26 22 18
94
98 94 81 76 81 76 73 73 55 47 55 47 26 22 26 22 18

98 94 81 76 73 55 47 26 22 18

Metode Merge
Metode penggabungan biasanya digunakan pada pengurutan berkas. Kunci dari Merge Sort adalah menggabung dua berkas terurut menjadi sebuah kesatuan
Asumsi: ada 2 berkas X (x1x2xm) dan Y(y1y2yn) maka hasilnya adalah Z(z1z2zm+n)

Contoh: L1 = { 3 8 9 } L2 = { 1 5 7 } merge(L1, L2) = { 1 3 5 7 8 9 }


55

Merge Sort: Algoritma


Diberikan berkas L dengan panjang k: If k == 1 berkas sudah terurut Else:
Merge Sort sisi kiri (0 thru k/2) Merge Sort sisi kanan (k/2+1 sampai k) Merge sisi kanan dengan sisi kiri

Contoh 56 8 35 16 30 49 29 1

Contoh 56 8 35 16 30 49 29 1

56 8 35 16

30 49 29 1

Contoh 56 8 35 16 30 49 29 1

56 8 35 16
56 8 35 16

30 49 29 1 30 49 29 1

Contoh 56 8 35 16 30 49 29 1

56 8 35 16
56 8 56 8 35 16

30 49 29 1 30 49 29 1
30 49 29 1

35 16

Contoh

8 56 56 8

16 35

30 49

1 29 1

35 16

30 49 29

Contoh

8 16 35 56
8 56 16 35

1 29 30 49 30 49
1 29

Contoh 1 8 16 29 30 35 35 56

8 16 35 56

1 29 30 35

Contoh 1 8 16 29 30 35 35 56

Anda mungkin juga menyukai