Minggu, 17 April 2016

Bubble Sort dan Insertion sort

Pengertian Bubble Sort

Bubble Sort adalah salah satu algoritma untuk sorting data, atau kata lainnya mengurutkan data dari yang terbesar ke yang terkecil atau sebaliknya (Ascending atau Descending).  Algoritma Bubble Sort adalah algoritma sorting paling sederhana. proses pengurutannya mirip seperti gelembung. Terdapat proses pertukaran atau istilah kerennya swapping.


contoh:

Algoritma

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



Flowchart




Insertion Sort

Insertion sort adalah metode pengurutan yang menggunakan 2 buah list dalam proses pengurutannya yaitu sorted list dan unsorted list, dimana pada awalnya semua angka yang kan di urutkan berada di unsorted list setelah itu index 0 dari unsorted list dipindahkan ke sorted list begitu juga index 1. Lalu index 0 dan 1 yang sudah dipindahkan ke sorted list akan dikomparasi mana yang memiliki nilai terkecil. Dan yang memiliki terkecil itu akan menjadi index 0, begitulah seterusnya dimana tiap index yang baru masuk dari unsorted list ke sorted list akan dikomparasi dengan semua index yang sudah lebih dahulu masuk ke sorted list. Proses ini akan terus berulang sampai semua index yang ada di unsorted list pindah ke sorted list dan dikomparasi, maka hasil pengurutan akan terlihat.

Berikut adalah algoritma dari Insertion Sort :

1.    Deklarasi Array A
2.    Deklarasi Elemen
3.    Input elemen array A
4.    Input nilai elemen-elemen array A
5.    For i=1 sampai i < elemen
6.    While i > 0
7.     If A[i-1] > A[i]
8.     Tukar A[i-1] dengan A[i]
9.      i-1 
10. end if   
11. end while12. end for


Dan berikut adalah flowchart dari Insertion Sort :




Kamis, 07 April 2016

interpolasi pemrograman c++

C ++ Program untuk Melaksanakan interpolasi Cari Algoritma
Program ++ C ini menerapkan interpolasi Cari Algoritma.
pencarian interpolasi adalah algoritma pencarian untuk nilai kunci yang diberikan dalam array diindeks yang telah diperintahkan oleh nilai-nilai kunci. Hal ini juga disebut sebagai pencari ekstrapolasi.
Hal ini didasarkan pada bagaimana manusia mencari melalui buku telepon untuk nama tertentu.
Rata-rata kompleksitas waktu pencarian interpolasi adalah O (log n (log n)) perbandingan, di mana n adalah jumlah elemen yang akan dicari. Dalam kasus terburuk dapat membuat hingga O (n) perbandingan yang setara dengan pencarian linear.
iklan
Program ini memiliki berbagai masukan dari ukuran 10 diinisialisasi dengan 10 nilai. Ini mengembalikan indeks dari elemen, jika ditemukan dan -1 jika tidak menggunakan interpolasi Cari Algoritma.

data[posisi] > data yg dicari, high = pos – 1
– Jika data[posisi] < data yg dicari, high = pos + 1
Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu yang
dilakukan dengan perkiraan letak data.
contoh program pencarian interpolasi :
Algoritma
a) awal = 0
b) akhir = banyak Data Array-1
c) pencarian data (input bilangan)
d) menggunakan rumus interpoasi posisi = ((cari_data – data[awal])*(akhir-awal)+awal)/(data[akhir]-data[awal])
e) cari_data == data[posisi]
f) Jika sesuai dengan yang dicari / sama , data yang dicari telah ditemukan maka program berhenti / selesai.
g) Jika tidak sesuai dengan yang dicari ,maka akan membandingkan  :
·         JIKA (data[posisi] < cari_data awal = posisi + 1;
h)     Melakukan langkah 4 dan 5
i)        Jika data[posisi] > cari_data, tampilkan data tidak ditemukan, program selesai

 



Code Pemrograman :

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

int main()
{
int data[10] = {23,1,21,31,14
                 ,5,6,7,8,9};

int cari_data, posisi, awal, akhir, proses;

bool berhenti =
false;

cout<<"Data: ";
for(int z = 0; z<10; z++)
   
cout<<setw(3)<<data[z];

cout<<endl<<endl;

cout << “Data yang dicari : “;

cin >> cari_data;
awal = 0;
akhir = 10;
proses = 0;

while(berhenti != true)
    {
proses++;
posisi =(((cari_data-data[awal])*(akhir-awal))/(data[akhir]-
data[awal])+awal);
if(data[posisi] == cari_data) {
cout << “Data ” << cari_data << ” pada posisi indeks ke-” << posisi <<endl;
cout << “Proses pencarian sebanyak ” << proses <<endl;
berhenti = true;
} else if(data[posisi] < cari_data) {
awal = posisi + 1;
} else {
cout << “Data ” << cari_data << ” ora ono.\n”;
berhenti = true;
}
}
return 0;
}
folchart