Sabtu, 28 Januari 2012

Pencarian Linear atau sekuensial

Pencarian Linier/SekuensialPencarian Linier atauPencarianSekuensialadalahpencarian data secara linier (garislurus), artinyaadalahpencariandilakukansecarateratur (secarasekuensial) dariawalsampaiakhir data (ataubisajugadariakhirkeawal data).
Sedangkan Algoritmapencarian (searching algorithm) adalahalgoritma yang menerimasebuahargumenkuncidandenganlangkah-langkahtertentuakanmencarirekamandengankuncitersebut. Setelah proses pencariandilaksanakan, akandiperolehsalahsatudariduakemungkinan, yaitu data yang dicariditemukan (successful) atautidak
ditemukan (unsuccessful).
Dalam ilmukomputer,pencarian linearatau pencariansekuensialadalah metodeuntuk menemukannilai tertentudalam daftar, yang terdiri darimemeriksa setiapsatu dariunsur-unsurnya,satupada satu waktu dandalam urutan, sampai salah satu yang diinginkanditemukan.
Pencarian linearadalahalgoritma pencarianyang paling sederhana, yang merupakan kasus khusus daribrute forcepencarian.Biayakasus terburukadalahsebanding denganjumlahelemen di dalam list, dan begitu juga biayayang diharapkan, jika semuaelemen listsama-sama mungkinuntuk dicari. Oleh karena itu, jika daftarmemiliki lebih daribeberapa elemen, metode lain(sepertipencarian bineratau hashing) akan lebih cepat, tetapi mereka jugamemberlakukanpersyaratan tambahan

Metode pencarian data
Metodepencarian data dapatdilakukandenganduacarayaitupencarian internal (internal searching) danpencarianeksternal (external searching). Padapencarian internal, semuarekaman yang diketahuiberadadalampengingatkomputersedangakanpadapencarianeksternal, tidaksemuarekaman yang diketahuiberadadalampengingatkomputer, tetapiadasejumlahrekaman yang tersimpandalampenyimpanluarmisalnyapitaataucakrammagnetis.
Selainitumetodepencarian data jugadapatdikelompokanmenjadipencarianstatis (static searching) danpencariandinamis (dynamic searching).Padapencarianstatis, banyaknyarekaman yang diketahuidianggaptetap, padapencariandinamis,banyaknyarekaman yang diketahuibisaberubah-ubah yang disebabkanolehpenambahanataupenghapusansuaturekaman.

Teknik Pencarian
Ada duamacamteknikpencarianyaitupencariansekuensialdanpencarianbiner.Perbedaandariduateknikiniterletakpadakeadaan data.Pencariansekuensialdigunakanapabila data dalamkeadaanacakatautidakterurut.Sebaliknya, pencarianbinerdigunakanpada data yang sudahdalamkeadaanurut.

PencarianBerurutan (Sequential Searching)
Pencarianberurutanseringdisebutpencarian linear merupakanmetodepencarian yang paling sederhana.Pencarianberurutanmenggunakanprinsipsebagaiberikut :
• Data yang adadibandingkansatu per satusecaraberurutandengan yang dicarisampaidata tersebutditemukanatautidakditemukan.

