SlideShare a Scribd company logo
BY :
EKA PANDU CYNTHIA, S.T., M.KOM.
1
 Sort adalah suatu proses pengurutan data
yang sebelumnya disusun secara acak atau
tidak teratur menjadi urut atau teratur
menurut suatu aturan tertentu.
2
 Biasanya pengurutan dibagi menjadi 2 yaitu :
 Ascending  Pengurutan dari kecil ke besar
 Descending  Pengurutan dari besar ke kecil
3
 Ada banyak cara atau metode untuk
melakukan pengurutan ascending atau
pun descending.
 Dalam proses pengurutan kita akan
memerlukan proses penukaran data.
 Proses penukaran data tidak bisa kita
lakukan secara langsung dengan menukar
isi variabel.
 Penukaran data dilakukan dengan metode
swap.
4
 Misalkan terdapat dua data yang akan ditukar
yaitu :
 Cara yang salah :
 Cara yang benar :
data[1] = 5;
data[2] = 10;
data[1] = data[2];
data[2] = data[1];
swap = data[1];
data[1] = data[2];
data[2] = swap;
5
 Untuk melakukan pengurutan terdapat
beberapa cara atau metode diantaranya :
 Bubble Sort
 Selection Sort
 Insertion Sort
6
 Bubble Sort adalah suatu metode pengurutan
yang membandingkan elemen yang sekarang
dengan elemen yang berikutnya.
 Apabila elemen yang sekarang > elemen
berikutnya, maka posisinya ditukar, jika
tidak maka tidak perlu ditukar.
7
 Misalkan kita memiliki data acak sebagai
berikut :
5, 34, 32, 25, 75, 42, 22, 2
8
 Data sebelumnya :
5, 34, 32, 25, 75, 42, 22, 2
 Langkah ke 0 :
 5 > 34 ? TIDAK (tetap) = 5, 34
 34 > 32 ? YA (tukar) = 32, 34
 34 > 25 ? YA (tukar) = 25, 34
 34 > 75 ? TIDAK (tetap) = 34, 75
 75 > 42 ? YA (tukar) = 42, 75
 75 > 22 ? YA (tukar) = 22, 75
 75 > 2 ? YA (tukar) = 2, 75
 Hasil :
5, 32, 25, 34, 42, 22, 2, 75
9
 Data sebelumnya :
5, 32, 25, 34, 42, 22, 2, 75
 Langkah ke 1 :
 5 > 32 ? TIDAK (tetap) = 5, 32
 32 > 25 ? YA (tukar) = 25, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 22 ? YA (tukar) = 22, 42
 42 > 2 ? YA (tukar) = 2, 42
 42 > 75 ? TIDAK (tetap) 42, 75
 Hasil :
5, 25, 32, 34, 22, 2, 42, 75
10
 Data sebelumnya :
5, 25, 32, 34, 22, 2, 42, 75
 Langkah ke 2 :
 5 > 25 ? TIDAK (tetap) = 5, 25
 25 > 32 ? TIDAK (tetap) = 25, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 22 ? YA (tukar) = 22, 34
 34 > 2 ? YA (tukar) = 2, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 75 ? TIDAK (tetap) = 42, 75
 Hasil :
5, 25, 32, 22, 2, 34, 42, 75
11
 Data sebelumnya :
5, 25, 32, 22, 2, 34, 42, 75
 Langkah ke 3 :
 5 > 25 ? TIDAK (tetap) = 5, 25
 25 > 32 ? TIDAK (tetap) = 25, 32
 32 > 22 ? YA (tukar) = 22, 32
 32 > 2 ? YA (tukar) = 2, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 75 ? TIDAK (tetap) = 42, 75
 Hasil :
5, 25, 22, 2, 32, 34, 42, 75
12
 Data sebelumnya :
5, 25, 22, 2, 32, 34, 42, 75
 Langkah ke 4 :
 5 > 25 ? TIDAK (tetap) = 5, 25
 25 > 22 ? YA (tukar) = 22, 25
 25 > 2 ? YA (tukar) = 2, 25
 25 > 32 ? TIDAK (tetap) = 25, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 75 ? TIDAK (tetap) = 42, 75
 Hasil :
5, 22, 2, 25, 32, 34, 42, 75
13
 Data sebelumnya :
5, 22, 2, 25, 32, 34, 42, 75
 Langkah ke 5 :
 5 > 22 ? TIDAK (tetap) = 5, 22
 22 > 2 ? YA (tukar) = 2, 22
 22 > 25 ? TIDAK (tetap) = 22, 25
 25 > 32 ? TIDAK (tetap) = 25, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 75 ? TIDAK (tetap) = 42, 75
 Hasil :
