38
SORT BY : EKA PANDU CYNTHIA, S.T., M.KOM. 1

Materi : Struktur Data (3 Sort)

Embed Size (px)

Citation preview

Page 1: Materi : Struktur Data (3 Sort)

1

SORTBY :

EKA PANDU CYNTHIA, S.T., M.KOM.

Page 2: Materi : Struktur Data (3 Sort)

2

SORT Sort adalah suatu proses pengurutan

data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut atau teratur menurut suatu aturan tertentu.

Page 3: Materi : Struktur Data (3 Sort)

3

SORT Biasanya pengurutan dibagi menjadi 2

yaitu :Ascending Pengurutan dari kecil ke besarDescending Pengurutan dari besar ke kecil

Page 4: Materi : Struktur Data (3 Sort)

4

SORT Ada banyak cara atau metode untuk

melakukan pengurutan ascending atau pun descending.

Dalam proses pengurutan kita akan memerlukan proses penukaran data.

Proses penukaran data tidak bisa kita lakukan secara langsung dengan menukar isi variabel.

Penukaran data dilakukan dengan metode swap.

Page 5: Materi : Struktur Data (3 Sort)

5

SWAP Misalkan terdapat dua data yang akan

ditukar yaitu :

Cara yang salah :

Cara yang benar :

data[1] = 5;data[2] = 10;

data[1] = data[2];data[2] = data[1];

swap = data[1];data[1] = data[2];data[2] = swap;

Page 6: Materi : Struktur Data (3 Sort)

6

SORT Untuk melakukan pengurutan terdapat

beberapa cara atau metode diantaranya :Bubble SortSelection Sort Insertion Sort

Page 7: Materi : Struktur Data (3 Sort)

7

BUBBLE SORT Bubble Sort adalah suatu metode

pengurutan yang membandingkan elemen yang sekarang dengan elemen yang berikutnya.

Apabila elemen yang sekarang > elemen berikutnya, maka posisinya ditukar, jika tidak maka tidak perlu ditukar.

Page 8: Materi : Struktur Data (3 Sort)

8

BUBBLE SORT Misalkan kita memiliki data acak

sebagai berikut :5, 34, 32, 25, 75, 42, 22, 2

Page 9: Materi : Struktur Data (3 Sort)

9

BUBBLE SORT Data sebelumnya :

5, 34, 32, 25, 75, 42, 22, 2 Langkah ke 0 :

5 > 34 ? TIDAK (tetap) = 5, 34 34 > 32 ? YA (tukar) = 32, 34 34 > 25 ? YA (tukar) = 25, 34 34 > 75 ? TIDAK (tetap) = 34, 75 75 > 42 ? YA (tukar) = 42, 75 75 > 22 ? YA (tukar) = 22, 75 75 > 2 ? YA (tukar) = 2, 75

Hasil :5, 32, 25, 34, 42, 22, 2, 75

Page 10: Materi : Struktur Data (3 Sort)

10

BUBBLE SORT Data sebelumnya :

5, 32, 25, 34, 42, 22, 2, 75 Langkah ke 1 :

5 > 32 ? TIDAK (tetap) = 5, 32 32 > 25 ? YA (tukar) = 25, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 22 ? YA (tukar) = 22, 42 42 > 2 ? YA (tukar) = 2, 42 42 > 75 ? TIDAK (tetap) 42, 75

Hasil :5, 25, 32, 34, 22, 2, 42, 75

Page 11: Materi : Struktur Data (3 Sort)

11

BUBBLE SORT Data sebelumnya :

5, 25, 32, 34, 22, 2, 42, 75 Langkah ke 2 :

5 > 25 ? TIDAK (tetap) = 5, 25 25 > 32 ? TIDAK (tetap) = 25, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 22 ? YA (tukar) = 22, 34 34 > 2 ? YA (tukar) = 2, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 75 ? TIDAK (tetap) = 42, 75

Hasil :5, 25, 32, 22, 2, 34, 42, 75

Page 12: Materi : Struktur Data (3 Sort)

12

BUBBLE SORT Data sebelumnya :

5, 25, 32, 22, 2, 34, 42, 75 Langkah ke 3 :

