Anda di halaman 1dari 27

LAPORAN PRAKTIKUM III

SEARCHING
Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data
Dibimbing oleh Bapak Utomo Pujianto

Oleh :
Anidia Wulan Sari

(150533601651)

Dimas Galih Ramadhan

(150533600571)

S1 PTI15 OFF A

UNIVERSITAS NEGERI MALANG


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

MODUL III
SEARCHING

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}

Gambar 1.1 Data Pencarian Sekuensial


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
d)

atau lebih kecil, atau lebih besar?


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
tengah1
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
Latihan Praktikum 1
Pemrograman C++
Nama Program

: Sequential Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

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

Output Program

Algoritma
1. Mulai
2. Melihat file header

3.
4.
5.
6.
7.

Melihat Fungsi
Mlihat fungsi cari
Mendeklarasi variabel posisi, i, ketemu
Menampilkan tampilan eksekusi
Selesai

Deskripsi:
Program di atas merupakan program yang digunakan untuk mencari posisi dari 19
dengan menggunakan metode squentian search. 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 kemudian akan melakukan fungsi cari. Selanjutnya akan kembali ke
fungsi cari untuk mencari dan menampilkan hasil dari pencarian yaitu letak/posisi dari 19.

Latihan Praktikum 2
Pemrograman C++
Nama Program

: Binary Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#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[]="Pendidikan Teknik Informatika";
char dicari='m';

printf("\nPosisi %c dalam string %s berada pada


index

ke-

[%d]

",

dicari,

kalimat,

poskar(kalimat,

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

Output Program

Algoritma

1. Start
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. End
Diskripsi

Program di atas merupakan program yang digunakan untuk mencari posisi dari m
dan n dari kalimat Pendidikan teknik Informatika dengan menggunakan metode binary
search. 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. Pertama 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 dari pencarian
letak n dan m dari kalimat pendidikan teknik informatika.

Latihan Praktikum 3
Pemrograman C++
Nama Program

: Fibonacci Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#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 << "\t Metode 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\nMasukkan 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("\n Data ditemukan");
else printf("\nData tidak ditemukan");
}

Output Program

Algoritma

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

Diskripsi

Program di atas merupakan program yang digunakan untuk mencari data dengan
menggunakan metode fibbonaci search. Jika kita mencari data yang telah tertera pada data
maka hasilnya Data ditemukan dan bila data yang anda cari tidak tertera pada data maka
hasilnya Data tidakditemukan. 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.

Latihan Praktikum 4
Pemrograman C++
Nama Program

: Interpolation Search

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#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 posisi2;
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<<"\nMasukkan data yang dicari : ";
cin>>cari;
do{
posisi2=(cari-data[low])/(data[high]data[low])*(high-low)+low;
posisi=floor(posisi2);//pembulatan kebawah!
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";
}
}

Output Program

Algoritma

1. Start
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. End
Diskripsi

Program di atas merupakan program yang digunakan untuk mencari data dengan
menggunakan metode Interpolation search. Jika kita mencari data yang telah tertera pada
data maka hasilnya Data ditemukan dan bila data yang anda cari tidak tertera pada data
maka hasilnya Data tidakditemukan.
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.

4. Tugas Praktikum
Tugas Praktikum 1
Pemrograman C++
Nama Program

: Mencari posisi bilangan yang terletak dikanan dalam Array

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#include <iostream.h>
#include <conio.h>
int main() {
int data[10] = {6,7,3,5,1,7,9,6,5,8};
int masukan;

cout << " Mencari posisi terkanan bilangan dalam array"


<< endl;
cout << "Data : 6 7 3 5 1 7 9 6 5 8" << endl;
cout << "Masukkan data yang yang dicari : ";cin >>
masukan;
for(int i = 9;i > 0;i--) {
if(data[i] == masukan) {
cout

<<

"Posisi

terkanan

bilangan

"

<<

masukan << " pada index ke-" << i << endl;


break;
}
}
}

Output Program

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
Diskripsi

Program di atas merupakan program yang digunakan untuk mencari data yang posisisnya
terkanan dalam array .

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
Pemrograman C++
Nama Program

: Menghitung bilangan dalam Array

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#include <iostream.h>
#include <conio.h>
int main() {
int data[10] = {4,5,3,5,1,7,9,6,5,8};
int masukan,m=0;
cout << " Menghitung jumlah bilangan dalam array" <<
endl;
cout << "Data : 4 5 3 5 1 7 9 6 5 8" << endl;
cout << "Masukkan data yang yang dicari : ";cin >>
masukan;

for(int i = 9;i > 0;i--) {


if(data[i] == masukan) {
m++;
}
}

cout << "Jumlah bilangan " << masukan << " adalah : "
<< m;

Output Program

Algoritma

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

Diskripsi

Program di atas merupakan program yang digunakan untuk menghitung jumlah bilangan
dalam array.
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
Pemrograman C++

Nama Program

: mengganti karakter (huruf0 kecil, menjadi huruf balok

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#include <iostream.h>
#include <conio.h>
int main() {
char data[100] = "Universitas Negeri Malang";
int mantan=0;
cout << " Mengganti karakter a menjadi A" << endl;
for(int i = 0;;i++) {
mantan++;
if(data[i] == '\0') {
break;
}
}
for(int i =0;i < mantan;i++) {
if(data[i] == 'a') {
data[i] = 'A';
}
}
cout << data;
}

Output Program

Algoritma

1. Start
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. End
Diskripsi

Program di atas merupakan program yang digunakan untuk merubah karakter a menjadi
A pada kalimat Universitas Negeri Malang.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
Pemrograman C++
Nama Program

: pencarian kata ayu dalam kata-kata atau kalimat

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#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";
cout << "Daftar nama : ";
for(int i = 0;i < 5;i++) cout << kata[i] << " ";
cout << "\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;
}
}

