laporan resmi bab 5

Upload: maria-love

Post on 16-Oct-2015

22 views

Category:

Documents


0 download

DESCRIPTION

resmi

TRANSCRIPT

  • LAPORAN PRAKTIKUM RESMI

    BAB V SEARCHING

    Disusun oleh :

    Analis Hasby Azizah

    201301043

    Dosen pengampu :

    Yosef Murya Kusuma Ardhana.S.T., M.Kom

    JURUSAN SISTEM INFORMASI

    SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

    PURWOKERTO

    2014

  • 2

    BAB I

    TEORI DASAR

    A. Pengantar

    Menurut YM Kusuma Ardhana dalam bukunya Struktur Data Dalam Ilustrasi Eclipse Indigo

    C++, pencarian (searching) adalah tindakan untuk mendapatkan suatu data dalam kumpulan

    data. Metode pencarian data ada dua macam, pertama pencarian sekuensial (sequential

    search) dan pencarian biner (binary search).

    B. Pencarian Sekuensial (Sequential Search)

    Pencarian sekuensial (sequential search) merupakan model pencarian paling sederhana yang

    dilakukan terhadap suatu kumpulan data. Metode ini juga dikenal dengan nama pencarian

    lurus (linear search).

    Terdapat L yang merupakan larik (array) yang berisi n buah data

    (L[0],L[1],...,L[n-1]) data k adalah data yang dicari

    Rumus : L[i] = k

    i adalah bilangan indeks terkecil yang memenuhi kondisi 0 k n-1

    Contoh kasus :

    L [10, 9, 6, 4, 7, 5, 4, 1]

    0 1 2 3 4 5 6 7 indeks

    Misalkan elmen yang dicari adalah 4 ( untuk posisi pertama ).

    Dalam hal ini k = 4 dan k ditemukan di posisi indeks ke 3.

    Perintah tersebut merupakan implementasi algoritma secara sekuensial yang menghasilkan

    nilai berupa :

    a. -1 jika data yang dicari tidak ada.

    b. Bilangan antara 0 s/d n-1 (dengan n adalah jumlah elmen larik) jika data yang dicari telah

    ditemukan.

  • 3

    C. Pencarian Biner (Binary Search)

    Pencarian biner merupakan algoritma yang digunakan untuk kebutuhan pencarian data

    dengan waktu yang tepat. Contohnya saat mencari arti kata dalam kamus bahasa inggiris.

    Prinsip pencarian dengan metode biner atau membagi menjadi dua bagian mengilhami

    algoritma pencarian bagi dua. Data yang tersimpan di dalam larik harus sudah dalam keadaan

    terurut.

    Misalkan indeks kiri adalah i dan indeks kanan adalah j. Awalnya inisialisasi i dengan 1 dan j

    dengan n.

    Misalkan diberikan larik L dengan delapan buah elmen yang sudah terurut :

    L [10, 9, 7, 6, 5, 4, 3, 1]

    i = 1 2 3 4 5 6 7 j=8

    D. PENCARIAN PADA STRING

    Pencarian pada string yaitu pencarian suatu huruf pada sebuah kalimat. Sebagai contoh

    terdapat kalimat hallo stikom yos sudarso :, didalam kalimat tersebut yang dicari adalah

    huruf y . Maka yang akan ditampilkan posisi dari huruf y tersebut yaitu di posisi

    13.

  • 4

    BAB II

    PENJELASAN PROGRAM

    A. Latihan Praktikum

    Pada bab ini akan membahas tentang listing program pada bagian modul yang telah digunakan

    untuk latihan pada pertemuan keempat.

    Listing Program 5.1

    /* * 5.1.cpp * * Created on: Apr 20, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include using namespace std; int cari(int data [], int n, int k) /* Parameter fungsi cari */ { int posisi, i, ketemu; /* Pendeklarasian tipe data integer untuk fungsi cari */ if (n

  • 5

    } int main() { /* Pendeklarasian variabel untuk main program */ int data[8]={10, 9, 6, 4, 7, 5, 4, 1}; int dicari; coutdicari; cout

  • 6

    cari biner */ ada=0; bawah=0; atas=n-1; while (atas>=bawah) { tengah=(atas+bawah)/2; /* nilai posisi tengah sama dengan (atas + bawah):2 */ if (k>data[tengah]) /* jika k>data[tengah] maka nilai posisi bawah sama dengan tengah + 1 */ bawah=tengah+1; else if (k

  • 7

    2. using namespace std; untuk mengakses perintah perintah yang ada pada library

    standard.

    3. int data berupa bilangan bulat.

    4. int main() untuk mengawali suatu program.

    5. cout>memasukkan data.

    Listing Program 5.3

    /* * 5.3.cpp * * Created on: Apr 20, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include #include using namespace std; int string_kar(char st[], char k) /* parameter fungsi string_kar */ { int i, posisi, panjang; /* deklarasi variabel untuk fungsi string_kar */ i=0; posisi =-1; panjang=strlen(st); while ((i

  • 8

    Output Program 5.3

    Penjelasan Program 5.3

    1. #include untuk menampilkan deklarasi yang ada pada cout.

    2. #include untuk menampilkan deklarasi strlen.

    3. using namespace std; untuk mengakses perintah perintah yang ada pada library

    standard.

    4. int data berupa bilangan bulat.

    5. char data berupa karakter.

    6. int main() untuk mengawali suatu program.

    7. cout>memasukkan data.

    B. Tugas Praktikum

    Listing Program 5.1 Typedef

    /* * typedf5.1.cpp * * Created on: Apr 20, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include using namespace std; /*pendeklarasian tipe data baru */ typedef int bil; bil cari(bil data [], bil n, bil k) /* parameter fungsi cari */

  • 9

    { bil posisi, i, ketemu; if (n

  • 10

    5. int main() untuk mengawali suatu program.

    6. cout>memasukkan data.

    Listing Program 5.1 Struct

    /* * search1.cpp * * Created on: Apr 14, 2014 * Author: analis */ /* Pendeklarasian file header */ #include using namespace std; /*langsung dianggap variabel tempat */ struct { int posisi; int i; int ketemu; } tempat; int cari(int data[], int n, int k) { if(n

  • 11

    int dicari; coutdicari; cout

  • 12

    }; int cari(int data[], int n, int k) { mencari tempat; /* variabel tempat bertipe data mencari */ if(n

  • 13

    6. int main() untuk mengawali suatu program.

    7. cout>memasukkan data.

    Listing Program 5.2 Typedef

    /* * typedef5.2.cpp * * Created on: Apr 20, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include using namespace std; /* pendeklarasian tipe data baru */ typedef int biner; biner caribiner(biner data[], biner n, biner k) { biner 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

  • 14

    } int main () { biner data[]={10, 9, 7, 6, 5, 4, 3, 1}; biner dicari; coutdicari; cout

  • 15

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

  • 16

    2. using namespace std; untuk mengakses perintah perintah yang ada pada library

    standard.

    3. struct digunakan untuk membuat tipe data agregate

    4. int data berupa bilangan bulat.

    5. int main() untuk mengawali suatu program.

    6. cout>memasukkan data.

    Listing Program 5.2 Typedef Struct

    /* * typdefstr5.2.cpp * * Created on: Apr 21, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include using namespace std; /* pendeklarasian tipe data baru struct mencari */ typedef struct mencari { int ada; int atas; int bawah; int tengah; int posisi; }; int caribiner(int data[], int n, int k) { mencari biner; /* variabel biner bertipe data mencari */ biner.ada=0; biner.bawah=0; biner.atas=n-1; while (biner.atas>=biner.bawah) { biner.tengah=(biner.atas+biner.bawah)/2; if (k>data[biner.tengah]) biner.bawah=biner.tengah+1; else if (k

  • 17

    biner.bawah=biner.atas+1; } } if (!biner.ada) biner.posisi=-1; return biner.posisi; } int main () { int data[]={10, 9, 7, 6, 5, 4, 3, 1}; int dicari; coutdicari; cout

  • 18

    /* Pendeklarasian file header */ #include #include using namespace std; /* Pendeklarasian tipe data baru */ typedef int banyak; typedef char huruf; banyak string_kar(huruf st[], huruf k) { banyak i, posisi, panjang; i=0; posisi =-1; panjang=strlen(st); while ((i

  • 19

    7. int main() untuk mengawali suatu program.

    8. cout>memasukkan data.

    Listing Program 5.3 Struct

    /* * Citra5.3TypedefStruct.cpp * * Created on: Apr 22, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include #include using namespace std; /* langsung dianggap variabel esa */ struct { int i, posisi, panjang; char kalimat[30], dicari; } esa; int string_kar(char st[], char k) { esa.i=0; esa.posisi=-1; esa.panjang=strlen(st); while((esa.i

  • 20

    }

    Output Program 5.3 Struct

    Penjelasan Program 5.3 Struct

    1. #include untuk menampilkan deklarasi yang ada pada cout.

    2 using namespace std; untuk mengakses perintah perintah yang ada pada library

    standard.

    3. struct digunakan untuk membuat tipe data agregate

    4. int data berupa bilangan bulat.

    5. char data berupa karakter.

    6. int main() untuk mengawali suatu program.

    7. cout>memasukkan data.

    Listing Program 5.3 Typedef Struct

    /* * typedefstruct5.3.cpp * * Created on: Apr 20, 2014 * Author: Analis */ /* Pendeklarasian file header */ #include #include using namespace std; /*pendeklarasian tipe data baru struct sp */ typedef struct sp { int i; int posisi; int panjang; }; int string_kar(char st[], char k)

  • 21

    { sp esa; /* variabel esa bertipe data sp */ esa.i=0; esa.posisi=-1; esa.panjang=strlen(st); while((esa.i

  • 22

    BAB III

    KESIMPULAN

    Pencarian atau searching digunakan untuk mendapatkan suatu data dari kumpulan data.

    Ada dua metode yang digunakan dalam searching yaitu metode pencarian sekuensial (sequential

    search) atau yang bisa disebut juga pencarian lurus (linear seacrh) dan pencarian biner (binary

    search). Pencarian data ini bisa digunakan untuk mencari data berupa angka atau huruf. Selain itu

    dalam pencarian data juga dapat memanipulasi suatu data dengan menggunakan tipe data abstrak

    berupa typedef, struct atau typedef struct.