Anda di halaman 1dari 11

MODUL PRAKTIKUM

STRUKTUR
DATA
TA. 2020-2021

Laboratorium Jaringan Komputer


dan Struktur Data (Netlab)
2021
BAB 4
SORTING ( BUBLE, EXCHANGE, INSERTION )
4.1 PENGERTIAN
Sorting dalam arti bahasa adalah pengelompokan sebuah data yang
tersusun secara acak yang kemudian di urutkan secara ascending (urutan naik)
maupun discending (urutan turun). Pengurutan data dalam struktur data sangat
penting terutama untuk data yang bertipe data numerik ataupun karakter.
Data Acak : 9 1 0 5 78 31 55 10
Ascending : 0 1 5 9 10 31 55 78
Descending : 78 55 31 10 9 5 1 0
Metode sorting terdiri dari :
a) Bubble Sort
b) Exchange Sort
c) Insection sort
d) Selection Sort
e) Quicksort
Deklarasi array dalam sorting bentuk umumnya adalah sebagai berikut.
int data[100]; // banyak data di sediakan
int a,b; // variable biasanya 2 atau lebih

Kemudian dalam sorting terdapat prosedur untuk menukar 2 buah data dengan
bentuk umumnya sebagai berikut
void tukar
{
int tmp = data[a];
data[a] = data[b];
data[b] = tmp;
}

4.2 BUBBLE SORT


Bubble adalah metode dalam sorting yang paling mudah logikanya.
Diberi nama “Bubble” karena proses pengurutanya berangsur angsur
bergerak/berpindah ke posisi yang tepat, seperti gelembung yang keluar dari
dalam gelas bersoda. Cara kerja metode ini adalah dengan cara
membandingkan elemen sekarang dengan elemen berikutnya. Metode ini

1
seolah-olah menggeser satu elemen dari kanan kekiri atau sebeliknya,
tergantung jenis pengurutanya.

Contoh logika Bubble Sort :


Data : 3,4,1,8,12
Proses 1

Gambar 4.1 Proses 1 Bubble Sort


Proses 2

Gambar 4.2 Proses 2 Bubble Sort


Proses akan berulang sebanyak 4 kali ( banyak data yang akan di sorting
dikurangi 1 ).

4.3 CONTOH PROGRAM BUBBLE SORT


#include<iostream>
using namespace std;

int main()
{
int list[4]={7,5,9,3};
int temp;
cout<<"Data Random ";
for(int d=0;d < 4;d++)
{
cout<<" "<<list[d];
}

2
cout<<"\n\n";

for(int i=0;i<=3;i++)
{
cout<<" Proses ke "<<i+1<<" = ";
for(int x=0;x<3;x++)
{
if(list[x]>=list[x+1])
{
temp=list[x];
list[x]=list[x+1];
list[x+1]=temp;
}
}

for(int y=0;y<4;y++)
{
cout<<" "<<list[y];
}
cout<<endl;
}
cout<<endl;
cout<<"Data setelah di urutkan : ";
for (int d=0;d<4;d++)
{
cout<<" "<<list[d];
}
}

Tampilan program

Gambar 4.3 Tampilan program Bubble Sort

4.4 EXCHANGE SORT


Exchange Sort adalah metode dalam sorting dimana dikatakan sangat
mirip dengan metode sorting buble sort. Namun, exchange sort
membandingkan suatu elemen dengan elemen-elemen lainnya dalam array

3
tersebut, dan melakukan pertukaran elemen jika perlu. Jadi ada elemen yang
selalu menjadi elemen pusat (pivot). Sedangkan Bubble sort akan
membandingkan elemen pertama/terakhir dengan elemen
sebelumnya/sesudahnya, kemudian elemen tersebut itu akan menjadi pusat
(pivot) untuk dibandingkan dengan elemen sebelumnya/sesudahnya lagi,
begitu seterusnya. Disitulah dimana letak perbedaan exchange dan bubble sort
terletak.

Contoh logika Exchange Sort :


Data : 84,69,76,86,94,91
Proses 1

Gambar 4.4 Proses 1 Exchange Sort


Proses 2

Gambar 4.5 Proses 2 Exchange Sort

4
Proses 3

Gambar 4.6 Proses 3 Exchange Sort


Proses 4

Gambar 4.7 Proses 4 Exchange Sort

Proses 5

Gambar 4.8 Proses 5 Exchange Sort


Ket : Pivot adalah bagian yang di lingkari dan akan dibandingkan dengan data
yang diberi anak panah.

4.5 CONTOH PROGRAM EXCHANGE SORT


#include <iostream>
using namespace std;

int main()
{
int data[6]={84,69,58,46,94,91};
int tanda;
cout<<"Data awal : ";
for(int x;x<6;x++)
{
cout<<data[x]<<" ";

5
}
cout<<endl<<endl;
for(int b=0;b<5;b++) // looping Proses dan
pivot
{
cout<<"Proses "<<b+1<<" = ";
for(int a=b;a<5;a++) //looping
perbandingan pivot dengan kolom
{
if(data[b]<data[a+1])
{

data[b]=data[b];
}
else
{

tanda=data[b];

data[b]=data[a+1];

data[a+1]=tanda;
}
}
for(int a=0;a<6;a++)
{
cout<<data[a]<<" ";
}
cout<<endl;
}
}

Tampilan program

Gambar 4.9 Tampilan program Exchange Sort

4.6 INSERTION SORT


Insertion Sort adalah metode dalam sorting. Dimana logiknya hampir
mirip seperti mengurutkan sebuah kartu. Dimana kartu tersebut di urutkan

6
selembar demi selembar. Dalam insertion pengurutan dimulai dari elemen-2
sampai elemen terakhir, jika ditemukan yang lebih kecil, maka akan
ditempatkan pada posisi yang seharusnya.

Contoh logika Insertion Sort :


Data : 22,10,15,3,8,2
Proses 1

Gambar 4.10 Proses 1 Insertion Sort

Proses 2

Gambar 4.11 Proses 2 Insertion Sort

7
Proses 3

Gambar 4.12 Proses 3 Insertion Sort

Proses 4

Gambar 4.13 Proses 4 Insertion Sort

8
Proses 5

Gambar 4.14 Proses 5 Insertion Sort

4.7 CONTOH PROGRAM INSERTION SORT


#include <iostream>
using namespace std;

int main()
{
int data[5]={20,34,12,5,60};
cout<<"Data awal : ";
for(int i=0;i<5;i++)
{
cout<<data[i]<<" ";
}
cout<<endl;

int temp,x,j;
for(x=1;x<5;x++)
{
temp = data[x];
for(j=x-1;j>=0;j--)
{
if (temp<= data[j])
{
data[j+1]=data[j];
data[j]=temp;
temp=data[j];
}
}
cout<<"Proses "<<x<<" = ";
for(int y=0;y<5;y++)
{
cout<<data[y]<<" ";
}
cout<<endl;
}

9
}

Tampilan program

Gambar 4.15 Tampilan program Insertion Sort

10

Anda mungkin juga menyukai