You are on page 1of 17

METODE SORTING

Pengurutan (Sorting).
proses mangatur sekumpulan obyek/data menurut urutan atau susunan
tertentu.
Urutan obyek/data tersebut dapat menaik (ascending) atau menurun
(desencending).
Data yang diurutkan dapat berupa data bertipe dasar atau data bertipe
struktur
Data yang sudah terurut memiliki keuntungan yaitu Mempercepat
proses pencarian data.
Metode Pengurutan
Algoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini
memiliki kinerja yang berbeda-beda. Berikut ini macam-macam algoritma
pengurutan:
1.
2.
3.
4.
5.

Metode
Metode
Metode
Metode
Metode

Selection Sort
Buble Sort
Merge Sort
Quick Sort
Insertion

Hal yg mempengaruhi Kecepatan Algoritma Sorting adalah Jumlah Operasi


Perbandingan & Jumlah OperasiPemindahan Data
1. Selection Sort (Metode Seleksi).
Tehnik pengurutan dengan cara pemilihan elemen dgn memilih elemen
data terkecil utk kemudian dibandingkan & ditukarkan dgn elemen pd
data awal, dst s/d seluruh elemen shg akan menghasilkan pola data yg
telah disort.

Merupakan kombinasi antara sorting dan searching


Untuk setiap proses, akan dicari elemen-elemen yang belum
diurutkan yang memiliki nilai terkecil atau terbesar akan
dipertukarkan ke posisi yang tepat di dalam array.
Misalnya untuk putaran pertama, akan dicari data dengan nilai
terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]),
pada putaran kedua akan dicari data kedua terkecil, dan akan
ditempatkan di indeks kedua (data[1]).
29271087621

2. data pertama ditukar


dengan elemen yang
paling kecil.

1. memilih elemen terkecil,


membandingkan dan
menukarkan dengan dengan
data awal yang bernilai
lebih besar.

ALGORITMA SELECTION SORT.


1. Pengecekan dimulai data ke-1 sampai dengan data ke-n
2. Tentukan bilangan dengan Index terkecil dari data bilangan tersebut
3. Tukar bilangan dengan Index terkecil tersebut dengan bilangan
pertama ( I = 1 ) dari data bilangan tersebut
4. Lakukan langkah 2 dan 3 untuk bilangan berikutnya ( I= I+1 )
sampai didapatkan urutan yg optimal
Ilustrasi Algoritma Selection Sort
29271087621123456

Set Index awal = 1


Index terkecil = 4 8
Tukar index 1dengan 4

82710297621123456

Set Index awal = 2


index terkecil = 3 10
Tukar index 2 dengan 3

81027297621123456

Set Index awal = 3


index terkecil = 6 21
Tukar index 3 dengan 6

81021297627123456

81021277629123456

81021272976123456

Set Index awal = 4


index terkecil = 6 27
Tukar index 4 dengan 6

Set Index awal = 5


index terkecil = 6 29
Tukar index 5 dengan 6

Index awal = 6 Selesai


Data sudah terurut secara
ascending

PENULISAN ALGORITMA KE DALAM PROGRAM


Algoritma metode seleksi :
- langkah 0 : Baca vector yang akan diurutkan (dalam program
utama)
- langkah 1 : Kerjakan langkah 2 sampai 4 untuk i = 1 sampai N -1
- langkah 2 : Tentukan awal = i , kerjakan langkah 3 untuk j = i +1
sampai N
- langkah 3 : (Mencari data terkecil)

Tes : apakah A[awal] > A[j], jika ya maka ubah awal = j


langkah 4 : Tukarkan nilai A[awal] dengan A[i]
langkah 5 : selesai

program pascal;
uses crt;
VAR

Data
: array[1..10] of integer;
i,j,n,bantu
: integer;

BEGIN
clrscr;
Writeln('Masukkan data anda !');writeln;
Write('jumlah data anda ? ');readln(n);
writeln('Mulai memasukan data ');
for i:=1 to n do
begin
Write('Data ke-',i,' = ');
readln(data[i]);
end;
for i:=1 to N-1 do
for j := i+1 to N do
begin
if data[i] > data[j] then
begin
Bantu := data[i];
data[i] := data[j];
data[j] := Bantu;
end;
end;
for i:=1 to n do
write('(',data[i],'),');
readln;
end.
Hasil program
Masukkan data anda !
jumlah data anda ? 5
Mulai memasukan data
Data ke-1 = 4
Data ke-2 = 6
Data ke-3 = 2
Data ke-4 = 8
Data ke-5 = 5
(2),(4),(5),(6),(8),

2. Metode Bubble Sort (Gelembung)


Teknik yang diinspirasi oleh gelembung sabun yang berada dipermukaan air. Karena berat
jenis gelembung lebih ringan dari pada air, maka gelembung akan naik keatas.
(benda yang berat akan terbenam, benda ringan terapung).

Elemen data yang paling kecil diapungkan diangkat keatas melalui


proses pertukaran.
Bubble Sort mengurutkan data dengan cara membandingkan elemen
sekarang dengan elemen berikutnya

Algoritma Bubble Sort


1. Pengecekan mulai dari data ke-1 sampai data ke-n
2. Bandingkan data ke-n dengan data sebelumnya (n-1)
3. Jika lebih kecil maka pindahkan bilangan tersebut dengan bilangan yg ada didepannya
( sebelumnya ) satu persatu (n-1,n-2,n-3,....dst)
4. Jika lebih besar maka tidak terjadi pemindahan
5. Ulangi langkah 2 dan 3 s/d sort optimal.

25271087621123456

Langkah 1: Index ke n = 6 sampai ke 2.