Padadasarnya, pencarianinihanyamelakukanpengulangandari 1 sampaidenganjumlah data.Padasetiappengulangan, dibandingkan data ke-i dengan yangdicari.Apabilasama, berarti data telahditemukan. Sebaliknyaapabilasampaiakhirpengulangantidakada data yang sama, berarti data tidakada. Padakasus yang palingburuk, untuk N elemen data harusdilakukanpencariansebanyak N kali pula.
Algoritmapencarianberurutandapatdituliskansebagaiberikut :
1. i ← 0
2. ketemu ← false
3. Selama (tidakketemu) dan (i <= N) kerjakanbaris 4 4. Jika (Data[i] = x) makaketemu ← true, jikatidak i ← i + 1 5. Jika (ketemu) maka i adalahindeksdari data yang dicari, jikatidak data tidakditemukan Di bawahinimerupakanfungsiuntukmencari data menggunakanpencarian sekuensial.: intSequentialSearch(int x) { int i = 0; boolketemu = false; while ((!ketemu) && (i < Max)) { if(Data[i] == x) ketemu = true; else i++; } if(ketemu) return i; else return -1; } FungsiuntukMencari Data denganMetodeSekuensial Fungsidiatasakanmengembalikanindeksdari data yang dicari. Apabila data tidakditemukanmakafungsidiatasakanmengembalikannilai –1. Berikutadalah 2 faktapentingtentangpencarian linier: • Hanyabagusuntukdipakaipada data yang acak/takterurut (unsorted) • KompleksitasnyaadalahO(n). Algoritma paling sederhanaadalahpencarian linear, yang secarasederhanamelihatsetiapelemendari list secaraberurutan.WaktupengerjaanalgoritmainiadalahO(n), dimana n adalahbanyaknyaelemendalam list, dandapatdigunakanlangsungpada list yang belumdiproses. Operasi pencarian adalah operasi untuk menemukan sebuah nilai (data) di dalam sekumpulan nilai yang bertipe sama. Untuk menemukan nilai yang kita cari, instruksi yang paling penting yang harus dilakukan adalah memeriksa jika nilai yang kita cari sama dengan salah satu nilai dalam kumpulan nilai yangdimaksud. Metode pencarian yang bisa kita pergunakan tergantung dari: 1. Bagaimana urutan nilai-nilai di dalam kumpulan nilai. 2. Bagaimana struktur data yang dipergunakan untuk menyusun nilai-nilai tersebut. Kita dapat mempergunakan metode pencarian beruntun atau linear (sequential searchatau linear search) jika: 1. Nilai-nilai tersebut belum berurutan. 2. Nilai-nilai tersebut sudah berurutan, tetapi struktur data yang dipergunakan untuk menyimpan nilai-nilai tersebut adalah senarai berkait (linked list,akan dibahas dalam kuliah-kuliah mendatang). Kita dapat mempergunakan baik metode pencarian beruntun maupun metode pencarian biner, jika: 1. Nilai-nilai tersebut sudah tersusun secara berurutan, dan 2. Nilai-nilai tersebut disusun ke dalam bentuk larik (array) atau struktur data sejenis yang masing-masing nilai tersimpan dalam bagian-bagian yang mempunyai indeks yang unik dan indeksnya berurutan dari yang paling kecil hingga yang paling besar (bersifat ordinal). Karakteristik Pencarian linear merupakanalgoritmapencarian yang paling sederhana.Beberapakarakteristik: • Pencariandapatdilakukan di struktur data apapun yang dapatdiaksessecarasekuensial (misalnya array, linked list), sementarasebagianalgoritma lain kadanghanyabisadigunakanpadastruktur data yang bisadiaksessecara random (misalnya binary search) • Data tidakharusterurut • Worst case dan expected cost untukpencarian linear adalah O(n) Sebaiknyadigunakanuntukpencarian data dalamjumlahkecil, dantidaksering.Jika data banyak, sebaiknya data diurutkan, danalgoritma lain digunakan (misalnya binary search), ataugunakanstruktur data khususuntukpencarian (binary search tree, hash table, dsb). Algoritma Algoritmapencarian linear sangatsederhana: Untuksetiapelemen di list, jikaelemenitucocok, hentikanpencarian (ketemu), jikatidakcocok, lihatelemenberikutnya, hinggaakhir list. Jikaakhir list dicapaidantidakada yang cocok, berartielementidakditemukan. Contoh : int search(constint el, constint *thelist, int count) { int i; for (i=0; in, maka keluar dari loop.
If A[i] = x, maka keluar dari loop.
mengaturikei + 1.
Return i.

Para pseudocode berikut pencarian array dalam urutan terbalik, kembali 0 jika unsur ini tidak ditemukan:

mengatur i dengan n.
Ulangi loop ini:
if i ≤ 0, maka keluar dari loop.
if A [i] = x, maka keluar dari loop.
mengatur i ke i - 1.
return i.
Sebagian besar komputer memiliki instruksi cabang kondisional bahwa tes tanda nilai dalam register, atau tanda hasil dari operasi aritmatika terbaru. Satu dapat menggunakan instruksi, yang biasanya lebih cepat daripada perbandingan terhadap beberapa nilai sewenang-wenang (memerlukan pengurangan), untuk melaksanakan perintah "Jika saya ≤ 0, maka keluar dari loop".
Optimasi ini mudah diimplementasikan ketika pemrograman di mesin atau bahasa assembly. Itu instruksi cabang tidak langsung dapat diakses dalam khas tingkat tinggi bahasa pemrograman, meskipun banyak kompiler akan dapat melakukan optimasi yang sendiri.









BAB 3 Penutup

Kesimpulan

Pencarianberurutanatau seringdisebutpencarian linear merupakanmetodepencarian yang paling sederhana. Metode pencarian ini lebih mudah dan sederhana dibandingkan dengan pencarian biner. Sehingga akan memudahkan pengguna dalam menyelesaikan masalah
Pencarian linear atau sekuensial digunakan untuk menemukan nila tertentu dari sebuah daftar,yang terdiri dari memeriksa setiap satu dari unsur-unsurnya, satu dalam satu waktu dan dalam urutan sampai salah satu yang diinginkan ditemukan. Oleh karena itu, jika daftar memiliki beberapa elemem harus menggunakan metode lain( seperti pencarian biner atau hashing) akan lebih cepat, tetapi mereka juga memerlukan persyaratan tambahan.















Daftar Pustaka
1. en.wikipedia.org/wiki/Linear_search
2. amimaya.com/id/komputer/linear-sequential-model/
3. nurdiana.web.id
4. lecturer.epis-its.edu
5. id.wikibooks.org
6. yohan.es

Tidak ada komentar:

Posting Komentar