SlideShare uma empresa Scribd logo
1 de 39
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Struktur Data dan Algoritma
Algoritma Pengurutan
2014
CEP - CCIT
Fakultas 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 43
2 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 43
2 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 1
o Bandingkan sebanyak n - x
arr
210 43
2 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 43
6 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 43
6 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 43
6 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 43
6 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 43
6 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 43
6 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 43
6 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 43
6 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 43
3 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 43
3 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 43
3 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 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 :
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.
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.
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 = 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:
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
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 = 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 :
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 :
Algorithm and Data Structure (C#) Dudy Fathan Ali S.Kom
Terima Kasih
Dudy Fathan Ali S.Kom
dudy.fathan@eng.ui.ac.id

Mais conteúdo relacionado

Mais procurados

Individual differences
Individual differencesIndividual differences
Individual differences
Alfonsus Sam
 
Math Puzzle_Soal-Soal Logika Sederhana
Math Puzzle_Soal-Soal Logika SederhanaMath Puzzle_Soal-Soal Logika Sederhana
Math Puzzle_Soal-Soal Logika Sederhana
peni dewantara
 
Uji Normalitas dan Homogenitas ppt-
Uji Normalitas dan Homogenitas ppt-Uji Normalitas dan Homogenitas ppt-
Uji Normalitas dan Homogenitas ppt-
Aisyah Turidho
 
contoh ujian Microsoft powerpoint 2007
contoh ujian Microsoft powerpoint 2007contoh ujian Microsoft powerpoint 2007
contoh ujian Microsoft powerpoint 2007
Hanung Permana
 
Pembuktian Sifat – Sifat Operasi Matriks
Pembuktian Sifat – Sifat Operasi MatriksPembuktian Sifat – Sifat Operasi Matriks
Pembuktian Sifat – Sifat Operasi Matriks
Ipit Sabrina
 
Arti Lambang Koperasi Baru
Arti Lambang Koperasi BaruArti Lambang Koperasi Baru
Arti Lambang Koperasi Baru
anditaeka
 

Mais procurados (20)

Individual differences
Individual differencesIndividual differences
Individual differences
 
Persamaan Diferensial Biasa (PDB) Orde 1
Persamaan Diferensial Biasa (PDB) Orde 1Persamaan Diferensial Biasa (PDB) Orde 1
Persamaan Diferensial Biasa (PDB) Orde 1
 
Instal sistem operasi open source menggunakan virtual box
Instal sistem operasi open source menggunakan virtual boxInstal sistem operasi open source menggunakan virtual box
Instal sistem operasi open source menggunakan virtual box
 
Proposisi Logika Matematika
Proposisi Logika MatematikaProposisi Logika Matematika
Proposisi Logika Matematika
 
Aliran essensialisme
Aliran  essensialismeAliran  essensialisme
Aliran essensialisme
 
Determinan es
Determinan esDeterminan es
Determinan es
 
aljabar linier elementer 1
aljabar linier elementer 1aljabar linier elementer 1
aljabar linier elementer 1
 
Slide Share Sosiologi pendidikan Kelompok 1: Pengertian dan Ruang Lingkup Sos...
Slide Share Sosiologi pendidikan Kelompok 1: Pengertian dan Ruang Lingkup Sos...Slide Share Sosiologi pendidikan Kelompok 1: Pengertian dan Ruang Lingkup Sos...
Slide Share Sosiologi pendidikan Kelompok 1: Pengertian dan Ruang Lingkup Sos...
 
ABDUKSI & DEDUKSI
ABDUKSI & DEDUKSIABDUKSI & DEDUKSI
ABDUKSI & DEDUKSI
 
Math Puzzle_Soal-Soal Logika Sederhana
Math Puzzle_Soal-Soal Logika SederhanaMath Puzzle_Soal-Soal Logika Sederhana
Math Puzzle_Soal-Soal Logika Sederhana
 
Makalah Distribusi Probabilitas Diskrit.docx
Makalah Distribusi Probabilitas Diskrit.docxMakalah Distribusi Probabilitas Diskrit.docx
Makalah Distribusi Probabilitas Diskrit.docx
 
Uji Normalitas dan Homogenitas ppt-
Uji Normalitas dan Homogenitas ppt-Uji Normalitas dan Homogenitas ppt-
Uji Normalitas dan Homogenitas ppt-
 
ukuran pemusatan dan penyebaran
ukuran pemusatan dan penyebaranukuran pemusatan dan penyebaran
ukuran pemusatan dan penyebaran
 
Feminisme
FeminismeFeminisme
Feminisme
 
contoh ujian Microsoft powerpoint 2007
contoh ujian Microsoft powerpoint 2007contoh ujian Microsoft powerpoint 2007
contoh ujian Microsoft powerpoint 2007
 
Kaidah matematika-dalam-operasi-himpunan
Kaidah matematika-dalam-operasi-himpunanKaidah matematika-dalam-operasi-himpunan
Kaidah matematika-dalam-operasi-himpunan
 
Pembuktian Sifat – Sifat Operasi Matriks
Pembuktian Sifat – Sifat Operasi MatriksPembuktian Sifat – Sifat Operasi Matriks
Pembuktian Sifat – Sifat Operasi Matriks
 
3.pl simpleks
3.pl simpleks3.pl simpleks
3.pl simpleks
 
Rancangan faktorial
Rancangan faktorialRancangan faktorial
Rancangan faktorial
 
Arti Lambang Koperasi Baru
Arti Lambang Koperasi BaruArti Lambang Koperasi Baru
Arti Lambang Koperasi Baru
 

Destaque

Notasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression treeNotasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression tree
Acomic Comic
 
Lecture 1 data structures and algorithms
Lecture 1 data structures and algorithmsLecture 1 data structures and algorithms
Lecture 1 data structures and algorithms
Aakash deep Singhal
 
Data structures (introduction)
 Data structures (introduction) Data structures (introduction)
Data structures (introduction)
Arvind Devaraj
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
Dhaval Kaneria
 
Steganography basic
Steganography basicSteganography basic
Steganography basic
Sanoj Kumar
 

Destaque (20)

Notasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression treeNotasi prefix infix-postifx- expression tree
Notasi prefix infix-postifx- expression tree
 
Micro teaching konsep logika algoritma
Micro teaching konsep logika algoritmaMicro teaching konsep logika algoritma
Micro teaching konsep logika algoritma
 
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiAlgoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
 
Lecture 1 data structures and algorithms
Lecture 1 data structures and algorithmsLecture 1 data structures and algorithms
Lecture 1 data structures and algorithms
 
Analisis algoritma
Analisis algoritmaAnalisis algoritma
Analisis algoritma
 
Dasar dasar algoritma - 2
Dasar dasar algoritma - 2Dasar dasar algoritma - 2
Dasar dasar algoritma - 2
 
Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02Matematika Diskrit - 11 kompleksitas algoritma - 02
Matematika Diskrit - 11 kompleksitas algoritma - 02
 
Tipe Data, Variabel dan Konstanta
Tipe Data, Variabel dan KonstantaTipe Data, Variabel dan Konstanta
Tipe Data, Variabel dan Konstanta
 
Mengintip Kompleksitas
Mengintip KompleksitasMengintip Kompleksitas
Mengintip Kompleksitas
 
Data structures (introduction)
 Data structures (introduction) Data structures (introduction)
Data structures (introduction)
 
Introduction to data structures and Algorithm
Introduction to data structures and AlgorithmIntroduction to data structures and Algorithm
Introduction to data structures and Algorithm
 
Data Structure
Data StructureData Structure
Data Structure
 
DATA STRUCTURES
DATA STRUCTURESDATA STRUCTURES
DATA STRUCTURES
 
Excel chapter 05
Excel chapter 05Excel chapter 05
Excel chapter 05
 
Steganography and its techniques
Steganography and its techniquesSteganography and its techniques
Steganography and its techniques
 
Algoritma dan Matematika_tif305_reg-sns
Algoritma dan Matematika_tif305_reg-snsAlgoritma dan Matematika_tif305_reg-sns
Algoritma dan Matematika_tif305_reg-sns
 
Steganography basic
Steganography basicSteganography basic
Steganography basic
 
Dasar dasar algoritma - 1
Dasar dasar algoritma - 1Dasar dasar algoritma - 1
Dasar dasar algoritma - 1
 
Algoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection SortAlgoritma dan Struktur Data - Selection Sort
Algoritma dan Struktur Data - Selection Sort
 
GameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemakerGameMaker 1) intro to gamemaker
GameMaker 1) intro to gamemaker
 

