searching dan shorting
DESCRIPTION
Struktur Diskrit Search and SortingTRANSCRIPT
-
STRUKTUR DATA
Searching
-
Pencarian (Searching)
Pencarian data sering juga disebut table look-up atau storage and retrieval information adalah suatu proses untuk mengumpulkan sejumlah informasi di dalam memori komputer dan kemudian mencari kembali informasi yang diperlukan secepat mungkin.
-
Algoritma Pencarian (Searching Algorithm)
:: algoritma yang menerima sebuah argumen kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut.
Metode pencarian dapat dilakukan dengan dua cara: Pencarian Internal (internal searching)
=> Semua rekaman yang diketahui berada dalam memori komputer Pencarian Eksternal (external searching)
=> Tidak semua rekaman yang diketahui disimpan dalam memori komputer, tetapi ada sebagian yang tersimpan di luar memori, misal pita atau cakram magnetis.
-
Algoritma Pencarian (Searching Algorithm)
Selain metode, pencarian juga dikelompokkan menjadi: Pencarian Statis (static searching)
=> Rekaman yang diketahui dianggap tetap. Pencarian Dinamis (dynamic searching)
=> Rekaman yang diketahui dapat berubah-ubah yang disebabkan oleh penambahan atau penghapusan suatu rekaman.
-
Teknik Pencarian (search techniques)
Ada dua macam teknik pencarian (search techniques) yaitu:
Pencarian Linier atau Pencarian Berurutan (Sequential Searching)
Pencarian Biner (Binary Search)
-
Linier Search atau Sequential Search
:: Merupakan metode pencarian data di dalam suatu struktur data linier dengan cara membaca setiap data satu persatu.
Metode ini tidak beda dengan proses untuk menampilkan seluruh data.
Suatu deret data dapat disimpan dalam bentuk array maupun linked list.
-
Algoritma Sequential Search
i 0 Ditemukan false Selama (tidak ditemukan) dan (i < N) kerjakan baris 4 Jika (Data[i] = key) maka
ketemu true
jika tidak
i i + 1 Jika (ditemukan) maka
i adalah indeks dari data yang dicari
jika tidak
data tidak ditemukan
-
Contoh
6 8 4 9 10 7 1 100
0 1 2 3 4 5 6 7 indeks
Kemudian program akan meminta data yang akan dicari, misal 9
Iterasi :
9 = 6 (tidak!)
9 = 8 (tidak!)
9 = 4 (tidak!)
9 = 9 (Ya!) => output: 3 (index)
-
Binary Search
:: Merupakan metode pencarian pada sebuah struktur data linier yang sudah terurut. Dalam hal ini, tidak semua data yang dibaca, namun cukup dengan membandingkan data yang ada di tengah dari suatu range.
Analogi dari binary search dapat dianalogikan dengan metode pencarian suatu kata di dalam kamus.
-
Algoritma Binary Search
1. Data diambil dari posisi 1 sampai posisi akhir N2. Kemudian cari posisi data tengah dengan rumus: (posisi
awal + posisi akhir) / 23. 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
Misalnya data yang dicari 190 1 2 3 4 5 6 7 83 10 11 12 13 19 29 33 35A B CKarena 19 > 13 (data tengah), maka: awal = tengah + 1
0 1 2 3 4 5 6 7 83 10 11 12 13 19 29 33 35
A B CKarena 19 < 29 (data tengah), maka: akhir = tengah 1
0 1 2 3 4 5 6 7 83 10 11 12 13 19 29 33 35
A=B=CKarena 19 = 19 (data tengah), maka KETEMU!
-
Pustaka
Lafore, Robert. 2003. Data Structures and Algorithms in Java, Second Edition. Sams Publishing.
Sartaj, Sahni. Data Structures & Algorithms. Presentation L20-24.
Mitchell Waite. Data Structures & Algorithms in Java. SAMS. 2001.
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12