laporan praktikum resmi algo1 bab5

Post on 15-May-2017

254 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

LAPORAN PRAKTIKUM RESMI

ALGORITMA & STRUKTUR DATA 1

Disusun oleh :

Nama : Joshua Steven Adrian

NIM : 201301015

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

Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam kumpulan data. Terdapat beragam algoritma pencarian (searching algorithm).

Menurut Tenenbaum dan Augenstein, algoritma pencarian merupakan algoritma yang menerima sebuah argument X dan mencoba untuk menemukan sebuah rekaman yang memiliki kunci X (Contoh : pencarian data Mahasiswa dengan NIM 201301015, maka hasilnyaadalah record yang berisi data mahasiswa tersebut didalamnya kemungkinan berisi nama, alamat, tempat tanggal lahir dan program studi).

Metode Pencarian Data : a. Pencarian sekuensial (sequential search) b. Pencarian biner (binary search) c. Pencarian pada string

A. Pencarian Sekuensial (sequential search)/ pencarian lurus (liniear search)

Merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data. Terdapat L yang merupakan larik (array) yang berisi n buah data (L[0],L[1],…,L[n-1]) dan k adalah data yang dicari. Rumus: L[i]=k i adalah bilangan index terkecil yang memenuhi kondisi 0 ≤ k ≤ n-1 contoh kasus: L[10, 9, 6, 4, 7, 5, 4, 1] Index Misalkan elemen data yang dicari adalah 4 (untuk posisi pertama). Dalam hal ini k=4 dan k ditemukan diposisi di index ke 3. Subrutin (perintah) tersebut merupakan implementasi algoritma secara sekuensial, dalam hal ini menghasilkan nilai balik berupa: 1. -1 jika data yang dicari tidak ditemukan 2. Bilangan antara 0 sampai -1 (dengan n adalah jumlah elemen larik) jika data yang dicari

telah ditemukan.

0 1 2 3 4 5 6 7

3

B. Pencarian biner (binary search)

Merupakan algoritma yang dipakai untuk kebutuhan pencarian data dengan waktu cepat (contoh: melakukan pencarian arti kata tertentu dalam kamus bahasa inggris). Prinsip pencarian dibagi menjadi 2 bagian mengilhami algoritma pencarian bagi dua. Data yang tersimpan dalam larik harus sudah dalam keadaan terurut.

C. Pencarian pada String Merupakan pencarian suatu huruf pada suatu kalimat.

4

BAB II

PENJELASAN PROGRAM

Pada penjelasan program bab ini akan dijelaskan mengenai bagaimana melakukan typedef & struct/ tipe data abstrak pada Program 5.1,Program 5.2 ,Program 5.3.

Listing Program 5.1

/* * 5.1.cpp * * Created on: Apr 1, 2014 * Author: ACER */ #include<iostream> usingnamespace std; intcari(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; } intmain() { int data[8]={10,9,6,4,7,5,4,1}; int dicari=4; cout<<"posisi "<<dicari<<" adadalamlarik data ke:"<<cari(data,8,dicari)<<"\n"; return 0; }

5

Output Program 5.1

Hasil output dari Program 5.1 adalah sebagai berikut :

Penjelasan Program 5.1

Berikut penjelasan dari Listing Program 5.1 :

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intcari(int data[], int n , int k)merupakan statement fungsi dengan nama fungsi cari.

Yang dimaksud int posisi,i,ketemu; adalah tipe data posisi ,I, dan ketemu berbentuk int/integer (bilangan bulat).

if (n <=0) posisi=-1; else { ketemu=0; i=1; while((i<n-1) && !ketemu) if (data[i] == k) { posisi=i; ketemu=i;

6

} else i++; if(!ketemu) posisi=-1; } return posisi; }

Merupakan statement if –else yang berfungsi untuk menyeleksi /pemilihan.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[8]={10,9,6,4,7,5,4,1}; adalah tipe data data berbentuk int/integer (bilangan bulat) yang isinya 8 karakter/digit, dan berisi 10, 9, 6, 4, 7, 5, 4, dan 1.

Yang dimaksud dengan int dicari=4; adalah tipe data dicariberbentuk int/integer (bilangan bulat) dan mencari pada index ke 4.

