Anda di halaman 1dari 23

LAPORAN PRAKTIKUM III

SEARCHING
Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data
Dibimbing oleh Ibu Triyanna Widyaningtyas

Oleh:
MUHAMMAD BAKHRUR RIZKI
150533604505
S1 PTI-C /2015

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Maret 2016

A.

TUJUAN
1.

Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur


Searching (Pencarian)

2.

Mahasiswa mampu melakukan analisis pada algoritma Searching yang dibuat

3.

Mahasiswa mampu mengimplementasikan algoritma Searching pada sebuah


aplikasi secara tepat dan efisien

4.

Mahasiswa mampu menjelaskan mengenai algoritma Searching.

5.

Mahasiswa mampu membuat dan mendeklarasikan struktur algoritma Searching.

6.

Mahasiswa mampu menerapkan dan mengimplementasikan algoritma Searching.


Latihan Praktikum I
Pemrograman C++

Nama Program

: Sequential Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi Fungsi cari

3.

Deklarasi variabel posisi, i, ketemu

4.

Proses kondisi jika banyaknya data kurang dari sama dengan 0

5.

Maka posisi -1

Jika banyaknya data lebih dari 0

Maka proses pencarian data

6.

Masuk menu utama

7.

Deklarasi array data

8.

Deklarasi variabel dicari

9.

Pemanggilan fungsi cari

10. selesai
Penjelasan Program

Program di atas digunakan untuk proses pencarian data pada kumpulan data yang
menggunakan metode sequential search, dimana data dalam array dibaca 1 demi satu, diurutkan
dari index terkecil ke index terbesar, maupun sebaliknya.
Proses jalannya program pertama-tama yaitu program akan melihat apakah banyaknya
data array kurang dari sama dengan 0 atau lebih dari 0, apabila kurang dari sama dengan 0
maka posisi data = -1, jika lebih dari 0 maka masuk proses pencarian data dengan cara mencari
satu persatu data dari array hingga ketemu.

Latihan Praktikum II
Pemrograman C++
Nama Program

: Binary Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma
1.

Mulai

2.

Deklarasi Fungsi poscar

Masuk proses pencarian data

3.

Masuk munu utama

4.

Deklarasi variabel kalimat, dicari

5.

Proses pemanggilan fungsi poscar

6.

Selesai

Penjelasan Program

Program di atas digunakan untuk proses pencarian data pada kumpulan data yang
menggunakan Metode binary search, pada metode pencarian ini, data harus diurutkan terlebih
dahulu. Pada metode pencarian ini, data dibagi menjadi dua bagian (secara logika), untuk setiap
tahap pencarian.
Proses jalanya program diatas yaitu pertama-tama program akan memproses fungsi
poskar, didalam fungsi inilah proses pencarian data dilakukan dengan cara membuat suatu
perulangan disini menggunakan fungsi while, yang digunakan untuk mencari data yang dicari
dengan melakukan pencarian dietiap data secara berulang-ulang. Lalu masuk ke menu utama
dan memanggila fungsi poskar tadi.

Latihan Praktikum III


Pemrograman C++
Nama Program

: Fibonacci Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi variabel

3.

Deklarasi array a dan array fibo

4.

Proses menampil data menggunakan perulangan for

5.

Proses perulangan while

6.

Input data yang ingin dicarri

7.

Proses pencarian data

8.

Selesai

Penjelasan Program

Program di atas digunakan untuk proses pencarian data pada kumpulan data yang
menggunakan Metode Fibonacci Search yaitu pencarian sebuah elemen dalam array satu
dimensi dengan menggunakan angka fibonacci sebagai titik-titik (indeks) elemen array yang
isinya dibandingkan dengan nilai yang dicari.Sama halnya dengan Binary Search, Fibonacci
Search juga mengharuskan data yang sudah terurut baik menaik (ascending) maupun menurun
(descending).
Pada program ini digunakan unuk menentukan apakah data yang ingin dicari ada didalam
kumpulan data atau tidak, apabila ada maka program akan menampilkan data ditemukan,
apabila tidak ada maka program akan menampilkan data tidak ditemukan.
Latihan Praktikum IV
Pemrograman C++
Nama Program

: Interpolation Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi variabel dan array

3.

Input data yang ingin dicari

4.

Prose perulangan do while untuk menentukan posisi data yang dicari

Proses menentukan posisi yang mau dicari

Proses kondisi jika data posisi sama dengan yang dicari

Proses kondisi jika data posisi lebih dari yang dicari

Data ditemukan

