![Page 1: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/1.jpg)
STRUKTUR DATA
By : Sri Rezeki Candra Nursari
2 SKS
![Page 2: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/2.jpg)
Literatur
• Sjukani Moh., (2007), “Struktur Data (Algoritma & Struktur Data 2) dengan C, C++”, Mitra Wacana Media
• Utami Ema. dkk, (2007),”Struktur Data (Konsep & Implementasinya Dalam Bahasa C & Free Pascal di GNU/Linux)”, Graha Ilmu
• Hubbard Jhon, R., Ph.D, (2000), “Schaum’s Outline Of Theory and Problems of Data Structures With C++” McGraw-Hill
• Bambangworawan Paulus., (2004), “Struktur Data Dengan C”, Andi Yogyakarta
![Page 3: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/3.jpg)
Materi1. Data dan Struktur Data2. Array3. Struktur dan Record4. Pointer5. Linked List6. Stack (Tumpukan)7. Queue (Antrian)8. Tree (Pohon)9. AVL Tree10. Heap dan B-Tree11. Sorting12. Search13. Hashing14. Graph
![Page 4: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/4.jpg)
SEARCH
Pertemuan 14
2 SKS
![Page 5: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/5.jpg)
SEARCHING
Pencarian (searching) merupakan proses yang fundamental dalam pemrograman. Mencari data dengan menelusuri tempat penyimpanan data. Tempat penyimpanan data dalam memory dapat berupa array/linked listBeberapa metoda diantaranya adalah :
– Sequential Search– Binary Search– Fibonacci Search– Interpolation Search
![Page 6: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/6.jpg)
Sequential Search Sequential Search/Pencarian Sekuential adalah proses
membandingkan setiap elemen Larik satu persatu secara beruntun, dari elemen pertama sampai elemen yang dicari ditemukan
Data yang ada pada suatu array dibandingkan satu persatu dengan data yang dicari
Pencarian ini hanya melakukan pengulangan dari 1 s.d. 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
![Page 7: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/7.jpg)
Sequential Search
![Page 8: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/8.jpg)
Sequential Search
Algoritma Pencarian dengan metode Sequential Search / Pencarian Sekuensial adalah1. i 12. Ketemu False3. Selama (not ketemu) dan ( i N) kerjakan baris 44. Jika (Data[i] = x) maka ketemu true, jika tidak i i +
15. IF (ketemu) maka i adalah indeks dari data yang dicari,
jika tidak data tidak ditemukan
![Page 9: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/9.jpg)
Sequential Search Algoritma Pencarian dengan metode Sequential Search
/ Pencarian Sekuensial adalah1. Tentukan dan simpan data dalam suatu array2. Tentukan fungsi pencarian sekuensial3. Fungsi pencarian sekuensial adalah sebagai berikut :
int flag=-1; {for(int count=0; count < array_size; count++) {
flag=count;break; } }
4. Masukkan data yang akan dicari5. Kerjakan langkah 3, jika data ketemu kerjakan lang-kah 6. Jika data
tidak ketemu lakukan langkah 66. Cetak data tersebut7. Selesai
![Page 10: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/10.jpg)
SequentialSearch
![Page 11: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/11.jpg)
Output Sequential
Search
![Page 12: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/12.jpg)
Binary Search
Pencarian sebuah elemen dalam sebuah array satu dimensi dengan cara selalu membandingkan dengan nilai yang berada di tengah array tersebutApabila tidak sama maka array akan
dibagi dua dan pencarian diulang pada bagian dimana nilai yang dicari.
![Page 13: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/13.jpg)
Binary Search
Salah satu syarat pencarian bagi dua (binary search) adalah data sudah dalam keadaan terurutApabila data belum keadaan terurut,
pencarian biner tidak dapat dilakukanData yang terurut merupakan syarat
mutlak penerapan pencarian Algoritma pencarian Bagi Dua
![Page 14: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/14.jpg)
Binary Search
Prinsip dari pencarian Biner1. Pertama diambil posisi awal =1 dan posisi akhir =N,
kemudian dicari posisi data tengah dengan rumus (posisi awal+posisi akhir)/2
2. Kemudian data yang dicari dibandingkan dengan data tengah
3. Jika lebih kecil, proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah -1
4. Jika lebih besar, proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah +1
5. Demikian seterusnya sampai data tengah sama dengan yang dicari
![Page 15: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/15.jpg)
Binary SearchArray 1 dimensi dengan int A[10] = {4, 7, 10, 11, 16, 22, 24, 28, 63, 64}. Mencari titik tengah dari suatu bagian array, dan membandingkan nilainya dengan N. Langkahnya adalah sebagai berikut
1. Input N. Tentukan Lo=0; Hi=N-1; dan Flag=0 (untuk tanda tidak ditemukan yang dicari) Mid = (Lo + Hi)/2
2. Selama Lo <= Hi dan Flag==0 Hitung Mid=(Lo+Hi)/2 Bila N==A[Mid], isi Flag=1; (tanda ditemukan) Bila N<A[Mid], isi Hi=Mid-1, proses pencarian dibagian
kiri Bila N>A[Mid], isi Hi=Mid+1, proses pencarian dibagian
kanan3. Proses pencarian selesai
![Page 16: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/16.jpg)
Binary Search
Hitung MidMID = (Lo + Hi)/2 = (6+10)/2 = 8A[Mid] = A[8] = 28
Periksa nilai NN > A[Mid] Lo = Mid-1
= 8-1 = 7
Hi tetap = 6
16
728
4 10 22 64
632411
![Page 17: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/17.jpg)
Binary Search
Hitung MidMID = (Lo + Hi)/2 = (0+10)/2 = 5A[Mid] = A[5] = 16
Periksa nilai NN < A[Mid] Lo = Mid-1
= 5+1Hi tetap = 10
16
728
4 10 22 64
632411
![Page 18: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/18.jpg)
BinarySearch
![Page 19: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/19.jpg)
BinarySearch
![Page 20: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/20.jpg)
BinarySearch
![Page 21: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/21.jpg)
BinarySearch
![Page 22: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/22.jpg)
Fibonacci SearchMerupakan pencarian sebuah elemen dalam
sebuah array satu dimensi dengan menggunakan angka fibonacci sebagai titik-titik (index) elemen array yang isinya dibandingkan dengan nilai yang dicari (misal N)
Salah satu syarat pencarian fibonacci adalah data sudah dalam keadaan terurut
Prosesnya hanya menggunakan operasi tambah dan kurang yang memerlukan waktu yang lebih cepat dibandingkan dengan proses pembagian yang digunakan pada binary search
![Page 23: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/23.jpg)
FibonacciSearch
![Page 24: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/24.jpg)
FibonacciSearch
![Page 25: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/25.jpg)
Interpolation Search
Merupakan pencarian sebuah elemen dalam sebuah array satu dimensi dengan menggunakan rumus interpolasi atau perkiraan secara interpolasiBerlaku rumus interpolasi adalahb/a = q/p
![Page 26: SD C 13 - · PDF fileMateri 1. Data dan Struktur Data 2. Array 3. Struktur dan Record 4. Pointer 5. Linked List 6. Stack (Tumpukan) 7. Queue (Antrian) 8. Tree (Pohon) 9. AVL Tree](https://reader034.vdocuments.mx/reader034/viewer/2022051719/5a72e7df7f8b9aa7538e16c2/html5/thumbnails/26.jpg)
Interpolation Search