SEARCHING
Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data
Dibimbing oleh Ibu Triyanna Widyaningtyas
Oleh:
MUHAMMAD BAKHRUR RIZKI
150533604505
S1 PTI-C /2015
A.
TUJUAN
1.
2.
3.
4.
5.
6.
Nama Program
: Sequential Search
Bahasa Pemrogramam
: C++
Compiler
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
Maka posisi -1
6.
7.
8.
9.
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
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
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.
: Fibonacci Search
Bahasa Pemrogramam
: C++
Compiler
Script program
Output Program
Algoritma
1.
Mulai
2.
Deklarasi variabel
3.
4.
5.
6.
7.
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
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
Data ditemukan
7.
Posisi tambah 1
6.
Posisi kurangi 1
5.
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]
.
Bahasa Pemrogramam
: C++
Compiler
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
6.
7.
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
Bahasa Pemrogramam
: C++
Compiler
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
6.
7.
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
Bahasa Pemrogramam
: C++
Compiler
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
Jika tidak
6.
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
Script program
Output Program
Algoritma
1.
Mulai
2.
3.
4.
5.
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
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.
3.
jika memilih 1
jika memilih 2
jika memilih 7
4.
jika memilih 6
jika memilih 5
jika memilih 4
jika memilih 3
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.