Semelhante a Algorithm & Data Structure - Algoritma Pengurutan

Algorithm & Data Structure - Pengantar
Algorithm & Data Structure - PengantarAlgorithm & Data Structure - Pengantar
Algorithm & Data Structure - Pengantar
Dudy Ali
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
Wandi Parlente
 
Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1
Damun Setiaji
 

Semelhante a Algorithm & Data Structure - Algoritma Pengurutan (20)

Algorithm & Data Structure - Pengantar
Algorithm & Data Structure - PengantarAlgorithm & Data Structure - Pengantar
Algorithm & Data Structure - Pengantar
 
modul algoritma Bab 1
modul algoritma Bab 1modul algoritma Bab 1
modul algoritma Bab 1
 
Modul algoritma dan struktur data i
Modul algoritma dan struktur data iModul algoritma dan struktur data i
Modul algoritma dan struktur data i
 
Tipe-Data Dalam C++ Programming-language
Tipe-Data Dalam C++ Programming-languageTipe-Data Dalam C++ Programming-language
Tipe-Data Dalam C++ Programming-language
 
Logika algoritma
Logika algoritmaLogika algoritma
Logika algoritma
 
tugas algoritma
tugas algoritmatugas algoritma
tugas algoritma
 
Instalasi Dev-C++
Instalasi Dev-C++Instalasi Dev-C++
Instalasi Dev-C++
 
