SORTING
Hallo
semua, selamat datang di blog Anevery, perkenalkan nama saya Hadiyan. Oke
Langsung aja.. Disini saya akan membahas mengenai sorting(pengurutan) data
dalam algoritma.
Sorting,
apa sih sorting di dalam algoritma itu? Dalam Ilmu Komputer, Algoritma
Sorting itu merupakan
algoritma yang menempatkan elemen list pada urutan tertentu. Sorting yang
efisien sangat dibutuhkan untuk mengoptimisasi penggunaan dari algoritma lain
seperti pada algoritma searching(pencarian)
dan penggabungan yang membutuhkan list terurut untuk berjalan dengan
sempurna.
Lebih
sederhananya, Sorting adalah proses menyusun data dari data yang acak
menjadi tersusun, baik disusun secara Ascending(Menaik)
maupun secara Descending(menurun).
Data yang akan di urutkan bisa berupa data yang bertipe dasar atau bisa juga data yang bertipe terstruktur(record). Jika datanya bertipe terstruktur maka harus dispesifikasikan berdasarkan field apa data tersebut akan diurutkan. Field yang dijadikan dasar pengurutan dikenal sebagai field kunci(key field).
Adanya
kebutuhan terhadap proses sorting
memunculkan bermacam-macam algoritma sorting.
Berikut ini beberapa algoritma sorting(pengurutan)
yang sering ditemukan di litelatur-litelatur komputer, yaitu :
- Bubble Sort
- Selection Sort(Maximum & Minimum Sort)
- Insertion Sort
- Heap Sort
- Shell Sort
- Quick Sort
- Merge Sort
- Radix Sort
- Tree Sort
Saya akan membahas beberapa dari algoritma sorting di atas, diantaranya yaitu Bubble Sort, Selection Sort, dan Insertion sort. Berikut penjelasan singkat dari saya.
Bubble Sort
Algoritma
pengurutan menggunakan metode bubble sort ini diinspirasi oleh gelembung sabun
yang ada di atas permukaan air. Karena berat jenis gelembung sabun lebih ringan
daripada berat air, maka gelembung sabun akan terapung ke atas permukaan. Secara
umum, benda-benda yang berat akan terbenam dan benda-benda yang ringan aka
terapung ke atas permukaan.
Proses
pengapungan dilakukan sebanyak n – 1 langkah,
dimana n adalah ukuran larik/jumlah larik. Pada setiap langkah, akan ada larik
yang diisolasi, artinya larik tersebut telah terurut sementara yang belum
terurut akan dibandingkan kembali di tahap berikutnya.
Berikut
ini contoh bentuk umum dari bubble
sort secara ascending dalam bahasa
pascal:
Procedure
BubbleSort(angka
: Array of Integer; jumlah : Integer);
Var
i,
j, temp : Integer;
Begin
For
i := 1 To jumlah-1
do
Begin
For j := jumlah
downto
i+1 do
Begin
If
(angka[j]
< angka[j-1]) Then
Begin
temp := angka[j];
angka[j]
:= angka[j-1];
angka[j-1]
:= temp;
End;
End;
End;
End.
Selection
Sort
Algoritma
ini dinamakan Selection search karena gagasan dasarnya adalah memilih elemen
maksimum/minimum dari larik, lalu menempatkannya pada awal atau akhir dari
larik(elemen terujung). Selanjutnya elemen terujung akan di isolasi dan tidak
disertakan pada proses selanjutnya. Sama seperti pada bubble sort, memilih
elemen maximum/minimum dilakukan setiap tahap. Jika ukuran larik adalah n, maka
akan ada n-1 tahap.
Ada dua varian dari selection sort
yaitu, maximum sort dan minimum sort, yaitu:
Memilih data yang maksimum dari sekumpulan data larik, lalu
menempatkan data tersebut ke elemen paling akhir atau paling awal sesuai
pengurutan yang diinginkan. Data maksimum yang diperoleh akan diisolasi dan tidak
diikutsertakan pada proses pencarian data maksimum berikutnya.
Memilih data yang minimum dari sekumpulan data larik, lalu menempatkan data tersebut ke elemen
paling akhir atau paling awal sesuai pengurutan yang diinginkan. Data minimum
yang diperoleh akan diisolasi dan tidak diikutsertakan pada proses pencarian
data minimum berikutnya.
Berikut ini contoh bentuk umum dari Maximum selection sort secara ascending
dalam bahasa pascal:
Procedure
MaxSort_Asc(angka : Array
of Integer; jumlah
: Integer);
Var
i,
j, temp,max,x
: Integer;
Begin
x := jumlah;
For
i := 1 To jumlah-1
do
Begin
max := 1;
For j := 2
to
x do
Begin
If
(angka[j]
> angka[max]) Then
Begin
max:=j;
End;
End;
temp := angka[max];
angka[max] := angka[j];
angka[j] := temp;
x:=x-1;
End;
End.
Ada
juga contoh bentuk umum dari Minimum
selection sort secara ascending dalam bahasa pascal:
Procedure
MinSort_Asc(angka : Array
of Integer; jumlah
: Integer);
Var
i,
j, temp,min,x
: Integer;
Begin
For
i := 1 To (jumlah-1)
do
Begin
min := i;
For j := i+1
to
N do
Begin
If
(angka[j]
< angka[min]) Then
Begin
min:=j;
End;
End;
temp := angka[min];
angka[min] := angka[i];
angka[i] := temp;
End;
End.
Insertion Sort
Insertion sort adalah metode pengurutan dengan cara menyisipkan elemen
larik pada posisi yang tepat. Cara kerja algoritma ini adalah dengan mengambil elemen dari list
tersebut satu-per-satu dan memasukkannya di posisi yang benar.
Elemen
pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan
sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini
dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian
array yang belum diurutkan.
Metode ini cocok untuk
persoalan menyisipkan elemen baru kedalam sekumpulan elemen yang sudah terurut.
Berikut ini contoh bentuk umum dari Insertion
sort secara ascending dalam bahasa pascal:
Procedure InsertionSort(
angka : Array of Integer;
jumlah : Integer);
Var
i, j, index : Integer;
Begin
For i := 2 to
jumlah-1 do
Begin
index :=
angka[i];
j := i;
While ((j > 1) AND (
angka[j-1] > index)) do
Begin
angka[j] :=
angka[j-1];
j := j - 1;
End;
angka[j] := index;
End;
End.
Sekian dulu dari saya, terimakasih telah membaca, maaf bila masih banyak kekurangan atau ada salah-salah kata.
Sumber:
Rinaldi Munir. 2011. Algoritma & Pemrograman Dalam Bahasa Pascal dan C. Bandung: INFORMATIKA.
Tati Harihayati. 2015. Modul Mata Kuliah Algoritma dan Pemrograman : Sorting (Power Point).
Tidak ada komentar:
Posting Komentar