Anda di halaman 1dari 17

LAPORAN PRAKTIKUM RESMI

SEARCHING





Disusun oleh :
Steven Nyotoharjo
201301001

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



JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO
PURWOKERTO
2014
2

BAB I
TEORI DASAR
Pencarian (searching) adalah tindakan untuk mendapatkan suatu data dalam kumpulan
data. Untuk keperluan pencarian data, terdapat beragam algoritma pencarian (search algorithm).
Algoritma Pencarian adalah algoritma yang menerima sebuah argumen X dan mencoba
menemukan sebuah rekaman yang memiliki kunci X. Sebagai contoh, pencarian data mahasiswa
dengan NIM dan hasilnya adalah menampilkan record yang berisi data mahasiswa seperti nama,
alamat, tempat tanggal lahir dan program studi.
Pencarian terhadap data yang berada di dalam memori komputer disebut pencarian
internal. Sedangkan pencarian di server lain disebut pencarian eksternal.
1. PENCARIAN SEKUENSIAL (Sequential Search)
Pencarian sekuensial (sequential search) adalah metode pencarian paling sederhana yang
dilakukan terhadap suatu kumpulan data. Nama lain pencarian sekuensial adalah
pencarian lurus (linear serach).
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
i adalah bilangan index terkecil yang memenuhi kondisi 0kn-1
2. PENCARIAN BINER (Binary Search)
Pencarian biner (binary search) adalah algoritma yang digunakan untuk kebutuhan
pencarian data dengan waktu yang cepat. Prinsip pencarian dengan menggunakan metode
biner atau membagi menjadi dua bagian mengilhami algoritma pencarian bagian dua.
Data yang tersimpan didalam larik harus sudah dalam keadaan terurut.
3. PENCARIAN PADA STRING
Pencarian pada string yaitu pencarian suatu huruf pada sebuah kalimat. Sebagai contoh
terdapat kalimat hallo stikom yos sudarso, di dalam kalimat tersebut yang dicari
adalah huruf y. Maka yang akan ditampilkan posisi dari huruf y tersebut yaitu di
posisi 13.
3

BAB II
PENJELASAN PROGRAM
Pada bab ini akan membahas tentang listing program, mencakup latihan yang dilakukan yaitu
Program 5.1, Program 5.2, Program 5.3 Program 5.1 dengan Inputan User, Program 5.2 dengan
Inputan User, dan Program 5.3 dengan Inputan User.
1. Latihan Praktikum
Listing Program 5.1
/ *
* 5. cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
usi ng namespace st d;

i nt cari ( i nt dat a[ ] , i nt n, i nt k)
{
i nt posi si , i , ket emu;
i f( n<0)
posi si =- 1;
el se
{
ket emu=0;
i =1;
whi l e ( ( i <n- 1) && ! ket emu)
i f ( dat a[ i ] ==k)
{
posi si =i ;
ket emu=i ;
}
el se
i ++;
i f( ! ket emu)
posi si =- 1;
}
return posi si ;
}
i nt mai n( )
{
i nt dat a[ 8] ={10, 9, 6, 4, 7, 5, 4, 1};
i nt di car i =4;
cout <<"Posi si "<<di car i <<" ada dal aml ar i k dat a ke
: "<<car i ( dat a, 8, di car i ) <<"\ n";
return 0;
}
4

Output Program 5.1

Penjelasan Program 5.1
Berikut penjelasan dari Listing Program 5.1 :
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau teks,
maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program.
4. i nt cari ( i nt dat a[ ] , i nt n , i nt k) merupakan statement fungsi dengan nama fungsi
cari.
5. i nt posi si , i , ket emu; adalah deklarasi variable posisi ,i, dan ketemu bertipe data
int/integer (bilangan bulat).
6. i f( n<=0)
posi si =- 1;
el se
{
ket emu=0;
i =1;
whi l e ( ( i <n- 1) && ! ket emu)
i f ( dat a[ i ] ==k)
{
posi si =i ;
ket emu=i ;
}
el se
i ++;
i f( ! ket emu)
posi si =- 1;
}
7. i nt mai n( ) {} merupakan isi dari suatu program.
8. i nt dat a[ 8] ={10, 9, 6, 4, 7, 5, 4, 1}; adalah tipe data data berbentuk int/integer (bilangan
bulat) yang berisi 8 digit dan berisi 10, 9, 6, 4, 7, 5, 4, dan 1.
Merupakan statement if else yang
berfungsi untuk menyeleksi /pemilihan.