5 > 25 ? TIDAK (tetap) = 5, 25 25 > 32 ? TIDAK (tetap) = 25, 32 32 > 22 ? YA (tukar) = 22, 32 32 > 2 ? YA (tukar) = 2, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 75 ? TIDAK (tetap) = 42, 75

Hasil :5, 25, 22, 2, 32, 34, 42, 75

Page 13: Materi : Struktur Data (3 Sort)

13

BUBBLE SORT Data sebelumnya :

5, 25, 22, 2, 32, 34, 42, 75 Langkah ke 4 :

5 > 25 ? TIDAK (tetap) = 5, 25 25 > 22 ? YA (tukar) = 22, 25 25 > 2 ? YA (tukar) = 2, 25 25 > 32 ? TIDAK (tetap) = 25, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 75 ? TIDAK (tetap) = 42, 75

Hasil :5, 22, 2, 25, 32, 34, 42, 75

Page 14: Materi : Struktur Data (3 Sort)

14

BUBBLE SORT Data sebelumnya :

5, 22, 2, 25, 32, 34, 42, 75 Langkah ke 5 :

5 > 22 ? TIDAK (tetap) = 5, 22 22 > 2 ? YA (tukar) = 2, 22 22 > 25 ? TIDAK (tetap) = 22, 25 25 > 32 ? TIDAK (tetap) = 25, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 75 ? TIDAK (tetap) = 42, 75

Hasil :5, 2, 22, 25, 32, 34, 42, 75

Page 15: Materi : Struktur Data (3 Sort)

15

BUBBLE SORT Data sebelumnya :

5, 2, 22, 25, 32, 34, 42, 75 Langkah ke 6 :

5 > 2 ? YA (tukar) = 2, 5 5 > 22 ? TIDAK (tetap) = 5, 22 22 > 25 ? TIDAK (tetap) = 22, 25 25 > 32 ? TIDAK (tetap) = 25, 32 32 > 34 ? TIDAK (tetap) = 32, 34 34 > 42 ? TIDAK (tetap) = 34, 42 42 > 75 ? TIDAK (tetap) = 42, 75

Hasil :2, 5, 22, 25, 32, 34, 42, 75

Page 16: Materi : Struktur Data (3 Sort)

16

BUBBLE SORT Data Awal :

5, 34, 32, 25, 75, 42, 22, 2 Data Akhir :

2, 5, 22, 25, 32, 34, 42, 75

Page 17: Materi : Struktur Data (3 Sort)

17

#include <iostream.h>#include <conio.h>#include <iomanip.h>

void main(){

int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap; cout<<"Data sebelum diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(int i=0; i<7; i++) { for(int j=0; j<7; j++) { if(data[j] > data[j+1]) { swap = data[j]; data[j] = data[j+1]; data[j+1] = swap; } } } cout<<"Data setelah diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch();}

Page 18: Materi : Struktur Data (3 Sort)

18

SELECTION SORT Selection Sort adalah suatu metode

pengurutan yang membandingkan elemen sekarang dengan elemen berikutnya sampai ke elemen yang terakhir.

Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan langsung ditukar.

Page 19: Materi : Struktur Data (3 Sort)

19

SELECTION SORT Misalkan kita memiliki data acak

sebagai berikut :5, 34, 32, 25, 75, 42, 22, 2

Page 20: Materi : Struktur Data (3 Sort)

20

SELECTION SORT Langkah 0, data sebelumnya :

5, 34, 32, 25, 75, 42, 22, 2 Pembanding Posisi Terkecil

5 > 34 ? TIDAK 0 5 > 32 ? TIDAK 0 5 > 25 ? TIDAK 0 5 > 75 ? TIDAK 0 5 > 42 ? TIDAK 0 5 > 22 ? TIDAK 0 5 > 2 ? YA 7

Hasil, tukar posisi 0 dan posisi 7 :2, 34, 32, 25, 75, 42, 22, 5

Page 21: Materi : Struktur Data (3 Sort)

21

SELECTION SORT Langkah 1, data sebelumnya :

2, 34, 32, 25, 75, 42, 22, 5 Pembanding Posisi Terkecil

