Anda di halaman 1dari 29

SORTING

(PENGURUTAN DATA)
9
KHOI R U NURFI TRI , S . K O M . , M . KO M
FAKULTAS T E K N I K
UNI VERSI TAS MUH AMM A DI Y A H P O NO RO GO

Mata Kuliah Struktur Data


CAPAIAN
PEMBELAJARAN
1. Mahasiswa mengetahui konsep
Algoritma Sorting
2. Mahasiswa Dapat mengetahui
Macam-macam Algoritma Sorting
3. Mahasiswa Dapat Mengetahui
Penerapan Sorting dalam bahasa
pemrograman
MATERI
1. Definisi Sorting
2. Jenis-Jenis Sorting
3. Algoritma Sorting
4. Implementasi Sorting Dalam C++
Definisi
Algoritma yang meletakan elemen-
Algoritma
elemen didalam daftar berdasarkan
Pengurutan
tingkat prioritasnya.

Sorting Tujuan
Algorithm Untuk mempercepat pencarian dan
kerapian susunan data itu sendiri.
Ascending Descending
Data Acak : 5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1
JENIS
SORTING

01 BUBBLE SORT

02 SELECTION SORT

03 INSERTION SORT
BUBBLE SORT
Algoritma pengurutan yang
membandingkan setiap
data berdekatan dan jika
urutan tidak sesuai maka
dilakukan pertukaran
posisi.
ALGORITMA BUBBLE SORT
1. Bandingkan nilai pada data ke satu dengan
data ke dua
2. Apabila nilai data ke satu lebih besar dari
data ke dua maka tukar posisinya
3. Kemudian data yang lebih besar tersebut
dibandingkan lagi dengan data ketiga
4. Apabila data ke tiga lebih kecil dari data ke
dua maka tukar posisinya
5. Dan begitu seterusnya hingga semua data
yang ada menjadi terurut
ALGORITMA BUBBLE SORT

5, 34, 32, 25, 75, 42, 22, 2


Langkah ke 1 : Langkah ke 1 :
5 > 34 ? TIDAK (tetap) = 5, 34 5,34,32,25,75,42,22,2
34 > 32 ? YA (tukar) = 32, 34 5,32,34,25,75,42,22,2
34 > 25 ? YA (tukar) = 25, 34 5,32,25,34,75,42,22,2
34 > 75 ? TIDAK (tetap) = 34, 75 5,32,25,34,75,42,22,2
75 > 42 ? YA (tukar) = 42, 75 5,32,25,34,42,75,22,2
75 > 22 ? YA (tukar) = 22, 75 5,32,25,34,42,22,75,2
75 > 2 ? YA (tukar) = 2, 75 5,32,25,34,42,22,2,75
Hasil :
5, 32, 25, 34, 42, 22, 2, 75
ALGORITMA BUBBLE SORT

Hasil Langkah 1: Hasil Langkah 2:


5, 32, 25, 34, 42, 22, 2, 75 5, 25, 32, 34, 22, 2, 42, 75
Langkah ke 2: Langkah ke 3 :
5, 32, 25, 34, 42, 22, 2, 75 5, 25, 32, 34, 22, 2, 42, 75
5, 25, 32, 34, 42, 22, 2, 75 5, 25, 32, 34, 22, 2, 42, 75
5, 25, 32, 34, 42, 22, 2, 75 5, 25, 32, 34, 22, 2, 42, 75
5, 25, 32, 34, 42, 22, 2, 75 5, 25, 32, 22, 34, 2, 42, 75
5, 25, 32, 34, 22, 42, 2, 75 5, 25, 32, 22, 2, 34, 42, 75
5, 25, 32, 34, 22, 2, 42, 75 5, 25, 32, 22, 2, 34, 42, 75
5, 25, 32, 34, 22, 2, 42, 75 5, 25, 32, 22, 2, 34, 42, 75
Hasil : Hasil :
5, 25, 32, 34, 22, 2, 42, 75 5, 25, 32, 22, 2, 34, 42, 75
ALGORITMA BUBBLE SORT

