Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014

Presentasi serupa


Presentasi berjudul: "Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014"— Transcript presentasi:

1 Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014
Binary search & Bubble Sort Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014

2 Metode Binary Search pada array terurut naik
Membaca array data Apabila array belum terurut, maka diurutkan dulu Menentukan data yang akan dicari Menentukan elemen tengah dari array. Letak posisis tengah dapat ditentukan dengan tengah=(n div 2)+1 Jika elemen tengah sama dengan data yang dicari, maka pencarian selesai Jika nilai elemen tengah tidak sama dengan data yang dicari: Nilai elemen tengah yang lebih besar dari yang dicari maka pencarian dilakukan pada setengah array ke-1 Nilai elemen tengah yang lebih kecil dari yang dicari maka pencarian dilakukan pada setengah array ke-2

3 Contoh menentukan elemen tengah
Dalam array ada 6 data terurut naik: i=1 s/d n A= Tengah=(n div 2)+1=(6 div 2)+1 =4 Element_tengah=A[Tengah]=A[4]=17 Jika banyak data genap maka posisi tengahnya tidak tepat ditengah

4 Contoh menentukan elemen tengah
Dalam array ada 7 data terurut naik: i=1 s/d n A= Tengah=(n div 2)+1 =(7 div 2)+1 =4 Element_tengah=A[Tengah]= A[4]=11 Jika banyak data ganjil maka posisi tengahnya tepat ditengah

5 Contoh Kasus: Dalam array ada 6 data terurut naik:
i=1 s/d n A= Asumsikan data array yang dimasukan sudah terurut naik Buatlah programnya!

6 Pseudocode Input (x) T=(n div 2)+1 Else i=t+1
Et=A[t] Ketemu=false If x=et then ketemu=true; posisi=t Else If x<et then i=1 while(ketemu=false)&(i<t)& (a[i<=x]) do if a[i]=x then ketemu=true; posisi=I else i=i+1 endif endwhile Else i=t+1 while (ketemu=false)&(i<=n)& (a[i<=x]) do if a[i]=x then ktemu=true; posisi=1 else i=i+1 endif endwhile endif endif if ketemu=false then write (“Data tidak ketemu”) Else write(“Data ditemukan”) output(posisi)

7 Buat kode program c++ berdasarkan pseudocode disamping!!
Tugas Lab: Buat kode program c++ berdasarkan pseudocode disamping!! Tulis program dg tulis tangan di kertas dobel folio Tempelkan print out output program { data[]: array } { c: elemen yang dicari } { k: index elemen bila ketemu } { l, m, r: penanda pembagian area array } k ← -1 l ← 0 r ← SIZE - 1 WHILE l <= r DO m ← l + (r – 1) / 2 IF c = data[m] THEN k ← m ELSE IF c < data[m] THEN r ← m – 1 ELSE IF c > data[m] THEN l ← m + 1 END WHILE

8 SORTING : BUBBLE SORT Selalu membandingkan dua data yang berdekatan
Ascending: Apabila data yang berada di sebelah kanannya bernilai lebih kecil maka ditukar sampai data terbesar ada di posisi akhir Contoh: 6 Buah data belum terurut

9 Pseudocode BUBBLE SORT ascending
For i=0 to (n-1) do for j=0 to (n-i) do if a[j] > a[j+1] then temp=a[j] a[j] = a[j+1] a[j+1]=temp end if end for endfor

10


Download ppt "Sulidar Fitri, M.Sc Lab Meeting 13 Maret 2014"

Presentasi serupa


Iklan oleh Google