Anda di halaman 1dari 17

MAKALAH ALGORITMA DAN PEMROGRAMAN

PENCARIAN BERUNTUN DENGAN SENTINEL

Disusun oleh :

1. LAILA ABIDATUL AMANAH 081711233033


2. AMELIA PUSPITA SARI 081711233034
3. MOH HASBY ABDILLAH H. 081711233036
4. BENY YOGARIFA’I 081711233082
5. PRAVICHANA EL BALQIST ANDIAR KINANTHI 081711233088
6. FITRA FATH AULIA 081711233093

FAKULTAS SAINS DAN TEKNOLOGI


UNIVERSITAS AIRLANGGA
2018
KATA PENGANTAR

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.

Surabaya, 20 April 2018


Penulis

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

Algoritma merupakan kumpulan perintah yang memiliki daya guna


yang sangat besar bagi masyarakat. Algoritma biasanya digunakan sebagai
kumpulan perintah untuk menyelesaikan suatu masalah. Algoritma ini
memiliki aplikasi yang bermacam-macam dalam setiap masalah yang ada.
Contohnya saja adalah algoritma cara menyelesaikan suatu aritmatika yang
rumit, algoritma untuk menghitung luas penampang dari suatu kabel, atau
bahkan untuk menghitung bayaran parkir di setiap mal. Salah satu aplikasi
bentuk pemrograman ini adalah dalam bahasa permrograman yang disebut
bahasa C++. Dimana bahasa C++ ini memiliki suatu aturan-aturan tertentu
yang sangat penting sehingga dalam penggunaanya kita harus memperhatikan
cara menggunakan aturan tersebut. Salah satu cara penggunaannya adalah
dengan array. Dimana array ini merupakan suatu data struktur yang
berkoneksi satu sama lain dengan tipe yang sama. Aplikasi array ini banyak
sekali, contohnya saja adalah menghitung golongan dari umur yang berjumlah
25 tahun hingga 55 tahun. Array ini juga bisa digunakan untuk mencari suatu
elemen nilai dalam suatu struktur data, selain itu array ini juga bisa digunakan
untuk mengurutkan data-data yang tidak berurutan. Hal –hal yang telah
disebutkan disebut sebagai searching array dan sorting array.
Sorting array merupakan salah satu aplikasi yang paling penting dalam
suatu sistem aplikasi perhitungan data. Biasanya suatu bank memiliki
komputasi sorting array yang sudah biasa digunakan dalam aplikasinya
sehari-hari. Bahkan telephone juga mengurutkan suatu list yang terdiri dari
nama akhir, nama awal agar bisa memudahkan dalam perhitungan dalam
mencari nomor telephone.
Pengurutan adalah upaya mengatursekumpulan data berdasar
pada urutan (naik atau turun). Pencarian adalah upaya
mencari/mendapatkan satu atau lebih objek dari sekumpulan data
STRUKTUR DATA. Sorting Pengurutan data dalam struktur data
sangat penting untuk data yang bertipe data numeric ataupun
karakter.Pengurutan dapat dilakukan secara ascending(urut naik) dan
descending (urut turun), Pengurutan (Sorting) adalah proses
menyusunkembali data yang sebelumnya telah disusundengan suatu

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

Searching array juga memiliki tak kalah pentingnya dibandingkan


dengan sorting array. Pada searcing array kita biasa menggunakannya
pada data yang sangat banyak. Sehingga sangat sulit bila kita ingin
mencari suatu data atau suatu angka didalamnya satu per satu. Aplikasi
searching array memudahkan kita dalam mencari suatu data atau angka
yang kita inginkan dengan hanya memasukkan nilai input pada suatu
data yang disikan.
Algoritma pencarian yang paling sederhana, yaitu metode pencarian
linier (pencarian lurus). Nama lain algoritma linier adalah algoritma
pencarian beruntun (sequential search). Pada dasarnya, algoritma
pencarian linier adalah proses membandingkan setiap elemen array satu
persatu secara beruntun, mulai dari elemen pertama sampai elemen yang
dicari ditemukan atau seluruh elemen sudah diperiksa.
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 yang terbesar,maupun sebaliknya.
Teknik selanjutnya 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.
Algoritma pencarian merupakan langkah-langkah dalam suatu proses
pencarian data tertentu dalam sekumpulan data yang mempunyai tipe
yang sama. Algoritma pencarian dengan data yang dicari lebih dari satu,
maka pencarian selesai bila salah satu data sudah ditemukan.

2. 2. Pencarian Beruntun dengan Sentinel


 Pengertian
Jika pencarian bertujuan untuk menambahkan elemen
baru setelah elemen terakhir larik, maka terdapat sebuah varian
dari metode pencarian beruntun yang mangkus. Nilai x yang
akan dicari sengaja ditambahkan terlebih dahulu. Data yang
ditambahkan setelah elemen terakhir larik ini disebut sentinel.

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.

2. 3. Contoh Program Pencarian Beruntun dengan Sentinel

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:

Contoh 2 program dalam bahasa c++ :


#include <stdio.h>
#include <conio.h>
void main(){
int data[11] = {3,12,9,-4,21,6,1,2,8,7,4};
int cari,i;

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 :

Contoh 3 program dalam bahasa c++ :

#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)

Contoh 1 program dalam bahasa c++ :

#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;

cout<<"Masukkan Banyaknya nama : ";

cin>>n;

8
cout<<endl;

cout << "Masukan nama pada elemen array "<<endl;

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

cout << "Posisi nama Ke-("<<(i+1)<<"): ";

cin>>nama[i];}

cout<<endl;

cout<<endl;

cout<<"inputkan nama yang ingin dicari : ";

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)

cout<<"NAMA DITEMUKAN "<<endl;

else

cout<<"NAMA TIDAK DITEMUKAN";

getch();

Hasil nya adalah :

10
Perhatikan array data berikut ini:

0 1 2 3 4 5 6
indeks

3 12 9 -4 21 6

ffea ffeb ffec ffed ffef fffa fffb


alamat

 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.

3. 4. Kelebihan dan Kekurangan Pencarian Beruntun dengan Sentinel

 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

Jika pencarian bertujuan untuk menambahkan elemen baru setelah


elemen terakhir larik, maka terdapat sebuah varian dari metode
pencarian beruntun yang mangkus. Nilai x yang akan dicari sengaja
ditambahkan terlebih dahulu. Data yang ditambahkan setelah elemen
terakhir larik ini disebut sentinel.

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

Adapun saran-saran yang dapat penulis sampaikan dalam hal ini


adalah sebagai berikut :
1. Semoga pembaca dapat memahami dan mengerti tentang algoritma
pencarian beruntun dengan sentinel yang dijelaskan
2. Dengan adanya makalah ini, diharapkan pembaca mendapat
informasi terbaru tentang algoritma pencarian beruntun dengan sentinel.
3. Semoga dengan membaca makalah ini, pembaca mendapat
inspirasi-inspirasi terbaru yang berguna dalam pembuatan algoritma-
algoritma lainnya.
4. Dalam kesempatan-kesempatan berikutnya sebaiknya ditambahkan
kemungkinan algoritma-algoritma baru sehingga ke depannya akan
didapt lebih banyak algoritma yang lebih efisien dan efektif.

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

Intan. “Pencarian dan Pengurutan Data”. 1 Maret 2016.


https://intanwblog.wordpress.com/2016/03/01/pencarian-dan-pegurutan-data/

Lestari, Dara Sinta. “Algotitma Searching”. 22 Desember 2010.


http://darasinta.blogspot.co.id/2010/12/algoritma-searching.html

13

Anda mungkin juga menyukai