12/10/2017

contoh program selection sort, insertion sort, bubble sort, binary search, dan sequential search

halooo... pada kesempatan kali ini saya akan share 3 jenis program sorting(selection sort, insertion sort, bubble sort) dan 2 program searching(binary search, dan sequential search) dalam 1 program.


selection sort




















prinsip dalam teknik selection sort ini adalah:

 

1.  melakukan pengecekan dari data 1 sampai data ke n.
2.  jika dalam pengecekan ditemukan data yg nilainya lebih kecil dari data 1, maka akan dilakukan pertukaran. (jika data 1 adalah data terkecil maka lanjut saja ke data 2 dst)
3. jika data 1 sudah di sorting, lanjutkan ke data 2 dengan mengikuti langkah 1 dan 2


insertion sort














prinsip dalam teknik insertion sort ini adalah:

1. melakukan pengecekan dari data 1 sampai data ke n.
2. bandingkan data ke x(x=data ke 2 s/d data ke n)
3. bandingkan data ke x tersebut dengan data sebelumnya (x-1) jika nilainya lebih kecil dapat dilakukan pertukaran seperti yang seharusnya.
4. lakukan langkah 2-3 untuk data berikutnya(x+1 dst) sampai pengurutan selesai/optimal

 

bubble sort 













prinsip kerja dari teknis bubble sort ini adalah:

1. melakukan pengecekan dari data 1 sampai data ke n.
2. bandingkan data ke n dengan data sebelumnya(n-1).
3. jika data(n) lebih kecil maka dapat dilakukan pemindahan ke data yg sebelumnya satu per satu.
4. jika data(n) lebih besar tidak terjadi pemindahan.
5. lakukan langkah 2-3 sampai pengurutan sempurna


definisi binary search 

Binary search adalah metode pencarian suatu data atau elemen di dalam suatu array dengan kondisi data dalam keadaan terurut. Proses pencarian binary search hanya dapat dilakukan pada sekumpulan data yang sudah diurutkan terlebih dahulu.


definisi sequential search

Adalah suatu teknik pencarian data dalam array (1 dimensi) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan.


contoh program contoh program selection sort, insertion sort, bubble sort, binary search, dan sequential search

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;

int data[50];
int n;

void tukar(int a, int b)//selection sort
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}

void selectionsort()
{
int pos,i,j;


cout<<"-------------------------------------------------"<<endl;
cout<<"SELECTION SORT ASCENDING"<<endl;
cout<<"-------------------------------------------------"<<endl;
cout<<"INPUTKAN BANYAK DATA = ";
cin>>n;
cout<<"-------------------------------------------------"<<endl;

for(int i=0;i<n;i++)
{
    cout<<"INPUTKAN DATA KE-"<<(i+1)<<" = " ;
    cin>>data[i];
}
    cout<<"-------------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN :"<<endl;
   
for(i=0;i<n;i++)
{
cout<<data[i]<<" ";
}
cout<<endl<<"-------------------------------------------------"<<endl;

for(i=0;i<n-1;i++)
{
    pos=i;
    for(j=i+1;j<n;j++)
{
    if(data[j]<data[pos])pos=j;
}
    if(pos!=i) tukar(pos,i);
}

cout<<"DATA YANG TELAH DIURUTKAN SECARA ASCENDING : "<<endl;
for(int i=0;i<n;i++)
{
    cout<<data[i]<<" ";
}
cout<<endl;

cout<<"-------------------------------------------------"<<endl;
cout<<"SELECTION SORT SELESAI !"<<endl;
cout<<"-------------------------------------------------"<<endl;

}