cout<<"posisi "<<dicari<<" adadalamlarik data ke :"<<cari(data,8,dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

Listing Program 5.2

/* * 5.2.cpp * * Created on: Apr 1, 2014 * Author: ACER */ #include<iostream> usingnamespace std; intcaribiner(int data[],int n,int k) { int ada, atas, bawah, tengah, posisi;

7

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; } intmain() { int data[]={10, 9, 7, 6, 5, 4, 3, 1}; int dicari=6; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n"; return 0; }

Output Program 5.2

Hasil output dari Program 5.2 adalah sebagai berikut :

Penjelasan Program 5.2

8

Berikut penjelasan dari Listing Program 5.2 :

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intcaribiner(int data[],int n,int k)merupakan statement fungsi dengan nama fungsi caribiner.

Yang dimaksud int ada, atas, bawah, tengah, posisi; adalah tipe data ada, atas, bawah, tengah dan posisi berbentuk int/integer (bilangan bulat).

ada=0; bawah=0; atas=n-1;

Yang dimaksud “ada” bernilai sama dengan 0, “bawah” bernilai sama dengan 0, “atas” bernilai n-1.

while (atas>=bawah) { tengah=(atas+bawah)/2;

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

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)

9

posisi=-1; return posisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[]={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data data berbentuk int/integer (bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.

Yang dimaksud dengan int dicari=6; adalah tipe data dicari berbentuk int/integer (bilangan bulat) dan mencari pada index ke 6.

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

Listing Program 5.3

/* * 5.3.cpp * * Created on: Apr 1, 2014 * Author: ACER */ #include<iostream> #include"cstring" usingnamespace std; intstring_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++;

10

} returnposisi; } intmain (){ char kalimat[]="Hallostikomyossudarso"; char dicari ='y'; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; return 0; }

Output Program 5.3

Hasil output dari Program 5.3 adalah sebagai berikut :

Penjelasan Program 5.3

Berikut penjelasan dari Listing Program 5.3 :

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

<cstring> merupakan pengarah praprosesor yang berisi kumpulan dari karakter.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intstring_kar(char st[], char k)merupakan statement fungsi dengan nama fungsi string_kar.

11

Yang dimaksud int i, posisi, panjang; adalah tipe data i, posisi, dan panjang berbentuk int/integer (bilangan bulat).

i=0; posisi=-1; panjang=strlen(st);

yang dimaksud adalah i bernilai sama dengan 0, posisi bernilai sama dengan -1, dan panjang bernilai strlen(st). Strlen merupakan fungsi manipulasi string untuk menghitung panjang string.

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

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(st[i] == k) posisi=i; i++; } returnposisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan char kalimat[]="Hallostikomyossudarso"; adalah tipe data kalimat berbentuk char (karakter) yang berisi "Hallostikomyossudarso".

Yang dimaksud dengan char dicari ='y'; adalah tipe data dicari berbentuk char (karakter) dan mencari pada index ke y.

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

Tugas Praktikum

12

Pada bagian ini kita akan membahas tugas praktikum ,berikut pertanyaan praktikumnya :

a. Membuat program 5.1 dengan menambahkan cout & cin agar user dapat

menginputkan angka sendiri.

b. Membuat program 5.2 dengan menambahkan cout & cin agar user dapat

menginputkan angka sendiri.

c. Membuat program 5.3 dengan menambahkan cout & cin agar user dapat

menginputkan angka sendiri.

d. Modifikasi program 5.1, 5.2, 5.3 dengan menggunakan tipe data abstrak (struct,

typedef, dan typedef & struct).

Jawaban :

1. Listing Program 5.1 dengan cout & cin

/* * co.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std; intcari(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;

13

} intmain() { int data[8]={10,9,6,4,7,5,4,1}; int dicari; cout<<"Masukkanangkayangdicari:"; cin>>dicari; cout<<"posisi "<<dicari<<" adadalamlarik data ke :"<<cari(data,8,dicari)<<"\n"; return 0; }

Output Program 5.1 dengan cout & cin

Hasil output dari Program 5.1 dengan cout & cin adalah sebagai berikut :

Penjelasan Program 5.1 dengan cout & cin

Berikut penjelasan dari Listing Program 5.1 dengan cout & cin:

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intcari(int data[], int n , int k)merupakan statement fungsi dengan nama fungsi cari.

Yang dimaksud int posisi,i,ketemu; adalah tipe data i, posisi, dan ketemu berbentuk int/integer (bilangan bulat).

if (n <=0) posisi=-1;

14

else { ketemu=0; i=1;

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

while((i<n-1) && !ketemu) { merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if (data[i] == k) { posisi=i; ketemu=i; } else i++; if(!ketemu) posisi=-1; } return posisi;}

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[8]={10,9,6,4,7,5,4,1};adalah tipe data data berbentuk int (bilangan bulat) yang berisi "10,9,6,4,7,5,4,1".

Yang dimaksud dengan char dicari; adalah tipe data dicari berbentuk char (karakter).

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"posisi "<<dicari<<" adadalamlarik data ke:"<<cari(data,8,dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

15

2. Listing Program 5.2 dengan cout & cin

/* * ci.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std; intcaribiner(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; } intmain() { int data[]={10, 9, 7, 6, 5, 4, 3, 1}; intdicari; cout<<"masukkanangkayangdicari :"; cin>>dicari; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n"; return 0; } Output Program 5.2 dengan cout & cin

16

Hasil output dari Program 5.2 dengan cout & cin adalah sebagai berikut :

Penjelasan Program 5.2 dengan cout & cin

Berikut penjelasan dari Listing Program 5.2 dengan cout & cin:

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intcaribiner(int data[],int n,int k)merupakan statement fungsi dengan nama fungsi caribiner.

Yang dimaksud int ada, atas, bawah, tengah, posisi; adalah tipe data ada, atas, bawah, tengah dan posisi berbentuk int/integer (bilangan bulat).

ada=0; bawah=0; atas=n-1;

Yang dimaksud “ada” bernilai sama dengan 0, “bawah” bernilai sama dengan 0, “atas” bernilai n-1.

while (atas>=bawah) { tengah=(atas+bawah)/2;

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(k>data[tengah]) bawah=tengah+1;

17

else if(k<data[tengah]) atas=tengah-1; else { ada=1; posisi=tengah; bawah=atas+1; } } if (!ada) posisi=-1; return posisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[]={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data data berbentuk int/integer (bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.

Yang dimaksud dengan int dicari=6; adalah tipe data dicari berbentuk int/integer (bilangan bulat) dan mencari pada index ke 6.

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

3. Listing Program 5.3 dengan cout & cin

/* * in.cpp *

18

* Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> #include"cstring" usingnamespace std; intstring_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; } intmain (){ char kalimat[]="Hallostikomyossudarso"; char dicari ='y'; cout<<"masukkanhurufyangdicari :"; cin>>dicari; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; return 0; }

Output Program 5.3 dengan cout & cin

Hasil output dari Program 5.3 dengan cout & cin adalah sebagai berikut :

Penjelasan Program 5.3 dengan cout & cin

Berikut penjelasan dari Listing Program 5.3 dengan cout & cin:

19

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

<cstring> merupakan pengarah praprosesor yang berisi kumpulan dari karakter.

Yang dimaksud using namespace std;adalah standar device sebuah program.

Yang dimaksud intstring_kar(char st[], char k)merupakan statement fungsi dengan nama fungsi string_kar.

Yang dimaksud int i, posisi, panjang; adalah tipe data i, posisi, dan panjang berbentuk int/integer (bilangan bulat).

i=0; posisi=-1; panjang=strlen(st);

yang dimaksud adalah i bernilai sama dengan 0, posisi bernilai sama dengan -1, dan panjang bernilai strlen(st). Strlen merupakan fungsi manipulasi string untuk menghitung panjang string.

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

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(st[i] == k) posisi=i; i++; } returnposisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan char kalimat[]="Hallostikomyossudarso"; adalah tipe data kalimat berbentuk char (karakter) yang berisi "Hallostikomyossudarso".

20

Yang dimaksud dengan char dicari ='y'; adalah tipe data dicari berbentuk char (karakter) dan mencari pada index ke y.

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

4. Listing Program 5.1 dengan tipe data abstrak (struct)

/* * ct.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std; struct{ intposisi; inti; intketemu; }a; intcari(int data[], int n , int k) { if (n <=0) a.posisi=-1; else { a.ketemu=0; a.i=1; while((a.i<n-1) && !a.ketemu) if (data[a.i] == k) { a.posisi=a.i; a.ketemu=a.i;

21

} else a.i++; if(!a.ketemu) a.posisi=-1; } return a.posisi; } intmain() { int data[8]={10,9,6,4,7,5,4,1}; int dicari; cout<<"Masukkanangkayangdicari:"; cin>>dicari; cout<<"posisi "<<dicari<<" adadalamlarik data ke :"<<cari(data,8,dicari)<<"\n"; return 0; } Output Program 5.1 dengan tipe data abstrak (struct)

Hasil output dari Program 5.1 dengan tipe data abstrak (struct) adalah sebagai berikut :

Penjelasan Program 5.1 dengan tipe data abstrak (struct)

Berikut penjelasan dari Listing Program 5.1 dengan tipe data abstrak (struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

22

struct{ intposisi; inti; intketemu; }a;

Merupakan statement struct (tipe data abstrak).

Yang dimaksud intcari(int data[], int n , int k)merupakan statement fungsi dengan nama fungsi cari.

if (n <=0) a.posisi=-1; else { a.ketemu=0; a.i=1;

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

while((a.i<n-1) && !a.ketemu) { merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if (data[a.i] == k) { a.posisi=a.i; a.ketemu=a.i; } else a.i++; if(!a.ketemu) a.posisi=-1; } return a.posisi; } Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi. Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[8]={10,9,6,4,7,5,4,1};adalah tipe data data berbentuk int (bilangan bulat) yang berisi "10,9,6,4,7,5,4,1".

Yang dimaksud dengan char dicari; adalah tipe data dicari berbentuk char (karakter).

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

23

cout<<"posisi "<<dicari<<" adadalamlarik data ke:"<<cari(data,8,dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

5. Listing Program 5.2 dengan tipe data abstrak (struct)

/* * uc.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std; struct{ intada; intatas; intbawah; inttengah; intposisi; }a; intcaribiner(int data[],int n,int k) { a.ada=0; a.bawah=0; a.atas=n-1; while (a.atas>=a.bawah) { a.tengah=(a.atas+a.bawah)/2; if(k>data[a.tengah]) a.bawah=a.tengah+1; else if(k<data[a.tengah]) a.atas=a.tengah-1; else { a.ada=1; a.posisi=a.tengah; a.bawah=a.atas+1; } } if (!a.ada) a.posisi=-1;

24

return a.posisi; } intmain() { int data[]={10, 9, 7, 6, 5, 4, 3, 1}; int dicari; cout<<"masukkanangkayangdicari :"; cin>>dicari; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n"; return 0; }

Output Program 5.2 dengan tipe data abstrak (struct)

Hasil output dari Program 5.2 dengan tipe data abstrak (struct) adalah sebagai berikut :

Penjelasan Program 5.2 dengan tipe data abstrak (struct)

Berikut penjelasan dari Listing Program 5.2 dengan tipe data abstrak (struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

struct{ intada; intatas; intbawah; inttengah; intposisi; }a;

25

Merupakan statement struct (tipe data abstrak).

Yang dimaksud intcaribiner(int data[],int n,int k)merupakan statement fungsi dengan nama fungsi caribiner.

a.ada=0; a.bawah=0; a.atas=n-1;

Yang dimaksud “a.ada” bernilai sama dengan 0, “a.bawah” bernilai sama dengan 0, “a.atas” bernilai n-1.

while (a.atas>=a.bawah) { a.tengah=(a.atas+a.bawah)/2;

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(k>data[a.tengah]) a.bawah=a.tengah+1; else if(k<data[a.tengah]) a.atas=a.tengah-1; else { a.ada=1; a.posisi=a.tengah; a.bawah=a.atas+1; } } if (!a.ada) a.posisi=-1; return a.posisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan int data[]={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data data berbentuk int/integer (bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.

Yang dimaksud dengan int dicari=6; adalah tipe data dicari berbentuk int/integer (bilangan bulat) dan mencari pada index ke 6.

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

26

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<caribiner(data, 8, dicari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

6. Listing Program 5.3 dengan tipe data abstrak (struct)

/* * ty.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> #include"cstring" usingnamespace std; struct{ inti, panjang, posisi; }a; intstring_kar(char st[], char k) { a.i=0; a.posisi=-1; a.panjang=strlen(st); while ((a.i<a.panjang-1) && a.posisi == -1) { if(st[a.i] == k) a.posisi=a.i; a.i++; } return a.posisi; } intmain (){ char kalimat[]="Hallostikomyossudarso"; char dicari ='y'; cout<<"masukkanhurufyangdicari :"; cin>>dicari; cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; return 0;

27

}

Output Program 5.3 dengan tipe data abstrak (struct)

Hasil output dari Program 5.3 dengan tipe data abstrak (struct) adalah sebagai berikut :

Penjelasan Program 5.3 dengan tipe data abstrak (struct)

Berikut penjelasan dari Listing Program 5.3 dengan tipe data abstrak (struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

<cstring> merupakan pengarah praprosesor yang berisi kumpulan dari karakter.

Yang dimaksud using namespace std;adalah standar device sebuah program.

struct{ inti, panjang, posisi; }a; Merupakan statement struct (tipe data abstrak).

Yang dimaksud intstring_kar(char st[], char k)merupakan statement fungsi dengan nama fungsi string_kar.

a.i=0; a.posisi=-1; a.panjang=strlen(st);

yang dimaksud adalah a.i bernilai sama dengan 0, a.posisi bernilai sama dengan -1, dan a.panjang bernilai strlen(st). Strlen merupakan fungsi manipulasi string untuk menghitung panjang string.

28

while ((a.i<a.panjang-1) && a.posisi == -1) {

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(st[a.i] == k) a.posisi=a.i; a.i++; } return a.posisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan char kalimat[]="Hallostikomyossudarso"; adalah tipe data kalimat berbentuk char (karakter) yang berisi "Hallostikomyossudarso".

Yang dimaksud dengan char dicari ='y'; adalah tipe data dicari berbentuk char (karakter) dan mencari pada index ke y.

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<dicari<<" dalamlarik data : "<<kalimat<<" : "<<string_kar(kalimat, dicari)<<"\n"; merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

7. Listing Program 5.1 dengan tipe data abstrak (typedef)

/* * yd.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std;

29

typedefintdata; typedefintn; typedefintk; typedefintposisi; typedefinti; typedefintketemu; typedefintcari; cariq(data a[], n b, k c) { posisi d; i e; ketemu f; if (b <=0) d=-1; else { f=0; e=1; while((e<b-1) && !f) if (a[e] == c) { d=e; f=e; } else e++; if(!f) d=-1; } return d; } intmain() { data a[8]={10,9,6,4,7,5,4,1}; cari t; cout<<"masukkanangkayangdicari:"; cin>>t; cout<<"posisi "<<t<<" adadalamlarik data ke :"<<q(a,8,t)<<"\n"; return 0; }

Output Program 5.1 dengan tipe data abstrak (typedef)

Hasil output dari Program 5.1 dengan tipe data abstrak (typedef) adalah sebagai berikut :

30

Penjelasan Program 5.1 dengan tipe data abstrak (typedef)

Berikut penjelasan dari Listing Program 5.1 dengan tipe data abstrak (typedef):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedefintdata; typedefintn; typedefintk; typedefintposisi; typedefinti; typedefintketemu; typedefintcari; Merupakan statement typedef (tipe data abstrak).

Yang dimaksud cariq(data a[], n b, k c)merupakan statement fungsi dengan nama fungsi q (dengan menggunakan tipe data abstrak (typedef)).

Yang dimaksud dengan posisi d;adalah tipe data d berbentuk posisi (bilangan bulat).

Yang dimaksud dengan i e;adalah tipe data e berbentuk i (bilangan bulat).

Yang dimaksud dengan ketemu f;adalah tipe data f berbentuk ketemu (bilangan bulat).

if (b <=0) d=-1; else { f=0; e=1; while((e<b-1) && !f) if (a[e] == c) { d=e; f=e;

31

} else e++; if(!f) d=-1; } return d; }

Merupakan statement if –else yang berfungsi untuk menyeleksi /pemilihan& statement perulangan.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan dataa[8]={10,9,6,4,7,5,4,1}; adalah tipe data a berbentuk data (bilangan bulat) yang isinya 8 karakter/digit, dan berisi 10, 9, 6, 4, 7, 5, 4, dan 1.

Yang dimaksud dengan carit; adalah tipe data t berbentuk cari (bilangan bulat).

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"posisi "<<t<<" adadalamlarik data ke :"<<q(a,8,t)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

8. Listing Program 5.2 dengan tipe data abstrak (typedef)

/* * typ.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> usingnamespace std; typedefintcari; typedefintdata;

32

typedefintn; typedefintk; typedefintposisi; typedefintada; typedefintatas; typedefintbawah; typedefinttengah; typedefintcaribiner; caribinerw(data a[], n b, k c) { ada d; atas e; bawah f; tengah g; posisi h; d=0; f=0; e=b-1; while (e>=f) { g=(e+f)/2; if(c>a[g]) f=g+1; else if(c<a[g]) e=g-1; else { d=1; h=g; f=e+1; } } if (!d) h=-1; return h; } intmain() { data a[]={10, 9, 7, 6, 5, 4, 3, 1}; cari t=6; cout<<"masukkanangkayangdicari :"; cin>>t; cout<<"Posisi "<<t<<" dalamlarik data : "<<w(a, 8, t)<<"\n"; return 0; }

Output Program 5.2 dengan tipe data abstrak (typedef)

33

Hasil output dari Program 5.2 dengan tipe data abstrak (typedef) adalah sebagai berikut :

Penjelasan Program 5.2 dengan tipe data abstrak (typedef)

Berikut penjelasan dari Listing Program 5.2 dengan tipe data abstrak (typedef):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedefintdata; typedefintn; typedefintk; typedefintposisi; typedefintada; typedefintatas; typedefintbawah; typedefinttengah; typedefintcaribiner; Merupakan statement typedef (tipe data abstrak).

Yang dimaksud caribinerw(data a[], n b, k c)merupakan statement fungsi dengan nama fungsi w.

Yang dimaksud : ada d; atas e; bawah f; tengah g; posisi h; adalah tipe data d berbentuk ada, tipe data e berbentuk atas, tipe data f berbentuk bawah, tipe data g berbentuk tengah dan tipe data h berbentuk posisi.

34

d=0; f=0; e=b-1; Yang dimaksud “d” bernilai sama dengan 0, “f” bernilai sama dengan 0, “e” bernilai n-1. while (e>=f) { g=(e+f)/2;

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(c>a[g]) f=g+1; else if(c<a[g]) e=g-1; else { d=1; h=g; f=e+1; } } if (!d) h=-1; return h; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan data a[]={10, 9, 7, 6, 5, 4, 3, 1}; adalah tipe data a berbentuk data (bilangan bulat) yang berisi 10, 9, 7, 6, 5, 4, 3, dan 1.

Yang dimaksud dengan cari t=6; adalah tipe data t berbentuk cari (bilangan bulat) dan mencari pada index ke 6.

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<t<<" dalamlarik data : "<<w(a, 8, t)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

35

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

9. Listing Program 5.3 dengan tipe data abstrak (typedef)

/* * 3.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> #include<cstring> usingnamespace std; typedefinti; typedefintpanjang; typedefintposisi; typedefintq; typedefcharst; typedefchark; typedefcharkalimat; typedefchardicari; ql(st a[], k b) { i c; posisi d; panjang e; c=0; d=-1; e=strlen(a); while ((c<e-1) && d == -1) { if(a[c] == b) d=c; c++; } return d; } intmain (){ kalimat f[]="Hallostikomyossudarso"; dicari g; cout<<"masukkanhurufyangdicari :"; cin>>g; cout<<"Posisi "<<g<<" dalamlarik data : "<<f<<" : "<<l(f, g)<<"\n"; return 0; }

36

Output Program 5.3 dengan tipe data abstrak (typedef)

Hasil output dari Program 5.3 dengan tipe data abstrak (typedef) adalah sebagai berikut :

Penjelasan Program 5.3 dengan tipe data abstrak (typedef)

Berikut penjelasan dari Listing Program 5.3 dengan tipe data abstrak (typedef):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

<cstring> merupakan pengarah praprosesor yang berisi kumpulan dari karakter.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedefinti; typedefintpanjang; typedefintposisi; typedefintq; typedefcharst; typedefchark; typedefcharkalimat; typedefchardicari; Merupakan statement typedef (tipe data abstrak).

Yang dimaksud ql(st a[], k b)merupakan statement fungsi dengan nama fungsi l.

Yang dimaksud : i c; posisi d; panjang e; adalah tipe data c berbentuk i,tipe data d berbentuk posisi, dan tipe data e berbentuk

panjang.

37

c=0; d=-1; e=strlen(st);

yang dimaksud adalah c bernilai sama dengan 0, d bernilai sama dengan -1, dan e bernilai strlen(st). Strlen merupakan fungsi manipulasi string untuk menghitung panjang string.

while ((c<e-1) && d == -1) {

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if(a[c] == b) d=c; c++; } return d; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

Yang dimaksud dengan kalimat f[]="Hallostikomyossudarso"; adalah tipe data f berbentuk kalimat (karakter) yang berisi "Hallostikomyossudarso".

Yang dimaksud dengan dicari g; adalah tipe data g berbentuk dicari (karakter).

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<g<<" dalamlarik data : "<<f<<" : "<<l(f, g)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

10. Listing Program 5.1 dengan tipe data abstrak (typedef & struct)

/* * ys.cpp * * Created on: Apr 15, 2014

38

* Author: ACER */ #include<iostream> using namespace std; typedef struct Find { int cari; }a; int Search(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 () { Find a; int data[8]={10,9,6,4,7,5,4,1}; cout<<"masukkan angka yang dicari:"; cin>>a.cari; cout<<"posisi "<<a.cari<<" ada dalam larik data ke : "<<Search(data,8,a.cari)<<"\n"; return 0; }

