DIKTAT STRUKTUR DATA Oleh Tim Struktur Data IF
- Slides: 39
DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF ARRAY STATIS (lanjutan)
OPERASI ARRAY STATIS (lanjutan) 3. Pencarian (searching) array Proses menemukan suatu data yang terdapat dalam suatu array. Proses ini menghasilkan nilai benar atau salah.
Metode Pencarian 1. Sequential / Linear Search 2. Binary Search
Metode Pencarian (lanjutan) Sequential / Linear Search: 1. 2. Tanpa Boolean a. Tanpa Sentinel b. Dengan Sentinel Dengan Boolean
SEQUENTIAL SEARCH Tanpa boolean tanpa sentinel: 1. Tidak menggunakan variabel boolean 2. Tidak mempunyai tambahan elemen di akhir array.
Sequential Search tanpa Sentinel berikut ini terdapat array yang akan diproses: Number 5 1 9 4 2 [1] [2] [3] [4] [5] Data yang akan dicari: 9 Number[1] = 9? i i + 1 Number[2] = 9? i i + 1 Number[3] = 9? i (STOP SEARCH) hasil: 9 ditemukan pada indeks ke- [3]
Sequential Search tanpa Sentinel Procedure Seq. Search. Tanpa. Sentinel (Input nama_array: tipe_array) {I. S. : elemen array [1. . maks_array] sudah terdefinisi} {F. S. : menampilkan hasil pencarian (ditemukan/tidak)} Kamus: i : integer data_cari : tipedata Algoritma: input(data_cari) i 1 while(nama_array [i] ≠ data_cari) and (i < maks_array) do i i + 1 endwhile if (nama_array[i] = data_cari) then output(data_cari, ’ ditemukan pada indeks ke-’, i) else output(data_cari, ’ tidak ditemukan’) endif End. Procedure
SEQUENTIAL SEARCH (lanjutan) Tanpa boolean dengan sentinel: 1. Tidak menggunakan variabel boolean 2. Mempunyai tambahan elemen di akhir array untuk menyimpan data cari apabila data cari tidak ditemukan
Sequential Search dengan Sentinel sentinel Data yang dicari: 9 Number 5 1 9 4 2 9 [1] [2] [3] [4] [5] [6] Hasil: Data ditemukan pada indeks ke- 3 sentinel Data yang dicari: 10 Number 5 1 9 4 2 10 [1] [2] [3] [4] [5] [6] Result: Data tidak ditemukan
Sequential Search Use Sentinel Procedure Seq. Search. Sentinel (Input nama_array: tipe_array) {I. S. : elemen array [1. . maks_array] sudah terdefinisi} {F. S. : menampilkan hasil pencarian (ditemukan/tidak)} Kamus: i : integer data_cari : tipedata Algoritma: input(data_cari) i 1 nama_array(maks_array + 1) data_cari while (nama_array [i] ≠ data_cari) do i i + 1 endwhile if (i < maks_array+1) then output(data_cari, ’ ditemukan pada indeks ke-’, i) else output(data_cari, ’ tidak ditemukan’) endif End. Procedure
SEQUENTIAL SEARCH (lanjutan) Dengan boolean: 1. Menggunakan variabel boolean 2. Menghasilkan nilai TRUE atau FALSE di akhir pencarian
Sequential Search dengan Boolean berikut ini adalah array yang akan diproses: Number 5 1 9 4 2 [1] [2] [3] [4] [5] Data yang akan dicari: 9 Number[1] = 9? KETEMU FALSE Number[2] = 9? KETEMU FALSE Number[3] = 9? KETEMU TRUE (STOP SEARCH) hasil: 9 ditemukan pada indeks ke- 3
Sequential Search Use Sentinel Procedure Seq. Search. Boolean (Input nama_array: tipe_array) {I. S. : elemen array [1. . maks_array] sudah terdefinisi} {F. S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: i : integer ketemu : boolean data_cari : tipedata Algoritma: input(data_cari) i 1 ketemu false while (not ketemu) and (i ≤ maks_array) do if(nama_var_array(i) = data_cari) then ketemu true else i i + 1 endif endwhile if (ketemu) then output(data_cari, ’ ditemukan pada indeks ke-’, i) else output(data_cari, ’ tidak ditemukan’) endif End. Procedure
BINARY SEARCH 1. Data harus terurut, baik secara ascending atau descending 2. Mekanismenya adalah dengan cara membagi larik menjadi dua bagian yaitu bagian kiri (indeks terkecil/Ia) sampai ke indeks tengah dan bagian kanan mulai dari indeks tengah sampai indeks terbesar (Ib) 3. Indeks tengah (k) : (Ia+Ib) div 2 (posisi tengah larik)
BINARY SEARCH (lanjutan) 4. Jika data yang dicari lebih kecil dari data di posisi tengah, maka pencarian dilanjutkan ke bagian kiri 5. Jika data yang dicari lebih besar dari data di posisi tengah, maka pencarian dilanjutkan ke bagian kanan
KASUS BINARY SEARCH Data yang dicari = 7 Banyak data = 5 Angka 3 7 [1] [2] Ia Bag. Kiri Angka 7 [1] [2] Bag. Kiri 15 29 [3] [4] [5] k Ib Bag. Kanan 3 Ia k 12 Ib Bag. Kanan
KASUS BINARY SEARCH Angka 7 [2] Ib Ia k Jadi: Angka 7 ditemukan pada indeks ke- 2
Binary Search Procedure Binary. Search (Input nama_array : tipe_array) {I. S. : elemen array yang terurut secara ascending sudah terdefinisi} {F. S. : menampilkan data yg dicari ditemukan atau tidak ditemukan} Kamus: Ia, Ib, k : integer ketemu : boolean data_cari : tipedata Algoritma: input(data_cari) Ia 1 Ib maks_array ketemu false while (not ketemu) and (Ia ≤ Ib) do k (Ia + Ib) div 2 if (nama_var_array[k] = data_cari) then ketemu true else if (nama_var_array[k] < data_cari) then Ia k + 1 else Ib k – 1 endif endwhile Endprocedure
LATIHAN Diketahui array Nama : Kiki, Arif, Sari, Ahmad, Doni, Maman, Aras, Dedi, Yuni, Murni, Zenal. Dicari Nama “Wiwin”, dengan menggunakan metode Binary Search pada data terurut secara Descending, maka: 1. Berapa kali iterasi sampai pencarian berhenti? 2. Berapa harga indeks atas (Ia) dan indeks bawah (Ib) ketika pencarian berhenti? 3. Posisi tengah pada iterasi ke-3 adalah ……
OPERASI ARRAY STATIS (lanjutan) 4. Pengurutan (sorting) array a. Bubble Sort b. Selection Sort c. Insertion Sort d. Radix Sort e. Merge Sort f. Quick Sort
BUBBLE SORT Proses menyusun data acak dengan cara menggelembungkan data yang ringan. Jika akan disusun secara ascending, maka penggelembungan dilakukan dari kanan ke kiri (bawah ke atas). Tapi jika akan disusun secara descending, maka penggelembungan dilakukan dari kiri ke kanan (atas ke bawah)
Proses Bubble Sort (Ascending) Berikut adalah data yang akan diurutkan secara ascending: 6 3 9 1 5 j Step 1 : 6 3 9 1 5 j 6 3 9 1 5 1 9 5 j 6 3 j 6 1 3 9 5 1 6 3 9 5
Proses Bubble Sort (Ascending) j Step 2 : 1 6 3 9 5 j 1 6 3 5 9 1 3 6 5 9
Proses Bubble Sort (Ascending) j Step 3 : Step 4 : 1 3 6 5 j 9 1 3 6 5 9 1 3 5 6 9 j 1 3 5 6 9 Array setelah diurutkan secara ascending: 1 3 5 6 9
BUBBLE SORT ASC Array Awal: 6 3 9 1 5 step. 1 1 6 3 9 5 step. 2 1 3 6 5 9 step. 3 1 3 5 6 9 step. 4 1 3 5 6 9
Bubble Sort Ascending Procedure Bubble. Sort. Asc(I/O nama_var_array : nama_tipe_array, Input N : integer) {I. S. : array[1. . N] sudah terdefinisi} {F. S. : menghasilkan array[1. . N] yang tersusun secara ascending} Kamus: i, j : integer temp : tipedata Algoritma: for i 1 to N-1 do for j n downto i+1 do if(nama_var_array[j] < nama_var_array[j-1]) then temp nama_var_array[j] nama_var_array[j-1] temp endif endfor End. Procedure
SELECTION SORT Proses menyusun data acak dengan cara menyeleksi atau menentukan data terbesar atau data terkecil dari elemen array yang ditinjau. - Maximum Sort - Minimum Sort
Proses Maximum Sort (Ascending) This is an array that will be sorted in Ascending way : 6 3 9 1 5 Step 1 : max 6 6 6 j 3 3 6 3 9 1 5 max j j 9 max 1 1 5 j 9 1 5 5 1 9
Proses Maximum Sort (Ascending) Step 2 : max 6 max j 3 3 3 5 j 5 5 1 9 j 1 j 9 6 3 5 1 9 1 3 5 6 9
Proses Maximum Sort (Ascending) max Step 3 : 1 1 Step 4 : 3 5 max j 3 1 3 max 1 1 j 3 max j 3 6 9 5 6 9 5 max j Array after sorted in descending way: 1 3 5 6 9
MAXIMUM SORT ASC Array Awal: 3 6 9 1 5 step 1 6 3 5 1 9 step 2 1 3 5 6 9 step 3 1 3 5 6 9 step 4 1 3 5 6 9
SELECTION SORT (lanjutan) Array Awal: 6 3 9 1 5 SILAKAN DICOBA UNTUK MAXIMUM SORT DSC, MINIMUM SORT ASC dan MINIMUM SORT DSC !!!
OPERASI ARRAY STATIS 5. Penghancuran (destroy) array Proses mengembalikan data array ke nilai awal
OPERASI ARRAY STATIS (lanjutan) 4. Pengurutan (Sorting) a. Bubble Sort b. Selection Sort c. Insertion Sort d. Radix Sort e. Merge Sort f. Quick Sort TUGA S
TUGAS Kelompok Tugas: 1. Sequential Search Tanpa Sentinel (Insertion Sort Asc) 2. Sequential Search Tanpa Sentinel (Radix Sort Asc) 3. Sequential Search Dengan Sentinel (Merge Sort Asc) 4. Sequential Search Dengan Sentinel (Quick Sort Asc) 5. Sequential Search Dengan Boolean (Insertion Sort Dsc) 6. Sequential Search Dengan Boolean (Radix Sort Dsc) 7. Binary Search (Merge Sort Dsc) 8. Binary Search (Quick Sort Dsc)
TUGAS Buatlah Makalah per kelompok (Algoritma dan Program) dengan ketentuan sebagai berikut: 1. Kasus (Asumsi + Batasan) 2. Teori dari Metode Sorting yang digunakan 3. Algoritma dari kasus yang harus diselesaikan 4. Listing program 5. Layar tampilan 6. Kontribusi masing-masing anggota kelompok
TUGAS Ketentuan: 1. Buat menjadi 8 kelompok 2. Tipe data yang digunakan minimal array of record dengan minimal jumlah field = 3 3. Gunakan modul atau subrutin berparameter (minimal 5 prosedur dan 2 fungsi) 4. Gunakan operasi-operasi yang telah dijelaskan mulai dari operasi penciptaan sampai operasi penghancuran 5. Penyelesaian kasus menggunakan menu pilihan 6. Cover berisi judul, Nama dan NIM, serta kelas
Contoh Cover Tugas Struktur Data ke-1 Sequential Search Tanpa Sentinel Dengan Insertion Sort secara Ascending Oleh: NIM – Nama Kelas : Strukdat-…… Kelompok: {logo UNIKOM} Program Studi Teknik Informatika Fakultas Teknik dan Ilmu Komputer UNIKOM 2014
MATERI SELANJUTNYA SINGLE LINKED LIST See u next week. . .
- Geometrický diktát
- Matematički diktat
- žiadosť do zamestnania vzor
- Verdrag van versailles cartoon
- Disleksija poznate licnosti
- Fremdwörter polizei diktat
- Bosanski jezik za 7 razred gramatika
- Rechtschreibstrategien schwingen
- Ortografija
- Struktur organisasi disusun oleh
- Jelaskan struktur atau sistem akuntansi di pemda
- Jelaskan struktur fisik
- Jenis komputer berdasarkan data yang diolah
- Tipe data yang didefinisikan sendiri oleh pemrogram disebut
- Kalkulator roda numerik ditemukan pada tahun 1692 oleh
- Torsten kohlmann
- Tim madsen everest
- Tim maclay
- Tim bretl
- Ví dụ về quan hệ tương đương
- Muôốn tìm số chia
- Where was tim winton born
- Tim tamlin
- Dua tempat kedudukan tim inti proyek
- Tim pengembang kurikulum
- Anggota tim proyek
- Tim app inventor
- Tim benke
- Tim 58 ucsc
- Tim skerry
- 28,5:2,5
- Symbols in to kill a mockingbird
- Kaji ulang manajemen halal
- Ce tim
- Dr tim leenders
- Tim iglesias
- Rapid health assessment form
- Tim adalah
- Dr ubhi pandas
- Tim brody