Disusun oleh :
Dengan mengucapkan puja dan puji syukur kehadirat Tuhan Yang Maha
Esa, yang telah melimpahkan rahmat dan karunia-Nya kepada kami, sehingga kami
dapat menyelesaikan penyusunan makalah terkait “Pencarian Beruntun dengan
Sentinel”. Tidak lupa kami juga mengucapkan banyak terima kasih atas bantuan dari
Bapak Edi Winarko selaku dosen mata ajar Algoritma dan Pemrograman dan rekan-
rekan yang telah berkontribusi dengan memberikan sumbangan baik materi maupun
pikirannya.
Makalah ini disusun dengan harapan dapat menambah pengetahuan dan
wawasan bagi para pembaca tentang pencarian beruntun dengan sentinel
menggunakan c++.
Karena keterbatasan pengetahuan maupun pengalaman, Kami menyadari
bahwa dalam penyusunan makalah ini masih jauh dari kesempurnaan. Untuk itu kami
sangat mengharapkan kritik dan saran yang sifatnya membangun guna sempurnanya
makalah ini. Kami berharap semoga makalah ini dapat bermanfaat bagi pembaca
umumnya dan bagi kami khususnya.
ii
DAFTAR ISI
KATA PENGANTAR…...……………………………...………………………...…ii
DAFTAR ISI .............................................................................................................. iii
BAB I PENDAHULUAN ............................................................................................ 1
1. 1. Latar Belakang................................................................................................. 1
1. 2. Rumusan Masalah ........................................................................................... 2
2. 3. Tujuan ............................................................................................................. 2
BAB II PEMBAHASAN ............................................................................................ 3
2. 1. Pencarian……………………………………………..…………………………..3
2. 2. Pencarian Beruntun dengan Sentinel………………..…………………………...3
2. 3. Contoh Program Pencarian Beruntun dengan Sentinel…………….……………4
2. 4. Kelebihan dan Kelemahan Pencarian Beruntun dengan Sentinel…………..…..11
BAB III PENUTUP…..……………………………………………………………..12
3. 1. Kesimpulan ..................................................................................................... 12
3. 2. Saran .............................................................................................................. 12
BAB IV DAFTAR PUSTAKA…………………………………………….…….....13
iii
BAB I
PENDAHULUAN
1. 1. Latar Belakang
1
pola tertentu, sehingga tersusun secara teratur menurut aturan
tertentu.Contoh:
Data Acak : 5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1
1. 2. Rumusan Masalah
Berdasarkan latar belakang di atas kami merumuskan suatu masalah
yaitu:
1. Bagaimana program pencarian beruntun dengan sentinel?
1. 3. Tujuan
Adapun tujuan penulisan adalah:
1. Menyelesaikan penugasan dalam mata kuliah Algoritma dan
Pemrograman.
2. Menambah wawasan pembaca mengenai pencarian beruntun dengan
sentinel.
2
BAB II
PEMBAHASAN
2. 1. Pencarian
3
Sentinel adalah suatu index larik yang berfungsi menjaga agar
larik tetap pada index tertentu. Sentinel ini pada penerapannya
digunakan untuk menyimpan data yang ingin dicari. Dan
Sentinel ini menentukan apakah data yang di cari itu ada atau
tidak ada. Sentinel ini diletakkan di akhir index larik.
NUMERIK
Algoritma
Procedure SeqSearchWithSentinel
(input L: LarikInt, input n: integer, input x: integer, output idx: integer)
DEKLARASI
I: integer
ALGORITMA
L[n+1] ← X {sentinel}
I←1
While (L[i] ≠ x) do
I ← i+1
Endwhile
If idx = n+1 then
idx ← -1
else
idx ← 1
endif
Contoh 1 program dalam bahasa c++:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
main()
{
int x[50],indeks[50];
int cari;
int i,n;
4
cout<<endl;
cout<<"Masukkan Banyaknya data : ";
cin>>n;
cout<<endl;
cout << "Masukan nilai pada elemen array "<<endl;
for(i=0;i<n;i++){
cout << "Nilai Indeks Ke-("<<(i+1)<<"): ";
cin>>x[i];}
cout<<endl;
cout<<"Nilai yang telah diinputkan"<<endl;
for( i=0;i<n;i++)
{
cout<<x[i]<<"\t";
}
cout<<endl;
cout<<"inputkan data yang ingin dicari : ";
cin>>cari;
x[50]=cari;
cout<<endl;
i=-1;
do
i=i+1;
while(i<n && cari!=x[i]);
if(i<n)
cout<<"DATA DITEMUKAN pada indeks ke-"<<i+1;
else
cout<<"DATA TIDAK DITEMUKAN";
getch();
}
5
Hasilnya:
printf("3,12,9,-4,21,6,1,2,8,7,4");
printf("masukkan data yang ingin dicari = ");scanf("%d",&cari);
data[11] = cari;
i=0;
while(data[i] != cari) i++;
if(i<11) printf("Data ada!\n"); else printf("Data tidak ada!\n");
getch;
}
6
Hasil nya adalah :
#include <iostream.h>
#include <conio.h>
main()
{
int data[6]={1,6,4,3,7};
int cari;
int i;
for( i=0;i<5;i++)
{
cout<<data[i]<<“\t”;
}
cout<<endl;
cout<<“inputkan data yang ingin dicari : “;
cin>>cari;
data[5]=cari;
7
i=-1;
do
i=i+1;
while(i<6 && cari!=data[i]);
if(i<5)
cout<<“data ditemukan”;
else
cout<<“data tidak ditemukan”;
getch();
}
CHARACTER (CHAR)
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
void main()
char cari[51];
char nama[50][50];
int i,n,jumlah;
cout<<endl;
cin>>n;
8
cout<<endl;
for(i=0;i<n;i++){
cin>>nama[i];}
cout<<endl;
cout<<endl;
cin>>cari;
jumlah=0;
for(i=0;i<n;i++)
if(strcmp(nama[i],cari)==0)
jumlah++;}
cout<<endl;
i=-1;
do
i=i+1;
9
while(i<n && cari!=nama[i]);
if(jumlah!=0)
else
getch();
10
Perhatikan array data berikut ini:
0 1 2 3 4 5 6
indeks
3 12 9 -4 21 6
Terdapat 6 buah data dalam array (dari indeks 0 s/d 5) dan terdapat 1 indeks
array tambahan (indeks ke 6) yang belum berisi data (disebut sentinel)
Array pada indeks ke 6 berguna untuk menjaga agar indeks data berada pada
indeks 0 s/d 5 saja. Bila pencarian data sudah mencapai array indeks yang
ke-6 maka berarti data TIDAK ADA, sedangkan jika pencarian tidak
mencapai indeks ke-6, maka data ADA.
Kelebihan
Mudah dalam implementasi pemrograman.
Kekurangan
Jika data yang terdapat dalam satu array itu sangat banyak, maka
akan diperlukan waktu yang lebih lama untuk membandingkan
data yang dicari dengan jumlah data yang sangat banyak dalam
satu array.
11
BAB III
PENUTUP
3. 1. Kesimpulan
Sentinel adalah suatu index larik yang berfungsi menjaga agar larik
tetap pada index tertentu. Sentinel ini pada penerapannya digunakan
untuk menyimpan data yang ingin dicari. Dan Sentinel ini menentukan
apakah data yang di cari itu ada atau tidak ada. Sentinel ini diletakkan
di akhir index larik.
3. 2. Saran
12
BAB IV
DAFTAR PUSTAKA
Santoso, Adi. “Pengertian Searching Beserta Jenis dan Contoh Program Searching
pada C++”. 19 Juli 2017. https://onlyvista.blogspot.co.id/2017/07/pengertian-
searching-jenis-jenis.html
13