Hasil Langkah 3: Hasil Langkah 4:


5, 25, 32, 22, 2, 34, 42, 75 5, 25, 22, 2, 32, 34, 42, 75
Langkah ke 4: Langkah ke 5 :
5, 25, 32, 22, 2, 34, 42, 75 5, 25, 22, 2, 32, 34, 42, 75
5, 25, 32, 22, 2, 34, 42, 75 5, 22, 25, 2, 32, 34, 42, 75
5, 25, 22, 32, 2, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
5, 25, 22, 2, 32, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
5, 25, 22, 2, 32, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
5, 25, 22, 2, 32, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
5, 25, 22, 2, 32, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
Hasil : Hasil :
5, 25, 22, 2, 32, 34, 42, 75 5, 22, 2, 25, 32, 34, 42, 75
ALGORITMA BUBBLE SORT

Hasil Langkah 5: Hasil Langkah 6:


5, 22, 2, 25, 32, 34, 42, 75 5, 2, 22, 25, 32, 34, 42, 75
Langkah ke 6: Langkah ke 7 :
5, 22, 2, 25, 32, 34, 42, 75 5, 2, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
Hasil : Hasil :
5, 2, 22, 25, 32, 34, 42, 75 2, 5, 22, 25, 32, 34, 42, 75
SELECTION SORT
Suatu metode pengurutan yang
membandingkan elemen
sekarang dengan elemen
berikutnya sampai ke elemen
yang terakhir.Jika ditemukan
elemen lain yang lebih kecil
dari elemen sekarang maka
dicatat posisinya dan langsung
ditukar.
ALGORITMA
SELECTION SORT

1. Memulai pengecekan data dari data ke 1


hingga data ke n.
2. Menentukan bilangan dengan index terkecil
dari data pada bilangan tersebut.
3. Menukar bilangan index terkecil dengan
bilangan pertama.
4. Begitu seterusnya hingga data berhasil
diurutkan semuanya
ALGORITMA SELECTION SORT

5, 34, 32, 25, 75, 42, 22, 2


Hasil:
Langkah 1: 5, 34, 32, 25, 75, 42, 22, 2
Langkah 2: 2, 34, 32, 25, 75, 42, 22, 5
Langkah 3: 2, 5, 32, 25, 75, 42, 22, 34
Langkah 4: 2, 5, 22, 25, 75, 42, 32, 34
Langkah 5: 2, 5, 22, 25, 75, 42, 32, 34
Langkah 6: 2, 5, 22, 25, 32, 42, 75, 34
Langkah 7: 2, 5, 22, 25, 32, 34, 75, 42
Langkah 8: 2, 5, 22, 25, 32, 34, 42, 75
INSERTION SORT
Metode Insertion Sort mirip
dengan cara mengurutkan kartu,
kartu diambil selembar demi
selembar dan disisipkan (insert)
pada posisi seharusnya.Data akan
dibandingkan dengan posisi
sebelumnya dan disisipkan pada
posisi yang sesuai.Pada proses
penyisipan data, maka data-data
yang lain akan bergeser ke
belakang (kanan).
ALGORITMA
INSERTION SORT
1. Membandingkan data kedua dengan data kesatu
2. Apabila data ke dua lebih kecil maka tukar posisinya
3. Data ketiga dibandingkan dengan data kesatu dan kedua
4. Apabila data ketiga lebih kecil tukar lagi posisinya
5. Data keempat dibandingkan dengan data ketiga hingga
kesatu
6. Apabila data keempat lebih kecil dari ketiga maka
letakkan data keempat ke posisi paling depan
7. Begitu seterusnya hingga tidak ada lagi data yang dapat
dipindahkan.
Langkah >>
Langkah 1: 5, 34, 32, 25, 75, 42, 22, 2

