Berikut contoh program binary search dengan menggunakan Dev-C++
#include <iostream> //ini adalah yang si sebut liblary. dalam c++ kita juga dapat //membuat liblary sendiri sesuai dengan yang di perlukan using namespace std; //tidak semua kompiler menggunakan ini, taoi jika anda menggunakan //devc++ maka anda harus menggunakanya agar dapat terkompile. #include <conio.h>//perintah untuk membersihkan layar #include <iomanip>//diperlukan bila melibatkan setw() yang bermanfaat //untuk mengatur lebar dari suatu tampilan void selection_sort( int data[])//Definisi fungsi { int temp; //temp sebagai tempat penyimpanan sementara saat menukar nilai for(int i=0; i<10;i++){ // perulangan untuk mengganti elemen array yang akan dibandingkan for(int j = i+1; j<10; j++) //perulangan untuk membandingkan array data[i} //dengan elemen array selanjutnya { if(data[i]>data[j]) //penukaran nialai data [i] dengan salah satu elemen array //selanjutnya jika ditemukan data [i] lebih besar dari //elemen array yang jadi hasil sorting ini mencari //nilai terkecil kemudian menempatkannya di kiri { temp = data[i]; //proses penukarannya data[i] = data[j]; data[j] = temp; } } } } int main()//main program mengembalikan nilai int secara default { int data[10]; // Deklarasi data bertipe integer dengan maksimal nilai indeks 10 int cari;// Deklarasi cari bertipe integer cout<<"\t 'BINARY SEARCH'"<<endl;// Output pada layar judul program cout<<"\t====================="<<endl;// Output pada layar judul program cout<<"\nMasukkan 10 Data : "; // Output pada layar untuk perintah memasukkan data awal for(int x = 0; x<10; x++)//Baca elemen array cin>>data[x]; // Menginputkan data[x] oleh user cout<<"\nMasukkan data yang ingin Anda cari : "; // Output pada layar untuk perintah memasukkan data yang akan dicari cin>>cari; // Menginputkan data yang akan dicari oleh user cout<<"\nData diurutkan : "; // Output pada layar selection_sort(data); //pemanggilan fungsi selection_sort() for(int x = 0; x<10;x++) //Baca elemen array cout<<setw(3)<<data[x]; // Output pada layar untuk menampilkan data setelah diurutkan cout<<endl; // Menempatkan kursor pada line berikutnya //searching int awal, akhir, tengah, b_flag = 0; // Deklarasi awal,akhir,tengah bertipe integer dan // set b_flag off awal = 0; //Mula-mula diambil posisi awal 0 akhir = 10; // posisi akhir = 10 while (b_flag == 0 && awal<=akhir)//kondisi { tengah = (awal + akhir)/2; //kemudian dicari posisi data tengah dengan //rumus (posisi awal + posisi akhir) / 2 if(data[tengah] == cari) //Kemudian data yang dicari dibandingkan dengan data tengah. { b_flag = 1; // turn b_flag on break; //proses perulangan berhenti } else if(data[tengah]<cari) //Jika lebih kecil awal = tengah + 1; //proses dilakukan kembali tetapi posisi akhir dianggap //sama dengan posisi tengah +1. else akhir = tengah -1; //Jika lebih besar, proses dilakukan kembali tetapi //posisi awal dianggap sama dengan posisi tengah -1. } if(b_flag == 1) //Jika data sama, berarti ketemu cout<<"\nData ditemukan pada index ke-"<<tengah<<endl; // Output pada layar untuk menampilkan indeks data else //Jika data tidak sama, berarti tidak ketemu cout<<"\nData tidak ditemukan\n"; // Output pada layar untuk menampilkan bahwa data tidak ditemukan _getche();//untuk menerima sembarang input keyboard dari user return 0; //memberitahu kepada sistem operasi bahwa program telah berakhir } //Penjelasan binarry : //Binary Search merupakan metode pencarian dimana data harus diurutkan //terlebih dahulu sebelum dilakukan proses pencarian. //Pada metode pencarian ini, data dibagi menjadi dua bagian //untuk setiap tahap pencarian. //Algoritma binary search : //1.Data diambil dari posisi 1 sampai posisi akhir n //2.Kemudian cari posisi data tengah dengan rumus: ( //posisi awal + posisi akhir) / 2 //3.Kemudian data yang dicari dibandingkan dengan data yang di tengah, //apakah sama atau lebih kecil, atau lebih besar? //4.Jika lebih besar, maka proses pencarian dicari //dengan posisi awal adalah posisi tengah + 1 //5.Jika lebih kecil, maka proses pencarian dicari //dengan posisi akhir adalah posisi tengah - 1 //6.Jika data sama, berarti ketemu
bagus bgt gan, ada penjelasanya disetiap baris scriptnya
ReplyDeleteOk makasih ya
ReplyDeletekok salah ya yang di bagian #include kalo dihapus using namespace nya yang salah
ReplyDeleteusing namespace std tidak bisa di hapus, karena sudah struktur dasar dari header
DeleteInclude itu harus diisi dalam program mbak..
Deletejadi gak boleh dihapus