laporan praktikum resmi searching

55
LAPORAN PRAKTIKUM RESMI SEARCHING Disusun oleh : Albert Sugihartono 201301018 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom

Upload: giseyaki

Post on 15-May-2017

313 views

Category:

Documents


26 download

TRANSCRIPT

Page 1: Laporan Praktikum Resmi Searching

LAPORAN PRAKTIKUM RESMI

SEARCHING

Disusun oleh :

Albert Sugihartono

201301018

Dosen pengampu :

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

JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO

PURWOKERTO 2014

Page 2: Laporan Praktikum Resmi Searching

BAB I

TEORI DASAR

1. Pengantar

Algoritma pencarian (searching algorithm) adalah algoritma yang menerima sebuah argumen

kunci dan dengan langkah-langkah tertentu akan mencari rekaman dengan kunci tersebut.

Setelah proses pencarian dilaksanakan, akan diperoleh salah satu dari dua kemungkinan,

yaitu data yang dicari ditemukan (successful) atau tidak ditemukan (unsuccessful). Menurut

Tenenbaum dan Augenstein, algoritma pencarian yaitu algoritma yang menerima sebuah

argument X dan mencoba untuk menemukan sebuah rekaman yang memiliki kunci X.

Contoh dalam sebuah NIM dapat dicari dengan record yang kemungkinan berisikan nama,

alamat, tempat tanggal lahir dan program studi mahasiswa terkait. Untuk pencarian dapat

dibagi menjadi 2 jenis metode yaitu Pencarian Berurutan (sequential search) dan Pencarian

Biner (binary search).

1. Pencarian Berurutan (sequential search)

Pencarian berurutan sering disebut pencarian linear merupakan metode pencarian yang

paling sederhana. Pencarian berurutan menggunakan prinsip sebagai berikut : data yang ada

dibandingkan satu per satu secara berurutan dengan yang dicari sampai data tersebut

ditemukan atau tidak ditemukan.

Pada dasarnya, pencarian ini hanya melakukan pengulangan dari 1 sampai dengan jumlah

data. Pada setiap pengulangan, dibandingkan data ke-i dengan yang dicari. Apabila sama,

berarti data telah ditemukan. Sebaliknya apabila sampai akhir pengulangan tidak ada data

yang sama, berarti data tidak ada. Pada kasus yang paling buruk, untuk N elemen data harus

dilakukan pencarian sebanyak N kali pula. Maka dari itu rumus : L[i]=k dimana k adalah

data yang dicari dan i adalah bilangan index terkecil yang berkondisikan 0≤ k ≤ n-1.

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

0 1 2 3 4 5 6 7 Indeks

Misalkan elemen data yang dicari adalah 4 (untuk posisi pertama).

2

Page 3: Laporan Praktikum Resmi Searching

Dalam hal ini k = 4 dan k ditemukan diposisi indeks ke 3. Subrutin(perintah) tersebut

merupakan implementasi algoritma secara sekuensial/berurutan, dalam hal ini menghasilkan

nilai balik :

a. -1 jika data yang dicari tidak diketemukan.

b. Bilangan antara 0 hingga n-1 dengan n jumlah elemen larik apabila data yang dicari

ditemukan.

2. Pencarian biner (binary search)

Salah satu syarat agar pencarian biner dapat dilakukan adalah data sudah dalam keadaan

urut. Dengan kata lain, apabila data belum dalam keadaan urut, pencarian biner tidak

dapat dilakukan. Pencarian biner digunakan untuk kebutuhan pencarian data dalam waktu

yang cepat. Dalam kehidupan sehari-hari, sebenarnya kita juga sering menggunakan

pencarian biner. Misalnya saat ingin mencari suatu kata dalam kamus. Kita tidak akan

membuka kamus dari halaman awal hingga akhir satu persatu untuk mencari beberapa

arti kata, namun dengan cara membelah atau membagi halaman kamus tersebut. Jika

tidak ditemukan pada halaman tengah tersebut, maka akan dicari pada belahan sebelah

kiri atau kanan hingga ditemukan arti kata yang dicari. Prinsip pencarian biner adalah

pencarian bagi dua.

3. Pencarian pada string

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

terdapat kalimat “halo stikom yos sudarso”, didalam kalimat tersebut yang dicari adalah

huruf ‘y’. Maka yang akan ditampilkan posisi dari huruf ‘y’ tersebut yaitu di posisi ke 13.

3

Page 4: Laporan Praktikum Resmi Searching

BAB IIPENJELASAN PROGRAM

1. Latihan Praktikum

Pada bab latihan praktikum ini membahas tentang listing program yang digunakan pada

praktikum ini yaitu listing program_praktikum_5.1.cpp; program_praktikum5.2.cpp;

