Senin, 21 Desember 2015

TUGAS 11 (SHORTING)

1.   Apa yg dimaksud dengan Sorting dan searching ?
Jawab :
searching merupakan salah satu operasi dasar dalam ilmu komputer. Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan (increasing atau decreasing). Searching merupakan suatu proses (operasi) untuk mencari lokasi dari data yang diberikan dalam suatu urutan data.

2.   Jelaskan pengertian dari Bubble Sort ?
Jawab :
Sort merupakan cara pengurutan yang sederhana. Konsep dari ide dasarnya adalah seperti “gelembung air” untuk elemen struktur data yang semestinya berada pada posisi awal.

3.   Apa yang dimaksud dengan Selection Sort ?
Jawab :
sort yang melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data.

4.   Jelaskan pengertian dari insertion sort , merge sort ,Quick sort ?
Jawab :
í Insertion sort
adalah metode dengan cara menyisipkan elemen larik pada posisi yang tepat.Cara kerja insertion sort, Pertama-tama, dilakukan iterasi, dimana di setiap iterasi insertion sort memindahkan nilai elemen,kemudian menyisipkannya berulang-ulang sampai ketempat yang tepat. Begitu seterusnya dilakukan.  Dari proses iterasi, seperti biasa, terbentuklah bagian yang telah di-sorting dan bagian yang belum di-sorting. 


í Merge sort
Algoritma Merge Sort ditemukan oleh John vonNeumann di tahun 1945. Merge Sort termasuk paradigma  algoritma divide and conquer (kurang lebih berarti: bagi dan atasi). Hal ini dikarenakan algoritma ini melakukan pembagian struktur data sebelum kemudian dioperasi satu per satu.

í Quick sort
adalah algoritma sorting yang terkenal yang dirancang oleh C.A.R. Hoare pada tahun 1960 ketika bekerja untuk perusahaan manufaktur komputer saintifik kecil, Elliott Brothers. Algoritma ini rekursif, dan termasuk paradigma algoritma divide and conquer.

5.   Sebutkan  lima algoritma sorting yang  populer  dipakai didunia informatika?
Jawab :
í Bubble Sort
í Selection Sort
í Insertion Sort
í Merge Sort, dan
í Quick Sort.


TUGAS 10 (PENERAPAN TEKNIK SEARCH)

1.   Apa yang dimaksud dengan sequential search?
Jawab :
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.

2.   Sebutkan kelebihan dan kekurangan dari sequential search?
Jawab :
§  Kelebihan dari teknik pencarian ini adalah jika data yang dicari terletak didepan, maka data akan ditemukan dengan cepat.
§  Kekurangannya adalah jika data yang dicari terletak dibelakang atau paling akhir, maka akan membutuhkan waktu yang lama dalam proses pencariannya. Dan apabila jumlah datanya banyak, tentu juga akan membutuh waktu yang lama dan beban yang besar pula.

3.   Jelaskan apa yang dimaksud dengan best case dan worst case?
Jawab :
§  Best case : jika data yang dicari terletak di depan sehingga waktu yang dibutuhkan minimal.
§  Worst case : jika data yang dicari terletak di akhir sehingga waktu yang dibutuhkan maksimal.

4.   Buatlah algoritma dari sequential search?
Jawab :
Algoritma Sequential Search
i ← 0
ketemu ←false
Selama (tidak ketemu) dan (i < N) kerjakan baris 4
Jika (Data[i] = key) maka
ketemu ←true
jika tidak
i ←i+1
Jika (ketemu) maka
i adalah indeks dari data yang dicari
jika tidak
data tidak ditemukan

5.   Buatlah program dari sequential search?
Jawab :
#include <iostream.h>
#include <conio.h>
int i;
void main()
{
    int A[100]  ;
    int cari,ketemu;
   cout<<"masukkan 7 buah data : \n\n";
   cout<<"PROGRAM SEARCHING\n";
   for (i=1;i<=7;i++)
     cin>>A[i] ;
   {
     cout<<"masukkan data ke-"<<i<<endl;
   }


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');  
  }