Langsung ke konten utama

ALGORITMA DAN PEMOGRAMAN2


SEARCING



1.      Linked List
 Secara umum search dapat diartikan mencari data dengan cara menelusuri tempat penyimpanan data tersebut. Tempat penyimpanan data dalam memory dapat berupa array atau dapat juga dalam bentuk Linked List. Pencarian dapat dilakukan terhadap data yang secara keseluruhan berada dalam memory komputer ataupun terhadap data yang berada dalam penyimpanan eksternal (hard disk).
2.      Pengertian Searching
Searching adalah mencari data yang dibutuhkan. Searching dalam pemrograman bisa dilakukan untuk mencari data yang ada di dalam memory komputer, dalam kehidupan sehari-hari kita juga sering melakukan kegiatan searching seperti mencari data/informasi yang ada dalam internet. Terdapat beberapa metode yang dapat digunakan untuk searching, ada yang dinamakan:
·  Sequential Search
·  Binary Search
3.      Sequential Search
Sequential Search merupakan metode pencarian data dalam array dengan cara membandingkan data yang dicari dengan data yang ada di dalam array secara berurutan. Pencarian data dengan Metode Sequential Search efektif untuk mencari data yang dalam posisi yang tidak terurut atau acak.
Teknik pencarian data dari array yang paling mudah adalah dengan cara sequential search, dimana data dalam array dibaca 1 demi satu, diurutkan dari index terkecil ke index terbesar, maupun sebaliknya
Array
           int A[5] = {12, 13, 19, 27, 28}
Prosesnya bisa dijelaskan seperti berikut:
1.      Menentukan data yang dicari
2.      Membaca data array satu per satu secara sekuensial
3.      Mulai dari data pertama sampai dengan data terakhir, kemudian data yang dicari tadi dibandingkan dengan masing-masing data yang ada di dalam array
a. Jika data yang dicari ditemukan, dapat membuat statement bahwa data telah ditemukan.
b. Jika data yang dicari tidak ditemukan maka kita dapat membuat statement bahwa data telah ditemukan.
Ilustrasi Sequential Search









Data yang dicari yaitu 7 disimpan di variabel x, kemudian akan dibanding satu per satu secara sekuensial terhadap data yang ada dalam array. Jika ditemukan data di dalam array yang sama dengan data yang dicari artinya data ditemukan.
Sequential Searching memiliki Kelebihan dan Kekurangan yaitu:
·         Kelebihan Sequential Searching bisa dikatakan lebih mudah dalam implementasinya dalam pemrograman.
·         Kekurangannya jika data yang terdapat dalam suatu array itu sangat banyak, maka akan diperlukan waktu yang lebih lama untuk membandingkan data yang dicari dengan jumlah data yang sangat banyak dalam suatu array.
Contoh Studi Kasus:
Menemukan data yang dicari dalam sebuah array 1 dimensi yang terdapat data di dalamnya dengan menggunakan Metode Sequential Searching. Jika data yang dicari ditemukan di dalam array kemudian ditampilkan letak dari indexnya.
  Contoh Program:



























     
   HASIL RUNNING
   

  
   


   
  Flowchat Sequential Search
     
     

  




















   1.      Binary Search
Metode pencarian Binary yaitu mencari data dengan melakukan mengelompokkan array menjadi bagian-bagian. Binary Search ini hanya dapat diimplementasikan pada data yang telah terurut baik ascending maupun descending dalam suatu array
Proses Binary Search yang urutan datanya ascending:
  1. Pertama buat perulangan lalu menentukan posisi low yaitu posisi yang menandakan index paling rendah kemudian menentukan posisi high. Kemudian mencari posisi mid = (high + low)/2
  2. Lalu membandingkan data yang dicari dengan nilai yang ada di posisi mid.
  3. Jika data yang dicari sama dengan nilai yang ada di posisi mid berarti data ditemukan.
  4. Jika data yang dicari lebih kecil dari nilai yang ada di posisi mid maka pencarian data akan dilakukan dibagian kiri mid dengan melakukan pembandingan. dengan kondisi posisi high berubah yaitu (mid - 1) dan posisi low tetap.
  5. Jika data yang dicari lebih besar dari nilai yang ada mid  maka pencarian data akan dilakukan di bagian kanan dari mid dengan posisi low yang berubah yaitu (mid + 1) dan posisi high tetap.
  6. Data diambil dari posisi 1 sampai posisi akhir N
  7. Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
  8. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar?
  9. Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah+1
  10. Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah–1 f) Jika data sama, berarti ketemu.

Algoritma pencarian biner dapat dituliskan sebagai berikut : 
  1.  L  ← 0
  2. R ← N - 1
  3. ketemu ← false
  4. Selama (L <= R) dan (tidak ketemu) kerjakan baris 5 sampai dengan 8   
  5. m ← (L + R) / 2 83
  6.  Jika (Data[m] = x) maka ketemu ← true
  7.  Jika (x < Data[m]) maka R ← m – 1 Jika (x > Data[m]) maka L  ← m + 1
  8. Jika (ketemu) maka m adalah indeks dari data yang dicari, jika tidak data tidak ditemukan.
