Metode Pengurutan (Sorting) - E

advertisement
Metode Pengurutan
(Sorting)
Algoritma dan Struktur Data
Pendahuluan
• Di dalam konsep Algoritma dan Struktur Data,
dikenal istilah pengurutan (sorting).
• Sorting merupakan suatu metode untuk
mengurutkan sekumpulan data secara ascending
atau descending.
• Kenapa harus belajar algoritma pengurutan?
o Karena dalam pembuatan program komputer, adakalanya kita harus
melakukan pengurutan data, misalnya menampilkan nama mahasiswa
secara berurutan berdasarkan NIM.
Algoritma Pengurutan
• Ada banyak macam Algoritma Pengurutan, di
antaranya:
1.
2.
3.
4.
5.
6.
Bubble Sort
Selection Sort
Insertion Sort
Merge Sort
Quick Sort
Heap Sort
Bubble Sort
• Bubble Sort merupakan jenis algoritma pengurutan
yang paling sederhana.
• Cara kerja dari algoritma ini adalah
membandingkan elemen yang sekarang dengan
eleman berikutnya. Jika elemen yang sekarang >
elemen berikutnya, maka tukar nilai kedua elemen.
Contoh Bubble Sort ascending:
6
4
64
18
081
580
85
0
1
2
3
4
5
Selesai untuk tahap ke-1
Angka 8 akan berhenti pada indeks ke-5 (terakhir)
Contoh Bubble Sort ascending:
4
16
061
560
65
8
0
1
2
3
4
5
Selesai untuk tahap ke-2
Angka 8 akan berhenti pada indeks ke-4
Contoh Bubble Sort ascending:
Begitu seterusnya, hingga semua terurut dari kecil ke
besar.
Tahap ke-1
4
6
1
0
5
8
Tahap ke-2
4
1
0
5
6
8
Tahap ke-3
1
0
4
5
6
8
Tahap ke-4
0
1
4
5
6
8
Tahap ke-5
0
1
4
5
6
8
Tahap ke-6
0
1
4
5
6
8
Algoritma Bubble Sorting
(ascending)
for (i=0; i<=max-2; i++)
{
for (j=i+1; j<=max-1; j++)
{
if (deret[i] > deret[j])
{
temp = deret[i];
deret[i] = deret[j];
deret[j] = temp;
}
}
}
Selection Sort
• Selection Sort adalah mekanisme pengurutan yang
dilakukan dengan membandingkan elemen yang
sekarang dengan elemen berikutnya sampai
dengan elemen yang terakhir. Jika ditemukan
eleman lain yang nilainya lebih kecil dari elemen
sekarang, maka dicatat posisi/ indeksnya, lalu
ditukar kemudian.
Algoritma Selection Sort
(ascending)
for (i=0; i<=max-2; i++)
{
idxTerkecil = i;
for (j=i+1; j<=max-1; j++)
{
if (deret[idxTerkecil] > deret[j])
{
idxTerkecil = j;
}
}
//setelah didapatkan nilai terkecil, maka tukar
dengan nilai ke-i
temp = deret[i];
deret[i] = deret[idxTerkecil];
deret[idxTerkecil] = temp;
}
Download