Anda di halaman 1dari 16

LAPORAN RENCANA PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN II

NAMA : DHEA KRISTINA

NIM : 203010503008

KELAS : A

MODUL : III (SEARCHING)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2021
BAB I
PENDAHULUAN

A. TUJUAN
1. Mahasiswa dapat memahami Algoritma pencarian Beruntun dan Binary.
2. Mahasiswa dapat mengimplementasikan algoritma pencarian untuk
menyelesaikan permasalahan.

B. DASAR TEORI
Searching merupakan proses untuk menemukan suatu data atau informasi
dari sekumpulan data/informasi yang ada. Algoritma pencarian/searching
algorithm merupakan algoritma yang menerima suatu kata kunci sebagai
kriteria pencarian, dan dengan langkah-langkah tertentu akan mencari rekaman
yang sesuai dengan kata kunci tersebut. Di dalam modul ini akandiperken alkan
2 teknik pencarian data yaitu pencarian beruntun/sequential searching dan
pencarian biner/binary search
A. Pencarian Beruntun/Sequential Search
Sequential Search adalah teknik pencarian data dimana data dicari
secara urut dari depan ke belakang atau dari awal sampai akhir. Kelebihan
dari proses pencarian secara sequential ini jika data yang dicari terletak
didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik
kelebihannya ini, teknik ini juga memiliki kekurangan. Pertama, jika data
yang dicari terletak dibelakang atau paling akhir, maka akan
membutuhkan waktu yang lama dalam proses pencariannya. Kedua, beban
komputer akan semakin bertambah jika jumlah data dalam array sangat
banyak.
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 terbesar, maupun sebaliknya.
Contoh :
Array :
int a[5] = {0,3,6,10,1} (index array pada bahasa C dimulai dari index ke
0) jika kita ingin mencari bilangan 6 dalam array tersebut, maka proses
yang terjadi kita mencari
1. dari array index ke-0, yaitu 0, dicocokan dengan bilangan yang akan
dicari, jika tidak sama, maka mencari ke index berikutnya
2. pada array index ke-1, juga bukan bilangan yang dicari, maka kita
mencari lagi pada index berikutnya
3. pada array index ke-2, ternyata bilangan yang kita cari ada ditemukan,
maka kita keluar dari looping pencarian.
B. Binary Search
Metode pencarian yang kedua adalah binary search, pada metode
pencarian ini, bila data belum terurut maka data harus diurutkan terlebih
dahulu. Pencarian Biner (Binary Search) dilakukan untuk :
1. Memperkecil jumlah operasi pembandingan yang harus dilakukan
antara data yang dicari dengan data yang ada khususnya untuk jumlah
data yang sangat besar ukurannya.
2. Prinsip dasarnya adalah melakukan proses pembagian ruang
pencarian secara berulang-ulang sampai data ditemukan atau sampai
ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data
tidak ditemukan).
3. Syarat utama untuk pencarian biner adalah data harus sudah terurut,
misalkan terurut menaik.

Contoh :
Diketahui Data sebagai berikut, dan data yang dicari adalah 15
Loop pertama :
Tengah=(BatasAtas + BatasBawah) div 2=( 1 + 8 ) div 2=4 A
[Tengah] = A [4] = 12 < cari = 15,
berarti BatasAtas = Tengah + 1 = 4 + 1 = 5
Loop kedua :
Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 8 ) div 2=6 A
[Tengah] = A [6] = 25 > cari = 15,
berarti BatasBawah = Tengah – 1 = 6 – 1 = 5
Loop ketiga :
Tengah=(BatasAtas + BatasBawah) div 2=( 5 + 5 ) div 2=5 A
[Tengah] = A [5] = 15,
berarti setelah loop ketiga, data ditemukan

