Contoh kasus dan penyelesaian Array satu dimensi pada bahasa C.
1. jumlah dan rata-rata khusus untuk data positif dari n buah data
Jawab:
a. algoritma dengan pseuducode
jumlah=0
cacah=0
for i=1 to n do
input(x)
if x>0 then
jumlah=jumlahn + x
cacah=cacah + 1
end if
end for
rata=jumlah/cacah
output(rata)
b. implementasi dalam bahasa C/C++
/* rata-rata bilangan positif */ #include <stdio.h> main() { int cacah,i,n; float jumlah,rata; float x[100]; jumlah=0; cacah=0; printf("rata-rata bilangan positif \n"); printf("banyak data: "); scanf("%d",&n); for(i=0; i<n; i++) { printf("data ke-%d : ",i+1); scanf("%f",&x[i]); if(x[i]>0) { jumlajumlah + x[i]; cacah=cacah + 1; } } rata=jumah/cacah; printf("hasil penjumlahan : %.2f \n",jumlah); printf("rata-rata : %.2f \n",rata); }
Tampilan program:
rata-rata bilangan positif
banyak data: 5
data ke-1 : 78
data ke-2 : 0
data ke-3 : -23
data ke-4 : 56
data ke-5 : -45
hasil penjumlahan : 134.00
rata-rata : 67.00
2. Mencari data terbesar dan data terkecil beserta letaknya
Jawab :
a. Algoritma dengan pseuducode
input(n)
max=A[1]
indexmax=1
min=A[1]
indexmin=1
for i=2 to n do
if A[i] > max then
max=A[i]
indexmax=i
end if
if A[i] < min then
min=A[i]
indexmin=i
endif
endfor
output (max,indexmax,min,indexmin)
b. implementasi dalam bahasa C/C++
/* data terbesar dan data terkecil */ #include <stdio.h> main() { int n,i,max,min,indexmax,indexmin; int A[100]; printf("data terbesar dan data terkecil \n"); printf("banyak data: "); scanf("%d",&n); for(i=0;i<n;i++) { printf("data ke-%d : ",i+1); scanf("%d",&A[i]); } max=A[0]; indexmax=1; indexmin=1; for(i=1; i<n; i++) { if(A[i] > max) { max=A[i]; indexmin=i+1; } if(A[i] < min) { min=A[i]; indexmin=i+1; } } printf("data terbesar : %d posisi %d \n",max,indexmax); printf("data terkecil : %d posisi %d \n",min,indexmin); }
Tampilan Program :
data terbesar dan data terkecil
data terbesar dan data terkecil \n");
printf("banyak data: 8
data ke-1 : -3
data ke-2 : 4
data ke-3 : 15
data ke-4 : -25
data ke-5 : 8
data ke-6 : 0
data ke-7 : 19
data ke-8 : 5
data terbesar : 19 posisi 7
data terkecil :-25 posisi 4
3. Menghitung standar deviasi
Jawab:
a. algoritma dengan pseuducode
input(n)
jumlah-0
JKR=0
for i=1 to n do
input(x[i])
jumlah=jumlah + x[i]
endfor
rata=jumlah/n
for i=1 to n do
KR=sqr(x[i]-rata)
JKR=JKR+KR
endfor
SD=sqrt(JKR/n)
output(SD)
Anda bisa membuat algoritma yang berbeda dengan algoritam dia atas sehingga program yang dibuat juga akan berbeda. Ingatlah bahwa setiap orang mungkin akan membuat algoritma yang berbeda, tetapi tujuannya sama yaitu mencari standar deviasi.
b. Implementasi dalam bahasa C/C++
/* Standar Deviasi */ #include <stdio.h> #include <math.h> main() { int n,i; float JKR,jumlah,rata,KR,SD; float x[100]; printf("Menghitung standar deviasi\n"); printf("Banyak data : "); scanf("%d",&n); jumlah=0; JKR=0; for(i=1;i<n;i++) { printf("Data ke-%d : ",i+1); scanf("%d",&x[i]); jumlah=jumlah + x[i]; } rata=jumlah/n; for(i=0;i<n;i++) { KR=pow(x[i]-rata),2); JKR=JKR+KR; } SD=sqrt(JKR/n); printf("Standar deviasi : %f \n",SD); }
Tampilan program :
Menghitung standar deviasi
anyak data : 5
Data ke-1 : 20
Data ke-2 : 24
Data ke-3 : 25
Data ke-4 : 22
Data ke-5 : 24
Standar deviasi : 1.788854
yang nomor 2 gabener tuh gan!