KUG1A3 Algoritma& Pemrograman

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Sorting (Pengurutan).
Hanya dipergunakan untuk kepentingan pengajaran di lingkungan Telkom Applied Science School MI1264 Dasar Algoritma dan.
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
ALGORITMA Lecture Pengulangan.
PENCARIAN (SEARCHING)
Chapter 9 SEARCHING ALGORITHM Program Studi Ekstensi DTE FTUI Slides © 2007.
Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Dasar Pemrograman ARRAY/LARIK.
Algoritma dan Pemrograman
Metode Perancangan Program
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Prodi S1-Sistem Komputer, F Teknik Elektro
Array (bagian 2).
Algoritma Pencarian (searching)
KUG1A3 Algoritma& Pemrograman
Prodi S1-Sistem Komputer, F Teknik Elektro
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
4. Linked List (List Linier)
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
KUG1A3 Algoritma& Pemrograman
CS1023 Pemrograman Komputer
Dasar Algoritma dan Pemrograman
CS1023 Pemrograman Komputer
CS1023 Pemrograman Komputer
Algoritma dan Pemrograman Searching
Prodi S1-Sistem Komputer, F Teknik Elektro
Pencarian pada Array Tim PHKI Modul Dasar Pemrograman
KUG1C3 Dasar Algoritma & Pemrograman
KUG1A3 Algoritma& Pemrograman
Dasar algoritma dan pemrograman
Prodi S1-Sistem Komputer, F Teknik Elektro
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Searching.
Algoritma dan Pemrograman Searching
PENGURUTAN (SORTING).
Array Tim PHKI Modul Dasar Pemrograman Fakultas Ilmu Komputer
CS1023 Pemrograman Komputer
Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman
Array 1.
STRUKTUR DATA Array Statis.
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman
Array/Larik.
STRUKTUR DATA Array Statis.
Teknik Informatika Politeknik Negeri Batam
Algorithms and Programming Searching
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Pemrograman Subrutin (Function)
ARRAY.
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
STRUKTUR DATA Array Statis.
Algoritma & Pemrograman 1
ARRAY STATIS Sri Nurhayati, MT.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Algoritma dan Pemrograman Searching
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
Linked List Oleh: Tim Struktur Data IF - UNIKOM.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
Pencarian (searching)
KUG1E3/ Pemrograman Terstruktur 1
CS1023 Pemrograman Komputer
Dasar Pemrograman Percabangan Nurul Anisa Sri Winarsih, M. CS
Transcript presentasi:

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

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

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

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

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

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

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

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

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

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

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

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 1..10. datamax=25, elemen : 20,10,5,10, 100, 50, 75,10,90,10. KUG1A3 Algoritma & Pemrograman

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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