Lompat ke konten Lompat ke sidebar Lompat ke footer

Pengurutan (Sorting)

 

Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.

Biasanya pengurutan terbagi menjadi dua yaitu :

  • ascending (pengurutan dari karakter/angka kecil ke karakter/angka besar).
  • descending (pengurutan dari karakter/angka besar ke karakter/angka kecil).



Metode Pengurutan

  • Metode Penukaran (Exchange Selection) / Gelembung (Bubble Sort)
  • Metode Seleksi (Straight Selection Sort)
  • Metode Penyisipan Langsung (Straight Intersection Sort)




Metode Pengurutan tidak langsung:

  • Shell Sort
  • Quick Sort
  • Merge Sort



Contoh dalam bahasa C

Bubble Sort mengurutkan data array berisi 30 nilai acak


/* Bubble Sort */
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>


void bubble_sort(int array[], int size)
{
int temp, i, j;
for (i=0; i < size-1; i++)
for (j=0; j< size-1-i; j++)
if (array[j] . array [j+1])
{
temp=array[j];
array[j] = array [j+1];
array[j+1] = temp;
}
}



Metode Pengurutan Langsung

  • Metode Penukaran (Exchange Selection) / Gelembung (Bubble Sort)
  • Metode Pertama yang paling banyak dipelajari pemrogram Sederhana
  • Bubble sort tidak efisien dan menyita banyak waktu prosessor lebih banyak dari pada teknik sorting yang lain
  • tidak lebih dari 30 atau kurang dari 30 elemen, penggunaan bubble sort masih sangat baik
  • metode gelembung/penukaran adalah metode yang mendasarkan penukaran 2 buah elemen untuk mencapai keadaan urut yang diinginkan




Algoritma Gelembung

  • Baca Array elemen yang diurutkan (N)
  • Kerjakan langkah 3 untuk I=1 sampai dengan N-1
  • Kerjakan langkah 4 untuk J=1 sampai dengan N-1
  • Cek apakah A[J] > A [J+1]
  • Selesai




Metode Penyisipan Langsung (Straight Intersection Sort)

  • Dapat dibagi menjadi 2 bagian
  • Bagian sebelah kiri data sudah terurut (tujuan)
  • Bagian kanan data belum terurut (sumber)




Algoritma Penyisipan Langsung

  • Baca array elemen yang akan diurutkan (n)
  • Kerjakan langkah 3 sampai langkah 6 untuk i:1 sampai dengan n-1
  • Tentukan elemen yang akan disisipkan (Temp=A[i]; j=j-1;)
  • Kerjakan langkah 5 selama temp < A [j] dan j>=0;
  • A[j+1] = A[j]; j = j-1;
  • Tempatkan elemen A[j+1] = Temp;
  • Selesai




Algoritma Straight Insertion Sort


Deklarasi
I, J, K, N ; Integer
Temp : real
A: array[1..20] of real


Deskripsi

Input(N) {maksimal N=20}
K traversal[1..N]
Input(Af) {masukkan data sebanyak N}
I tranversal [2..N]
Temp <- A1
J <- I-1


While (temp<Aj) dan (J>=1) do

Aj+1 <- Aj
J <- J-1
Endwhile


Aj+1 <- Temp



Metode Seleksi (Straight Selection Sort)

Selection sort dimulai dengan menyelesaikan elemen array (misalnya elemen pertama). Kemudian sorting mencari keseluruhan array hingga menemukan nilai yang terkecil. Sorting menempatkan nilai terkecil pada elemen tersebut, memilih elemen kedua dan mencari elemen terkecil kedua.



Algoritma Straight Selection Sort

  • Baca array elemen yang diurutkan (n)
  • Kerjakan langkah-langkah 3 sampai langkah 5 untuk i=1 sampai dengan n-1
  • Tentukan lokasi awal data terkecil Mindeks =1; kerjakan langkah 4 untuk j=i+1 sampai dengan n
  • Cari data terkecil dan catat lokasinya. Test apakah AMindeks > Aj?, jika ya catat Mindeks=j
  • Tukarkan nilai AMindeks dengan Aj
  • Selesai