Searching Sequential Dalam C++
A.Searching Sequential
Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memori(pencarian internal), bisa juga pada file pada external storage(pencarian external).Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut (contoh: sequential search). Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut (contoh: Binary serach dan interpolation search). Pada Kesempatan ini kita hanya akan membahas tentang pencarian internal menggunakan Array dinamis (pointer).
Searching adalah pencarian data dengan cara menelusuri data-data tersebut. Tempat pencarian data dapat berupa array dalam memori(pencarian internal), bisa juga pada file pada external storage(pencarian external).Ada dua macam teknik pencarian yaitu pencarian sekuensial dan pencarian biner. Perbedaan dari dua teknik ini terletak pada keadaan data. Pencarian sekuensial digunakan apabila data dalam keadaan acak atau tidak terurut (contoh: sequential search). Sebaliknya, pencarian biner digunakan pada data yang sudah dalam keadaan urut (contoh: Binary serach dan interpolation search). Pada Kesempatan ini kita hanya akan membahas tentang pencarian internal menggunakan Array dinamis (pointer).
B. Metode Pencarian
Metode pencarian dibagi menjadi 2,
yaitu:
1. Metode Pencarian
Beruntun:
Konsep yang
digunakan dalam metode ini adalah membandingkan data-data yang ada dalam
kumpulan tersebut, mulai dari elemen pertama sampai elemen ditemukan, atau
sampai elemen terakhir.
2. Metode Pencarian
Bagi Dua:
Metode ini
diterapkan pada sekumpulan data yang sudah terurut (menaik atau menurun).
Metode ini lebih cepat dibandingkan metode pencarian beruntun. Data yang sudah
terurut menjadi syarat mutlak untuk menggunakan metode ini. Konsep dasar metode
ini adalah membagi 2 jumlah elemennya, dan menentukan apakah data yang berada
pada elemen paling tengah bernilai sama, lebih dari atau kurang dari nilai data
yang akan dicari. Jika bernilai sama, maka langsung data yang dicari ditemukan.
Jika data di elemen terurut naik, maka jika data yang berada di tengah kurang
dari data yang dicari, maka pencarian selanjutnya berkisar di elemen tengah ke
kanan, dan begitu seterusnya sampai ketemu atau tidak sama sekali. Dan
sebaliknya untuk nilai data yang berada di tengah lebih dari data yang dicari,
maka pencarian selanjutnya berkisar di elemen tengah ke kiri, dan begitu
seterusnya sampai ketemu atau tidak sama sekali. Dan demikian sebaliknya untuk
data yang terurut menurun. Dalam hal ini tentukan indeks paling awal dan indeks
paling akhir, untuk membagi 2 elemen tersebut
Indeks awal = i,
dimana nilai i, pada awalnya bernilai 0;
Indeks akhir = j, dimana nilai j, pada awalnya bernilai sama dengan jumlah
elemen. Proses yang terjadi
pada pencarian dengan metode ini adalah sebagai berikut :
1. Membaca Array data
2. Apabila Array belum terurut maka
array diurutkan terlebih dahulu.
3. Menentukan data yang akan dicari
4. Menentukan elemen tengah dari
array
5. Jika nilai elemen tengah sama
dengan data yang dicari, maka pencarian berhenti.
6. Jika elemen tengah tidak sama
dengan data yang dicari maka :
a. Jika nilai elemen tengah > data
yang dicari maka pencarian dilakukan pada setengah array pertama.
b. Jika nilai elemen tengah lebih
kecil dari pada data yang dicari maka pencarian dilakukan pada setengah
array berikutnya.
Algoritma pencarian berurutan dapat
dituliskan sebagai berikut :
1. i ← 0
2. ditemukan ← false
3. Selama (tidak ditemukan) dan (i
<= N) kerjakan baris 4
4. Jika (Data[i] = x) maka ditemukan
← true, jika tidak i ← i + 1
5. Jika (ditemukan) maka i adalah
indeks dari data yang dicari, jika tidak data tidak ditemukan
Di bawah ini merupakan fungsi untuk
mencari data menggunakan pencarian sekuensial.
int SequentialSearch(int x)
{
int
i = 0;
bool
ditemukan = false;
while
((!ditemukan) && (i < Max))
{
if(Data[i]
== x)
ditemukan
= true;
else
i++;
}
if(ditemukan)
return
i;
else
return
-1;
}
Fungsi diatas akan
mengembalikan indeks dari data yang dicari. Apabila data tidak ditemukan maka
fungsi diatas akan mengembalikan nilai –1.
Contoh program:
#include <conio.h>
#include <iostream.h>
main(){
int c,i,posisi;
cout<<"Data : ";
for(i=0;i<20;i++){
cout<<A[i]<<" ";
}
cout<<"\nData yang ingin dicari : ";
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
i++;
}
if (A[i]!=c){
cout<<"Maaf data yang dicari tidak
ada";
}else if(posisi=i+1)
cout<<"ditemukan pada posisi
ke "<<posisi;
getch();
}
Flowchart bukanlah
merupakan sebuah kerangaka berpikir seperti algoritma ataupun pseudocode
flowchart pada dasarnya merupakan sebuah bentuk gambar ataupun diagram yang
memiliki aliran satu atau dua arah yang berlaku secara sekuensial atau
berkesinambungan. Fungsi utama dari flowchart ini adalah untuk menggambarkan
sebuah desain program dan untuk merepresentasikan sebuah program atau sistem
yang akan kita buat, berdasarkan pola berpikir kita (berdasarkan algoritma).
D. Unsur – unsur
atau komponen yang terdapat pada flowchart
Secara umum, dan
secara garis besar, flowchart menerapkan unsur atau komponen yang sama seperti
komponen pada pemrograman. Berikut ini adalah beberapa unsur dalam flowchart
tersebut :
1. Input
2. Percabangan (biasanya
menggunakan command if dan switch)
3. Perulangan (biasanya
menggunakan command atau kode while, for, each, loop)
4. Output
Flowchart dibuat
sesuai dengan algoritma yang sudah disusun, dan kemudian dibuat sesuai dengan
urutan, perintah, serta ketentuan-ketentuan lainnya, yang dilambangkan dengan
symbol-symbol tertentu.
E. Jenis Jenis
Flowchart / Bagan Alir
A. System Flowchart
System flowchart
dapat didefinisikan sebagai bagan yang menunjukkan arus pekerjaan secara
keseluruhan dari sistem. Bagan ini menjelaskan urut-urutan dari
prosedur-prosedur yang ada di dalam sistem. Bagan alir sistem menunjukkan apa
yang dikerjakan di sistem.
B. Document Flowchart
Bagan
alir dokumen (document flowchart) atau disebut juga bagan
alir formulir (form flowchart) atau paperwork
flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir
termasuk tembusan-tembusannya.
C. Schematic Flowchart
Bagan
alir skematik (schematic flowchart) merupakan bagan alir yang mirip
dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem.
Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan
alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang
digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan
komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir.
Penggunaan gambar-gambar ini memudahkan untuk dipahami, tetapi
sulit dan lama menggambarnya.
d. Program Flowchart
Bagan alir program (program flowchart)
merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses
program. Bagan alir program dibuat dari derivikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam,
yaitu bagan alir logika program (program logic flowchart)
dan bagan alir program komputer terinci (detailed computer program
flowchart). Bagan alir logika program digunakan untuk menggambarkan
tiap-tiap langkah di dalam program komputer secara logika. Bagan alat- logika
program ini dipersiapkan oleh analis sistem. Gambar berikut menunjukkan bagan
alir logika program. Bagan alir program komputer terinci (detailed
computer program flow-chart) digunakan untuk menggambarkan
instruksi-instruksi program komputer secara terinci. Bagan alir ini
dipersiapkan oleh pemrogram.
e. Process Flowchart
Bagan alir proses (process flowchart)
merupakan bagan alir yang banyak digunakan di teknik industri. Bagan alir ini
juga berguna bagi analis sistem untuk menggambarkan proses dalam suatu
prosedur.
F. Simbol - Simbol Flowchart / Bagan Alir
DAFTAR PUSTAKA
~~TERIMAKASIH~~



0 komentar:
Posting Komentar