Anda di halaman 1dari 25

Algoritma dan Struktur

Data II

Sorting
Annisa Paramitha F., S.Kom., M.Kom

Sorting (Pengurutan)
Pengurutan didefinisikan sebagai proses untuk menyusun kembali
himpunan objek dengan menggunakan aturan tertentu. Secara umum ada
dua jenis pengurutan data, yaitu :
1.

Model urut naik (ascending), yang mengurutkan data dari yang


mempunyai nilai terkecil sampai terbesar;

2.

Model urut turun (descending), yang mengurutkan data dari yang


mempunyai nilai terbesar sampai terkecil;

Metode Sorting
1. Metode Bubble Sort
2. Metode Selection Sort
3. Metode Insertion Sort
4. Metode Quick Sort
5. Metode Heap Sort

Bubble Sort
Metode bubble sort merupakan metode pengurutan yang
mengambil proses dengan menggunakan bubble atau
exchange. Perbandingan data dilakukan dari posisi
pertama atau posisi terakhir bergeser satu persatu sampai
semua data dibandingkan.

Bubble Sort Ascending


Contoh Selection Sort Ascending
Data Awal :

Max Array = 5
a

If a>b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 1

a
Hasil

Bubble Sort Ascending (lanjutan)


a

If data[a]> data[b]
data[9] > data[4]

Proses 2

temp
=b
b
=a
a
= temp

If data[a]> data[b]
data[4] > data[2]

Proses 3

temp
=b
b
=a
a
= temp

a
Proses 4

Bubble Sort Ascending (lanjutan)


a

If a>b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 2
a

Proses 3
a

If a>b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 4
a
Proses 5

HASIL

If a>b, Maka tukar


temp
=b
b
=a
a
= temp

Bubble Sort Descending


Contoh Selection Sort Descending
Max Array = 5

Data Awal :
a

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 1
a

Proses 2
a
Proses 3

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

Bubble Sort Descending (lanjutan)


a

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 4
b

Proses 5
a

Proses 6
a
Proses 7

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

Bubble Sort Descending (lanjutan)


a

Proses 7
b

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

Proses 8
a
Proses 9

HASIL

If a<b, Maka tukar


temp
=b
b
=a
a
= temp

b
If a<b, Maka tukar
temp
=b
b
=a
a
= temp

Selection Sort
Selection sort adalah algoritma pengurutan data yang sangat
sederhana. Ide dasarnya adalah mencari elemen data dengan nilai
terkecil (untuk model descending) atau nilai terbesar (untuk model
ascending), dan menempatkan pada lokasi terakhir, kemudian
melakukan hal yang sama untuk pengurutan tanpa mengikutkan data
yang sudah terurut sebelumnya.

Selection Sort Ascending


Contoh Selection Sort Ascending
Data Awal :

Max Array = 5
a

Proses 1
xmin
Hasil

xmin = 1
temp
=a
a = xmin
xmin
= temp

Selection Sort Ascending (lanjutan)


a

xmin = 4

xmin = 2

temp
=a
a = xmin
xmin
= temp

Proses 2
xmin xmin
Hasil

xmin = 3
temp
=a
a = xmin
xmin
= temp

Proses 3
xmin
Hasil

Selection Sort Ascending (lanjutan)


a

xmin = 4
temp
=a
a = xmin
xmin
= temp

Proses 2
xmin
Hasil

Data Awal :

Selection Sort Descending


Contoh Selection Sort Descending
Data Awal :
a

Max Array = 5
b

= 90
20

temp
=a
a = xmax
xmax
= temp

Proses 1
xmax xmax
Hasil

xmax

Selection Sort Descending (lanjutan)


a

xmax

= 20

temp
=a
a = xmax
xmax
= temp

Proses 2
xmax
Hasil
a

= 17
15

temp
=a
a = xmax
xmax
= temp

Proses 2
xmax xmax
Hasil

xmax

