20 30 40 50 60 70 80
Hasil sudah menunjukkan sorting dengan pengurtan 2. Hasil performance compile program
data terkecil ke terbesar (ascending).
cout<<setw(3)<<NumList[iii];
}
Gambar 4. Hasil Running Program
}
Selection Sort dengan data sebanyak 5
data.
#include<iostream>
using namespace std;
#include<iomanip>
#include<conio.h>
void selectionSort(int
array[], const int size)
{
int i, j, kecil, temp;
for(i=0; i<size; i++)
{
kecil=i; for (j=i+1;
j<size; j++)
{
if (array Gambar 7. Performance Process Selection
[kecil]>array[j]) Sort 50 data.
{
kecil=j; 9. Hasil program saat dijalankan (running
} program)
}
temp=array[i];
array[i]=array [kecil];
array[kecil]=temp;
}
}
int main()
{
int
NumList[50]={31,34,87,65,90,
87,56,43,90,77,11,23,45,65,1
2,45,32,46,89,67,54,31,34,98
,34,21,23,43,55,46,78,98,76,
45,33,12,13,14,16,89,91,23,1 Gambar 8. Hasil Running Program
8,56,43,89,10,57}; Selection Sort 50 data.
cout<<"SELECTION
SORT"<<endl; Hasil data setelah diurutkan:
10, 11, 12, 12, 13, 14, 16, 18, 21, 23, 23,
cout<<"===================== 23, 31, 31, 32, 33, 34, 34, 34, 43, 43, 43,
==========="<<endl; 45, 45, 45, 46, 54, 55, 56, 57, 65, 67, 76,
cout<<"Data Sebelum 77, 78, 87, 89, 89, 90, 90, 91, 98, 98
Diurutkan: \n";
for(int d=0; d<50; d++) B. Shell Sort
{ 1. Program Shell Short dengan jumlah
cout<<setw(3)<<NumList[d]; data sebanyak lima (5).
}
cout<<"\n "; #include <iostream>
selectionSort(NumList, 50); using namespace std;
cout<<"Data Sesudah
Diurutkan \n\n " ; int shellSort(int arr[],
for(int iii=0; iii<50; int n)
iii++) {
{ for (int gap = 5/2;
gap > 0; gap /= 2)
cout<<setw(3)<<NumList[iii]; {
}
} for (int i = gap;
i < 5; i += 1)
{
int temp =
arr[i];
int j;
6
for (j = i; j
>= gap && arr[j - gap] >
temp; j -= gap)
arr[j] =
arr[j - gap];
arr[j] = temp;
}
}
return 0; Gambar 10. Hasil Running Program Shell Sort
} 5 data.
return 0;
}
int j;
2. Hasil performance compile program
for (j = i; j >=
gap && arr[j - gap] > temp; j
-= gap)
arr[j] = arr[j
- gap];
arr[j] = temp;
Gambar 9. Performance Process Shell Sort 5
data.
}
return 0;
3. Hasil program saat dijalankan (running
}
program)
7
{ #include <iostream>
using namespace std;
int arr[25] =
int shellSort(int arr[], int n)
{30,49,65,11,77,43,98,65,12,1
{
0,11,43,95,30,65,71,24,36,45,
for (int gap = 50/2; gap
96,61,13,27,72,21}, i;
> 0; gap /= 2)
{
int n =
sizeof(arr)/sizeof(arr[0]);
for (int i = gap; i <
50; i += 1)
cout << "Shell Sort data {
sebelum disusun: \n";
int temp = arr[i];
printArray(arr, 25);
int main()
Gambar 11. Performance Process Shell Sort 25 {
Data int arr[50] =
{30,49,65,11,77,43,98,65,12,10,
11,43,95,30,65,71,24,36,45,96,6
6. Hasil program saat dijalankan (running 1,13,27,72,21,12,45,86,97,65,83
program) ,98,35,75,89,13,31,25,16,69,65,
45,11,22,35,67,98}, i;
8
int n = return
sizeof(arr)/sizeof(arr[0]); binarySearch(a, item, mid+1,
high);
cout << "Shell Sort data return binarySearch(a,
sebelum disusun: \n"; item, low, mid-1);
printArray(arr, 50); }
void insertionSort(int a[],
shellSort(arr, 50); int n)
{
cout << "\nShell Sort data int i, loc, j, k,
setelah disusun: \n"; selected;
printArray(arr, 50);
for (i = 1; i < 5; ++i)
return 0; {
} j = i - 1;
selected = a[i];
8. Hasil performance compile program
loc = binarySearch(a,
selected, 0, j);
insertionSort(a, n);
printf("BINARY INSERTION
SORT: \n");
Gambar 14. Hasil Running Program Shell for (i = 0; i < 5; i++)
Sort 50 Data printf("%d ",a[i]);
{
if (high <= low)
return (item >
a[low])? (low + 1): low;
int main()
{
int a[25] =
Gambar 15. Running Program Binary {31,34,87,65,90,87,56,43,90,
Insertion Sort 5 data. 77,11,23,45,65,12,45,32,46,8
9,67,54,31,34,98,34};
Data sebelum diurutkan = 37, 23, 76, 12, 31 int n =
Data setelah diurutkan = 12, 23, 31, 37, 76 sizeof(a)/sizeof(a[0]), i;
if(item == a[mid])
return mid+1;
for (i = 1; i < 25; ++i) Gambar 17. Hasil Running Program Binary
{ Insertion Sort 25 data.
j = i - 1;
selected = a[i]; Data sebelum diurutkan =
31, 34, 87, 65, 90, 87, 56, 43, 90, 77, 11, 23,
45, 65, 12, 45, 32, 46, 89, 67, 54, 31, 34, 98,
loc = binarySearch(a, 34
selected, 0, j); Data setelah diurutkan =
11, 12, 23, 31,31, 32, 34, 34, 34, 43, 45, 45,
while (j >= loc)
46, 54, 55, 65, 65, 67, 77, 87, 87, 89, 90, 90,
{
98
a[j+1] = a[j];
10
if(item == a[mid])
return mid+1; return 0;
}
if(item > a[mid])
return 8. Hasil performance compile program
binarySearch(a, item, mid+1,
high);
return binarySearch(a,
item, low, mid-1);
}
j = i - 1;
selected = a[i];
loc = binarySearch(a,
selected, 0, j); Gamabr 19. Running Program Binary
Insertion Sort 50 data telah diurutkan.
while (j >= loc)
{ Data sebelum diurutkan = 31, 34, 87, 65,
a[j+1] = a[j]; 90, 87, 56, 43, 90, 77, 11, 23, 45, 65, 12, 45,
j--; 32, 46, 89, 67 , 54, 31, 34, 98, 34, 30, 49,
} 65, 11, 77, 43, 98, 65, 12, 10, 11, 43, 95, 30,
a[j+1] = selected; 65, 71, 24, 36, 45, 96, 61, 13, 27, 72, 21
}
} Data sesudah dirutkan = 10, 11, 11, 11, 12,
12, 13, 21, 23, 24, 27, 30, 30, 31, 31, 32, 34,
34, 34, 36, 43, 43, 43, 45, 45, 45, 46, 46, 49,
int main() 54, 56, 61, 65, 65, 65, 65, 65, 65, 67, 71, 72,
{ 77, 77, 87, 87, 89, 90, 90, 95, 96, 98. 98
int a[50] =
{31,34,87,65,90,87,56,43,90,
11
IV. ANALISIS HASIL IMPLEMENTASI Dari Gambar 22 dapat dianalisis bahwa hasil
performance dari Algoritma Binary
A. Selection Sort Insertion Sort memiliki perbedaan dengan
t analisis Algoritma Selection Sort dan Shell
Sort. Untuk Algoritma Binary Insertion Sort
semakin banyak jumlah data yang
dimasukkan maka hasil performance saat
program di proses akan semakin
membutuhkan waktu yang lama.
D. Perbandingan Performance
data
VI. REFERENSI