Anda di halaman 1dari 17

LAPORAN RENCANA PRAKTIKUM

ALGORITMA DAN PEPMROGRAMAN II

Disusun Oleh :
Nama : Bayu Dwi Yulianto
NIM : 203020503029
Kelas : A
Modul : III (SEARCHING)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
TAHUN 2021
BAB I
TUJUAN DAN LANDASAN TEORI

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

1.2 Landasan 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
1.3 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;
}
}
if (ketemu) {
System.out.println ("Angka : "+ cari + " Data berada di index
nomor " + Tengah);
}
else {
System.out.println ("Angka :" + cari + "Data tidak
ditemukan");
}
}
}
BAB II
PEMBAHASAN

2.1 Program No 1 dan Penjelasan

Gambar 2.1 (Input Program No 1)


Program ini adalah program untuk menampilkan mobil dan harga.
Pertama adalah publicclass NO1m3{ adalah class yang kita buat pertama ,
dalam class ini harus sama dengan file yang di buat sebelumnya dan {
(kurung kurawal) digunakan untuk isi dalam class tersebut, lalu pada baris
selanjutnya terdapat public static void main (String[] args) { adalah method
yang wajib pada java.
Kemudian pada baris selanjutnya terdapat pendeklarasian variabel,
variabel yang digunakan adalah sport yang memiliki tipe data string dan
terdapat array untuk menyimpan data mobil dan harga. Kemudian pada baris
selanjutnya terdapat for yang memiliki arti mobil sama dengan sport.
Kemudian pada baris selanjutnya terdapat System.out.println (“Mobil :” +
mobil[2]); yang digunakan untuk mencetak nama mobil yang telah disimpan
dalam data array dan setiap statement jangan lupa menggunakan titik koma
(;). Kemudian pada baris selanjutnya terdapat System.out.println (“Harga :”
+ mobil[3]); yang digunakan untuk mencetak harga yang telah disimpan
dalam data array dan setiap statement jangan lupa menggunakan titik koma
(;). Berikut adalah output dari program NO 1 diatas :
Gambar 2.2 (Output Program No 1)

2.2 Program No 2 dan Penjelasan

Gambar 2.3 (Input Program No 2)


Program ini adalah program untuk menampilkan mobil dan harga.
Pertama adalah publicclass NO2m3{ adalah class yang kita buat pertama ,
dalam class ini harus sama dengan file yang di buat sebelumnya dan {
(kurung kurawal) digunakan untuk isi dalam class tersebut, lalu pada baris
selanjutnya terdapat public static void main (String[] args) { adalah method
yang wajib pada java.
Kemudian pada baris selanjutnya terdapat pendeklarasian variabel,
variabel yang digunakan adalah sport yang memiliki tipe data string dan
terdapat array untuk menyimpan data mobil. Kemudian terdapat variabel
cari yang digunakan untuk data yang akan dicari.
Kemudian pada baris selanjutnya terdapat perulangan for untuk
menampilkan data yang akan dicari yaitu Audy. Kemudian pada baris
selanjutnya terdapat System.out.println (“Mobil +cari+ “ terdapat di Array
ke “ +i); yang digunakan untuk mencetak nama mobil yang telah disimpan
dalam data array dan setiap statement jangan lupa menggunakan titik koma
(;). Berikut adalah output dari program NO 2 diatas :

Gambar 2.4 (Output Program No 2)

2.3 Program No 3 dan Penjelasan

Gambar 2.5 (Input Program No 3)


Program ini adalah program untuk menampilkan harga. Pertama
adalah import java.util.Arrays, setelah itu terdapat publicclass NO3m3{
adalah class yang kita buat pertama , dalam class ini harus sama dengan file
yang di buat sebelumnya dan { (kurung kurawal) digunakan untuk isi dalam
class tersebut, lalu pada baris selanjutnya terdapat public static void main
(String[] args) { adalah method yang wajib pada java.
Kemudian pada baris selanjutnya terdapat pendeklarasian variabel,
variabel yang digunakan adalah harga yang memiliki tipe data integer dan
terdapat array untuk menyimpan data harga. Kemudian pada baris
selanjutnya terdapat Array.sort(harga). Kemudian terdapat perulangan for
yang memiliki arti nilai sama dengan harga. Kemudian pada baris
selanjutnya terdapat System.out.println(nilai); yang digunakan untuk
mencetak harga yang telah disimpan dalam data array dan setiap statement
jangan lupa menggunakan titik koma (;).Berikut adalah output dari program
NO 1 diatas :

Gambar 2.6 (Output Program No 3)

2.4 Program No 4 dan Penjelasan

Gambar 2.7 (Output Program No 4)


Program ini adalah program untuk menampilkan mobil dan harga.
Pertama adalah publicclass NO4m3{ adalah class yang kita buat pertama ,
dalam class ini harus sama dengan file yang di buat sebelumnya dan {
(kurung kurawal) digunakan untuk isi dalam class tersebut, lalu pada baris
selanjutnya terdapat public static void main (String[] args) { adalah method
yang wajib pada java.
Kemudian pada baris selanjutnya terdapat pendeklarasian variabel,
variabel yang digunakan adalah produk yang memiliki tipe data string dan
terdapat array untuk menyimpan data nama mobil. Kemudian pada baris
selanjutnya terdapat variabel harga yang bertipedata intrger dan terdapat
array untuk menyimpan data harga. Kemudian pada baris selanjutnya
terdapat prulangan for dan perbandingan if. Kemudian pada baris
selanjutnya terdapat System.out.println (“Mobil termurah ke-2 adalah :” +
produk[i]); yang digunakan untuk mencetak nama mobil yang telah
disimpan dalam data array dan setiap statement jangan lupa menggunakan
titik koma Berikut adalah output dari program NO 1 diatas :

Gambar 2.8 (Output Program No 4)


BAB III
KESIMPULAN

Sequential Search merupakan konsep pencarian pada array 1 dimensi


dimana metode yang digunakan adalah membandingkan data-data (nilai-nilai)
yang terdapat di dalam kumpulan data tersebut, mulai dari data pertama sampai
dengan nilai yang dicari ditemukan atau membandingkan dari nilai pertama
sampai nilai terakhir tanpa pengurutan data-data terlebih dahulu, jika data yang
dicari telah ditemukan maka proses pencarian dihentikan. Binary search adalah
algoritma pencarian pada array/list dengan elemen terurut, yang dilakukan dengan
memotong array menjadi dua bagian secara terus menerus hingga nilai yang dicari
ditemukan.
DAFTAR PUSTAKA

Modul Praktikum Algoritma Pemrograman II Universitas Palangkaraya.

Himo!, Jumat, 05 Juni 2015 SEARCHING (SEQUENTIAL SEARCH DAN


BINARY SEARCH) http://himosubs.blogspot.com/2015/06/searching-
sequential-search-dan-binary.html Diakses Pada 19 April 2021 Pukul
12.15 WIB.

ALZA, 17 January 2020, Algoritma Binary Search


https://koding.alza.web.id/algoritma-binary-search/ Diakses Pada 19 April
2021 Pukul 12.35 WIB.
LAMPIRAN

Gambar 1 (Input Program No 1)

Gambar 2 (Output Program No 1)

Gambar 3 (Input Program No 2)


Gambar 4 (Output Program No 2)

Gambar 5 (Input Program No 3)

Gambar 6 (Output Program No 3)


Gambar 7 (Output Program No 4)

Gambar 8 (Output Program No 4)