Anda di halaman 1dari 26

LAPORAN MODUL 3

SEARCHING (PENCARIAN)

Untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data


Yang Dibimbing oleh Ibu Triyanna

Disusun Oleh :
Septian Adi Pratama
150533604474

S1 PTI OFF D 2015

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
MARET 2016
SEARCHING (PENCARIAN)

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

2. Dasar Teori
1) Linked List
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).

1.1. Sequential Search


Teknik pencarian data dari array yang paling mudah adalah dengan cara
sequential search, dimana data dalam array dibaca 1 demi satu, diurutkan dari index
terkecil ke index terbesar, maupun sebaliknya.

Array
int A[5] = {12, 13, 19, 27, 28}
Misalkan, dari data diatas angka yang akan dicari adalah angka 19 dalam
array A, maka proses yang akan terjadi pada proses pencarian adalah sebagai
berikut.
 Pencarian dimulai pada index ke-0 yaitu angka 12, kemudian
dicocokan dengan angka yang akan dicari, jika tidak sama
makapencarian akan dilanjutkan ke index selanjutnya.
 Pada index ke-1, yaitu angka 13, juga bukan angka yang dicari, maka
pencarian juga akan dilanjutkan pada index selanjutnya.
 Pada index ke-2, yaitu angka 19, ternyata angka 19 merupakan angka
yang dicari. Pencarian angka telah ditemukan, maka pencarian akan
dihentikan dan keluar dari looping pencarian.

1.2. Binary Search


Metode pencarian yang kedua adalah 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.
Algoritma binary search :
a) Data diambil dari posisi 1 sampai posisi akhir N
b) Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir)
/2
c) Kemudian data yang dicari dibandingkan dengan data yang di tengah,
apakah sama atau lebih kecil, atau lebih besar?
d) Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah
posisi tengah+1
e) Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah
posisi tengah–1
f) Jika data sama, berarti ketemu.

1.3. Fibonacci Search


Fibonacci Search adalah 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).

1.4. Interpolation Search


Interpolation Search adalah pencarian sebuah elemen dalam array satu dimensi
dengan metode interpolasi atau perkiraan secara interpolasi, dimana data harus
diurutkan terlebih dahulu.
a) Jika data[posisi] > data yg dicari, high = pos – 1
b) Jika data[posisi] < data yg dicari, low = pos + 1

3. Latihan Praktikum
Percobaan 1
Algoritma dan Struktur Data
Nama Program : Sequential Searching
Syntax :
#include <stdio.h>

int cari (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 = 1;
}
else
i++;
if(!ketemu)
posisi = -1;
}
return posisi;
}

