OPTIMIZED TITLES FOR ALGORITHM AND DATA STRUCTURE DOCUMENT
1. Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Struktur Data dan Algoritma
Algoritma Pengurutan
2014
CEP - CCIT
Fakultas Teknik Universitas Indonesia
2. Outline
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Beberapa algoritma untuk melakukan sorting:
– Bubble sort
– Selection sort
– Insertion sort
– Shell sort
– Merge sort
– Quick sort
• Untuk masing-masing algoritma:
– Ide dasar
– Contoh eksekusi
– Algoritma
3. Outline
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Sorting = pengurutan
• Sorted = terurut menurut kaidah/aturan tertentu
• Data pada umumnya disajikan dalam bentuk sorted.
• Contoh:
– Nama di buku telpon
– Kata-kata dalam kamus
– File-file di dalam sebuah directory
– Indeks sebuah buku
– Data mutasi rekening tabungan
– CD di toko musik
• Bayangkan jika data di atas tidak terurut!
4. Bubble Sort : Ide Dasar
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Bubble = busa/udara dalam air – apa yang terjadi?
– Busa dalam air akan naik ke atas. Mengapa?
– Ketika busa naik ke atas, maka air yang di atasnya akan turun
memenuhi tempat bekas busa tersebut.
o Pada setiap iterasi, bandingkan elemen dengan sebelahnya:
yang busa naik, yang air turun!
5. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Untuk memahami penerapan dari algoritma Bubble Sort, maka kita akan
membuat array yang sudah terisi dengan angka yang belum terurut.
arr
210 43
2 6 75 3
6. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
• Untuk mensortir array dengan algoritma bubble sort, kita harus
membuat perulangan sejumlah isi dari array yang ingin diurutkan.
• Setiap loopingnya, akan kita beri nama “Pass”
– Pass = 1
– n = 5
arr
210 43
2 6 75 3
7. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Bandingkan isi dari array yang ada pada index 0 dengan index 1
o Bandingkan sebanyak n - x
arr
210 43
2 6 75 3
Bandingkan sebanyak n - pass
8. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Tukar nilainya apabila index 0 lebih besar daripada index 1
(yang nilainya paling besar, akan menuju ke index berikutnya)
arr
210 43
6 75 3
Swap
22 5
Bandingkan sebanyak n - pass
9. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Bandingkan index ke 1 dengan index ke 2 dan tukar nilainya
apabila index 1 lebih besar dari index ke 2
arr
210 43
6 7 32 5
No Change
Bandingkan sebanyak n - pass
10. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Bandingkan index ke 2 dengan index ke 3 dan tukar nilainya
apabila index 2 lebih besar dari index ke 3
No Change
arr
210 43
6 7 32 5
Bandingkan sebanyak n - pass
11. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Bandingkan index ke 3 dengan index ke 4 dan tukar nilainya
apabila index 3 lebih besar dari index ke 4
Swap
arr
210 43
6 7 32 5 3 7
Bandingkan sebanyak n - pass
12. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 1
– n = 5
o Bandingkan index ke 3 dengan index ke 4 dan tukar nilainya
apabila index 3 lebih besar dari index ke 4
Largest element is placed at its correct position after Pass 1
arr
210 43
6 3 72 5
Bandingkan sebanyak n - pass
13. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 2
– n = 5
o Bandingkan index ke 0 dengan index ke 1 dan tukar nilainya
apabila index 0 lebih besar dari index ke 1
No Change
arr
210 43
6 3 72 5
Bandingkan sebanyak n - pass
14. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 2
– n = 5
o Bandingkan index ke 1 dengan index ke 2 dan tukar nilainya
apabila index 1 lebih besar dari index ke 2
No Change
arr
210 43
6 3 72 5
Bandingkan sebanyak n - pass
15. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 2
– n = 5
o Bandingkan index ke 2 dengan index ke 3 dan tukar nilainya
apabila index 2 lebih besar dari index ke 3
Swap
arr
210 43
6 3 72 5 3 6
Bandingkan sebanyak n - pass
16. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 2
– n = 5
o Bandingkan index ke 2 dengan index ke 3 dan tukar nilainya
apabila index 2 lebih besar dari index ke 3
Second largest element is placed at its correct position after Pass 2
arr
210 43
3 6 72 5
Bandingkan sebanyak n - pass
17. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 3
– n = 5
o Bandingkan index ke 0 dengan index ke 1 dan tukar nilainya
apabila index 0 lebih besar dari index ke 1
No Change
arr
210 43
3 6 72 5
Bandingkan sebanyak n - pass
18. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 3
– n = 5
o Bandingkan index ke 1 dengan index ke 2 dan tukar nilainya
apabila index 1 lebih besar dari index ke 2
arr
210 43
3 6 72 53 5
Bandingkan sebanyak n - pass
19. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 3
– n = 5
o Bandingkan index ke 1 dengan index ke 2 dan tukar nilainya
apabila index 1 lebih besar dari index ke 2
Third largest element is placed at its correct position after Pass 3
arr
210 43
5 6 72 3
Bandingkan sebanyak n - pass
20. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 4
– n = 5
o Bandingkan index ke 0 dengan index ke 1 dan tukar nilainya
apabila index 2 lebih besar dari index ke 1
No Change
arr
210 43
5 6 72 3
Bandingkan sebanyak n - pass
21. Bubble Sort : Contoh
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
– Pass = 4
– n = 5
o Pada akhirnya, setiap nilai pada array telah terurut dengan
benar.
arr
210 43
5 6 72 3
Bandingkan sebanyak n - pass
22. Bubble Sort : Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
1. deklarasi var pass dan masukkan nilai 1
2. ulangi selama pass < jumlah size array
a. deklarasi var i = 0
b. ulangi aa dan bb selama i < jumlah size array - pass
aa. cek apakah array[i] > array[i + 1]
jika ya : tukar tempatnya.
bb. tambahkan 1 untuk nilai i
c. tambahkan 1 untuk nilai pass
o Dengan memahami langkah-langkah sortir dengan menggunakan
Bubble Sort, maka kita bisa membuat algoritma untuk Bubble Sort
sebagai berikut :
23. Bubble Sort : C# Code
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Algoritma Bubblesort
1. deklarasi var pass dan masukkan nilai 1
2. ulangi selama pass < jumlah size array
a. deklarasi var i = 0
b. ulangi aa dan bb selama i < jumlah size array - pass
aa. cek apakah array[i] > array[i + 1]
jika ya : tukar tempatnya.
bb. tambahkan 1 untuk nilai i
c. tambahkan 1 untuk nilai pass
Implementasi algoritma dengan
menggunakan while loop.
24. Bubble Sort : C# Code
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Algoritma Bubblesort
1. deklarasi var pass dan masukkan nilai 1
2. ulangi selama pass < jumlah size array
a. deklarasi var i = 0
b. ulangi aa dan bb selama i < jumlah size array - pass
aa. cek apakah array[i] > array[i + 1]
jika ya : tukar tempatnya.
bb. tambahkan 1 untuk nilai i
c. tambahkan 1 untuk nilai pass
Implementasi algoritma dengan
menggunakan for loop.
25. Bubble Sort : C# Code
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Bandingkan kode berikut:
26. Selection Sort : Ide Dasar
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Kondisi awal:
– Unsorted list = data
o Ambil yang terbaik (select) dari unsorted list, tambahkan di
belakang sorted list.
o Lakukan terus sampai unsorted list habis.
o Terbaik (Bisa yang paling kecil, atau yang paling besar)
30. Selection Sort : Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
1. deklarasi i = 0
2. ulangi selama i < max index array
a. deklarasi index min = i
b. deklarasi j = i + 1
c. ulangi selama j < jumlah ukuran array
aa. cek apakah array[j] lebih kecil dari array[min]
jika ya, update min = j
bb. tambahkan 1 untuk nilai j
d. tukar posisi min dengan i
e. tambahkan 1 untuk nilai i
Untuk algoritma diatas, nilai terbaik adalah nilai terkecil.
Dengan catatan:
31. Selection Sort : Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Algoritma Selection Sort
1. deklarasi i = 0
2. ulangi selama i < max index array
a. deklarasi index min = i
b. deklarasi j = i + 1
c. ulangi selama j < jumlah ukuran array
aa. cek apakah array[j] lebih kecil dari array[min]
jika ya, update min = j
bb. tambahkan 1 untuk nilai j
d. tukar posisi min dengan i
e. tambahkan 1 untuk nilai i
32. Insertion Sort : Ide Dasar
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
o Kondisi awal:
– Unsorted list = data
o Ambil sembarang elemen dari unsorted list, sisipkan
(insert) pada posisi yang benar dalam sorted list.
o Lakukan terus sampai unsorted list habis.
o Bayangkan anda mengurutkan kartu.
37. Insertion Sort : Algoritma
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
1. set i = 1
2. ulangi selama i < jumlah array
a. temp = array[i]
b. int j = i
c. ulangi selama j < 0 dan temp < array[j-1]
aa. array[j] = array[j-1]
bb. j--
d. array[j] = temp
e. i++
o Dengan memahami langkah-langkah sortir dengan menggunakan
Insertion Sort, maka kita bisa membuat algoritma untuk Insertion Sort
sebagai berikut :
38. Insertion Sort : C# Code
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
1. set i = 1
2. ulangi selama i < jumlah array
a. temp = array[i]
b. int j = i
c. ulangi selama j > 0 dan temp < array[j-1]
aa. array[j] = array[j-1]
bb. j--
d. array[j] = temp
e. i++
Algoritma :
39. Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Terima Kasih
Dudy Fathan Ali S.Kom
dudy.fathan@eng.ui.ac.id