11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian11 12 -pengurutan dan-pencarian
11 12 -pengurutan dan-pencarian
 
Tugas Algoritma
Tugas AlgoritmaTugas Algoritma
Tugas Algoritma
 
File
FileFile
File
 
Pertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IFPertemuan 4 - Struktur Kondisi IF
Pertemuan 4 - Struktur Kondisi IF
 
Bilanganbulat dan pecahan
Bilanganbulat dan pecahanBilanganbulat dan pecahan
Bilanganbulat dan pecahan
 
sns alpro-I_ithb
sns alpro-I_ithbsns alpro-I_ithb
sns alpro-I_ithb
 
Makalah Algoritma DAA 1
Makalah Algoritma DAA 1Makalah Algoritma DAA 1
Makalah Algoritma DAA 1
 
Bulat ajar
Bulat ajarBulat ajar
Bulat ajar
 
OOP - Decision: If & If..Else
OOP - Decision: If & If..ElseOOP - Decision: If & If..Else
OOP - Decision: If & If..Else
 
Introduction to-basic language-programming
Introduction to-basic language-programmingIntroduction to-basic language-programming
Introduction to-basic language-programming
 
Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1Pembahasan ujian teori pemrograman pascal bagian 1
Pembahasan ujian teori pemrograman pascal bagian 1
 
Rangkuman soal TI SMK
Rangkuman soal TI SMKRangkuman soal TI SMK
Rangkuman soal TI SMK
 
Array satu dimensi vita kumalajati_0320110017
Array satu dimensi vita kumalajati_0320110017Array satu dimensi vita kumalajati_0320110017
Array satu dimensi vita kumalajati_0320110017
 

Mais de Dudy Ali

Object Oriented Programming - Inheritance
Object Oriented Programming - InheritanceObject Oriented Programming - Inheritance
Object Oriented Programming - Inheritance
Dudy Ali
 
Object Oriented Programming - File Input & Output
Object Oriented Programming - File Input & OutputObject Oriented Programming - File Input & Output
Object Oriented Programming - File Input & Output
Dudy Ali
 
Web Programming Syaria - PHP
Web Programming Syaria - PHPWeb Programming Syaria - PHP
Web Programming Syaria - PHP
Dudy Ali
 

Mais de Dudy Ali (20)

Understanding COM+
Understanding COM+Understanding COM+
Understanding COM+
 
Distributed Application Development (Introduction)
Distributed Application Development (Introduction)Distributed Application Development (Introduction)
Distributed Application Development (Introduction)
 
Java CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server DatabaseJava CRUD Mechanism with SQL Server Database
Java CRUD Mechanism with SQL Server Database
 
Network Socket Programming with JAVA
Network Socket Programming with JAVANetwork Socket Programming with JAVA
Network Socket Programming with JAVA
 
Review Materi ASP.NET
Review Materi ASP.NETReview Materi ASP.NET
Review Materi ASP.NET
 
XML Schema Part 2
XML Schema Part 2XML Schema Part 2
XML Schema Part 2
 
XML Schema Part 1
XML Schema Part 1XML Schema Part 1
XML Schema Part 1
 
Rendering XML Document
Rendering XML DocumentRendering XML Document
Rendering XML Document
 
Pengantar XML
Pengantar XMLPengantar XML
Pengantar XML
 
Pengantar XML DOM
Pengantar XML DOMPengantar XML DOM
Pengantar XML DOM
 
Pengantar ADO.NET
Pengantar ADO.NETPengantar ADO.NET
Pengantar ADO.NET
 
Database Connectivity with JDBC
Database Connectivity with JDBCDatabase Connectivity with JDBC
Database Connectivity with JDBC
 
XML - Displaying Data ith XSLT
XML - Displaying Data ith XSLTXML - Displaying Data ith XSLT
XML - Displaying Data ith XSLT
 
Object Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference TypesObject Oriented Programming - Value Types & Reference Types
Object Oriented Programming - Value Types & Reference Types
 
Object Oriented Programming - Inheritance
Object Oriented Programming - InheritanceObject Oriented Programming - Inheritance
Object Oriented Programming - Inheritance
 
Object Oriented Programming - File Input & Output
Object Oriented Programming - File Input & OutputObject Oriented Programming - File Input & Output
Object Oriented Programming - File Input & Output
 
Object Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & DestructorsObject Oriented Programming - Constructors & Destructors
Object Oriented Programming - Constructors & Destructors
 
Object Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & EncapsulationObject Oriented Programming - Abstraction & Encapsulation
Object Oriented Programming - Abstraction & Encapsulation
 
Web Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman WebWeb Programming Syaria - Pengenalan Halaman Web
Web Programming Syaria - Pengenalan Halaman Web
 
Web Programming Syaria - PHP
Web Programming Syaria - PHPWeb Programming Syaria - PHP
Web Programming Syaria - PHP
 

Algorithm & Data Structure - Algoritma Pengurutan

  • 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)
  • 27. 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
  • 28. 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
  • 29. 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
  • 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.
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 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