Anda di halaman 1dari 8

BAB 14 ALGORITMA PENGURUTAN

14.1 Pendahuluan

Mata kuliah ini membahas definisi algoritma, nama dan tipe data, operator dan ekspresi, struktur
dasar algoritma, array/larik satu dan dua dimensi, fungsi dan prosedur ,searching dan sorting
14.2 Relevansi Mata Kuliah dengan Dunia Kerja dan Mata Kuliah Lain
Mata kuliah ini merupakan prasyarat mata kuliah berbasis pemrograman seperti pemrograman 1,
pemrograman 2, teknologi informasi 2, teknologi informasi 3
14.3 Tujuan Pembelajaran Umum
Setelah membaca bab ini, mahasiswa dapat diharapkan mampu memecahkan masalah
menggunakan algoritma
14.4 Tujuan Pembelajaran Khusus
Setelah mengikuti pokok bahasan ini mahasiswa dapat mencontohkan penyelesaian kasus
menggunakan algoritma pengurutan
14.5 Petunjuk Penggunaan
Bacalah uraian materi dengan seksama, kemudian jawablah pertanyaan-pertanyaan yang
disajikan pada sub bab latihan. Saudara dapat mencocokkan jawaban yang telah saudara buat
dengan kunci jawaban pada sub bab penutup
14.6 Uraian Materi
Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau
susunan tertentu [WIR76]. Misalnya ada larik L, dengan elemen-elemen berikut :
3 7 4 2 1
Maka setelah diurutkan secara menaik (ascending) akan menjadi
1 2 3 4 7
Atau bila diurutkan secara menurun (descending) akan menjadi
7 4 3 2 1
Hal yang diurutkan tidak selalu harus angka, namun bisa berupa string, seperti :
Dila
Coki
Rini

Rina
Aditia
Yang apabila diurutkan secara leksikografi (seperti dalam kamus) menjadi
Aditia
Coki
Dila
Rina
Rini
Metode bubble sort, merupakan metode tersederhana untuk melakukan pengurutan data,
tetapi memiliki kinerja yang terburuk untuk data yang besar. Pengurutan dilakukan dengan
membandingkan sebuah bilangan dengan seluruh bilangan yang terletak sesudah bilangan
tersebut. Penukaran dilakukan kalau suatu kriteria dipenuhi.

Sebagai contoh, terdapat kumpulan seperti berikut.
25 57 48 37 12 92 80 33
Contoh proses pengurutan dengan urut naik ditunjukkan pada gambar berikut

25 57 48 37 12 92 80 33
25 57
Tidak terjadi
Penukaran
Terjadi
Penukaran
Terjadi
Penukaran
48 57
37 57
12 57
57 92
80 92
33 92
Terjadi
Penukaran
Tidak terjadi
Penukaran
Terjadi
Penukaran
Terjadi
Penukaran

Gambar 14.1 Pengurutan tahap pertama



25 48 37 12 57 80 33 92
Tidak terjadi
Penukaran
Terjadi
Penukaran
Terjadi
Penukaran
37 48
12 48
48 57
57 80
33 80
Tidak terjadi
Penukaran
Tidak terjadi
Penukaran
Terjadi
Penukaran
25 48
Hasil pengurutan tahap kedua
23 37 12 48 57 33 80 92


Gambar 14.2 Pengurutan tahap kedua

Jika jumlah data adalah n, maka terjadi n-1 tahap pengurutan. Berarti pada contoh di di
atas diperlukan 7 tahap pengurutan. Gambar 14.3 memperlihatkan setelah 7 tahap pengurutan
dilakukan.

Awal
Tahap 1
Tahap 2
Tahap 3
Tahap 4
Tahap 5
Tahap 6
Tahap 7
25 57 48 37 12 92 80 33
25 48 37 12 57 80 33 92
25 37 12 48 57 33 80 92
25 12 37 48 33 57 80 92
12 25 37 33 48 57 80 92
12 25 33 37 48 57 80 92
12 25 33 37 48 57 80 92
12 25 33 37 48 57 80 92


Gambar 14.3 Keadaan untuk setiap tahap pengurutan

Metode Pengurutan Seleksi
Pengurutan seleksi (selection sort) mempunyai mekanisme seperti berikut : Mula-mula
suatu penunjuk (diberi nama posAwal), yang menunjuk ke lokasi awal pengurutan data, diatur
agar berisi indeks pertama dalam larik. Selanjutnya dicari bilangan terkecil yang terletak antara
posisi sesudah yang ditunjuk oleh petunjuk tersebut hingga elemen yang terakhir dalam larik.
Lokasi bilangan ini ditunjuk oleh posMin. Lalu tukarkan nilai bilangan terkecil tersebut dengan
nilai yang ditunjuk posAwal. Proses seperti itu diulang dari posAwal bernilai 0 hingga n-2,
dengan n menyatakan jumlah elemen dalam larik.

