Latihan algoritma kode program Java kali ini akan membahas pencarian data array (algoritma searching). Materi ini sering dipakai untuk menguji pemahaman seputar array serta logika if else.
Soal Pencarian Data Array
Buatlah kode program Java untuk mencari index array dari sekumpulan angka. Program meminta 1 angka awal berupa jumlah element array, kemudian user memasukkan satu per satu angka setiap element array.
Setelah itu input angka yang ingin dicari dan kode program akan menampilkan posisi index dari angka tersebut. Jika angka tidak ditemukan, tampilkan pesan "Angka tidak ditemukan".
Berikut contoh tampilan akhir yang diinginkan (1) :
Input jumlah element Array: 4 Input 4 angka (dipisah dengan enter): 23 76 45 18 Input angka yang akan dicari: 45 Angka ditemukan pada index ke-2
Berikut contoh tampilan akhir yang diinginkan (2) :
Input jumlah element Array: 6 Input 6 angka (dipisah dengan enter): 5 7 3 6 8 2 Input angka yang akan dicari: 9 Angka tidak ditemukan
Tips Membuat Kode Program Pencarian Data Array
Soal ini melatih pemahaman terkait array, kondisi if else dan perulangan (loop). Berikut tutorial pendahuluan yang bisa diikuti:
- Pengertian dan Cara Penulisan Variabel Bahasa Java
- Tipe Data Integer Bahasa Java
- Tipe Data Array Bahasa Java
- Percabangan Kondisi IF ELSE Bahasa Java
- Perulangan FOR Bahasa Java
Kita perlu 2 kali perulangan dalam pembuatan kode program. Perulangan pertama untuk menampung semua inputan ke dalam array, dan perulangan kedua untuk proses pencarian array.
Dalam teori algoritma, cukup banyak teknik yang tersedia untuk proses pencarian array. Pada contoh kali ini saya akan pakai algoritma paling sederhana, yakni Linear Search.
Algoritma pencarian linear search mencari satu persatu mulai dari index pertama sampai akhir secara berurutan. Jika angka sudah ditemukan, jalankan perintah break agar perulangan segara berhenti.
Kode Program Java Pencarian Data Array (Linear Search)
Berikut salah satu solusi dari soal membuat pencarian array dengan algoritma linear search menggunakan bahasa pemrograman Java:
import java.util.Scanner; class CariArray { public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("## Program Java Pencarian Array ##"); System.out.println("========================================"); System.out.println(); int[] arr = new int[100]; int arr_count, i, num; System.out.print("Input jumlah element Array: "); arr_count = input.nextInt(); System.out.print("Input "+arr_count+" angka (dipisah dengan enter): "); System.out.println(); // simpan setiap angka yang diinput ke dalam array for(i = 0; i < arr_count; i++){ arr[i] = input.nextInt(); } System.out.println(); System.out.print("Input angka yang akan dicari: "); num = input.nextInt(); // proses pencarian array for(i = 0; i < arr_count; i++){ if(arr[i] == num){ System.out.print("Angka ditemukan pada index ke-"+i); break; } } if(i == arr_count){ System.out.print("Angka tidak ditemukan"); } System.out.println(); } }
Di awal kode program terdapat perintah untuk mengimport class package  java.util.Scanner. Class Scanner diperlukan sebagai cara menerima input dalam bahasa Java.
Di baris 12 saya mendeklarasikan variabel arr agar berisi array dari tipe data integer. Karena di set dengan perintah new int[100], maka jumlah maksimum array arr adalah sebanyak 100 element.
Lanjut di baris 13 terdapat deklarasi 3 variabel lain, yakni arr_count, i dan num.
Meskipun array arr di set agar berisi 100 element, namun user tidak harus menginput 100 angka sekaligus. Jumlahnya diminta pada baris 16 dan disimpan ke dalam variabel arr_count. User hanya perlu menginput sejumlah nilai arr_count ini saja.
Misalnya jika diinput angka 4, maka hanya perlu mengisi 4 angka awal. Proses pembacaan data dilakukan oleh perulangan for di baris 22-24.
Kemudian di baris 28-29, user kembali ditanya ingin mencari angka berapa dan disimpan ke dalam variabel num.
Proses pencarian array dilakukan oleh perulangan for antara baris 32-37. Untuk setiap element array, periksa apakah cocok dengan isi variabel num atau tidak. Jika cocok, yakni kondisi arr[i] == num bernilai true, maka langsung tampilkan posisi index dari pencarian tersebut (variabel i) dan jalankan perintah break untuk menghentikan perulangan.
Namun jika setelah perulangan tidak ada angka yang cocok, maka isi variabel counter i akan sama dengan jumlah element array. Kondisi ini diperiksa pada baris 39-41, yang jika terpenuhi akan menampilkan teks "Angka tidak ditemukan".
Demikian soal dan jawaban kode program pencarian array (searching) dalam bahasa Java.
Dalam praktek aslinya, array yang dicari bisa saja tersimpan di database atau berasal dari pemanggilan API. Teknik pencarian seperti ini cukup sering dipakai, misalnya ketika melakukan pencocokan user yang akan login di database. Semoga bisa bermanfaat.