SORTING
Pengertian sorting
Sorting atau mengurutkan data merupakan proses untuk menyusun
urutan data entah itu dari data yang terkecil hingga yang terbesar atau
sebaliknya dari yang terkecil menuju yang terbesar.
13
|
4
|
70
|
20
|
=
4
|
13
|
20
|
70
|
Bias diurutkan
dari yang terbesar ke kecil atau sebaliknya
13
|
4
|
70
|
20
|
=
70
|
20
|
13
|
4
|
Metode - metode dalam Sorting
1.1. buble Sort
Metode ini mudah untuk difahami namum prosesnya sangat lambat karena dia
harus membandingkan 2 nilai yang bersandingan (adjacent), lalu dia akan menukar
jika angka disebelahnya lebih kecil (diurutkan dari kecil ke besar) dan begitu
seterusnya hingga semua data terurut.
Buble sort ini menggunakan looping dan mempunyai fase { n-1} kali
dimana n merupakan jumlah banyaknya data
contoh latihan soal :
dimana n merupakan jumlah banyaknya data
contoh latihan soal :
Urutkan
menggunakan metode buble sort
100
|
20
|
7
|
50
|
2
|
33
|
Jawab:
- Selection
Sort
Selection
Sort membandingkan elemen yang pertama dengan elemen yang berikutnya sampai
dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari
elemen sekarang, maka posisi elemen tersebut akan dicatat atau diingat
posisinya untuk kemudian ditukar.
10
|
4
|
70
|
20
|
·
Ambil data dari awal lalu bandingkan dengan
data sisanya. jadi pada kasus diatas bandingkan data yang bernilai 10 dengan
data yng bernilai 4, 70, dan 20
10 > 4
10 < 70
10 < 20
10 > 4
10 < 70
10 < 20
·
Dari perbandingan yang telah dilakukan, ambil data
yang terkecil setelah itu lakukan pertukaran dengan data yang telah dijadikan
pembanding
10
|
4
|
70
|
20
|
=
4
|
10
|
70
|
20
|
·
Setelah membandingkan data awal dan menukarnya
dengan data yang terkecil, lakukan lagi perbandingan dimulai dari data yang ke
dua. Jadi bandingkan 10 dengan data yang bernilai 70,20. Sedangkan data yang
bernilai 4 tidak perlu, karena data tersebut sudah dieksekusi pada awal proses
tadi.
4
|
10
|
70
|
20
|
=
4
|
10
|
70
|
20
|
Tidak ada
perubahan karena pada saat dibandingkan angka 10 dengan 70 lebih besar 70
·
Bandingkan data selanjutnya dengan data sisanya.
Jadi bandingkan 70 dengan 20 dan lakukan perbandingan yang manakah data yang
terkecil dan lakukan pertukaran.
4
|
10
|
70
|
20
|
=
4
|
10
|
20
|
70
|
·
Karena semua data telah terurut maka proses telah
selesai.
3.
Insertion
Sort
Insertion Sort atau yang biasa disebut dengan metode penyisipan
merupakan algoritma yang efisien untuk mengurutkan angka yang dimana input berisikan
deretan angka yang berjumlah n buah, dan output berisikan permutasi/ pengurutan
sejumlah n angka dari input yang sudah terurut secara ascending( kecil ke
terbesar) maupun discending ( besar ke terkecil).
1.
Metode ini bertujuan untuk menjadikan bagian kiri
array terurutkan sampai dengan seluruh array. Metode ini mengurutkan bilangan-
bilangan yang belum terbaca ke sisi array yang telah terurut
Contoh :
Urutkan menggunakan insetion sort
22
|
10
|
15
|
3
|
8
|
2
|
Jawab:
·
Bandingkan data yang pertama dengan data yang
kedua, lalu tukar data ke 2 dengan syarat data pertama lebih besar dari data ke
2, jika tidak memenuhi syarat maka tidak perlu melakukan pertukaran. Karena 22
> 10 maka pindahkan data ke 2 ke posisi data 1.
22
|
10
|
15
|
3
|
8
|
2
|
=
10
|
22
|
15
|
3
|
8
|
2
|
·
Selanjutnya kita perlu menyisipkan data ke tiga
(15) kedalam bagian posisi antara data awal(10) dan data kedua (22). Caranya
adalah ambil data yang ke tiga (15), geser data ke dua (22) agar ada tempat
untuk menyisipkan data ke tiga, sisipkan data ke tiga ketempat yang benar
10
|
22
|
15
|
3
|
8
|
2
|
=
10
|
15
|
22
|
3
|
8
|
2
|
·
Ulangi langkah ke 2 tapi dengan data yang belum
diproses hingga data terurut. Setelah data yang ke tiga diproses, lakukan
pemrosesan pada data ke 4 (3) bandingkan pada data yang sebelumnya lalu
sisipkan ke tempat yang benar.
10
|
15
|
22
|
3
|
8
|
2
|
=
3
|
10
|
15
|
22
|
8
|
2
|
·
lakukan hal yang sama seperti langkah sebelumnya
pada data ke 5 (8)
3
|
10
|
15
|
22
|
8
|
2
|
=
3
|
8
|
10
|
15
|
22
|
2
|
Tidak dibandingkan dengan data ke 1
(3) karena angka 8 > 3
·
Sekarang tinggal langkah terakhir, tinggal kita
bandingkan data terakhir dengan semua data yang ada pada data sebelumnya
3
|
8
|
10
|
15
|
22
|
2
|
=
2
|
3
|
8
|
10
|
15
|
22
|
Selesai
untuk lebih jelasnya saya beri koding di bawah ini
<!DOCTYPE html>
<html>
<head>
<title>sorting</title>
<script language="javascript">
var data = new Array;
var i = 0;
function TambahData() {
for(var i = 0 ; i < 20 ; i++)
{
data[i] = Math.floor(Math.random()*(100-1))+1;
document.getElementById("txtHitung").innerHTML += data[i]+",";
}
}
function TampilData(teks)
{
for(var a = 0; a <data.length; a++)
{
document.getElementById(teks).innerHTML += data[a]+",";
}
document.getElementById(teks).innerHTML +="<br>";
}
function InsertSort()
{
var temp;
var upper = data.length;
for(var i = 0 ; i < data.length; i++)
{
for(var j = i - 1; j > -1 && data[j] >= data[j + 1]; j--)
{
var temp = data[i];
var j = i - 1;
while(j >= 0 && data[j] > temp)
{
data[j + 1] = data[j];
j--;
}
data[j + 1] = temp;
}
TampilData("lblSorting");
}
}
</script>
</head>
<body>
<h1> praktikum 2 | sorting</h1>
<form>
<p> <label id="txtHitung"></label>
<input type="button" value="Data Random" onclick="TambahData()"></p>
<p>
<input type="button" value="Tampil Data" onclick="TampilData('lblData')">
<label>Data Awal :</label>
<label id="lblData"></label><br/>
</p>
<p>
<label>Proses Sorting :</label>
<input type="button" value="Proses Sorting" onclick="InsertSort()"><br/>
<label id="lblSorting"></label><br/>
</p>
</form>
</body>
</html>
Semoga ilmu
ini bermanfaat meskipun mungkin bagi kebanyakan orangbilmu yang saya berikan
kurang mudah untuk difahami, untuk itu saya menyarankan untuk komen.
terimakasih
Komentar
Posting Komentar