laporan 3 ASD searching(PENCARIAN)

(1)

LAPORAN PRAKTIKUM III

SEARCHING (PENCARIAN)

Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data Dibimbing oleh Bpk. Utomo Pujianto

Oleh:

Ananda Putri Syaviri

130533608243

S1 PTI’13 OFF B

UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

PRODI PENDIDIKAN TEKNIK INFORMATIKA Februari 2014


(2)

A. Tujuan Umum

1. Mahasiswa mampu melakukan perancangan aplikasi menggunakan Struktur Searching (Pencarian).

2. Mahasiswa mampu melakukan analisis pada algoritma Searching yang dibuat.

3. Mahasiswa mampu mengimplementasikan algoritma Searching pada sebuah aplikasi secara tepat dan efisien

Tujuan Khusus

1. Mahasiswa mampu menjelaskan mengenai algoritma Searching. 2. Mahasiswa mampu membuat dan mendeklarasikan struktur

algoritma Searching.

3. Mahasiswa mampu menerapkan dan mengimplementasikan algoritma Searching.

B. DASAR TEORI

a)

Sequential Search (Linear Search)

Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir. Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangan. Pertama, jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya. Kedua, beban komputer akan semakin bertambah jika jumlah data dalam array sangat banyak. Disini IT Programmer akan memberikan contoh sintaks dari Sequential Search dalam C++. Tidak ada penginputan data oleh user dalam program ini, karena data telah dideklarasikan terlebih dahulu. Kalian dapat mengubahnya sendiri jika kalian telah lebih menguasai bagian ini.

Teknik pencarian data dari array yang paling mudah adalah dengan cara sequential search, dimana data dalam array dibaca 1 demi satu, diurutkan dari index terkecil ke index terbesar, maupun sebaliknya.

Contoh : Array :

int a[5] = {0,3,6,10,1} (index array pada bahasa C++ dimulai dari index ke 0 !!!) jika kita ingin mencari bilangan 6 dalam array tersebut, maka proses yang terjadi kita mencari


(3)

a) dari array index ke-0, yaitu 0, dicocokan dengan bilangan yang akan dicari, jika tidak sama, maka mencari ke index berikutnya

b) pada array index ke-1, juga bukan bilangan yang dicari, maka kita mencari lagi pada index berikutnya

c) pada array index ke-2, ternyata bilangan yang kita cari ada ditemukan, maka kita keluar dari looping pencarian.

Contoh source :

Output:

b)

Binary search

Metode pencarian yang kedua adalah binary search, pada metode pencarian ini, data harus diurutkan terlebih dahulu. Pada metode pencarian ini, data dibagi menjadi dua bagian (secara logika), untuk setiap tahap pencarian

Pencarian Biner (Binary Search) dilakukan untuk :

 Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.

 Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).

 Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.


(4)

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.

Keunggulan Binary Search

Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah tabel lebih kecil daripada waktu yang dibutuhkan algoritma sequential search.


(5)

Output :

c) Interpolation Search

Interpolation search merupakan salah satu metode pencarian yang dapat digunakan. Seperti pada binary search, data yang harus diurutkan terlebih dahulu, sebelum dapat dilakukan pencarian dengan metodeini. Pada metode pencarian ini, kita mencoba menebak letak data yang kita cari, dengan perhitungan

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


(6)

Output:

Tambahan materi :

break ;

digunakan untuk keluar dari suatu blok perintah

continue;

digunakan untuk mem by-pass satu iterasi pada perulangan contoh kode : (dijalankan dan dipelajari cara kerjanya)

#include<stdio.h> void main(){

for(int i=0;i<10;i++){ for(int j=10;j>0;j--){ if(i+j==10) break;

//if(i+j==10) continue; //hilangkan tanda slash di depan if, dan beri slash 2 di depan if yang atas untuk mencoba kode continue

printf("%i ",i+j); printf("pass"); }

printf("\n"); }

}

C. PERCOBAAN :

Percobaan 1

Algoritma dan Struktur Data

Ke Nama Program : Program Searching menerima inputan data ke dalam sebuah array.

