Minggu, 17 April 2016

ALGORITMA DAN FLOWCHART INSERTION SORT DAN BUBBLE SORT

1. BUBBLE SORT

a. Pengertian Bubble Sort

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.

b. Algoritma Bubble Sort


  • Tentukan Jumlah Bilangan yang akan di inputkan
  • Inputkan bilangan 4,2,3,8,5
  • Bandingkan bilangan 1 >/< bilangan 2
  • Jika benar pindahkan bilangan 2 ke bilangan sisip
  • Pindahkan bilangan 1 ke bilangan 2
  • Pindahkan bilangan sisip ke bilangan 1
  • Jika tidak lanjutkan proses
  • Bandingkan bilangan 2 >/< bilangan 3
  • Jika benar pindahkan bilangan 3 ke bilangan sisip
  • Pindahkan bilangan 2 ke bilangan 3
  • Pindahkan bilangan  sisip ke bilangan 2
  • Jika tidak lanjutkan proses
  • Ulangi langkah no 3 hingga hasil sesuai yang diinginkan


c. Flowchart Bubble Sort



2. INSERTION SORT

a. Pengertian Insertion Sort

Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan. Karena algoritma ini bekerja dengan membandingkan elemen-elemen data yang akan diurutkan, algoritma ini termasuk pula dalam comparison-based sort. Ide dasar dari algoritma Insertion Sort ini adalah mencari tempat yang "tepat" untuk setiap elemen array, dengan cara sequential search. Proses ini kemudian menyisipkan sebuah elemen array yang diproses ke tempatnya ang seharusnya. Proses dilakukan sebanyak N-1 tahapan (dalam sorting disebut sebagai "pass"), dengan indeks dimulai dari 0. Proses pengurutan dengan menggunakan algoritma Insertion Sort dilakukan dengan cara membandingkan data ke-i (dimana i dimulai dari data ke-2 sampai dengan data terakhir) dengan data berikutnya. Jika ditemukan data yang lebih kecil maka data tersebut disisipkan ke depan sesuai dengan posisi yang seharusnya. 

b. Algoritma Insertion Sort

  • Simpan nilai Ti kedalam variabel sementara dengan i=1.
  • Bandingkan nilainya dengan elemen sebelumnya.
  • Jika elemen sebelumnya (Ti-1) lebih besar nilainya dari pada Ti,maka tindih nilai Ti dengan nilai Ti-1 tersebut. Descrement i (kurangi nilainya dengan 1).
  • Lakukan terus poin ke 3,sampai Ti-1<Ti.
  • Jika Ti-1 < Ti terpenuhi,tindih nilai di Ti dengan variabel sementara yang disimpan sebelumnya.
  • Ulangi langkah dari poin 1 diatas dengan i di-increment (ditambah satu).

c. Flowchart Insertion Sort


Kamis, 07 April 2016

INTERPOLATION SEARCH



      Interpolation Search adalah sebuah algoritma atau metode untuk mencari nilai key yang diberikan dalam array diindeks yang telah diperintahkan oleh nilai – nilai kunci.


      Metode ini didasari pada proses pencarian nomor telepon pada buku telepon yang mana manusia mencari melalui dengan nilai kunci yang terdapat pada buku. Teknik searching ini dilakukan dengan perkiraan letak data. Rumus posisi relatif kunci pencarian dihitung dengan rumus berikut ini :


Rumus Interpolation Search

– Jika data[posisi] > data yg dicari, high = pos – 1

– Jika data[posisi] < data yg dicari, high = pos + 1


      Itu saja mengenai Interpolation Search, sekarang saya akan menunjukkan algoritma, script, dan outputnya menggunakan bahasa C++. 
1. Algoritma Interpolation Search :

·                     Mulai
·                     Banyaknya record array (k)
·                     Nilai awal min=0 ; max=k-1
·                     Hitung mid= min + ((kunci - k[min]) * (max - min)) /(k[max] – k[min])
·                     Bandingkan data yang dicari(kunci) dengan data posisi tengah(mid)
·                     Jika lebih kecil, proses dilanjutkan dengan posisi max = posisi tengah-1
·                     Jika lebih besar, proses dilanjutkan dengan posisi min=posisi tengah+1
·                     Jika data posisi tengah(mid) = data yang dicari(kunci) , maka index=mid, selesai
·                     Jika min<=max dan k[mid]=!kunci, maka ulangi langkah 3
·                     Jika k[mid]=!kunci, maka index=-1
·                     selesai 

2. Kode Pemrograman Interpolation Search C++ :

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

int main()
{
       int elemen[10] = {21,54,20,64,41,33,41,78,16,36};
       int carielemen, i, flag = 0;
       int simpanindex[10];
       int jum_index=0;

       cout<<"INTERPOLATION SEARCH"<<endl;
       cout<<"=========================================================="<<endl;
       cout<<"DATA YANG ADA   : ";
              for(int n= 0; n<10; n++)
                     cout<<setw(4)<<elemen[n];
       cout<<endl;
        cout<<"=========================================================="<<endl;
       cout<<"\nMasukkan data yang ingin Anda cari : ";
       cin>>carielemen;

       for(i = 0; i<10; i++)
        {
              while(elemen[i]==carielemen)
              {
                     flag = 1;
                     simpanindex[jum_index] = i;
                     jum_index++;
                     break;
              }
       }

       //cetak hasil
       if(flag==1)
       {
              for( int y = 0; y < jum_index; y++ )
              cout<<"Data ditemukan pada index ke-"<<simpanindex[y]<<endl;
       }
       else
              cout<<"Data tidak ditemukan"<<endl;

       getche();

}
3. Berikut adalah output dari kode diatas :