5, 2, 22, 25, 32, 34, 42, 75
14
 Data sebelumnya :
5, 2, 22, 25, 32, 34, 42, 75
 Langkah ke 6 :
 5 > 2 ? YA (tukar) = 2, 5
 5 > 22 ? TIDAK (tetap) = 5, 22
 22 > 25 ? TIDAK (tetap) = 22, 25
 25 > 32 ? TIDAK (tetap) = 25, 32
 32 > 34 ? TIDAK (tetap) = 32, 34
 34 > 42 ? TIDAK (tetap) = 34, 42
 42 > 75 ? TIDAK (tetap) = 42, 75
 Hasil :
2, 5, 22, 25, 32, 34, 42, 75
15
 Data Awal :
5, 34, 32, 25, 75, 42, 22, 2
 Data Akhir :
2, 5, 22, 25, 32, 34, 42, 75
16
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
int data[8] = {5, 34, 32, 25, 75, 42, 22, 2};
int swap;
cout<<"Data sebelum diurutkan : "<<endl;
for(int i=0; i<8; i++)
{
cout<<setw(3)<<data[i];
}
cout<<endl;
for(int i=0; i<7; i++)
{
for(int j=0; j<7; j++)
{
if(data[j] > data[j+1])
{
swap = data[j];
data[j] = data[j+1];
data[j+1] = swap;
}
}
}
cout<<"Data setelah diurutkan : "<<endl;
for(int i=0; i<8; i++)
{
cout<<setw(3)<<data[i];
}
getch();
}
17
 Selection Sort adalah 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.
18
 Misalkan kita memiliki data acak sebagai
berikut :
5, 34, 32, 25, 75, 42, 22, 2
19
 Langkah 0, data sebelumnya :
5, 34, 32, 25, 75, 42, 22, 2
 Pembanding  Posisi Terkecil
 5 > 34 ? TIDAK  0
 5 > 32 ? TIDAK  0
 5 > 25 ? TIDAK  0
 5 > 75 ? TIDAK  0
 5 > 42 ? TIDAK  0
 5 > 22 ? TIDAK  0
 5 > 2 ? YA  7
 Hasil, tukar posisi 0 dan posisi 7 :
2, 34, 32, 25, 75, 42, 22, 5
20
 Langkah 1, data sebelumnya :
2, 34, 32, 25, 75, 42, 22, 5
 Pembanding  Posisi Terkecil
 34 > 32 ? YA  2
 32 > 25 ? YA  3
 25 > 75 ? TIDAK  3
 25 > 42 ? TIDAK  3
 25 > 22 ? YA  6
 22 > 5 ? YA  7
 Hasil, tukar posisi 1 dan posisi 7 :
2, 5, 32, 25, 75, 42, 22, 34
21
 Langkah 2, data sebelumnya :
2, 5, 32, 25, 75, 42, 22, 34
 Pembanding  Posisi Terkecil
 32 > 25 ? YA  3
 25 > 75 ? TIDAK  3
 25 > 42 ? TIDAK  3
 25 > 22 ? YA  6
 22 > 34 ? TIDAK  6
 Hasil, tukar posisi 2 dan posisi 6 :
2, 5, 22, 25, 75, 42, 32, 34
22
 Langkah 3, data sebelumnya :
2, 5, 22, 25, 75, 42, 32, 34
 Pembanding  Posisi Terkecil
 25 > 75 ? TIDAK  3
 25 > 42 ? TIDAK  3
 25 > 32 ? TIDAK  3
 25 > 34 ? TIDAK  3
 Hasil, tukar posisi 3 dan posisi 3 :
2, 5, 22, 25, 75, 42, 32, 34
23
 Langkah 4, data sebelumnya :
2, 5, 22, 25, 75, 42, 32, 34
 Pembanding  Posisi Terkecil
 75 > 42 ? YA  5
 42 > 32 ? YA  6
 32 > 34 ? TIDAK  6
 Hasil, tukar posisi 4 dan posisi 6 :
2, 5, 22, 25, 32, 42, 75, 34
24
 Langkah 5, data sebelumnya :
2, 5, 22, 25, 32, 42, 75, 34
 Pembanding  Posisi Terkecil
 42 > 75 ? TIDAK  5
 42 > 34 ? YA  7
 Hasil, tukar posisi 5 dan posisi 7 :
2, 5, 22, 25, 32, 34, 75, 42
25
 Langkah 6, data sebelumnya :
