Minggu, 29 Desember 2019

Teknik-teknik Searching dalam program c++

1. Tehnik Sequential Search / Linier Search
    Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih dahulu. Misalnya pada soal dibawah. Disitu kita mencari angka 43. angka 43 berada pada posisi ke -7. Dibandingkan 1 per 1 sampai data tersebut ditemukan/bandingkan dari posisi ke-1 sampai ke posisi ke-7.

     Berikut contoh penyelesaian soal Linier Searh
    Terdapat deret angka sebagai berikut :
80 , 45 , 21 , 100 , 23 ,  67 , 43 , 20 , 90 , 99 , 46 , 75 , 73 , 29 .
Buat algoritma untuk mencari angka 43 teknik Linear Search
Jawab:
80, 45, 21, 100, 23, 67, 43, 20, 90, 99, 46, 75, 73, 29
= 43
= 1
Nilai > Nilai ,   80 > 43  I = 1 + 1 = 2
Nilai > Nilai ,   45 > 43  I = 2 + 1 = 3
Nilai < Nilai ,   21 < 43  I = 3 + 1 = 4
Nilai I > Nilai X , 100 > 43 I = 4 + 1 = 5
Nilai < Nilai ,   23 < 43  I = 5 + 1 = 6
Nilai > Nilai ,   67 > 43  I = 6 + 1 = 7
Nilai I = Nilai X , 43 = 43

Jadi, I= 7 dan X =43

     Algoritmanya :

1.    Tentukan I = 1
2.    Ketika Nilai ( I ) < > X Maka Tambahkan I = I + 1
3.    Ulangi Langkah No.2 Sampai Nilai ( I ) = X
4.    Jika Nilai ( I ) = N + 1 Maka Cetak “ Pencarian Gagal “ Selai Itu Cetak “ Pencarian Sukses “ .

2. Pencarian Binary Search
1.   Metode pencarian yang diterapkan pada sekumpulan data yang sudah terurut (menaik maupun menurun)

2.   Metode ini digunakan untuk melakukan pencarian secara cepat dengan data yang sudah terurut.

Contoh soal:
Terdapat deret angka sebagai berikut:
12,16,20,25,29,34,45,56,60,67,70,78,89,93,99

Buat algoritma untuk mencari angka 45 dengan Teknik binary search.


Jawab :
12,16,20,25,29,34,45,56,60,67,70,78,89,93,99

X       = 45
L       = 1
H       = 15

L<=H, 1<=15
Mid        = (L+H) Div 2
= (1+15) Div 2
= 8
X<Mid, 45<56
H           = Mid -1
= 8-1
= 7
L<=H, 1<=7

Mid        = (L+H) Div 2
= (1+7) Div 2
= 4

X>Mid, 45>25
L            = Mid + 1
= 4 +1
= 5

Jadi L     = 5 dan H = 7   L<=H, 5<=7

Mid        = (L+H) div 2
= (5+7) div 2
= 6
X>Mid, 45>35

Pencarian Gagal

Penjelasan :
1.   Tentukan posisi awal = 0 dan posisi akhir = N-1.
2.   Hitung posisi tengah = (posisi awal + posisi akhir)/2.
3.   Bandingkan data yang dicari dengan elemen posisi tengah.
4.   Jika sama maka catat posisi dan cetak kemudian berhenti.
5.   Jika lebih besar maka akan dilakukan pencarian kembali kebagian kanan dengan posisi awal posisi tengah +1 dan posisi akhir tetap kemudian ulangi mulai poin 2.
Jika lebih kecil maka akan di lakukan pencarian kembali ke bagian kiri dengan nilai posisi awal tetap dan nilai posisi akhir = posisi tengah-1 kemudian ulangi mulai poin 2.


1.   Best Case Adalah jika data yang dicari terletak di indeks array terdepan (elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar (minimal)....

Contoh soal :
Terdapat Himpunan .A yang berisi 5 buah bilangan telah disusun secara increasing dengan A[0]=5, A[1]=10, A[2]=15, A[3]=20, A[2]=25. Tentukan/Cari Bilangan Max & Min serta jumlah operasi perbandingan yang dilakukan (Keadaan Best Case)

Jawab :
A[0]=5, A[1]=10, A[2]=15, A[3]=20, A[4]=25
Max =Min=5

1.   If A[1]> max 
A[1]>5
10>5 ? ya max = 10

2.   If A[2]> max 
A[2]>10
15>10? ya, max = 15
3.   If A[3]> max 
A[3]>15
         20>15? ya, max = 20

4.   If A[4]> max
A[4]>20
         25>20 ? ya, max = 25


Jadi, Max= 25 Min=5, dan Jumlah operasi perbandingannya sebanyak n-1 ( 5-1 ) = 4 kali



Penjelasan :
Keadaan yang tercapai jika elemen pada himpunan A disusun secara
increasing (menaik). Dengan perbandingan waktu n-1 satuan 
operasi.

4.Tekhnik Worst Caes
     Tekhnik Worst Caes adalah jika data yang dicari terletak di indeks array terakhir (elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama (maksimal).

              Contoh Soal :

     Terdapat himpunan A yang berisi 5 buah bilangan telah disusun
secara increasing dengan A[0]=30, A[1]=25, A[2]=20 A[3]=15, A[2]=10.
Tentukan/Cari Bilangan Max & Min serta jumlah operasi perbandingan
yang dilakukan (keadaan worst case).

     Jawab :
     A[0]=30, A[1]=25, A[2]=20, A[3]=15, A[4]=10

     Max =Min=30 
     For i = 2 to 5
1.   If A[1]> max
              A[1]>30
              25>30 ? tidak max = 30

2.   Else If A[1]< min  A[1]<30
              25<5 ? ya, min = 25

3.   If A[2]> max  A[2]>30
              20>30 ? tidak, max = 30

4.   Else If A[2]< min
              A[2]<30
              20<30 ? ya, min = 20

5.   If A[3]> max  A[3]>30
15>30? tidak, max = 30

         6.   Else If A[3]< min  A[3]<30
              15<30 ? ya, min = 15

7.   If A[4] > max  A[4] > 30
              10 > 30 ? Tidak, max =30

8.   else if A[4] < min  A[4] < 30
              10 < 30 ? Ya, min =10

Jadi, Max= 30 Min=10, dan Jumlah operasi perbandingannya
sebanyak 2 (n-1)= 2 ( 5-1 ) = 8 kali

5.   Tekhnik Averaget Case
Jika pencarian elemen Maxmin dilakukan pada elemen dalam
himpunan yang tersusun secara acak (tidak decreasing/tidak
increasing) jumlah operasi. Perbandingan yang dilakukan adalah rata-
rata waktu tempuh best case dan worst case yaitu ½ [(n-1) + 2(n-1)]
(3n/2-1)kali.

Contoh soal :

Terdapat himpunan A yang berisi 5 buah bilangan telah disusun
secara increasing dengan A[0]=25, A[1]=20, A[2]=35
A[3]=30,A[4]=10. Tentukan/Cari Bilangan Max & Min serta jumlah
operasi perbandingan yang dilakukan (keadaan average case)

Jawab :

Max =Min=25 
For i = 2 to 5

1.   If A[1]> max
A[1]>25
20>25 ? tidak max = 25

2.   Else If A[1]< min  A[1]<25
20<25 ? ya, min = 20

3.   If A[2]> max  A[2]>25
35>25 ? ya, max = 35

4.   If A[3]> max
A[3]>35
30>35 ? tidak, max = 35

5.   Else If A[3]< min  A[3]<35
30<35 ? ya, min = 30

6.   If A[4]> max  A[4]>35
10>35 ? tidak, max = 35

7.   Else If A[4]< min  A[4]<35
10<35 ? ya, min = 35
Elemen Max = 35 dan Elemen Min =10
½ [ (n-1) + 2 (n-1) ] = ( 3n/2 -1 )
= ( 3.5/2 -1 )
= ( 15/2-1)
= (15/2 – ½)
= (14/2)
=7

Jadi operasi perbandingan sebanyak 7 kali



6.   Tekhnik Searching D dan C
Tentukan Elemen MaxMin suatu array A yang terdiri 11 bilangan:

A[1]=33 A[4]= 88 A[7]= 27 A[10]= -2

A[2]= -7 A[5]= 25 A[8]= -9 A[11]= 10

A[3]= 23 A[6]= 80 A[9]= 44




Tidak ada komentar:

Posting Komentar

PERETASAN DENGAN MENGGUNAKAN LOGIC BOMB OLEH DONALD BURLESON ( Cyber sabotage and extortion)

  MAKALAH PERETASAN DENGAN MENGGUNAKAN LOGIC BOMB OLEH DONALD BURLESON ( Cyber sabotage and extortion ) Diajukan untuk memenuhi Tugas ...