Fibonacci Search
Fibonacci Search adalah pencarian sebuah elemen dalam array satu dimensi dengan menggunakan angka fibonacci sebagai titik-titik (indeks) elemen array yang isinya dibandingkan dengan nilai yang dicari.Sama halnya dengan Binary Search, Fibonacci Search juga mengharuskan data yang sudah terurut baik menaik (ascending) maupun menurun (descending).

Interpolation Search
 Interpolation Search adalah pencarian sebuah elemen dalam array satu dimensi dengan metode interpolasi atau perkiraan secara interpolasi, dimana data harus diurutkan terlebih dahulu.
a) Jika data[posisi] > data yg dicari, high = pos – 1
      b) Jika data[posisi] < data yg dicari, low = pos + 1
Contoh Ilustrasi:










Setelah menentukan low dan high kemudian menentukan mid. perhitungan mid=(low+high)/2 jadi mid=(0+4)/2, artinya mid berada di data[2]. Kemudian data yang dicari yang ditampung di variabel x dibandingkan dengan data/nilai yang berada di mid. data yang dicari ialah 7<10 kemudian pencarian data dilakukan di bagian kiri mid.













Pencarian di bagian kiri mid masih dalam perulangan yang sama, namun indeksnya yang dipersempit. Karena data yang dicari lebih kecil dari data mid yang sebelumnya maka posisi high yang berubah yaitu (mid - 1) yang sebelumnya dan low tetap pada posisi yang sama. Kemudian menentukan mid =(0+1)/2 = 0
artinya mid sekarang terletak di data[0]. lalu data yang dicari dibandingkan dengan mid. 7=7 artinya data telah ditemukan
Kelebihan dan Kekurangan Binary Search:
  1. Kelebihannya yaitu tidak perlu membandingkan data yang dicari dengan seluruh data array yang ada, cukup melalui titik tengah kemudian kita bisa menentukan ke mana selanjutnya mencari data yang ingin dicari.
  2. Kekurangan implementasi agak sedikit lebih rumit karena tidak bisa digunakan pada data array yang masih acak. Jadi harus melakukan sorting terlebih dahulu dalam implementasinya.
Contoh Program:













 








HASIL RUNNING





Flowchat Binary Search





 













DAFTAR PUSAKA
http://vickevolove.blogspot.co.id/2015/06/searching-dalam-bahasa-pemrograman-c.html
http://suputradwipratama274.blogspot.co.id/2015/06/pengertian-tentang-searching-contoh.html
https://repository.unikom.ac.id/30831/1/ALPRO%202%20-%20BAB%201%20SEARCHING.ppt.pdf

Komentar

Postingan populer dari blog ini

QUEUE/ANTRIAN PADA PEMROGRAMAN C++

                                                              QUEUE/ANTRIAN  penjelasan queue/ antrian kaidah utama dalam konsep queue adalah fifo yang merupakan singkatan dari first in first out, artinya adalah data yang pertama kali dimasukkan atau disimpan, maka datatersebut adalah yang pertama kali akan diakses atau dikeluarkan. Analoginya sama dengan antrian di sebuah loket pembelian tiket kereta, orang yang lebih dahulu, maka akan dilayani terlebih dahulu, dan akan selesai lebih dulu dari orang-orang yang datang setelahnya. Gambar dibawah ini mengilustrasikan kerja sebuah queue.               operasi- operasi sebagai berikut    1. enqueue memasukan data ke dalam antrian  2. dequeue mengeluarkan data terdepan dari antrian  3. clear menghapus seluruh antrian   4. isempty memeriksa apakah antrian kosong  5. isfull memeriksa apakah antrian penuh   Deklarasi queue dalam program         sebuah queue di dalam program komputer dideklarasikan sebagai sebu

STRUCT ARRAY PADA PEMROGRAMAN C++

                                                            STRUCT ARRAY Setiap tipe data dapat dibuat dalam bentuk array. Begitu juga dengan tipe data yang dibuat dengan perintah struct. Contoh program di bawah ini dapat menjelaskan cara penggunaan array yang bertipe data buatan. Berikut contoh Program Sederhana ‘array di dalam struct’. Disini saya menggunakan tools Borland C++ . Script : /*contoh program sederhana ‘array di dalam struct’*/ #include “stdio.h” #include “conio.h” #include “string.h” #define maks 3 struct TMhs { char NIM[9]; char Nama[21]; int NilaiUTS,NilaiUAS,NilaiQuis; float NilaiAkhir; char index; }; main () { TMhs mhs[maks]; int i; for(i=0;i<maks;i++) { printf(“Pengisian Data Mahasiswa Ke-%i \n”, i+1); printf(“NIM : “);fflush(stdin);gets(mhs[i].NIM); printf(“NAMA : “);fflush(stdin);gets(mhs[i].Nama); printf(“Nilai Quiz : “);scanf(“%d”,&mhs[i].NilaiQuis); printf(“Nilai UTS : “);scanf(“%d”,