26
27
25
35
65
posAwal
posMin
Tukarkan
26
27
67
35
25
posAwal
posMin
Tukarkan
35
27
67
26
25
posAwal
posMin
Tukarkan
35
67
27
26
25
posAwal
posMin
Tukarkan
Hasil Akhir : 25 26 27 67 35
(a) (b)
(c) (d)


Gambar 14.4 Contoh Pengurutan Seleksi

Pengurutan dengan Penyisipan
Pengurutan dengan penyisipan (insertion sort) adalah suatu metode yang melakukan
pengurutan dengan cara menyisipkan data yang belum urut ke dalam bagian data yang telah
diurutkan. Konsep ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu baru
didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh pemain pada
posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu tetap terurutkan.

Metode Quick Sort
Quick Sort adalah metode pengurutan data yang dikemukan pertama kali oleh C.AR Hoare
pada tahun 1962. Metode ini menggunakan strategi pecah-pecah dengan mekanisme seperti
berikut : Larik L[p..r] (dengan indeks terkecil adalah p dan indeks terbesar yaitu r) disusun ulang
(dipartisi) menjadi dua buah larik A[p..q] dan A[q+1..r] sehingga setiap elemen dalam
A[q+1..r]. Selanjutnya kedua larik tersebut diurutkan secara rekursif. Dengan sendirinya
kombinasi kedua larik tersebut membentuk larik dengan data yang telah urut.



14.7 Latihan
Buatlah algoritma pengurutan buble sort

13.8 Rangkuman
1) Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau
susunan tertentu [WIR76]
2) Metode bubble sort, merupakan metode tersederhana untuk melakukan pengurutan data,
tetapi memiliki kinerja yang terburuk untuk data yang besar. Pengurutan dilakukan
dengan membandingkan sebuah bilangan dengan seluruh bilangan yang terletak sesudah
bilangan tersebut. Penukaran dilakukan kalau suatu kriteria dipenuhi
3) Pengurutan seleksi (selection sort) mempunyai mekanisme seperti berikut : Mula-mula
suatu penunjuk (diberi nama posAwal), yang menunjuk ke lokasi awal pengurutan data,
diatur agar berisi indeks pertama dalam larik. Selanjutnya dicari bilangan terkecil yang
terletak antara posisi sesudah yang ditunjuk oleh petunjuk tersebut hingga elemen yang
terakhir dalam larik. Lokasi bilangan ini ditunjuk oleh posMin. Lalu tukarkan nilai
bilangan terkecil tersebut dengan nilai yang ditunjuk posAwal. Proses seperti itu diulang
dari posAwal bernilai 0 hingga n-2, dengan n menyatakan jumlah elemen dalam larik.
4) Pengurutan dengan penyisipan (insertion sort) adalah suatu metode yang melakukan
pengurutan dengan cara menyisipkan data yang belum urut ke dalam bagian data yang
telah diurutkan. Konsep ini biasa dilakukan pada permainan kartu. Ketika sebuah kartu
baru didapatkan (hasil pembagian dari pengocokan kartu) kartu akan disisipkan oleh

pemain pada posisi yang tepat sehingga penambahan kartu tersebut membuat semua kartu
tetap terurutkan
5) Quick Sort adalah metode pengurutan data yang dikemukan pertama kali oleh C.AR
Hoare pada tahun 1962. Metode ini menggunakan strategi pecah-pecah dengan
mekanisme seperti berikut : Larik L[p..r] (dengan indeks terkecil adalah p dan indeks
terbesar yaitu r) disusun ulang (dipartisi) menjadi dua buah larik A[p..q] dan A[q+1..r]
sehingga setiap elemen dalam A[q+1..r]. Selanjutnya kedua larik tersebut diurutkan
secara rekursif. Dengan sendirinya kombinasi kedua larik tersebut membentuk larik
dengan data yang telah urut.

14.9 Penutup
Kunci Jawaban

Algoritma pengurutan bubble sort :

Procedure BubbleSort1 (input/output L:LarikInt, input n :
integer)
{mengurutkan larik L[1..n] sehingga terurut menaik dengan metode
pengurutan apung/buble sort}
{K.awal : Elemen larik L sudah terdefinisi nilainya}
{K.akhir : Elemen Larik L terurut menaik sedemikian sehingga
L[1]L[2]L[n]

DEKLARASI
I : integer {pencacah untuk jumlah langkah}
K : integer {pencacah untuk pengapungan pada setiap
langkah}
Temp: integer {peubah bantu untuk pertukaran}


ALGORITMA

For i1 to n-1 do
For kn downto i+1 do
if (L[k] L[k-1] then

{pertukaran L[k] dengan L[k-1]

temp L[k]

L[k] L[k-1]
L[k-1] temp

endif
endfor
endfor

Anda mungkin juga menyukai