Nilai terbesar maupun nilai terkecil bisa didapatkan dengan membandingkan semua isi array di dalam loop. Hasilnya bisa disimpan ke dalam variabel. Variabel tersebut bisa diberi data pertama sebelum dibandingkan dengan data lain dalam loop. Jika loop diletakkan di dalam function, kalian bisa mengembalikan nilai variabel tersebut setelah loop selesai.
Contoh function untuk mencari nilai terbesar bisa kalian lihat di bawah ini.
float terbesar(dataku data, int jdata){
int nilai=0;
if(jdata > 0){
nilai=data[0];
for(int i=1;i<jdata;i++){
if(data[i] > nilai)nilai=data[i];
}
}
return nilai;
}
Hal yang sama bisa dilakukan saat mencari nilai terkecil. Bedanya cuma ada pada tanda perbandingan yang digunakan untuk kondisi if. Jika tanda untuk mencari nilai terbesar menggunakan operator "lebih besar dari ( > )", maka untuk mencari nilai terkecil operatornya adalah "lebih kecil dari ( < )".
float terkecil(dataku data, int jdata){
int nilai=0;
if(jdata > 0){
nilai=data[0];
for(int i=1;i<jdata;i++){
if(data[i] < nilai)nilai=data[i];
}
}
return nilai;
}
Contoh kode program utuhnya bisa kalian lihat di bawah ini.
#include <iostream>
using namespace std;
typedef float* dataku;
float terbesar(dataku data, int jdata){
int nilai=0;
if(jdata > 0){
nilai=data[0];
for(int i=1;i<jdata;i++){
if(data[i] > nilai)nilai=data[i];
}
}
return nilai;
}
float terkecil(dataku data, int jdata){
int nilai=0;
if(jdata > 0){
nilai=data[0];
for(int i=1;i<jdata;i++){
if(data[i] < nilai)nilai=data[i];
}
}
return nilai;
}
int dapatkan_data(dataku data){
int jdata=0;
cout << "Banyaknya data : ";
cin >> jdata;
if(jdata < 100)
for(int i=0;i<jdata;i++){
cout << "Data ke-" << i+1 << ":";
cin >> data[i];
}
return jdata;
}
int main(){
float a[100];
int jdata=0;
jdata=dapatkan_data(a);
cout << "Nilai minimum : ";
cout << terbesar (a, jdata) << endl;
cout << "Nilai maksimum : ";
cout << terkecil (a, jdata) << endl;
return 0;
}
Banyaknya data : 5 Data ke-1:23 Data ke-2:32 Data ke-3:22 Data ke-4:21 Data ke-5:40 Nilai minimum : 40 Nilai maksimum : 21
Versi Pascal
Kalau kalian butuh versi pascalnya, kalian bisa gunakan kode program seperti di bawah ini.
type dataku=array[1..100] of real;
var a:dataku;
jdata:Integer;
function terbesar(var data:dataku;jdata:Integer):real;
var i:Integer;
nilai:Real;
begin
nilai:=0;
if(jdata > 0)then
begin
nilai:=data[1];
for i:=1 to jdata do
if(data[i] > nilai)then
nilai:=data[i];
end;
terbesar:=nilai;
end;
function terkecil(var data:dataku;jdata:Integer):real;
var i:Integer;
nilai:Real;
begin
nilai:=0;
if(jdata > 0)then
begin
nilai:=data[1];
for i:=1 to jdata do
if(data[i] < nilai)then
nilai:=data[i];
end;
terkecil:=nilai;
end;
function dapatkan_data(var data:dataku):Integer;
var jdata:integer=0;
i:Integer;
begin
writeln('Banyaknya data : ');
readln(jdata);
if(jdata < 100)then
for i:=1 to jdata do
begin
write('Data ke-', i, ' : ');
readln(data[i]);
end;
dapatkan_data:=jdata;
end;
begin
jdata:=dapatkan_data(a);
writeln('Nilai minimum : ', terkecil (a, jdata));
writeln('Nilai maksimum : ', terbesar (a, jdata));
readln;
end.