Output Program

Algoritma

Start

Membaca header program

Membaca fungsi utama program

Deklarasi array dan variabel

Menampilkan tampilan awal dan daftar nama

Melakukan pencarian untuk kata ayu

Menampilkan data hasil yang dicari

End

Diskripsi

Program di atas merupakan program yang digunakan untuk mencari nama yang
mengandung kata ayu dari data yang disediakan .
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.

5. Tugas Rumah
Tugas Rumah

Pemrograman C++
Nama Program

: Program Supermarket

Bahasa Pemrogramam

: C++

Compiler

: MinGW Developer Studio

Script program

#include <iostream.h>
#include <conio.h>
using namespace std;
void tambah_barang();
void edit_barang();
void hapus_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] =
{
{"KB101",

"KB102",

"KB103",

"KB104",

"KB105"}, //KodeBarang
{"Kopi Luak", "Kopi Arabik", "Kopi putih", "Kopi
susu", "Kopi hitam"}, //NamaBarang
{"10000",

"15000",

"20000",

"25000",

"100000"}, //Harga
{"44", "32", "66", "23", "1"}, //Stok
};
int main() {
int masukan;
cout << "\tSelamat Datang Di Admin Panel Supermarket A
& D \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. | Hapus barang

|\n";

cout << "| 4. | Melihat barang

|\n";

cout << "+----+------------------------------+\n";


cout

<<

"Masukkan

Nooer

Pilihan

Menu

";cin

masukan;
switch(masukan) {
case 1:
tambah_barang();
break;
case 2:
edit_barang();
break;
case 3:
hapus_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
Harga

| Stock

| Kode Barang

| Nama Barang

|\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 hapus_barang() {
system("cls");
char masukan[10];
int no_array=-1;
struct barang brg;
cout << "\t Menu delete barang \n \n";
cout << "Daftar barang : \n";
cout << "+-----+-----------------+-------------------+-------------+-----------+\n";
cout << "| No
Harga

| Stock

| Kode Barang

| Nama Barang

|\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");
hapus_barang();
}
else {
int dta = no_array;

cout << " Batasan " << jml_brg << " Dengan
" << no_array << endl;
for(int i = jml_brg;i > no_array;i--) {
strcpy(barang[0][dta],

barang[0]

strcpy(barang[1][dta],

barang[1]

strcpy(barang[2][dta],

barang[2]

strcpy(barang[3][dta],

barang[3]

[dta+1]);
[dta+1]);
[dta+1]);
[dta+1]);
dta++;
}
jml_brg--;
cout

<<

"Barang

Berhasil

Dihapus,

Tekan

Keyboard Untuk Kembali Ke Menu";


getch();
hapus_barang();
}
}
}
void melihat_barang() {
system("cls");
cout << "\t Menu Lihat Barang \n \n";
cout << "Daftar Barang : \n";
cout << "+-----+-----------------+-------------------+-------------+-----------+\n";
cout << "| No
Harga

| Stock

| Kode Barang

| Nama Barang

|\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";
cout << "Tekan Keyboard Untuk Kembali Ke Main Menu \n";
getch();
system("cls");
main();

Output Program

Kemudian > misalnya kita pilih no. 4 untuk melihat data barang yang sudah diisikan.

Algoritma

1. Start
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 ingin tidak 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 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 keyboard untuk kembali ke manu
24. Selesai
Diskripsi

Program di atas merupakan program supermaket. Didalam program ini terdapat


main menu didalam main menu terdapat beberapa menu seperti menambah barang,
mengedit barang, menghapus barang, melihat barang.
Didalam menu menambah barang kita bisa menambahkan daftar barang
dengan memasukkan kode, nama , harga barang, dan stock.kemudian data
yang telah kita inputkan akan di simpan kedalam daftar barang.
Didalam menu edit barang kita bisa mengedit data yang sudah ada dalam
tabel daftar barang, kita bisa mengubah nama stock dan lain-lain
Didalam menu hapus barang kita bisa menghapus data barang yang telah
tersimpan dalam daftar barang.
Didalam menu Melihat barang yang sudah ada .

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. Kelibihan utama dari algoritma binary search adalah kompleksitas algoritmanya


yang lebih kecil daripada kompleksitas algoritma sequential search.

DAFTAR RUJUKAN
1. Tim Asisten Dosen. 2016. Modul III, Searching. Malang: Unversitas Negeri
Malang.

Anda mungkin juga menyukai