program_praktikum_5.3.cpp; dan program praktikum 5.1; 5.2; 5.3 yang masing-masing data

yang dicari oleh input user.

Listing program_praktikum_5.1.cpp /*

* program_praktikum_5.1.cpp *

* Created on: Apr 1, 2014 * Author: ALBERT

*/ #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 ((1<n-1) && !ketemu)

if(data[i]==k){

posisi=i;

ketemu=i;}else

i++;if(!ketemu)

4

Page 5: Laporan Praktikum Resmi Searching

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_praktikum_3.1.cpp

Hasil output dari program_praktikum_5.1.cpp adalah sebagai berikut :

Penjelasan program_praktikum_5.1.cpp

Berikut penjelasan dari Listing program_praktikum_3.1.cpp :

1. Program pertama kali membuat fungsi yang ditujukan untuk proses pencarian.yaitu

fungsi int cari dengan parameternya yaitu int data, int n dan int k dimana n

mengindikasikan jumlah indeks, dan k adalah data yang dicari.

2. Pada awal fungsi dideklarasikan variable posisi untuk posisi data yang dicari, dan i

sebagai variable untuk indeks terkecil.

5

Page 6: Laporan Praktikum Resmi Searching

3. Pada fungsi if pertama dimaksudkan apabila jumlah indeks yang ada yaitu n kurang

dari atau sama dengan 0, maka nilai balik yaitu posisi bernilai -1 jika tidak variable

ketemu bernilai 0.

4. Kemudian i di assignmentkan bernilai 1. Pada bagian ini digunakan fungsi perulangan

while. Pada while, jika kondisi indeks terkecil kurang dari jumlah indeks -1 maka akan

dijalankan fungsi logika yang mana jika data berindekkan i (i = i pada while) dan i

bernilai sama dengan data yang dicari, maka posisi dan ketemu akan diassignmentkan

sama dengan i. Jika tidak, i akan bertambah 1 guna untuk menambah jumlah indeks

sehingga dapat mengakses indeks selanjutnya dan menemukan data yang dicari.

5. Dalam int main, dideklarasikan sebuah data berjumlah 8 indeks dan diassignmentkan

valuenya kemudian dideklarasikan variable dicari untuk data yang dicari

diassignmentkan value 4. Pada cout, dipanggil fungsi dengan menulis nama fungsi yaitu

cari dan diikuti parameternya. Pada bagian parameter ditempatkan variabel yang telah

dideklarasikan sebelumya dan merujuk tepat pada satu domain ke kodomain.

Listing program_praktikum_5.2.cpp

/*

* program_praktikum_5.2.cpp

*

* Created on: Apr 1, 2014

* Author: ALBERT

*/

#include <iostream>

using namespace std;

int caribiner(int data[], int n, int k)

{

int ada, atas, bawah, tengah, posisi;

ada=0;

bawah=0;

6

Page 7: Laporan Praktikum Resmi Searching

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;

}

7

Page 8: Laporan Praktikum Resmi Searching

Output program_praktikum_5.2.cpp

Penjelasan program_praktikum_5.2.cpp

Berikut penjelasan listing program_praktikum_5.2.cpp :

1. Pertama kali program membuat fungsi untuk pencarian biner dengan nama fungsi

caribiner dan parameternya yaitu data, n, dan k.

2. Dalam fungsi caribiner, dideklarasikan int ada, atas, bawah, tengah, dan posisi. Variable

ada mengindikasikan 1 apabila data diketemukan. Variable atas, bawah dan tengah

mengindikasikan pembagian yaitu prinsip pencarian biner dimana tengah ditentukan

dengan cara kedua belahan (atas dan bawah) digabungkan kemudian dibagi menjadi dua.

3. Pada awal fungsi, variable ada dan bawah diassignmentkan 0 dan variable atas

diassignmentkan n-1. Kemudian dilakukan perulangan while dimana jika jumlah belahan

atas sama atau lebih banyak dengan belahan bawah, maka dicari pada bagian tengah.

Untuk bagian tengah, dilakukan fungsi logika yang mana jika data yang dicari lebih

banyak daripada tengah, maka akan dicari pada belahan atas. Jika kondisi tidak terpenuhi,

berarti data yang dicari diketemukan da nada diassignmentkan 1.

4. Dalam int main, pada cout, dipanggil fungsi dengan menulis nama fungsi pencarian biner

yaitu caribiner dan diikuti parameternya. Pada bagian parameter ditempatkan variabel

yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke kodomain.

8

Page 9: Laporan Praktikum Resmi Searching

Listing program_praktikum_5.3.cpp

/*

* program_praktikum_5.3.cpp

*

* Created on: Apr 8, 2014

* Author: ALBERT

*/

