Bab III - Array Statis
-
Upload
adi-farhan -
Category
Documents
-
view
116 -
download
4
description
Transcript of Bab III - Array Statis
![Page 1: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/1.jpg)
ARRAY STATIS (lanjutan)
DIKTAT STRUKTUR DATA
Oleh:Tim Struktur Data IF
![Page 2: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/2.jpg)
OPERASI ARRAY STATIS (lanjutan)
3. Pencarian (searching) array Proses menemukan suatu data yang terdapat dalam suatu array. Proses ini menghasilkan nilai benar atau salah.
![Page 3: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/3.jpg)
Metode Pencarian1. Sequential / Linear Search
2. Binary Search
![Page 4: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/4.jpg)
Metode Pencarian (lanjutan)Sequential / Linear
Search:
1. Tanpa Boolean
a. Tanpa Sentinel
b. Dengan Sentinel
2. Dengan Boolean
![Page 5: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/5.jpg)
SEQUENTIAL SEARCH
Tanpa boolean tanpa
sentinel:
1. Tidak menggunakan variabel
boolean
2. Tidak mempunyai tambahan
elemen di akhir array.
![Page 6: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/6.jpg)
Sequential Search tanpa Sentinel
berikut ini terdapat array yang akan diproses:
Number
Data yang akan dicari: 9 Number[1] = 9? Number[2] = 9? Number[3] = 9?
hasil: 9 ditemukan pada indeks ke- [3]
5 1 9 4 2[1] [2] [3] [4] [5]
i i + 1
i i + 1
i (STOP SEARCH)
![Page 7: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/7.jpg)
Sequential Search tanpa Sentinel
Procedure SeqSearchTanpaSentinel (Input nama_array:tipe_array){I.S. : elemen array [1..maks_array] sudah terdefinisi}{F.S. : menampilkan hasil pencarian (ditemukan/tidak)}Kamus:
i : integerdata_cari : tipedata
Algoritma:input(data_cari)i 1while(nama_array [i] ≠ data_cari) and (i < maks_array) do
i i + 1endwhileif (nama_array[i] = data_cari)then
output(data_cari,’ ditemukan pada indeks ke-’,i)else
output(data_cari,’ tidak ditemukan’)endif
EndProcedure
![Page 8: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/8.jpg)
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
![Page 9: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/9.jpg)
Sequential Search dengan Sentinel
Data yang dicari: 9
Number
Hasil: Data ditemukan pada indeks ke- 3
Data yang dicari: 10
Number
Result: Data tidak ditemukan
5 1 9 4 2 9[1] [2] [3] [4] [5] [6]
sentinel
5 1 9 4 2 10[1] [2] [3] [4] [5] [6]
sentinel
![Page 10: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/10.jpg)
Sequential Search Use SentinelProcedure SeqSearchSentinel (Input nama_array:tipe_array){I.S. : elemen array [1..maks_array] sudah terdefinisi}{F.S. : menampilkan hasil pencarian (ditemukan/tidak)}Kamus:i : integerdata_cari : tipedataAlgoritma:input(data_cari)i 1nama_array(maks_array + 1) data_cariwhile (nama_array [i] ≠ data_cari) doi i + 1endwhileif (i < maks_array+1)thenoutput(data_cari,’ ditemukan pada indeks ke-’,i)elseoutput(data_cari,’ tidak ditemukan’)endifEndProcedure
![Page 11: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/11.jpg)
SEQUENTIAL SEARCH (lanjutan)
Dengan boolean:
1. Menggunakan variabel
boolean
2. Menghasilkan nilai TRUE
atau FALSE di akhir
pencarian
![Page 12: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/12.jpg)
Sequential Search dengan Boolean
berikut ini adalah array yang akan diproses:
Number
Data yang akan dicari: 9 Number[1] = 9? Number[2] = 9? Number[3] = 9?
hasil: 9 ditemukan pada indeks ke- 3
5 1 9 4 2[1] [2] [3] [4] [5]
KETEMU FALSE
KETEMU FALSE
KETEMU TRUE (STOP SEARCH)
![Page 13: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/13.jpg)
Sequential Search Use SentinelProcedure SeqSearchBoolean (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 : integerketemu : booleandata_cari : tipedata
Algoritma:input(data_cari)i 1ketemu falsewhile (not ketemu) and (i ≤ maks_array) do
if(nama_var_array(i) = data_cari)then ketemu trueelse i i + 1endif
endwhileif (ketemu)then
output(data_cari,’ ditemukan pada indeks ke-’,i)else
output(data_cari,’ tidak ditemukan’)endif
EndProcedure
![Page 14: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/14.jpg)
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)
![Page 15: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/15.jpg)
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
![Page 16: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/16.jpg)
KASUS BINARY SEARCHData yang dicari = 7Banyak data = 5Angka
Angka
3 7 12 15 29[1] [2] [3] [4] [5]
Ia k IbBag. Kiri Bag. Kanan
3 7[1] [2]
Ia Ibk
Bag. Kiri Bag. Kanan
![Page 17: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/17.jpg)
KASUS BINARY SEARCH
Angka 7[2]
IbIak
Jadi:Angka 7 ditemukan pada indeks ke- 2
![Page 18: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/18.jpg)
Binary SearchProcedure BinarySearch (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 : integerketemu : booleandata_cari : tipedata
Algoritma:input(data_cari)Ia 1Ib maks_arrayketemu falsewhile (not ketemu) and (Ia ≤ Ib) do
k (Ia + Ib) div 2if (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 endifendif
endwhileEndprocedure
![Page 19: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/19.jpg)
OPERASI ARRAY STATIS (lanjutan)
4. Pengurutan (sorting) array a. Bubble Sortb. Selection Sortc. Insertion Sortd. Radix Sort e. Merge Sortf. Quick Sort
![Page 20: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/20.jpg)
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)
![Page 21: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/21.jpg)
Proses Bubble Sort (Ascending)Berikut adalah data yang akan diurutkan secara ascending: 6 3 9 1 5
Step 1 : 6 3 9 1 5
6 3 9 1 5
6 3 1 9 5
6 1 3 9 5
1 6 3 9 5
j
j
j
j
![Page 22: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/22.jpg)
Proses Bubble Sort (Ascending)
Step 2 : 1 6 3 9 5
1 6 3 5 9
1 6 3 5 9
1 3 6 5 9
j
j
j
![Page 23: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/23.jpg)
Proses Bubble Sort (Ascending)
Step 3 : 1 3 6 5 9
1 3 6 5 9
1 3 5 6 9
Step 4 : 1 3 5 6 9
1 3 5 6 9
Array setelah diurutkan secara ascending:1 3 5 6 9
j
j
j
![Page 24: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/24.jpg)
BUBBLE SORT ASC
ArrayAwal:
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
![Page 25: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/25.jpg)
Bubble Sort AscendingProcedure BubbleSortAsc(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 : tipedataAlgoritma:
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] nama_var_array[j-1] nama_var_array[j-1] temp endif
endforendfor
EndProcedure
![Page 26: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/26.jpg)
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
![Page 27: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/27.jpg)
Proses Maximum Sort (Ascending)
This is an array that will be sorted in Ascending way : 6 3 9 1 5
Step 1 : 6 3 9 1 5
6 3 9 1 5
6 3 9 1 5
6 3 9 1 5
6 3 9 1 5
6 3 5 1 9
j
j
j
jmax
max
max
max
max j
![Page 28: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/28.jpg)
Proses Maximum Sort (Ascending)
Step 2 : 6 3 5 1 9
6 3 5 1 9
6 3 5 1 9
6 3 5 1 9
1 3 5 6 9
j
j
jmax
max
max
max j
![Page 29: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/29.jpg)
Proses Maximum Sort (Ascending)
Step 3 : 1 3 5 6 9
1 3 5 6 9
1 3 5 6 9
1 3 5 6 9
Step 4 : 1 3 5 6 9
1 3 5 6 9
Array after sorted in descending way: 1 3 5 6 9
j
j
max
max
max
max
j
j
max
![Page 30: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/30.jpg)
MAXIMUM SORT ASC
ArrayAwal:
6 3 9 1 5
step 1
6 3 5 1 9step
2 1 3 5 6 9step
3 1 3 5 6 9step
4 1 3 5 6 9
![Page 31: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/31.jpg)
SELECTION SORT (lanjutan)
ArrayAwal:
6 3 9 1 5
SILAKAN DICOBA UNTUK MAXIMUM SORT DSC,
MINIMUM SORT ASC dan MINIMUM SORT DSC !!!
![Page 32: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/32.jpg)
OPERASI ARRAY STATIS
5. Penghancuran (destroy) array
Proses mengembalikan data array ke
nilai awal
![Page 33: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/33.jpg)
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 ……
![Page 34: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/34.jpg)
OPERASI ARRAY STATIS (lanjutan)
4. Pengurutan (Sorting)a. Bubble Sortb. Selection Sortc. Insertion Sortd. Radix Sort e. Merge Sortf. Quick Sort
TUGAS
![Page 35: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/35.jpg)
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)
Catatan:Kasus yang diambil setiap kelompok harus berbeda
![Page 36: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/36.jpg)
TUGAS
Buatlah Makalah per kelompok (Algoritma dan Program) dengan ketentuan sebagai berikut:1. Kasus (Asumsi + Batasan)2. Teori dari Metode Sorting yang
digunakan3. Algoritma dari kasus yang harus
diselesaikan4. Listing program5. Layar tampilan6. Kontribusi masing-masing anggota
kelompok
![Page 37: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/37.jpg)
TUGAS
Ketentuan:1. Buat menjadi 8 kelompok2. Tipe data yang digunakan minimal array of
record dengan minimal jumlah field = 33. 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
![Page 38: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/38.jpg)
Contoh Cover
Tugas Struktur Data ke-2
Sequential Search Tanpa SentinelDengan Insertion Sort secara Ascending
Oleh:Nama – NIM
Kelas : IF-……
{logo UNIKOM}
Program Studi Teknik InformatikaFakultas Teknik dan Ilmu Komputer
UNIKOM2013
![Page 39: Bab III - Array Statis](https://reader035.fdocument.pub/reader035/viewer/2022081719/5572144e497959fc0b943aa4/html5/thumbnails/39.jpg)
MATERI SELANJUTNYA
SINGLE LINKED LIST
See u next week...