Langkah 2: 5, 34, 32, 25, 75, 42, 22, 2


ALGORITMA
INSERTION SORT Langkah 3: 5, 32, 34, 25, 75, 42, 22, 2

5, 34, 32, 25, 75, 42, 22, 2 Langkah 4: 5, 25, 32, 34, 75, 42, 22, 2
Langkah 5 : 5, 25, 32, 34, 75, 42, 22, 2
Langkah 6 : 5, 25, 32, 34, 42, 75, 22, 2

Langkah 7 : 5, 22, 25, 32, 34, 42, 75, 2

Langkah 8 :2, 5, 22, 25, 32, 34, 42, 75,


Contoh FLowchart

Main Program
Contoh FLowchart

Function
Bubble Sort
Contoh FLowchart

Function
Selection Sort
Contoh FLowchart

Function
Insertion Sort
Contoh FLowchart

Function
Baca Array
Contoh FLowchart

Function
Cetak Array
Contoh Program
Bubble Sort
cout<<endl;
#include<iostream> for(i = 0; i<5; i++) {
using namespace std; for(j = i+1; j<5; j++)
int main () {
{ if(a[j] < a[i]) {
int i, j,temp; temp = a[i];
int a[5] = {10,2,0,43,12}; a[i] = a[j];
cout <<"Input list ...\n"; a[j] = temp;
for(i = 0; i<5; i++) { }
cout <<a[i]<<"\t"; }
}
}
cout <<"Sorted Element List ...\n";
for(i = 0; i<5; i++) {
cout <<a[i]<<"\t";
}
return 0;
}
Contoh Program
Selection Sort cout<<"\n Sorted list of elements is\n";
for(int i=0;i<5;i++)
#include<iostream> {
using namespace std; cout<<myarray[i]<<"\t";
}
int findSmallest (int[],int); return 0;
int main () }
{ int findSmallest(int myarray[],int i)
int myarray[5] = {12,45,8,15,33}; {
int pos,temp; int ele_small,position,j;
cout<<"\n Input list of elements to be Sorted\n"; ele_small = myarray[i];
for(int i=0;i<5;i++) position = i;
{ for(j=i+1;j<5;j++)
cout<<myarray[i]<<"\t"; {
} if(myarray[j]<ele_small)
for(int i=0;i<5;i++) {
{ ele_small = myarray[j];
pos = findSmallest (myarray,i); position=j;
temp = myarray[i]; }
myarray[i]=myarray[pos]; }
myarray[pos] = temp; return position;
} }
#include<iostream>
using namespace std;
int main ()
{
int myarray[5] = { 12,4,3,1,15};
cout<<"\nInput list is \n";
for(int i=0;i<5;i++)
{
cout <<myarray[i]<<"\t";
Contoh Program }
for(int k=1; k<5; k++)
{
int temp = myarray[k];

Insertion Sort int j= k-1;


while(j>=0 && temp <= myarray[j])
{
myarray[j+1] = myarray[j];
j = j-1;
}
myarray[j+1] = temp;
}
cout<<"\nSorted list is \n";
for(int i=0;i<5;i++)
{
cout <<myarray[i]<<"\t";
}
}
REFERENSI
Kadir, Abdul (2013). Teori dan Aplikasi
Struktur Data Menggunakan C++.
Yogyakarta:Penerbit ANDI
J, Rosa A.S. (2018). Struktur Data Terapan
Dakam Berbagai Bahasa Pemrograman
PASCAL, C, C++, dan JAVA. Bandung.
Penerbit Informatika
Sianipar, R.H. (2015). Soal & Penyelesaian
C++. Bandung. Penerbit Informatika
Munir, Rinaldi. Lidya, Lenony. (2016)
Algoritma Pemrograman. Bandung. Penerbit
Informatika
Yatini, Indra. B.Erliansyah Nasution.
(2002).Algoritma dan Struktur Data dengan
C++.Graha Ilmu

Anda mungkin juga menyukai