bab iii - array statis

39
ARRAY STATIS (lanjutan) DIKTAT STRUKTUR DATA Oleh: Tim Struktur Data IF

Upload: adi-farhan

Post on 14-Aug-2015

116 views

Category:

Documents


4 download

DESCRIPTION

array

TRANSCRIPT

Page 1: Bab III - Array Statis

ARRAY STATIS (lanjutan)

DIKTAT STRUKTUR DATA

Oleh:Tim Struktur Data IF

Page 2: Bab III - Array Statis

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

Metode Pencarian1. Sequential / Linear Search

2. Binary Search

Page 4: Bab III - Array Statis

Metode Pencarian (lanjutan)Sequential / Linear

Search:

1. Tanpa Boolean

a. Tanpa Sentinel

b. Dengan Sentinel

2. Dengan Boolean

Page 5: Bab III - Array Statis

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

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

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

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

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

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

SEQUENTIAL SEARCH (lanjutan)

Dengan boolean:

1. Menggunakan variabel

boolean

2. Menghasilkan nilai TRUE

atau FALSE di akhir

pencarian

Page 12: Bab III - Array Statis

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

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

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

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

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

KASUS BINARY SEARCH

Angka 7[2]

IbIak

Jadi:Angka 7 ditemukan pada indeks ke- 2

Page 18: Bab III - Array Statis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OPERASI ARRAY STATIS

5. Penghancuran (destroy) array

Proses mengembalikan data array ke

nilai awal

Page 33: Bab III - Array Statis

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

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

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

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

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

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

MATERI SELANJUTNYA

SINGLE LINKED LIST

See u next week...