Jika posisi tidak ditandai

7.

Posisi tambah 1

Proses kondii jika posisi ditandai

6.

Posisi kurangi 1

Jilka data posisi kurang dari yang dicari

5.

Tandai dan keluar dari perulangan

Data tifak ditemukan

Selesai

Penjelasan Program

Program di atas digunakan untuk proses pencarian data pada kumpulan data yang
menggunakan Metode Interpolation Search yaitu pencarian sebuah elemen dalam array satu
dimensi dengan metode interpolasi atau perkiraan secara interpolasi, dimana data harus
diurutkan terlebih dahulu dengan menggunakan rumus

Posisi

kunci data[low]
x(high low) low
data[high] data[low]
.

a) Jika data[posisi] > data yg dicari, high = pos 1


b) Jika data[posisi] < data yg dicari, low = pos + 1
Pada program ini digunakan unuk menentukan apakah data yang ingin dicari ada didalam
kumpulan data atau tidak, apabila ada maka program akan menampilkan data ditemukan,
apabila tidak ada maka program akan menampilkan data tidak ditemukan.
Tugas Praktikum I
Pemrograman C++
Nama Program

: Pencarian Posisi Data dari Kanan

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi array dan variabel

3.

Input data yang ingin dicari

4.

Proses pencarian data menggunakan perulangan for

5.

Proses kondisi jika data sama dengan yang dicari maka

6.

tandai jumlah perulangannya dihitung mulai dari 1

dan kodisi berakhir

jaka data tidak sama dengan yang dicari maka

perulangan berlanjut hingga kondisi terselesaikan

7.

output jumlah perulangannya yang telah ditandai

8.

Selesai

Penjelasan Program

Program di atas digunakan untuk mencari posisi data yang ingin dicari dari sekumpulan
data dihitung dari sebelah kanan, dengan menggunakan metode sequential search, yaitu dengan
cara mencari satu persatu data yang sama seperti yang dicari didalam kumpulan data dengan
menggunakan perulangan, dan menandai berapa kali perulangan berlangsung, jika data sama
dengan yang dicari maka tampilkan jumlah perulangan dan perulangan berhenti, dan jika data
tidak sama dengan yang dicari maka perulangan berlanjut hingga kondisi terseleaikan.
Tugas Praktikum II
Pemrograman C++
Nama Program

: Menghitung jumlah suatu bilangan dari kumpulan data

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi array dan variabel

3.

Input data yang ingin dicari

4.

Proses pencarian data menggunakan perulangan for

5.

Proses kondisi jika data sama dengan yang dicari maka

6.

tandai jumlah data yang sama dengan data yang dicari

perulangan berlanjut hingga kondisi terselesaikan

jaka data tidak sama dengan yang dicari maka

perulangan berlanjut hingga kondisi terselesaikan

7.

output jumlah data yang sama yang telah ditandai

8.

Selesai

Penjelasan Program

Program di atas digunakan untuk menghitung banyaknya data yang dicari dari
sekumpulan data, dengan menggunakan metode sequential search, yaitu dengan cara mencari
satu peratu data yang sama seperti yang dicari didalam kumpulan data dengan menggunakan
perulangan, dan menandai berapa kali data yang sama itu ditemukan, jika data sama dengan
yang dicari maka tandai dengan memasukkan nilai 1 pada variabel yang dibuat untuk menandai
lalu kembali melakukan perulangan hingga kondisinya terselesaikikan, dan jika data tidak sama
dengan yang dicari maka perulangan berlanjut hingga kondisi terseleaikan. Setelah keluar dari
perulangan lalu tampilkan nilai dari variabel penanda.
Tugas Praktikum III
Pemrograman C++
Nama Program

: Mengubah Huruf Yang Dicari Menjadi Huruf Kapital

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi variabel dan array

3.

Input huruf yang ingin dicari

4.

Masuk perulangan for

5.

Masuk proses kondisi

Jika kata sama dengan yang dicari

Maka ubah kata menjadi huruf kapital, perulangan berlanjut

Jika tidak

Maka perulangan berlanjut

6.

Tampilkan kalimat yang telah diubah

7.

Selesai

Penjelasan Program

Program di atas digunakan untuk mencari huruf yang dicari dan mengubah huruf itu
menjadi huruf kapital, dengan menggunakan metode sequential search, yaitu dengan cara
mencari satu persatu huruf yang sama seperti yang dicari didalam kumpulan data huruf dengan
menggunakan perulangan, jika huruf tersebut sama dengan huruf yang dicari maka huruf
tersebut diubah menjadi huruf kapital, lalu perulangan berlanjut kembali hingga kondisi
terpenuhi, apabila huruf tersebut tidak sama dengan huruf yang dicari maka perulangan
langsung dilanjutkan hingga kondisi terpenuhi, setelah perulangan selesai tampilkan data
kalimat yang telah diubah.

