Pengurutan (sorting )

16
Pengurutan (sorting ) Oleh : ROSIDA SIMAMORA Prodi : Teknik Informatika Mata Kuliah : Pemrograman Turbo Pascal Dosen : PEMROGRAMAN TURBO PASCAL

Transcript of Pengurutan (sorting )

Page 1: Pengurutan (sorting )

Pengurutan (sorting )

Oleh : ROSIDA SIMAMORA

Prodi : Teknik Informatika

Mata Kuliah : Pemrograman Turbo Pascal

Dosen : PEMROGRAMAN TURBO PASCAL

Page 2: Pengurutan (sorting )

PENGURUTAN (SORTING) 

1. Proses mangatur sekumpulan obyek/data menurut urutan atau susunan tertentu.

2. Urutan obyek/data tersebut dapat menaik (ascending) atau menurun (desencending).

3. Data yang diurutkan dapat berupa data bertipe dasar atau data bertipe struktur

4. Data yang sudah terurut memiliki keuntungan yaitu Mempercepat proses pencarian data.

 

Page 3: Pengurutan (sorting )

Metode Pengurutan

Algoritma pengurutan / sorting bermacam-macam dan setiap algoritma ini memiliki kinerja yang berbeda-beda. Berikut ini macam-macam algoritma pengurutan:

Metode Selection Sort

Metode Buble Sort

Metode Merge Sort

Metode Quick Sort

Metode Insertion Sort

 

Hal yang mempengaruhi Kecepatan Algoritma Sorting adalah Jumlah Operasi Perbandingan & Jumlah Operasi Pemindahan Data

Page 4: Pengurutan (sorting )

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 searchingUntuk 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]).

29 27 10 8 76 21

2. data pertama ditukar dengan elemen yang paling kecil.

1. memilih elemen terkecil, membandingkan dan menukarkan dengan dengan data awal yang bernilai lebih besar.

Page 5: Pengurutan (sorting )

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

 

Page 6: Pengurutan (sorting )

Ilustrasi Algoritma Selection Sort

29 27 10 8 76 21 1 2 3 4 5 6

Set Index awal = 1 Index terkecil = 4 8 Tukar index 1dengan 4

8 27 10 29 76 21 1 2 3 4 5 6

Set Index awal = 2 index terkecil = 3 10 Tukar index 2 dengan 3

8 10 27 29 76 21 1 2 3 4 5 6

Set Index awal = 4 index terkecil = 6 27 Tukar index 4 dengan 6

8 10 21 29 76 27 1 2 3 4 5 6

Set Index awal = 3 index terkecil = 6 21 Tukar index 3 dengan 6

Set Index awal = 5 index terkecil = 6 29 Tukar index 5 dengan 6

8 10 21 27 76 29 1 2 3 4 5 6

Index awal = 6 Selesai Data sudah terurut secara ascending

8 10 21 27 29 76 1 2 3 4 5 6

Page 7: Pengurutan (sorting )

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

= jlangkah 4 : Tukarkan nilai A[awal] dengan A[i]

langkah 5 : selesai

 

Page 8: Pengurutan (sorting )

Program SelectionSort; 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),

Page 9: Pengurutan (sorting )

1. 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.

Page 10: Pengurutan (sorting )

Analogi : Larik dengan urut menaik, elemen larik yang berharga paling kecil ‘diapungkan’, artinya diangkat

ke atas (atau ke ujung kiri larik) melalui proses pertukaran. Proses pengapungan ini dilakukan sebanyak N-1 langkah dengan N adalah ukuran larik. Pada akhir setiap langkah ke-I, larik L[1..N] akan terdiri atas dua bagian yaitu bagian yang

sudah terurut, yaitu L[1..I] dan bagian yang belum terurut L[I+1..N]. Setelah langkah terakhir, diperoleh larik L[1..N] yang terurut menaik.

29 27 10 8 76 21 1 2 3 4 5 6

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

Index 6 21 76 Index (n-1) = 5 8 21 76 Index = 4 8 10 21 76 Index = 3 8 27 10 21 76 Index = 2 8 25 27 10 21 76

8 25 27 10 21 76

1 2 3 4 5 6

Langkah 2: Index ke n = 6 sampai ke 3

Index 6 21 76 Index (n-1) = 5 10 21 76 Index = 4 10 27 21 76 Index = 3 10 25 27 21 76

Page 11: Pengurutan (sorting )

8 10 21 25 27 76

1 2 3 4 5 6

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

Index 6 27 76 Index (n-1) = 5 25 27 76

8 10 21 25 27 76

1 2 3 4 5 6

Langkah 5: Index ke n = 6 .

Index 6 27 76

8 10 21 25 27 76

1 2 3 4 5 6

Elemen sudah urut dan proses sorting selesai

8 10 25 27 21 76

1 2 3 4 5 6

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

Index 6 21 76 Index (n-1) = 5 21 27 76 Index = 4 21 25 27 76

Page 12: Pengurutan (sorting )

Contoh 2 :

Page 13: Pengurutan (sorting )

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

Page 14: Pengurutan (sorting )

Contoh Program Buble Sort program BubleShort; 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),

Page 15: Pengurutan (sorting )

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

Page 16: Pengurutan (sorting )

Analogi : mengurutkan satu set kartu dari kartu yang bernilai paling kecil hingga yang paling besar. Seluruh kartu diletakkan pada meja, kita sebut meja pertama, disusun dari kiri ke kanan dan atas

ke bawah. Kemudian pada meja kedua tempat meletakkan kartu yang diurutkan. Ambil kartu pertama yang terletak pada pojok kiri atas meja pertama dan letakkan pada meja

kedua. Ambil kartu kedua dari meja pertama, bandingkan dengan kartu yang berada pada meja kedua,

kemudian letakkan pada urutan yang sesuai setelah perbandingan. Proses tersebut akan berlangsung hingga seluruh kartu pada meja pertama telah diletakkan

berurutan pada meja kedua. 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 :