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).
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 Data : 10 5 8 12 15 22 24 18
Input Cari Data : 22
Hasil : Data ditemukan pada indeks ke-5
Kode Program
#include <stdio.h>
int main() {
int banyak_data, i, cari;
int ketemu = 0;
printf("Pencarian Data dengan Algoritma Sequential Search\n");
printf("visit us hobingoding.com\n\n");
// Input Banyak Data
printf("Input Banyak Data : ");
scanf("%d", &banyak_data);
int data[banyak_data];
// Input Data
printf("Input Data : ");
for(i = 0; i < banyak_data; i++) {
scanf("%d", &data[i]);
}
// Input Cari Data
printf("Input Cari Data : ");
scanf("%d", &cari);
// Algoritma Sequential Search
for(i = 0; i < banyak_data; i++) {
if(cari == data[i]) {
ketemu = 1;
printf("Hasil : Data ditemukan pada indeks ke-%d", i);
break;
}
}
if(ketemu == 0)
printf("Hasil : Data tidak ditemukan");
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