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 3 : Binary Searching

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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 Hanya dapat dipergunakan untuk data terurut membesar Datai Datai KUG1A3 Algoritma & Pemrograman 21

22 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

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

24 KUG1A3 Algoritma & Pemrograman
Contoh. UAS0506 Pengurutan menaik (ascending ) menggunakan counting sort , dengan array data adalah Data, 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

25 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


Download ppt "KUG1A3 Algoritma& Pemrograman"

Presentasi serupa


Iklan oleh Google