34 > 32 ? YA 232 > 25 ? YA 325 > 75 ? TIDAK 325 > 42 ? TIDAK 325 > 22 ? YA 622 > 5 ? YA 7

Hasil, tukar posisi 1 dan posisi 7 :2, 5, 32, 25, 75, 42, 22, 34

Page 22: Materi : Struktur Data (3 Sort)

22

SELECTION SORT Langkah 2, data sebelumnya :

2, 5, 32, 25, 75, 42, 22, 34 Pembanding Posisi Terkecil

32 > 25 ? YA 325 > 75 ? TIDAK 325 > 42 ? TIDAK 325 > 22 ? YA 622 > 34 ? TIDAK 6

Hasil, tukar posisi 2 dan posisi 6 :2, 5, 22, 25, 75, 42, 32, 34

Page 23: Materi : Struktur Data (3 Sort)

23

SELECTION SORT Langkah 3, data sebelumnya :

2, 5, 22, 25, 75, 42, 32, 34 Pembanding Posisi Terkecil

25 > 75 ? TIDAK 325 > 42 ? TIDAK 325 > 32 ? TIDAK 325 > 34 ? TIDAK 3

Hasil, tukar posisi 3 dan posisi 3 :2, 5, 22, 25, 75, 42, 32, 34

Page 24: Materi : Struktur Data (3 Sort)

24

SELECTION SORT Langkah 4, data sebelumnya :

2, 5, 22, 25, 75, 42, 32, 34 Pembanding Posisi Terkecil

75 > 42 ? YA 542 > 32 ? YA 632 > 34 ? TIDAK 6

Hasil, tukar posisi 4 dan posisi 6 :2, 5, 22, 25, 32, 42, 75, 34

Page 25: Materi : Struktur Data (3 Sort)

25

SELECTION SORT Langkah 5, data sebelumnya :

2, 5, 22, 25, 32, 42, 75, 34 Pembanding Posisi Terkecil

42 > 75 ? TIDAK 542 > 34 ? YA 7

Hasil, tukar posisi 5 dan posisi 7 :2, 5, 22, 25, 32, 34, 75, 42

Page 26: Materi : Struktur Data (3 Sort)

26

SELECTION SORT Langkah 6, data sebelumnya :

2, 5, 22, 25, 32, 34, 75, 42 Pembanding Posisi Terkecil

75 > 42 ? YA 7 Hasil, tukar posisi 6 dan posisi 7 :

2, 5, 22, 25, 32, 34, 42, 75

Page 27: Materi : Struktur Data (3 Sort)

27

SELECTION SORT Data Awal :

5, 34, 32, 25, 75, 42, 22, 2 Data Akhir :

2, 5, 22, 25, 32, 34, 42, 75

Page 28: Materi : Struktur Data (3 Sort)

28

#include <iostream.h>#include <conio.h>#include <iomanip.h>

void main(){

int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap, terkecil; cout<<"Data sebelum diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(int i=0; i<7; i++) { terkecil = i; for(int j=i+1; j<8; j++) { if(data[terkecil] > data[j]) { terkecil = j; } } swap = data[i]; data[i] = data[terkecil]; data[terkecil] = swap; } cout<<"Data setelah diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch();}

Page 29: Materi : Struktur Data (3 Sort)

29

INSERTION SORT Metode Insertion Sort mirip dengan

cara mengurutkan kartu, kartu diambil selembar demi selembar dan disisipkan (insert) pada posisi seharusnya.

Proses pengurutan dimulai dari data ke 2 sampai data terakhir.

Data akan dibandingkan dengan posisi sebelumnya dan disisipkan pada posisi yang sesuai.

Pada proses penyisipan data, maka data-data yang lain akan bergeser ke belakang (kanan).

Page 30: Materi : Struktur Data (3 Sort)

30

INSERTION SORT Misalkan kita memiliki data acak

sebagai berikut :95, 34, 32, 25, 75, 42, 22

Page 31: Materi : Struktur Data (3 Sort)

31

INSERTION SORT Data sebelumnya :

95, 34, 32, 25, 75, 42, 22 Langkah 1, Temp = 34

J = 0 Temp < 95? YA Data Ke 1 = 9595, 95, 32, 25, 75, 42, 22

