0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan52 halaman

Metode Pengurutan Data: Sort, Swap, dan Algoritma

Dokumen ini menjelaskan tentang proses pengurutan data (sort) yang dibagi menjadi dua jenis: ascending dan descending. Metode pengurutan yang dibahas termasuk Bubble Sort dan Selection Sort, dengan penjelasan rinci tentang cara kerja masing-masing metode dan contoh implementasinya dalam kode. Proses penukaran data dalam pengurutan dilakukan menggunakan metode swap untuk memastikan data terurut dengan benar.

Diunggah oleh

massdan66
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
3 tayangan52 halaman

Metode Pengurutan Data: Sort, Swap, dan Algoritma

Dokumen ini menjelaskan tentang proses pengurutan data (sort) yang dibagi menjadi dua jenis: ascending dan descending. Metode pengurutan yang dibahas termasuk Bubble Sort dan Selection Sort, dengan penjelasan rinci tentang cara kerja masing-masing metode dan contoh implementasinya dalam kode. Proses penukaran data dalam pengurutan dilakukan menggunakan metode swap untuk memastikan data terurut dengan benar.

Diunggah oleh

massdan66
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Sort

 Sort adalah suatu proses pengurutan data


yang sebelumnya disusun secara acak atau
tidak teratur menjadi urut atau teratur
menurut suatu aturan tertentu.
Sort
 Biasanya pengurutan dibagi menjadi 2 yaitu :
 Ascending  Pengurutan dari kecil ke besar
 Descending  Pengurutan dari besar ke kecil
Sort
 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.
Swap
 Misalkan terdapat dua data yang akan ditukar yaitu :
data[1] = 5;
data[2] = 10;

 Cara yang salah :


data[1] = data[2];
data[2] = data[1];

 Cara yang benar :


swap = data[1];
data[1] = data[2];
data[2] = swap;
Sort
 Untuk melakukan pengurutan terdapat beberapa cara
atau metode diantaranya :
 Bubble Sort
 Selection Sort
 Insertion Sort
Bubble Sort
 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.
Bubble Sort
 Misalkan kita memiliki data acak sebagai
berikut :
5, 34, 32, 25, 75, 42, 22, 2
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 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
Bubble Sort
 Data Awal :
5, 34, 32, 25, 75, 42, 22, 2
 Data Akhir :
2, 5, 22, 25, 32, 34, 42, 75
#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();
}
Selection Sort
 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.
Selection Sort
 Misalkan kita memiliki data acak sebagai berikut :
5, 34, 32, 25, 75, 42, 22, 2
Selection Sort
 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
Selection Sort
 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
Selection Sort
 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
Selection Sort
 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
Selection Sort
 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
Selection Sort
 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
Selection Sort
 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
Selection Sort
 Data Awal :
5, 34, 32, 25, 75, 42, 22, 2
 Data Akhir :
2, 5, 22, 25, 32, 34, 42, 75
#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();
}
Insertion Sort
 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).
Insertion Sort
 Misalkan kita memiliki data acak sebagai berikut :
95, 34, 32, 25, 75, 42, 22
Insertion Sort
 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
Insertion Sort
 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
Insertion Sort
 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
Insertion Sort
 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
Insertion Sort
 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
Insertion Sort
 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
Insertion Sort
 Data Awal :
95, 34, 32, 25, 75, 42, 22
Data Akhir :
22, 25, 32, 34, 42, 75, 95
#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();
}
Fungsi sorting
 Diperlukan untuk mempercepat pencarian suatu
target dalam suatu daftar (list)
 Metode pengurutan :
 Ascending
 Pengurutan yang dilakukan mulai dari nilai terkecil menuju
nilai terbesar
 Descending
 Pengurutan yang dilakukan mulai dari nilai terbesar menuju
nilai terkecil
Jenis Sorting
 Internal sorting
 Insertion sort
 Selection sort
 Bubble sort
 Quick sort
 Merge sort
 Binary tree sort
 External sorting
 Two way sort
 Balanced two way sort
 Balanced k-way sort
Selection Sort
519 69 69 69 69

419 419 127 127 127

127 127 419 381 381

69 519 519 519 419

381 381 381 419 519


Bubble Sort
519 519 519 519 69

419 419 419 69 519

127 127 69 419 419

69 69 127 127 127

381 381 381 381 381

69 69 69 69

519 519 519 127

419 419 127 519

127 127 419 419

381 381 381 381


69 69 69

127 127 127

519 519 381

419 381 519

381 419 419

69 69

127 127

381 381

519 419

419 519
Insertion Sort
519 419 127 69 69

419 519 419 127 127

127 127 519 419 381

69 69 519 419
69

381 381 381 519


381
Quick Sort
44 33 11 55 77 90 40 60 99 22 88 66

22 33 11 55 77 90 40 60 99 44 88 66

22 33 11 44 77 90 40 60 99 55 88 66

22 33 11 40 77 90 44 60 99 55 88 66

22 33 11 40 44 90 77 60 99 55 88 66
22 33 11 40 44 90 77 60 99 55 88 66

11 33 22 40 44 66 77 60 99 55 88 90

11 22 33 40 44 66 77 60 90 55 88 99

11 22 33 40 44 66 77 60 88 55 90 99

11 22 33 40 44 55 77 60 88 66 90 99
11 22 33 40 44 55 66 60 88 77 90 99

11 22 33 40 44 55 60 66 88 77 90 99

11 22 33 40 44 55 60 66 77 88 90 99

11 22 33 40 44 55 60 66 77 88 90 99
Merge sort
34 36 23 12 16 18 24 10

34 36 12 23 16 18 10 24

12 23 34 36 10 16 18 24

10 12 16 18 23 24 34 36
External Sort
 File dan record yang akan disort dengan urutan key sbb:

5 110 95 10 100 36 153 40 120 60 70 130 22 140 80

File 1 : 5 95 110 40 120 153 22 80 140

File 2 : 10 36 100 60 70 130

File 1 :

File 2 :

File 3 : 5 10 36 95 100 110 40 60 70 120 130 153 22 80 140


File 1 : 5 10 36 95 100 110 22 80 140

File 2 : 40 60 70 120 130 153

File 3 :

File 1 :

File 2 :

File 3 : 5 10 36 40 60 70 95 100 110 120 130 153 22 80 140


File 1 : 5 10 36 40 60 70 95 100 110 120 130 153

File 2 : 22 80 140

File 3 :

File 1 :

File 2 :

File 3 : 5 10 22 36 40 60 70 80 95 100 110 120 130 140 153

Anda mungkin juga menyukai