2, 5, 22, 25, 32, 34, 75, 42
 Pembanding  Posisi Terkecil
 75 > 42 ? YA  7
 Hasil, tukar posisi 6 dan posisi 7 :
2, 5, 22, 25, 32, 34, 42, 75
26
 Data Awal :
5, 34, 32, 25, 75, 42, 22, 2
 Data Akhir :
2, 5, 22, 25, 32, 34, 42, 75
27
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
int data[8] = {5, 34, 32, 25, 75, 42, 22, 2};
int swap, terkecil;
cout<<"Data sebelum diurutkan : "<<endl;
for(int i=0; i<8; i++)
{
cout<<setw(3)<<data[i];
}
cout<<endl;
for(int i=0; i<7; i++)
{
terkecil = i;
for(int j=i+1; j<8; j++)
{
if(data[terkecil] > data[j])
{
terkecil = j;
}
}
swap = data[i];
data[i] = data[terkecil];
data[terkecil] = swap;
}
cout<<"Data setelah diurutkan : "<<endl;
for(int i=0; i<8; i++)
{
cout<<setw(3)<<data[i];
}
getch();
}
28
 Metode Insertion Sort mirip dengan cara
mengurutkan kartu, kartu diambil
selembar demi selembar dan disisipkan
(insert) pada posisi seharusnya.
 Proses pengurutan dimulai dari data ke 2
sampai data terakhir.
 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).
29
 Misalkan kita memiliki data acak sebagai
berikut :
95, 34, 32, 25, 75, 42, 22
30
 Data sebelumnya :
95, 34, 32, 25, 75, 42, 22
 Langkah 1, Temp = 34
 J = 0  Temp < 95? YA  Data Ke 1 = 95
95, 95, 32, 25, 75, 42, 22
 J = -1  STOP
 Hasil :
Data ke J+1 (0) = Temp (34)
34, 95, 32, 25, 75, 42, 22
31
 Data sebelumnya :
34, 95, 32, 25, 75, 42, 22
 Langkah 2, Temp = 32
 J = 1  Temp < 95? YA  Data ke 2 = 95
34, 95, 95, 25, 75, 42, 22
 J = 0  Temp < 34? YA  Data ke 1 = 34
34, 34, 95, 25, 75, 42, 22
 J = -1  STOP
 Hasil :
Data ke J+1 (0) = Temp (32)
32, 34, 95, 25, 75, 42, 22
32
 Data sebelumnya :
32, 34, 95, 25, 75, 42, 22
 Langkah 3, Temp = 25
 J = 2  Temp < 95? YA  Data ke 3 = 95
32, 34, 95, 95, 75, 42, 22
 J = 1  Temp < 34? YA  Data ke 2 = 34
32, 34, 34, 95, 75, 42, 22
 J = 0  Temp < 32? YA  Data ke 1 = 32
32, 32, 34, 95, 75, 42, 22
 J = -1  STOP
 Hasil :
Data ke J+1 (0) = Temp (25)
25, 32, 34, 95, 75, 42, 22
33
 Data sebelumnya :
25, 32, 34, 95, 75, 42, 22
 Langkah 4, Temp = 75
 J = 3  Temp < 95? YA  Data ke 4 = 95
25, 32, 34, 95, 95, 42, 22
 J = 2  Temp < 34? TIDAK  STOP
 Hasil :
Data ke J+1 (3) = Temp (75)
25, 32, 34, 75, 95, 42, 22
34
 Data sebelumnya :
25, 32, 34, 75, 95, 42, 22
 Langkah 5, Temp = 42
 J = 4  Temp < 95? YA  Data ke 5 = 95
25, 32, 34, 75, 95, 95, 22
 J = 3  Temp < 75? YA  Data ke 4 = 75
25, 32, 34, 75, 75, 95, 22
 J = 2  Temp < 34? TIDAK  STOP
 Hasil :
Data ke J+1 (3) = Temp (42)
25, 32, 34, 42, 75, 95, 22
35
 Data sebelumnya :
25, 32, 34, 42, 75, 95, 22
 Langkah 6, Temp = 22
 J = 5  Temp < 95? YA  Data ke 6 = 95
25, 32, 34, 42, 75, 95, 95
 J = 4  Temp < 75? YA  Data ke 5 = 75
25, 32, 34, 42, 75, 75, 95
 J = 3  Temp < 42? YA  Data ke 4 = 42
25, 32, 34, 42, 42, 75, 95
 J = 2  Temp < 34? YA  Data ke 3 = 34
