"PROGRAM SEARCHING DALAM C++"
1. Definisi C++
C++ adalah bahasa
pemrograman komputer yang di buat oleh Bjarne Stroustrup, yang merupakan
perkembangan dari bahasa C dikembangkan di Bong Labs (Dennis Ritchie) pada awal
tahun 1970-an, Bahasa itu diturunkan dari bahasa sebelumnya, yaitu B.
2. Definisi Searching
Searching adalah mencari data yang
dibutuhkan. Searching dalam pemrograman bisa dilakukan untuk mencari
data yang ada di dalam memory komputer. Dalam kehidupan sehari-hari kita
juga sering melakukan kegiatan searching seperti mencari data/informasi
yang ada dalam internet. Ada beberapa metode yang dapat digunakan untuk searching,
ada yang dinamakan:
Ø Sequential Search
Ø Binary Search
3. Definisi Sequential Search
Sequential Search merupakan
metode pencarian data dalam array dengan cara membandingkan data yang dicari
dengan data yang ada di dalam array secara berurutan. Pencarian data dengan
Metode Sequential Search efektif untuk mencari data yang dalam posisi yang
tidak terurut atau acak.
Prosesnya bisa dijelaskan seperti
berikut:
1. Menentukan data yang dicari
2. Membaca data array satu per satu secara sekuensial
3. Mulai dari data pertama sampai dengan data terakhir, kemudian data yang
dicari tadi dibandingkan dengan masing-masing data yang ada di dalam array.
a. Jika data yang dicari ditemukan maka kita dapat membuat statement bahwa
data telah temukan.
b. Jika data yang dicari tidak ditemukan maka kita dapat membuat statement
bahwa data telah temukan.
Ilustrasi:
Data yang dicari yaitu 7 disimpan di variabel x,
kemudian akan dibanding satu per satu secara sekuensial terhadap data yang ada
dalam array. Jika ditemukan data di dalam array yang sama dengan data yang
dicari artinya data ditemukan.
Sequential Searching memiliki
Kelebihan dan Kekurangan yaitu:
Ø Kelebihan Sequential Searching bisa dikatakan lebih mudah dalam
implementasinya dalam pemrograman.
Ø Kekurangannya jika data yang terdapat dalam suatu array itu sangat
banyak, maka akan diperlukan waktu yang lebih lama untuk membandingkan data
yang dicari dengan jumlah data yang sangat banyak dalam suatu array.
4. Definisi Binary Search
Metode pencarian Binary
yaitu mencari data dengan melakukan mengelompokkan array
menjadi bagian-bagian. Binary Search ini
hanya dapat diimplementasikan pada data yang telah terurut baik ascending
maupun descending dalam suatu array.
Proses Binary Search yang
urutan datanya ascending:
1. Pertama buat perulangan lalu menentukan posisi low
yaitu posisi yang menandakan index
paling rendah kemudian menentukan posisi high.
Kemudian mencari posisi mid = (high + low)/2
2. Lalu membandingkan data yang dicari dengan nilai yang ada di posisi mid.
3. Jika data yang dicari sama dengan nilai yang ada di posisi mid
berarti data ditemukan.
4. Jika data yang dicari lebih kecil dari nilai yang ada di posisi mid maka
pencarian data akan dilakukan dibagian kiri mid
dengan melakukan pembandingan. dengan kondisi posisi high
berubah yaitu (mid - 1) dan
posisi low tetap.
5. Jika data yang dicari lebih besar dari nilai yang ada mid maka pencarian data akan dilakukan di bagian
kanan dari mid dengan posisi low yang
berubah yaitu (mid + 1) dan
posisi high tetap.
Contoh Ilustrasi:
Setelah menentukan low dan high
kemudian menentukan mid.
perhitungan mid=(low+high)/2 jadi
mid=(0+4)/2, artinya mid
berada di data[2]. Kemudian data yang dicari yang ditampung di variabel x
dibandingkan dengan data/nilai yang berada di mid.
data yang dicari ialah 7<10 kemudian pencarian data dilakukan di bagian kiri
mid.
Pencarian di bagian kiri mid
masih dalam perulangan yang sama, namun indeksnya
yang dipersempit. Karena data yang dicari lebih kecil dari data mid yang
sebelumnya maka posisi high yang
berubah yaitu (mid - 1) yang
sebelumnya dan low
tetap pada posisi yang sama. Kemudian menentukan mid =(0+1)/2 = 0. Artinya
mid sekarang terletak di data[0]. lalu data yang
dicari dibandingkan dengan mid. 7=7
artinya data telah ditemukan
Kelebihan dan Kekurangan Binary
Search:
Ø Kelebihannya yaitu tidak perlu membandingkan data yang dicari dengan
seluruh data array yang
ada, cukup melalui titik tengah kemudian kita bisa menentukan ke mana
selanjutnya mencari data yang ingin dicari.
Ø Kekurangan implementasi agak sedikit lebih rumit karena tidak bisa
digunakan pada data array yang
masih acak. Jadi harus melakukan sorting
terlebih dahulu dalam implementasinya.
5. Bentuk Umum Struktur Penulisan
a.
Bentuk Umum
Struktur Penulisan Sequential Search
#include <iostream>
using namespace std;
///variabel global
int A[] =
{2,6,3,5,12,14,1,7,20,21,19};
int cari;
int a;
int i;
int ketemu=0;
int main()
{
cout<< "Input Data Yang Dicari : ";
cin>>cari;
a = sizeof(A)/ sizeof (A[0]);
for(int i=0; i<a; i++)
{
if(A[i]==cari)
{
//cout<<cari<<"
Ditemukan "<<endl;
ketemu=!ketemu;
break;
}
/*else
{
cout<<cari<<"
Tidak Ditemukan "<<endl;
}*/
}
if (ketemu>0)
{
cout<<cari<<"
Ditemukan ";
}
else
{
cout<<cari<<" Tidak
Ditemukan ";
}
return 0;
}
b.
Bentuk Umum Struktur
Penulisan Binary Search
#include <iostream>
#include <conio.h>
using namespace std;
int BinarySearch(int Data[], int x, int n)
{
int L = 0;
int R = n-1;
int m;
int ketemu = 0;
while((L <= R)
&& (!ketemu))
{
m = (L + R) /
2;
if(Data[m] ==
x)
ketemu =
!ketemu;
else if (x
< Data[m])
R = m - 1;
else
L = m + 1;
}
if(ketemu)
return m+1;
else
return -1;
}
int main()
{
int Data[]={1,2,3,4,5,6,7,8,9,10};
int n =
sizeof(Data);
int cari;
cout<<"Masukkan
data yang dicari : ";cin>>cari;
int ketemu =
BinarySearch(Data, cari, n);
if(ketemu>0)
cout<<"Data ditemukan di posisi : "<<ketemu;
else
cout<<"Data tidak ditemukan";
getch();
}
6. Permasalahan/ Studi Kasus
a.
Studi Kasus Sequential Search
Menemukan data yang dicari dalam
sebuah array 1 dimensi yang terdapat data di dalamnya dengan
menggunakan Metode Sequential Search.
Jika data yang dicari ditemukan di dalam array
kemudian ditampilkan letak dari indexnya.
b. Studi Kasus Binary Search
Menemukan data yang dicari dalam sebuah array 1
dimensi yang terdapat data di dalamnya dengan menggunakan Metode Binary Search.
Jika data yang dicari ditemukan di dalam array kemudian
ditampilkan letak dari indexnya.
7. Listing
Program
a.
Listing Program Sequential
Search
b.
Listing Program Binary Search
8. Hasil Running
a. Hasil Running
Sequential Search
Tampilan awal saat running
Menginputkan data dan datanya ditemukan
Menginputkan data dan datanya tidak ditemukan
b. Hasil Running Binary
Search
Tampilan awal saat running
Menginputkan data dan datanya ditemukan
Menginputkan data dan datanya tidak ditemukan
9. Penjelasan
Code
|
Penjelasan
|
#include
<iostream>
|
Header
untuk cout dan cin
|
#include
<conio.h>
|
Header untuk fungsi getch
|
using namespace std;
|
Pengganti
std::cout atau std::cin
|
int main ( )
|
Fungsi
main yang dijalankan terlebih
dahulu jika program dirunning
|
{ dan }
|
Awal
dan akhiran fungsi
|
int A[] =
{2,6,3,5,12,14,1,7,20,21,19};
|
Inisialisasi
data untuk search (data yang dapat dicari)
|
int cari;
|
Deklarasi
untuk pencarian
|
int a;
|
Deklarasi pengganti sizeof(A)/
sizeof (A[0]);
|
int i;
|
Deklarasi untuk array
|
int ketemu=0;
|
Deklarasi untuk data yang ditemukan
saat pencarian
|
int (integer)
|
Deklarasi
variabel teks dengan tipe data int.
Artinya variabel Untuk bilangan bulat.
|
cout
|
Merupakan
sebuah objeck didalam C++ digunakan untuk menampilkan suatu data kelayar.
|
cin
|
Merupakan
sebuah objeck didalam C++ digunakan untuk memasukkan suatu data.
|
endl atau \n
|
Untuk
mengganti baris atau fungsi enter
|
for
|
Merupakan
fungsi untuk operasi perulangan
|
if dan else if
|
Fungsi untuk operasi penyeleksian
kondisi
|
break;
|
Pemisah
antar aturan
|
10.
Diagram Alir (Flow
chart) Program Searching
a. Diagram Alir (Flow chart) Program Sequential
Search
b. Diagram Alir (Flow
chart) Program Binary Search
DAFTAR PUSTAKA
Frieyadie, S. (2007). Borland C++. Jakarta: DIKTAT
KULIAH PEMROGRAMAN KOMPUTER.
TEKNIK, J. T.
(2017/2018). Pengenalan Bahasa C++, Algoritma Pemrograman, Integrated
Development Equipment (IDE) Visual C++ dan Dasar Dasar Bahasa C++.
Retrieved from Modul Praktikum C++ Dasar Pemrograman Komputer:
http://elektro.um.ac.id/wp-content/uploads/2016/04/Dasar-Pemrograman-Modul-1-Pengenalan-Pemrograman.pdf
Tidak ada komentar:
Posting Komentar