Statistiche web Belajar Bahasa C : #13 Searching - Sobat Ambisius

Iklan 1

Belajar Bahasa C : #13 Searching

Hallo Sobat Ambisius!!

Pada kesempatan kali ini, kita akan mulai mempelajari penggunaan Searching pada bahasa C.

Searching merupakan proses pencarian sebuah data yang diinginkan.

1. Linear Search

Contoh program linear search :

#include <stdio.h>

int linearSearch(int data[],int datayangdicari){
  
  //looping untuk mencari datanya
  int bykdata;
    for(int i= 0; i<bykdata;i++){       
      if(data[i]==datayangdicari)return i;
    }

  return -1;  
}

int main (){
  int data[4]={9,11,1,8}; //data
  int indexSearch = linearSearch(data,1); //(data, angka yang dicari)

  if(indexSearch == -1){
  printf("Data tidak ditemukan dalam array\n");
  }
  else{
  printf("Data %d ditemukan dalam array\n",data[indexSearch]);  
  }
  return 0;
}


 

Penjelasan :

·        Pada function linearSearch terdapat parameter int data[], int data yangdicari yang nantinya digunakan untuk dipanggil ke function main.

·        Karena linearSearch mencari data dengan memeriksa array satu per satu maka dibutuhkan looping pada function linearSearch.

·        Pada function main berfungsi memanggil function linearSearch, mendeklarasikan data, dan melakukan seleksi apakah ada data yang ingin dicari?.

Output :

2. Binary Search

Contoh program binary search (rekursif) :

#include <stdio.h>

int binarySearch(int array[], int CariAngka, int left, int right) {
  if (right >= left) {
    int mid = left + (right - left) / 2;

    // Jika menemukan angka tengah maka return mid
    if (array[mid] == CariAngka)
      return mid;

    // Cari angka pada bagian kiri
    if (array[mid] > CariAngka)
      return binarySearch(array, CariAngka, left, mid - 1);

    // Cari angka pada bagian kanan
    return binarySearch(array, CariAngka, mid + 1, right);
  }

  return -1;
}

int main() {
  int array[] = {7, 11, 12, 23, 29, 32, 38};
  int n = sizeof(array) / sizeof(array[0]);
  int CariAngka = 32; //angka yang ingin dicari
  int hasil = binarySearch(array, CariAngka, 0, n - 1);
  
  if (hasil == -1){
    printf("Data tidak ditemukan\n");
  }
  else{
    printf("Angka %d ditemukan pada index %d\n", CariAngka, hasil);
  }
  
  return 0;
}

Penjelasan :

·        Pada function binarySearch terdapat parameter int array[ ] yang berfungsi sebagai variabel data, int CariAngka berfungsi sebagai variabel yang nantinya digunakan untuk mencari sebuah data, int left dan int right berfungsi untuk mengeksekusi rumus dari teori binary search yaitu memeriksa data dengan cara memeriksa nilai tengah.

·        Lalu pada function binarySearch terdapat seleksi if untuk rumusan dan untuk mencari data yang diinginkan.

·        Pada function main tedapat variabel array[ ] yang berisi beberapa data.

·        Terdapat variabel n yang berfungsi menyesuaikan ukuran data pada array.

·        int CariAngka berfungsi berisi angka yang ingin kita cari.

·        Int hasil merupakan variabel yang dibuat untuk memanggil function binarySearch. Lalu lakukan seleksi apakah ditemukan angka yang dicari?.

Output :

Jika angka yang dicari tidak ada dalam data maka akan muncul output :


Contoh program binary search (iteratif) :

#include<stdio.h>
int binaryIteratif(int data[],int n,int cari,int kiri,int kanan){
   
   int mid,index=0;

   while(kiri<=kanan){
    mid=(kiri+kanan)/2;
    
   if(cari==data[mid]){
      return mid;
   }
    
    else if(cari>data[mid]){
     kiri = mid+1;
  }
      
    else{
     kanan = mid -1;  
  }
    
   }
  return -1;
}
int main(){
  int data[100];
  int n;
  int cari;
  int index;
  int kiri,kanan;
  
  printf("Masukkan banyaknya data : ");
  scanf("%d",&n);
  printf("Masukkan %d angka : ", n);
  for(int i=0;i<n;i++){
     scanf("%d",&data[i]);
  }
 

  printf("Masukkan angka yang ingin dicari: ");
  scanf("%d",&cari);

  kiri=0,kanan=n-1;
  index=binaryIteratif(data,n,cari,kiri,kanan);
  
  if(index==0){
      printf("Data tidak ditemukan.\n");
  }

  else{
      printf("Angka %d ditemukan pada index ke %d\n",cari,index);
  }
  
 return 0;
 }


Penjelasan :

·        Perbedaan paling mencolok antara binary search rekursif dan iteratif terletak pada function binarysearch dimana rekursif memanggil diri sendiri untuk mengeksekusi angka yang dicari sedangkan iteratif menggunakan looping untuk mengeksekusi angka yang dicari.

·        int n berfungsi sebagai banyaknya data yang ingin dimasukkan.

·        Int kiri, kanan , mid berfungsi untuk mencari angka yang di inginkan menggunakan rumus pada binary search.

·        Int data[100] berfungsi untuk memasukkan data.

·        Int cari berfungsi untuk memasukkan angka yang ingin  di cari.

Output :

Jika data yang dicari tidak ditemukan :

Inilah informasi yang membahas tentang Searching pada bahasa C. Semoga dengan penjelasan tersebut dapat membuat Sobat Ambisius menjadi lebih semangat dalam mempelajari bahasa C. Terima kasih dan semoga bermanfaat.

0 Response to "Belajar Bahasa C : #13 Searching"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel