Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

KUG1A3 Algoritma& Pemrograman

Presentasi serupa


Presentasi berjudul: "KUG1A3 Algoritma& Pemrograman"— Transcript presentasi:

1 KUG1A3 Algoritma& Pemrograman
Burhanuddin D Prodi S1-Sistem Komputer, F Teknik Elektro Universitas Telkom Presentasi Array 2 : Searching

2 KUG1A3 Algoritma & Pemrograman
Topik Bahasan Pemrosesan Sequential Pencarian pada Array Sequential Boolean Sequential tanpa Bolean Sequensial dengan Sentinel KUG1A3 Algoritma & Pemrograman

3 Pemrosesan Sequential
Akses dengan memanfaatkan keterurutan indeks. Elemen pertama adalah elemen tabel dengan indeks terkecil/terbesar, Elemen berikut dicapai melalui suksesor indeks / indeks berikutnya Model akses adalah model akses sekuensial tanpa mark Kondisi berhenti : jika indeks sudah mencapai harga indeks yang terbesar KUG1A3 Algoritma & Pemrograman

4 Skema Pemrosesan Tabel /Array
Inisialisasi i  NMin { Elemen pertama} While i ≤ NMax do Proses (Ti) i  i + 1 Terminasi Inisialisasi i traversal [NMin..NMax] Proses (Ti) Terminasi KUG1A3 Algoritma & Pemrograman

5 Contoh 1 : Mengisi array dari input
Program IsiTabel { Mengisi array dr input } Kamus constant NMin : integer = 1 constant NMax: integer = 100 i : integer [NMin..NMax] T : array [NMin..NMax] of integer N : integer Algoritma i  NMin { Elemen pertama} While i ≤ NMax do input (Ti) i  i + 1 KUG1A3 Algoritma & Pemrograman

6 Contoh 2 : Menulis tabel dari indeks terbesar
Program TulisTabel { Menulis array dr indeks terbesar } Kamus constant NMin : integer = 1 constant NMax: integer = 100 i : integer [NMin..NMax] T : array [NMin..NMax] of integer N : integer Algoritma i traversal [NMax..NMin] output (Ti) KUG1A3 Algoritma & Pemrograman

7 KUG1A3 Algoritma & Pemrograman
Latihan I Buat penelusuran dari algoritma berikut i traversal [1..10] TabInti  i*10 i traversal [5..1] if i mod 2=0 then TabInti  TabInt10-i else TabInti  TabInti – i output (TabInti) K  5 Output (TabIntK+5 div TabIntK ) KUG1A3 Algoritma & Pemrograman

8 KUG1A3 Algoritma & Pemrograman
Latihan I Buat penelusuran dari algoritma berikut i traversal [1..10] TabInti  i*10 i traversal [5..1] if i mod 2=0 then TabInti  TabInt10-i else TabInti  TabInti – i output (TabInti) i TabInti i TabInti 1 10 6 60 2 20 7 70 3 30 8 80 4 40 9 90 5 50 10 100 KUG1A3 Algoritma & Pemrograman

9 KUG1A3 Algoritma & Pemrograman
Latihan I Buat penelusuran dari algoritma berikut i traversal [1..10] TabInti  i*10 i traversal [5..1] if i mod 2=0 then TabInti  TabInt10-i else TabInti  TabInti – i output (TabInti) i TabInti i TabInti 1 10 6 60 2 20 7 70 3 30 8 80 4 40 9 90 5 50 10 100 i mod 2 =0 i YTabInti TTabInti 5 50-5=45 T5 4 TabInt6=60 T4 3 30-3=27 T3 2 TabInt8=80 T2 1 10-1=9 T1 KUG1A3 Algoritma & Pemrograman

10 KUG1A3 Algoritma & Pemrograman
Latihan I {i traversal [10..1]} output (TabInti ) K  5 Output (TabIntK+5 div TabIntK ) i TabInti 5 45 4 60 3 27 2 80 1 9 KUG1A3 Algoritma & Pemrograman

11 KUG1A3 Algoritma & Pemrograman
Latihan I i TabInti {i traversal [5..1]} output (TabInti ) K  5 Output (TabIntK+5 div TabIntK ) 5 45 4 60 3 27 2 80 1 9 TabInt10 div TabInt5 = 100 div 45 = 2 Output (2) KUG1A3 Algoritma & Pemrograman

12 KUG1A3 Algoritma & Pemrograman
Latihan II Buat prosedur dengan algoritma untuk mencacah elemen array yang lebih besar dari Datamax ( dari user ). Cacah juga elemen array yang bernilai 10. Hitung nilai rata-rata dari array tersebut. Cari juga nilai maksimal dari array tersebut. Elemen array diasumsikan sudah terisi, dengan domain array dari datamax=25, elemen : 20,10,5,10, 100, 50, 75,10,90,10. KUG1A3 Algoritma & Pemrograman

13 KUG1A3 Algoritma & Pemrograman
Pencarian pada Array Proses mencari suatu nilai yang dilakukan terhadap sekumpulan data pada tabel. Ada beberapa variasi pencarian, dengan kecepatan pencarian yang berbeda. Teknik pencarian yang dibahas : Sequential Search ( dg/tanpa boolean ) Binary Search KUG1A3 Algoritma & Pemrograman

14 KUG1A3 Algoritma & Pemrograman
Sequential Search Metode pencarian yang dilakukan dengan menguji nilai masing-masing elemen satu per satu Pencarian segera dihentikan begitu harga pertama diketemukan, atau tergantung dari kebutuhan Pencarian dilakukan mulai indeks terendah atau tertinggi KUG1A3 Algoritma & Pemrograman

15 Sequential Search – lanj.
Sebuah tabel integer TabInt [1..N]. Tuliskanlah algoritma untuk mencari nilai X dalam TabInt, mulai dari elemen pertama sampai ketemu atau sampai elemen terakhir. Algoritma akan menghasilkan harga indeks IX ketika ditemukan pertama kalinya. IX diberi harga 0 jika pencarian tidak ketemu. Contoh: N = 8, TabInt berisi : { 1, 3, 5, -8, 12, 90, 3, 5} X = 5 Pemeriksaan dilakukan terhadap Output : IX = 3 {1,3,5} KUG1A3 Algoritma & Pemrograman

16 Alg 1 a: Sequential tanpa Boolean
Procedure Seq1a ( Input N,X:integer, Output IX : integer ) { Mencari nilai X pada array TabInt Kamus i : integer [1..NMax] Algoritma i  1 while i< N and TabIntiX do i  i + 1 if TabInti = X then IX  i else IX 0 TIDAK KETEMU ! KUG1A3 Algoritma & Pemrograman

17 KUG1A3 Algoritma & Pemrograman
Algoritma 1a Elemen tabel yang terakhir diperiksa secara khusus. Jika nilainya sama dengan X, maka IX akan diisi indeks elemen tersebut Jika tidak sama, IX akan diisi nol. Jika IX tidak sama dengan nol, berarti nilaiX ditemukan. Proses pada badan pengulangan hanya untuk “maju” /meneruskan indeks berikut. Pencarian dihentikan karena ketemu, atau karena sudah tidak dapat “maju”. KUG1A3 Algoritma & Pemrograman

18 KUG1A3 Algoritma & Pemrograman
Algoritma 1c Serupa dengan Alg 1a Jika nilainya sama dengan X, nilai variabel Found diisi true. Ini berarti nilai X ditemukan. Tidak memberikan nilai indeks elemen yang ditemukan Pencarian dihentikan karena ketemu, atau karena sudah tidak dapat “maju”. KUG1A3 Algoritma & Pemrograman

19 Alg 1b : Sequential dengan Boolean
Procedure Seq1b ( Input N,X:integer, Output Found : boolean ) { Sama dengan Alg 1a, menghasilkan nilai true pada Found, tetapi indeks tidak diketahui } Kamus i : integer [1..NMax] Algoritma i  1 while i<N and TabIntiX do i  i + 1 Found  TabInti =X KUG1A3 Algoritma & Pemrograman

20 KUG1A3 Algoritma & Pemrograman
Algoritma 1c Gabungan 1a dan 1b Pengujian elemen array dengan X : Jika nilainya sama, nilai variabel Found diisi true. Ini berarti nilai X ditemukan. Jika tidak, maju /meneruskan indeks berikut. Jika ditemukan : IX akan diisi indeks elemen tersebut Jika tidak, IX akan diisi nol. Pencarian dihentikan karena ketemu, atau karena sudah tidak dapat “maju”. KUG1A3 Algoritma & Pemrograman

21 Alg 1c : Sequential dengan Boolean
Procedure Seq1c ( Input N,X:integer, Output IX : integer, Output Found : boolean ) { Sama dengan Alg 1b, namun indeks diketahui } Kamus i : integer [1..NMax] Algoritma Found  false i  1 while i≤N and not Found do if TabInti = X then Found  true else i  i+1 if Found then IX  I IX  0 KUG1A3 Algoritma & Pemrograman

22 Sequential pada Tabel Terurut
Mencari nilai pada array yang sudah terurut Karena terurut, maka pencarian dihentikan jika nilai elemen lebih besar dari nilai yang dicari Contoh N = 8, TabInt berisi : { 1, 3, 5, 8, 12, 90, 311, } X= 5 Pemeriksaan dilakukan terhadap {1,3,5} Output : IX = 3 N = 7, TabInt berisi : { 11, 30, 50, 83,99,123} X = 70 Pemeriksaan dilakukan terhadap {11,30,50,83} Output : IX = 0 KUG1A3 Algoritma & Pemrograman

23 Alg 2 : Sequential dgTabel Terurut
Procedure Seq2 ( Input N,X:integer, Output IX : integer ) Kamus i : integer [1..NMax] Algoritma i  1 while I < N and TabInti<X do i  i+1 if TabInti=X then IX  i else IX  0 KUG1A3 Algoritma & Pemrograman

24 Sequential Search dengan Sentinel
Sentinel : suatu nilai yang akan menghentikan pengulangan Dipasang suatu elemen fiktif pada tabel yang menjadi sentinel Diletakkan di depan jika pencarian mundur Diletakkan di akhir jika pencarian maju Elemen fiktif ini harganya adalah sama dengan elemen yang dicari. KUG1A3 Algoritma & Pemrograman

25 Sequential Search dengan Sentinel
Jika nilai ditemukan, diperiksa lagi apakah ketemunya : di antara elemen tabel yang sebenarnya Berarti nilai yang dicari ditemukan pada elemen terakhir Berarti tidak ketemu, karena elemen fiktif/sentinel KUG1A3 Algoritma & Pemrograman

26 Alg 3 : Sequential dengan Sentinel
Procedure Seq3 ( Input N,X:integer, Output IX : integer) { Sentinel diletakkan setelah elemen terakhir } Kamus i : integer [1..NMax] Algoritma TabInt(NMax+1)  X { Memasang sentinel} i  1 while TabInti  X do i  i+1 if i < (N+1) then IX  i else IX  0 KUG1A3 Algoritma & Pemrograman

27 KUG1A3 Algoritma & Pemrograman
Latihan III Buat program Pascal untuk mencari nilai terbesar dari array TabInt ( integer) yang memiliki indeks kelipatan 3. Cari juga nilai array terbesar yang berkelipatan 3. Array dibaca oleh program. Keluaran adalah hasil-hasil tersebut beserta indeks array terbesar kelipatan 3. KUG1A3 Algoritma & Pemrograman

28 KUG1A3 Algoritma & Pemrograman
Latihan IV Buat program Pascal untuk membaca record Mahasiswa yang terdiri dari nama,nim, kelas. Cari nim terbesar dari array tersebut. KUG1A3 Algoritma & Pemrograman


Download ppt "KUG1A3 Algoritma& Pemrograman"

Presentasi serupa


Iklan oleh Google