Advertisement here

cara kerja metode maximum/minumum sort pada c++

 Metode Maximum/Minimum Sort

Metode Maximum/Minimum Sort dilakukan berdasarkan pemilihan elemen maksimum/minimum, maka metode ini disebut juga dengan metode pemilihan/seleksi (Selection Sort).

 

4.1 Metode Maximum Sort

Metode ini disebut dengan metode Maximum karena didasarkan pada pemilihan elemen maksimum sebagai dasar pengurutan. Konsepnya adalah memilih elemen maksimum kemudian mempertukarkan elemen maksimum tersebut dengan elemen paling akhir untuk urut menaik dan elemen pertama untuk urut menurun. Selanjutnya elemen paling akhir/awal tersebut di-“isolasi”, artinya elemen tersebut tidak disertakan lagi untuk tahapan berikutnya. Proses yang sama dilakukan kembali terhadap elemen array yang tersisa, yaitu memilih elemen maksimum kemudian mempertukarkan elemen maksimum tersebut dengan elemen paling akhir/awal dari array yang tersisa tadi. Kemudian diisolasi kembali. Demikian seterusnya hingga semua elemen terurut.

Contoh: Misalkan kita mempunyai array Nilai sebanyak 8 elemen akan diurutkan secara menaik dengan metode Maximum Sort: 25, 72, 30, 45, 20, 15, 6, 50. Urutan langkah pengurutannya seperti berikut dan programnya dapat dilihat pada program Lat_Sorting_04a.

Langkah -1: Cari elemen maksimum di dalam array Nilai[0..7] → Nilai[1]=72 kemudian tukarkan dengan elemen array paling akhir Nilai[7] sehingga diperoleh array:

proses maximum sort menaik ke-1

Langkah -2: Cari elemen maksimum di dalam array yang tersisa Nilai[1..7] → Nilai[1]=50 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[6] sehingga diperoleh array:

proses maximum sort menaik ke-2

Langkah -3: Cari elemen maksimum di dalam array yang tersisa Nilai[2..7] → Nilai[3]=45 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[5] sehingga diperoleh array:

proses maximum sort menaik ke-3

Langkah -4: Cari elemen maksimum di dalam array yang tersisa Nilai[3..7] → Nilai[2]=30 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[4] sehingga diperoleh array:

proses maximum sort menaik ke-4

Langkah -5: Cari elemen maksimum di dalam array yang tersisa Nilai[4..7] → Nilai[0]=25 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[3] sehingga diperoleh array:

proses maximum sort menaik ke-5

Langkah -6: Cari elemen maksimum di dalam array yang tersisa Nilai[5..7] → Nilai[2]=20 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[2], sehingga diperoleh array:

proses maximum sort menaik ke-6

Langkah -7: Cari elemen maksimum di dalam array yang tersisa Nilai[6..7] → Nilai[0]=15 kemudian tukarkan dengan elemen paling akhir array yang tersisa Nilai[1], sehingga diperoleh array:

proses maximum sort menaik selesai

Selesai. Dan array telah terurut secara menarik. Program mengurutkan secara menaik dengan metode Maximum Sort dapat dilihat pada program Lat_Sorting_04a.

/* Program Pengurutan Metode Maximum Sort
Pengurutan Secara Menaik
Nama File : Lat_Sorting_04a */
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int Nilai[20];
int i, j, N, l;
int temp, U, Imaks;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}
//Proses Cetak Sebelum diurutkan
cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
//Proses Pengurutan
U=N-1;
for(i=0; i<=N-2; i++)
{
Imaks = 0;
for(j=1; j<=U; j++)
{
if(Nilai[j] > Nilai[Imaks])
Imaks = j;
}
temp = Nilai[U];
Nilai[U] = Nilai[Imaks];
Nilai[Imaks] = temp;
U--;
cout<<endl;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai[l];
}
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}

 

Contoh: Misalkan kita mempunyai array Nilai sebanyak 8 elemen akan diurutkan secara menurun dengan metode Maximum Sort 25, 72, 30, 45, 20, 15, 6, 50. Urutan langkah pengurutannya seperti berikut dan programnya dapat dilihat pada program Lat_Sorting_04b.

Langkah -1: Cari elemen maksimum di dalam array Nilai[0..7] → Nilai[1]=72 kemudian tukarkan dengan elemen pertama array Nilai[0]=25 sehingga diperoleh array:

