Algorithm & Data Structure - Algoritma Pengurutan

Preview:

Citation preview

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Struktur Data dan AlgoritmaAlgoritma Pengurutan

2014

CEP - CCITFakultas Teknik Universitas Indonesia

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

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!

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!

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 432 6 75 3

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 432 6 75 3

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 1o Bandingkan sebanyak n - x

arr

210 432 6 75 3

Bandingkan sebanyak n - pass

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 436 75 3

Swap

22 5

Bandingkan sebanyak n - pass

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 436 7 32 5

No Change

Bandingkan sebanyak n - pass

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 436 7 32 5

Bandingkan sebanyak n - pass

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 436 7 32 5 3 7

Bandingkan sebanyak n - pass

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 436 3 72 5

Bandingkan sebanyak n - pass

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 436 3 72 5

Bandingkan sebanyak n - pass

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 436 3 72 5

Bandingkan sebanyak n - pass

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 436 3 72 5 3 6

Bandingkan sebanyak n - pass

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 433 6 72 5

Bandingkan sebanyak n - pass

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 433 6 72 5

Bandingkan sebanyak n - pass

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 433 6 72 53 5

Bandingkan sebanyak n - pass

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

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

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

Bubble Sort : Algoritma

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1. deklarasi var pass dan masukkan nilai 12. 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 :

Bubble Sort : C# Code

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Algoritma Bubblesort

1. deklarasi var pass dan masukkan nilai 12. 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.

Bubble Sort : C# Code

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Algoritma Bubblesort

1. deklarasi var pass dan masukkan nilai 12. 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.

Bubble Sort : C# Code

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Bandingkan kode berikut:

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)

Selection Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

4240 2 1 3 3 4 0 -1 655843

40 2 1 43 3 4 0 -1 42 65583

40 2 1 43 3 4 0 -1 58 3 6542

40 2 1 43 3 65 0 -1 58 3 42 4

Selection Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

4240 2 1 3 3 4 0 655843-1

42-1 2 1 3 3 4 0 65584340

42-1 2 1 3 3 4 655843400

42-1 2 1 0 3 4 655843403

Selection Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1

42-1 2 1 3 4 6558434030

42-1 0 3 4 6558434032

1 42-1 0 3 4 6558434032

1 420 3 4 6558434032-1

1 420 3 4 6558434032-1

Selection Sort : Algoritma

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1. deklarasi i = 02. 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:

Selection Sort : Algoritma

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Algoritma Selection Sort

1. deklarasi i = 02. 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

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.

Insertion Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

40 2 1 43 3 65 0 -1 58 3 42 4

2 40 1 43 3 65 0 -1 58 3 42 4

1 2 40 43 3 65 0 -1 58 3 42 4

40

Insertion Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1 2 3 40 43 65 0 -1 58 3 42 4

1 2 40 43 3 65 0 -1 58 3 42 4

1 2 3 40 43 65 0 -1 58 3 42 4

Insertion Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1 2 3 40 43 65 0 -1 58 3 42 4

1 2 3 40 43 650 -1 58 3 42 4

1 2 3 40 43 650 58 3 42 41 2 3 40 43 650-1

Insertion Sort : Contoh

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1 2 3 40 43 650 58 3 42 41 2 3 40 43 650-1

1 2 3 40 43 650 58 42 41 2 3 3 43 650-1 5840 43 65

1 2 3 40 43 650 42 41 2 3 3 43 650-1 5840 43 65

1 2 3 40 43 650 421 2 3 3 43 650-1 584 43 6542 5840 43 65

Insertion Sort : Algoritma

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1. set i = 12. 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 :

Insertion Sort : C# Code

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

1. set i = 12. 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 :

Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom

Terima KasihDudy Fathan Ali S.Kom

dudy.fathan@eng.ui.ac.id

Recommended