void insertionsort()
{
    int tmp,i,j;
   
    cout<<"-------------------------------------------------"<<endl;
    cout<<"INSERTION SORT ASCENDING"<<endl;
    cout<<"-------------------------------------------------"<<endl;
    cout<<"INPUTKAN BANYAKNYA DATA = ";
    cin>>n;
    cout<<"-------------------------------------------------"<<endl;
   
    for(int i=0;i<n;i++)
    {
        cout<<"INPUTKAN DATA KE-"<<(i+1)<<" = " ;
        cin>>data[i];
    }

    cout<<"-------------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN :"<<endl;
    for(i=0;i<n;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"-------------------------------------------------"<<endl;

    for(i=1;i<n;i++)
    {
        tmp=data[i];
        j=i-1;
        while(data[j]>tmp && j>=0)
        {
            data[j+1]=data[j];
            j--;
        }
        data[j+1]=tmp;
    }

    cout<<"DATA YANG TELAH DIURUTKAN SECARA ASCENDING : "<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl;

    cout<<"-------------------------------------------------"<<endl;
    cout<<"INSERTION SORT SELESAI !"<<endl;
    cout<<"-------------------------------------------------"<<endl;


}

void bubblesort()
{
   
    int i, j, tmp;
   

    cout<<"---------------------------------------------"<<endl;
    cout<<"BUBBLE SORT ASCENDING"<<endl;
    cout<<"---------------------------------------------"<<endl;
    cout<<"INPUTKAN BANYAKNYA DATA : ";
    cin>>n;
    cout<<"---------------------------------------------"<<endl;
    for(i=0; i<n; i++)
    {
        cout<<"INPUTKAN BILANGAN KE-["<<(i+1)<<"] : ";
        cin>>data[i];
    }

    cout<<"---------------------------------------------"<<endl;
    cout<<"DATA YANG DIINPUTKAN : "<<endl;
    for(i=0; i<n; i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"---------------------------------------------"<<endl;

    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            if(data[i]>data[j])
                {
                    tmp = data[i];
                    data[i] = data[j];
                    data[j] = tmp;
                }
        }
    }

    cout<<"DATA SETELAH DIURUTKAN SECARA ASCENDING : "<<endl;
    for(i=0; i<n; i++)
    {
        cout<<data[i]<<" ";
    }
    cout<<endl<<"---------------------------------------------"<<endl;
    cout<<"BUBBLE SORT SELESAI !"<<endl;
    cout<<"---------------------------------------------"<<endl;

}
void binary_search()
{
    int data[50],n,i,j,k,t,low,high,mid,flag;
   
    cout<<"masukkan jumlah data : ";
    cin>>n;
    cout<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"masukkan data ke - "<<(i+1)<<" = ";
        cin>>data[i];
    }
   
   
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(data[i]>data[j])
            {
                t=data[i];
                data[i]=data[j];
                data[j]=t;
            }
        }
    }
    cout<<"\nmasukkan data yang ingin dicari : ";
    cin>>k;
   
    flag=0;
    high=n;
    low=0;
    while(low<=high)
    {
        mid=(low+high)/2;
        if(data[mid]==k)
        {
            flag++;
        }
        if(data[mid]<k)
        {
            low=mid+1;
        }
        else
        {
            high=mid-1;
        }
    }
    if(flag>0)
    {
        cout<<"data " <<k<<" yang dicari ada"<<endl;
    }
    else
    {
        cout<<"data tidak ditemukan"<<endl;
    }
   
   
}
void sequence_search()
{
    int data[50],index[50];
    int i,j,k,n;
   
    cout<<"masukkan jumlah data : ";
    cin>>n;
    cout<<endl;
    for(i=0;i<n;i++)
    {
        cout<<"masukkan data ke - "<<(i+1)<<" = ";
        cin>>data[i];
    }
   
    cout<<"\nmasukkan data yang ingin dicari : ";
    cin>>k;
   
   
    j=0;
   
    for(i=0;i<n;i++)
    {
        if(data[i]==k)
        {
            index[j]=i;
            j++;
        }
    }
   
    if(j>0)
    {
        cout<<"Data "<<k<<"yang dicari ada "<<j<<" buah "<<endl;
        cout<<"data tersebut terdapat dalam index ke : ";
        for(i=0;i<j;i++)
        {
            cout<<index[i]<<" ";
        }
        cout<<endl;
    }
    else
    {
        cout<<"data tidak ditemukan "<<endl;
    }
}


main()
{
    int n,z;
    v:
    system("cls");
    cout<<"---------------------------------"<<endl;
    cout<<"|Program sorting dan searching  |"<<endl;
    cout<<"---------------------------------"<<endl;
    cout<<"1.selection sort"<<endl;
    cout<<"2.insertion sort"<<endl;
    cout<<"3.bubble sort"<<endl;
    cout<<"4.binary search"<<endl;
    cout<<"5.sequential search"<<endl<<endl;
    cout<<"masukkan pilihan (1-5) : ";
    cin>>n;
    if(n==1)
    {
        system("cls");
        selectionsort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==2)
    {
        system("cls");
        insertionsort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==3)
    {
        system("cls");
        bubblesort();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else if(n==4)
    {
        system("cls");
        cout<<"Binary search"<<endl<<endl;
        binary_search();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    else
    {
        system("cls");
        cout<<"Sequential search "<<endl<<endl;
        sequence_search();
        cout<<"\ningin kembali ke menu? (1/2) : ";
        cin>>z;
        if(z==1)
        {
            goto v;
        }
        else
        {
            goto a;
        }
    }
    a:
    getch();
}

silahkan copy dan paste kodingan diatas ke kompiler masing"(lebih bagus diketik ulang) jika ada pertanyaan silahkan bertanya pada kolom komentar.

 

1 komentar:

  1. Terimakasih kak karena kamu aku jadi tahu contoh contoh nya

    BalasHapus