Senin, 14 Desember 2015

TUGAS 9 (SEARCHING)

1.   Jelaskan pengertian searching
Jawab :
adalah proses pencarian data dari sekumpulan data yang sudah ada. Pencarian data sering juga disebut dengan table look-up atau store and retrieval information. Hasil dari suatu pencarian dapat bernilai salah (tidak ketemu atau tidak sukses) atau benar (ketemu atau sukses). Untuk data yang tidak ketemu biasanya ada prosedur tersendiri untuk menambah atau menyisipkan data yang belum ada tersebut.

2.   Sebutkan kekurangan searching
Jawab :
¨      Dengan kelebihan yang dimilikinya, ternyata mesin pencari ini jadi bidikan para spamer untuk menampilkan iklan-iklan yang tidak diperlukan. Mereka memanfaatkan setiap celah yang ada pada sistem algoritma Google untuk memaksa iklan mereka tampil pada halaman terdepan. Maka, pencarian pun terasa terganggu.

¨      Pencarian yang lama dibandingkan dengan mesin pencari lainnya. Halaman pencarian hanya dibatasi dengan sebuah garis sehingga membingungkan si pengguna. Pada link-link yang tidak berguna terkadang masih terlihat dalam beberapa hari, sehingga terlihat kurang aktual. Hal ini menunjukkan tidak cepatnya Alltheweb melukan update.

3.   Sebutkan dan pegertian contoh – contoh search engine
Jawab :
Search engine adalah aplikasi yang disediakan oleh lembaga komersial tertentu yang menyediakan jasa di bidang internet. Saat kita ingin mencari suatu informasi kita pasti mengunjungi search engine atau situs mesin pencari yang paling di kenal saat ini adalah Google. Tapi selain itu masih banyak lagi search engine yang ada di dunia.

Contohnya :
ü  Google (www.google.com)
ü  Yahoo! (www.yahoo.com)
ü  Alltheweb (www.alltheweb.com)
ü  AskJeeves (http://www.ask.com)
ü  AltaVista (www.altavista.com)
ü  Lycos (http://www.lycos.com)

4.   Buatlah Algoritma dari Binary search
Jawab :
program binary_search;
uses crt;
var
a : array[1..10] of byte;
low, high, mid, n, i, x : byte;
found : boolean;
begin
// n menunjukkan banyaknya data yang hendak dimasukkan ke dalam array
n := 10;
low:=1;
high:=n;
found := false;
clrscr;
for i:=1 to 10 do
begin
write('Angka ke- ',i);
write(' : ');
readln(a[i]);
end;
write('Masukkan target yang dicari : ');
readln(x);
while ((low <= high) and (found = false)) do
begin
mid := low + ((high-low) div 2);
if (a[mid] = x) then found:=true
else
if (a[mid] x) then
high := mid;
end;
writeln(‘Data diketemukan di index ke : ‘,mid);
readln;
end.

5.   Buatlah 1 contoh program serching
Jawab :
searching
searching . . . .mencari angka data ditemukan

#include <conio.h>
#include <iostream.h>
main(){
int c,i,posisi;
int A[20]={3,2,4,10,20,1,5,8,7,9,6,5,11,12,14,13,16,15,17,19};


cout<<"Data : ";
for(i=0;i<20;i++){
 cout<<A[i]<<" ";
}

cout<<"\nData yang ingin dicari : ";
cin>>c;
i=0;
posisi=0;
while(i<19 && A[i]!=c){
 i++;
}
if (A[i]!=c){
 cout<<"Maaf data yang dicari tidak ada";
}else if(posisi=i+1)
   cout<<"ditemukan pada posisi ke "<<posisi;
getch();
}

                                 



Senin, 07 Desember 2015

TUGAS 8 (QUEUE ATAU ANTRIAN MAX 6)

Queue atau Antrian
Max 6 serta contoh programnya

Queue / Antrian
Penghapusan data head  A        B        C        D
                             0        1        2        3        4        (5)
                                                                             N=6
                                                                             max -1= n-1
                                                                                       = 6-1
                                                                                       =(5) pemasukan tail data

í Kosong LAWANNYA ada isinya
í Penuh LAWANNYA ada isinya

A        B        C        D        E
0        1        2        3        4
Head           tail    tail    tail

*menambahkan elemen D          *menambahkan elemen E
*menghapus elemen A

Tail    =tail + 1                tail    =tail+1                  -DEUEVE (A)
          =2+1                               =3+1                      -tail  =tail -1
          =3                                   =4                         =4-1 = 3
Enqueue (D)                    Enqueueu (E)
          E                                                        B        C        D
          3        4        5                                     0        1        2
                                      Tail=3                                                          headnya= 0








SOAL :

Berikan gambaran / ilustrasi dari kasus antrian berikut :
a)   Diketahui suatu antrian / queue dengan max =6 ?
b)   Lakukan enqueue 4 elemen ke dalam antrian, dimanakah posisi haid dan tail?
c)    Kemudian lakukan dequeue 2 elemen dari antrian maka dimana posisi head dan tail ?
d)   Dari keadaan di atas bagaimanakah kondisi isfull dan isempety nya ?