5

9. i nt di car i =4; adalah tipe data dicari berbentuk int/integer (bilangan bulat) dan mencari
kara kunci 4.
10. cout <<"posi si "<<di car i <<" ada dal aml ar i k dat a ke : "<<car i ( dat a, 8, di car i ) <<"\ n";
merupakan statement pemanggilan fungsi.
11. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.
Listing Program 5.2
/ *
* 5. 2. cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
usi ng namespace st d;

i nt cari bi ner( i nt dat a[ ] , i nt n, i nt k)
{
i nt ada, at as, bawah, t engah, posi si ;

ada=0;
bawah=0;
at as=n- 1;
whi l e( at as>bawah)
{
t engah=( at as+bawah) / 2;
i f( k>dat a[ t engah] )
bawah=t engah+1;
el se
i f( k<dat a[ t engah] )
at as=t engah- 1;
el se
{
ada=1;
posi si =t engah;
bawah=at as+1;
}
}
i f( ! ada)
posi si =- 1;
return posi si ;
}

i nt mai n( )
{
i nt dat a[ ] ={10, 9, 7, 6, 5, 4, 3, 1};
i nt di car i =6;

6

cout <<"Posi si "<<di car i <<" dal aml ari k dat a : "<<car i bi ner ( dat a, 8,
di car i ) <<"\ n";
return 0;
}

Output Program 5.2