#include <iostream>

#include <cstring>

using namespace std;

int string_kar(char st[], int 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 sudarso";

char dicari='y';

9

Page 10: Laporan Praktikum Resmi Searching

cout<<"Posisi "<<dicari<<" dalam string "<<kalimat<<" : "<<string_kar(kalimat,dicari)<<"\n";

return 0;

}

Output program_praktikum_5.3.cpp

Penjelasan listing program_praktikum_5.3.cpp

Berikut penjelasan listing program dari program_praktikum_5.3.cpp :

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string. Pada program fungsi manipulasi string

adalah strlen yang digunakan untuk mengetahui panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

10

Page 11: Laporan Praktikum Resmi Searching

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

Listing program_praktikum_cin_5.1.cpp

/*

* program_praktikum_cin_5.1.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#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 ((1<n-1) && !ketemu)

if(data[i]==k)

{

posisi=i;

11

Page 12: Laporan Praktikum Resmi Searching

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;

cout<<"Masukkan angka yang dicari : ";

cin>>dicari;

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

return 0;

}

Output program_praktikum_cin_5.1.cpp

Penjelasan listing program_praktikum_cin_5.1.cpp

Berikut penjelasan dari listing program_praktikum_cin_5.1.cpp :

12

Page 13: Laporan Praktikum Resmi Searching

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi untuk

memunculkan fungsi manipulasi string, dalam hal ini adalah strlen untuk menghitung

panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan indeks,

posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan panjang yang

mengindikasikan panjang karakter dari sebuah string diukur dengan menggunakan fungsi

manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah 0.

Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i sebanyak

1, dapat bersinggungan dengan data yang dicari.

6. Pada program, sebenarnya fungsi beserta isinya berfungsi sama dengan

program_praktikum_5.1.cpp hanya saja program ini menggunakan cin dimana dapat

dilihat di dalam int main yaitu variable dicari dimasukkan ke dalam input stream cin. Hal

ini menjadikan bahwa data yang dicari tidak ditentukan program melainkan di inpukan

oleh user.

Listing program_praktikum__cin_5.2.cpp

/*

* program_praktikum_cin_5.2.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

using namespace std;

13

Page 14: Laporan Praktikum Resmi Searching

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;

cout<<"Masukkan data yang dicari : ";

cin>>dicari;

cout<<"Posisi "<<dicari<<" dalam larik data :

14

Page 15: Laporan Praktikum Resmi Searching

"<<caribiner(data,8,dicari)<<"\n";

return 0;

}

Output program_praktikum_cin_5.2.cpp

Penjelasan listing program_praktikum_cin_5.2.cpp

1. Program menggunakan fungsi untuk pencarian biner dengan nama fungsi caribiner

beserta parameternya yaitu data, n, dan k.

2. Dalam fungsi caribiner, didapat pendeklarasian variable int ada, atas, bawah, tengah,

dan posisi. Variable ada mengindikasikan 1 apabila data diketemukan. Variable atas,

bawah dan tengah mengindikasikan pembagian yaitu prinsip pencarian biner dimana

tengah ditentukan dengan cara kedua belahan (atas dan bawah) digabungkan

kemudian dibagi menjadi dua.

3. Pada awal fungsi, variable ada dan bawah diassignmentkan 0 dan variable atas

diassignmentkan n-1. Kemudian dilakukan perulangan while dimana jika jumlah

belahan atas sama atau lebih banyak dengan belahan bawah, maka dicari pada bagian

tengah. Untuk bagian tengah, dilakukan fungsi logika yang mana jika data yang

dicari lebih banyak daripada tengah, maka akan dicari pada belahan atas. Jika kondisi

tidak terpenuhi, berarti data yang dicari diketemukan da nada diassignmentkan 1.

4. Dalam int main, pada cout, dipanggil fungsi dengan menulis nama fungsi pencarian

biner yaitu caribiner dan diikuti parameternya. Pada bagian parameter ditempatkan

variabel yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke

kodomain.

15

Page 16: Laporan Praktikum Resmi Searching

5. Pada program didalam int main, variable dicari dimasukkan ke dalam cin dimana

variable dicari merupakan variable digunakan untuk menampung data yang akan

dicari. Dengan memasukkannya kedalam cin, akan menjadikan data yang dicari

bukan ditentukan oleh program melainkan ditentukan oleh user.

Listing program_praktikum_cin_5.3.cpp

/*

* program_praktikum_cin_5.3.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

#include <cstring>

using namespace std;

int string_kar(char st[], int 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;

16

Page 17: Laporan Praktikum Resmi Searching

}

int main() {

char kalimat[]="Hallo stikom yos sudarso";

char dicari;

cout<<"Masukkan huruf yang dicari : ";

cin>>dicari;

cout<<"Posisi "<<dicari<<" dalam string "<<kalimat<<" : "<<string_kar(kalimat,dicari)<<"\n";

return 0;

}

Output program_praktikum_cin_5.3.cpp

Penjelasan listing program_praktikum_cin_5.3.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

17

Page 18: Laporan Praktikum Resmi Searching

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

6. Pada program, string yang dijadikan sumber sudah ditentukan di dalam program

yaitu pada saat pendeklarasian variable kalimat : Hallo stikom yos sudarso. Hanya

saja untuk pencarian huruf pada string tersebut diinput oleh pengguna dengan cara

memasukkan variable dicari sebagai wadah karakter yang dicari kedalam input

stream cin.

Tugas Praktikum

Pada tugas praktikum ini akan dijelaskan program praktikum 5.1; 5.2; 5.3 yang masing-

masing program menggunakan fungsi struct, typedef dan gabungan keduanya yaitu typedef

struct.

Listing program_praktikum_struct_5.1.cpp

/*

* program_praktikum_struct_5.1.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

using namespace std;

int cari(int data[],int n,int k)

{

int posisi, i, ketemu;

if(n<=0)

posisi=-1;

else

18

Page 19: Laporan Praktikum Resmi Searching

{

ketemu=0;

i=1;

while ((1<n-1) && !ketemu)

if(data[i]==k)

{

posisi=i;

ketemu=i;

}

else

i++;

if(!ketemu)

posisi=-1;

}

return posisi;

}

struct apa

{

int dicari;

};

struct apa angka;

int main()

{

int data[8]={10,9,6,4,7,5,4,1};

angka.dicari;

cout<<"Masukkan angka yang dicari : ";

cin>>angka.dicari;

cout<<"Posisi "<<angka.dicari<<" Ada dalam larik data ke : "<<cari(data,8,angka.dicari)<<"\n";

return 0;

}

Output program_praktikum_struct_5.1.cpp

19

Page 20: Laporan Praktikum Resmi Searching

Penjelasan program_praktikum_struct_5.1.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string, dalam hal ini adalah strlen untuk

menghitung panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat berpapasan dengan data yang dicari.

6. Pada program digunakan struct dengan nama struct apa. Member struct bertipe

integer yaitu variable dicari dimana variable tersebut digunakan untuk menampung

data yang dicari.

7. Struct “apa” untuk memudahkan penggunaannya dalam int main main, struct apa

digantikan dengan angka dengan cara struct apa angka;. Dalam hal ini, variable

angka variable penghubung untuk menghubungkan variable lain dengan member

struct apa yaitu variable dicari.

20

Page 21: Laporan Praktikum Resmi Searching

8. Pada pendeklarasian di dalam int main, struct dihubungkan dengan menggunakan dot

yaitu angka.dicari dan digunakan dalam input user sebagai satu kesatuan variable

baru.

Listing program_praktikum_struct_5.2.cpp

/*

* program_praktikum_struct_5.2.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#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

21

Page 22: Laporan Praktikum Resmi Searching

{

ada=1;

posisi=tengah;

bawah=atas+1;

}

}

if(!ada)

posisi=-1;

return posisi;

}

struct apa

{

int dicari;

};

struct apa angka;

int main()

{

int data[]={10,9,7,6,5,4,3,1};

angka.dicari;

cout<<"Masukkan data yang dicari : ";

cin>>angka.dicari;

cout<<"Posisi "<<angka.dicari<<" dalam larik data : "<<caribiner(data,8,angka.dicari)<<"\n";

return 0;

}

22

Page 23: Laporan Praktikum Resmi Searching

Output program_praktikum_struct_5.2.cpp

Penjelasan program_praktikum_struct_5.2.cpp

1. Program menggunakan fungsi untuk pencarian biner dengan nama fungsi caribiner

beserta parameternya yaitu data, n, dan k.

2. Dalam fungsi caribiner, didapat pendeklarasian variable int ada, atas, bawah, tengah,

dan posisi. Variable ada mengindikasikan 1 apabila data diketemukan. Variable atas,

bawah dan tengah mengindikasikan pembagian yaitu prinsip pencarian biner dimana

tengah ditentukan dengan cara kedua belahan (atas dan bawah) digabungkan

kemudian dibagi menjadi dua.

3. Pada awal fungsi, variable ada dan bawah diassignmentkan 0 dan variable atas

diassignmentkan n-1. Kemudian dilakukan perulangan while dimana jika jumlah

belahan atas sama atau lebih banyak dengan belahan bawah, maka dicari pada bagian

tengah. Untuk bagian tengah, dilakukan fungsi logika yang mana jika data yang

dicari lebih banyak daripada tengah, maka akan dicari pada belahan atas. Jika kondisi

tidak terpenuhi, berarti data yang dicari diketemukan da nada diassignmentkan 1.

4. Dalam int main, pada cout, dipanggil fungsi dengan menulis nama fungsi pencarian

biner yaitu caribiner dan diikuti parameternya. Pada bagian parameter ditempatkan

variabel yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke

kodomain.

5. Pada program digunakan struct dimana nama struct adalah apa dengan membernya

yang bertipe integer yaitu variable dicari. Variable dicari di gunakan sebagai variable

penampung value untuk data yang dicari.

6. Nama struct apa diganti dengan variable angka pada struct apa angka; dalam

program. Ini menjadikan angka sebuah penghubung untuk menghubungkan variable

23

Page 24: Laporan Praktikum Resmi Searching

lain dengan member dalam struct apa. Dalam int main, dideklarasikan dengan

angka.dicari sehingga menjadikan satu kesatuan variable baru yang digunakan untuk

menampung input user untuk informasi yang dicari.

Listing program_praktikum_struct_5.3.cpp

/*

* program_praktikum_struct_5.3.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

#include <cstring>

using namespace std;

int string_kar(char st[], int 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;

}

struct apa

{

24

Page 25: Laporan Praktikum Resmi Searching

char dicari;

};

struct apa panggil;

int main()

{

char kalimat[]="Stikom Yos Sudarso";

panggil.dicari;

cout<<"Masukkan posisi huruf yang dicari dari Stikom Yos Sudarso : ";

cin>>panggil.dicari;

cout<<"Posisi "<<panggil.dicari<<" dalam string "<<kalimat<<": "<<string_kar(kalimat,panggil.dicari)<<"\n";

return 0;

}

Output program_praktikum_struct_5.3.cpp

Penjelasan listing program_praktikum_struct_5.3.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

25

Page 26: Laporan Praktikum Resmi Searching

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

6. Pada program digunakan fungsi struct dengan nama struct yaitu apa. Member struct

adalah variable bertipe character yaitu dicari dimana variable ini difungsikan sebagai

penampung value informasi yang dicari.

7. Apa yang merupakan nama struct diganti dengan variable baru panggil digunakan

sebagai penghubung variable dengan member struct. Hal ini dapat dilihat pada

pendeklarasian variable panggil.dicari di dalam int main yang mana menjadi entity

variabel baru digunakan sebagai cin input user.

Listing program_praktikum_typedef_5.1.cpp

/*

* program_praktikum_typedef_5.1.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

using namespace std;

int cari(int data[],int n,int k)

{

int posisi, i, ketemu;

if(n<=0)

26

Page 27: Laporan Praktikum Resmi Searching

posisi=-1;

else

{

ketemu=0;

i=1;

while ((1<n-1) && !ketemu)

if(data[i]==k)

{

posisi=i;

ketemu=i;

}

else

i++;

if(!ketemu)

posisi=-1;

}

return posisi;

}

typedef int apa;

int main()

{

apa Data[]={10,9,6,4,7,5,4,1};

apa Dicari;

cout<<"Masukkan angka yang dicari : ";

cin>>Dicari;

cout<<"Posisi "<<Dicari<<" Ada dalam larik data ke : "<<cari(Data,8,Dicari)<<"\n";

return 0;

}

27

Page 28: Laporan Praktikum Resmi Searching

Output program_praktikum_typedef_5.1.cpp

Penjelasan program_praktikum_typedef_5.1.cpp

1. Program pertama kali membuat fungsi yang ditujukan untuk proses pencarian.yaitu

fungsi int cari dengan parameternya yaitu int data, int n dan int k dimana n

mengindikasikan jumlah indeks, dan k adalah data yang dicari.

2. Pada awal fungsi dideklarasikan variable posisi untuk posisi data yang dicari, dan i

sebagai variable untuk indeks terkecil.

3. Pada fungsi if pertama dimaksudkan apabila jumlah indeks yang ada yaitu n kurang

dari atau sama dengan 0, maka nilai balik yaitu posisi bernilai -1 jika tidak variable

ketemu bernilai 0.

4. Kemudian i di assignmentkan bernilai 1. Pada bagian ini digunakan fungsi

perulangan while. Pada while, jika kondisi indeks terkecil kurang dari jumlah indeks

-1 maka akan dijalankan fungsi logika yang mana jika data berindekkan i (i = i pada

while) dan i bernilai sama dengan data yang dicari, maka posisi dan ketemu akan

diassignmentkan sama dengan i. Jika tidak, i akan bertambah 1 guna untuk

menambah jumlah indeks sehingga dapat mengakses indeks selanjutnya dan

menemukan data yang dicari.

5. Dalam int main, dideklarasikan sebuah data berjumlah 8 indeks dan diassignmentkan

valuenya kemudian dideklarasikan variable dicari untuk data yang dicari

diassignmentkan value 4. Pada cout, dipanggil fungsi dengan menulis nama fungsi

yaitu cari dan diikuti parameternya. Pada bagian parameter ditempatkan variabel

yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke

kodomain.

28

Page 29: Laporan Praktikum Resmi Searching

6. Pada program digunakan typedef yang berfungsi sebagai alias. Pada program

pendefinisian ada diluar program yaitu typedef int apa yang nantinya digunakan

sebagai tipe data baru bertipe integer. Cara penggunaannya terlihat di dalam int main

dimana adanya pedefinisian variable Data dan variable Dicari dengan menggunakan

tipe data baru bertipe integer yaitu apa. Variable Data digunakan untuk memberikan

data yang akan dicari dan variable Dicari digunakan untuk menampung value inputan

user yang akan dicari informasinya.

Listing program_praktikum_typedef_5.2.cpp

/*

* program_praktikum_typedef_5.2.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#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;

29

Page 30: Laporan Praktikum Resmi Searching

else

{

ada=1;

posisi=tengah;

bawah=atas+1;

}

}

if(!ada)

posisi=-1;

return posisi;

}

typedef int apa;

int main()

{

apa Data[]={10,9,7,6,5,4,3,1};

apa Dicari;

cout<<"Masukkan data yang dicari : ";

cin>>Dicari;

cout<<"Posisi "<<Dicari<<" dalam larik data : "<<caribiner(Data,8,Dicari)<<"\n";

return 0;

}

Output program_praktikum_typedef_5.2.cpp

Penjelasan program_praktikum_typedef_5.2.cpp

30

Page 31: Laporan Praktikum Resmi Searching

1. Pertama kali program membuat fungsi untuk pencarian biner dengan nama fungsi

caribiner dan parameternya yaitu data, n, dan k.

2. Dalam fungsi caribiner, dideklarasikan int ada, atas, bawah, tengah, dan posisi.

Variable ada mengindikasikan 1 apabila data diketemukan. Variable atas, bawah dan

tengah mengindikasikan pembagian yaitu prinsip pencarian biner dimana tengah

ditentukan dengan cara kedua belahan (atas dan bawah) digabungkan kemudian

dibagi menjadi dua.

3. Pada awal fungsi, variable ada dan bawah diassignmentkan 0 dan variable atas

diassignmentkan n-1. Kemudian dilakukan perulangan while dimana jika jumlah

belahan atas sama atau lebih banyak dengan belahan bawah, maka dicari pada bagian

tengah. Untuk bagian tengah, dilakukan fungsi logika yang mana jika data yang

dicari lebih banyak daripada tengah, maka akan dicari pada belahan atas. Jika kondisi

tidak terpenuhi, berarti data yang dicari diketemukan da nada diassignmentkan 1.

4. Dalam int main, pada cout, dipanggil fungsi dengan menulis nama fungsi pencarian

biner yaitu caribiner dan diikuti parameternya. Pada bagian parameter ditempatkan

variabel yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke

kodomain.

5. Dalam program ini digunakan fungsi dari typedef yaitu typedef in tapa yang

menjadikan variable apa merupakan tipe data baru yang sama dengan integer.

6. Di dalam int main, terdapat pendeklarasian variable dengan menggunakan tipe data

baru yaitu apa pada variable Data dan variable Dicari dimana variable dicari

digunakan sebagai penampung value untuk informasi yang dicari yang akan

diinputkan oleh user melalui input stream cin.

Listing program_praktikum_typedef_5.3.cpp

/*

* program_praktikum_typedef_5.3.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

31

Page 32: Laporan Praktikum Resmi Searching

#include <iostream>

#include <cstring>

using namespace std;

int string_kar(char st[], int 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;

}

typedef char setering;

int main()

{

setering Kalimat[]="Stikom Yos Sudarso";

setering Dicari;

cout<<"Masukkan huruf yang ingin dicari posisinya pada Stikom Yos Sudarso : ";

cin>>Dicari;

cout<<"Posisi "<<Dicari<<" dalam string "<<Kalimat<<": "<<string_kar(Kalimat,Dicari)<<"\n";

return 0;

}

32

Page 33: Laporan Praktikum Resmi Searching

Output program_praktikum_typedef_5.3.cpp

Penjelasan program_praktikum_typedef_5.3.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string. Pada program fungsi manipulasi string

adalah strlen yang digunakan untuk mengetahui panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

6. Didalam program digunakan fungsi typedef yaitu pendefinisiannya typedef char

setering yang menjadikan variable setering tipe data baru yang sama dengan tipe data

character.

7. Di dalam int main, terdapat pendeklarasian menggunakan tipe data baru setering pada

variable Kalimat dan variable Dicari. Variabel Dicari yang digunakan sebagai

penampung value informasi yang dicari, diinputkan oleh user dengan

memasukkannya ke dalam input stream cin.

33

Page 34: Laporan Praktikum Resmi Searching

Listing program_praktikum_typedef_struct_5.1.cpp

/*

* program_praktikum_typedef_struct_5.1.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#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 ((1<n-1) && !ketemu)

if(data[i]==k)

{

posisi=i;

ketemu=i;

}

else

i++;

if(!ketemu)

posisi=-1;

34

Page 35: Laporan Praktikum Resmi Searching

}

return posisi;

}

typedef struct apa

{

int dicari;

};

struct apa angka;

int main()

{

int data[8]={10,9,6,4,7,5,4,1};

angka.dicari;

cout<<"Masukkan angka yang dicari : ";

cin>>angka.dicari;

cout<<"Posisi "<<angka.dicari<<" Ada dalam larik data ke : "<<cari(data,8,angka.dicari)<<"\n";

return 0;

}

Output program_praktikum_typedef_struct_5.1.cpp

35

Page 36: Laporan Praktikum Resmi Searching

Penjelasan program_praktikum_typedef_struct_5.1.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string. Pada program fungsi manipulasi string

adalah strlen yang digunakan untuk mengetahui panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

6. Untuk program digunakan fungsi gabungan typedef struct dengan nama apa yang

memiliki member int dicari. Untuk memudahkan nama typedef struct apa diganti

dengan variable angka yang menjadikan variable tersebut penghubung variable lain

dengan member pada typedef struct. Penggunaannya terlihat pada int main, yaitu

pendeklarasian variable angka.dicari yang menjadi variable baru untuk value inputan

user.

Listing program_praktikum_typedef_struct_5.2.cpp

/*

* program_praktikum_typedef_struct_5.2.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

36

Page 37: Laporan Praktikum Resmi Searching

#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;

}

typedef struct apa

{

int dicari;

};

37

Page 38: Laporan Praktikum Resmi Searching

struct apa angka;

int main()

{

int data[]={10,9,7,6,5,4,3,1};

angka.dicari;

cout<<"Masukkan data yang dicari : ";

cin>>angka.dicari;

cout<<"Posisi "<<angka.dicari<<" dalam larik data : "<<caribiner(data,8,angka.dicari)<<"\n";

return 0;

}

Output program_praktikum_typedef_struct_5.2.cpp

Penjelasan program_praktikum_typedef_struct_5.2.cpp

1. Pertama kali program menjalankan fungsi untuk pencarian biner dengan nama fungsi

caribiner dan parameternya yaitu data, n, dan k.

2. Dalam fungsi caribiner, dideklarasikan int ada, atas, bawah, tengah, dan posisi.

Variable ada mengindikasikan 1 apabila data diketemukan. Variable atas, bawah dan

tengah mengindikasikan pembagian yaitu prinsip pencarian biner dimana tengah

ditentukan dengan cara kedua belahan (atas dan bawah) digabungkan kemudian

dibagi menjadi dua.

3. Pada awal fungsi, variable ada dan bawah diassignmentkan 0 dan variable atas

diassignmentkan n-1. Kemudian dilakukan perulangan while dimana jika jumlah

belahan atas sama atau lebih banyak dengan belahan bawah, maka dicari pada bagian

38

Page 39: Laporan Praktikum Resmi Searching

tengah. Untuk bagian tengah, dilakukan fungsi logika yang mana jika data yang

dicari lebih banyak daripada tengah, maka akan dicari pada belahan atas. Jika kondisi

tidak terpenuhi, berarti data yang dicari diketemukan da nada diassignmentkan 1.

4. Dalam int main, pada cout, dipanggil fungsi dengan menulis nama fungsi pencarian

biner yaitu caribiner dan diikuti parameternya. Pada bagian parameter ditempatkan

variabel yang telah dideklarasikan sebelumya dan merujuk tepat pada satu domain ke

kodomain.

5. Program menggunakan fungsi gabungan typedef struct bernama apa dengan

membernya yaitu int dicari. Untuk memudahkan, nama struct apa diganti dengan

variable angka dengan menuliskan struct apa angka; sebagai penghubung variable

lain dengan member typedef struct. Penggunaannya terlihat di dalam int main dimana

pendeklarasian variable baru dihubungkan dengan dot (.) yaitu angka.dicari dimana

digunakan sebagai penampung value inputan user guna mencari informasi.

Listing program_praktikum_typedef_struct_5.3.cpp

/*

* program_praktikum_typedef_struct_5.3.cpp

*

* Created on: Apr 18, 2014

* Author: ALBERT

*/

