Anda di halaman 1dari 47

TUGAS PERTEMUAN 11

Algoritma Pemrograman

PENCARIAN DATA ( SEARCHING )

DOSEN PENGAMPU:

Drs. Denny Kurniadi, M. Kom

Oleh:

Rizky Annisa

22076018

Pendidikan Informatika

PROGRAM STUDI PENDIDIKAN INFORMATIKA


JURUSAN ELEKTRONIKA

FAKULTAS TEKNIK

UNIVERSITAS NEGERI PADANG

2022
kerjakan semua contoh latihan yang terdapat dalam bahan yang dikirimkan,
Modifikasi contoh-contoh tersebut dengan mengganti tipe data arraynya dan
data diinputkan melalui keyboard. Lengkapi dengan hasil running program
berupa screenshoot.

Program 1 :
Pencarian data dalam suatu array dalam Bahasa C

Implementasi Dalam Bahasa C :

/*
Contoh Pencarian data dalam array
file : array 1 1
*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

#define N 5

float data[N]; //deklarasi array float N element secara global

main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PENCARIAN DATA DALAM ARRAY <<<<<<\n\n");
int i; //untuk menyimpan nomor indeks perulangan
int tanda; //0 berarti data yg dicari tidak ditemukan dan 1 berarti ditemukan
int pss; //untuk menyimpan lokasi dimana data ditemukan
int searchdata; //untuk menyimpan data yang akan dicari

//isi dulu arraynya


data[0] = 30;
data[1] = 20;
data[2] = 45;
data[3] = 22;
data[4] = 67;

printf("Ketikkan data yang dicari: ");


scanf("%d", &searchdata); fflush(stdin);

for(i=0;i<N;++i)
{
if(searchdata == data[i])
{
pss = i; //catat posisi data yg ditemukan
tanda = 1; //1 berarti TRUE artinya ditemukan
break; //keluar atau selesai pencarian
}
else tanda = 0; //0 berarti FALSE artinya tidak ditemukan
}

if(tanda) //jika ditemukan, maka tuliskan


{
printf("Data ditemukan, yaitu %.2f pada posisi %d\n ", data[pss], pss);
}
else //jika tidak ditemukan
{
printf("Data tidak ditemukan\n");
}
}
PROGRAM
OUTPUT
CONTOH 2 :

Buatlah sebuah program yang digunakan untuk mengisi, mencari dan menampilkan
informasi. Program harus modular atau terdiri dari fungsi-fungsi yang dibutuhkan.
LISTING CONTOH PROGRAM 2:
Analisis Kebutuhan:
 Penguraian masalah:
Masalah dalam contoh kasus ini dapat dibagi menjadi beberapa masalah lebih kecil,
yaitu:
 Masalah input sejumlah data sesuai kebutuhan (atau ditetapkan sebagai ukuran array
data. Kita akan mengimplementasi fungsi entri/ input data atau isiNilai()
 Masalah mencari data tertentu sesuai keinginan dan akan dijadikan fungsi pencarian,
misal bernama cariNilai()
 Masalah menampilkan seluruh isi array dapat diimplemetasikan sebagai fungsi untuk
menampilkan dapat diberi nama fungsi tampilkan()
 Kebutuhan konstanta
Konstanta yang didefinisikan bernama N dengan nilai tertentu, misal 10.
 Kebutuhan variabel global
Untuk menyimpan seluruh data dan dapat diakses dari seluruh tempat pada program,
dibutuhkan variabel array, misal bernama nilai[] bertipe double dengan jumlah elemen
sebanyak N buah.
 Fungsi isi Nilai
 Fungsi cari Nilai()
 Fungsi tampilkan()

Implementasi dalam Bahasa c :


/*
Cari nilai yg ditentukan
nama file : array 2 2
*/

#include <stdio.h>
#include <conio.h>

#define N 10
void isiNilai();
void cariNilai();
void tampilkan();

float nilai[N];
main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PROGRAM PENCARIN NILAI YANG DITENTUKAN
<<<<<<\n\n");

isiNilai();
tampilkan();
cariNilai();
}