Penyelesaian :

 #include <iostream.h>  
#include <conio.h>  
#define MAX 6  
    
typedef struct{  
int data[MAX];  
int head;  
int tail;  
}  
Queue;  
Queue antrian;  
void Create(){  
antrianantrian.head=antrian.tail=-1;  
}  
    
 int IsEmpty(){  
  if(antrian.tail==-1)  
  return 1;  
else  
return 0;  
  }  
  
int IsFull(){  
if (antrian.tail==MAX-1) return 1;  
  else return 0;  
}  
    
//fungsi memasukkan data  
    
  void Enqueue(int data){  
if(IsEmpty()==1){  
antrianantrian.head=antrian.tail=0;  
antrian.data[antrian.tail]=data;  
    
cout << "\t Silahkan Masuk !! \n" ;  
cin >> antrian.data[antrian.tail];  
  void Tampil();  
{  
  if(IsEmpty()==0){  
  for(int i=antrian.head;i<=antrian.tail;i++){  
  cout << antrian.data[i];  
}  
}else  
  cout<< "data kosong!";  
};  
}else  
if(IsFull()==0){  
  antrian.tail++;  
antrian.data[antrian.tail]=data;  
cout << "\t Silahkan Masuk !! \n" << antrian.data[antrian.tail];  
}  
    
  }  
    
int Dequeue(){  
  int i;  
  int e = antrian.data[antrian.head];  
  for(i=antrian.head;i<=antrian.tail-1;i++){  
  antrian.data[i]= antrian.data[i+1];  
  }  
  antrian.tail--;  
  return e;  
  }  
    
  void clear(){  
antrianantrian.head=antrian.tail=-1;  
  cout << "Data Clear" ;  
  }  
  void Tampil()  
  { int jum;  
  jum=0;  
    
  if(IsEmpty()==0){  
for(int i=antrian.head;i<=antrian.tail;i++){  
jum++;  
    
  cout << antrian.data[i]<< "\n";  
  }  
cout << "\njumlah yang mengantri saat ini : "<< jum << "orang";  
  }  
  else  
  cout << "Data Kosong!\n";  
  }  
    
  //sebagai nasabah  
