­

Pengurutan atau Sorting

sinaualpro.blogspot.com Sorting adalah proses mengatur sekumpulan objek menurut aturan atau susunan tertentu. Urutan objek tersebut dapat menaik atau disebut juga ascending (dari data kecil ke data lebih besar) ataupun menurun/descending(dari data besar ke data kecil).

Metode Sorting :

  1. Bubble Sort / Pengurutan Gelembung
  2. Selection Sort/Pengurutan Maksimum-minimum
  3. Insertion Sort/Pengurutan sisip
1. Bubble Sort / pengurutan gelembung ini merupakan suatu metode pengurutan gelembung yang diinspirasi oleh gelembung sabun yang ada di dalam permukaan air, karena berat jenis gelembung sabun lebih ringan daripada berat jenis air maka gelembung sabun akan selalu megapung. Prinsip pengapungan ini juga dipakai pada pengurutan gelembung. Elemen yang berharga paling kecil “diapungkan”, yang artinya diangkat ke atas (atau ke ujung paling kiri) melalui pertukaran. Proses pengapungan ini dilakukan N kali langkah.
Pada langkah ke 1, Baris [1….N] akan terdiri dari 2 bagian yaitu :
  • Bagian yang sudah terurut yaitu L[1]…L[i]
  • Bagian yang belum terurut L[i+1]..L[n]
Contoh Program Bubble Sort:
Secure Code:
#include <iostream.h>
#include <conio.h>
main(){
int nilai[‘n’];
int temp;
int n;
cout<<“Banyak Data: “;
cin>>n;
cout<<endl;
for (int a=1; a<=n; a++){
cout<<“nilai[“<<a<<“]: “;
cin>>nilai[a];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int a=1; a<=n; a++){
cout<<nilai[a]<<” “;
}
for(int a=n-1; a>=1; a–){
for(int b=1; b<=a; b++){
if(nilai[b]>nilai[b+1]){
temp=nilai[b+1];
nilai[b+1]=nilai[b];
nilai[b]=temp;
}
}
}
cout<<“\n\nData Setelah Diurutkan (Ascending)”<<endl;
for (int a=1; a<=n; a++){
cout<<nilai[a]<<” “;}
cout<<“\n\n”;
cout<<“\n\nData Setelah Diurutkan (Descending)”<<endl;
for (int a=n; a>=1; a–){
cout<<nilai[a]<<” “;}
getch();
}
Outputnya:

2. Selection Sort / Pengurutan Maksimum-Minimum, merupakan metode yang didasarkan pada pemilihan elemen maksimum atau minimum kemudian mempertukarkan elemen maksimum-minimum tersebut dengan elemen terujung baris (elemen ujung kiri atau elemen ujung kanan), selanjutnya elemen terujung itu kita “isolasi” dan tidak diikut sertakan pada proses selanjutnya. Karena proses utama dalam pengurutan adalah pemilihan elemen maksimum/minimum, maka metode ini disebut metode pemilihan (selection)

Contoh Program Selection Sort:
Secure Code:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main(){
//deklarasi array dengan 7 elemen
int A[7];
int j,k,i,temp;
int jmax,u=6;
//memasukkan nilai sebelum diurutkan
cout<<“Masukkan nilai pada elemen array :”<<endl;
for(i=0;i<7;i++)
{
cout<<“A[“<<i<<“]=”;
cin>>A[i+1];
}
//Proses pengurutan secara menaik (Ascending)
for(j=0;j<7;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k] > A[jmax])
jmax=k;
temp=A[u];
A[u]=A[jmax];
A[jmax]=temp;
u–;
}
//menampilkan nilai setelah diurutkan
cout<<“\nNilai setelah diurutkan =”<<endl;
for(i=0;i<7;i++)
cout<<A[i]<<”  “;
getch();
}
 Outputnya:

3. Insertion Sort merupakan metode pengurutan dengan cara menyisipkan elemen baris pada posisi yang tepat. Pencarian posisi yang tepat dilakukan dengan pencarian beruntun. Selama pencarian posisi yang tepat dilakukan pergeseran elemen baris.

Contoh Program Insertion Sort:
Secure Code:
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
main (){
int i,j, b, k, m, n,x,z,ketemu=0;
int data[‘n’], temp[100];
cout<<“\n======================\n”<<endl;
cout<<“\n—-BELAJAR SORTING—\n”;
cout<<“\n======================\n”<<endl;
cout<<“Inputkan Banyak Data: “;
cin>>n;
for(i=0; i<n; i++){
cout<<“Data Ke-“<<i<<” : “;
cin>>data[i];
}
cout<<“\n\n”;
cout<<“Data Sebelum diurutkan”<<endl;
for(int i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “;
cout<<endl;
}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]<data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Ascending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<” “;
cout<<data[i]<<” “<<endl;}
for (i=0; i<n; i++){
for (j=0; j<=i; j++)
{
if(data[i]>data[j])
{
m=data[i];
data[i]=data[j];
data[j]=m;
}
}
cout<<“\n#”<<i<<“: “;
for(k=0; k<=i; k++)
{
cout<<” “<<data[k];
}
}
cout<<“\n\n”;
cout<<“\nData Setelah Diurutkan (Descending):”<<endl;
for(i=0; i<n; i++){
cout<<i+1<<“.”;
cout<<data[i]<<” “<<endl;
}
getch();
}
 Outputnya:

Share on Google Plus

About BOCAH ALPRO

Kami adalah Sekumpulan Bocah yang ingin Berbagi Ilmu kepada Anda. Jadi Manfaatkanlah Website ini untuk Media Belajar. Karena "Ilmu tanpa Amal bagaikan Pohon tak Berbuah."

0 komentar:

Post a Comment