0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan21 halaman

Indeks Pencarian dengan Binary Search

Dokumen ini membahas metode pencarian data dalam pemrograman, termasuk Sequential Search dan Binary Search, serta algoritma terkait. Sequential Search mencakup variasi tanpa boolean, dengan sentinel, dan dengan boolean, sedangkan Binary Search memerlukan data yang terurut. Terdapat juga tugas besar yang mencakup pembuatan algoritma, program, dan laporan dengan berbagai topik.

Diunggah oleh

reza
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPSX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
4 tayangan21 halaman

Indeks Pencarian dengan Binary Search

Dokumen ini membahas metode pencarian data dalam pemrograman, termasuk Sequential Search dan Binary Search, serta algoritma terkait. Sequential Search mencakup variasi tanpa boolean, dengan sentinel, dan dengan boolean, sedangkan Binary Search memerlukan data yang terurut. Terdapat juga tugas besar yang mencakup pembuatan algoritma, program, dan laporan dengan berbagai topik.

Diunggah oleh

reza
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPSX, PDF, TXT atau baca online di Scribd

Algoritma dan Pemrograman

Searching

Tim Algoritma dan Pemrograman


Universitas Komputer Indonesia
Metode Searching
1. Sequential Search
2. Binary Search
Definisi Sequential Search

Proses menemukan data dari array yang


ditinjau dengan cara menelusuri satu persatu
elemen array mulai dari elemen array
pertama sampai data yang dicari ditemukan
atau sampai seluruh elemen array
ditelusuri
Sequential Search

a. Sequential Search Tanpa Boolean


- Tanpa Sentinel
- Dengan Sentinel
b. Sequential Search Dengan Boolean
Sequential Search Tanpa Boolean
Mis. diberikan data sebagai berikut:

Angka 5 1 9 4 2
1 2 3 4 5

Data yang dicari : 9


- Angka(1) = 9? F
- Angka(2) = 9? F
- Angka(3) = 9? T

Maka data yang dicari ditemukan pada indeks ke-3


Algoritma Sequential Search Tanpa Sentinel
Procedure SeqSearchTanpaSentinel(Input nama_array:tipe_array)
{I.S. : elemen array [1..maks_array] sudah terdefinisi}
{F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan}
Kamus:
i : integer
data_cari : tipedata
Algoritma:
input(data_cari)
i1
while(nama_array (i) ≠ data_cari) and (i < maks_array) do
ii+1
endwhile
if (nama_array(i) = data_cari)
then
output(data_cari,’ ditemukan pada indeks ke-’,i)
else
output(data_cari,’ tidak ditemukan’)
endif
EndProcedure
Sequential Search Dengan Sentinel
sentinel
Mis. diberikan data sebagai berikut:
5 1 9 4 2 9
Angka
1 2 3 4 5 6

Data yang dicari : 9


- Tempatkan data yang dicari pada sentinel
- Telusuri array seperti sequential search tanpa
sentinel, jika data ditemukan pada sentinel, maka
data yang dicari tidak ada/tidak ditemukan, tapi
jika data yang dicari ditemukan bukan pada
sentinel, maka data yang dicari ditemukan.
Algoritma Sequential Search Dengan Sentinel
Procedure SeqSearchSentinel(Input nama_array:tipe_array)
{I.S. : elemen array [1..maks_array] sudah terdefinisi}
{F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan}
Kamus:
i : integer
data_cari : tipedata
Algoritma:
input(data_cari)
i1
nama_array(maks_array + 1)  data_cari
while (nama_array (i) ≠ data_cari) do
ii+1
endwhile
if (i < maks_array+1)
then
output(data_cari,’ ditemukan pada indeks ke-’,i)
else
output(data_cari,’ tidak ditemukan’)
endif
EndProcedure
Sequential Search Dengan Boolean
Mis. diberikan data sebagai berikut:
5 1 9 4 2
Angka 1 2 3 4 5

Data yang dicari : 9


Proses pencariannya sama seperti
proses pencarian pada metode
sequential search lainnya, hanya saja
melibatkan sebuah variabel lain yg
bertipe boolean.
Algoritma Sequential Search Dengan Boolean
Procedure seq_search_boolean (Input nama_array:tipe_array)
{I.S. : elemen array [1..maks_array] sudah terdefinisi}
{F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan}
Kamus:
i : integer
ketemu : boolean
data_cari : tipedata
Algoritma:
input(data_cari)
i1
ketemu  false
while (not ketemu) and (i ≤ maks_array) do
if (nama_var_array(i) = data_cari)
then
ketemu  true
else
ii+1
endif
endwhile
if (ketemu)
then
output(data_cari,’ ditemukan pada indeks ke-’,i)
else
output(data_cari,’ tidak ditemukan’)
endif
EndProcedure
Binary Search
Proses pencarian dengan cara membagi larik
menjadi 2 bagian (bagian kiri dan bagian kanan),
dan mengecek data diposisi tengah apakah sama
atau tidak dengan data yg dicari, jika tidak proses
pencarian akan dilanjutkan ke larik bagian kiri atau
bagian kanan.
Mis. diberikan data sebagai berikut:
3 7 12 15 29
Angka
1 2 3 4 5

Data yang dicari : 7


