DIKTAT STRUKTUR DATA Oleh Tim Struktur Data IF

  • Slides: 39
Download presentation
DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF ARRAY STATIS (lanjutan)

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

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 1. Sequential / Linear Search 2. Binary Search

Metode Pencarian (lanjutan) Sequential / Linear Search: 1. 2. Tanpa Boolean a. Tanpa Sentinel

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

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

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.

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

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

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. :

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

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

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. :

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

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

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

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

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

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,

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

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

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

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

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

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

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)

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

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

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

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

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

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

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 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.

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

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

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

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

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. . .

MATERI SELANJUTNYA SINGLE LINKED LIST See u next week. . .