Minggu, 15 April 2012

Laporan Praktikum Modul 3 Searching (Novian Adi P) (201101029)

Laporan Praktikum Modul 3 Searching
Disusun oleh :
Novian Adi Prasetyo
201101029

Dosen
Yosef Murya Kusuma Ardhana, S.T


JURUSAN SISTEM INFORMASI
SEKOLAH TINGGI ILMU KOMPUTER (STIKOM)
“YOS SUDARSO”
PURWOKERTO
2012


                        ------------------------
Dasar Teori 

Searching (pencarian) adalah tindakan untuk mendapatkan suatu data atau kumpulan data.

Metode pencarian data :
 

-    Pencarian Sekuensial (sequential search)
-    Pencarian Biner (binary search)

 
•  Pencarian Sekuensial (Sequencial Search)Pencarian sequensial adalah model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data,nama lainnya adalah pencarian lurus(linear search).
 

•    Pencarian Binary (Binary Search)
Pencrian binary merupakan algoritma yang digunakan untuk kebutuhan pencarian data dengan waktu yang tepat.Contoh penarian data dengan algoritma biner dalam kehidupan sehari-hari yaitu ketika melakukan pencarian arti kata dalam kamus.Kita akan membagi halaman kamus tersebut menjadi 2 bagian,apabila kata yang kita cari belum ditemukan maka kita akn melangkah kekanan atau kekiri sampai kata yang kita inginkan ditemukan.Prinsip pencarian dengan menggunakn metode biner atau membagi menjadi 2 bagian mengilhami algoritma pencarian bagi 2.Data yang tersimpan dalam larik harus sudah dalam keadaan terurut.

------------------------------------------
  
LANGKAH PRAKTIKUM
>> Program Praktikum 3.1


Listing Program :


#include <iostream>
using namespace std;
int cari (int data[], int n, int k)
{
       int posisi,i,ketemu;
       if (n<=0)
             posisi=-1;
       else
       {
             ketemu=0;
             i=1;
             while ((i<n-1) && !ketemu)
                    if (data[i]==k)
                    {
                           posisi = i;
                           ketemu = i;
                    }
                    else
                           i++;
             if (!ketemu)
                    posisi=-1;
       }
       return posisi;
}
int main ()
{
       int data[8]={10,9,6,4,7,5,4,1};
       int dicari=4;
       cout<<"posisi "<<dicari<<" ada dalam larik data ke: "<<cari(data,8,dicari)<<"\n";
       return 0;
}

Output Program :
































>> Program Praktikum 3.2


Listing Program :


#include <iostream>
#include <stdio.h>
using namespace std;
int cari (int data[],int n,int k, int m)
{
       int posisi, i, ketemu;
       int pencacah=0;
       if (n<=0)
             posisi=-1;
       else
       {
             ketemu=0;
             i=1;
             while ((i<n-1) && ! ketemu)
                    if (data[i]==k)
                    {
                           pencacah++;
                           printf("Pencacah %d \n",pencacah);
                           if(pencacah==m)
                           {
                                 printf("ketemu %d \n",pencacah);
                                 posisi=i;
                                 ketemu=1;
                           }
                           else
                                 i++;
                    }
                    else
                           i++;
             if (!ketemu)
                    posisi=-1;
       }
       return posisi;
}
int main ()
{
       int data[8]={10,9,6,4,7,5,4,1};
       int dicari;
       int ke;

       dicari=4;
       ke=2;
       cout<<"Posisi "<<dicari<<" yang ke "<<ke<<" dalam larik data: "<<cari(data,8,dicari,ke)<<"\n";

       ke=1;
       cout<<"Posisi "<<dicari<<" yang ke "<<ke<<" dalam larik data: "<<cari(data,8,dicari,ke)<<"\n";

       ke=2;
       dicari=5;
       cout<<"Posisi "<<dicari<<" yang ke "<<ke<<" dalam larik data: "<<cari(data,8,dicari,ke)<<"\n";

       return 0;
}


Output Program :
































>> Program Praktikum 3.3


Listing Program :


#include <iostream>
using namespace std;

int caribiner (int data[],int n,int k)
{
       int ada ,atas,bawah,tengah,posisi;
       ada=0;
       bawah=0;
       atas=n-1;
       while (atas>=bawah)
       {
             tengah=(atas+bawah)/2;
             if(k>data[tengah])
                    bawah=tengah+1;
             else
                    if(k<data[tengah])
                           atas=tengah-1;
                    else
                    {
                           ada=1;
                           posisi=tengah;
                           bawah=atas+1;
                    }
       }
if(!ada)
                    posisi=-1;
             return posisi;
       }

       int main()
       {
             int data[ ]={10,9,7,6,5,4,3,1};
             int dicari=6;
       cout<<"posisi "<<dicari<<" dalam larik data : "<<caribiner(data,8,dicari)<<"\n";
       return 0;
       }
Output Program :
































>> Program Praktikum 3.4


Listing Program :
#include <iostream.h>
#include <conio.h>
#include <string.h>
int string_kar(char st[],char k)
{
int i,posisi,panjang;
i=0;
posisi=-1;
panjang= strlen(st);
while ((i<panjang-1) && posisi == -1)
{
if (st[i] == k)
posisi=i;
i++;
}
return posisi;
}
int main ()
{
char kalimat[]="Hallo stikom yos";
char dicari ='y';
cout<<"posisi "<< dicari << " didalam string " << kalimat << ": " <<string_kar(kalimat,dicari)<<"\n";
getche ()  ;
}
Output Program :












>> Tugas Langkah Praktikum

Listing Program :

#include <iostream>
using namespace std;

int caribiner(int data[], int n, int k)
{
       int ada, atas, bawah, tengah, posisi;
       ada=0;
       bawah=0;
       atas=n-1;
       while(atas>=bawah)
             {
                    tengah=(atas+bawah)/2;
                    if (k<data[tengah])
                           bawah=tengah+1;
                    else
                           if(k>data[tengah])
                                 atas=tengah-1;
                           else
                           {
                                 ada=1;
                                 posisi=tengah;
                                 bawah=atas+1;
                           }
             }
       if(!ada)
             posisi=7;
       return posisi;
}
int main()

{
       int data[]={5, 3, 6, 7, 2, 9, 4, 1, 8 };
       int dicari=3;
       cout<<"Posisi " <<dicari<< " dalam larik data : " <<caribiner(data, 8, dicari)                                                                          <<"\n";
       return 0;
}

Output Program :













------------------------------------------
  
TUGAS PRAKTIKUM
Listing Program :






Output Program :





3 komentar: