KUG1A3 Algoritma& Pemrograman

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

BAB III – ARRAY STATIS II
Sorting (Pengurutan).
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
PERTEMUAN 6 Algoritma Presented by : Sity Aisyah, M.Kom
PENGURUTAN (SORTING).
PENCARIAN (SEARCHING)
Searching.
13 Searching (Pencarian) pada Array Satu Dimensi Bab
Algoritma Sorting Tenia Wahyuningrum.
CS1023 Pemrograman Komputer Lecture 20 Array / Tabel [2]
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman – Pertemuan 3 & 4 Sorting (Pengurutan)
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma Pencarian (searching)
Prodi S1-Sistem Komputer, F Teknik Elektro
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
KUG1C3 Dasar Pemrograman
KUG1A3 Algoritma& Pemrograman
CS1023 Pemrograman Komputer
Dasar Algoritma dan Pemrograman
CS1023 Pemrograman Komputer
CSG3F3/ Desain dan Analisis Algoritma
Algoritma dan Pemrograman Searching
Prodi S1-Sistem Komputer, F Teknik Elektro
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
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.
Algoritma dan Pemrograman Searching
PENGURUTAN (SORTING).
SORTING (Lanjut).
Pengurutan (Sorting).
CS1023 Pemrograman Komputer
Sorting.
Pengurutan pada Array Tim PHKI Modul Dasar Pemrograman
STRUKTUR DATA Array Statis.
STRUKTUR DATA Array Statis.
Algoritme dan Pemrograman
Metode pemecahan masalah
Teknik Informatika - Universitas Muhammadiyah Malang (UMM)
STRUKTUR DATA Array Statis.
Algoritma dan Pemrograman Sorting
KUG1E3/ Pemrograman Terstruktur 1
Review Array Sri Nurhayati, MT.
BINARY SEARCH Tim Algoritma Pemrograman Teknik Informatika
SEARCHING (PENCARIAN)
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
STRUKTUR DATA Array Statis.
Algoritma & Pemrograman 1
ARRAY STATIS Sri Nurhayati, MT.
Bubble sort.
Searching & Sorting Searching Sorting Oleh : Oman Somantri, S.Kom
Algoritma dan Pemrograman Searching
Sorting.
Sorting (Pengurutan).
SORTING ARRAY SESI 2.
ALGORITMA PENGURUTAN (SORTING)
Algoritma dan Pemrograman STRUKTUR PEMILIHAN (SELECTION) lanjutan
Review Array Sri Nurhayati, MT.
ARRAY STATIS Sri Nurhayati, MT.
Algoritma dan Pemrograman STRUKTUR ALGORITMA (3)
STUKTUR DATA “Sequential Search and Binary Search”
Pencarian (searching)
Sorting Dasar Pemrograman
CS1023 Pemrograman Komputer
Sorting (Pengurutan).
Transcript presentasi:

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

KUG1A3 Algoritma & Pemrograman Binary Search Teknik ini hanya dapat diterapkan pada data yang terurut Pencarian dilakukan dengan memeriksa titik tengah dari tabel. Pencarian dengan cara ini akan mengurangi waktu pencarian karena pembandingan harga direduksi secara logaritmik (dengan basis 2). Kecepatan pencarian sebanding dengan ln (N). KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Binary Search Cara kerja : Bandingkan harga yang dicari dengan harga elemen tengah ( titik tengah ) jika sama, berarti ketemu jika titik tengah lebih besar, cari pada belahan bagian kiri. jika titik tengahi lebih kecil, cari pada belahan bagian kanan. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Binary Search Misal : Dicari nilai 7 Data : {1,5,7,9,10, 12,17} 1 5 7 9 10 12 17 Awal Akhir Titik Tengah Akhir Titik Tengah = 7 ? = 7 ? Cari di sisi kanan TTengah > 7 TTengah < 7 Cari di sisi kiri KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Binary Search Misal : Dicari nilai 7 Data : {1,5,7,9,10, 12,17} 1 5 7 9 10 12 17 Akhir Titik Tengah = 7 ? Ya Awal Ketemu ! KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Binary Search Misal : Dicari nilai 11 Data : {1,5,7,9,10, 12,17} 1 5 7 9 10 12 17 Awal Titik Tengah Awal Akhir = 11 ? Titik Tengah = 11 ? TTengah <11 TTengah > 11 Cari di sisi kanan Cari di sisi kiri KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Binary Search Misal : Dicari nilai 7 Data : {1,5,7,9,10, 12,17} 1 5 7 9 10 12 17 Titik Tengah Awal = 11 ? Tidak Akhir Tidak Ketemu ! KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Kasus Algoritma akan menghasilkan sebuah variabel Found , yang berharga true jika X ada dalam tabel, false jika tidak. Selain itu, harga indeks indeks dimana X diketemukan pertama kalinya juga disimpan. Pencarian segera dihentikan begitu harga pertama diketemukan KUG1A3 Algoritma & Pemrograman

Solusi 1 : dengan Boolean Procedure BinSearc1(Input X: integer, N : integer; Output IX : integer, Found:boolean) Kamus Awal, Akhir, Tengah : integer Algoritma Awal  1; Akhir  N ; Found  False While Awal ≤ Akhir and not Found do Tengah  (Awal+Akhir) div 2 depend on TabInt, Tengah, X X = TabIntTengah : Found  true X < TabIntTengah : Akhir  Tengah - 1 X > TabIntTengah : Awal  Tengah +1 if Found then IX  Tengah else IX  0 Hanya dapat dipergunakan untuk data terurut membesar KUG1A3 Algoritma & Pemrograman

Solusi 1 : Pengulangan dengan Boolean Semua pemeriksaan dilakukan dengan cara yang sama di dalam badan pengulangan. Algoritma tersebut berlaku untuk elemen tabel yang terurut membesar, dan harus dimodifikasi untuk elemen tabel yang terurut mengecil. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Solusi 2 : Tanpa Boolean Procedure BinSearc2(Input X: integer, N : integer; Output IX : integer, Found:boolean) Kamus Awal, Akhir, Tengah : integer Algoritma Awal  1; Akhir  N ; Found  False Tengah  (Awal+Akhir) div 2 While (Awal < Akhir) and X TabIntTengah do depend on TabInt, Tengah, X X < TabIntTengah : Akhir  Tengah - 1 X > TabIntTengah : Awal  Tengah + 1 Tengah  (Awal + Akhir ) div 2 Found  (X = TabIntTengah) { if Found then…} Hanya dapat dipergunakan untuk data terurut membesar KUG1A3 Algoritma & Pemrograman 11

Solusi 2 : Pengulangan tanpa Boolean Pemeriksaan elemen terakhir dilakukan secara khusus di luar badan pengulangan. Perhatikan bagaimana indeks Tengah didefinisikan. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Contoh soal : UAS-SP06 Dengan menggunakan skema pencarian biner, jika diketahui data array yang akan dicari sebagai berikut : data = [ 2, 3, 9, 17, 18, 24, 36, 39, 42, 54, 60, 65, 79, 82, 94, 108] Jika nilai yang akan dicari adalah 42, maka pada langkah pencarian ke-3, nilai elemen batas awal dan batas akhir adalah : KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Latihan 2. UAS-0506 Dengan menggunakan skema pencarian biner, jika diketahui data array yang akan dicari sebagai berikut : data = [ 12, 15, 29, 37, 48, 54, 76, 89, 92] Nilai X yang akan dicari adalah 89 Maka pada akhir pencarian, nilai elemen batas awal dan batas akhir adalah: KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman PENGURUTAN ( SORTING) Merupakan suatu proses untuk mengatur posisi suatu data agar terurut Algoritma yang dibahas : Counting Sort Bubble Sort Insertion Sort Selection Sort KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman COUNTING SORT Merupakan metode pengurutan paling sederhana Syarat : Data merupakan bilangan bulat yang bernilai lebih besar atau sama dengan nol. Range data diketahui. Misal : Data ={1,4,3,4,5,4,5,5,4} Range : dari 1 sampai 5, semua integer KUG1A3 Algoritma & Pemrograman

