• Tidak ada hasil yang ditemukan

Pengurutan (Sorting) Algoritma Pemrograman

N/A
N/A
Protected

Academic year: 2022

Membagikan "Pengurutan (Sorting) Algoritma Pemrograman"

Copied!
12
0
0

Teks penuh

(1)

Pengurutan

(Sorting)

Algoritma Pemrograman

[email protected]

1 http://learning.mas-anto.com

Definisi

• Sorting /pengurutan – proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu.

• Bentuk susunan/urutan :

– Ascending – menaik/membesar – Descending – menurun/mengecil

• Data yang diurut dapat berupa numerik atau

tipe bentukan.

(2)

Pengelompokan Pengurutan

• Dikelompokkan dalam 2 kelompok :

1. Pengurutan internal – pengurutan sekumpulan data yang disimpan didalam memori utama komputer.

2. Pengurutan eksternal – pengurutan data yang ada dalam memori sekunder dan biasanya volumenya besar.

• Pengurutan internal mempunyai performansi yang baik cepat, tapi boros memori.

3 http://learning.mas-anto.com

Macam Algoritma Pengurutan

• Macam-macam algoritma sorting :

1. Maximum Sort

2. Insertion Sort

3. Bubble Sort

4. Heap Sort

5. Shell Sort

6. Quick Sort

7. Merge Sort

8. Radix Sort

9. Tree Sort

(3)

Tiga Algoritma Sorting

• Algoritma yang akan dibahas adalah :

1. Pengurutan Gelembung (Bubble Sort) 2. Pengurutan Pemilihan (Selection Sort

1. Minimum Sort 2. Maksimum Sort

3. Pengurutan Sisip (Insertion Sort)

5 http://learning.mas-anto.com

Bubble Sort (1)

• Terinspirasi oleh gelembung sabun yang ada diatas permukaan. Gelembung mengapung karena massa-nya lebih kecil dari air itu sendiri.

• Prinsipnya : mengapungkan elemen array

berharga paling kecil ‘diapungkan’ artinya

diangkat ke atas (ke ujung kiri array).

(4)

Bubble Sort (2)

Tahapan Pengurutan – Bubble Sort Ascending

1. Langkah 1 : Mulai elemen K=N, N-1, …, 2 bandingkan L[K] dengan L[K-1].

Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1] berisi harga minimum pertama.

2. Langkah 2 : Mulai elemen K=N, N-1,…, 3 bandingkan L[K] dengan L[K-1].

Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1..2] berisi nilai terurut.

3. Langkah 3 : Mulai dari elemen K=N, N-1, …, 4 bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1..3] berisi harga terurut.

4. …

5. Langkah N-1 : Mulai dari K=N, bandingkan L[K] dengan L[K-1]. Jika L[K]<L[K-1], tukar L[K] dengan L[K-1]. Maka L[1] berisi harga terurut.

7 http://learning.mas-anto.com

Bubble Sort (3)

Array dengan N=6 belum terurut “

Ilustrasi :

25 27 10 8 76 21

1 2 3 4 5 6

Langkah 1 :

K=N=6 21 76

K=5 8 21 76

K=4 8 10 21 76

K=3 8 27 10 21 76

K=2 8 25 27 10 21 76

Langkah 2 :

K=N=6 21 76

K=5 10 21 76

K=4 10 27 21 76

K=3 8 10 25 27 21 76

Langkah 3 :

K=N=6 21 76

K=5 21 27 76

K=4 8 10 21 25 27 76

Langkah 4 :

K=N=6 27 76

K=5 8 10 21 25 27 76

Langkah 5 :

K=N=6 8 10 21 25 27 76

(5)

Bubble Sort (4)

Algoritma Bubble Sort Ascending :

Procedure BubbleSortAsc(input/output L : Larik; input N : integer) Deklarasi

I : integer {jumlah langkah}

K : integer { pengapungan tiap langkah}

Temp : integer { untuk penukaran nilai}

Tukar : boolean { kontrol}

Algoritma I = 1 Tukar = True

While I < N – 1 AND Tukar Do Tukar = False For K=N downto I+1 do

If L[K] < L[K-1] then Temp = L[K]

L[K] = L[K-1]

L[K-1] = Temp Endif

EndFor I=I+1 EndWhile

9 http://learning.mas-anto.com

Bubble Sort (4)

Procedure BubbleSortDesc(input/output L : Larik; input N : integer) Deklarasi

I : integer {jumlah langkah}

K : integer { pengapungan tiap langkah}

Temp : integer { untuk penukaran nilai}

Algoritma For I=1 to N-1 do

For K=N downto I+1 do If L[K] > L[K-1] then

Temp = L[K]

L[K] = L[K-1]

L[K-1] = Temp Endif

EndFor EndFor

(6)

Selection Sort

Selection sort terdiri dari : 1. Maximum Sort

2. Minimum Sort

11 http://learning.mas-anto.com

