Anda di halaman 1dari 6

MODUL PRAKTIKUM

STRUKTUR
DATA
TA. 2020-2021

Laboratorium Jaringan Komputer


dan Struktur Data (Netlab)
2020
BAB 5
SORTING (Selection, Quick)
5.1 Selection Sort
Selection adalah metode dalam sorting pengurutan dengan cara elemen
terkecil atau terbesar, sesuai permintaan. untuk kemudian dibandingkan &
ditukarkan dengan elemen data awal seterusnya sampai dengan seluruh
elemen,sehingga akan menghasilkan pola data yang telah di sort.
Prinsip kerja selection sort:
1. Pengecekan dimulai data ke -1 sampai dengan data ke -n (misal i &
pos ).
2. Bandingkan data pos dengan data i+1 ( misal j ).
3. Jika data pos tidak sesuai dengan kondisi maka pos = j dan j akan
selalu bertambah ( j++ ) sampai melewati n.
4. Lakukan langkah 2 dan 3 untuk bilangan berikutnya sampai
didapatkan urutan yg optimal.
5. Mengecek apakah i != pos jika ya, maka data akan di tukar.
6. Lakukan proses 1 sampai 5 dampai di dapatkan proses ke n-1.

Contoh logika selection sort :


Data => 32 75 69 58 21 40

1
Contoh program :
#include <iostream>
using namespace std;
main(){
int data[6] = {32,75,69,58,21,40};
int i,pos,j,temp;
i = 0;
pos = 0;
j = 1;
cout<<"Data Awal : ";
for(int x=0;x<=5;x++){
cout<<data[x]<<" ";
}
cout<<endl<<endl;

for(int z=0;z<=4;z++){
i = z;
pos = z;
j = z + 1;
while (j < 6){
if(data[j] < data[pos]){
pos = j;
j = j + 1;
}else{
pos = pos;
j = j + 1;
}
}

if(pos!=i){
temp = data[pos];
data[pos] = data[i];
data[i] = temp;

2
}
cout<<"Proses "<<z+1<<" = ";

for(int x=0;x<=5;x++){
cout<<data[x]<<" ";
}
cout<<endl;
}
}

Tampilkan :

Gambar 5.1 Tampilan program selection sort


5.2 Quick Sort
Quicksort adalah metode dalam sorting yang mana adalah pengurutan
membandingkan suatu elemen yang disebut pivot ( memilih index tengah dari
array ) dengan elemen yang lain dan menyusunnya sedemikian rupa sehingga
elemen‐elemen lainnya yang lebih kecil daripada pivot tersebut terletak
disebelah kirinya dan elemen ‐ elemen lain yang lebih besar daripada pivot
terletak disebelah kanannya.
Dengan demikian telah terbentuk dua sublist, lalu pada sublist kiri dan
sublist kanan anggap sebuah list baru dan kerjakan proses yang sama seperti
sebelumnya. Demikian seterusnya sampai tidak terdapat sublist lagi.

3
Algoritma quick sort :
1. Mengecek apakah A [ i ] < tengah
a. Jika ya, i++ ; Ke langkah 1
b. Jika tidak, i = i ; ke langkah 2
2. Mengecek apakah A [ j ] > tengah
a. Jika ya, j-- ; ke langkah 2
b. Jika tidak, j = j ; ke langkah 3
3. Mengecek apakah i <= j
a. Jika ya, tukar A [ i ] dengan A [ j ]
i++, j-- ; ke langkah 4
b. Jika tidak, ke langkah 4
4. Mengecek apakah i > j
a. Jika ya, ke langkah 5
b. Jika tidak, ke langkah 1
5. Mengecek apakah L < j
a. Jika ya, panggil fungsi Quicksort( L, J )
b. Jika tidak, ke langkah 6
6. Mengecek apakah i < R
a. Jika ya, panggil Quicksort ( i, R )
b. Jika tidak, Selesai.

Contoh program Quick Sort :


#include <iostream>
using namespace std;
int data[5] = { 23, 13, 45, 89,50 };
void QuickSort(int L, int R){
int i, j;
int mid;
i = L;
j = R;
mid = data[(L + R) / 2];
do{
while(data[i] < mid) i++;
while (data[j] > mid) j--;

if (i <= j){
int t;
t = data[j];
data[j] = data[i];
data[i] = t;
i++;

4
j--;
cout<<"Quicksort ("<<L<<", "<<R<<") = ";
for(int i=0;i<5;i++){
cout<<data[i]<<" ";
}
cout<<endl;
}
}while (i < j);

if (L < j) QuickSort(L, j);


if (i < R) QuickSort(i, R);
}

main(){
cout<<" Proses Quick Sort"<<endl;
cout<<"------------------------------------- "<<endl;
cout<<"Data awal : ";
for(int i=0;i<5;i++){
cout<<data[i]<<" ";
}
cout<<endl;
QuickSort(0,4);
}

Tampilan :

Gambar 5.2 Tampilan program quick sort

Anda mungkin juga menyukai