int main()
{
int data[5]= {12, 13, 19, 27, 28};
int dicari = 19;

printf("\tMetode Sequentian Search\n\n");


printf("Data: 12, 13, 19, 27, 28\n\n");
printf("Posisi %d berada pada index ke-: %d \n", dicari, cari(data,
5, dicari));

return 0;

Tampilan Output :

Algoritma :
1. Mulai
2. Melihat file header
3. Melihat Fungsi
4. Mlihat fungsi cari
5. Mendeklarasi variabel posisi, i, ketemu
6. Menampilkan tampilan eksekusi
7. Selesai

Penjelasan Program :
Pertama membuat header yang akan dipakai diprogram yaitu #include <stdio.h>
yang berfungsi sebagai file header untuk mengaktifkan printf-scanf. Pertama-tama program
akan membaca fungsi cari. Kedua fungsi utama. Lalu dari situ kita akan melakukan fungsi
cari. Selanjutnya akan kembali ke fungsi cari untuk mencari dan menampilkan hasil yaitu
letak/posisi.

Percobaan 2
Algoritma dan Struktur Data
Nama Program : Binary Searching
Syntax :
#include <stdio.h>
#include <string.h>

int poskar (char st[], char m)


{
int i, posisi, panjang;

i=0;
posisi = -1;
panjang = strlen(st);
while((i < panjang-1) && posisi == -1)
{
if(st[i] == m)
posisi = i;
i++;
}
return posisi;
}

int main()
{
printf("\t Metode Binary Search\n\n");

char kalimat[] = "Teknik Informatika";


char dicari = 'm';

printf("\nPosisi %c dalam string %s berada di index ke- [%d]


", dicari, kalimat, poskar(kalimat, dicari));

dicari = 'n';
printf("\nPosisi %c dalam string %s berada di index ke- [%d]
", dicari, kalimat, poskar(kalimat, dicari));
return 0;
}

Tampilan Output :

Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi program
4. Membaca fungsi poskar
5. Deklarasi variabel int i, posisi, panjang
6. Deklarasi Inisialisasi variabel : i = 0, posisi = -1, panjang = strlen(st)
7. Membaca rumus program
8. Membaca menu utama
9. Menampilkan hasil dari eksekusi program
10. Selesai

Penjelasan Program :
Pertama membuat header yang akan dipakai diprogram yaitu #include <stdio.h>
#include <string.h>. yang fungsi dari header stdio.h adalah untuk printf-scanf. Lalu string
untuk mendeklarasi string. Kemudian fungsi poskar untuk menentukan posisi dari data
tersebut. Dari fungsi poskar tersebut akan dilakukan pendeklarasian sebuah variabel.
Setelah itu program akan membaca fungsi utamanya kemudian melaukan deklarasi variabel
dan menggunakan fungsi dari poskar lalu menampilkna hasilnya
Percobaan 3
Algoritma dan Struktur Data
Nama Program : Fibonacci Searching
Syntax :
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;

int main()
{
int i, j, F0, F1, Fibo, n, m, N, Flag, x;
int FK, FK1, FK2, FK3, s, p, q, t;
int A[10] = {8, 15, 21, 28, 31, 37, 39, 46, 48, 50};
int FIBO[8];
cout<<"\tMetode Fibonacci Search\n\n";
cout<<"data : ";
for(x=0; x<10; x++)
{
cout<<A[x]<<" ";
n = 9;
F0 = 1; F1 = 1; Fibo = 1;
j = 1;
}

while (Fibo <= n+1)


{
FIBO[j] = Fibo;
Fibo = F0+F1; F0=F1; F1=Fibo;
j++;
}

s = j - 1;
FK = FIBO[s];
FK1 = FIBO[s-1]; i = FK1;
FK2 = FIBO[s-2]; p = FK2;
FK3 = FIBO[s-3]; q = FK3;

m = (n+1) - FK;
printf("\n\nMasukan data yang ingin dicari : ");
scanf("%d", &N);

if(N > A[i]) i = i+m;


Flag = 0;
while(i != 0 && Flag == 0)
{
if(N == A[i]) Flag = 1;

else if(N < A[i])


{
if(q == 0) i = 0;
else
{
i = i - q;
t = p;
p = q;
q = t - q;
}
}
else
{
if(p == 1)
i = 0;
else
{
i = i + q;
p = p - q;
q = q - p;
}
}
}
if(Flag == 1)
printf("\nData ditemukan");
else
printf("\nData tidak ditemukan");
}

Tampilan Output :

Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi utama
4. Deklarasi dan inisialisasi variabel dan array
5. Menampilkan data dari program
6. Memasukkan data yang akan dicari pada saat eksekusi
7. Melakukan proses pencarian
8. Menampilkan hasil
9. Selesai

Penjelasan Program :
Pertama menentukan header yang akan dipakai oleh program tersebut yaitu
#include <stdio.h> , #include <conio.h> , #include <iostream>. Tujuan dari stdio.h adalah
untuk printf dan scanf , lalu conio.h untuk mendeklarasi getch , dan iostream untuk
mendeklarasikan cout dan cin. Pertama program akan membaca fungsi utama dari program
tersebut. Lalu, akan melakukan pendeklarasian variabel. Program akan menerima data yang
akan dicari. Setelah itu melakukan pencarian.

Percobaan 4
Algoritma dan Struktur Data
Nama Program : Interpolation Searching
Syntax :
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
int data[10] = {9, 17, 24, 25, 36, 49, 52, 54, 59, 60};
int low, high, cari, posisi;
float posisi1;
int N = 10, tanda = 0;
low = 0, high = N - 1;

cout<<"\tMetode Interpolation Search\n\n";


cout<<" Data : 9, 17, 24, 25, 36, 49, 52, 54, 59, 60\n";
cout<<"\n Masukkan data yang dicari : ";
cin>>cari;
do
{
posisi1 = (cari-data[low])/(data[high]-data[low])*(high-low)
+low;
posisi = floor(posisi1);//pembulatan ke bawah
if(data[posisi] == cari){
tanda = 1;
break;
}

if(data[posisi]>cari)
high=posisi-1;
else if(data[posisi]<cari)
low=posisi+1;
}

while (cari>=data[low]&&cari<=data[high]);
{
if(tanda==1)
cout<<"\nData ditemukan\n";
else
cout<<"\nData tidak ada\n";
}
}

Tampilan Output :

Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi utama dari program tersebut
4. Deklarasi dan inisialisasi variabel dan array
5. Menampilkan data program
6. Memasukkan data yang akan dicari
7. Melakukan pencarian
8. Menampilkan hasil
9. Selesai

Penjelasan Program :
Pertama menentukan header yang kan dibuat yaitu #include <iostream> , #include
<math.h>. Fungsi dari header iostream ini adalah untuk mendeklarasi cout dan cin , math.h
adalah untuk mendeklarasi bilangan atau angka. Pertama program membaca fungsi utama.
Lalu, akan melakukan deklarasi variabel. Kemudian program menerima masukan data yang
telah dicari. Setelah itu program akan melakukan pencarian.

Tugas Praktikum 1
Algoritma dan Struktur Data
Nama Program : Pencarian bilangan terkanan dalam Array
Syntax :
#include <iostream.h>
#include <stdio.h>

int poscar(int st[],int m)


{
int i, posisi,panjang,n=1;

i = 9;
panjang = 10;
while (i>0)
{
if (st[i] ==m)
{
posisi = n;
i=0;
}
n++;
i--;
}
return posisi;
}

int main()
{
int cari [10] = {6,7,3,5,1,7,9,6,5,8};
int dicari;
cout<<"\nMencari Posisi Terkanan Bilangan dalam Array"<<endl;
cout<<"\nData : 6 7 3 5 1 7 9 6 5 8"<<endl;
cout<<"\nMasukan posisi data yang dicari : "; cin>>dicari;
printf ("\nPosisi terkanan bilangan %d berada pada index ke- %d",
dicari, poscar (cari,dicari));
return 0;
}

Tampilan Output :
Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi utama dari program
4. Deklarasi dan inisialisasi array data
5. Deklarasi variabel masukan
6. Menampilkan data program
7. Memasukkan data yang akan dicari
8. Melakukan proses pencarian tempat data
9. Selesai

Penjelasan Program :
Pertama menenntukan header yang kan dibuat yaitu #include <iostream.h> ,
#include <conio.h>. Pertama akan membaca fungsi dari program dan melakukan deklarasi
variabel masukan dan deklarasi array data. program akan menampilkan tampilan dan
menerima inputan dari user. Apabila input sesuai dengan datanya maka akan ditampilkan
datanya berada urutan ke berapa dan apabila tidak sesuai, program akan terhenti.

Tugas Praktikum 2
Algoritma dan Struktur Data
Nama Program : Penghitungan jumlah bilangan dalam Array
Syntax :
#include <stdio.h>

int cari(int data[], int uk, int a)


{
int posisi, i, flag=0;
for (i=0;i<uk-1;i++)
{
if(data[i] == a)
{
flag++;
}
}
return flag;
}

int main()
{
int data[10] = {4, 5, 3, 5, 1, 7, 9, 6, 5, 8};
int dicari, jumlah;
printf("\n Menghitung Jumlah Bilangan dalam Array\n");
printf(" Data : 4 5 3 5 1 7 9 6 5 8\n\n");
printf(" Masukkan data yang dicari : ");
scanf("%d",&dicari);
printf(" Jumlah bilangan %d dalam array adalah : %d", dicari,
cari(data, 10, dicari));
}

Tampilan Output :

Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi utama dari program
4. Deklarasi dan inisialisasi array dan variabel
5. Menampilkan tampilan awal
6. Memasukkan data yang akan dicari
7. Melakukan proses pencarian data dan jumlah
8. Menampilkan hasil eksekusi
9. Selesai

Penjelasan Program :
Pertama menentukan header yang kan dibuat yaitu #include <iostream.h> , #include
<conio.h>. Lalu, membaca fungsi program dan melakukan deklarasi variabel masukan.
Kemudian program akan menampilkan tampilan dan menerima inputan dari user. Terus,
Melakukan pencarian jumlah dari data yang akan dicari. Jika inputan jumlah tersebut sesuai
maka akan menampilkan jumlah sesuai, jika tidak maka jumlah yang ditampilkan = 0.

Tugas Praktikum 3
Algoritma dan Struktur Data
Nama Program : Pengubah karakter dari kecil menjadi Kapital
Syntax :
#include <iostream.h>
#include <conio.h>

int main() {
char data[100] = "Universitas Negeri Malang";
int a=0;
cout << " Mengganti karakter 'a' menjadi 'A'" << endl;

cout << "\n Kalimat : "<<data;


cout << "\n Menjadi : ";
for(int i = 0;;i++) {
a++;
if(data[i] == '\0') {
break;
}
}
for(int i =0;i < a;i++) {
if(data[i] == 'a') {
data[i] = 'A';
}
}
cout << data;
}
Tampilan Output :

Algoritma :
1. Mulai
2. Membaca file header
3. Membaca fungsi utama dari program
4. Deklarasi dan inisialisasi array dan variabel
5. Menampilkan tampilan awal
6. Melakukan toupper pada a menjadi A
7. Menampilkan hasil
8. Selesai

Penjelasan Program :
Pertama menentukan header yang kan dibuat yaitu #include <iostream.h> ,
#include <conio.h>. Kemudian membaca fungsi. Setelah itu program akan mencari karakter
a dari array data. Kemudian program akan mengubah a menjadi huruf kapital ‘A’ dan
menampilkan hasil dalam bentuk kalimat yang sudah ditentukan tadi.

Tugas Praktikum 4
Algoritma dan Struktur Data
Nama Program : Pencarian Nama
Syntax :
#include <iostream.h>
#include <string.h>
using namespace std;
int main() {
char kata[5][100] = {"ayuningtyas", "ayung", "rahayu", "bayu",
"diah"};
char kunci[] = "ayu";
int exists;
cout << "\t\tProgram Pencarian Nama \n\n";
cout << "Daftar nama : ";
for(int i = 0;i < 5;i++) cout << kata[i] << " ";
cout << "\n\n";
cout << "Nama yang mengandung nama 'ayu' adalah : " << endl;
for(int i = 0;i < 5;i++) {
exists = strstr(kata[i],kunci)!=NULL;
if(exists == 1) {
cout << kata[i] << endl;
}
}
}
Tampilan Output :

Algoritma :
1. Mulai
2. Membaca header program
3. Membaca fungsi utama program
4. Deklarasi array dan variabel
5. Menampilkan tampilan awal dan daftar nama
6. Melakukan pencarian untuk kata ‘ayu’
7. Menampilkan data hasil yang dicari
8. Selesai

Penjelasan Program :
Pertama menentukan header yang kan dibuat yaitu #include <iostream.h> ,
#include <conio.h>. yang fungsinya iostream adalah untuk mendeklarasikan cout dan cin.
Lalu, fungsi dari conio.h adalah untuk mendeklarasikan getch. Kemudian fungsi utama dari
program tersebut. Kemudian, program menampilkan data yaitu data array kata. Kemudian
akan mencari kata ayu. Dan menampilkanya pada saat dieksekusi.

Tugas Rumah
Algoritma dan Struktur Data
Nama Program : Program Kassir Supermarket Idaman Anak Kost
Syntax :
#include <iostream.h>
#include <conio.h>
using namespace std;

void tambah_barang();
void edit_barang();
void delete_barang();
void melihat_barang();

struct barang {
char kb[10];
char nb[50];
char h[50];
char s[50];
};

int jml_brg = 5;

char barang[4][50][100] =
{
{"301", "102", "103", "104", "505"}, //KodeBarang
{"Mie", "Kopi", "Teh", "Susu", "Gelas"}, //NamaBarang
{"3000", "15000", "12000", "16000", "20000"}, //Harga
{"12", "15", "20", "22", "5"}, //Stok
};

int main() {
int masukan;

cout << "\tSelamat Datang di Supermarket Idaman Anak Kost \n\n";


cout << "Main Menu : \n\n";
cout << "+----+------------------------------+\n";
cout << "| NO | Main Menu |\n";
cout << "+----+------------------------------+\n";
cout << "| 1. | Menambah barang |\n";
cout << "| 2. | Edit barang |\n";
cout << "| 3. | Delete barang |\n";
cout << "| 4. | Melihat barang |\n";
cout << "+----+------------------------------+\n";
cout << "Masukkan nomer pada main menu : ";cin >> masukan;
switch(masukan) {
case 1:
tambah_barang();
break;
case 2:
edit_barang();
break;
case 3:
delete_barang();
break;
case 4:
melihat_barang();
break;
}
}
void tambah_barang() {
system("cls");
struct barang brg;
char ulang;
cout << "\t Menu Menambah barang \n \n";
cout << "Masukkan kode barang : ";cin >> brg.kb;
cout << "Masukkan nama barang : ";cin >> brg.nb;
cout << "Masukkan harga : ";cin >> brg.h;
cout << "Masukkan stock : ";cin >> brg.s;
cout << "\n \n";
cout << "Data yang anda inputkan : \n";
cout << "Kode Barang : " << brg.kb << endl;
cout << "Nama Barang : " << brg.nb << endl;
cout << "Harga Barang : " << brg.h << endl;
cout << "Stock Barang : " << brg.s << endl;

jml_brg++;
strcpy(barang[0][jml_brg-1], brg.kb);
strcpy(barang[1][jml_brg-1], brg.nb);
strcpy(barang[2][jml_brg-1], brg.h);
strcpy(barang[3][jml_brg-1], brg.s);
cout << "Data yang anda masukkan sukses \n";
while(1) {
cout << "Apakah anda ingin mengulang menginput data (Y /
N) ?";cin >> ulang;
if(ulang == 'Y' || ulang == 'y') {
system("cls");
tambah_barang();
break;
}
else if(ulang == 'N' || ulang == 'n') {
system("cls");
main();
break;
}
else {
continue;
cout << "\n";
}
}
}
void edit_barang() {
system("cls");
char masukan[10];
int no_array=-1;
struct barang brg;
cout << "\t Menu edit barang \n \n";
cout << "Daftar barang : \n";
cout << "+-----+-----------------+--------------------
+-------------+-----------+\n";
cout << "| No | Kode Barang | Nama Barang | Harga
| Stock |\n";
cout << "+-----+-----------------+--------------------
+-------------+-----------+\n";
for(int i = 0;i < jml_brg;i++) {
cout << " " << i+1 << " " << barang[0][i] << " "
<< barang[1][i] << "\t\t" << barang[2][i] << "\t\t" << barang[3][i] <<
endl;
}
cout << "\n \n";
cout << "Masukkan E untuk kembali ke main menu \n";
cout << "\n\n\n";
cout << "Masukkan kode barang : ";cin >> masukan;

if(strcmp("E", masukan) == 0) {
system("cls");
main();
}
else {

for(int i = 0;i < jml_brg;i++) {


if(strcmp(barang[0][i], masukan)==0) {
no_array = i;
}
}
if(no_array == -1) {
cout << "Data tidak ada yang cocok, Tekan keyboard
untuk kembali";
getch();
system("cls");
edit_barang();
}
else {

system("cls");
cout << "\n";
cout << "Data yang diedit : " << barang[0][no_array] <<
endl << endl;
cout << "Kode Barang (Data lama : " << barang[0]
[no_array] << ") : ";cin >> brg.kb;
cout << "Nama Barang (Data lama : " << barang[1]
[no_array] << ") : ";cin >> brg.nb;
cout << "Harga Barang (Data lama : " << barang[2]
[no_array] << ") : ";cin >> brg.h;
cout << "Stock Barang (Data lama : " << barang[3]
[no_array] << ") : ";cin >> brg.s;

strcpy(barang[0][no_array], brg.kb);
strcpy(barang[1][no_array], brg.nb);
strcpy(barang[2][no_array], brg.h);
strcpy(barang[3][no_array], brg.s);

cout << "Barang " << brg.nb << " berhasil di update,
Tekan keyboard untuk kembali ke menu";
getch();

edit_barang();
}
}

}
void delete_barang() {
system("cls");
char masukan[10];
int no_array=-1;
cout << "\t Menu delete barang \n \n";
cout << "Daftar barang : \n";
cout << "+-----+-----------------+--------------------
+-------------+-----------+\n";
cout << "| No | Kode Barang | Nama Barang | Harga
| Stock |\n";
cout << "+-----+-----------------+--------------------
+-------------+-----------+\n";
for(int i = 0;i < jml_brg;i++) {
cout << " " << i+1 << " " << barang[0][i] << " "
<< barang[1][i] << "\t\t" << barang[2][i] << "\t\t" << barang[3][i] <<
endl;
}
cout << "\n \n";
cout << "Masukkan E untuk kembali ke main menu \n";
cout << "\n\n\n";
cout << "Masukkan kode barang : ";cin >> masukan;

if(strcmp("E", masukan) == 0) {
system("cls");
main();
}
else {

for(int i = 0;i < jml_brg;i++) {


if(strcmp(barang[0][i], masukan)==0) {
no_array = i;
}
}

if(no_array == -1) {
cout << "Data tidak ada yang cocok, Tekan keyboard
untuk kembali";
getch();
system("cls");
delete_barang();
}
else {
int coeg = no_array;
cout << " batasan " << jml_brg << " dengan " <<
no_array << endl;
for(int i = jml_brg;i > no_array;i--) {
strcpy(barang[0][coeg], barang[0][coeg+1]);
strcpy(barang[1][coeg], barang[1][coeg+1]);
strcpy(barang[2][coeg], barang[2][coeg+1]);
strcpy(barang[3][coeg], barang[3][coeg+1]);
coeg++;
}
jml_brg--;
cout << "Barang berhasil di delete, Tekan keyboard
untuk kembali ke menu";
getch();

delete_barang();
}
}

}
void melihat_barang() {
system("cls");
cout << "\t Menu lihat barang \n \n";
cout << "Daftar barang : \n";
cout << "+-----+---------------+----------------+-----------------
+-----------+\n";
cout << "| No | Kode Barang | Nama Barang | Harga |
Stock |\n";
cout << "+-----+---------------+----------------+-----------------
+-----------+\n";
for(int i = 0;i < jml_brg;i++) {
cout << " " << i+1 << "\t" << barang[0][i] << "\t\t" << barang[1]
[i] << "\t\t" << barang[2][i] << "\t\t" << barang[3][i] << endl;
}
cout << "\n";
cout << "Tekan keyboard untuk kembali ke main menu \n";
getch();
system("cls");
main();
}

Tampilan Output :
Algoritma :
1. Mulai
2. Menampilkan fungsi menu utama
3. Inputkan angka 1 maka akan keluar menu ‘Menambah Barang’ pada program saat
dieksekusi
4. Pada menu ini diminta inputan kode barang
5. Inputan nama barang
6. Inputan harga barang
7. Inputan stock barang
8. Jika ingin mengulang untuk menginput data lagi tekan Y
9. Jika tidak ingin mengulang untuk menginput data tekan N
10. Masukkan inputan 2 maka akan muncul Menu Edit barang
11. Pada menu ini diminta memasukkan inputan kode barang
12. Memasukkan kode barang baru
13. Memasukkan nama barang baru
14. Memasukkan harga barang baru
15. Memasukkan stock barang baru
16. Tekan sambarang pada keyboard untuk kembali ke Manu
17. Jika ingin edit barang lagi, masukkan inputan kode barang
18. Jika ingin kembali ke main menu tekan E
19. Apabila memasukkan inputan 3 maka akan masuk pada Menu delete barang
20. Pada menu ini ini diminta memasukkan inputan kode barang
21. Jika ingin kembali ke main menu tekan E
22. Apabila memasukkan inputan 4 maka akan masuk pada Menu lihat barang
23. Tekan sambarang pada keyboard untuk kembali ke manu
24. Selesai

Penjelasan Program :
Pertama menentukan file header yang akan dibuat yaitu #include <iostream.h> ,
#include <conio.h>. Fungsi dari iostream adalah untuk mendeklarasikan cout dan cin,
Fungsi dari conio.h adalah untuk memdeklarasikan getch. Di program ini, selain
menambahkan dan mengurangi stok barang , juga dapat merubah harga dan menghapus
data serta menampilkan data barang
KESIMPULAN

1. Sequential Search adalah teknik pencarian data dimana data dicari secara urut dari
depan ke belakang atau dari awal sampai akhir.
2. Tempat penyimpanan data dalam memory dapat berupa array atau dapat juga dalam
bentuk Linked List.
3. Binary Search data harus diurutkan terlebih dahulu. Algoritma binary search :
a. Data diambil dari posisi 1 sampai posisi akhir N
b. Kemudian cari posisi data tengah dengan rumus: (posisi awal + posisi akhir) / 2
c. Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama
atau lebih kecil, atau lebih besar? Jika lebih besar, maka proses pencarian dicari
dengan posisi awal adalah posisi tengah+1. Jika lebih kecil, maka proses pencarian
dicari dengan posisi akhir adalah posisi tengah–1. Jika data sama, berarti ketemu.
4. Kelibihan utama dari algoritma binary search adalah kompleksitas algoritmanya yang
lebih kecil daripada kompleksitas algoritma sequential search.
5. Interpolation search. Seperti pada binary search, data yang harus diurutkan terlebih
dahulu, sebelum dapat dilakukan pencarian dengan metode ini. Pada metode pencarian
ini, kita mencoba menebak letak data yang kita cari, dengan perhitungan
 Jika data[posisi] > data yg dicari, high = pos – 1
 Jika data[posisi] < data yg dicari, low = pos + 1

DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2016. Modul 3 Searching (Pencarian). Malang: Unversitas
Negeri Malang.
2. Suprapto. 2008. Bahasa Pemrograman Untuk SMK. Jakarta: Penerbit Departemen
Pendidikan Nasional
3. Kadir, Abdul. 2003. Pemrograman C++. Yogyakarta: Penerbit ANDI.

Anda mungkin juga menyukai