Output Program 5.1 dengan tipe data abstrak (typedef & struct)

Hasil output dari Program 5.1 dengan tipe data abstrak (typedef & struct) adalah sebagai berikut :

39

Penjelasan Program 5.1 dengan tipe data abstrak (typedef & struct)

Berikut penjelasan dari Listing Program 5.1 dengan tipe data abstrak (typedef & struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedef struct Find { int cari; }a;

Merupakan statement typedef struct (tipe data abstrak).

Yang dimaksud int Search(int data[],int n, int k) merupakan statement fungsi dengan nama fungsi cari.

Yang dimaksud dengan int posisi,i, ketemu; adalah tipe data posisi, i, ketemu berbentuk int/integer (bilangan bulat).

if(n<=0) posisi=-1; else { ketemu=0; i=1;

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

40

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

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if (data[i]==k) { posisi = i; ketemu = i; } else i++; if(!ketemu) posisi=-1; } return posisi; } Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi. Int main digunakan untuk memulai /memainkan program.

Find a; Merupakan statement Typedef Struct.

Yang dimaksud dengan int data[8]={10,9,6,4,7,5,4,1};adalah tipe data data berbentuk int (bilangan bulat) yang berisi "10,9,6,4,7,5,4,1".

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"posisi "<<a.cari<<" ada dalam larik data ke : "<<Search(data,8,a.cari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

11. Listing Program 5.2 dengan tipe data abstrak (typedef & struct)

/* * ts.cpp

41

* * Created on: Apr 21, 2014 * Author: ACER */ #include<iostream> using namespace std; typedef struct biner { int data; } a; 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() { biner a; int data[]={10,9,7,6,5,4,3,1}; cout<<"masukkan angka yang dicari :"; cin>>a.data; cout<<"Posisi "<<a.data<<" dalam larik data : "<<caribiner(data,8,a.data)<<"\n"; return 0; }

42

Output Program 5.2 dengan tipe data abstrak (typedef & struct)

Hasil output dari Program 5.2 dengan tipe data abstrak (typedef & struct) adalah sebagai berikut :

Penjelasan Program 5.2 dengan tipe data abstrak (typedef & struct)

Berikut penjelasan dari Listing Program 5.2 dengan tipe data abstrak (typedef & struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedef struct biner { int data; } a;

Merupakan statement typedef struct (tipe data abstrak).

Yang dimaksud int caribiner(int data[],int n,int k)merupakan statement fungsi dengan nama fungsi caribiner.

Yang dimaksud dengan int ada, atas, bawah, tengah, posisi; adalah tipe data ada, atas, bawah, tengah, posisi berbentuk int/integer (bilangan bulat).

ada=0; bawah=0; atas=n-1;

43

Yang dimaksud “ada” bernilai sama dengan 0, “bawah” bernilai sama dengan 0, “atas” bernilai n-1.

while (atas>=bawah) { tengah=(atas+bawah)/2;

merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

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

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

biner a; Merupakan statement Typedef Struct.

Yang dimaksud dengan int data[]={10,9,7,6,5,4,3,1}; adalah tipe data data berbentuk int (bilangan bulat) yang bernilai sama dengan "10,9,7,6,5,4,3,1".

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

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

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

44

12. Listing Program 5.3 dengan tipe data abstrak (typedef & struct)

/* * ctyjd.cpp * * Created on: Apr 15, 2014 * Author: ACER */ #include<iostream> #include<cstring> using namespace std; typedef struct kata { char cari; }a; 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() { kata a; char kalimat[]="Hallo stikom yos sudarso"; cout<<"masukkan huruf yang dicari:"; cin>>a.cari; cout<<"Posisi "<<a.cari<<" didalam string "<<kalimat<<": "<<string_kar(kalimat,a.cari)<<"\n"; return 0; }

Output Program 5.3 dengan tipe data abstrak (typedef & struct)

Hasil output dari Program 5.3 dengan tipe data abstrak (typedef & struct) adalah sebagai berikut :

45

Penjelasan Program 5.3 dengan tipe data abstrak (typedef & struct)

Berikut penjelasan dari Listing Program 5.3 dengan tipe data abstrak (typedef & struct):

Tanda yang diawali /* dan diakhiri tanda */ merupakan script untuk membuat sebuah komentar pada pemrograman C++ yang didalamnya mengandung sebuah perintah atau teks, maka saat program dirunning atau dijalankan tidak akan dibaca oleh compiler.

#include atau disebut sebagai pengarah preprocessor #include berfungsi untuk menginstruksikan compiler untuk menyertakan berkas C++ sumber yang lain sebelum kompilasi dimulai.

<iostream> merupakan pengarah praprosesor yang input/masukkannya menggunakan cout ,dan penampung data ke programnya/outpunya menggunakan cin.

Yang dimaksud using namespace std;adalah standar device sebuah program.

typedef struct kata { char cari; }a;

Merupakan statement typedef struct (tipe data abstrak).

Yang dimaksud int string_kar(char st[], char k) merupakan statement fungsi dengan nama fungsi string_kar.

Yang dimaksud dengan int i, posisi, panjang; adalah tipe data i, posisi, panjang berbentuk int/integer (bilangan bulat).

i=0; posisi = -1; panjang = strlen(st);

Yang dimaksud “i” bernilai sama dengan 0, “posisi” bernilai sama dengan -1, “panjang” bernilai strlen(st).

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

46

{ merupakan statement perulangan yang berfungsi untuk melakukan perulangan suatu program.

if (st[i]==k) posisi=i; i++; } return posisi; }

Merupakan statement if- else yang berfungsi untuk memilih /menyeleksi.

Int main digunakan untuk memulai /memainkan program.

kata a;

Merupakan statement Typedef Struct.

Yang dimaksud dengan char kalimat[]="Hallo stikom yos sudarso"; adalah tipe data kalimat berbentuk char (karakter) yang berisi sama dengan "Hallo stikom yos sudarso".

Cout berfungsi sebagai input/masukkan dalam program.

Cin berfungsi sebagai output/keluaran dalam program.

cout<<"Posisi "<<a.cari<<" didalam string "<<kalimat<<": "<<string_kar(kalimat,a.cari)<<"\n";

merupakan statement pemanggilan fungsi yang sebelumnya telah diinputkan.

Return 0 digunakan untuk menampilkan hasil running di IMD.

Tanda “{“ dan “}” berfungsi untuk membuka dan menutup badan prosedur.

47

BAB III

KESIMPULAN

Pencarian (searching) merupakan tindakan untuk mendapatkan suatu data dalam

kumpulan data. Terdapat beragam algoritma pencarian (searching algorithm).

Menurut Tenenbaum dan Augenstein: algoritma pencarian merupakan algoritma yang

menerima sebuah argument X dan mencoba untuk menemukan sebuah rekaman yang

memiliki kunci X.

Metode Pencarian Data :

a. Pencarian sekuensial (sequential search)

b. Pencarian biner (binary search)

c. Pencarian pada string

Pencarian Sekuensial (sequential search)/ pencarian lurus (liniear search)

Merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu

kumpulan data.

Pencarian biner (binary search)

Merupakan algoritma yang dipakai untuk kebutuhan pencarian data dengan waktu cepat

Pencarian pada String

Merupakan pencarian suatu huruf pada suatu kalimat.

Jadidengan melakukan statement searching seperti pada Program 5.1, Program 5.2,Program

5.3 maka dapat memudahkan untuk mencari suatu data yang dinginkan dalam kumpulan

data tersebut. Selain itu dengan statement ini kita dapat menghemat waktu/ efisien.

48

BAB IV

DAFTAR PUSTAKA

1. Modul praktikum algoritma & struktur data 1 (bab 5searching).

2. Ardhana. YM Kusuma. 2013. Struktur Data dalam Ilustrasi Eclips Indigo C ++.

Yogyakarta: CAPS (Center of Academic Publishing Service).

top related