Anda di halaman 1dari 9

TUGAS ALGORITMA PEMROGRAMAN

"Uji Validitas dan Reliabilitas Kuesioner"

Dosen Pembimbing :

Oleh Kelompok :
Muhammad Arya Dewangga 201810370311209
Wien Nurul Dewani 201810370311210
Adellia Andrimida 201810370311211
Inov Afani Eka Putra 201810370311213
Adhigana Priyatama 201810370311212

Universitas Muhammadiyah Malang

Fakultas Teknik

Program Studi Informatika

2019

BAB I
PENDAHULUAN

Exponential Search atau biasa disebut juga Doubling Search, Galloping Search, atau
Struzik Search adalah sebuah algoritma, dibuat oleh Jon Bentley dan Andrew Chi-Chih Yao
pada tahun 1976 untuk Searching Sorted yang tidak terikat atau daftar yang tidak terbatas.

Cara mengimplementasikan yang paling umum adalah dengan menentukan rentang


pencarian kunci berada dan melakukan pencarian biner pada rentang tersebut. Algoritma akan
mengambil O(log i) dimana posisi dari search key dalam daftar, jika search key berada
dalam daftar, atau posisi dimana search key seharusnya berada, jika kunci tidak ada dalam
daftar.

Exponential Search juga dapat digunakan untuk mencari didalam bounded list atau
daftar terbatas. Exponential Search dapat melakukan pencarian yang lebih tradisional untuk
bounded list, seperti pencarian biner, saat elemen berada dekat dengan awal array. Ini karena
Exponential Search akan berjalan dalam waktu O(log i), dimana i adalah index element yang
akan dicari dalam list, sedangkan binary search akan berjalan dalam waktu O(log n), dimana
n adalah jumlah element dalam list.

Keuntungan menggunakan Exponential Search adalah sangat berguna pada pencarian


yang tidak terbatas, dimana ukuran array tidak terbatas atau infinite. Exponential Search
bekerja lebih baik daripada binary search untuk bounded arrays atau array yg terbatas, dan
juga ketika element yang akan dicari lebih dekat ke element pertama.

BAB II
Algoritma Exponential Searching

● Narasi
Ia mencoba menemukan elemen yang lebih besar dari elemen yang kami cari. Kami
melakukan ini untuk meminimalkan rentang elemen yang dicari. Ia meningkatkan
rentang dengan mengkalikannya dengan 2 dan memeriksa lagi jika ia mencapai
elemen yang lebih besar dari elemen yang ia cari atau akhir dari array. Setelah salah
satu dari ini tercapai, ia akan keluar dari loop. Kemudian ia melakukan pencarian
biner dengan startIndex sebagai range / 2 dan lastIndex sebagai range.

● Langkah
1. Mencari elemen yang lebih besar dari elemen yang dicari untuk meminimalkan
rentang elemen yang dicari.
2. Meningkatkan rentang dengan mengkalikannya dengan 2 dan memeriksa lagi jika
sudah mencapai elemen yang lebih besar dari elemen yang dicari atau akhir dari array
3. Melakukan pencarian biner dengan startIndex sebagai range / 2 dan lastIndex sebagai
range

● FLOWCHART
BAB III
Implementasi

Gambar di atas adalah source code untuk implementasi Exponential Search. Dimana
menggunakan library Arrays untuk memanggil method binarySearch. Mendapatkan hasil
akhir di exponential search yaitu menggunakan method binarySearch untuk menemukan
rentang nilai yang kita dapat dari looping sebelumnya. Dimana rentang nilai sebelumnya di
ambil dari eksponensial 2❑n atau di dalam program yaitu i = i x 2.

Pada gambar di atas adalah kelas main untuk menjalankan eksponential search. Contoh
implementasi yaitu menggunakan data berjumlah 7 (n = 7). Nilai yang di cari x yaitu 10. Lalu
memanggil method exponentialSearch agar di proses seperti yang dijelaskan sebelumnya.
Maka akan diberikan hasil di mana letak indeks nilai ke 10.
Hasil dari proses exponential search yaitu di temukan nilai 10 di indeks ke 2.

BAB IV

PENGUJIAN ALGORTIMA
Pada bagian pengujian dalam algoritma search kali ini, kami menggunakan algoritma
exponential search, Big-O nya merupakan O(i).

● Berikut merupakan hasil pengujian pada 100 data


● Berikut merupakan hasil pengujian pada 1000 data

● Berikut merupakan hasil pengujian pada 5000 data


● Berikut merupakan hasil pengujian pada 10000 data

Program kami tidak dapat menguji data 10000 karena telah melebihi batas pada
array sehingga terjadi error.

Anda mungkin juga menyukai