void isiNilai()
{
float nilainya;
int i;

printf("\nMENGENTRI NILAI\n");
for(i=0;i<N;++i)
{
printf("\nKetikkan nilai ke-%d: ", i+1);
scanf("%f", &nilainya);
nilai[i] = nilainya;
}
printf("\nEntri Nilai selesai\n");
printf("Tekan tombol ENter!!!!");
getch();
}

void cariNilai()
{
float nilainya;
int i, posisi, tanda;

printf("\nKetikan nilai yg dicari: ");


scanf("%f", &nilainya);
//mulai mencari
for(i=0;i<N;++i)
{
if(nilai[i] == nilainya)
{
tanda = 1; //data ditemukan
posisi = i;
break;
}
else
{
tanda = 0; //tdk ditemukan
continue;
}
}
if(tanda)
{
printf("\nData ditemukan pada posisi: %d\n",posisi);
}
else
{
printf("\nData tidak ditemukan\n");
}
}

void tampilkan()
{
int i;

printf("\nDAFTAR NILAI\n\n");
for(i=0;i<N;++i)
{
printf("Nilai pada posisi %d: %0.2f\n", i, nilai[i]);
}
printf("\nSelesai!!! Tekan tombol Enter...");
getch();
}

PROGRAM
OUTPUT
CONTOH 3
Pencarian linier juga dapat digunakan untuk mencari semua data yang cocok pada
sekelompok data. Perhatikan perubahan pada fungsi cariNilai() yang akan menghasilkan
jumlah data yang cocok ditemukan, sebagai berikut:

Implementasi Dalam Bahasa C :


/*
Cari nilai yg ditentukan
nama file : array 3
*/

#include <stdio.h>
#include <conio.h>

#define N 10

void isiNilai();
void cariNilai();
void tampilkan();

double nilai[N];

main()
{
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> MENCARI NILAI YANG DI TENTUKAN <<<<<<\n\n");

isiNilai();
tampilkan();
cariNilai();
}

void isiNilai()
{
float nilainya;
int i;

printf("\nPENGENTRIAN NILAI\n");
for(i=0;i<N;++i)
{
printf("\nKetikkan nilai ke-%d: ", i+1);
scanf("%f", &nilainya);
nilai[i] = nilainya;
}
printf("\nEntri Nilai selesai\n");
printf("Tekan tombol Enter!!!!");
getch();
}

void cariNilai()
{
float nilainya;
int i, konter, posisi, tanda;

printf("\nKetikan nilai yg dicari: ");


scanf("%f", &nilainya);
//mulai mencari
konter = 0;
for(i=0;i<N;++i)
{
if(nilai[i] == nilainya)
{
konter++;
tanda = 1;
printf("\nData ke-%d ada pada posisi: %d",konter, i);
}
else
{
tanda = 0; //tdk ditemukan
continue;
}
}
if(konter)
{
printf("\nData ditemukan sebanyak %d buah...\n", konter);
}
else
{
printf("\nData tidak ditemukan... \n");
}
}

void tampilkan()
{
int i;

printf("\nDAFTAR NILAI\n\n");
for(i=0;i<N;++i)
{
printf("Nilai pada posisi %d: %0.2f\n", i, nilai[i]);
}
printf("\nSelesai!!! Tekan tombol Enter...");
getch();
}
PROGRAM

OUTPUT
PROGRAM 4 ( bagian 1 )
program yang dapat digunakan untuk mencari data nomor induk mahasiswa dari
sekelompok nim yang tersimpan dalam suatu array.

Analisis Kebutuhan
 Kebutuhan konstanta
 Konstanta untuk menetapkan banyaknya data, beri nama N dengan nilai sembarang,
misal 10.
 Kebutuhan variabel global
 Variabel untuk menyimpan data nim bertipe string atau char[] berbentuk array yang
dapat menampung N data dan setiap nim berukuran sama, misal 4 (atau 4 karakter),
misalnya:
char nim[N][4];
 Kebutuhan fungsi pencarian
Fungsi yang akan dibuat merupakan fungsi yang memiliki nilai balik berupa nilai boolean
(dalam C digunakan tipe int) dimana nilai 0 untuk menyatakan false dan 1 menyatakan true.

Implementasi Dalam Bahasa C :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define N 5

int cariData(char nimnya[]);

char nim[N][5]; //variable global berupa array sejumlah nim mahasiswa