Maximum Sort (1)

Algoritma Maximum Sort Ascending

Langkah 1 : Tentukan harga maksimum didalam L[1..N]. Tukar harga maksimum dengan elemen L[N]

Langkah 2 : Tentukan harga maksimum didalam L[1..N-1]. Tukar harga maksimum dengan elemen L[N-1]

Langkah 3 : Tentukan harga maksimum didalam L[1..N-2]. Tukar harga maksimum dengan elemen L[N-2]

…..

Langkah N : Tentukan harga maksimum didalam L[1..2]. Tukar

harga maksimum dengan elemen L[2]

(7)

Maximum Sort (2)

Ilustrasi :

25 27 10 8 76 21

1 2 3 4 5 6

Langkah 1 :

Cari elemen maksimum dalam L[1..6], maks = 76. Tukar Maks dengan L[N] menjadi :

25 27 10 8 21 76

1 2 3 4 5 6

Langkah 2:

Cari elemen maksimum dalam L[1..5], maks = 27. Tukar Maks dengan L[5] menjadi :

25 21 10 8 27 76

1 2 3 4 5 6

Langkah 3:

Cari elemen maksimum dalam L[1..4], maks = 25. Tukar Maks dengan L[4] menjadi :

8 21 10 25 27 76

1 2 3 4 5 6

Langkah 4:

Cari elemen maksimum dalam L[1..3], maks = 21 Tukar Maks dengan L[3] menjadi :

8 10 21 25 27 76

1 2 3 4 5 6

Langkah 5:

Cari elemen maksimum dalam L[1..2], maks = 10 Tukar Maks dengan L[2] menjadi :

8 10 21 25 27 76

1 2 3 4 5 6

13 http://learning.mas-anto.com

Maximum Sort (3)

Algoritma Maksimum Sort Ascending

Procedure MaksSortAsc(input/output L : Larik; input N : integer) Deklarasi

I : integer {jumlah langkah}

J : integer { mencari nilai maks}

U : integer { indeks ujung kiri } Maks : integer { nilai maks sementara } Imaks : Integer { indeks maks sementara } Temp : integer { untuk penukaran nilai}

Algoritma U = N

For I=1 to N-1 do Imaks = 1 For J=2 to U do

If L[J] > L[Imaks] then Imaks=J

Endif Endfor

(8)

Maximum Sort (4)

Algoritma Maximum Sort Descending

Langkah 1 : Tentukan harga minimum didalam L[1..N]. Tukar harga maksimum dengan elemen L[1]

Langkah 2 : Tentukan harga minimum didalam L[2..N]. Tukar harga maksimum dengan elemen L[2]

Langkah 3 : Tentukan harga maksimum didalam L[3..N]. Tukar harga maksimum dengan elemen L[3]

…..

Langkah N : Tentukan harga maksimum didalam L[N-1,N]. Tukar harga maksimum dengan elemen L[N-1]

15 http://learning.mas-anto.com

Minimum Sort (1)

• Prinsipnya sama dengan maksimum sort hanya, sebagai dasar adalah nilai minimum.

• Algoritma Minimum Sort Ascending – mencari nilai minimum dalam sebuah array, taruh hasilnya pada elemen pertama (kiri), dan seterusnya.

• Algoritma Minimum Sort Descending –

mencari nilai minimum dalam sebuah array,

taruh hasilnya pada elemen terakhir (kanan),

(9)

Minimum Sort (2)

Procedure MinSortAsc(input/output L : Larik; input N : integer) Deklarasi

I : integer {jumlah langkah}

J : integer { mencari nilai min}

U : integer { indeks ujung kiri } Min : integer { nilai maks sementara } Imin : Integer { indeks maks sementara } Temp : integer { untuk penukaran nilai}

Algoritma U = N

For I=1 to N-1 do Imin = 1 For J=2 to U do

If L[J] <L[Iin] then Imin=J

Endif Endfor Temp=L[U]

L[U]=L[Imin]

L[Imin]= Temp U=U-1

Endfor http://learning.mas-anto.com 17

Insertion Sort (1)

• Menyisipkan elemen larik pada posisi yang tepat dan dilakukan secara beruntun dalam larik.

• Setelah menemukan posisi yang tepat, maka

akan dilakukan proses pergeseran elemen

yang ada.

(10)

Insertion Sort (2)

Mekanisme Pengurutan :

• Langkah 1 : Anggap L[1] sudah pada posisi yang tepat.

• Langkah 2 : L[2] harus dicari posisi yang tepat antara L[1..2] dengan cara menggeser elemen.

• Langkah 3 : L[3] harus dicari posisi yang tepat antara L[1..3] dengan cara menggeser elemen.

• ….

• Langkah N: L[N] harus dicari posisi yang tepat antara L[1..N] dengan cara menggeser elemen.

19 http://learning.mas-anto.com

Insertion Sort (3)

25 27 10 8 76 21

1 2 3 4 5 6

Anggap L[1] sudah terurut

25 27 10 8 76 21

1 2 3 4 5 6

Langkah 2 :

Cari posisi yang tepat untuk L[2] pada L[1..2] maka :

25 27 10 8 76 21

1 2 3 4 5 6

Langkah 3 :

Cari posisi yang tepat untuk L[3] pada L[1..3] maka :

10 25 27 8 76 21

Langkah 4 :

Cari posisi yang tepat untuk L[4] pada L[1..4] maka :

8 10 25 27 76 21

1 2 3 4 5 6

Langkah 5 :

Cari posisi yang tepat untuk L[5] pada L[1..5] maka :

8 10 25 27 76 21

1 2 3 4 5 6

Langkah 6 :

Cari posisi yang tepat untuk L[6] pada L[1..6] maka :

8 10 21 25 27 76

1 2 3 4 5 6

Ilustrasi Insertion Sort Ascending

(11)

Insertion Sort (3)

Ascending

Procedure InsertSortAsc(input/output L : Larik; input N : integer) Deklarasi

K : integer {jumlah langkah}

J : integer { penelusuran array } Temp : integer { untuk penukaran nilai}

Algoritma For K=2 to N do

Temp = L[K]

J=K-1

While Temp < L[J] AND J > 1 do L[J+1] = L[J]

J=J-1 EndWhile

If Temp > L[J] then L[J+1] = Temp Else

L[J+1] = L[J]

L[J] = Temp Endif

Endfor

21 http://learning.mas-anto.com

Insertion Sort (4)

Descending

Procedure InsertSortDesc(input/output L : Larik; input N : integer) Deklarasi

K : integer {jumlah langkah}

J : integer { penelusuran array } Temp : integer { untuk penukaran nilai}

Algoritma For K=2 to N do

Temp = L[K]

J=K-1

While Temp >L[J] AND J > 1 do L[J+1] = L[J]

J=J-1 EndWhile

If Temp < L[J] then L[J+1] = Temp Else

(12)

Latihan

Perhatikan array dibawah ini :

Soal :

Tuliskan langkah proses pengurutan dengan metode algoritma :

a) Buble Sort Descending b) Minimum Sort Ascending c) Insertion Sort Descending

45 12 -1 0 4 5 -2 14 17 3

1 2 3 4 5 6 7 8 9 10

23 http://learning.mas-anto.com

Tugas Kelompok

• Terjemahkan algoritma-algoritma pengurutan berikut ini ke dalam bahasa pemrograman Pascal atau C atau Visual Basic atau Java :

– Binnary Search

– Bubble Sort Ascending – Maksimum Sort Ascending – Insertion Sort Descending

• Program harus disertai dengan penjelasannya dan siap dieksekusi serta tanpa error.

• Hasilnya diupload paling lambat tanggal 26 Juni 2010

melalui eSinaukoe.

Gambar

Ilustrasi : 25 27 10 8 76 21123456 Langkah 1 : K=N=6 21 76 K=5 8 21 76 K=4 8 10 21 76 K=3 8 27 10 21 76 K=2 8 25 27 10 21 76 Langkah 2 : K=N=6 21 76 K=5 10 21 76 K=4 10 27 21 76 K=3 8 10 25 27 21 76 Langkah 3 :K=N=6 21 76K=5212776K=481021252776Langkah 4 :K
Ilustrasi Insertion Sort Ascending

Referensi

Dokumen terkait

Sedangkan Bubble sort akan membandingkan elemen pertama/terakhir dengan elemen sebelumnya/sesudahnya, kemudian elemen sebelum/sesudahnya itu akan menjadi

Pada penelitian ini, digunakan metode algoritma Bubble Sort terhadap 2 buah model varian pengurutan data yaitu pengurutan data secara : Ascending bergerak dari Kiri ke

Bubble sort adalah proses pengurutan sederhana yang bekerja dengan cara berulang kali membandingkan dua elemen data pada suatu saat dan menukar elemen data yang urutannya

Cara kerja algoritma ini yaitu pengurutan dengan penyisipan bekerja dengan cara menyisipkan masing-masing nilai di tempat yang sesuai (di antara elemen yang lebih kecil

Metode selection sort adalah melakukan pemilihan dari suatu nilai yang terkecil dan kemudian menukarnya dengan elemen paling awal, lalu membandingkan dengan elemen yang

Perbandingan pengurutan data (sorting) dalam sebuah array (L) menggunakan dua algoritma dengan prinsip kerja yang berbeda. Metode selection sort menggunakan

 Tuliskanlah algoritma, yang jika diberikan sebuah X bernilai integer akan mencari apakah harga X ada dalam TabInt secara berurutan mulai dari elemen pertama array sampai ketemu

Untuk data yang sedikit, algoritma ini sebaiknya tidak digunakan karena ada beberapa algoritma lain yang bisa bekerja lebih cepat dari merge sort... Ilustrasinya