Penjelasan Listing Program 5.2
Berikut penjelasan dari Listing Program 5.1:
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program.
4. i nt cari bi ner( i nt dat a[ ] , i nt n, i nt k) merupakan statement fungsi dengan nama fungsi
caribiner.
5. i nt ada, at as, bawah, t engah, posi si ; adalah deklarasi variable ada, atas, bawah, tengah
dan posisi bertipe data int/integer (bilangan bulat).
6. ada=0;
bawah=0;
at as=n- 1;
7. whi l e ( at as>=bawah) {} merupakan statement perulangan yang berfungsi untuk melakukan
perulangan suatu program.
8. i f ( k>dat a[ t engah] )
el se
{
}
9. i nt mai n( ) {} merupakan isi dari suatu program.
10. i nt dat a[ ] ={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data data berbentuk int/integer
(bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.
11. i nt di car i =6; adalah tipe data dicari berbentuk int/integer (bilangan bulat) dan mencari
kata kunci 6.
12. cout <<"Posi si "<<di car i <<" dal aml ari k dat a : "<<car i bi ner ( dat a, 8,
ada bernilai sama dengan 0, bawah bernilai sama dengan 0, dan
atas bernilai n-1.

Merupakan statement if- else yang berfungsi untuk
memilih /menyeleksi.

7

di car i ) <<"\ n"; merupakan statement pemanggilan fungsi.
13. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.
Listing Program 5.3
/ *
* 5. 3. cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
#i ncl ude <cst r i ng>
usi ng namespace st d;

i nt stri ng_kar( char st [ ] , char k)
{
i nt i , posi si , panj ang;
i =0;
posi si =- 1;
panj ang=strl en( st ) ;
whi l e ( ( i <panj ang- 1) && posi si ==- 1)
{
i f( st [ i ] ==k)
posi si =i ;
i ++;
}
return posi si ;
}

i nt mai n( )
{
char kal i mat [ ] ="Hal l o st i komyos sudar so";
char di car i =' y' ;

cout <<"Posi si "<<di car i <<" di dal amst r i ng "<<kal i mat <<":
"<<st r i ng_kar ( kal i mat , di car i ) <<"\ n";

return 0;
}

Output Program 5.3

8

Penjelasan Program 5.3
Berikut penjelasan dari Listing Program 5.3:
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program..
4. <cstring>merupakan header yang berisi kumpulan fungsi dari karakter.
5. i nt stri ng_kar( char st [ ] , char k) merupakan statement fungsi dengan nama fungsi
string_kar.
6. i nt i , posi si , panj ang; adalah deklarasi variable i, posisi, dan panjang bertipe data
int/integer (bilangan bulat).
7. i =0;
posi si =- 1;
panj ang=st r l en( st ) ;

8. whi l e ( ( i <panj ang- 1) && posi si == - 1)
{

}
9. i f ( st [ i ] == k)
posi si =i ;
i ++;
10. i nt mai n( ) {} merupakan isi dari suatu program.
11. char kal i mat [ ] ="Hal l o st i komyos sudar so "; adalah tipe data kalimat berbentuk char
(karakter) yang berisi "Hal l o st i komyos sudarso".
12. char di car i =' y' ; adalah tipe data dicari berbentuk char (karakter) dan mencari kata kunci
y.
13. cout <<"Posi si "<<di car i <<" di dal amst r i ng "<<kal i mat <<" :
"<<st r i ng_asdf ( kal i mat , di car i ) <<"\ n"; merupakan statement pemanggilan fungsi.
14. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.




i bernilai sama dengan 0, posisi bernilai sama dengan -1,
dan panjang bernilai strlen(st). Strlen merupakan fungsi
manipulasi string untuk menghitung panjang string.


merupakan statement perulangan

merupakan statement if- else yang berfungsi untuk
memilih/menyeleksi.

9

2. Tugas Praktikum
Listing Program 5.1 dengan Inputan User
/ *
* 5. 1 ci ncot . cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
usi ng namespace st d;

i nt cari ( i nt dat a[ ] , i nt n, i nt k)
{
i nt posi si , i , ket emu;
i f( n<0)
posi si =- 1;
el se
{
ket emu=0;
i =1;
whi l e ( ( i <n- 1) && ! ket emu)
i f ( dat a[ i ] ==k)
{
posi si =i ;
ket emu=i ;
}
el se
i ++;
i f( ! ket emu)
posi si =- 1;
}
return posi si ;
}

i nt mai n( )
{
i nt dat a[ ] ={10, 9, 6, 4, 7, 5, 4, 1};
i nt di car i ;

cout <<"Masukan ni l ai yang mau di car i : ";
ci n>>di car i ;
cout <<"Posi si "<<di car i <<" ada dal aml ar i k dat a ke
: "<<car i ( dat a, 8, di car i ) <<"\ n";
return 0;
}



10

Output Program 5.1 dengan Inputan User

Penjelasan Program 5.1 dengan Inputan User
Berikut penjelasan dari Listing Program 5.1 dengan Inputan User:
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau teks,
maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program.
4. i nt cari ( i nt dat a[ ] , i nt n , i nt k) merupakan statement fungsi dengan nama fungsi
cari.
5. i nt posi si , i , ket emu; adalah deklarasi variable posisi ,i, dan ketemu bertipe data
int/integer (bilangan bulat).
6. i f( n<=0)
posi si =- 1;
el se
{
ket emu=0;
i =1;
whi l e ( ( i <n- 1) && ! ket emu)
i f ( dat a[ i ] ==k)
{
posi si =i ;
ket emu=i ;
}
el se
i ++;
i f( ! ket emu)
posi si =- 1;
}
7. i nt mai n( ) {} merupakan isi dari suatu program.
8. i nt dat a[ 8] ={10, 9, 6, 4, 7, 5, 4, 1}; adalah tipe data data berbentuk int/integer (bilangan
bulat) yang berisi 8 digit dan berisi 10, 9, 6, 4, 7, 5, 4, dan 1.
Merupakan statement if else yang
berfungsi untuk menyeleksi /pemilihan.

11

9. i nt di car i ; adalah deklarasi variabel dicari yang bertipe data int/integer (bilangan bulat).
10. cout <<"Masukan ni l ai yang mau di car i : "; merupakan statement untuk menampilkan
keluaran.
11. ci n>>di car i ; merupakan statement untuk memasukan nilai dari inputan user ke dalam
variabel dicari.
12. cout <<"Posi si "<<di car i <<" ada dal aml ar i k dat a ke : "<<car i ( dat a, 8, di car i ) <<"\ n";
merupakan statement pemanggilan fungsi.
13. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.
Listing Program 5.2 dengan Inputan User
/ *
* 5. 2 ci ncot . cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
usi ng namespace st d;

i nt cari bi ner( i nt dat a[ ] , i nt n, i nt k)
{
i nt ada, at as, bawah, t engah, posi si ;

ada=0;
bawah=0;
at as=n- 1;
whi l e( at as>=bawah)
{
t engah=( at as+bawah) / 2;
i f( k>dat a[ t engah] )
bawah=t engah+1;
el se
i f( k<dat a[ t engah] )
at as=t engah- 1;
el se
{
ada=1;
posi si =t engah;
bawah=at as+1;
}
}
i f( ! ada)
posi si =- 1;
return posi si ;
}

i nt mai n( )
12

{
i nt dat a[ ] ={10, 9, 7, 6, 5, 4, 3, 1};
i nt di car i ;

cout <<"Masukan ni l ai yang mau di car i : ";
ci n>>di car i ;
cout <<"Posi si "<<di car i <<" dal aml ari k dat a : "<<car i bi ner ( dat a, 8,
di car i ) <<"\ n";
return 0;
}
Output Program 5.2 dengan Inputan User

Penjelasan Program 5.2 dengan Inputan User
Berikut penjelasan dari Listing Program 5.2 dengan Inputan User:
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program.
4. i nt cari bi ner( i nt dat a[ ] , i nt n, i nt k) merupakan statement fungsi dengan nama fungsi
caribiner.
5. i nt ada, at as, bawah, t engah, posi si ; adalah deklarasi variable ada, atas, bawah, tengah
dan posisi bertipe data int/integer (bilangan bulat).
6. ada=0;
bawah=0;
at as=n- 1;
7. whi l e ( at as>=bawah) {} merupakan statement perulangan yang berfungsi untuk melakukan
perulangan suatu program.
8. i f ( k>dat a[ t engah] )
el se
{
}
9. i nt mai n( ) {} merupakan isi dari suatu program.
ada bernilai sama dengan 0, bawah bernilai sama dengan 0, dan
atas bernilai n-1.

Merupakan statement if- else yang berfungsi untuk
memilih /menyeleksi.

13

10. i nt dat a[ ] ={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data data berbentuk int/integer
(bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.
11. i nt di car i ; adalah deklarasi variabel dicari yang bertipe data int/integer (bilangan bulat).
12. cout <<"Masukan ni l ai yang mau di car i : "; merupakan statement untuk menampilkan
keluaran.
13. ci n>>di car i ; merupakan statement untuk memasukan nilai dari inputan user ke dalam
variabel dicari.
14. cout <<"Posi si "<<di car i <<" dal aml ari k dat a : "<<car i bi ner ( dat a, 8,
di car i ) <<"\ n"; merupakan statement pemanggilan fungsi.
15. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.
Listing Program 5.3 dengan Inputan User
/ *
* 5. 3 ci ncot . cpp
*
* Cr eat ed on: Apr 15, 2014
* Aut hor : St even
*/

#i ncl ude <i ost ream>
#i ncl ude <cst r i ng>
usi ng namespace st d;

i nt stri ng_kar( char st [ ] , char k)
{
i nt i , posi si , panj ang;
i =0;
posi si =- 1;
panj ang=strl en( st ) ;
whi l e ( ( i <panj ang- 1) && posi si ==- 1)
{
i f( st [ i ] ==k)
posi si =i ;
i ++;
}
return posi si ;
}

i nt mai n( )
{
char kal i mat [ ] ="Hal l o st i komyos sudar so";
char di car i ;

cout <<"Masukan hur uf yang mau di car i : ";
ci n>>di car i ;
cout <<"Posi si "<<di car i <<" di dal amst r i ng "<<kal i mat <<":
"<<st r i ng_kar ( kal i mat , di car i ) <<"\ n";

14

return 0;
}
Output Program 5.3 dengan Inputan User

Penjelasan Program 5.3 dengan Inputan User
Berikut penjelasan dari Listing Program 5.3 dengan Inputan User:
1. Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah
komentar pada pemrograman C++yang didalamnya mengandung sebuah perintah atau
teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.
2. #include atau disebut sebagai pengarah preprocessor #include berfungsi untuk
menginstruksikan compiler untuk menyertakan berkas C++sumber yang lain sebelum
kompilasi dimulai.
3. <iostream>merupakan header yang digunakan untuk fungsi input (cin), output (cout) dan
endl pada program..
4. <cstring>merupakan header yang berisi kumpulan fungsi dari karakter.
5. i nt stri ng_kar( char st [ ] , char k) merupakan statement fungsi dengan nama fungsi
string_kar.
6. i nt i , posi si , panj ang; adalah deklarasi variable i, posisi, dan panjang bertipe data
int/integer (bilangan bulat).
7. i =0;
posi si =- 1;
panj ang=st r l en( st ) ;

8. whi l e ( ( i <panj ang- 1) && posi si == - 1)
{

}
9. i f ( st [ i ] == k)
posi si =i ;
i ++;
10. i nt mai n( ) {} merupakan isi dari suatu program.
11. char kal i mat [ ] ="Hal l o STI KOMyos Sudar so"; adalah tipe data kalimat berbentuk char
(karakter) yang berisi "Hal l o STI KOMyos Sudarso".
12. char di car i =; adalah deklarasi variabel dicari yang bertipe data char/character (karakter).
i bernilai sama dengan 0, posisi bernilai sama dengan -1,
dan panjang bernilai strlen(st). Strlen merupakan fungsi
manipulasi string untuk menghitung panjang string.


merupakan statement perulangan

merupakan statement if- else yang berfungsi untuk
memilih/menyeleksi.

15

13. cout <<"Masukan hur uf yang mau di car i : "; merupakan statement untuk menampilkan
keluaran.
14. ci n>>di car i ; merupakan statement untuk memasukan nilai dari inputan user ke dalam
variabel dicari.
15. cout <<"Posi si "<<di car i <<" di dal amst r i ng "<<kal i mat <<": "<<st r i ng_kar ( kal i mat ,
di car i ) <<"\ n"; merupakan statement pemanggilan fungsi.
15. return 0; adalah return statement yang memiliki arti untuk mengakhiri program utama
tanpa ada error dalam proses eksekusi.



















16

BAB III
KESIMPULAN
Pencarian (searching) adalah tindakan untuk mendapatkan sebuah data dalam kumpulan
data. Algoritma akan menerima sebuah argument dan akan mencari record yang memiliki kata
kunci sesuai dengan argument dalam kumpulan data.
Dalam searching, terdapat 3 metode yaitu Pencarian Sekuensial (Sequential Search),
Pencarian Biner (Binary Search) dan Pencarian pada String. Pencarian Sekuesial merupakan
pencarian yang paling sederhana. Pencarian Biner merupakan pencarian yang paling cepat
karena memakai metode membagi dua bagian kumpulan data dalam proses pencarian.
Sedangkan Pencarian pada String adalah pencarian suatu huruf pada sebuah kalimat.















17

BAB IV
DAFTAR PUSTAKA
Murya Kusuma Ardhana, Yosef dan Gregorius Airlangga. 2011. Algoritma
Pemrograman C++ Dalam Ilustrasi. Jasakom : Yogyakarta.
Murya Kusuma Ardhana, Yosef. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo
C++. CAPS : Yogyakarta

Anda mungkin juga menyukai