Anda di halaman 1dari 22

PENGURUTAN

DATA (SORTING)
AHMAD HUSAEIN, M.KOM
TUJUAN

1. Menunjukkan beberapa algoritma dalam Pengurutan


2. Menunjukkan bahwa pengurutan merupakan suatu persoalan yang bisa diselesaikan dengan
sejumlah algoritma yang berbeda satu sama lain
3. Dapat memilih algoritma yang paling sesuai untuk menyelesaikan suatu permasalahan
pemrograman
DEFINISI

• Pengurutan data (sorting) didefinisikan sebagai suatu proses untuk menyusun kembali
humpunan obyek menggunakan aturan tertentu.

• Menurut Microsoft Book-shelf, definisi algoritma pengurutan adalah algoritma untuk


meletakkan kumpulan elemen data ke dalam urutan tertentu berdasarkan satu atau beberapa
kunci dalam tiap-tiap elemen.
• Ada dua macam urutan yang biasa digunakan dalam proses pengurutan yaitu
– urut naik (ascending) yaitu dari data yang mempunyai nilai paling kecil sampai paling besar
– urut turun (descending) yaitu data yang mempunyai nilai paling besar sampai paling kecil.

• Contoh :
– Data bilangan 5, 2, 6 dan 4 dapat diurutkan menjadi
• naik  2, 4, 5, 6
• turun  6, 5, 4, 2.
KEUNTUNGAN DARI DATA YANG SUDAH
DALAM KEADAAN TERURUTKAN
• Data mudah dicari (misalnya dalam buku telepon atau kamus bahasa), mudah untuk dibetulkan,
dihapus, disisipi atau digabungkan. Dalam keadaan terurutkan, kita mudah melakukan
pengeekan apakah ada data yang hilang
• Melakukan komppilasi program komputer jika tabel-tabel simbol harus dibentuk
• Mempercepat proses pencarian data yang harus dilakukan berulang kali.
METODE PENGURUTAN DATA

• Untuk melakukan proses pengurutan tersebut dapat digunakan berbagai macam cara / metoda.
Beberapa metoda diantaranya

– Buble / Exchange Sort


– Selection Sort
– Insertion Sort
– Quick Sort
METODE GELEMBUNG ( BUBBLE SORT )

• Metode gelembung (bubble sort) sering juga disebut dengan metode penukaran (exchange sort)
adalah metode yang mengurutkan data dengan cara membandingkan masing-masing elemen,
kemudian melakukan penukaran bila perlu.

• Metode ini mudah dipahami dan diprogram, tetapi bila dibandingkan dengan metode lain yang
kita pelajari, metode ini merupakan metode yang paling tidak efisien.
KELEBIHAN BUBBLE SORT

• Metode Buble Sort merupakan metode yang paling simpel


• Metode Buble Sort mudah dipahami algoritma-nya
KELEMAHAN BUBBLE SORT

• Meskipun simpel metode Bubble sort merupakan metode


pengurutanyang paling tidak efisien.

• Kelemahan buble sort adalah pada saat mengurutkan data yang


sangat besar akan mengalami kelambatan luar biasa, atau dengan
kata lain kinerja memburuk cukup signifikan ketika data yang
diolah jika data cukup banyak.
• Kelemahan lain adalah jumlah pengulangan akan tetap sama jumlahnya walaupun data
sesungguhnya sudah cukup terurut. Hal ini disebabkan setiap data dibandingkan dengan setiap
data yang lain untuk menentukan posisinya.
class Program
{
static void UrutkanDenganBubbleSort(int[] dataArray)
{

Console.WriteLine("========== DATA YANG BELUM TERURUT ===============");

for (int i = 0; i < dataArray.Length; i++)


{
Console.WriteLine(dataArray[i]);
}

for (int i = dataArray.Length - 1; i > 0; i--)


{
for (int j = 0; j <= i - 1; j++)
{
if (dataArray[j] > dataArray[j + 1])
{
int tmp = dataArray[j];

dataArray[j] = dataArray[j + 1];


dataArray[j + 1] = tmp;
}
}
}
Console.WriteLine("== DATA SETELAH DIURUTKAN DENGAN BUBBLESORT ==");
for (int i = 0; i < dataArray.Length; i++)
{
Console.WriteLine(dataArray[i]);
}

static void Main(string[] args)


{
int[] arr = new int[10] { 20, 10, 7, 15, 8, 7, 18, 17, 15, 9 };
UrutkanDenganBubbleSort(arr);
Console.ReadKey();
}
}
METODE SELECTION SORT

• Selection Sort merupakan salah satu algoritma pengurutan yang sederhana.

• Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen
struktur data.
• Untuk sorting ascending (menaik), elemen yang paling kecil di
antara elemen-elemen yang belum urut, disimpan indeksnya,
kemudian dilakukan pertukaran nilai elemen dengan indeks yang
disimpan tersebut dengan elemen yang paling depan yang belum
urut.

• Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan
indeksnya kemudian ditukar.
• Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus
daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai
berikut:
– Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
– Menukarkan nilai ini dengan elemen pertama list
– Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua
– Secara efisien kita membagi list menjadi dua bagian yaitu
• bagian yang sudah diurutkan,
• bagian list yang elemennya akan diurutkan.
class Program
{
static void selectSort(int[] arr)
{
int pos_min, temp;

for (int i = 0; i < arr.Length - 1; i++)


{
pos_min = i;

for (int j = i + 1; j < arr.Length; j++)


{
if (arr[j] < arr[pos_min])
{
pos_min = j;
}
}

if (pos_min != i)
{
temp = arr[i];
arr[i] = arr[pos_min];
arr[pos_min] = temp;
}

}
Console.WriteLine("==========Hasil Pengurutan===============");

for (int k = 0; k < arr.Length; k++)


{

Console.WriteLine(arr[k]);

}
static void Main(string[] args)
{
int[] data=new int[10] {15,8,20,10,17,13,6,5,11,19};
selectSort(data);
Console.ReadKey();
}
}
TERIMA K ASIH

Anda mungkin juga menyukai