25, 32, 34, 34, 42, 75, 95
 J = 1  Temp < 32? YA  Data ke 2 = 32
25, 32, 32, 34, 42, 75, 95
 J = 0  Temp < 25? YA  Data ke 1 = 25
25, 25, 32, 34, 42, 75, 95
 J = -1  STOP
 Hasil :
Data ke J+1 (0) = Temp (22)
22, 25, 32, 34, 42, 75, 95
36
 Data Awal :
22, 25, 32, 34, 42, 75, 95
 Data Akhir :
37
#include <iostream.h>
#include <conio.h>
void insertion_sort(int data[])
{
int temp, j;
for(int i=1; i<10; i++)
{
temp = data[i];
j = i-1;
while(temp < data[j] && j>=0)
{
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}
}
void main()
{
int data[10]={5,34,32,25,75,42,22,2,9,1};
insertion_sort(data);
for (int i=0;i<10;i++)
cout<<"data["<<i<<"]= : "<<data[i]<<endl;
getch();
}
38

More Related Content

Viewers also liked (12)

Rundown Perkuliahan (Praktikum Dan Tugas) TIK Dan Media Pembelajaran
Rundown Perkuliahan (Praktikum Dan Tugas) TIK Dan Media PembelajaranRundown Perkuliahan (Praktikum Dan Tugas) TIK Dan Media Pembelajaran
Rundown Perkuliahan (Praktikum Dan Tugas) TIK Dan Media Pembelajaran
 
Bahasan 3 Teknik Perancangan Dan Strategi Penggunaan Media Pendidikan Dalam KBM
Bahasan 3 Teknik Perancangan Dan Strategi Penggunaan Media Pendidikan Dalam KBMBahasan 3 Teknik Perancangan Dan Strategi Penggunaan Media Pendidikan Dalam KBM
Bahasan 3 Teknik Perancangan Dan Strategi Penggunaan Media Pendidikan Dalam KBM
 
Bahasan 6 WBT CBT E Learning Blog
Bahasan 6 WBT CBT E Learning BlogBahasan 6 WBT CBT E Learning Blog
Bahasan 6 WBT CBT E Learning Blog
 
Ppt struktur data
Ppt struktur dataPpt struktur data
Ppt struktur data
 
Biner
BinerBiner
Biner
 
Format rpkps
Format rpkpsFormat rpkps
Format rpkps
 
Array
Array Array
Array
 
Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)Materi : Struktur Data (2 Array)
Materi : Struktur Data (2 Array)
 
Startup
StartupStartup
Startup
 
Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)Materi : Struktur Data (1 Pengantar)
Materi : Struktur Data (1 Pengantar)
 
Queue
QueueQueue
Queue
 
struktur data
struktur datastruktur data
struktur data
 

More from eka pandu cynthia

More from eka pandu cynthia (20)

Materi ke-3 Aljabar Linier
Materi ke-3 Aljabar LinierMateri ke-3 Aljabar Linier
Materi ke-3 Aljabar Linier
 
Materi ke-1 Aljabar Linier
Materi ke-1 Aljabar LinierMateri ke-1 Aljabar Linier
Materi ke-1 Aljabar Linier
 
NILAI AKHIR CBI (2) - FKIP PI - UMRI 3A - 2015
NILAI AKHIR CBI (2) - FKIP PI - UMRI 3A - 2015NILAI AKHIR CBI (2) - FKIP PI - UMRI 3A - 2015
NILAI AKHIR CBI (2) - FKIP PI - UMRI 3A - 2015
 
NILAI AKHIR CBI (1) - FKIP PI - UMRI 3A - 2015
NILAI AKHIR CBI (1) - FKIP PI - UMRI 3A - 2015NILAI AKHIR CBI (1) - FKIP PI - UMRI 3A - 2015
NILAI AKHIR CBI (1) - FKIP PI - UMRI 3A - 2015
 
NILAI AKHIR PENGANTAR TEKNOLOGI INFORMASI - FKIP PI - UMRI 1A 2015
NILAI AKHIR PENGANTAR TEKNOLOGI INFORMASI - FKIP PI - UMRI 1A 2015NILAI AKHIR PENGANTAR TEKNOLOGI INFORMASI - FKIP PI - UMRI 1A 2015
NILAI AKHIR PENGANTAR TEKNOLOGI INFORMASI - FKIP PI - UMRI 1A 2015
 