Catatan : data harus sudah terurut
Binary Search (lanjutan)
Langkah 1 : bagi larik menjadi 2 bagian untuk mencari
posisi tengah (k) dengan cara indeks atas
(Ia) dijumlahkan dengan indeks bawah
(Ib) lalu dibagi 2.
k = (Ia + Ib) div 2
= (1 + 5) div 2
=3

3 7 12 15 29
1 2 3 4 5
Ia k Ib
Bag. Kiri Bag. Kanan
Binary Search (lanjutan)
Langkah 2 : periksa data di posisi tengah larik (12), lalu
bandingkan apakah sama atau tidak(12 = 7?
F), karena tidak sama maka akan diperiksa
apakah data di posisi tengah lebih kecil dari
data yang dicari (12 < 7 ? F) karena lebih
besar maka pencarian dilanjutkan ke bagian
kiri dengan cara menarik Indeks bawah ke
kiri (Ib = k – 1)
3 7
1 2
Ia Ib

Hitung kembali titik tengah dari Larik yang


ditinjau (didapat k = 1)
Binary Search (lanjutan)
3 7
1 2
Ia Ib
k
Bag. Kiri Bag. Kanan

Langkah 3 : ulangi langkah 1 s/d langkah 2 sampai data


ditemukan atau sampai harga Ia > Ib

Angka 7 ditemukan pada indeks ke-2, dan pada looping


ke-3
Illustrasi Binary Search
Mis. Dicari angka 7 menggunakan Binary Search

3 7 12 15 29
1 2 3 4 5
Ia k Ib
Ia Ib
k
Ib
Ia
k
- Angka 7 ditemukan pada indeks ke-2
- Data yang dicari ditemukan pada looping ke-3, dengan harga
Ia = 2 dan Ib = 2
Algoritma Binary Search
Procedure binary_search (Input nama_array : tipe_array)
{I.S. : elemen array [1..maks_array] yg terurut secara ascending sudah terdefinisi}
{F.S. : menampilkan data yg dicari ditemukan atau tidak ditemukan}
Kamus:
Ia, Ib, k : integer {Ia=indeks bawah, Ib=indeks atas, k=posisi tengah}
ketemu : boolean
data_cari : tipedata
Algoritma:
input(data_cari)
Ia  1
Ib  maks_array
ketemu  false
while (not ketemu) and (Ia ≤ Ib) do
k  (Ia + Ib) div 2
if (nama_var_array(k) = data_cari)
then
ketemu  true
else
if (nama_var_array(k) < data_cari)
then
Ia  k + 1
else
Ib  k – 1
endif
endif
endwhile
if (ketemu)
then
output(data_cari,’ ditemukan pada indeks ke-’,k)
else
output(data_cari,’ tidak ditemukan’)
endif
EndProcedure
TUGAS BESAR (1)
Buat 8 kelompok dengan 8 topik berbeda:
1. Reservasi Hotel
2. Rental Kendaraan
3. Peminjaman Buku (Perpustakaan)
4. Apotek
5. Pasien Rawat Inap
6. Distribusi Produk ke Cabang/Agen
7. Koperasi
8. Rekam Medik
TUGAS BESAR (2)
Buat Algoritma, Program dan Layar Tampilan, dengan
Menu sebagai berikut:

MENU PILIHAN
1. ISI DATA
2. CARI DATA BERDASARKAN KODE
3. CARI DATA BERDASARKAN NAMA
4. CARI DATA BERDASARKAN HARGA (atau lainnya,
intinya ada satu untuk yg unik dan dua untuk yg tidak
unik)
5. TAMPIL DATA KESELURUHAN YG SDH TERURUT
0. KELUAR

Catatan: Dikumpulkan ketika UAS!


TUGAS BESAR (3)
Isi Makalah yang harus dikumpulkan:
1. Pendahuluan berisi data apa yang akan diolah beserta
batasan-batasan yang dibutuhkan untuk pembuatan
algoritma dan program (harus jelas dan komleks).
2. Algoritma
3. Program
4. Tampilan Layar
5. Daftar Pustaka
6. Kontribusi masing-masing anggota kelompok

Catatan:
- Tipe data yang diperkenankan dalam bentuk array of
record
- Boleh menambahkan proses lain, misalnya proses
perhitungan
- Ada penambahan nilai bagi yang membuat dalam tipe
data File
- Beri cover yang berisi judul, susunan angggota dan
kelas
Contoh Cover
Tugas Besar Algoritma dan Pemrograman

Reservasi Hotel
menggunakan Bubble Sort secara Ascending
Disusun Oleh:
IF-1
NIM – Nama
NIM – Nama
Dst.

{Lambang UNIKOM}

Program Studi Teknik Informatika


Fakultas Teknik dan Ilmu Komputer
UNIKOM
Januari 2017
TUGAS BESAR (3)
Aturan Penulisan:
- Ukuran kertas A4
- Margin : Kiri 4 cm, Kanan 3 cm, Atas 4 cm, Bawah
3 cm (kecuali cover harus proposional)
- Spasi 1,5 (kecuali cover spasi 1)
- Huruf Times New Roman 12 (kecuali judul
sesuaikan)
- Listing program Courier New 10

Anda mungkin juga menyukai