Minggu, 02 Januari 2011

SELECTION SORTING

 


Sorting/pengurutan adalah teknik atau cara untuk mengurutkan suatu deretan data. Teknik atau algoritma untuk melakukan pengurutan, sesungguhnya ada beberapa, salah satunya: Selection Sort. Selection Sort salah satu algoritma pengurutan yang mudah untuk dipelajari.
Konsep dasarnya yaitu : “Melakukan pencarian data terkecil/terbesar pada suatu iterasi. Kemudian data tersebut ditukar dengan data[index]. index=iterasi. Jumlah iterasi ditentukan oleh banyaknya data atau ‘N’. Iterasi=N-1.”
Sebagai contoh penggunaan algoritma selection sort, kita gunakan PHP, sebagai berikut :

<html>
<head><title>$ Sorting Algorithm $</title></head>
<body>
<h2>Algoritma Selection Sort</h2>
<font size=4>
<?PHP
//data awal
$data[0]=5; $data[3]=7;
$data[1]=2; $data[4]=6;
$data[2]=4; $data[5]=3;
echo"<b>Jumlah Data : 6</b><br>";
echo"<b>Data Awal : </b>";
//menampilkan data awal
for($i=0;$i<=5;$i++)
{
echo"$data[$i] ";
}
echo"<br><br>";
//——–Algoritma Selection Sort
for($j=0;$j<=5-1;$j++)
{
$BilMin=$data[$j];
for($k=$j+1;$k<=5;$k++)
{
if($data[$k]<$BilMin)
{
$BilMin=$data[$k];
$Posisi=$k;
}
//Algo Tukar…
$Temp=$data[$j];
$data[$j]=$data[$Posisi];
$data[$Posisi]=$Temp;
}
//menampilkan data tiap Iterasi
$NoIte=$j+1;
echo"Iterasi ke-$NoIte : ";
for($i=0;$i<=5;$i++)
{
echo"$data[$i] ";
}
echo"<br>";
//——-
}
?>
</font>
</body>
</html>
Hasil dari source code diatas sebagai berikut :

select-5

BUBBLE SORTING

Bubble sort merupakan salah satu jenis sorting. Bubble sort ada metode sorting termudah. Diberikan nama “bubble” karena konsep dari algoritmanya diibaratkan seperti gelembung air untuk elemen struktur data yang seharusnya pada posisi awal. Bubble sort mengurut data dengan cara membandingkan elemen sekarang dengan elemen berikutnya. Dimana cara kerjanya adalah dengan berulang-ulang melakukan proses looping ( perulangan) terhadap elemen-elemen struktur data yang belum diurutkan. Nilai dari masing-masing elemen akan dibandingkan selama proses looping tersebut .jika selama proses looping tersebut ditemukan ada urutannya tidak sesuai dengan permintaan, maka akan dilakukan proses pemukaran (swap). Sesungguhnya secara tidak langsung, algoritma dari program ini seolah-olah menggeser satu demi satu elemen dari kanan ke kiri atau dari kiri ke kanan tergantung pada jenis pengurutannya. Perlu diketahui, jenis pengurutan sorting ada 2 yaitu asscending dan descending. Dimana asscending itu mengurut data dari kecil ke besar dan descending itu mengurut data dari besar ke kecil. Jika semua elemen sudah diperiksa oleh fungsi bubble sort, dan tidak ada pertukaran lagi atau semua nilai sudah sesuai, maka saat itu program bubble sort akan berhenti bekerja. Misalkan jika ada data 22 10 15 3 8 2. Data tersebut masih dalam keadaan acak. Maka ilustrasi pengurutan dengan bubble sortnya akan terlihat seperti pada table dibawah ini :
LANGKAH 1 :

1
2
3
4
5
6
POSISI DATA
22
10
15
3
8
2
Data Awal
22
10
15
3
2
8
tukar data 5 dengan 6
22
10
15
2
3
8
tukar data 4 dengan 3
22
10
2
15
3
8
tukar data 3 dengan 2
22
2
10
15
3
8
tukar data 2 dengan 1
2
22
10
15
3
8
LANGKAH 1 SELESAI

LANGKAH 2 :

1
2
3
4
5
6
POSISI DATA
2
22
10
15
3
8
Data Langkah 1 Akhir
2
22
10
3
15
8
tukar data 4 dengan 3
2
22
3
10
15
8
tukar data 3 dengan 2
2
3
22
10
15
8
LANGKAH 2 SELESAI

LANGKAH 3 :

1
2
3
4
5
6
POSISI DATA
2
3
22
10
15
8
Data Langkah 2 Akhir
2
3
22
10
8
15
tukar data 5 dengan 6
2
3
22
8
10
15
tukar data 4 dengan 3
2
3
8
22
10
15
LANGKAH 3 SELESAI

LANGKAH 4 :

1
2
3
4
5
6
POSISI DATA
2
3
8
22
10
15
Data Langkah 3 Akhir
2
3
8
22
10
15
tukar data 5 dengan 4
2
3
8
10
22
15
LANGKAH 4 SELESAI

LANGKAH 5 :

1
2
3
4
5
6
POSISI DATA
2
3
8
10
22
15
Tukar data 5 dengan 6
2
3
8
10
15
22
TERURUT


CATATAN :
Sebelum dilakukan Proses penukaran data pada penjelasan tabel diatas, terlebih dahulu didahului oleh proses perbandingan. dimana perbandingan datanya tergantung pada jenis sort nya, pada penjelasan tabel diatas, saya menggunakan pengurutan data secara accending. sehingga, perbandinganya menjadi jika data n > data n+1 maka ditukar, selama tidak memenuhi statemen itu, maka data tidak akan ditukar.

Algoritma dari bubble sort


   Prosedur pertukaran data


Procedure tukar (var a,b:word);
Var c:word;
Begin
        c:=a;
        a:=b;
        b:=c;
End;


prosedur bubble sort dengan jenis sort accending


Procedure asending_Buble(var data:array; jmldata:integer);
Var I,j:integer;
Begin
        for i:=2 to jmldata do
        for j:=jmldata downto I do
        if data[j]< data{j-1] then
        tukardata(data[j], data[j-1])
End;


Prosedur Bubble sort secara descending


Procedure decending_Buble(var data:array; jmldata:integer);
Var I,j:integer;
Begin
for i:=2 to jmldata do
for j:=jmldata downto I do
if data[j] >data{j-1] then
tukardata(data[j], data[j-1])
End;