#include <iostream>

#include <cstring>

using namespace std;

int string_kar(char st[], int k)

{

int i,posisi,panjang;

i=0;

posisi=-1;

panjang=strlen(st);

while ((i<panjang-1) && posisi==-1)

39

Page 40: Laporan Praktikum Resmi Searching

{

if(st[i]==k)

posisi=i;

i++;

}

return posisi;

}

typedef struct apa

{

char dicari;

};

struct apa panggil;

int main()

{

char kalimat[]="Stikom Yos Sudarso";

panggil.dicari;

cout<<"Masukkan posisi huruf yang dicari dari Stikom Yos Sudarso : ";

cin>>panggil.dicari;

cout<<"Posisi "<<panggil.dicari<<" dalam string "<<kalimat<<": "<<string_kar(kalimat,panggil.dicari)<<"\n";

return 0;

}

Output program_praktikum_typedef_struct_5.3.cpp

40

Page 41: Laporan Praktikum Resmi Searching

Penjelasan program_praktikum_typedef_struct_5.3.cpp

1. Pada program digunakan pengarah preprosessor #include <cstring> yang berfungsi

untuk memunculkan fungsi manipulasi string. Pada program fungsi manipulasi string

adalah strlen yang digunakan untuk mengetahui panjang string.

2. Pada awal program di bentuk sebuah fungsi bernama string_kar diikuti parameternya