proses meximum sort menurun ke-1

Langkah -2: Cari elemen maksimum di dalam array yang tersisa Nilai[1..7] → Nilai[7]=50 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[1]=25 sehingga diperoleh array:

proses meximum sort menurun ke-2

Langkah -3: Cari elemen maksimum di dalam array yang tersisa Nilai[2..7] → Nilai[3]=45 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[2]=30 sehingga diperoleh array:

proses meximum sort menurun ke-3

Langkah -4: Cari elemen maksimum di dalam array yang tersisa Nilai[3..7] →Nilai[3]=3- kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[3]=30 sehingga diperoleh array:

proses meximum sort menurun ke-4

Langkah -5: Cari elemen maksimum di dalam array yang tersisa Nilai[4..7] → Nilai[7]=35 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[4]=30 sehingga diperoleh array:

proses meximum sort menurun ke-5

Langkah -6: Cari elemen maksimum di dalam array yang tersisa Nilai[5..7] → Nilai[7]=20 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[5]=15 sehingga diperoleh array:

proses meximum sort menurun ke-6

Langkah -7: Cari elemen maksimum di dalam array yang tersisa Nilai[6..7] → Nilai[7]=15 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[6]=6 sehingga diperoleh array:

proses meximum sort menurun selesai

Selesai. Dan array telah terurut secara menurun. Program mengurutkan secara menurun dengan metode Maximum Sort dapat dilihat pada program Lat_Sorting_04b.

/* Program Pengurutan Metode Maximum Sort
Pengurutan Secara Menurun
Nama File : Lat_Sorting_04b */
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int Nilai[20];
int i, j, N, l;
int temp, U, Imaks;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}
//Proses Cetak Sebelum diurutkan
cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
//Proses Pengurutan
U=N-1;
for(i=0; i<=N-2; i++)
{
Imaks = i;
for(j=i+1; j<=U; j++)
{
if(Nilai[j] > Nilai[Imaks])
Imaks = j;
}
temp = Nilai[i];
Nilai[i] = Nilai[Imaks];
Nilai[Imaks] = temp;
cout<<endl;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai[l];
}
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}

 

4.2. Metode Minimum Sort

Metode ini disebut dengan metode minimum karena didasarkan pada pemilihan elemen minimum sebagai dasar pengurutan. Konsepnya adalah memilih elemen minimum kemudian mempertukarkan elemen minimum tersebut dengan elemen paling akhir untuk urut menaik dan elemen pertama untuk urut menurun. Selanjutnya elemen paling akhir/pertama tersebut di “isolasi” artinya elemen tersebut tidak disertakan lagi untuk tahapan berikutnya. Proses yang sama dilakukan kembali terhadap elemen array yang tersisa, yaitu memilih elemen minimum kemudian mempertukarkan elemen minimum tersebut dengan elemen paling akhir/pertama dari array yang tersisa tadi. Kemudian diisolasi kembali. Demikian seterusnya hingga semua elemen terurut.

Contoh: Misalkan kita mempunyai array Nilai sebanyak 8 elemen akan diurutkan secara menaik dengan metode Minimum Sort: 25, 72, 30, 45, 20, 15, 6, 50. Urutan langkah pengurutannya seperti berikut dan programnya dapat dilihat pada program Lat_Sorting_05a.

Langkah -1: Cari elemen minimum di dalam array Nilai[0..7] → Nilai[6]=6 kemudian tukarkan dengan elemen pertama array Nilai[0]=25 sehingga diperoleh array:

proses minimum sort menaik ke-1

Langkah -2: Cari elemen minimum di dalam array Nilai[1..7] → Nilai[5]=15 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[1]=72 sehingga diperoleh array:

proses minimum sort menaik ke-2

Langkah -3: Cari elemen minimum di dalam array Nilai[2..7] → Nilai[4]=2- kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[2]=30 sehingga diperoleh array:

proses minimum sort menaik ke-3

Langkah -4: Cari elemen minimum di dalam array Nilai[3..7] → Nilai[6]=25 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[3]=45 sehingga diperoleh array:

proses minimum sort menaik ke-4

Langkah -5: Cari elemen minimum di dalam array Nilai[4..7] → Nilai[4]=30 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[4]=30 sehingga diperoleh array:

proses minimum sort menaik ke-5

