Anda di halaman 1dari 7

LAPORAN PRAKTIKUM SEMENTARA SEARCHING

Disusun oleh : Unggul Budi Suryanto 201301011

Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom

JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO 2014

BAB I 1. Dasar Teori Pencarian(searching) adalah tindakan untuk mendapatkan suatu data dalam kumpulan data. Untuk keperluan pencariandata, terdapat beragam algoritma pencarian (search algorithm). Menurut tenenbaum dan augenstein, algoritma pencarian yaitu algoritma yang menerima sebuah argumen X dan mencoba untuk menemukan sebuah rekaman yang memiliki kunci X. Sebagai contoh pencarian data mahasiswa dengan nim 201301011, maka hasilnya adalah record yang berisi data mahasiswa tersebut yang didalamnya kemungkinan berisi nama, alamat, tempat tanggal lahir dan program studi. 1. Pencarian sekuensial (sequential search) Adalah model pencarian yang paling sederhana terhadap suatu kumpulan data. Nama lainnya adalah pencarian lurus(linear search). Terdapat L yang merupakan larik (array) yang berisi n buah data. L[0], L[1],......,L[n-1] dan k adalah data yang dicari. Rumus : L[i]=k Ket : i adalah data terkecil yg memenuhi kondisi 0kn-1 2. Pencarian biner (binary search)

Pencarian biner atau binary search yaitu sebuah metode pencarian data dengan waktu yang cepat, yaitu dengan cara membagi dua data. Contoh kasus dalam kehidupan sehari hari yaitu saat kita melakukan sebuah pencarian suatu kata dalam kamus bahasa inggris, maka kita akan mencarinya dengan cara membagi halaman yang akan dicari, jika kata yang dicari tidak ada disebelah kiri maka kita akan mencariya dibagian sebelah kanan sampai kata yang tadi dicari ketemu. 3. Pencarian pada string Pencarian pada string yaitu pencarian suatu huruf pada suatu kalimat. Misalkan kita akan mencari huruf L dalam kalimat unggul budi suryanto maka yang akan ditampilkan posisi huruf L ada diposisi 6.

2. Listing Program
/* * praktikum5_1.cpp * * Created on: 6 Apr 2014 * Author: unggul budi suryanto

*/

#include<iostream> using namespace std;

int cari(int data[], int n, int k) { int posisi, i, ketemu; if (n <=0) posisi=-1; else { ketemu=0; i=1; while ((i<n-1) && !ketemu) if (data[i] == k) { posisi = i; ketemu = i; } else i++; if (!ketemu) posisi=-1; } return posisi; } int main() { int data[8]={10,9,6,4,7,5,4,1}; int dicari=4; cout<<"posisi "<<dicari<<" ada dalam larik data ke: "<<cari(data,8,dicari)<<"\n"; return 0; }

Output dari listing program 5_1.

Penjelasan listing program praktikum 5.1 1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program yang akan dijalankan 2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan output seperti cout<<var. 4. int data, n, k, posisi, i ketemu adalah deklarasi variabel n,data, k, posisi, i, ketemu yang bertipe data integer. 5. If(n <=0) ..... adalah rumus yang akan digunakan dalam program. 6. Return posisi berfungsi untuk mengembalikan ke instruksi posisi apabila instruksi belum ditemukan. 7. Int main() adalah main program berupa integer atau program utama dalam koding tersebut. Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan tanda kurung kurawal tutup } 8. Cout<<var = ; adalah berfungsi untuk melakukan instruksi atau sebuah fungsi perintah untuk memunculkan variable yang ditulis oleh programmer.. 9. Pemanggilan istruksi dilkukan saat var <<cari dipanggil. 10. return 0; digunakan untuk membaca data karakter

/* * program5_2.cpp * * Created on: 6 Apr 2014 * Author: unggul budi suryanto */ #include<iostream> using namespace std; int caribiner(int data[], int n, int k) { int ada, atas, bawah, tengah, posisi; ada=0; bawah=0; atas=n-1; while (atas>=bawah) { tengah=(atas+bawah)/2; if (k>data[tengah]) bawah=tengah+1; else if (k<data[tengah]) atas=tengah-1; else { ada=1; posisi=tengah; bawah=atas+1; } } if(!ada) posisi=-1; return posisi; } int main() { int data[]={10, 9, 7, 6, 5, 4, 3, 1 };

int dicari=6; cout<<"posisi "<<dicari<<" dalam larik data : "<<caribiner (data, 8,dicari)<<"\n"; return 0;

Outputnya adalah

Penjelasan listing program praktikum 5.2 1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program yang akan dijalankan 2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai. 3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan output seperti cout<<var. 4. Int caribiner adalah pendeklarasian variabel bertipe data integer. 5. Int data, int n, int k adalah variabel bertipe data integer yang akan digunakan dalam program dari { sampai }. 6. Int ada,atas, bawah, tengah, posisi adalah pendeklarasian bertipe data integer yang digunakan dalam program ini dari { sampai }. 7. Int main() adalah main program berupa integer atau program utama dalam koding tersebut. Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan tanda kurung kurawal tutup }. 8. Cout<<posisi bla bla bla =; berguna untuk melakukan instruksi atau sebuah fungsi perintah untuk memunculkan variable yang ditulis oleh programmer. 9. Pemanggilan data variabel dilakukan pada saat <<caribiner dipanggil oleh program. 10. return 0; digunakan untuk membaca data karakter

/* * program5_3.cpp * * Created on: 6 Apr 2014 * Author: unggul budi suryanto */ #include<iostream> #include<cstring> using namespace std; int string_kar(char st[], char k)

{ int i, posisi, panjang; i=0; posisi = -1; panjang = strlen(st); while ((i<panjang-1) && posisi == -1) { if (st[i] == k) posisi=i; i++; } return posisi; } int main() { char kalimat[]="Hallo stikom yos sudarso"; char dicari ='y'; cout<<"posisi "<<dicari<<" didalam string "<<kalimat<<": "<<string_kar(kalimat, dicari)<<"\n"; return 0; }

Outputnya adalah

Penjelasan listing program praktikum 5.3 1. Tanda yang diawali dengan */ dan diakhiri dengan /* adalah script yang digunakan untuk membuat sebuah komentar pada pemrograman C++ dan tidak berpengaruh dengan program yang akan dijalankan 2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai. 3. <iostream> adalah sebuah library yang dibutuhkan untuk fungsi input seperti cin>>var dan output seperti cout<<var. 4. Int string_kar adalah pendeklarasian data bertipe data integer. 5. Char st, char k adalah pendeklarasian variabel bertipe char yang akan digunakan dalam program. 6. Int main() adalah main program berupa integer atau program utama dalam koding tersebut. Setiap program utama harus diawali dengan tanda kurung kurawal buka{ dan diakhiri dengan tanda kurung kurawal tutup } 7. St adalah strerlen yang dalam bahasa c++ digunakan untuk mencari data huruf. 8. Cout<<posisi bla bla bla; berguna untuk melakukan instruksi atau sebuah fungsi perintah untuk memunculkan variable yang ditulis oleh programmer. 9. return 0; digunakan untuk membaca data karakter

BAB II KESIMPULAN Pencarian(searching) adalah tindakan untuk mendapatkan suatu data dalam kumpulan data. Seperti nama babnya, bab ini mempelajari tentang program program pencarian suatu data. Pencarian ada 3 macam yaitu pencarian sekuensial, pencarian dalam biner dan pencarian dalam string.

Anda mungkin juga menyukai