Metode Insertion Sort


Pengurutan dengan metode insertion sort sebetulnya sangat mirip
dengan konsep permainan kartu. Jika sering memperhatikan orang
bermain kartu, kita akan melihat bahwa setiap kartu disisipkan secara
berurutan dari kiri ke kanan sesuai dengan besar nilai kartu tersebut.
Dengan syarat itu, apabila sebuah kartu sudah disisipkan pada posisi
tertentu, kartu yang lain akan bergeser maju atau mundur sesuai dengan
besaran nilai yang dimiliki.

Insertion Sort Ascending


Contoh Insertion Sort Ascending
Max Array = 5

Data Awal :
a

for (a=1 ; a<=n; a++)


{b = a;
while (b>0 && data[b]<data[b-1])
{tukar(b, b-1);
b--; }
}

Proses 1:

a
Proses 2:

b
a++; (a = 2)
b = a;
while (b>0 && data[b]<data[b-1]
data[22]<data[67]
temp
=b
b = b-1
b-1 = temp

Insertion Sort Ascending (lanjut)


a
Proses 3:

a++; (a = 3)
b = a;
while (b>0 && data[b]<data[b-1]
data[15]<data[67]
temp
=b
b = b-1
b-1 = temp

b--;
a=3 b=2
while (b>0 && data[b]<data[b-1]
data[15]<data[22]

Hasil :

Insertion Sort Ascending (lanjut)


a

Proses 4:

a++; (a = 4)
b = a;
while (b>0 && data[b]<data[b-1]
data[34]<data[67]
temp
=b
b = b-1
b-1 = temp

b--;
a=4 b=3
while (b>0 && data[b]<data[b-1]
data[34]<data[22]

Data tidak ditukar


Karena data[b]>data[b-1]

Insertion Sort Ascending (lanjut)


b a++; (a = 5)

Proses 5:

b = a;

while (b>0 && data[b]<data[b-1]


data[9]<data[67]
temp
=b
b = b-1
b-1 = temp
b

b--;
a=5 b=4
while (b>0 && data[b]<data[b-1]
data[9]<data[34]
temp
=b
b = b-1
b-1 = temp

Insertion Sort Ascending (lanjut)


b

b--;
a=5 b=3
while (b>0 && data[b]<data[b-1]
data[9]<data[22]

temp
=b
b = b-1
b-1 = temp

b--;
a=5 b=2
while (b>0 && data[b]<data[b-1]

HASIL
AKHIR:

data[9]<data[15]
temp
=b
b = b-1
b-1 = temp

Insertion Sort Descending


Contoh Insertion Sort Descending
Max Array = 5

Data Awal :
a

for (a=1 ; a<=n; a++)


{ b = a;
while (b>0 && data[b]>data[b-1])
{tukar(b, b-1);
b--;
}
}

Proses 1:

Proses 2:

Data tidak ditukar


Karena data[b]<data[b-1]

a++; (a = 2)
b = a;
while (b>0 && data[b]>data[b-1]
data[22] > data[67]

Insertion Sort Descending


a

a++; (a = 3)
b = a;

Proses 3:

Data tidak ditukar


Karena data[b]<data[b-1]
a
Proses 4:

while (b>0 && data[b]>data[b-1]


data[15] > data[22]

a++; (a = 4)
b = a;
while (b>0 && data[b]>data[b-1]
data[34] > data[15]
temp
=b
b = b-1
b-1 = temp

Insertion Sort Descending


b

b--;
a=4 b=3

Proses 4
(lanjutan) :

while (b>0 && data[b]> data[b-1]


data[34]>data[22]
temp
=b
b = b-1
b-1 = temp

HASIL:
a

b
a++; (a = 5)
b = a;

Proses 5:

Data tidak ditukar


Karena data[b]<data[b-1]

while (b>0 && data[b]>data[b-1]


data[9] > data[15]

Anda mungkin juga menyukai