Pengertian Searching, Jenis-Jenis Searching dan Contoh Program Searching pada C++ Bagian 1
Pengertian Searching Beserta Jenis dan Contoh Program Searching pada C++
![]() |
| Sumber Gambar : Google |
Kali ini Admin bahasaprogr.blogspot.com akan bahas sedikit tentang Searching pada bahasa C++. Sebenarnya algoritma ini tak hanya digunakan pada bahasa C++ saja, tetapi semua bahasa yang lain juga dapat menerapkan penggunaan algoritma ini.
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.
Pencarian di perlukan untuk mencari informasi khusus dari tabel pada saat lokasi yang pasti dari informasi tersebut sebelumnya tidak diketahui. Pencarian selalu dinyatakan dengan referensi pada adanya sekolompok data yang tersimpan secara terorganisasi, kelompok data tersebut kita sebut tabel.
Array memungkinkan untuk menyimpan nilai yang bertipe sama. Operasi yang umum dalam array adalah Sequential Search dan Binary search. Perbedaan dari kedua teknik ini terletak pada keadaan data
Jenis - Jenis Searching
Ada beberapa metode yang dapat digunakan untuk searching, dan setiap metode mempunyai keunggulannya masing-masing, dari segi kecepatan maupun efisiensi tergantung kondisi.
1. Pengertian Pencarian Sekuensial ( Sequential Searching )
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. Prosesnya bisa dijelaskan seperti berikut:
- Menentukan data yang dicari
- Membaca data array satu per satu secara sekuensial
- Mulai dari data pertama sampai dengan data terakhir, kemudian
Data yang dicari tadi dibandingkan dengan masing-masing data yang ada di dalam array. Jika data yang dicari ditemukan maka kita dapat membuat statement bahwa data telah temukan.Namun, Jika data yang dicari tidak ditemukan maka kita dapat membuat statement bahwa data telah temukan.
Sequential Searching memiliki Kelebihan dan Kekurangan. 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.
Ada dua metode yang digunakan pada Sekuensial ini, yaitu dengan Sentinel atau tanpa menggunakan Sentinel dan metode itu dapat digunakan pada data yang sudah terurut maupun acak.
Sequential Searching memiliki Kelebihan dan Kekurangan. 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.
Ada dua metode yang digunakan pada Sekuensial ini, yaitu dengan Sentinel atau tanpa menggunakan Sentinel dan metode itu dapat digunakan pada data yang sudah terurut maupun acak.
Sequential Search Tanpa Menggunakan Sentinel pada Data Belum Terurut
- pada dasarnya pencarian ini hanya melakukan pengulangan dari elemen ke-1 sampai dengan jumlah data.
- pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari,
- apabila sama berarti data telah ditemukan,
- sebaliknya apabila sampai akhir pengulangan tidak ada yang sama, berarti data tidak ada.
Contoh Program Sequential Search Tanpa Menggunakan Sentinel pada Data Belum Terurut
/* SeqSearch_BelumUrut_nonSentinel diasumsikan Array X sudah ada dan berisi data yang belum terurut, nilai yang dicari adalah y dan hanya ada satu */ #include typedef enum boolean {false=0,true=1}; main() { int X[10]={20,50,10,30,90,60,70,80,40,100}; boolean found; int i,y; cout << "nilai yang dicari = "; cin >> y; found=false; i=0; while ((i<10) & (!found)) { if (X[i]==y) found = true; else i = i + 1; } if(found) cout << y <<" ditemukan pada index array ke-" < Cara lain untuk Sequential Search pada data Array X[n], adalah dengan menyediakan satu tempat setelah elemen terakhir, yaitu pada X[n+1] dan menyimpan harga yang dicari (misal y) pada posisi tersebut. Nilai yang dicari pada posisi elemen terakhir tersebut dinamakan sentinel.Sequential Search Dengan Sentinel pada Data Belum Terurut
- Pada dasarnya pencarian ini sama dengan proses pencarian sequential data belum terurut tanpa sentinel yaitu melakukan pengulangan dari elemen ke-1 sampai dengan jumlah data.
- Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari,
- Apabila sama berarti data telah ditemukan,
- Perbedaannya dengan yang tanpa sentinel adalah ketika data ditemukan tapi data tersebut adalah sentinel berarti data tidak ada.
Contoh Program Sequential Search Dengan Sentinel pada Data Belum Terurut (Cara 1)
/* SeqSearch_BelumUrut_Sentinel{cara1} diasumsikan Array X[0..10] sudah ada dan indeks ke 0..9 telah berisi data yang belum urut, nilai yang dicari adalah y dan hanya ada satu, y diletakkan di index ke-10 */ #include main() { int X[11]={20,50,10,30,90,60,70,80,40,100}; int i,y; cout << "nilai yang dicari = "; cin >> y; X[10]=y; i=0; while (X[i]!=y) i=i+1; if (i>9) cout << "tidak ada " << y << " dalam Array"; else cout << y << " ditemukan dalam Array pada index ke-" << i; } Contoh Program Sequential Search Dengan Sentinel pada Data Belum Terurut (Cara 2)
/* SeqSearch_BelumUrut_Sentinel {cara2} diasumsikan Array X[0..10] sudah ada dan indeks ke 0..9 telah berisi data yang belum terurut,nilai yang dicari adalah y dan hanya ada satu, y diletakkan di index ke-10 */ #include typedef enum boolean {false=0,true=1}; main() { int X[11]={20,50,10,30,90,60,70,80,40,100}; int i,y; boolean found; cout << "nilai yang dicari = "; cin >> y; X[10]=y; found=false; i=0; while (!found) { if (X[i]==y) found=true; else i=i+1; } if (i==10) cout << "tidak ada " << y << " dalam Array"; else cout << y << " ditemukan dalam Array pada index ke-" << i; } Sequential Search Tanpa Menggunakan Sentinel pada Data Terurut
Dimulai dari elemen pertama pada Array, dilakukan pembandingan dengan elemen yang dicari. Jika elemen dalam Array masih lebih kecil dari elemen yang dicari maka pencarian diteruskan. Jika sudah lebih besar, pencarian dihentikan, dan bisa dipastikan bahwa elemen yang dicari memang tidak ada.Contoh Program Sequential Search Tanpa Menggunakan Sentinel pada Data Terurut
/* SeqSearch_SudahUrut_NonSentinel diasumsikan Array X sudah ada dan berisi data yang sudah terurut, nilai yang dicri adalah y dan hanya ada satu */ #include typedef enum boolean {false=0,true=1}; main() { int X[10]={10,20,30,40,50,60,70,80,90,100}; int i,y; boolean found; cout << "nilai yang dicari = "; cin >> y; found=false; i=0; while ((i<9) & (!found) & (y>=X[i])) { if (X[i]==y) found=true; else i=i+1; } if (found) cout << y << " ditemukan dalam Array pada index ke-" << i; else cout << "tidak ada " << y << " dalam Array"; } Sequential Search Dengan Sentinel pada Data Terurut
Jika digunakan cara pencarian dengan sentinel (elemen yang dicari disisipkan di index setelah data terakhir), dan elemen yang dicari lebih besar dari data terakhir yang ada di Array sehingga data yang dicari sama dengan data sentinel maka dapat disimpulkan bahwa data tidak ditemukanContoh Program Sequential Search Dengan Sentinel pada Data Terurut (Cara 1)
/* SeqSearch_SudahUrut_Sentinel {cara 1} diasumsikan Array X[1..nmax] sudah ada dan indeks 1..n telah berisi data yang sudah terurut,nilai yang dicari adalah y dan hanya ada satu */ #include typedef enum boolean {false=0,true=1}; main() { int X[11]={10,20,30,40,50,60,70,80,90,100}; int i,y; boolean found; cout << "nilai yang dicari = "; cin >> y; X[10]=y; found=false; i=0; while ((!found) & (X[i]9) cout << "tidak ada " << y << " dalam Array"; else if (X[i]==y) cout << y <<" ditemukan dalam Array pada index ke-"<< i; else cout << "tidak ada " << y << " dalam Array"; } Contoh Program Sequential Search Dengan Sentinel pada Data Terurut (Cara 2)
/* SeqSearch_SudahUrut_Sentinel {cara 2} diasumsikan Array X [0..10] sudah ada dan indeks 1..9 telah berisi data yang sudah terurut,nilai yang dicri adalah y dan hanya ada satu */ #include typedef enum boolean {false=0,true=1}; main() { int X[11]={10,20,30,40,50,60,70,80,90,100}; int i,y; boolean found; cout << "nilai yang dicari = "; cin >> y; X[10]=y; found=false; i=0; while ((!found) & (X[i]<=y)) { if (X[i]==y) found=true; else i=i+1; } if (i==10) cout << "tidak ada " << y << " dalam Array"; else if (found) cout << y << " ditemukan dalam Array pada index ke-" << i; else cout << "tidak ada " << y << " dalam Array"; } Demikian sedikit ulasan tentang Searching dengan metode Sekuensial, untuk post selanjutnya akan saya bahas tentang Searching dengan metode Binary Search.

Post a Comment for "Pengertian Searching, Jenis-Jenis Searching dan Contoh Program Searching pada C++ Bagian 1"