NILAI AKHIR PTI (SEBELUM DISERAHKAN KE PRODI) FKIP PI - UMRI 1A 2015
NILAI AKHIR PTI (SEBELUM DISERAHKAN KE PRODI) FKIP PI - UMRI 1A 2015NILAI AKHIR PTI (SEBELUM DISERAHKAN KE PRODI) FKIP PI - UMRI 1A 2015
NILAI AKHIR PTI (SEBELUM DISERAHKAN KE PRODI) FKIP PI - UMRI 1A 2015
 
REKAP NILAI (SEMENTARA) PENGANTAR TEKNOLOGI INFORMASI - FKIP PI UMRI 1A - 2015
REKAP NILAI (SEMENTARA) PENGANTAR TEKNOLOGI INFORMASI - FKIP PI UMRI 1A - 2015REKAP NILAI (SEMENTARA) PENGANTAR TEKNOLOGI INFORMASI - FKIP PI UMRI 1A - 2015
REKAP NILAI (SEMENTARA) PENGANTAR TEKNOLOGI INFORMASI - FKIP PI UMRI 1A - 2015
 
REKAP NILAI (SEMENTARA) DESAIN ANIMASI KOMPUTER PEMBELAJARAN - FKIP PI UMRI 3...
REKAP NILAI (SEMENTARA) DESAIN ANIMASI KOMPUTER PEMBELAJARAN - FKIP PI UMRI 3...REKAP NILAI (SEMENTARA) DESAIN ANIMASI KOMPUTER PEMBELAJARAN - FKIP PI UMRI 3...
REKAP NILAI (SEMENTARA) DESAIN ANIMASI KOMPUTER PEMBELAJARAN - FKIP PI UMRI 3...
 
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5D FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5D FKIP BIOLOGI UIR FINAL RESULT NILAI PRAKTIKUM / TUGAS 5D FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5D FKIP BIOLOGI UIR
 
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5C FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5C FKIP BIOLOGI UIR FINAL RESULT NILAI PRAKTIKUM / TUGAS 5C FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5C FKIP BIOLOGI UIR
 
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5B FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5B FKIP BIOLOGI UIR FINAL RESULT NILAI PRAKTIKUM / TUGAS 5B FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5B FKIP BIOLOGI UIR
 
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5A FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5A FKIP BIOLOGI UIRFINAL RESULT NILAI PRAKTIKUM / TUGAS 5A FKIP BIOLOGI UIR
FINAL RESULT NILAI PRAKTIKUM / TUGAS 5A FKIP BIOLOGI UIR
 
NILAI TUGAS / PRAKTIKUM 6 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 6 FKIP BIOLOGI UIRNILAI TUGAS / PRAKTIKUM 6 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 6 FKIP BIOLOGI UIR
 
NILAI TUGAS / PRAKTIKUM 5 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 5 FKIP BIOLOGI UIR NILAI TUGAS / PRAKTIKUM 5 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 5 FKIP BIOLOGI UIR
 
NILAI TUGAS / PRAKTIKUM 4 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 4 FKIP BIOLOGI UIR NILAI TUGAS / PRAKTIKUM 4 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 4 FKIP BIOLOGI UIR
 
NILAI TUGAS / PRAKTIKUM 3 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 3 FKIP BIOLOGI UIR NILAI TUGAS / PRAKTIKUM 3 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 3 FKIP BIOLOGI UIR
 
NILAI TUGAS / PRAKTIKUM 2 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 2 FKIP BIOLOGI UIR NILAI TUGAS / PRAKTIKUM 2 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 2 FKIP BIOLOGI UIR
 
Format Penilaian TIK dan Media Pembelajaran
Format Penilaian TIK dan Media PembelajaranFormat Penilaian TIK dan Media Pembelajaran
Format Penilaian TIK dan Media Pembelajaran
 
NILAI TUGAS / PRAKTIKUM 1 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 1 FKIP BIOLOGI UIRNILAI TUGAS / PRAKTIKUM 1 FKIP BIOLOGI UIR
NILAI TUGAS / PRAKTIKUM 1 FKIP BIOLOGI UIR
 
Absen 5 D FKIP BIOLOGI UIR 2015
Absen 5 D FKIP BIOLOGI UIR 2015Absen 5 D FKIP BIOLOGI UIR 2015
Absen 5 D FKIP BIOLOGI UIR 2015
 

