Materi Searching Algoritma Dan Pemrograman C++ - INFOKU

INFOKU

All Info You Need Is Here!!!

test banner

Post Top Ad

test banner

Post Top Ad

Monday, May 27, 2019

Materi Searching Algoritma Dan Pemrograman C++

test

Pengertian Searching

Searching atau pencarian merupakan proses yang sering digunakan dalam pengelolaan data. Proses pencarian adalah menemukan data tertentu dalam sekumpulan data. Algoritma searching adalah algoritma yang menerima argumen A dan mencoba untuk mencari record yang mana kuncinya adalah A.
Algoritma bisa mengembalikan nilai record atau pointer ke record. Record sendiri adalah tipe data yang terdiri atas kumpulan variable yang disebut field. Sequential search yaitu proses mengunjungi melalui suatu pohon dengan cara setiap simpul di kunjungi hanya satu kali yang disebut dengan tree transversal atau kunjungan pohon.
Data dapat disimpan secara temporer dalam memori utama atau disimpan secara permanen di dalam memori sekunder. Di dalam memori utama, struktur penyimpanan data yang umum adalah berupa tabel atau array, sedangkan di dalam memori sekunder berupa arsip.
Aktivitas yang berkaitan dengan pengolahan data ini sering di dahului dengan proses pencarian. Sebagai contoh, untuk mengubah atau memperbarui data tertentu, langkah pertama yang harus dilakukan adalah mencari keberadaan data tersebut di dalam kumpulannya. Aktivitas yang awal sama juga dilakukan pada proses penambahan atau insert data yang baru. Proses penambahan data dimulai dengan mencari apakah data yang ditambahkan sudah terdapat di dalam kumpulan. Jika sudah dan mengasumsikan tidak boleh ada duplikasi data,maka data tersebut tidak perlu di tambahkan, tetapi jika belum ada, maka akan ditambahkan.
Algoritma pencarian yang akan dibahas terdapat dua cara yaitu:
  1.     Pencarian Berurutan (Sequential Search).
  2.     Pencarian Biner (Binary Search).



Sequential Search

Sequential Search adalah suatu teknik pencarian data dalam array satu dimensi yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Pencarian berurutan menggunakan prinsip sebagai berikut: data yang ada dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut ditemukan atau tidak ditemukan. Algoritma pencarian secara linear digunakan untuk mencari sebuah nilai pada tabel sembarang. Ada dua macam cara pencarian pada tabel. Algoritma ini mempunyai dua jenis metode yaitu dengan boolean dan tanpa boolean. Algoritma pencairan secara linear melakukan pengulangan sebanyak satu kali untuk kasus terbaik atau nilai sama dengan elemen pertama dalam tabel.
Proses pencarian data dengan metode ini cukup sederhana dan mudah dipahami. Dalam pencarian ini proses dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencarian data dilakukan dengan cara mencocokan data yang akan dicari dengan semua data yang ada dalam kelompok data. Proses pencocokan data dilakukan secara berurut satu demi satu dimulai dari data kesatu hingga data pada ururtan terakhir. Jika data yang dicari mempunyai harga yang sama dengan data yang ada dalam kelompok data, berarti data telah ditemukan. Tetapi jika data yang dicari tidak ada yang cocok dengan data-data dalam sekelompok data, berarti data tersebut tidak ada dalam sekelompok data.Selanjutnya kita tinggal menampilkan hasil yang diperoleh tersebut.

Binary Search

Binary Search adalah algoritma pencarian untuk data yang terurut. Pencarian dilakukan dengan cara menebak apakah data yang dicari berada ditengah-tengah data, kemudian membandingkan data yang dicari dengan data yang ada ditengah. Bila data yang ditengah sama dengan data yang dicari, berarti data ditemukan. Namun, bila data yang ditengah lebih besar dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan berada disebelah kiri dari data tengah dan data disebelah kanan data tengah dapat diabai. Upper bound dari bagian data kiri yang baru adalah indeks dari data tengah itu sendiri. Sebaliknya, bila data yang ditengah lebih kecil dari data yang dicari, maka dapat dipastikan bahwa data yang dicari kemungkinan besar berada disebelah kanan dari data tengah. Lower bound dari data disebelah kanan dari data tengah adalah indeks dari data tengah itu sendiri ditambah saru, demikian seterusnya.
Sebuah algoritma pencarian biner adalah sebuah teknik untuk menemukan nilai tertentu dalam sebuah array linear, dengan menghilangkan setengah data pada setiap langkah, dipakai secara luas tetapi tidak secara ekslusif dalam ilmu komputer.
Sebuah pencarian biner mencari nilai tengah atau median, melakukan sebuah pembandingan untuk menentukan apakah nilai yang dicari ada sebelum atau sesudahnya, kemudian mencari setengah sisanya dengan cara yang sama. Pada intinya, algoritma ini menggunakan prinsip divide and conquer, dimana sebuah masalah atau tujuan diselesaikan dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini membagi sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja.Algoritma ini bekerja dengan cara memilih record dengan indeks tengah dari tabel dan membandingkannya dengan record yang hendak dicari. Jika record tersebut lebih rendah atau lebih tinggi, maka tabel tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu dalam sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar atau list nilai.
Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list, oleh karena nilai-nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara yang sama.
Metode pencarian biner atau binary search hanya bisa diterapkan jika data array sudah terurut. Pengurutan array bisa menggunakan jenis sorting descending atau asscending.

Keunggulan
Keunggulan utama dari algoritma binary search adalah kompleksitas algoritmanya yang lebih kecil daripada kompleksitas algoritma sequential search. Hal ini menyebabkan waktu yang dibutuhkan algoritma binary search dalam mencari sebuah record dalam sebuah table lebih kecil daripada waktu yang dibutuhkan algoritma sequential search.

Kelemahan
Data harus disorting dahulu dan algoritma lebih rumit, tidak baik untuk data berantai.algoritma ini hanya bisa digunakan pada tabel yang elemennya sudah terurut baik menaik maupun menurun.

Fungsi
Pencarian Biner atau Binary Search dilakukan untuk:
  1. Memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.
  2. Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi atau berarti ada kemungkinan data tidak ditemukan.
  3. Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.

Prinsip dari pencarian biner dapat dijelaskan sebagai berikut:
  1.    Data diambil dari posisi 1 sampai posisi akhir N.
  2.   Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) atau 2.
  3.   Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau lebih kecil, atau lebih besar.
  4.   Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1.
  5.   Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1.
  6.    Jika data sama, berarti ketemu.

Contoh Listing Program






Output











No comments:

Post a Comment

Post Top Ad