SELECTION
SORT
NAMA :
BOBY ADE SAPUTRA
Ketua KELOMPOK 3 (TIGA)
NPM : 1123006
KELAS :
D3 TEKNIK INFORMATIKA 1A
===========================================================================
#include<stdio.h>
void
tampilkan_larik(int data[], int n) //FUNGSI TAMPILKAN LARIK
{
int
i; //DEKLARASI INDEX UNTUK ARRAY
for
(i=0;i<n;i++) //PENGULANGAN UNTUK TAMPILKAN ARRAY
printf("%d\n",data[i]);
printf("\n");
}
void
selection_sort_ascending(int data[],int n) //FUNGSI ASCENDING
{
int
posMin,posAwal,j,tmp; //DEKLARASI INDEX UNTUK ARRAY
for
(posAwal=0;posAwal<n-1;posAwal++) //ARTINYA ELEMEN TERAKHIR TIDAK DIHITUNG
{
posMin=posAwal; //SET MIN = INDEX ARRAY
for
(j=posAwal+1;j<n;j++) //MELAKUKAN PERULANGAN SEBAGAI PEMBANDING
if
(data[posMin] > data[j]) //CARI DATA YANG KECIL
posMin=j; //MIN DIGANTI DENGAN YANG LEBIH KECIL
//PROSES SORTING//
tmp
=data[posAwal]; //TAMPUNG DATA YANG LAMA
data[posAwal]=data[posMin]; //GANTI
ARRAY YANG LAMA DENGAN YANG BARU
data[posMin]=tmp; //GANTI ARRAY YANG BARU DENGAN YANG LAMA
}}
void
selection_sort_descending(int data[],int n) //FUNGSI CASCENDING
{
int
posMax,posAwal,j,tmp; //DEKLARASI INDEX UNTUK ARRAY
for
(posAwal=0;posAwal<n-1;posAwal++) //ARTINYA ELEMEN TERAKHIR TIDAK DIHITUNG
{
posMax=posAwal; //SET MAX = INDEX ARRAY
for
(j=posAwal+1;j<n;j++) //MELAKUKAN PERULANGAN SEBAGAI PEMBANDING
if
(data[posMax] < data[j]) //CARI DATA YANG BESAR
posMax=j; //MAX DIGANTI DENGAN YANG LEBIH BESAR
//PROSES SORTING//
tmp
=data[posAwal]; //TAMPUNG DATA YANG LAMA
data[posAwal]=data[posMax]; //GANTI
ARRAY YANG LAMA DENGAN YANG BARU
data[posMax]=tmp; //GANTI ARRAY YANG BARU DENGAN YANG LAMA
}}
int
main() //FUNGSI MENU DAN INPUTAN
{
int
i; //DEKLARASI INDEX ARRAY
int
pilih; //DEKLARASI UNTUK MEMILIH MENU
int
n,Urut; //DEKLARASI UNTUK BANYAK DATA
char
lagi; //DEKLARASI UNTUK MEMILIH MENU LAGI
int
data[100]; //DEKLARASI ARRAY
//APLIKASI DIMULAI
do{
printf("=================================================================\n");
printf("\n
Masukan jumlah data:"); scanf("%d",&n); //MEMASUKAN JUMLAH
DATA
//INPUT ARRAY
Urut
= 1;
for(i
= 0; i < n; i++) { //PERULANGAN UNTUK INPUTAN ARRAY
printf("Masukan
data ke %d : ", i + 1);
scanf("%d",
&data[i]); }
printf("=================================================================\n");
printf("Menu
Pengurutan:\n 1.Ascending\n 2.Descending\n"); //MENU PENGURUTAN
printf("Pilih
Menu:");scanf("%d",&pilih); //MEMILIH MENU PENGURUTAN
if(pilih==1) //JIKA MEMILIH MENU 1
{selection_sort_ascending(data,n); //MEMILIH MENU ASCENDING
}else
if(pilih==2) //JIKA MEMILIH MENU 2
{selection_sort_descending(data,n); //MEMILIH MENU CASCENDING
}else //SELAIN ITU
{printf("Anda
salah memilih menu"); } //SALAH MENU
printf("=================================================================\n");
printf("HASIL
PENGURUTAN:\n"); //MENAMPILKAN HASIL PENGURUTAN
tampilkan_larik(data,n);
printf("=================================================================\n");
printf("Apakah
Anda akan memilih MENU pengurutan lagi?\n"); //MEMILIH MENU LAGI
printf("pilih
y/n:");scanf("%s",&lagi);
}while
((lagi=='y')||(lagi=='Y')); //TEKAN Y JIKA MEMILIH MENU LAGI
return
0; //MEMANGGIL
PENGURUTAN ARRAY
}
HASIL
COMPILE