Minggu, 13 November 2016

Sequential Searching Serta Contoh Program pada C++

Pencarian Sekuensial (sequential searching) atau pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang paling sederhana. Pencarian beruntun adalah proses membandingkan setiap elemen larik satu per satu secara beruntun, mulai dari elemen pertama sampai elemen yang dicari ditemukan atau seluruh elemen sudah diperiksa.

Proses pencarian data dengan metode ini cukup sederhana dan mudah. Dalam pencarian ini proses dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencarian data dilakukan dengan mencocokan data yang dilakukan secara berurut satu demi satu dimulai dari data ke-1 hingga data pada urutan terakhir. Jika data yang dicari mempunyai nilai yang sama dengan data yang ada dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari tidak ada yang cocok dengan data-data dalam sekelompok data, berarti data tersebut tidak ada dalam sekelompok data. Selanjutnya kita tinggal menampilkan hasil yang diperoleh tersebut.

Kelebihan dan Kekurangan atau Best and Worst Case pada Sequential Search ini adalah :

Kelebihan / Best Case : jika data yang dicari terletak di depan ataupun jumlah data yang tidak banyak, proses pencarian membutuhkan waktu yang sebentar.

Kekurangan / Worst Case : jika data yang dicari terletak di akhir dan atau jumlah data yang sangat banyak, maka proses pencarian membutuhkan waktu yang lama atau tidak sebentar.

Berikut Contoh program sequential searching pada C++ :

#include <iostream>
#include <conio.h>

using namespace std;

main ()
{
    int z[]= {12,2,84,1,5,65,7,45,8,4,3,6,8,7,4,1,5,45,99,65,78,21,12,36,45};
    int nilai,index[25],j;
    j=0;
    for (int i=0;i<25;i++)
    {
        cout<<z[i]<<",";
    }
    cout<<endl;
    cout<<"masukkan nilai yang dicari : ";cin>>nilai;
    for (int i=0;i<=25;i++)
    {
        if (z[i]==nilai)
        {
            index[j]=i;
            j++;
        }
    }
    
    if (j>0)
    {
        cout<<"Nilai yang dicari = "<<nilai<<" ada sejumlah = "<<j<< " buah"<<endl;
        cout<<"Nilai tersebut ada dalam indeks ke (indeks mulai dari 0) = "<<endl;
        for (int i=0;i<j;i++)
        {
            cout<<"indeks ke "<<index[i]<<endl;
        }
        cout<<endl;
    }
    else
    {cout<<"Nilai tidak ditemukan dalam array"<<endl;}
    
    
    getch();    
}




Sabtu, 12 November 2016

Selection Sort Serta Contoh Program Pada C++



Selection Sort : Memindahkan elemen dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan elemen terakhir . Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar dan begitu seterusnya.


Proses pengurutan menggunakan metode selection sort secara terurut naik adalah sebagai berikut:

  1. Mencari data terkecil dari data pertama sampai dengan data yang terakhir. kemudian ditukar posisinya dengan data pertama.
  2. Mencari data terkecil dari data kedua sampai dengan data terakhir, kemudian ditukar posisinya dengan data kedua.
  3. Mencari data terkecil dari data ketiga sam[ai data terakhir, kemudian ditukar posisimya dengan data ketiga.
  4. Begitu seterusnya sampai semua data terurut naik. Apabila terdapat n buah data yang akan diurutkan, maka membutuhkan (n-1) langkah pengurutan, dengan data terakhir, yaitu data ke n tidak perlu diurutkan karena hanya tinggal data satu-satunya.
Berikut contoh program selection sort pada C++ :  

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

main()
{
    int nilai[20];
    int n,i,j,x,pos,tampung;
    cout<<"Masukan banyak inputan : "<<endl;
    cin>>n;
    cout<<"======================="<<endl;
    for (int i=0; i<n; i++)
   {
   cout<<"Nilai ke "<<(i+1)<<" : ";
   cin>>nilai[i];
   }
   cout<<endl;
   cout<<"Sebelum Sorting"<<endl;
   cout<<"====================="<<endl;
   for (int i=0; i<n; i++)
   {
   cout<<nilai[i]<<endl;
   } 
   cout<<endl;
    
    for (int i=0;i<n-1;++i)
{
pos=i;
for (int j=i+1;j<n;++j)
{
if (nilai[j]<nilai[pos])
{
             pos=j;
}
}
if (pos !=i)
{
                tampung=nilai[pos];
nilai[pos]=nilai[i];
nilai[i]=tampung;
                }
cout<<"langkah ke "<<i+1<<endl;
cout<<"-----------------------"<<endl;
for (int x=0;x<n;++x)
   {
cout<<nilai[x]<<endl;

}
cout<<endl;
}

    cout<<"Setelah sorting : \n";
    cout<<"======================="<<endl;
for (int i=0;i<n;++i)
{
cout<<nilai[i]<<endl;
}
     
   
getch();    
}


    

Bubble Sort Serta Contoh Program Pada C++




Bubble sort (metode gelembung) adalah metode/algoritma pengurutan dengan dengan cara melakukan penukaran data dengan tepat disebelahnya secara terus menerus sampai bisa dipastikan dalam satu iterasi tertentu tidak ada lagi perubahan. Jika tidak ada perubahan berarti data sudah terurut. Disebut pengurutan gelembung karena masing-masing kunci akan dengan lambat menggelembung ke posisinya yang tepat.


Metode pengurutan gelembung (Bubble Sort) diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan daripada berat jenis air, maka gelembung sabun selalu terapung ke atas permukaan. Prinsip di atas dipakai pada pengurutan gelembung.


Algoritma bubble sort adalah salah satu algoritma pengurutan yang paling simple, baik dalam hal pengertian maupun penerapannya. Ide dari algoritma ini adalah mengulang proses pembandingan antara tiap-tiap elemen array dan menukarnya apabila urutannya salah. Pembandingan elemen-elemen ini akan terus diulang hingga tidak perlu dilakukan penukaran lagi.


Berikut Contoh Program Bubble sort pada C++ :



#include <iostream>

#include <conio.h>

using namespace std;


main()

{

int nilai[20];

int n,i,j,x,tampung;

cout<<"Masukan banyak inputan : "<<endl;

cin>>n;

cout<<"======================="<<endl;

for (int i=0; i<n; i++)

{

cout<<"Nilai ke "<<(i+1)<<" : ";

cin>>nilai[i];

}

cout<<endl;

cout<<"Sebelum Sorting"<<endl;

cout<<"====================="<<endl;

for (int i=0; i<n; i++)

{

cout<<nilai[i]<<endl;

}

cout<<"====================="<<endl;

for (int i=1;i<n;++i)

{

for (int j=n-1;j>=i;--j)

{

if (nilai[j]< nilai[j-1])

{

tampung=nilai[j];

nilai[j]=nilai[j-1];

nilai[j-1]=tampung;

}



}

cout<<"langkah ke "<<i<<endl;

for (int x=0;x<n;++x)

{

cout<<nilai[x]<<endl;



}

cout<<endl;

}



cout<<"setelah sorting : \n";

for (int i=0;i<n;++i)

{

cout<<nilai[i]<<endl;

}




getch();

}