J = -1 STOP Hasil :

Data ke J+1 (0) = Temp (34)34, 95, 32, 25, 75, 42, 22

Page 32: Materi : Struktur Data (3 Sort)

32

INSERTION SORT Data sebelumnya :

34, 95, 32, 25, 75, 42, 22 Langkah 2, Temp = 32

J = 1 Temp < 95? YA Data ke 2 = 9534, 95, 95, 25, 75, 42, 22

J = 0 Temp < 34? YA Data ke 1 = 3434, 34, 95, 25, 75, 42, 22

J = -1 STOP Hasil :

Data ke J+1 (0) = Temp (32)32, 34, 95, 25, 75, 42, 22

Page 33: Materi : Struktur Data (3 Sort)

33

INSERTION SORT Data sebelumnya :

32, 34, 95, 25, 75, 42, 22 Langkah 3, Temp = 25

J = 2 Temp < 95? YA Data ke 3 = 9532, 34, 95, 95, 75, 42, 22

J = 1 Temp < 34? YA Data ke 2 = 3432, 34, 34, 95, 75, 42, 22

J = 0 Temp < 32? YA Data ke 1 = 3232, 32, 34, 95, 75, 42, 22

J = -1 STOP Hasil :

Data ke J+1 (0) = Temp (25)25, 32, 34, 95, 75, 42, 22

Page 34: Materi : Struktur Data (3 Sort)

34

INSERTION SORT Data sebelumnya :

25, 32, 34, 95, 75, 42, 22 Langkah 4, Temp = 75

J = 3 Temp < 95? YA Data ke 4 = 9525, 32, 34, 95, 95, 42, 22

J = 2 Temp < 34? TIDAK STOP Hasil :

Data ke J+1 (3) = Temp (75)25, 32, 34, 75, 95, 42, 22

Page 35: Materi : Struktur Data (3 Sort)

35

INSERTION SORT Data sebelumnya :

25, 32, 34, 75, 95, 42, 22 Langkah 5, Temp = 42

J = 4 Temp < 95? YA Data ke 5 = 9525, 32, 34, 75, 95, 95, 22

J = 3 Temp < 75? YA Data ke 4 = 7525, 32, 34, 75, 75, 95, 22

J = 2 Temp < 34? TIDAK STOP Hasil :

Data ke J+1 (3) = Temp (42)25, 32, 34, 42, 75, 95, 22

Page 36: Materi : Struktur Data (3 Sort)

36

INSERTION SORT Data sebelumnya :

25, 32, 34, 42, 75, 95, 22 Langkah 6, Temp = 22

J = 5 Temp < 95? YA Data ke 6 = 9525, 32, 34, 42, 75, 95, 95

J = 4 Temp < 75? YA Data ke 5 = 7525, 32, 34, 42, 75, 75, 95

J = 3 Temp < 42? YA Data ke 4 = 4225, 32, 34, 42, 42, 75, 95

J = 2 Temp < 34? YA Data ke 3 = 3425, 32, 34, 34, 42, 75, 95

J = 1 Temp < 32? YA Data ke 2 = 3225, 32, 32, 34, 42, 75, 95

J = 0 Temp < 25? YA Data ke 1 = 2525, 25, 32, 34, 42, 75, 95

J = -1 STOP Hasil :

Data ke J+1 (0) = Temp (22)22, 25, 32, 34, 42, 75, 95

Page 37: Materi : Struktur Data (3 Sort)

37

INSERTION SORT Data Awal :

22, 25, 32, 34, 42, 75, 95 Data Akhir :

Page 38: Materi : Struktur Data (3 Sort)

38

#include <iostream.h>#include <conio.h>

void insertion_sort(int data[]){

int temp, j; for(int i=1; i<10; i++) { temp = data[i]; j = i-1; while(temp < data[j] && j>=0) { data[j+1] = data[j]; j--; } data[j+1] = temp; }}

void main(){

int data[10]={5,34,32,25,75,42,22,2,9,1};insertion_sort(data);for (int i=0;i<10;i++)

cout<<"data["<<i<<"]= : "<<data[i]<<endl; getch();}