hobingoding.com - Halo coders. Sequential search adalah salah satu teknik pencarian data dimana data yang akan dicari dicocokkan / disesuaikan dengan data yang ada pada masing-masing indeks mulai dari indeks ke - 0 hingga indeks n - 1 (jumlah - 1 karena indeks array dimulai dari 0).
Adapun untuk penjelasan lebih lengkap / teoritis tentang sequential search akan saya jelaskan pada postingan saya yang ada dibawah ini:
Baca juga: Algoritma Sequential Search dan Penjelasannya
Permasalahan
Buatlah program untuk mencari posisi indeks sebuah data dalam sebuah kumpulan (sebanyak n) data dengan menggunakan teknik sequential search.
Test Case
Input Banyak Data: 8
Input Kumpulan Data: 10 5 8 12 15 22 24 18
Input Data yang Dicari: 22
Hasil Pencarian: Data Ditemukan pada Indeks ke - 5
Kode Program
#include <stdio.h>
//visit us @hobingoding.com
int main(){
int banyakData, i, cari;
int ketemu = 0;
printf("Pencarian Data dengan Algoritma Sequential Search\n\n");
printf("Input Banyak Data\t: ");
scanf("%d", &banyakData);
int data[banyakData];
printf("Input Kumpulan Data\t: ");
for(i = 0; i < banyakData; i++)
{
scanf("%d", &data[i]);
}
printf("Input Data yang Dicari : ");
scanf("%d", &cari);
for(i = 0; i < banyakData; i++)
{
if(cari == data[i])
{
ketemu = 1;
printf("Hasil Pencarian \t: Data Ditemukan pada Indeks ke - %d\n", i);
break;
}
}
if(ketemu == 0)
printf("Hasil Pencarian \t : Data Tidak Ditemukan\n");
getch();
return 0;
}
Lihat source code melalui github: fandipres
Output Program
Penjelasan Program
Saya disini membuat sebuah array sepanjang / sebanyak n (int data[n]) yang dimana data yang diinput oleh user nantinya akan disimpan pada tiap-tiap indeks array (indeks ke - 0 hingga indeks n - 1).
Kemudian saya meminta inputan lagi (scanf cari) agar user dapat menginput data yang akan dicari. Lalu saya menggunakan perulangan sebanyak n data untuk mencari data yang akan dicari dengan cara membandingkan / mencocokkan data yang dicari dengan data yang ada pada masing-masing indeks array.
Sebelumnya saya telah menginsiasikan variabel ketemu = 0 (data tidak ditemukan) terlebih dahulu yang dimana variabel ini nantinya akan saya gunakan untuk melakukan pencetakan keluaran. Jika data yang dicari ada pada array / ditemukan, maka nilai ketemu akan berubah menjadi 1, kemudian dilanjutkan dengan melakukan pencetakan keterangan posisi indeks data, lalu program akan berhenti karena adanya fungsi break.
Jika data belum / tidak ditemukan, maka pencarian akan dilakukan hingga indeks terakhir. Apabila semua data telah diperiksa / dicocokkan dan data belum ketemu, maka nilai ketemu akan tetap = 0 yang mana jika ketemu = 0 maka akan dicetak keluaran data tidak ditemukan.
Sekian penjelasan dari saya, apabila kamu masih kurang paham, kamu dapat menanyakannya di kolom komentar yang ada di bawah. Semoga bermanfaat.
kenapa terdapat error di bagian getch?
BalasHapusHalo, sebenarnya fungsi dari getch() itu sendiri hanyalah untuk menahan output hingga sebuah tombol ditekan. Jika memang terjadi error silahkan hapus yang bagian getch()-nya ya.
Hapus