yaitu char st[], dan char k dengan k adalah data yang dicari.

3. Dideklarasikan variable di dalam fungsi string_kar yaitu i yang mengindikasikan

indeks, posisi mengindikasikan posisi data yang dicari berdasarkan indeks, dan

panjang yang mengindikasikan panjang karakter dari sebuah string diukur dengan

menggunakan fungsi manipulasi string strlen.

4. Sebelum masuk fungsi perulangan while, i diset 0 dikarenakan indeks terkecil adalah

0. Posisi di set -1 dan panjang diukur dengan menggunakan strlen.

5. Pada while jika i berjumlah kurang dari panjang kurang 1 dan posisi -1 maka akan

dijalankan fungsi if. Panjang harus dikurang 1 agar mengurangi total jumlah karakter

sehingga saat i (indeks) naik dikarenakan fungsi if (setelah while) menambah i

sebanyak 1, dapat bersinggungan dengan data yang dicari.

6. Program menggunakan fungsi typedef struct dengan nama apa beserta membernya

variabel bertipe character yaitu dicari dimana variable ini digunakan untuk

menampung value untuk data yang akan dicari.

7. Untuk memudahkan, nama typedef struct apa diganti dengan variable panggil dengan

menuliskan struct apa panggil; yang digunakan untuk menghubungkan variable lain

