(HIM 151)
MODUL 10
METODE SORTING & SEARCHING
DISUSUN OLEH
Ravie Kurnia Laday, S.Kom, M.Kom
2. Sorting
Pengurutan data (sorting) adalah suatu proses untuk menyusun kembali
himpunan obyek menggunakan aturan tertentu
Terdapat 2 katagori dasar dalam tehnik sorting : internal sort dan external
sort. Metode Internal sort digunakan apabila koleksi data yang akan diurutkan
tidak dalam jumlah besar sehingga proses dapat dilakukan dalam main
memory. Metode External sort digunakan apabila koleksi data yang akan
A1 £ A2 £ A3 £ ..... £ An
Contoh :
Misal suatu array DATA berisi 8 elemen sebagai berikut :
DATA : 77, 33, 44, 11, 88, 22, 66, 55
Setelah diurutkan :
DATA : 11, 22, 33, 44, 55, 66, 77, 88
Insertion Sort
Insertion Sort merupakan sebuah teknik pengurutan dengan cara
membandingkan dan mengurutkan dua data pertama pada array, kemudian
membandingkan data para array berikutnya apakah sudah berada di tempat
semestinya. Algorithma insertion sort seperti proses pengurutan kartu yang
berada di tangan kita. Algorithma ini dapat mengurutkan data dari besar ke
kecil (Ascending) dan kecil ke besar (Descending). Algoritma ini tidak cocok
untuk set data dengan jumlah besar karena kompleksitas dari algorithma ini
adalah Ο() di mana n adalah jumlah item.
Misal array A dengan n elemen A[1], A[2], ..... , A[N] dalam memori.
Algoritma Insertion Sort memeriksa A dari A[1] sampai dengan A[N],
menyisipkan setiap elemen A[K] ke dalam posisi yang seharusnya dalam
subarray terurut A[1], A[2], ..... , A[K-1].
Algoritma sorting ini umumnya digunakan apabila jumlah elemennya sedikit
(n kecil). Masalah yang akan muncul dengan metoda ini adalah bagaimana
cara menyisipkan A[K] ke dalam letak yang seharusnya pada subarray terurut
A[1], A[2], ....., A[K-1]. Hal ini dapat dilakukan dengan membandingkan
Contoh :
Array A dengan 8 elemen sebagai berikut :
77, 33, 44, 11, 88, 22, 66, 55
Tabel 1 menggambarkan algoritma insertion sort. Elemen yang
dilingkari menandakan A[K] dalam masing- masing proses dari algoritma,
dan tanda panah menandakan letak yang seharusnya untuk menyisipkan
A[K].
Selection Sort
Selection sort merupakan sebuah teknik pengurutan dengan cara mencari nilai
tertinggi / terendah di dalam array kemudian menempatkan nilai tersebut di
tempat semestinya. Algorithma ini dapat mengurutkan data dari besar ke kecil
(Ascending) dan kecil ke besar (Descending). Algoritma ini tidak cocok
untuk set data dengan jumlah besar karena kompleksitas dari algorithma ini
adalah Ο(x2) di mana n adalah jumlah item.
Array A dengan n elemen A[1], A[2], ....., A[N] dalam memori. Algoritma
untuk mengurutkan A sebagai berikut : Pertama, cari elemen terkecil dalam
array A dan letakkan pada posisi pertama dalam array tersebut. Kemudian
cari elemen kedua terkecil dalam array A dan letakkan dalam posisi kedua
dari array tersebut, dan begitu seterusnya.
Dalam selection sort, Terdapat beberapa proses, diantaranya adalah :
Proses 1 : Cari lokasi LOC yang merupakan elemen terkecil dalam array yang
terdiri dari N elemen , A[1], A[2], ...., A[N] dan kemudian tukar
posisi A[LOC] dengan A[1].
Proses 2 : Cari lokasi LOC yang merupakan elemen terkecil dalam array yang
terdiri dari N-1 elemen , A[2], A[3], ...., A[N] dan tukar posisi
Proses 3 : Cari lokasi LOC yang merupakan elemen terkecil dalam array yang
terdiri dari N-2 elemen, A[3], A[4],......, A[N] dan tukar posisi
A[LOC] dengan A[3]. A[1], A[2], A[3] terurut, jika dan hanya jika
A[2] £ A[3]. Dst................. Sehingga A akan terurut setelah N-1
proses.
Contoh :
Array A dengan 8 elemen sbb :
77, 33, 44, 11, 88, 22, 66, 55
Proses algoritma digambarkan dalam Tabel 2. Misalkan LOC berisi nilai
lokasi elemen terkecil A[K], A[K+1],...,A[N] selama proses K. Elemen yang
dilingkari merupakan elemen yang akan ditukar posisinya.
Tabel 2 Proses Selection Sort
3. Merging
Misal A merupakan himpunan data terurut dengan r buah elemen dan B
himpunan data terurut dengan s buah elemen. Proses yang menggabungkan
elemen-elemen dalam A dan B menjadi himpunan elemen data terurut
tunggal, misal C dengan n = r + s buah elemen disebut dengan proses
Merging.
Secara singkat, proses Merging dapat dijelaskan sebagai berikut ; ambil
elemen pertama dari A, A[1] dan B, B[1]. Bandingkan kedua elemen tersebut.
Jika A[1] > B[1], B[1] dimasukkan dalam C, jika tidak A[1] dimasukkan
dalam C. Untuk himpunan data yang elemennya dimasukkan dalam C,
elemen yang akan dibandingkan adalah elemen berikutnya. Dan seterusnya.
Contoh :
A = 11 12 23 33 45 67
B = 9 12 21 42
Algoritma MERGING :
1. NA = 1 ; NB = 1 dan PTR = 1
2. Repeat While NA £ R and NB £ S
If A[NA] < B[NB] then
a. C[PTR] = A[NA]
b. PTR = PTR + 1 ; NA = NA + 1
Else
a. C[PTR] = B[NB]
b. PTR = PTR + 1 ;
NB = NB + 1 [End If Structure]
[End Loop]
3. If NA > R then
Repeat For k = 0,1,2,3,.....,S-NB
C[PTR+K] = B[NB+K]
[End loop]
Else
Repeat for K = 0,1,2,3,.....,R-NA
C[PTR+K] = A[NA+K]
[End loop]
[End If Structure]
4. Exit
Merge Sort
Contoh :
15 12 45 56 13 10
Masing-masing proses dalam algoritma merge sort akan dimulai dari elemen
awal dalam A dan menggabungkan (merge) pasangan subarray yang terurut
sbb :
Tournament Sort
Tournament Sort disebut juga dengan Tree Selection Sort. Misal terdapat
elemen data sebagai berikut :
Asumsikan bahwa batasan proses dalam memori hanya 4 buah elemen setiap
saatnya. Algoritma Tournament Sort membagi 4 elemen tersebut menjadi 2
pasangan elemen sbb :
2 adalah elemen terkecil dan merupakan elemen pertama pada output dari
Proses yang berikutnya akan ditentukan elemen kedua dalam list terurut. 2
tidak diikutsertakan kembali.
Proses selanjutnya :
Proses Keempat :
Proses Kelima :
Apabila 3 diikutkan dalam proses, maka urutan list terurut pada output akan
berantakan. Untuk mengatasinya, terdapat aturan sbb :
If Keynew < Keylastout
then keynew diletakkan dalam tree tetapi untuk sementara waktu di-
diskualifikasikan.
Catatan : Keylastout adalah key terakhir yang ada dalam list terurut.
Proses kedelapan, elemen berikutnya 8 dan elemen ini untuk sementara akan
didiskualifikasi karena 8 < dari elemen terakhir dalam list terurut yakni 14.
Proses Kesembilan :
Proses 11 Elemen 30 :
Proses 12 :
Proses 14 dan 15 tidak terdapat elemen yang dimasukkan dalam tree. Hasil
akhir dari proses tournament sort ini menghasilkan 2 himpunan elemen data
yang terurut :
2, 6, 7, 9, 10, 14, 14, 22, 25
1, 3, 8, 12, 13, 30
Shell Sort
Sequential Searching
Metode yang paling sederhana dari sejumlah metode pencarian adalah
metoda pencarian berurutan (sequential searching). Secara singkat metode ini
dapat dijelaskan sebagai berikut :
Dari elemen-elemen yang diketahui, data yang dicari dibandingkan satu
persatu sampai data tersebut ditemukan atau tidak ditemukan.
Metode move to the front ini, prosesnya lebih baik apabila menggunakan
linked list dibandingkan dengan array.