Anda di halaman 1dari 16

ALGORITMA DAN STRUKTUR DATA

Pengurutan Data
Algoritma dan Struktur Data
Pertemuan 9
Pengurutan Data

• Pengurutan adalah proses menyusun kembali data


yang sebelumnya telah disusun menurut aturan
tertentu
• Penting untuk data numerik ataupun karakter
terutama untuk memudahkan pencarian
• Jenis pengurutan data:
• Ascending (dari kecil ke besar)
• Descending (dari besar ke kecil)
• Disini hanya dijelaskan yang ascending
• Yang descending hanya kebalikan dari ascending
Metode Pengurutan Data Sederhana

•Bubble Sort, pengurutan berdasar perbandingan


•Selection Sort, pengurutan berdasar prioritas/
seleksi
•Insertion Sort, pengurutan berdasarkan
penyisipan dan penjagaan terurut
Bubble Sort

• Metode termudah
• Bubble = busa/udara dalam air apa yang terjadi?
• Setiap proses membandingkan satu elemen dengan
elemen berikutnya, seperti busa didalam air yang
ringan(busa) naik yang berat(air) akan turun
Proses Bubble Sort

• Ada beberapa cara


• Pembandingan mulai dari depan  silahkan difikirkan
• Pembandingan mulai dari belakang
• Perulangan pertama (jumlah data = n):
• Proses 1: data ke n dibandingkan dgn data ke n-1, jika data ke n lebih kecil maka tukar data
tsb,
• Proses 2: data ke n-1 dibandingkan dgn data ke n-2, jika data ke n lebih kecil maka tukar data
tsb,
• Demikian seterusnya sampai proses ke n-1.
• Perulangan ke 2:
• Proses 1: data ke n dibandingkan dgn data ke n-1, jika data ke n lebih kecil maka tukar data
tsb,
• Proses 2: data ke n-1 dibandingkan dgn data ke n-2, jika data ke n lebih kecil maka tukar data
tsb,
• Demikian seterusnya sampai proses ke n-2
• Perulangan ini dilakukan sebanyak n-1 kali
Contoh Bubble Sort (1)
Perulangan 1

603 127 450 281 69

603 127 450 69 281

603 127 69 450 281

603 69 127 450 281

69 603 127 450 281

Perulangan 2

69 603 127 450 281

69 603 127 281 450

69 603 127 281 450

69 127 603 281 450


Contoh Bubble Sort (2)
Perulangan 3

69 127 603 281 450

69 127 603 281 450

69 127 281 603 450

Perulangan 4

69 127 281 603 450

69 127 281 450 603

Data sudah terurut


Algoritma Bubble Sort
(Jumlah data n)
Bubble_Sort(Data,n)
Begin
for i=1 to n-1 do
for j=1 to n-i do
if (data[n-j+1]<data[n-j]) then
Tukar(data[n-j+1],data[n-j])
End;
Selection Sort

• Kombinasi sorting dan searching


• Setiap perulang, mencari elemen terbesar/terkecil
pada bagian tertentu kemudian tukar dengan posisi
yang sesuai
• Perulangan dilakukan sebanyak n-1 kali, dimana n
adalah jumlah data
Proses Selection Sort

• Cara 1
• Perulangan 1:
Cari nilai minimum dari data ke 1 sampai data ke n, tukar data tersebut dengan data ke 1,
• Perulangan 2:
Cari nilai minimum dari data ke 2 sampai data ke n, tukar data tersebut dengan data ke 2,
• Dan seterusnya sampai perulangan ke n-1
• Cara 2
Sama dengan cara 1, tapi yang dicari adalah nilai maksimum dan ditukar
dengan data ke n dst.
Contoh Selection Sort (1)
Perulangan 1

603 127 450 281 69

69 127 450 281 603

Perulangan 2

69 127 450 281 603

69 127 450 281 603


Contoh Selection Sort (2)
Perulangan 3

69 127 450 281 603

69 127 281 450 603

Perulangan 4

69 127 281 450 603

69 127 281 450 603

Data sudah terurut


Algoritma Selection Sort

(Jumlah data n)
Selection_Sort(data,n)
Begin
for i=1 to n-1 do
begin
IdxMin=CariIdxMin(data,i,n)
Tukar(data[i],data[IdxMin]
end;
End;
Insertion Sort

• Secara konsep, ada 2 cara, mengatur mulai dari depat atau belakang,
yang dijelaskan disini yang dari depan
• Pengurutan dimulai dari data ke 2, kemudian letakkan di posisi yang
sesuai dengan data sebelumnya. Selanjutnya ambil data berikutnya
dan letakkan lagi diposisi yang sesuai dan seterusnya dilakukan
sebanyak n-1 kali, dimana jumlah data sebanyak n.
Contoh Insertion Sort

i=2 603 127 450 281 69

i=3 127 603 450 281 69

i=4 127 450 603 281 69

i=5 127 281 450 603 69

69 127 281 450 603

Key:

Data sudah terurut


Algoritma Insertion Sort
(jumlah data n)
Insertion_Sort(data,n)
begin
for i=2 to n do
begin
key=data[i]
j=i-1
while (j>0)and(data[j]>key) do begin
data[j+1]=data[j]
j=j-1
end
data[j+1]=key
End;

Anda mungkin juga menyukai