void nasabah()  
{  
  int data;  
  char lagi;  
  do{  
  clrscr();  
  cout << "\t+=================================+\n";  
  cout << "\t| menu nasabah |\n";  
  cout << "\t+=================================|\n";  
  cout << "\t| tekan (a) untuk masukkan data |\n";  
  cout << "\t| tekan (b) melihat data antrian |\n";  
cout << "\t| tekan (x) keluar |\n";  
  cout << "\t+=================================|\n";  
  cout << "pilihan : ";  
  cin >> lagi;  
  if((lagi=='x') || (lagi=='X'))  
  { cout << "terima kasih\n" ;  
    
  break;  
  }  
    
  switch(lagi)  
  {  
case 'a':  
  cout << "masukkan data: " << &data << " ";  
Enqueue(data);  
  break;  
case 'b': Tampil();  
break;  
    
  }getch();  
  } while(lagi !='x');  
getch();  
  }  
    
  //memasukkan password  
  void password()  
  {  
  char nama[20], id[10], password[4];  
  int i;  
{  
  clrscr();  
    
  atas:  
  clrscr();  
  cout << "\t\t+===============================================+\n";  
  cout << "\t\t| S E L A M A T D A T A N G |\n";  
  cout << "\t\t| jika anda admin dari teller |\n";  
  cout << "\t\t|Silahkan masukkan User Name & 3 digit Password |\n";  
  cout << "\t\t+===============================================+\n";  
  cout << "\t\t UserName : " ; cin>>nama;  
  cout << "\t\t No. Identitas : "; cin>>id;  
  cout << "\t\t Password : " ;  
 for(i=0; i<=2; i++)  
  {password[i]=getch();  
  cout << "\bX";  
  }  
  cout << "\n\t\t+=============================================+\n";  
  if (strcmp(password,"aaa")==0)  
  {  
  cout << "\n\n\t\t Anda Masuk Sebagai TEllER\n";  
  cout << "\t\t User :" << nama << "\n";  
  cout << "\t\t No. Identitas : " << id << "\n";  
  cout << "\n\n\t\tTekan Sembarang tombol untuk ke menu teller..!";  
  goto bawah;  
  }  
  else  
  {  
  cout << "\t\t\tmaaf password salah!!!\n" ;  
  cout << "\t\tketik sembarang tombol untuk kembali ke menu: ";  
  goto atas;  
    
 }  
  bawah:  
  getch();  
  }  
  }  
    
  //void teller  
  void teller()  
  {char menu;  
  password();  
  do{  
  clrscr();  
  cout << "\t\t+=================================+\n";  
  cout << "\t\t| menu pilihan untuk TELLER |\n";  
  cout << "\t\t+=================================+\n";  
  cout << "\t\t| tekan (a) untuk menghapus data |\n";  
  cout << "\t\t| tekan (b) melihat data antrian |\n";  
  cout << "\t\t| tekan (c) untuk mereset |\n";  
  cout << "\t\t| tekan (x) untuk keluar |\n";  
  cout << "\t\t+=================================+\n";  
  cout << "pilihan : " ;cin>> menu;  
  if((menu=='x') || (menu=='X'))  
  { cout << "terima kasih\n";  
    
  break;  
  }  
    
  switch(menu)  
  {  
  case 'a': cout << "Elemen yang keluar : ";  
  Dequeue();  
  break;  
  case 'b': Tampil();  
  break;  
  case 'c': clear();  
  break;  
  }getch();  
  } while(menu !='x');  
    
  }  
    
  void main(){  
  char pil;  
    
  Create();  
  do{  
  clrscr();  
 //fflush(stdin);  
  cout << "\t\t+=====================================+\n";  
  cout << "\t\t| Bank Mandiri |\n";  
  cout << "\t\t| jalan Menukan |\n";  
  cout << "\t\t| Yoggyakarta |\n";  
  cout << "\t\t+=====================================+\n";  
  cout << "\t\t| tekan (n) untuk Nasabah |\n";  
  cout << "\t\t| tekan (t) untuk Teller |\n";  
  cout << "\t\t| tekan (k) keluar dari program |\n";  
  cout << "\t\t+=====================================+\n";  
  cout << "pilihan : ";  
  cin >> pil;  
  if((pil=='k') || (pil=='k'))  
 { cout << "terima kasih";  
  break;  
  }  
    
  switch(pil)  
  {  
  case 'n': nasabah();  
 break;  
  case 't': teller();  
  break;  
    
 }  
    
  }while(pil!='k');  
  }