Anda di halaman 1dari 11

LAPORAN HASIL PRAKTIKUM

ALGORITMA & PEMROGRAMAN II

NAMA : Vito Ananda Christian


NIM : DBC 118 027
KELAS :A
MODUL : III (SEARCHING)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
BAB I
LANDASAN TEORI
I. Tujuan Praktikum
1.1 Mahasiswa dapat memahami Algoritma pencarian Beruntutan dan
Binary
1.2 Mahasiswa dapat mengimplementasikan algoritma pencarian untuk
menyelesaikan permasalahan.

II. 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 Beruntutan/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 kit acari 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 perbandingan 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 samapi data ditemukan atau
sampai ruang pencarian tidak dapat dibagi lagi ( berarti ada
kemnungkinan data tidak ditemukan).
3. Syarat utama untuk pencarian biner adalah data harus sudah
terurut, misalkan terurut menarik.

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 = Tenghah + 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
BAB II
PEMBAHASAN
2.1. Gunakan tabel Produk untuk mengerjakan tugas-tugas berikut
package modul3;

import java.util.Arrays;

public class Modul3 {

public static void main(String[] args) {


String[] produk =
{"Jaguar","Lamborgini","Honda","Audi","Suzuki","Mazda",
"Daihatsu","Ford","Hyudia","Mitsubisi"};
int[] harga =
{1340000,34500000,2000000,245000,500000,169000,789000,
122900,278100};

String cari = "Audi";


int i,x;
boolean ditemukan = false;
for(i=0; i<produk.length; i++){
if (produk[i] == cari){
ditemukan=true;
break;
}
}
if (ditemukan){
System.out.println("Produk : " + produk[i]);
System.out.println("Harga : " + harga[i] + "000");
System.out.println("Index : " + i);
}
else {
System.out.println("Produk Tidak Ditemukan");
}

System.out.println("--------------------------");
System.out.println("Urutan Harga Termurah");
Arrays.sort(harga);
showAll(harga);
System.out.println("---------------------------");

System.out.println("Harga yang Termurah Nomor Kedua:


");
showTermurah(harga);
}

private static void showAll(int[] a) {


for(int i=0; i<a.length;i++){
System.out.println(i+1 + " : "+ a[i]+"000");
}
}

private static void showTermurah(int[] a) {


for(int i=1; i<=1;i++){
System.out.println(a[i]+"000");
}
}

}
Gambar 2.1 Tampilan Program pada Aplikasi NetBeans
Gambar 2.2 Tampilan Output Program pada Aplikasi NetBeans

Pejelasan Program:
Metode ini digunakan sejumlah data telah diurutkan. Secara garis
besar metode ini bisa dijelaskan sebagai berikut. Urutkan dahulu sejumlah
data. Lalu bagi dua data-data tadi dengan jumlah data yang sama pada
masingmasingnya. Kemudian data dibandingkan dengan data terakhir dari
subdata yang pertama. Jika data yang dicari lebih kecil, pencarian dilanjutkan
pada sub data pertama dengan terlebih dahulu membagi dua lagi data-data
tersebut dengan jumlah yang sama. Tetapi jika data yang dicari lebih besar
dari data terakhir sub data pertama, berarti data yang dicari kemungkinan
terletak pada subdata yang kedua Proses diatas dilakukan berulang sampai
data ditemukan atau tidak ditemukan
BAB III
KESIMPULAN
Sequential Searching merupakan metode paling sederhana, metode nya
adalah data yang dicari dibandingkan satu persatu sampai data tersebut
ditemukan atau tidak ditemukan dalam deret array (isi data). Pada saat data
yang dicari sudah ditemukan, Maka proses pencarian langsung dihentikan.
Tetapi jika belum ditemukan, maka pencarian diteruskan sampai seluruh data
dibandingkan. Binary Search ini digunakan jika sejumlah data telah
diurutkan. Jika dibandingkan dengan metode awal tadi metode ini jauh lebih
cepat.

DAFTAR PUSTAKA
Modul Praktikum Algoritma dan Pemrograman II
2021. Palangkaraya. Jurusan Teknik Informatika Fakultas Teknik
Universitas Palangkaraya (UPR)
LAMPIRAN

Gambar 2.1 Tampilan Program pada Aplikasi NetBeans


Gambar 2.2 Tampilan Output Program pada Aplikasi NetBeans