CARA KERJA COUNTING SORT Buat array penghitung dengan domain array sama dengan range nilai pada data Cacah tiap elemen data ke elemen penghitung, dengan cara : ‘Masukkan’ nilai data ke elemen penghiutng yang nilai indeks = nilai data Ulang sampai semua data terhitung Buat array data dari array penghitung dengan mulai dari indeks terkecil sesuai dengan nilai array penghitung. KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Data ={ 1, 4, 3, 4, 5, 4, 5, 5, 4 } Buat array penghitung dengan domain array sama dengan range nilai pada data Hit : array[1..5] of integer Ada 5 elemen penghitung 1 2 3 4 5 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Cacah tiap elemen data ke elemen penghitung, dengan cara : ‘Masukkan’ nilai data ke elemen penghiutung yang nilai indeks = nilai data Data ={ 1, 4, 3, 4, 5, 4, 5, 5, 4 } 1 1 2 1 3 1 3 2 4 4 2 1 3 5 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman ILUSTRASI Buat array data dari array penghitung dengan mulai dari indeks terkecil sesuai dengan nilai array penghitung. 1 1 Data1 =1 { Tidak ada nilai 2 } 2 Data2 =3 1 3 4 Data3=4,Data4=4,Data5=4, Data6=4 4 3 Data7=5,Data8=5,Data9=5 5 KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Counting Sort Procedure CountSort(Input N,Min,Max : integer) { Mengurutkan dg counting sort } Kamus Hit : array [Min..Max] of integer; i,k : integer Algoritma { Inisialisasi array Hit ke 0 } i traversal [Min..Max] Hiti 0 { Mencacah nilai array Data } i traversal [1..N] Hit  Hit + 1 Hanya dapat dipergunakan untuk data terurut membesar Datai Datai KUG1A3 Algoritma & Pemrograman 21

KUG1A3 Algoritma & Pemrograman Counting Sort Algoritma ( lanj.) { Membentuk kembali array Data } k  0 i traversal [Min..Max] if Hiti  0 then repeat Hiti times k  k+1 Datak  i Hanya dapat dipergunakan untuk data terurut membesar KUG1A3 Algoritma & Pemrograman 22

KUG1A3 Algoritma & Pemrograman CATATAN COUNTING SORT Perhatikan cara mencacah Data :  Hit + 1 Hit Datai Datai  Indeks dari Hit adalah Datai KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman Contoh. UAS0506 Pengurutan menaik (ascending ) menggunakan counting sort , dengan array data adalah Data, 2 3 5 6 5 6 2 dan array penghitung adalah Hit, maka : A. Deklarasi array dari hit adalah : Hit : array[1..6] of integer B. Isi Hit pada pass kedua adalah : {1,1,0,0,0,0,1} C. Index Hit minimal adalah 2 dan maksimal adalah 6. D. Isi Hit setelah pass terakhir adalah : {2,1,0,2,2,0,0} E. Susunan akhir Data adalah : {2,2,3,0,5,5,6,6} KUG1A3 Algoritma & Pemrograman

KUG1A3 Algoritma & Pemrograman LATIHAN Buat prosedur Pascal untuk mencari nilai X pada suatu elemen terurut dg binary search. Untuk tiap tahap pencarian ( pass ), munculkan Awal, Akhir dan Titik Tengah. Buat prosedur untuk mengurutkan array Y ( 10 elemen ) dg counting search. Program utama : Masukkan 10 nilai : 90,3,7,30,40,70,40,60,2, 10 Urutkan dg counting sort Cari nilai 40, pd posisi berapa ? Cari nilai 100 ! KUG1A3 Algoritma & Pemrograman