Index 62176Index (n-1) = 582176Index = 48102176Index = 3827102176Index =
282527102176

82527102176123456

Langkah 2: Index ke n = 6 sampai ke 3


Index 62176Index (n-1) = 5102176Index = 410272176Index = 31025272176

81025272176123456

Langkah 3: Index ke n = 6 sampai ke 4.


Index 62176Index (n-1) = 5212776Index = 421252776

81021252776123456

Langkah 4: Index ke n = 6 sampai ke 5.


Index 62776Index (n-1) = 5252776

81021252776123456

Langkah 5: Index ke n = 6 .


Index 62776

81021252776123456

Elemen sudah urut dan proses sorting selesai


Contoh 2 :

Contoh 3 :

Bubble Sort Disebut juga dengan metode Penukaran (Exchange Sort),


yaitu metoda yang mendasarkan pada penukaran elemen untuk mencapai
keadaan urut yang diinginkan.
Algoritma Metode gelembung :
- langkah 0 : Baca vector yang akan diurutkan (dalam program
utama)
- langkah 1 : Kerjakan langkah 2 untuk i = 1 sampai N-1
- langkah 2 : Kerjakan langkah 3 untuk j = 1 sampai N- i
- langkah 3 : Tes apakah A[j] > A[j +1] ? Jika ya, tukarkan nilai kedua
elemen ini
- langkah 4 : Selesai
Contoh Program Buble Sort
program pascal;
uses crt;
VAR
Data
: array[1..10] of integer;
i,j,n,bantu
: integer;
BEGIN
clrscr;
Writeln('Masukkan data anda !');writeln;
Write('jumlah data anda ? ');readln(n);
writeln('Mulai memasukan data ');
for i:=1 to n do
begin
Write('Data ke-',i,' = ');
readln(data[i]);
end;
for i:=1 to N-1 do
for j := 1 to N-i do
begin
if data[j] > data[j+1] then
begin
Bantu := data[j];
data[j] := data[j+1];
data[j+1] := Bantu;
end;
end;
for i:=1 to n do
write('(',data[i],'),');
readln;
end.

Hasil :
Masukkan data anda !
jumlah data anda ? 5
Mulai memasukan data
Data ke-1 = 5
Data ke-2 = 3
Data ke-3 = 6
Data ke-4 = 2
Data ke-5 = 3
(2),(3),(3),(5),(6),

3. Metode INSERTION SORT (Sisip)


Algoritma ini dianalogikan seperti mengurutkan
kartu, selembar demi selembar kartu diambil dan
disisipkan (insert) ke tempat yang seharusnya.
Pengurutan dimulai dari data ke-2 sampai dengan
data terakhir, jika ditemukan data yang lebih
kecil, maka akan ditempatkan (diinsert) diposisi
yang seharusnya.
Pada penyisipan elemen, maka elemen-elemen
lain akan bergeser ke belakang
Contoh :
Jika sudah terurut 3,6,9, dan selanjutnya belum terurut 5,7,2,....
5 akan disisipkan di antara 3 dan 6, sehingga menjadi 3,5,6,9.
7 akan disisipkan di antara 6 dan 9, sehingga menjadi 3,5,6,7,9.
2 akan disisipkan sebelum 3, sehingga menjadi 2,3,5,6,7,9.
Contoh :

METODE QUICK SORT (DEVIDE AND CONQUER)


Devide and Qonquer adalah metode pemecahan masalah yang bekerja
dengan membagi masalah/problem menjadi beberapa sub-masalah/subproblem yang lebih kecil, kemudian menyhelesaikan masing-masing submasalah secara independen dan akhirnya menggabungkan solusi masingmasing sub masalah sehingga menjadi solusi masalah semula.
Masalah sub masalah 1
Sub solusi 1
Sub masalah 2 sub solusi 2
Sub-masalah 3 Sub solusi 3

Solusi masalah

Algortima devide and conquer menawarkan penyederhanaan masalah


dengan pendekatan 3 langkah masalah:
pembagian masalah menjadi sekecil mungkin
penyelesaian masalah-masalah yang dikecilkan

penggabungan solusi untuk mendapatkan solusi optimal secara


keseluruhan.

tipe algoritma yang mengimplementasikan/kategori D&C antara lain


merge sort

4. Metode Merge Sort

Merge sort adalah algoritma yang digunakan untuk menyusun list yang diberikan
dengan cara membagi list yang diberikan menjadi dua bagian yang lebih kecil.
Kedua list yang baru ini kemudian akan disusun secara terpisah. Setelah kedua
buah list tersusun, maka akan dibentuk list baru yang merupakan hasil
penggabungan dua buah list sebelumnya

Konsep :
1).
Array yang
belum terurut, dibagi menjadi separuh
Proses diulang terus sampai ditemukan bagian terkecil
2).
Hasil dari
setiap proses digabungkan :
membandingkan elemen pertama dari setiap bagian
hapus elemen terkecil dan letakan pada hasil
Ulangi semua proses sampai semua elemen terurut
Contoh 2
Contoh : data berikut ini akan diurutkan

1).
Divide/memba
gi data yang tidak terurut menjadi dua bagian
2).
Ulangi sampai
setiap array hanya memiliki sebuah data
3).
Lakukan
merge untuk memperoleh data terurut
1).

2).

3).

4).

5).

6).

7).

8).

9).

10).

11).

12).

13).

14).

15).

16).

17).

18).

19).

20).

21).

22).

23).

24).

25).

26).

27).

28).

29).

30).

31).

32).

33).

34).

35).

36).

37).

38).

39).

5. Metode QUICK SORT

You might also like