Materi : Struktur Data (3 Sort)

  • 1. BY : EKA PANDU CYNTHIA, S.T., M.KOM. 1
  • 2.  Sort adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut atau teratur menurut suatu aturan tertentu. 2
  • 3.  Biasanya pengurutan dibagi menjadi 2 yaitu :  Ascending  Pengurutan dari kecil ke besar  Descending  Pengurutan dari besar ke kecil 3
  • 4.  Ada banyak cara atau metode untuk melakukan pengurutan ascending atau pun descending.  Dalam proses pengurutan kita akan memerlukan proses penukaran data.  Proses penukaran data tidak bisa kita lakukan secara langsung dengan menukar isi variabel.  Penukaran data dilakukan dengan metode swap. 4
  • 5.  Misalkan terdapat dua data yang akan ditukar yaitu :  Cara yang salah :  Cara yang benar : data[1] = 5; data[2] = 10; data[1] = data[2]; data[2] = data[1]; swap = data[1]; data[1] = data[2]; data[2] = swap; 5
  • 6.  Untuk melakukan pengurutan terdapat beberapa cara atau metode diantaranya :  Bubble Sort  Selection Sort  Insertion Sort 6
  • 7.  Bubble Sort adalah suatu metode pengurutan yang membandingkan elemen yang sekarang dengan elemen yang berikutnya.  Apabila elemen yang sekarang > elemen berikutnya, maka posisinya ditukar, jika tidak maka tidak perlu ditukar. 7
  • 8.  Misalkan kita memiliki data acak sebagai berikut : 5, 34, 32, 25, 75, 42, 22, 2 8
  • 9.  Data sebelumnya : 5, 34, 32, 25, 75, 42, 22, 2  Langkah ke 0 :  5 > 34 ? TIDAK (tetap) = 5, 34  34 > 32 ? YA (tukar) = 32, 34  34 > 25 ? YA (tukar) = 25, 34  34 > 75 ? TIDAK (tetap) = 34, 75  75 > 42 ? YA (tukar) = 42, 75  75 > 22 ? YA (tukar) = 22, 75  75 > 2 ? YA (tukar) = 2, 75  Hasil : 5, 32, 25, 34, 42, 22, 2, 75 9
  • 10.  Data sebelumnya : 5, 32, 25, 34, 42, 22, 2, 75  Langkah ke 1 :  5 > 32 ? TIDAK (tetap) = 5, 32  32 > 25 ? YA (tukar) = 25, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 22 ? YA (tukar) = 22, 42  42 > 2 ? YA (tukar) = 2, 42  42 > 75 ? TIDAK (tetap) 42, 75  Hasil : 5, 25, 32, 34, 22, 2, 42, 75 10
  • 11.  Data sebelumnya : 5, 25, 32, 34, 22, 2, 42, 75  Langkah ke 2 :  5 > 25 ? TIDAK (tetap) = 5, 25  25 > 32 ? TIDAK (tetap) = 25, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 22 ? YA (tukar) = 22, 34  34 > 2 ? YA (tukar) = 2, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 75 ? TIDAK (tetap) = 42, 75  Hasil : 5, 25, 32, 22, 2, 34, 42, 75 11
  • 12.  Data sebelumnya : 5, 25, 32, 22, 2, 34, 42, 75  Langkah ke 3 :  5 > 25 ? TIDAK (tetap) = 5, 25  25 > 32 ? TIDAK (tetap) = 25, 32  32 > 22 ? YA (tukar) = 22, 32  32 > 2 ? YA (tukar) = 2, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 75 ? TIDAK (tetap) = 42, 75  Hasil : 5, 25, 22, 2, 32, 34, 42, 75 12
  • 13.  Data sebelumnya : 5, 25, 22, 2, 32, 34, 42, 75  Langkah ke 4 :  5 > 25 ? TIDAK (tetap) = 5, 25  25 > 22 ? YA (tukar) = 22, 25  25 > 2 ? YA (tukar) = 2, 25  25 > 32 ? TIDAK (tetap) = 25, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 75 ? TIDAK (tetap) = 42, 75  Hasil : 5, 22, 2, 25, 32, 34, 42, 75 13
  • 14.  Data sebelumnya : 5, 22, 2, 25, 32, 34, 42, 75  Langkah ke 5 :  5 > 22 ? TIDAK (tetap) = 5, 22  22 > 2 ? YA (tukar) = 2, 22  22 > 25 ? TIDAK (tetap) = 22, 25  25 > 32 ? TIDAK (tetap) = 25, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 75 ? TIDAK (tetap) = 42, 75  Hasil : 5, 2, 22, 25, 32, 34, 42, 75 14
  • 15.  Data sebelumnya : 5, 2, 22, 25, 32, 34, 42, 75  Langkah ke 6 :  5 > 2 ? YA (tukar) = 2, 5  5 > 22 ? TIDAK (tetap) = 5, 22  22 > 25 ? TIDAK (tetap) = 22, 25  25 > 32 ? TIDAK (tetap) = 25, 32  32 > 34 ? TIDAK (tetap) = 32, 34  34 > 42 ? TIDAK (tetap) = 34, 42  42 > 75 ? TIDAK (tetap) = 42, 75  Hasil : 2, 5, 22, 25, 32, 34, 42, 75 15
  • 16.  Data Awal : 5, 34, 32, 25, 75, 42, 22, 2  Data Akhir : 2, 5, 22, 25, 32, 34, 42, 75 16
  • 17. #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap; cout<<"Data sebelum diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(int i=0; i<7; i++) { for(int j=0; j<7; j++) { if(data[j] > data[j+1]) { swap = data[j]; data[j] = data[j+1]; data[j+1] = swap; } } } cout<<"Data setelah diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch(); } 17
  • 18.  Selection Sort adalah 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. 18
  • 19.  Misalkan kita memiliki data acak sebagai berikut : 5, 34, 32, 25, 75, 42, 22, 2 19
  • 20.  Langkah 0, data sebelumnya : 5, 34, 32, 25, 75, 42, 22, 2  Pembanding  Posisi Terkecil  5 > 34 ? TIDAK  0  5 > 32 ? TIDAK  0  5 > 25 ? TIDAK  0  5 > 75 ? TIDAK  0  5 > 42 ? TIDAK  0  5 > 22 ? TIDAK  0  5 > 2 ? YA  7  Hasil, tukar posisi 0 dan posisi 7 : 2, 34, 32, 25, 75, 42, 22, 5 20
  • 21.  Langkah 1, data sebelumnya : 2, 34, 32, 25, 75, 42, 22, 5  Pembanding  Posisi Terkecil  34 > 32 ? YA  2  32 > 25 ? YA  3  25 > 75 ? TIDAK  3  25 > 42 ? TIDAK  3  25 > 22 ? YA  6  22 > 5 ? YA  7  Hasil, tukar posisi 1 dan posisi 7 : 2, 5, 32, 25, 75, 42, 22, 34 21
  • 22.  Langkah 2, data sebelumnya : 2, 5, 32, 25, 75, 42, 22, 34  Pembanding  Posisi Terkecil  32 > 25 ? YA  3  25 > 75 ? TIDAK  3  25 > 42 ? TIDAK  3  25 > 22 ? YA  6  22 > 34 ? TIDAK  6  Hasil, tukar posisi 2 dan posisi 6 : 2, 5, 22, 25, 75, 42, 32, 34 22
  • 23.  Langkah 3, data sebelumnya : 2, 5, 22, 25, 75, 42, 32, 34  Pembanding  Posisi Terkecil  25 > 75 ? TIDAK  3  25 > 42 ? TIDAK  3  25 > 32 ? TIDAK  3  25 > 34 ? TIDAK  3  Hasil, tukar posisi 3 dan posisi 3 : 2, 5, 22, 25, 75, 42, 32, 34 23
  • 24.  Langkah 4, data sebelumnya : 2, 5, 22, 25, 75, 42, 32, 34  Pembanding  Posisi Terkecil  75 > 42 ? YA  5  42 > 32 ? YA  6  32 > 34 ? TIDAK  6  Hasil, tukar posisi 4 dan posisi 6 : 2, 5, 22, 25, 32, 42, 75, 34 24
  • 25.  Langkah 5, data sebelumnya : 2, 5, 22, 25, 32, 42, 75, 34  Pembanding  Posisi Terkecil  42 > 75 ? TIDAK  5  42 > 34 ? YA  7  Hasil, tukar posisi 5 dan posisi 7 : 2, 5, 22, 25, 32, 34, 75, 42 25
  • 26.  Langkah 6, data sebelumnya : 2, 5, 22, 25, 32, 34, 75, 42  Pembanding  Posisi Terkecil  75 > 42 ? YA  7  Hasil, tukar posisi 6 dan posisi 7 : 2, 5, 22, 25, 32, 34, 42, 75 26
  • 27.  Data Awal : 5, 34, 32, 25, 75, 42, 22, 2  Data Akhir : 2, 5, 22, 25, 32, 34, 42, 75 27
  • 28. #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { int data[8] = {5, 34, 32, 25, 75, 42, 22, 2}; int swap, terkecil; cout<<"Data sebelum diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } cout<<endl; for(int i=0; i<7; i++) { terkecil = i; for(int j=i+1; j<8; j++) { if(data[terkecil] > data[j]) { terkecil = j; } } swap = data[i]; data[i] = data[terkecil]; data[terkecil] = swap; } cout<<"Data setelah diurutkan : "<<endl; for(int i=0; i<8; i++) { cout<<setw(3)<<data[i]; } getch(); } 28
  • 29.  Metode Insertion Sort mirip dengan cara mengurutkan kartu, kartu diambil selembar demi selembar dan disisipkan (insert) pada posisi seharusnya.  Proses pengurutan dimulai dari data ke 2 sampai data terakhir.  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). 29
  • 30.  Misalkan kita memiliki data acak sebagai berikut : 95, 34, 32, 25, 75, 42, 22 30
  • 31.  Data sebelumnya : 95, 34, 32, 25, 75, 42, 22  Langkah 1, Temp = 34  J = 0  Temp < 95? YA  Data Ke 1 = 95 95, 95, 32, 25, 75, 42, 22  J = -1  STOP  Hasil : Data ke J+1 (0) = Temp (34) 34, 95, 32, 25, 75, 42, 22 31
  • 32.  Data sebelumnya : 34, 95, 32, 25, 75, 42, 22  Langkah 2, Temp = 32  J = 1  Temp < 95? YA  Data ke 2 = 95 34, 95, 95, 25, 75, 42, 22  J = 0  Temp < 34? YA  Data ke 1 = 34 34, 34, 95, 25, 75, 42, 22  J = -1  STOP  Hasil : Data ke J+1 (0) = Temp (32) 32, 34, 95, 25, 75, 42, 22 32
  • 33.  Data sebelumnya : 32, 34, 95, 25, 75, 42, 22  Langkah 3, Temp = 25  J = 2  Temp < 95? YA  Data ke 3 = 95 32, 34, 95, 95, 75, 42, 22  J = 1  Temp < 34? YA  Data ke 2 = 34 32, 34, 34, 95, 75, 42, 22  J = 0  Temp < 32? YA  Data ke 1 = 32 32, 32, 34, 95, 75, 42, 22  J = -1  STOP  Hasil : Data ke J+1 (0) = Temp (25) 25, 32, 34, 95, 75, 42, 22 33
  • 34.  Data sebelumnya : 25, 32, 34, 95, 75, 42, 22  Langkah 4, Temp = 75  J = 3  Temp < 95? YA  Data ke 4 = 95 25, 32, 34, 95, 95, 42, 22  J = 2  Temp < 34? TIDAK  STOP  Hasil : Data ke J+1 (3) = Temp (75) 25, 32, 34, 75, 95, 42, 22 34
  • 35.  Data sebelumnya : 25, 32, 34, 75, 95, 42, 22  Langkah 5, Temp = 42  J = 4  Temp < 95? YA  Data ke 5 = 95 25, 32, 34, 75, 95, 95, 22  J = 3  Temp < 75? YA  Data ke 4 = 75 25, 32, 34, 75, 75, 95, 22  J = 2  Temp < 34? TIDAK  STOP  Hasil : Data ke J+1 (3) = Temp (42) 25, 32, 34, 42, 75, 95, 22 35
  • 36.  Data sebelumnya : 25, 32, 34, 42, 75, 95, 22  Langkah 6, Temp = 22  J = 5  Temp < 95? YA  Data ke 6 = 95 25, 32, 34, 42, 75, 95, 95  J = 4  Temp < 75? YA  Data ke 5 = 75 25, 32, 34, 42, 75, 75, 95  J = 3  Temp < 42? YA  Data ke 4 = 42 25, 32, 34, 42, 42, 75, 95  J = 2  Temp < 34? YA  Data ke 3 = 34 25, 32, 34, 34, 42, 75, 95  J = 1  Temp < 32? YA  Data ke 2 = 32 25, 32, 32, 34, 42, 75, 95  J = 0  Temp < 25? YA  Data ke 1 = 25 25, 25, 32, 34, 42, 75, 95  J = -1  STOP  Hasil : Data ke J+1 (0) = Temp (22) 22, 25, 32, 34, 42, 75, 95 36
  • 37.  Data Awal : 22, 25, 32, 34, 42, 75, 95  Data Akhir : 37
  • 38. #include <iostream.h> #include <conio.h> void insertion_sort(int data[]) { int temp, j; for(int i=1; i<10; i++) { temp = data[i]; j = i-1; while(temp < data[j] && j>=0) { data[j+1] = data[j]; j--; } data[j+1] = temp; } } void main() { int data[10]={5,34,32,25,75,42,22,2,9,1}; insertion_sort(data); for (int i=0;i<10;i++) cout<<"data["<<i<<"]= : "<<data[i]<<endl; getch(); } 38