Proses SEQUENTIAL(BERATURAN)
Proses Sequential Searching :
- Pencarian dilakukan dari Data Pertama sampai Data Terakhir.
- Jika Data yang dicari berada di urutan yang paling jauh maka, Proses Sequential Searching akan memakan waktu yang cukup lama. Namun, sebaliknya jika Data yang dicari berada di urutan awal / dekat maka, proses Sequential Searching akan cepat.
- Bandingkan Data ke-1 dengan Data yang dicari12 == 20 → (False. Yang berarti bukan ini Data yang dicari)
- Bandingkan Data ke-2 dengan Data yang dicari15 == 20 → (False. Yang berarti bukan ini Data yang dicari)
- Bandingkan Data ke-3 dengan Data yang dicari9 == 20 → (False. Yang berarti bukan ini Data yang dicari)
- Bandingkan Data ke-4 dengan Data yang dicari1 == 20 → (False. Yang berarti bukan ini Data yang dicari)
- Bandingkan Data ke-5 dengan Data yang dicari20 == 20 → (True. Data yang dicari sudah ditemukan)
- Proses Pencarian berhenti.
Gimana mudahkan ? Sekarang coba lanjut lagi ke Contoh kasus kedua. Misal, terdapat sejumlah Data seperti berikut.
Data : 1 9 3 22 9 12 6 73
Data yang dicari : 9
Proses Sequential Searching :
- Pencarian dilakukan dari Data Pertama sampai Data Terakhir. Apabila terdapat Data yang sama atau duplikat maka, Data yang pertama kali ditemukanlah yang di cari.
- Bandingkan Data ke-1 dengan Data yang dicari1 == 9 → (False. Data belum ditemukan)
- Bandingkan Data ke-2 dengan Data yang dicari9 == 9 → (True. Data ditemukan)
- Proses Pencarian berhenti dan menampilkan bahwa Data ditemukan.
Berikut merupakan source code untuk program Sequential Searching.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.Random;
/**
*
* @author Yudi Setiawan
*
* Sequential Searching.
*
*/
public class SequentialSearching
{
public static void main(String[] args) throws IOException
{
// Objek BufferedReader
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader dataIn = new BufferedReader(isr);
// Input jumlah Data
System.out.print("Masukkan jumlah Data : ");
int jlh_data = Integer.parseInt(dataIn.readLine());
// Array Data sebagai penampung nilai Data
int[] data = new int[jlh_data];
// Pilih Metode Pengisian Data
System.out.println("\nPENGISIAN DATA");
System.out.println("1. Di input oleh user");
System.out.print("2. Di input oleh program --> Pilihan [1 / 2]: ");
int isi = Integer.parseInt(dataIn.readLine());
switch(isi)
{
case 1 : // Pengisian Data dilakukan oleh si User
System.out.println();
for(int a = 0; a < jlh_data; a++)
{
System.out.print("Data ke-"+(a+1)+" : ");
data[a] = Integer.parseInt(dataIn.readLine());
}
break;
case 2 : // Pengisian Data dilakukan oleh program secara random
for(int a = 0; a < jlh_data; a++)
data[a] = new Random().nextInt(201); // Data di isi secara random dengan nilai tertinggi 200
// Tampilkan Data yang di isi oleh program
System.out.println("\nTampilkan Data");
for(int a = 0; a < jlh_data; a++)
System.out.println("Data ke-"+(a+1)+" : "+data[a]);
break;
default : System.out.println("Pilihan tidak tersedia"); // Jika pilihan menu tidak sesuai
}
// Input Data yang dicari
System.out.print("\nInput Data yang dicari : ");
int cari = Integer.parseInt(dataIn.readLine());
// Proses Sequential Searching
boolean temu = false; // Variable indikator jika data sudah ditemukan
int urutan = 0; // Variable untuk mengetahui urutan ke berapa data yang dicari
for(int a = 0; a < jlh_data; a++)
{
System.out.print(data[a]+" == "+cari);
if(data[a] == cari)
{
System.out.println(" --> Data ketemu");
urutan = a+1; // Kenapa a+1 ? Karena a merupakan posisi index dimana index dimulai dari 0 ...
temu = true; // Sedangkan user menghitungnya dari 1.
break;
}
else
System.out.println(" --> Data belum ketemu");
}
if(temu == true)
System.out.println("\nData ditemukan pada urutan ke-"+(urutan));
else
System.out.println("\nData tidak ditemukan");
}
}
Komentar
Posting Komentar