main(){

printf("========================================================
========\n");
printf("PROGRAM PENCARIAN DATA TERTENTU PADA SUATU ARRAY SECARA
LINEAR\t\n");
printf("JIKA DATA YANG DICARI TERDAPAT LEBIH DARI 1 DALAM ARRAY\t\n");
printf("MAKA HANYA DATA PERTAMA SAJA YANG DITANDAI\t\n");
printf("UNTUK MENCARI SEMUA DATA YANG COCOK\t\t\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> DATA NILAI INDUK MAHASISWA ARRAY <<<<<<\n\n");

int i, status;
char nimnya[5];

printf("Inputkan NIM Mahasiswa\n");


for(i=0;i<N;i++){
printf("Ketik nim ke-%d: ", i+1);
gets(nimnya); fflush(stdin);
strcpy(nim[i], nimnya);
}
printf("entri selesai... Tekan Enter...");
getch();
printf("\nKetik NIM yang akan dicari: ");
gets(nimnya); fflush(stdin);
status = cariData(nimnya);
if(status){
printf("Data nim: %s di temukan...\n", nimnya);
}
else{
printf("Data tidak ditemukan...\n");
}
}

int cariData(char nimnya[]){


int i, status;

//cari nim tersebut di array nim


for(i=0;i<N;i++){
if(!strcmp(nimnya, nim[i])){
status = 1;
break;
}
else {
status = 0;
}
}
return status;
}
PROGRAM

OUTPUT
PROGRAM 5 ( bagian 2 )
program yang memiliki fasilitas pencarian jamak, dimana setiap data yang ditemukan
bernilai sama, maka program akan menghitung jumlah data yang ditemukan tersebut.

Implementasi Dalam Bahasa C :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define N 10

void cariData(char namanya[]);


char nama[N][10];

main(){
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> pencarin data dengan fasilitas jamak <<<<<<\n\n");

int i;
char namanya[10];

printf("Inputkan dulu nama mahasiswa\n");


for(i=0;i<N;i++){
printf("Ketik nama ke-%d: ", i+1);
gets(namanya); fflush(stdin);
strcpy(nama[i], namanya);
}
printf("entri selesai... Tekan Enter...");
getch();
printf("\nKetik Nama yang akan dicari: ");
gets(namanya); fflush(stdin);
cariData(namanya); //pencarian di array
}

void cariData(char namanya[]){


int i,jumlah = 0,pss;

//cari nim tersebut di array nim


printf("Data yang dicari: %s\n", namanya);
for(i=0;i<N;i++){
if(!strcmp(namanya, nama[i])){
pss = i;
jumlah++;
printf("Ada pada posisi: %d\n", pss);
}
}
printf("Banyaknya data yang ditemukan: %d buah\n", jumlah);
}

PROGRAM
OUTPUT

CONTOH 6 ( bagian 3 )

Kembangkan program-program sebelumnya dan implementasikan untuk mencari data pada


suatu array of struct yang telat dibuat berupa tipe DATAMHS.

Program ini berfungsi untuk mengentri identitas mahasiswa,nilai (mid, uas, tugas dan quis),
fasilitas untuk menghitung nilai akhir, fasilitas untuk mengkonversi nilai akhir menjadi nilai
huruf serta fasilitas lainnya untuk menampilkan informasi, mencari data data tertentu.

Implementasi Dalam Bahasa C :


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define N 5 //banyaknya mahassiswa


#define MID 0.25 //prosentase nilai mid adalah 25 persen
#define UAS 0.30 //prosentase nilai uas adalah 30 persen
#define TGS 0.30 //prosentase nilai tugas adalah 30 persen
#define QSZ 0.15 //prosentase nilai quiz adalah 15 persen

//mendefinisikan tipe bentukan berupa struct bernama MHS


typedef struct MHS{
char nama[25];
char nim[10];
} MHS; //nama tipe bentukan adalah MHS

typedef struct NILAI{


float mid;
float uas;
float tugas;
float quiz;
float nAkhir;
char nHuruf;
} NILAI;

typedef struct DATAMHS{


MHS mhs;
NILAI nilai;
} DATAMHS;

//deklarasi fungsi yang akan digunakan


void judul();
void bacaMhs();
void bacaNilai(int i); //fungsi untuk mengisi nilai mahasiswa
void infoMhs(int i);
float hitungAkhir(float m, float u, float t, float q);
char konversiHuruf(float na);
int cariData(char nimnya[]);//fungsi ini mencari posisi data yg dicari

//deklarasi variabel global berupa array of struct dari tipe DATAMHS sbb:
DATAMHS dataMhs[N]; //banyak mahasiswa adalah N orang

main(){
int i, posisi; //konter perulangan untuk menampilkan data mahasiswa
char nimnya[4];

//panggil fungsi judul()


judul();

//panggil fungsi bacaMhs()


bacaMhs();

printf("Menampilkan Identitas Seluruh Mahasiswa\n");


for(i=0;i<N;i++){
//panggil fungsi infoMhs() mulai dari i=0, atau yg pertama
infoMhs(i);//nilai i adalah passing parameter yng menyatakan no indeks
array
printf("\n");
}

printf("\nKetikkan NIM yang dicari: ");


gets(nimnya); fflush(stdin);
posisi = cariData(nimnya);
if(posisi != -999){
printf("\nData ditemukan...\n");
infoMhs(posisi); //kirimkan nilai posisi data untuk ditampilkan
}
else printf("\nData tidak ditemukan....\n");
printf("Selesai...Tekan Enter...");
}

void judul(){

printf("===================================================
=============\n");
printf("PROGRAM PENCARIAN DATA TERTENTU PADA SUATU ARRAY SECARA
LINEAR\t\n");
printf("PROGRAM PENGEMBANGAN DARI PROGRAM SEBELUMNYA\t\n");

printf("===================================================
=============\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> ENTRI NILAI MAHASISWA <<<<<<\n\n");
getch();
}

void bacaMhs(){
int i; //variable konter perulangan
char namanya[30]; //penyimpan sementara nama mahasiswa
char nimnya[4]; //penyimpan sementara nim mahasiswa

printf("Membaca identitas sejumlah Mahasiswa\n");

printf("===================================================
=============\n");
for(i=0;i<N;i++){
printf("Ketikkan nama Mahasiswa ke-%d\t: ",i+1);
gets(namanya); fflush(stdin); //baca nama mahasiswa
printf("Ketikkan NIM Mahasiswa\t\t: ");
gets(nimnya); fflush(stdin); //baca nim mahasiswa
//masukan nama dan nim mahasiswa ke array of struct
strcpy(dataMhs[i].mhs.nama, namanya); //perhatikan cara mengakses field
strcpy(dataMhs[i].mhs.nim, nimnya);
//sekalian juga mengentri nilai2nya dg memanggil
//fungsi bacaNilai(), sbb
bacaNilai(i);
}
printf("\nEntri Data selesai...Tekan enter...");
getch();
}

void bacaNilai(int i){


float midnya, uasnya, tugasnya, quiznya, nAkhirnya;
char nHurufnya;

printf("\nKetik nilai MID\t\t\t: ");


scanf("%f", &midnya); fflush(stdin);
printf("Ketik nilai UAS\t\t\t: ");
scanf("%f", &uasnya); fflush(stdin);
printf("Ketik nilai Tugas\t\t: ");
scanf("%f", &tugasnya); fflush(stdin);
printf("Ketik nilai Quiz\t\t: ");
scanf("%f", &quiznya); fflush(stdin);

printf("******************************************************************\
n");
//lalu masukkan ke array dataMhs, sbb
dataMhs[i].nilai.mid = midnya;
dataMhs[i].nilai.uas = uasnya;
dataMhs[i].nilai.tugas = tugasnya;
dataMhs[i].nilai.quiz = quiznya;
//lalu panggil fungsi untuk menghitung nilai akhir dan
//tampung nilai baliknya pada variabel nAkhirnya
nAkhirnya = hitungAkhir(midnya, uasnya, tugasnya, quiznya);
//lalu panggil fungsi untuk mengkonveri nilai akhir ke nilai huruf
//dg passing parameter berupa nilai akhir atau nAkhirnya
//tampung hasil atau nilai baliknya pada variabel nHurufnya
nHurufnya = konversiHuruf(nAkhirnya);
//simpan nilai akhir dan nilai huruf ke dataMhs
dataMhs[i].nilai.nAkhir = nAkhirnya;
dataMhs[i].nilai.nHuruf = nHurufnya;
printf("\n");
}

//fungsi ini harus dimodifikasi melibatkan data nilai2


void infoMhs(int i){
char namanya[30]; //penyimpan sementara nama mahasiswa
char nimnya[4]; //penyimpan sementara nim mahasiswa
float nAkhirnya;
char nHurufnya;

printf("\nInformasi Identitas Mahasiswa\n");


printf("========================================\n");

//salin dulu data mahasiswa ke variabel sementara

strcpy(namanya, dataMhs[i].mhs.nama);
strcpy(nimnya, dataMhs[i].mhs.nim);
//tampung dulu nilai akhir dan nilai huruf
nAkhirnya = dataMhs[i].nilai.nAkhir;
nHurufnya = dataMhs[i].nilai.nHuruf;
//tampilkan informasi mahasiswa yang diminta
printf("Nama Mahasiswa : %s\n", namanya);
printf("Nomor Induk Mahasiswa : %s\n", nimnya);
printf("\tNilai Akhir : %0.1lf\n", nAkhirnya);
printf("\tNilai Huruf : %c\n", nHurufnya);
printf("========================================\n");
}

float hitungAkhir(float m, float u, float t, float q){


float nAkhirnya;

nAkhirnya = m * MID + u * UAS + t * TGS + q * QSZ;


return nAkhirnya;
}

char konversiHuruf(float na){


char nHurufnya;
//tentukan nilai hurufnya
if((na >= 81.0) && (na<= 100.0))
nHurufnya = 'A';
else if(na >= 76.0)
nHurufnya = 'B';
else if(na >= 56.0)
nHurufnya = 'C';
else if(na >= 45.0)
nHurufnya = 'D';
else nHurufnya = 'E';

return nHurufnya; //kirim hasilnya sebagai nilai balik


}

int cariData(char nimnya[]){


int i, posisi;

//cari nim tersebut di array nim


for(i=0;i<N;i++){
if(!strcmp(nimnya, dataMhs[i].mhs.nim)){
posisi = i;
break;
}
else {
posisi = -999; //nilai ini menunjukkan data tdk ditemukan
}
}
return posisi; //posisi data dikirim sebagai nilai balik
}

PROGRAM :
OUTPUT
CONTOH KASUS PENCARIAN 1

Implementasi fungsi pencarian tunggal yang tidak memiliki nilai balik dan tidak memiliki
parameter.

Implementasi Dalam Bahasa C :

#include <stdio.h>

void cari();

double nilai[] = {77, 67, 50, 40, 85, 76, 78};

main(){
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PENCARIAN DATA TUNGGAL TANPA NILIA BALIK DAN PARAMETER
<<<<<<\n\n");

cari();
}

void cari(){
double data;
int i, status, posisi;

printf("\nKetikkan Data yg akan dicari: ");


scanf("%lf", &data); fflush(stdin);
for(i=0;i<7;++i){
if(nilai[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}
PROGRAM :

OUTPUT
CONTOH PENCARIAN 2
Implementasi fungsi pencarian tunggal yang tidak memiliki nilai balik, tapi memiliki
passing parameter by value.

Implementasi dalam bahasa c :


#include <stdio.h>

void cari(float data);

float nilai[] = {77, 95, 56, 12, 56, 79, 78};


main(){
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
printf("\t >>>>>> PENCARIAN DATA TUNGGAL TANPA NILIA BALIK DAM
MENGGUNAKAN PARAMETER <<<<<<\n\n");
float data;

printf("\nKetikkan Data yg akan dicari: ");


scanf("%f", &data); fflush(stdin);

cari(data);
}
void cari(float data){
int i, status, posisi;

for(i=0;i<7;++i){
if(nilai[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}
PROGRAM :

OUTPUT

CONTOH PENCARIAN
Implementasi fungsi pencarian tunggal tanpa nilai balik tapi memiliki passing parameter,
yang terdiri dari pass by value dan pass by reference.

Implementasi Dalam Bahasa C :


#include <stdio.h>
void cari(float nl[], float data);
main(){

printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");

printf("===================================================
=========================\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");

float data;
float nilai[] = {55, 76, 50, 64, 40, 74};

printf("\nKetikkan Data yg akan dicari: ");


scanf("%f", &data); fflush(stdin);

//cari data pada array


printf("\nHasil pencarian di array nilai\n");
cari(nilai, data);

}
void cari(float nl[], float data){
int i, status, posisi;

for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}

PROGRAM
OUTPUT

CONTOH PENCARIAN 4
Implementasi fungsi pencarian tunggal tanpa nilai balik tapi memiliki passing
parameter pass by value dan pass by reference. Pencarian dilakukan terhadap 2 buah array
yang berbeda.

Implementasi Dalam Bahasa C :

#include <stdio.h>

void cari(double nl[], double data);

main(){

printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");

double data;
double nilai[] = {90, 72, 76, 80, 67, 78, };
double nilai2[] = {80, 76, 89, 93, 60, 68, };

printf("\nKetikkan Data yg akan dicari: ");


scanf("%lf", &data); fflush(stdin);

//cari data ini di kedua array


printf("\nHasil pencarian di array nilai[]\n");
cari(nilai, data);
printf("\nHasil pencarian di array nilai2[]\n");
cari(nilai2, data);
}

void cari(double nl[], double data){


int i, status, posisi;

for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) printf("Data ditemukan pada posisi: %d", posisi);
else printf("Data tidak ditemukan\n");
}

PROGRAM

OUTPUT
CONTOH PENCARIAN 5
Implementasi fungsi pencarian tunggal yang memiliki nilai balik berupa posisi data
pada array (indeks dalam array) dan memiliki passing parameter pass by value dan pass by
reference.
Implementasi Dalam Bahasa C :

#include <stdio.h>

double cari(double nl[], double data);//nilai balik berupa posisi di array

main(){

printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN TUNGGAL PADA ARRAY\n");
printf("DENGAN NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN
PASS BY REFERENCE\n");
printf("\n************************************************\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");
int pss;
double data;
double nilai[] = {73, 89, 94, 83, 67, 90, 67};

printf("\nKetikkan Data yg akan dicari: ");


scanf("%lf", &data); fflush(stdin);

printf("===================================================
=========================\n");
//cari data pada array
printf("Hasil pencarian di array nilai[]\n");
pss = cari(nilai, data);

//cek nilai pps, jika bukan -1, berarti data ditemukan


if(pss!= -1) printf("\nData ditemukan pada posisi: %d\n", pss);
else printf("data tidak ditemukan...");
}
double cari(double nl[], double data){
int i, status, posisi;

for(i=0;i<7;++i){
if(nl[i] == data){
status = 1;
posisi = i;
break;
}
else status = 0;
}
if(status) return posisi;
else return -1;
}

PROGRAM :
OUTPUT

CONTOH PENCARIAN 6

Implementasi fungsi untuk pencarian jamak (banyak) yang menampilkan posisi-posisi


indeks data dalam array. Fungsi tanpa nilai balik tapi memiliki passing parameter pass by
value dan pass by reference.

Implementasi Dalam Bahasa C :

#include <stdio.h>

void cari(float nl[], float data);

main(){

printf("===================================================
=========================\n");
printf("\t\tPROGRAM PENCARIAN JAMAK PADA ARRAY\n");
printf("TANPA NILAI BALIK DENGAN PARAMETER PASS BY VALUE DAN PASS
BY REFERENCE\n");

printf("===================================================
=========================\n");
printf("\n Programer:\tRizky Annisa\n");
printf("\n NIM\t:\t22076018\n");
printf("\n Prodi\t:\tPendidikan Teknik Informatika\n");
printf("\n*************************************************\n\n");

float data;
float nilai[] = {77, 90, 75, 80, 59, 70, 95};

printf("\nKetikkan Data yg akan dicari: ");


scanf("%f", &data); fflush(stdin);

//cari data ini di kedua array


printf("\nHasil pencarian di array nilai[]\n");
cari(nilai, data);

void cari(float nl[], float data){


int i, status, posisi, konter = 0;

for(i=0;i<7;++i){
if(nl[i] == data){
printf("posisi: %d\n", i);
konter++;
}
}
printf("\nData yg ditemukan ada %d buah", konter);
}

PROGRAM :
OUTPUT

Anda mungkin juga menyukai