16/12/2014
07/11/2014
01/06/2014
PENCARIAN ( SEARCHING) dalam ALGORITMA & PEMROGRAMAN
PENCARIAN (
SEARCHING)
ALGORITMA
& PEMROGRAMAN
Disusun Oleh :
Imelda Pasaribu
SI 13 B
13.12.0245
Dosen Pengampu : Slamet Nurdin S.Kom
STMIK AMIKOM PURWOKERTO
Jl.Let Jend.Pol Soemarto(Depan
SPN)Purwokerto-Telp(0281)621662
2013
KATA
PENGANTAR
Puji syukur kita panjatkan kehadirat Allah SWT, Tuhan Yang Maha Esa yang telah memberikan rahmat serta hidayah-Nya sehingga penyusunan makalah ini dapat diselesaikan.
Tugas ini disusun untuk diajukan sebagai tugas mata kuliah Algoritma Pemrograman dengan judul “PENCARIAN(SEARCHING)”.Terima kasih disampaikan semua pihak yang telah membantu kelancaran tugas ini sehingga dapat diselesaikan tepat pada waktunya.Demikianlah tugas ini disusun semoga bermanfaat, umumnya untuk para pembaca dan khususnya bagi penyusun.
Purwokerto,02 Juni
2014
Penyusun
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
BAB I PENDAHULUAN
1.1. Latar Belakang
1.2. Rumusan Masalah
1.3. Tujuan
1.4. Manfaat Penulisan
BAB II PEMBAHASAN
1.3. Tujuan
1.4. Manfaat Penulisan
BAB II PEMBAHASAN
2.1. Pengertian Searching
2.2. Jenis-jenis Searching
2.3. Contoh Pemrograman Searching dalam Algoritma2.2. Jenis-jenis Searching
BAB III PENUTUP
3.1. Kesimpulan
3.2. Saran
DAFTAR PUSTAKA
DAFTAR PUSTAKA
BAB I
PENDAHULUAN
1.1 Latar Belakang
Dalam ilmu logika dan algoritma sering kali menemui
masalah tentang bagaimana mendapatkan suatu data dalam kumpulan data. Dalam
keperluannya untuk mencari data, terdapat beragam algoritma pencarian(search
algoritm). Searching adalah pencarian data dengan
menelusuri tempat pencarian data tersebut. Tempat pencarian data tersebut dapat
berupa array dalam memori, bisa juga pada file pada external storage.Bila
jumlah data sudah demikian besar, dibutuhkan suatu metode untuk mendapatkan
data yang dibutuhkan. Beberapa metode pengorganisasian data telah membuat
proses pencarian data menjadi lebih efisien.
1.2 Rumusan Masalah
Berdasarkan
uraian pada latar belakang masalah diatas, maka permasalahan yang diteliti
dapat dirumuskan:
1. Apa pengertian searching/pencarian?
2. Apa saja jenis-jenis algoritma pencarian?
3. Bagaimana algoritma dan contoh programnya?
1. Apa pengertian searching/pencarian?
2. Apa saja jenis-jenis algoritma pencarian?
3. Bagaimana algoritma dan contoh programnya?
1.3 Tujuan
Berdasarkan
rumusan masalah diatas, makan tujuan disusunnya makalah ini yaitu:
1. Untuk mengetahui pengertian searching/pencarian.
2. Untuk mengetahui apa saja jenis-jenis algoritma pencarian.
3. Untuk mengetahui algoritma dan contoh program searching.
1. Untuk mengetahui pengertian searching/pencarian.
2. Untuk mengetahui apa saja jenis-jenis algoritma pencarian.
3. Untuk mengetahui algoritma dan contoh program searching.
1.4 Manfaat Penulisan
Manfaat penulisan
makalah ini yaitu agar dapat memberi pengetahuan lebih mengenai searching,agar
menjadi bahan pembelajaran bagi pembaca maupun penulis.
BAB
II
PEMBAHASAN
2.1. Pengertian Searching
Pencarian (searching) merupakan proses
fundamental dalam pengelolaan data. Proses pencarian adalah menemukan nilai
(data) tertentu di dalam sekumpulan data yang bertipe sama (baik bertipe dasar
atau bertipe bentukan). Search algoritma adalah algoritma yang menerima
argument a dan mencoba untuk mencari
record yang mana key-nya adalah Algoritma bisa mengembalikan nilai record, atau
pointer ke record. Record sendiri adalah tipe data yang terdiri atas kumpulan
variabel yang dapat berbeda tipenya. Setiap variabel disebut field. Sequensial
Search (penelusuran sequensial) yaitu proses mengunjungi melalui suatu pohon
dengan cara setiap simpul di kunjungi hanya satu kali yang disebut tree
transversal / kunjungan pohon. Sedangkan Binary Search adalah penelusuran pohon
biner dimana data yang dimasukkan atau yang sudah ada diurutkan terlebih
dahulu.
Data dapat di simpan secara temporer dalam memori utama atau di simpan secara permanen di dalam memori sekunder (tape atau disk). Di dalam memori utama, struktur penyimpanan data yang umum adalah berupa larik atau tabel (array), sedangkan di dalam memori sekunder berupa arsip (file). Aktivitas yang berkaitan dengan pengolahan data ini sering di dahului dengan proses pencarian. Sebagai contoh, untuk mengubah (update) data tertentu, langkah pertama yang harus dilakukan adalah mencari keberadaaan data tersebut di dalam kumpulannya. Aktivitas yang awal sama juga dilakukan pada proses penambahan (insert) data yang baru. Proses penambahan data dimulai dengan mencari apakah data yang ditambahkan sudah terdapat di dalam kumpulan. Jika sudah dan mengasumsikan tidak boleh ada duplikasi data maka data tersebut tidak perlu ditambahkan, tetapi jika belum ada, maka tambahkan.
Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang paling sederhana yaitu pencarian beruntun atau Sequential Search sampai pada algoritma pencarian yang lebih maju yaitu pencarian bagi dua (Binary Search).
Data dapat di simpan secara temporer dalam memori utama atau di simpan secara permanen di dalam memori sekunder (tape atau disk). Di dalam memori utama, struktur penyimpanan data yang umum adalah berupa larik atau tabel (array), sedangkan di dalam memori sekunder berupa arsip (file). Aktivitas yang berkaitan dengan pengolahan data ini sering di dahului dengan proses pencarian. Sebagai contoh, untuk mengubah (update) data tertentu, langkah pertama yang harus dilakukan adalah mencari keberadaaan data tersebut di dalam kumpulannya. Aktivitas yang awal sama juga dilakukan pada proses penambahan (insert) data yang baru. Proses penambahan data dimulai dengan mencari apakah data yang ditambahkan sudah terdapat di dalam kumpulan. Jika sudah dan mengasumsikan tidak boleh ada duplikasi data maka data tersebut tidak perlu ditambahkan, tetapi jika belum ada, maka tambahkan.
Algoritma pencarian yang akan dibicarakan dimulai dengan algoritma pencarian yang paling sederhana yaitu pencarian beruntun atau Sequential Search sampai pada algoritma pencarian yang lebih maju yaitu pencarian bagi dua (Binary Search).
2.2. Jenis-jenis
Searching
A.
Sequential
search
Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling mudah. Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Sedangkan kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).
Disebut juga sebagai metode pencarian urut adalah metode pencarian yang paling mudah. Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal). Sedangkan kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).
Sequential
search memiliki proses sebagai berikut:
» Tentukan
banyaknya data yang akan di olah, misal banyak data adalah N.
» Tentukan
data apa yang akan dicari, misal data yang akan dicari adalah C.
» Deklarasikan
sebuah counter untuk menghitung banyak data yang ditemukan, missal counternya
adalah K.
» Inisialisasikan
K =0
» Lakukanlah
perulangan sebanyak N kali
» Dalam
tiap proses perulangan tersebut periksalah apakah data yang sedang diolah sama
dengan data yang dicari.
» Jika
ternyata sama K=K+1
» Jika
tidak, lanjutkan proses perulangan .
» Setelah
proses perulangan berhenti, periksalah nilai K.
» Jika
nilai K lebih dari 0, artinya data yang dicari ada dalam data /array dan
tampilkan nilai K ke layer sebagai
jumlah data yang ditemukan.
» Jika
nilai K=0, artinya data yang dicari tidak ditemukan dalam data / array dan
tampilkan ke layar bahwa data tidak ditemukan
» Proses
selesai.
Dapat disimpulkan bahwa sequential search, akan mencari data dengan cara membandingkannya satu-persatu dengan data yang ada. Prosesnya tentu saja akan singkat jika data yang diolah sedikit, dan akan lama jika data yang diolah banyak. Disarankan proses ini digunakan pada jumlah data yang sedikit saja.
Dapat disimpulkan bahwa sequential search, akan mencari data dengan cara membandingkannya satu-persatu dengan data yang ada. Prosesnya tentu saja akan singkat jika data yang diolah sedikit, dan akan lama jika data yang diolah banyak. Disarankan proses ini digunakan pada jumlah data yang sedikit saja.
B. Binary
Search.
Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu. Jika terdapat N buah data yang akan diolah, data yang dicari akan dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan dicari.
Proses pencarian binary search hanya dapat dilakukan pada kumpulan data yang sudah diurutkan terlebih dahulu. Jika terdapat N buah data yang akan diolah, data yang dicari akan dibandingkan dengan data ke-N jika data ke-N lebih besar dari data yang dicari maka akan dilakukan pembagian data menjadi dua bagian. Kemudian ujung data pada setiap bagian dibandingkan lagi dengan nilai yang akan dicari.
C. Interpolation Search
Proses pencarian data ini hampir sama dengan proses pencarian binary search, pencarian ini juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada binary search kita membagi data menjadi 2 bagian tiap prosesnya, pada interpolation search kita akan membagi data menurut rumus sebagai berikut:
Proses pencarian data ini hampir sama dengan proses pencarian binary search, pencarian ini juga dilakukan pada kumpulan data yang sudah urut. Akan tetapi jika pada binary search kita membagi data menjadi 2 bagian tiap prosesnya, pada interpolation search kita akan membagi data menurut rumus sebagai berikut:
Posisi
= ( kunci – data[low] / data[high] – data[low] ) * ( high – low ) + low
Singkatnya
proses pencarian interpolation search hampir mirip dengan proses pencarian kata
dikamus, yaitu kita mencari data yang dimaksud dengan cara memperkirakan letak
data.
2.3. Contoh
Pemrograman Searching dalam Algoritma
A.
Contoh
program dalam bahasa pemrograman PASCAL
program search_aditya;
uses crt;
const
nmin = 1;
nmax = 100;
type
arrint = array [nmin..nmax]
of integer;
var
x
: integer;
tabint : arrint;
n,i :
integer;
indeks : integer;
function seqsearch1(xx :
integer): integer;
var i : integer;
begin
i := 1;
while ((i xx)) do
i:=i+1;
if tabint[i] = xx then
seqsearch1:=i
else
seqsearch1:=0;
end;
begin
clrscr;
write('input banyaknya
index array = '); readln(n);
for i:=1 to n do
begin
write('Tabint[',i,'] = ');
readln(tabint[i]);
end;
write('Nilai yang dicari =
'); readln(x);
indeks:=seqsearch1(x);
if indeks <> 0 then
write(x,' ditemukan pada
indeks ke-',indeks)
else
write(x,' tidak
ditemukan');
writeln;
readln;
end.
Tampilan ketika di jalankan
sbb :
BAB III
PENUTUP
PENUTUP
3.1. Kesimpulan
Sequential search lebih efektif jika digunakan pada
sekumpulan data yang sedikit, sedangkan binary search efektif jika digunakan
pada sekumpulan data yang berjumlah banyak.
Sequential search dapat digunakan pada sekumpulan data yang urut ataupun tidak urut, sedangkan binary search harus pada data yang sudah urut. Sedangkan proses pencarian interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data yang dimaksud dengan cara memperkirakan letak data.
Sequential search dapat digunakan pada sekumpulan data yang urut ataupun tidak urut, sedangkan binary search harus pada data yang sudah urut. Sedangkan proses pencarian interpolation search hampir mirip dengan proses pencarian kata dikamus, yaitu kita mencari data yang dimaksud dengan cara memperkirakan letak data.
3.2. Saran
Gunakanlah teknik pencarian data yang efisien dan
mudah tetapi sesuai dengan kebutuhan.
DAFTAR PUSTAKA
Subscribe to:
Posts (Atom)