Bahasa Pemrogramam : C++


(7)

Script program :

#include <stdio.h>

#include <iostream> #include <stdlib.h>

#include <string.h> #include <math.h>

using namespace std;

int data[10],data2[10];

void Sequential_Search() //fungsi pencarian dengan sequential

{

int i,cari,flag=0;

printf("Masukan data yang ingin dicari : "); scanf("%i",&cari);

for(i=0;i<10;i++) {

if(data[i]==cari)

{

flag=1;

break; }

}

if(flag==1)

printf("Data yang dicari ditemukan pada index ke-%i\n",i);

else {


(8)

printf("\n"); } }

void Binary_Search() //fungsi pencarian dengan binary {

int temp,awal,tengah,akhir,cari,a,i,flag=0; awal=0;

akhir=9;


(9)

void Interpolation_Search() //fungsi pencarian dengan interpolation { int data[10]; int low,high,pos,cari,flag=0; float posisi; low=0; high=9;

printf("Masukkan Data yang anda cari :"); scanf("%i",&cari); do { posisi=(float)((cari-data2[low])/(data2[high]-data2[low]))*(high-low) +low; pos=floor(posisi); if (data2[pos]==cari) {

flag=1; //data ditemukan break;

}

if(data2[pos]>cari) high=pos-1; else if(data2[pos]<cari) low=pos+1; }while(cari>=data2[low] && cari<=data2[high]); if(flag==1)printf("Data Anda ditemukan\n"); else printf("Data Anda tidak ditemukan!\n"); }

void Input_Data() //fungsi input data {

printf("\nMasukkan data Sebanyak 10\n\n");

for(int i=0;i<10;i++) //data sebanyak 10 {

printf("Data ke-%d = ",(i+1)); scanf("%d",&data[i]);

data2[i] = data[i]; }


(10)

int main() {

int pilih,i,a,temp;

cout<<" |+++++++++++++++++++++++++++++|"<<endl; printf(" | Menu Searching |\n"); cout<<" |---|"<<endl; printf(" | 1. Sequential Search |\n"); printf(" | 2. Binary Search |\n"); printf(" | 3. Interpolation Search |\n"); cout<<" |+++++++++++++++++++++++++++++|"<<endl;

printf("\nMasukkan Pilihan Anda = "); scanf("%d",&pilih);

Input_Data(); for (a=0;a<=4;a++) {

data2[a]=data[a]; }

for (a=0;a<4;a++) {

for (i=a+1;i<=4;i++) {

if (data2[i]<data2[a]) {

temp = data2[i]; data2[i] = data2[a]; data2[a] = temp; }

} }


(11)

Output Program : switch(pilih)

{

case 1:Sequential_Search(); break;

case 2:Binary_Search(); break;

case 3:Interpolation_Search(); break;

default: break; }


(12)

Algoritma : 1) Mulai.

2) Membaca file header.

3) Membaca tipe data int dalam sebuah array. 4) Membaca fungsi sequential search.

5) Membaca fungsi binary search. 6) Membaca fungsi interpolation search. 7) Membaca fungsi input data.

8) Membaca fungsi utama. 9) Inputan Pilihan 1, 2, 3. 10) Masukkan pilihan 1/2/3.

11) Membaca fungsi inputan data kemudian perulangan for

for (a=0;a<=4;a++) { data2[a]=data[a]; } for (a=0;a<4;a++) { for (i=a+1;i<=4;i++) { if (data2[i]<data2[a]) {

temp = data2[i]; data2[i] = data2[a]; data2[a] = temp; }

} }

12) Membaca fungsi percabangan switch-case. 13) Membaca fungsi default dan break.

14) Cetak hasil. 15) Selesai.

Deskripsi:

Program diatas adalah aplikasi dari 3 pilihan metode searching yang dijadikan satu dengan menggunakan percabangan switch-case. Program diatas menggunakan fungsi sequential search, binary search dan interpolation search, dan itu semua merupakan metode metode dalam pencarian.


(13)

Percobaan 2.1

Algoritma dan Struktur Data Nama Program : Program array 1 dimensi