Tugas Praktikum IV
Pemrograman C++
Nama Program

: Pencarian nama

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

Output Program

Algoritma

1.

Mulai

2.

Deklarasi variabel dan array

3.

Tampilkan daftar nama

4.

Masukkan kunsi nama

5.

Proses pencarian nama yang sesuai dengan kata kunci

6.

Selesai

Penjelasan Program

Program di atas digunakan untuk pencarian nama dengan menggunakan kata kunci dari
nama tersebut, dengan menggunakan metode sequential search, yaitu dengan cara mencari satu
persatu daftar nama lalu mencari apakah ada kalimat yang sesuai dengan kata kunci tersebut,
apabila ada maka nama terebut ditampilkan.
Tugas Rumah I
Pemrograman C++
Nama Program

: Pencarian nama

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#include <stdio.h>
#include <conio.h>
#include <windows.h>
struct dt{ char nm[50], kd[8]; int hg,st; };
dt barang[10];
int te(int *t);
int ratabeli(int t);
int main(){
int pil,lop,a=0,b=0;

do{
system("cls");
printf("\n\t\t\t SELAMAT DATANG DI PUSAT PEMBELANJAAN DISTRO DAYSTROM");
printf("\n\n 1. Masukkan data barang ");
printf("\n\n 2. Tampilkan Semua data barang ");
printf("\n\n 3. Tambahkan Stok Barang ");
printf("\n\n 4. Kurangi Stok Barang ");
printf("\n\n 5. Ubah harga ");
printf("\n\n 6. Hapus Data ");
printf("\n\n 7. Keluar ");
printf("\n\n\t\t\t\t Masukkan Pilihan Anda : ");
scanf("%d",&pil);
system("cls");
switch(pil){
case 1:
printf("\n\n\t\t\tTAMBAH DATA BARANG");
do{
printf("\n\n I> Masukkan kode barang : ");
scanf("%s",&barang[a].kd);
lop=0;
if(strlen(barang[a].kd)>4){
printf("\n\n\t\tMaaf, Kode Barang tidak boleh lebih dari 4 angka");
lop=1;
}
else if(a>0){
for(b=0;b<a;b++)
if(strcmp(barang[a].kd,barang[b].kd)==0){
printf("\n\n\t\tMaaf, Kode Barang yang anda masukkan sudah terdaftar");
lop=1;}}}
while(lop>0);
printf("\n I> Masukkan Nama Barang : ");
gets(barang[a].nm);
gets(barang[a].nm);
printf("\n I> Masukkan Harga Barang : Rp. ");
scanf("%d",&barang[a].hg);
printf("\n I> Masukkan Jumlah Barang (Stok) : ");
scanf("%d",&barang[a].st);
a++; break;
case 2:
printf("\n\n\t\t\tList Data Barang");
printf("\n\n No || Kode Barang || Nama\t|| Harga Barang\t|| Stok\t||\n\n");
for(b=0;b<a;b++)
printf("
%d.
||
%s
||
%s\t||
Rp.
%d\t||
%d\t||\n\n",b+1,barang[b].kd,barang[b].nm,barang[b].hg,barang[b].st);
system("pause");
break;
case 3:
char kdA[8];
int ubah;

printf("\n\n\t\t\tTambahkan Stok");
tambah:
printf("\n\n Masukkan Kode Barang : ");
scanf("%s",&kdA);
for(b=0;b<a;b++){
if(strcmp(kdA,barang[b].kd)==0)
break;
else if(b==(a-1) && strcmp(kdA,barang[b].kd)!=0){
printf("\n\n\t\tMaaf, Kode Barang yang anda masukkan tidak terdaftar");
goto tambah;
}}
printf("\n\n Stok barang %s : %d",kdA,barang[b].st);
printf("\n\n Masukkan Jumlah Stok yang ditambahkan : ");
scanf("%d",&ubah);
barang[b].st+=ubah;
printf("\n\n Stok Berhasil ditambahkan...\n\n");
system("pause");
break;
case 4:
printf("\n\n\t\t\tKurangi Stok");
kurang:
printf("\n\n Masukkan Kode Barang : ");
scanf("%s",&kdA);
for(b=0;b<a;b++){
if(strcmp(kdA,barang[b].kd)==0)
break;
else if(strcmp(kdA,barang[b].kd)!=0 && b==a-1){
printf("\n\n\t\tMaaf, Kode Barang yang anda masukkan tidak terdaftar");
goto kurang;
}}
printf("\n\n Stok barang %s : %d",kdA,barang[b].st);
printf("\n\n Masukkan Jumlah Pengurangan Stok : ");
scanf("%d",&ubah);
barang[b].st-=ubah;
printf("\n\n Stok telah dikurangi...\n\n");
system("pause");
break;
case 5:
printf("\n\n\t\t\tUbah Harga");
ubah:
printf("\n\n Masukkan Kode Barang : ");
scanf("%s",&kdA);
for(b=0;b<a;b++){
if(strcmp(kdA,barang[b].kd)==0)
break;
else if(strcmp(kdA,barang[b].kd)!=0 && b==a-1){
printf("\n\n\t\tMaaf, Kode Barang yang anda masukkan tidak terdaftar");
goto ubah;

}}
printf("\n\n Harga Lama %s : Rp. %d ",kdA,barang[b].hg);
printf("\n\n Masukkan Harga Baru : Rp. ");
scanf("%d",&ubah);
barang[b].hg=ubah;
printf("\n\n Harga Barang Berhasil diubah...\n\n");
system("pause");
break;
case 6:
printf("\n\n\t\t\tHapus Data");
hapus:
printf("\n\n Masukkan Kode Barang : ");
scanf("%s",&kdA);
for(b=0;b<a;b++){
if(strcmp(kdA,barang[b].kd)==0)
break;
else if(strcmp(kdA,barang[b].kd)!=0 && b==a-1){
printf("\n\n\t\tMaaf, Kode Barang yang anda masukkan tidak terdaftar");
goto hapus;
}
}
a--;
for(;b<a;b++){
strcpy(barang[b].kd,barang[b+1].kd);
strcpy(barang[b].nm,barang[b+1].nm);
barang[b].hg=barang[b+1].hg;
barang[b].st=barang[b+1].st;
}
printf("\n\n Data Barang Berhasil dihapus...\n\n");
system("pause");
break;
case 7:
printf("\n\n\t\t\tTerimakasih");
return 0;
}
} while(pil!=7);}

Output Program

Algoritma

1.

Mulai

2.

Deklarasi variabel dan array

3.

masuk menu pilihan proses switch case

jika memilih 1

jika memilih 2

proses menghapus data barang

jika memilih 7

4.

proses mengubah harga barang

jika memilih 6

proses mengurangi stok barang

jika memilih 5

proses penambahan stok barang

jika memilih 4

proses penampilan barang

jika memilih 3

proses penambahan barang

keluar atau selesai

akhir proses switch case

Penjelasan Program

Program di atas digunakan untuk memanajemen kondisi barang dari suatu swalayan,
dengan menggunakan metode sequential search, dimana sekuensial search ialah dengan
mengecek satu persatu indeks dari struct dari depan ke belakang atau dari awal sampai akhir,

dengan demikian apabila data yang tersebut tidak ditemukan dari indeks ke 0 akan melanjutkan
ke indeks berikutnya.
KESIMPULAN
Secara umum search dapat diartikan mencari data dengan cara menelusuri tempat
penyimpanan data tersebut. Tempat penyimpanan data dalam memory dapat berupa array atau
dapat juga dalam bentuk Linked List.
Pencarian dapat dilakukan terhadap data yang secara keseluruhan berada dalam memory
komputer ataupun terhadap data yang berada dalam penyimpanan eksternal (hard disk).
Terdapat empat metode searchching yang kita pelajari pada praktikum kali ini yaitu:
1.

Sequential Search

2.

Binnari Search

3.

Fibonacci Search

4.

Interpolation Search

Setelah melakukan praktikum ini saya bisa melakukan perancangan aplikasi struktur
Searching, melakukan analisis pada algoritma Searching, dan mengimplementasikan algoritma
tersebut kedalam bentuk program.
DAFTAR RUJUKAN
1.

Tim Asisten Dosen. 2015. Modul 1 Struct, Array, Pointer. Malang: Universitas Negeri
Malang.

2.

Tim Asisten Dosen. 2015. Modul 2 Sorting (pengurutan). Malang: Universitas Negeri
Malang.

3.

Tim Asisten Dosen. 2015. Modul 3 Searching. Malang: Universitas Negeri Malang.

Anda mungkin juga menyukai