Kelompok
Sequential Search
Sequential Search Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari depan ke belakang atau dari awal sampai akhir. berdasarkan key yang di cari Kelebihan dari proses pencarian secara sequential ini jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat. Tetapi dibalik kelebihannya ini, teknik ini juga memiliki kekurangan. jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya. beban komputer akan semakin bertambah jika jumlah data dalam array sangat banyak.
Proses:
Mulai dari awal(atau dari akhir) cek seluruh record dalam array atau list,baca satu persartsu Temukan record sesuai dengan key yang dicari. Proses Searching berhenti karena salah satu alasan. 1.Success Found the target key 2.End of List No more records to compare
Cara 1 1. tanda adalah sebuah variabel yang berfungsi sebagai petunjuk. Inisialisasi awal tanda diberi 0 (nol). 2. tanda akan berubah nilai dari 0 menjadi 1 (satu) jika ditemukan nilai pada data variabel array A sama dengan nilai pada x. 3. Setelah selesai memeriksa semua data yang ada pada variabel array A, maka diperiksa apakah nilai dari tanda 0 atau tidak, jika 0 maka tidak ditemukan data pada variabel A yang bernilai sama dengan x, dan sebaliknya jika tidak 0 atau bernilai 1 maka ditemukan data pada variabel A yang sama dengan x.
Penggalan program untuk algoritma diatas : cin>>x; tanda = 0; for ( i=0 ; i<N ; i++) { if ( A[i] == x ) tanda=1; } if ( tanda == 0 ) cout<<Ada; else cout<<Tidak Ada
kekurangan dari algoritma diatas adalah jika telah ditemukan data yang sama dengan nilai x pada elemen 2 maka program terus memeriksa untuk data yang lain sampai semua elemen diperiksa. Seharusnya ketika telah ditemukan data yang sama maka cukup tidak perlu dilanjutkan pemeriksaan untuk data pada elemen berikutnya dan langsung dicetak kata Ada.
Cara 2
Dari algoritma di atas selain memeriksa ada atau tidaknya data pada variabel array A yang sama dengan nilai pada x juga sekaligus bisa menghitung jumlah data yang sama dan bisa dicetak bersamasama keterangan Ada.
Cara 3 : menggunakan teknik sentinel Sentinel berarti penjaga. Metode searching dengan menggunakan teknik sentinel adalah adanya elemen fiktif yang sengaja ditambahkan sesudah elemen terakhir sebuah deret array. Jika elemen larik terakhir A[N], maka sentinel dipasang pada elemen A[N+1]. Sentinel ini nilainya sama dengan nilai yang dicari. Akibatnya proses pencarian selalu berhasil menemukan data yang dicari. Namun demikian harus diperiksa lagi letak data tersebut ditemukan. Jika ditemukan pada : 1. Elemen A[0] sampai dengan A[N], maka pada data array tersebut benar ada (ditemukan) yang bernilai sama dengan nilai yang dicari 2. Elemen A[N+1], maka pada array sesungguhnya tidak ditemukan data yang bernilai sama dengan nilai yang dicari.
Penggalan program untuk algoritma teknik sentinel : cin>>x; A [N+1] = x ; i=0; while ( A[i] != x ) { i++; } if ( i < N+1 ) cout<<Ada; else cout<<Tidak Ada
Algoritma sequential search adalah salah satu algoritma yang digunakan untuk memecahkan masalah pencarian data pada suatu data larik/array. Cara kerja dari algoritma ini adalah dengan menelusuri elemen-elemen array dari awal sampai akhir, dimana data tidak perlu diurutkan terlebih dahulu. Kemungkinan terbaik(best case) dari algoritma ini adalah jika data yang dicari berada pada elemen array yang terdepan sehingga waktu yang dibutuhkan untuk pencarian data semakin singkat. Sebaliknya, akan mencapai kondisi terburuk(wors case) apabila data yang dicari berada pada elemen akhir.berikut contoh programnya