C. Langkah Kerja
a. Sequential Search
public class Sequential {
public static void main(String[] args) {
int[] data = {99,20,17,8,27,5,21,10,41,11};
int cari=8;
int i;
boolean ditemukan = false;
for(i=0; i < data.length; i++){
if (data[i] == cari){
ditemukan=true;
break;
}
}
if (ditemukan) {
System.out.println("Data : " + cari + " Ditemukan Pada Index
:"+ i +".");
}
else{
System.out.println("Data Tidak di temukan");
}}
}
b. Binary Search
public class Binary {

public static void main(String[] args) {


int N = 8;
int A [] = {5,2,9,7,1,6,8,3};
int BatasAtas, BatasBawah, Tengah;
int cari = 2;

BatasAtas = 0;
BatasBawah = N - 1;
Tengah = 0;
boolean ketemu;
ketemu = false;

while((BatasAtas <= BatasBawah) && (ketemu ==


false)){
Tengah = (BatasAtas + BatasBawah) / 2;
if (A[Tengah] == cari){
ketemu = true;
} else
if (A[Tengah] <= cari){
BatasAtas = Tengah + 1;
} else {
BatasBawah = Tengah - 1;
}
BAB II
PEMBAHASAN

1. Program data produk dan harga

Gambar 2.1 (Input Program)


Program kali ini adalah program data produk dan harga mobil. Diawali
dengan array “String[][] produk = “ . Pada program ini terdapat variabel
“produk”, yang berfungsi untuk menampung data produk. Variabel “produk”
menggunakan tipe data string. Kemudian dilanjutkan dengan insialisasi nomor,
nama produk dan harga produk. Setelah itu dilanjutkan dengan struktur
perulangan for, dengan array bertipe string. Selanjutnya adalah
“System.out.println”, system.out.println berfungsi untuk mencetak semua
anggotanya, yaitu nomor, nama produk dan harga sesuai dengan inputan yang
telah dimasukan dan pada setiap statement diakhiri dengan titik koma (;).
Output program seperti gambar dibawah ini :
Gambar 2.2 (Output program)

2. Tampilan produk “Audi”

Gambar 2.3 (Input program)


Program kali ini adalah program untuk menampilkan produk “Audi”
beserta lokasinya dalam struktur data array. Diawali dengan array pertama
“String[] produk = “ . Pada array ini terdapat variabel “produk”, berfungsi
untuk menampung data produk. Variabel “produk” menggunakan tipe data
string. Kemudian dilanjutkan dengan inisialisasi nama produk. Setelah itu
adalah array bertipe integer dengan variabel harga. Kemudian dilanjutkan
dengan variabel cari yang berfungsi untuk menentukan data yang mana yang
akan dicari. Pada program ini, data yang akan dicari adalah “Audi” .
Selanjutnya akan dilakukan pencocokan data dengan menggunakan struktur
perulangn “for”. Pada struktur perulangan for ini menggunakan variabel “i”
dengan i kurang dari produk. Setelah ini program akan increment i++.
Selanjutnya dimasukan rumus logika “if” didalam for. Ketentuan rumus
ini adalah rumus akan mencocokan berdasarkan variabel cari berdasarkan
nama produk “Audi”. Selanjutnya adalah “System.out.println”,
system.out.println berfungsi untuk menampilkan/mencetak lokasi produk
bernama “Audi” dan pada setiap statement diakhiri dengan titik koma (;).
Output program seperti gambar dibawah ini :

Gambar 2.4 (Output program)

3. Urutan data dari nilai termurah hingga tertinggi.

Gambar 2.5 (Input program)


Program ini adalah program untuk mengurutkan nilai dari harga produk
termurah hingga tertinggi. Diawali dengan “import java.util.Arrays;” setelah
itu, pada Array yang pertama menggunakan variabel “harga” yang bertipe
integer. Kemudian dilanjutkan dengan inisialisasi nilai harga produk.
Kemudian dilanjutkan dengan “Arrays.sort(harga);” yang digunakan untuk
mengurutkan data pada variabel harga. Kemudian dilanjutkan dengan struktur
perulangan “for” dengan tipe data integer untuk variabeli nilai dan harga.
Selanjutnya adalah “System.out.println”, system.out.println berfungsi untuk
mencetak data yang terlah diurutkan. dan pada setiap statement diakhiri dengan
titik koma (;). Output program seperti gambar dibawah ini :

Gambar 2.6 (Output program)

4. Tampilkan harga produk termurah nomor ke-2

Gambar 2.7 (Input program)


Program nomor 4 adalah program untuk menampilkan produk dengan
harga termurah. Diawali dengan array pertama “String[] produk = “ . Pada
array ini terdapat variabel “produk”, berfungsi untuk menampung data produk.
Variabel “produk” menggunakan tipe data string. Kemudian dilanjutkan
dengan inisialisasi nama produk. Setelah itu adalah array bertipe integer
dengan variabel harga. Pada array ini diisi dengan harga produk.
Selanjutnya adalah deklarasi variabel i dengan tipe data integer dan
diakhiri dengan titik koma “int i;”. setelah itu dilanjutkan dengan struktur
perulangan for, dalam rumus ini terdapat variabel i dimulai dari 0 “i = 0;” yang
berarti for menentukan batas awal dan 0 adalah urutan dari array. Kemudian i
kurang dari harga “i < harga.length;” dan i akan membaca dengan “i++” atau
increment+1. Didalam struktur perulangan for ini terdapat struktur
percabangan if, yaitu “if (harga[i]>122 &&harga[i]<245)”.
Selanjutnya adalah “System.out.println”, system.out.println berfungsi
untuk menampilkan/mencetak modil dengan harga termurah. Pada setiap
statement diakhiri dengan titik koma (;). Output program seperti gambar
dibawah ini :

Gambar 2.8 (Output program)


BAB III
KESIMPULAN

Searching merupakan proses dasar dalam pengolahan data. Algoritma


searching adalah algoritma yang menerima masukan berupa sebuah masalah dan
menghasilkan sebuah solusi untuk masalah tersebut. Algoritma searching
menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan
mencari rekaman dengan kunci tersebut. Penyimpanan data dalam memory berupa
array. Teknik pencarian data dari array yang paling mudah adalah dengan cara
sequensial search, dimana data dalam array dibaca satu demi satu dan di urutkan
dari index terkecil ke index terbesar atau sebaliknya.
DAFTAR PUSTAKA

Modul Algoritma Pemrograman II Universitas Palangkaraya Diakses pada Sabtu,


17 April 2021 pukul 20.08 WIB.

Kodeanakit-Sabtu, 11 Mei 2019, String Binary Search menggunakan Java


https://kodeanakit.blogspot.com/2019/05/string-binarySearch.html Diakses
pada Minggu, 18 April 2021 pukul 19.12 WIB

Yudi Setiawan-Jumat, 29 Januari 2016 pukul 16.25, Algoritma Binary Searching


dengan Java https://www.codepolitan.com/algoritma-binary-searching-
dengan-java Diakses pada Minggu, 18 April 2021 pukul 19.20 WIB.
LAMPIRAN

Gambar 1

Gambar 2
Gambar 3

Gambar 4

Gambar 5
Gambar 6

Gambar 7
Gambar 8

Anda mungkin juga menyukai