Langkah -6: Cari elemen minimum di dalam array Nilai[5..7] → Nilai[6]=45 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[5]=72 sehingga diperoleh array:

proses minimum sort menaik ke-6

Langkah -7: Cari elemen minimum di dalam array Nilai[6..7] → Nilai[7]=50 kemudian tukarkan dengan elemen pertama array yang tersisa Nilai[6]=72 sehingga diperoleh array:

proses minimum sort menaik ke-7

/* Program Pengurutan Metode Minimum Sort
Pengurutan Secara Menaik
Nama File : Lat_Sorting_05a */
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int Nilai[20];
int i, j, N, l;
int temp, Imin;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}
//Proses Cetak Sebelum diurutkan
cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
//Proses Pengurutan
for(i=0; i<=N-2; i++)
{
Imin = i;
for(j=i+1; j<N; j++)
{
if(Nilai[j] < Nilai[Imin]);
Imin = j;
}
temp = Nilai[i];
Nilai[i] = Nilai[Imin];
Nilai[Imin] = temp;
cout<<endl;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai(l);
}
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
getch();
}

 

Contoh: Misalkan kita mempunyai array Nilai sebanyak 8 elemen akan diurutkan secara menurun dengan metode Minimum Sort: 25, 72, 30, 45, 20, 15, 6, 50. Urutan langkah pengurutannya seperti berikut dan programnya dapat dilihat pada program Lat_Sorting_05b.

Langkah -1: Cari elemen minimum di dalam array Nilai[0..7] → Nilai[6]=6 kemudian tukarkan dengan elemen terakhir array Nilai[7]=50 sehingga diperoleh array:

proses minimum sort menurun ke-1

Langkah -2: Cari elemen minimum di dalam array yang tersisa Nilai[0..6] → Nilai[5]=15 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[6]=50 sehingga diperoleh array:

proses minimum sort menurun ke-2

Langkah -3: Cari elemen minimum di dalam array yang tersisa Nilai[0..5] → Nilai[4]=20 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[5]=50 sehingga diperoleh array:

proses minimum sort menurun ke-3

Langkah -4: Cari elemen minimum di dalam array yang tersisa Nilai[0..4] → Nilai[0]=25 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[4]=50 sehingga diperoleh array:

proses minimum sort menurun ke-4

Langkah -5: Cari elemen minimum di dalam array yang tersisa Nilai[0..3] → Nilai[2]=30 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[3]=45 sehingga diperoleh array:

proses minimum sort menurun ke-5

Langkah -6: Cari elemen minimum di dalam array yang tersisa Nilai[0..2] → Nilai[2]=45 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[2]=45 sehingga diperoleh array:

proses minimum sort menurun ke-6

Langkah -7: Cari elemen minimum di dalam array yang tersisa Nilai[0..1] → Nilai[0]=50 kemudian tukarkan dengan elemen terakhir array yang tersisa Nilai[1]=72 sehingga diperoleh array:

proses minimum sort menurun ke-7

Selesai. Dan array terurut secara menurun. Program mengurutakan secara menurun dengan metode Minimum Sort dapat dilihat pada program Lat_Sorting_05b.

/* Program Pengurutan Metode Minimum Sort
Pengurutan Secara Menurun
Nama File : Lat_Sorting_05b */
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
int Nilai[20];
int i, j, N, l;
int temp, U, Imin;
cout<<"Masukkan Banyak Bilangan : ";
cin>>N;
for(i=0; i<N; i++)
{
cout<<"Elemen ke-"<<i<<" : ";
cin>>Nilai[i];
}
//Proses Cetak Sebelum diurutkan
cout<<"\nData sebelum diurut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i];
//Proses Pengurutan
U=N-1;
for(i=0; i<=N-2; i++)
{
Imin = 0;
for(j=1; j<=U; j++)
{
if(Nilai[j] < Nilai[Imin])
Imin = j;
}
temp = Nilai[U];
Nilai[U] = Nilai[Imin];
Nilai[Imin] = temp;
cout<<endl;
U--;
for(l=0; l<N; l++)
cout<<setw(3)<<Nilai[l];
}
cout<<"\nData Setelah di urut : ";
for(i=0; i<N; i++)
cout<<setw(3)<<Nilai[i]
getch();
}
Next Post Previous Post
No Comment
Add Comment
comment url