dengan member di dalam typedef struct.

8. Di dalam int main, terdapat pendeklarasian sebuah variable baru yaitu panggil.dicari

dimana dicari merupakan variable pada member typedef struct apa dan panggil

menghubungkannya dengan menggunakan tanda dot atau titik. Variable

panggil.dicari merupakan variable baru yang digunakan sebagai penampung value

untuk inputan user terhadap data yang dicari.

41

Page 42: Laporan Praktikum Resmi Searching

BAB III

KESIMPULAN

Kesimpulan yang dapat diambil adalah pencarian sekuensial digunakan untuk mencari data pada

sekumpulan data atau rekaman yang masih acak. Pencarian biner digunakan untuk mencari data

pada sekumpulan data atau rekaman yang sudah dalam keadaan terurut. Yang menarik adalah

masing-masing pencarian memanfaatkan akses indeks sebagai record data yang dicari, hanya

saja metode yang digunakan berbeda. Untuk mencari data dalam waktu yang relative cepat,

dapat digunakan pencarian biner sedangkan pencarian sekuensial dilakukan secara bertahap.

Pada kasus struct, typedef dan typedef struct variable hanya dapat dideklarasikan saja tidak

dapat didefinisikan. Hal ini akan menyebabkan error karena tidak diperkenankan untuk

mendefinisikannya didalam fungsi struct, typedef maupun typedef struct. Sebagai gantinya,

pendefinisian dapat dilakukan apabila didalam int main atau diluar fungsi.

42

Page 43: Laporan Praktikum Resmi Searching

Sumber Referensi

Ardhana. YM Kusuma. 2013. Struktur Data Dalam Ilustrasi Eclipse Indigo C++

Yogyakarta : CAPS (Center of Academic Publishing Service)

43