Bahasa Pemrogramam : C++

Compiler : Code Blocks Script program :

#include<stdio.h> #include<iostream> using namespace std; int main()

{

int data[100]; int i, cari, n; cout<<endl;

cout<<"Masukkan jumlah array = "; cin>>n;cout<<endl;

for(int j=0;j<n;j++) {

cout<<endl;


(14)

Output Program:

Algoritma :

1. Mulai

2. Membaca header file 3. Pendeklarasian 4. Membaca fungsi

5. Masukkan jumlah array

6. Input data sebanyak jumlah array 7. Masukkan data yang dicari 8. Cetak Hasil

9. Selesai Deskripsi:

Program diatas menampilkan sebuah pencarian data dari sebuah array dimensi 1. Pertama user akan memasukkan jumlah array yang akan dimasukkan, kemudian user akan memasukkan data sebanyak jumlah array yang dimasukkan sebelum. Tujuan program diatas adalah mencari data yang dicari pada posisi indeks berapa.

Percobaan 2.2

Algoritma dan Struktur Data Nama Program : Program array 2 dimensi Bahasa Pemrogramam : C++

Compiler : Code Blocks Script program :

#include<iostream> #include<iomanip> using namespace std; int main ()


(15)

Output Program : cout<<endl;

cout<<"Masukkan nilai Anda yang dicari : "; cin>>cari;

cout<<endl; i=0;

for (a=0;a<baris;a++) {

for (b=0;b<kolom;b++) {

if (cari==data[a][b]) {

cout<<"Data Anda ditemukan pada indeks ["<<a<<"] ["<<b<<"]\n";

i++; }

} }

if (i==0)

cout<<"Maaf Data Anda tidak ditemukan!"<<endl; }


(16)

Algoritma : 1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan banyak baris array 5. Masukkan banyak kolom array

6. Masukkan data sesuai dengan banyak array yang telah ditentukan 7. Menampilkan array

8. Masukkan data yang ingin dicari

9. Cetak hasil menampilkan pada indeks ke – data tersebut 10. selesai

Deskripsi :

Program diatas menampilkan sebuah array 2 dimensi, kemudian akan dicari data yang ingin dicari. Pertama user memasukkan banyak baris array. Setelah itu user memasukkan banyak kolom array sesuai dengan yang diinginkan. Kemudian user memasukkan data sesuai dengan banyak baris dan kolom yang dimasukkan sebelumnya. Setelah itu array akan ditampilkan dan selanjutnya user memasukkan data yang ingin dicari. Hasil dari program diatas adalah data yang dicari berada pada indeks ke [. . .] .

Percobaan 3.1

Algoritma dan Struktur Data Nama Program : Program array 1 dimensi Bahasa Pemrogramam : C++

Compiler : Code Blocks. Script program :


(17)

#include<stdio.h> #include<iostream> using namespace std; int main()

{

int data[100];

int i, cari, n, jumlah=0; cout<<endl;

cout<<"|>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<|"<<endl; cout<<"| Program Searching |"<<endl; cout<<"|>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<|"<<endl; cout<<endl;

cout<<" Masukkan jumlah array = "; cin>>n;

cout<<endl;

for(int j=0;j<n;j++) {

cout<<"Masukkan data ke ["<<j<<"] = "; cin>>data[j];

cout<<endl; }

cout<<"Masukkan data yang ingin dicari : "; cin>>cari;

cout<<endl;

printf(" Data %i ditemukan pada indeks ", cari); for(i=0;i<n;i++)


(18)

Output Program :

Algoritma : 1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan jumlah array yang diingikan

5. Masukkan data-data array sesuai dengan jumlah array 6. Masukkan data yang ingin dicari

7. Cetak hasil seperti “ data ( . . . ) ditemukan pada indeks ke [ ], data ditemukan sebanyak ( . . . ) data

8. Selesai

Deskripsi :

Program diatas akan mencari sebuah data dan banyak data yang dicari tersebut. Sama seperti program-program sebelumnya program ini menggunakan fungsi array. Untuk hasil dari {

if(data[i]==cari){ //jika data yang dicari berada pada data data[i] printf("ke [%i], ", i); //tampilkan data beserta index

jumlah=jumlah+1; //dan penemuan data dijumlahkan }

}

cout<<endl;

cout<<"\n Data yang Anda cari ditemukan sebanyak "<<jumlah<<" data."; cout<<endl;


(19)

program diatas menampilkan semua data yang dicari ketika data yang dicari jumlahnya lebih dari satu. Untuk menentukan jumlah data yang di cari menggunakan script seperti berikut : if(data[i]==cari){ //jika data yang dicari berada pada data data[i]

printf("ke [%i], ", i); //tampilkan data beserta index jumlah=jumlah+1; //dan penemuan data dijumlahkan

Percobaan 3.2

Algoritma dan Struktur Data

Nama Program : Program input number secara random Bahasa Pemrogramam : C++

Compiler : Code Blocks. Script program :


(20)

#include<iostream> #include <stdlib.h>

using namespace std; int main()

{

int n,data[50],cari,a,i,ganjil,genap,odd[50],even[50]; cout<<endl;

cout<<"Inputkan data :"; cin>>n;

cout<<endl;

cout<<" Data random : \n"; cout<<endl; for (a=0;a<n;a++) { data[a]=rand(); cout<<data[a]; cout<<endl; } ganjil=0; genap=0; for (a=0;a<n;a++) { if(data[a]%2==0) { genap++; even[genap]=data[a]; } else { ganjil++; odd[ganjil]=data[a]; } } cout<<endl;

cout<<" Data genap ada "<<genap<<" itu adalah\n"; for (a=1;a<=genap;a++)


(21)

Output Program :

Algoritma : 1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan jumlah data 5. Membaca fungsi random

6. Tampilan data yang muncul secara random 7. Membaca fungsi

a. Yang termasuk dalam bilangan genap b. Yang termasuk dalam bilangan ganjil 8. Hasil

9. Selesai Deskripsi :

Program diatas menampilkan data secara random dimana user hanya memasukkan jumlah data yang ingin tampilkan. Kemudian program diatas akan mengolongkan data-data sesuai dengan golongan nya yaitu golongan bilangan genap atau pada golongan bilangan ganjil.

D. TUGAS RUMAH (SEKALIGUS PRAKTIKUM): Tugas Rumah 1

Algoritma dan Struktur Data Nama Program : Program Kata

Bahasa Pemrogramam : C++


(22)

(23)

Script program : #include <stdio.h>

#include <ctype.h> #include <string.h> #include <iostream> using namespace std;

void sequential_search(char data[],int cari, const int size); int main()

{

char kata[100],data1[50],data2[50],data3[50],cari; int i,vokal=0,numerik=0,konsonan=0,size,jml; cout<<endl;

cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl; printf(" Masukkan Sebuah Kalimat: ");

gets(kata);

size=strlen(kata);

for (int a=0;kata[a];a++)

{ //Fungsi toupper adalah merubah huruf kecil menjadi huruf kapital if(toupper(kata[a])=='A'||toupper(kata[a])=='I'||

toupper(kata[a])=='U'||toupper(kata[a])=='E'||toupper(kata[a])=='O') {

data1[vokal]=kata[a]; vokal++;

}

else if (isdigit (kata[a])) {

data2[numerik]=kata[a]; numerik++;


(24)

(25)

else if (isspace (kata[a])) {} else

{

data3[konsonan]=kata[a]; konsonan++;

} }

printf("\n Kelompok Huruf Vokal = %d = ",vokal); for (i=0;i<vokal;i++)

{

printf("%c ", data1[i]); }

cout<<endl;

printf("\n Kelompok Numerik = %d = ",numerik); for (i=0;i<numerik;i++)

{

printf("%c ", data2[i]); }

cout<<endl;

printf("\n Kelompok Huruf Konsonan = %d = ",konsonan); for (i=0;i<konsonan;i++)

{

printf("%c ", data3[i]); }

cout<<endl;

jml=vokal+numerik+konsonan;

printf("\n Banyak Kalimat = %d ",jml); cout<<endl;

printf("\n Data Yang Ingin Anda Dicari : "); scanf("%c",&cari);

sequential_search(kata,cari,size); }


(26)

OutProgram : Algoritma :

1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan sebuah kalimat yang diinginkan 5. Membaca fungsi huruf vokal

6. Membaca fungsi numerik

7. Membaca fungsi huruf konsonan 8. Menampilkan kelompok huruf vokal 9. Menampilkan kelompok numerik

10. Menampilkan kelompok huruf konsonan 11. Membaca fungsi banyak kalimat

12. Menampilkan banyak kalimat 13. Masukkan data yang ingin dicari 14. Hasil

15. Selesai Deklarasi :

void sequential_search(char data[],int cari, const int size) {

int i, flag=0;

for(i=0;i<size;i++) { if (data[i]==cari) { flag=1; cout<<endl;

printf ("\nData yang Anda di cari ada pada index ke-%d", i); } } cout<<endl; if (flag!=1) { cout<<endl;

printf("Maaf Data yang Anda dicari tidak ditemukan !!!\n"); }

cout<<endl; }


(27)

Program ini akan menampilkan Huruf Vokal, Huruf Konsonan, Numerik, dan total kata dari kalimat yang telah diinputkan oleh user. Program diatas juga menggunakan fungsi toupper. Fungsi toupper sendiri berguna untuk mengubah huruf kecil menjadi huruf kapital. Hasil dari data diatas adalah posisi indeks yang dicari, dan menampilkan semua data ketika data yang dicari lebih dari satu.

Tugas Rumah 2

Algoritma dan Struktur Data

Nama Program :Program searching number dengan input random Bahasa Pemrogramam : C++


(28)

Script program : #include <iostream>

#include <iomanip> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <cmath>

using namespace std;

int data[100];

int flag = 0, i, banyak, metode; int a, b=0;

int awal, akhir, tengah, pos, cari, posisi; int temp;

char urutkan; char tampil;

int binary(){

while(awal<=akhir && flag==0) {

tengah=(awal+akhir)/2;

if(data[tengah]==cari) {

flag=1; break; }


(29)

else if(data[tengah]<cari) {

awal=tengah+1;

printf("cari kiri\n"); }

else {

akhir=tengah-1;


(30)

main(){

cout<<endl;

cout<<"Masukkan jumlah data yang digunakan : "; cin>>banyak;

cout <<endl;

cout<<"Tampilkan Data [Y/T] : "; cin>>tampil;

cout<<endl;

if (tampil == 'Y' || tampil == 'y'){ for(int j=0; j<banyak;j++){

data[j] = rand()%banyak; cout << " " << data[j] << " "; }

}

else {

}

cout<<endl<<endl;

cout<< "\n\nUrutkan data [Y/T] : "; cin>>urutkan;

cout<<endl;

if(urutkan == 'Y' || urutkan == 'y'){ for(int ii=0; ii<banyak; ii++){ if(data[ii] >= data[ii+1]){ temp = data[ii];

data[ii] = data[ii+1]; data[ii+1] = temp; metode = 1;

} } }


(31)

else {

metode = 0; }

cout<<endl;

cout<<"Masukkan data yang akan dicari : "; cin>>cari;

cout<<endl<<endl; if(metode != 0){

cout<<"|=========================|"<<endl; cout<<"|Pilih metode pencarian : |"<<endl; cout<<"|---|"<<endl; cout<<"|[1] Binary |"<<endl; cout<<"|[2] Interpolation |"<<endl; cout<<"|=========================|"<<endl; cout<<"Pilihan metode : ";

cin>>metode; }

if(metode == 0){

for(i = 0;i<banyak;i++){ if(data[i] == cari){ flag = 1;

break; }

} }

else if(metode == 1){ binary(); }

else if(metode == 2){ interpolation(); }

if(flag == 0) cout << "Data Ditemukan "; else cout << "Data Ditemukan ";

getch(); return 0; }


(32)

OutProgram :

Algoritma : 1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Membaca fungsi binary search 5. Membaca fungsi interpolation search 6. Masukkan jumlah data


(33)

7. Pilihan menampilkan data, jika Y data akan ditampilkan dan jika T data tidak tampilkan. Data yang tampilkan secara random

8. Masukkan data yang dicari

9. Pilihan mengurutkan data, jika Y data akan diurutkan dan jika T data tidak diurutkan 10. Pilih metode search, akan masuk ke pilihan metode pilihan jika pada pilihan

mengurutkan data user memilih Y jika user memilih T maka data yang dicari langsung ditampilkan

11. Hasil pencarian 12. Selesai

Deklarasi :

Program diatas menggunakan fungsi metode pencarian binary search dan

interpolation search. Program tersebut akan menampilkan sebuah data yang banyak data nya diinputkan oleh user tetapi data-data yang akan muncul secara random. Kemudian pada pilihan urutkan data, jika user ingin mengurutkan data maka user akan menuju kemenu metode searching diantaranya binary dan interpolation seacrh, jika user tidak mengurutkan data akan langsung dicari menggunakan linear search.

Tugas Rumah 3

Algoritma dan Struktur Data Nama Program : Program mengubah kata Bahasa Pemrogramam : C++

Compiler : Code Blocks. Script program :

#include <stdio.h> #include <iostream> #define N 255


(34)

Output Program :

Algoritma : 1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan sebuah kalimat yang diingikan 5. Masukkan karakter yang dicari

6. Masukkan karakter pengganti

7. Menampilkan hasil sesuai dengan karakter yang diganti .

8. Untuk pergantian karakter program akan memanggil fungsi replace 9. Selesai

Deklarasi :

Program diatas untuk mengubah karakter dari kalimat yang dimasukkan oleh user. User juga memasukkan karakter yang dicari dan kemudian user memasukkan karakter penggantinnya. Pertama user memasukkan sebuah kalimat yang diinginkan, kemudian user memasukkan karakter yang ingin diganti. Setelah itu user memasukkan karakter

void replace(char *data, char find, char replace){ int i=0;

while(*data !='\0'){

/* fungsi merubah karakter */

*data=((*data == find)?replace:*data); data++;

i++; } }


(35)

penggantinya. Kemudian program akan memanggil fungsi replace atau fungsi untuk merubah karakter yang telah ditentukan. Setelah itu hasil replace akan keluar sesuai dengan karakter yang ingin diganti tadi dengan karakter penggantinya.

E. KESIMPULAN.

1. Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir.

2. Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat.

3. Binary search metode pencarian ini, data harus diurutkan terlebih dahulu.

6. Interpolation search. Seperti pada binary search, data yang harus diurutkan terlebih dahulu, sebelum dapat dilakukan pencarian dengan metodeini.

7. Pada metode pencarian ini, kita mencoba menebak letak data yang kita cari, dengan perhitungan

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

F. DAFTAR RUJUKAN

1. Tim Asisten Dosen. 2014. Modul 3 Searhing (Pencarian). Malang: Unversitas Negeri Malang.

2. http://blog.creanivate.com/2010/08/sequential-search-program-in-c.html 3. http://blog-sharings.blogspot.com/2012/07/konsep-binary-search.html


(1)

main(){

cout<<endl;

cout<<"Masukkan jumlah data yang digunakan : "; cin>>banyak;

cout <<endl;

cout<<"Tampilkan Data [Y/T] : "; cin>>tampil;

cout<<endl;

if (tampil == 'Y' || tampil == 'y'){ for(int j=0; j<banyak;j++){

data[j] = rand()%banyak; cout << " " << data[j] << " "; }

}

else {

}

cout<<endl<<endl;

cout<< "\n\nUrutkan data [Y/T] : "; cin>>urutkan;

cout<<endl;

if(urutkan == 'Y' || urutkan == 'y'){ for(int ii=0; ii<banyak; ii++){ if(data[ii] >= data[ii+1]){ temp = data[ii];

data[ii] = data[ii+1]; data[ii+1] = temp; metode = 1;

} } }


(2)

else {

metode = 0; }

cout<<endl;

cout<<"Masukkan data yang akan dicari : "; cin>>cari;

cout<<endl<<endl; if(metode != 0){

cout<<"|=========================|"<<endl; cout<<"|Pilih metode pencarian : |"<<endl; cout<<"|---|"<<endl; cout<<"|[1] Binary |"<<endl; cout<<"|[2] Interpolation |"<<endl; cout<<"|=========================|"<<endl; cout<<"Pilihan metode : ";

cin>>metode; }

if(metode == 0){

for(i = 0;i<banyak;i++){ if(data[i] == cari){ flag = 1;

break; }

} }

else if(metode == 1){ binary(); }

else if(metode == 2){ interpolation(); }

if(flag == 0) cout << "Data Ditemukan "; else cout << "Data Ditemukan ";

getch(); return 0; }


(3)

OutProgram :

Algoritma :

1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Membaca fungsi binary search 5. Membaca fungsi interpolation search 6. Masukkan jumlah data


(4)

7. Pilihan menampilkan data, jika Y data akan ditampilkan dan jika T data tidak tampilkan. Data yang tampilkan secara random

8. Masukkan data yang dicari

9. Pilihan mengurutkan data, jika Y data akan diurutkan dan jika T data tidak diurutkan 10. Pilih metode search, akan masuk ke pilihan metode pilihan jika pada pilihan

mengurutkan data user memilih Y jika user memilih T maka data yang dicari langsung ditampilkan

11. Hasil pencarian 12. Selesai

Deklarasi :

Program diatas menggunakan fungsi metode pencarian binary search dan

interpolation search. Program tersebut akan menampilkan sebuah data yang banyak data nya diinputkan oleh user tetapi data-data yang akan muncul secara random. Kemudian pada pilihan urutkan data, jika user ingin mengurutkan data maka user akan menuju kemenu metode searching diantaranya binary dan interpolation seacrh, jika user tidak mengurutkan data akan langsung dicari menggunakan linear search.

Tugas Rumah 3

Algoritma dan Struktur Data

Nama Program : Program mengubah kata

Bahasa Pemrogramam : C++

Compiler : Code Blocks.

Script program :

#include <stdio.h> #include <iostream> #define N 255


(5)

Output Program :

Algoritma :

1. Mulai

2. Membaca header file 3. Pendeklarasian

4. Masukkan sebuah kalimat yang diingikan 5. Masukkan karakter yang dicari

6. Masukkan karakter pengganti

7. Menampilkan hasil sesuai dengan karakter yang diganti .

8. Untuk pergantian karakter program akan memanggil fungsi replace 9. Selesai

Deklarasi :

Program diatas untuk mengubah karakter dari kalimat yang dimasukkan oleh user. User juga memasukkan karakter yang dicari dan kemudian user memasukkan karakter penggantinnya. Pertama user memasukkan sebuah kalimat yang diinginkan, kemudian user memasukkan karakter yang ingin diganti. Setelah itu user memasukkan karakter

void replace(char *data, char find, char replace){ int i=0;

while(*data !='\0'){

/* fungsi merubah karakter */

*data=((*data == find)?replace:*data); data++;

i++; } }


(6)

penggantinya. Kemudian program akan memanggil fungsi replace atau fungsi untuk merubah karakter yang telah ditentukan. Setelah itu hasil replace akan keluar sesuai dengan karakter yang ingin diganti tadi dengan karakter penggantinya.

E. KESIMPULAN.

1. Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir.

2. Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat.

3. Binary search metode pencarian ini, data harus diurutkan terlebih dahulu.

6. Interpolation search. Seperti pada binary search, data yang harus diurutkan terlebih dahulu, sebelum dapat dilakukan pencarian dengan metode ini.

7. Pada metode pencarian ini, kita mencoba menebak letak data yang kita cari, dengan perhitungan

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

F. DAFTAR RUJUKAN

1. Tim Asisten Dosen. 2014. Modul 3 Searhing (Pencarian). Malang: Unversitas Negeri Malang.

2. http://blog.creanivate.com/2010/08/sequential-search-program-in-c.html