Sorting
SORTING / PENGURUTAN
Pengurutan data merupakan salah satu Permasalahan Umum
yang juga sering dijumpai dalam pemrograman.
Ascending :
if elemen sekarang “ > ” dari elemen berikutnya then
kedua elemen ditukar
Descending:
if elemen sekarang “ < “ dari elemen berikutnya then
kedua elemen ditukar
BUBBLE SORT
Algoritma:
banyaknya data: n
Data diurutkan/disorting dari yang bernilai 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.
ALGORITMA BUBBLESORT ASCENDING
Deklarasi
i : integer
k : integer
temp : integer
Algoritma
For i 1 to n - 1 do
For k n to 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
endfor
ALGORITMA BUBBLESORT DESCENDING
Deklarasi
i : integer
k : integer
temp : integer
Algoritma
For i 1 to n - 1 do
For k n to 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
endfor
BUBBLE SORT ASCENDING
BUBBLE SORT (4)
BUBBLE SORT (5)
BUBBLE SORT DESCENDING
Data Awal 7 4 5 8 10
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 7 4 5 8 10
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 7 4 5 10 8
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 7 4 10 5 8
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 7 10 4 5 8
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 7 8 4 5
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 8 7 4 5
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 8 7 4 5
Step-3 10 8 7 4 5
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 8 7 4 5
Step-3 10 8 7 5 4
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 8 7 4 5
Step-3 10 8 7 5 4
BUBBLE SORT: TAHAP DEMI TAHAP
Awal 7 4 5 8 10
Step-1 10 7 4 5 8
Step-2 10 8 7 4 5
Step-3 10 8 7 5 4
Step-4 10 8 7 5 4
PROGRAM BUUBLE SORT
POTONGAN PROGRAM
PENGURUTAN SELECTION SORT
(MAKSIMUM/MINIMUM)
Metode pengurutan ini disebut pengurutan maksimum / minimum karena
didasarkan pada pemilihan elemen maksimum atau minimum.
29 27 10 8 76 21
1 2 3 4 5 6
Langkah 1:
Cari elemen maksimum di dalam larik
L[1..6] maks = L[5] = 76
Tukar maks dengan L[N],hasil akhir langkah
1:
29 27 10 8 21 76
1 2 3 4 5 6
Langkah 2:
(berdasarkan susunan larik hasil langkah 1)
Cari elemen maksimum di dalam larik L[1..5]
maks = L[1] = 29
Tukar maks dengan L[5],hasil akhir langkah 2:
29 27 10 8 21 76
1 2 3 4 5 6
21 27 10 8 29 76
1 2 3 4 5 6
Langkah 3:
(berdasarkan susunan larik hasil langkah 2)
Cari elemen maksimum di dalam larik L[1..4]
maks = L[2] = 27
Tukar maks dengan L[4],hasil akhir langkah 3:
21 27 10 8 29 76
1 2 3 4 5 6
21 8 10 27 29 76
1 2 3 4 5 6
Langkah 4:
(berdasarkan susunan larik hasil langkah 3)
Cari elemen maksimum di dalam larik L[1..3]
maks = L[1] = 21
Tukar maks dengan L[3],hasil akhir langkah 4:
21 8 10 27 29 76
1 2 3 4 5 6
10 8 21 27 29 76
Langkah 5: 1 2 3 4 5 6
(berdasarkan susunan larik hasil langkah 4)
Cari elemen maksimum di dalam larik L[1..2]
maks = L[1] = 10
Tukar maks dengan L[2],hasil akhir langkah 5:
10 8 21 27 29 76
1 2 3 4 5 6
8 10 21 27 29 76
1 2 3 4 5 6
Selesai. Larik sudah terurutkan !
SELECTION MAX ASCENDING
Algoritma
for i n downto 2 do
max 1
for j 2 to i do
if L [ j ] > L [ max ] then
max j
endif
endfor
Temp := L [ i ]
L[ i ] := L [ max ]
L[ max ] := temp
Untuk algoritma Pengurutan
Minimum caranya sama persis
dengan maksimum hanya saja yang
ditukar adalah nilai yang minimum
bukan maksimum.
KESIMPULAN :
dibandingkan dengan pengurutan gelembung
(bubble sort) pengurutan dengan metode
selection sort (maksimum/minimum) ini memiliki
kinerja yang lebih baik. Operasinya pertukaran
hanya sekali saja dilakukan pada setiap langkah
sehingga waktu pengurutan dapat lebih ditekan.
Metode ini direkomendasikan untuk dipakai.
INSERTION SORT
PENGURUTAN SISIP (INSERTION SORT)
29 27 10 8 76 21
1 2 3 4 5 6
Langkah 1:
Elemen L[1] dianggap sudah terurut
29 27 10 8 76 21
1 2 3 4 5 6
Langkah 2:
(berdasarkan susunan larik pada langkah 1)
Cari posisi yang tepat untuk L[2] pada
L[1..2],diperoleh :
29 27 10 8 76 21
1 2 3 4 5 6
Langkah 3:
(berdasarkan susunan larik pada langkah 2)
Cari posisi yang tepat untuk L[3] pada
L[1..3],diperoleh :
10 27 29 8 76 21
1 2 3 4 5 6
Langkah 4:
(berdasarkan susunan larik pada langkah 3)
Cari posisi yang tepat untuk L[4] pada
L[1..4],diperoleh :
8 10 27 29 76 21
1 2 3 4 5 6
Langkah 5:
(berdasarkan susunan larik pada langkah 4)
Cari posisi yang tepat untuk L[5] pada
L[1..5],diperoleh :
8 10 27 29 76 21
1 2 3 4 5 6
Langkah 6:
(berdasarkan susunan larik pada langkah 5)
Cari posisi yang tepat untuk L[6] pad
L[1..6],diperoleh :
8 10 21 27 29 76
1 2 3 4 5 6
Selesai. Larik sudah terurutkan !
PESUDOCODE
DATA : 6 9 7 3 2 4 (N = 6)
OUTPUT :
KESIMPULAN :
Kelemahan metode sisip terletak pada
banyaknya operasi yang diperlukan dalam
mencari posisi yang tepat untuk elemen larik.
Untuk larik yang jumlahnya besar ini tidak
praktis. Dari ketiga metode tersebut, pengurutan
maksimum/minimum memiliki kinerja yang
terbaik.
TUGAS SORT
Buatlah masing-masing
program pengurutan
Nama dan NPM :
Bubble sort ;
Selection sort ;
Insertion sort ;