- Beranda
- Programmer Forum
[ASK] Perhitungan Aritmatik bahasa C menghasilkan hasil 0/salah
...
TS
bbsnafw
[ASK] Perhitungan Aritmatik bahasa C menghasilkan hasil 0/salah
Permisi gan ane mau tanya nih, ane lagi buat program buat hitung regresi pakai bahasa C, nah semua berjalan benar sampai pada hasil dari sigma X itu hasilnya 0, ane udah cek logikanya udah betul kira-kira adakah yang terlewat
Source Code ane :
<code>
#include <stdio.h>
#include <stdlib.h>
int i,n,j,k,l;
int dataX[],dataY[];
double hasilXY[],hasilX2[],hasilY2[],hasilYa[],hasilEr[],sX,sY,sXY,sX2,sY2,s2X,a,b;
int main()
{
printf("Program Untuk Forecast dengan Teknik Regresi\n\n");
printf("Masukan Banyak data forecast :");
scanf("%d",&n);
for (i=0;i<n;i++) {
printf("\nMasukan Nilai X%d : ",i+1);
scanf("%d",&dataX[i]);
printf("\nMasukan Nilai Y%d : ",i+1);
scanf("%d",&dataY[i]);
}
printf("\n================================================\n");
proses();
getch();
}
void proses() {
printf("Banyak data : %d\n",n);
i =0;
for (i=0;i<n;i++) {
printf("Nilai X%d : %d\n",i+1,dataX[i]);
printf("Nilai Y%d : %d\n",i+1,dataY[i]);
} j=0;
for (j=0;j<n;j++) {
hasilXY[j] = dataX[j]*dataY[j];
hasilX2[j] = dataX[j]*dataX[j];
hasilY2[j] = dataY[j]*dataY[j];
printf("\nNilai XY%d : %lf",j+1,hasilXY[j]);
printf("\nNilai X2(%d) : %lf",j+1,hasilX2[j]);
printf("\nNilai Y2(%d) : %lf",j+1,hasilY2[j]);
}
printf("\n===============================================\n");
Mulai dari sini ada yang ganjil gan
k=0;sX=0.0;sY=0.0;sXY=0.0;sX2=0.0;
for (k=0;k<n;k++) {
sX = sX+dataX[k];
sY = sY+dataY[k];
sXY = sXY+hasilXY[k];
sX2 = sX2+hasilX2[k];
}
printf("\nSigma X : %lf",sX);
printf("\nSigma Y : %lf",sY);
printf("\nSigma XY : %lf",sXY);
printf("\nSigma X2 : %lf", sX2);
printf("\n===============================================\n");
b = (n*sXY-sX*sY)/(n*sX2-(sX*sX));
a = (sY-b*sX)/n;
printf("\n================================================\n");
printf("\n Nilai a : %lf",a);
printf("\n Nilai b : %lf",b);
printf("\n===============================================\n");
l=0;
for (l=0;l<n;l++) {
hasilYa[l] = a + b*dataX[l];
hasilEr[l] = abs(hasilYa[l]-dataY[l]);
printf("Nilai Y%d aksen : %lf",l+1,hasilYa[l]);
printf("\nNilai Error%d : %lf",l+1,hasilEr[l]);
}
printf("\n==================== END =======================\n");
}
</code>
Source Code ane :
<code>
#include <stdio.h>
#include <stdlib.h>
int i,n,j,k,l;
int dataX[],dataY[];
double hasilXY[],hasilX2[],hasilY2[],hasilYa[],hasilEr[],sX,sY,sXY,sX2,sY2,s2X,a,b;
int main()
{
printf("Program Untuk Forecast dengan Teknik Regresi\n\n");
printf("Masukan Banyak data forecast :");
scanf("%d",&n);
for (i=0;i<n;i++) {
printf("\nMasukan Nilai X%d : ",i+1);
scanf("%d",&dataX[i]);
printf("\nMasukan Nilai Y%d : ",i+1);
scanf("%d",&dataY[i]);
}
printf("\n================================================\n");
proses();
getch();
}
void proses() {
printf("Banyak data : %d\n",n);
i =0;
for (i=0;i<n;i++) {
printf("Nilai X%d : %d\n",i+1,dataX[i]);
printf("Nilai Y%d : %d\n",i+1,dataY[i]);
} j=0;
for (j=0;j<n;j++) {
hasilXY[j] = dataX[j]*dataY[j];
hasilX2[j] = dataX[j]*dataX[j];
hasilY2[j] = dataY[j]*dataY[j];
printf("\nNilai XY%d : %lf",j+1,hasilXY[j]);
printf("\nNilai X2(%d) : %lf",j+1,hasilX2[j]);
printf("\nNilai Y2(%d) : %lf",j+1,hasilY2[j]);
}
printf("\n===============================================\n");
Mulai dari sini ada yang ganjil gan
k=0;sX=0.0;sY=0.0;sXY=0.0;sX2=0.0;
for (k=0;k<n;k++) {
sX = sX+dataX[k];
sY = sY+dataY[k];
sXY = sXY+hasilXY[k];
sX2 = sX2+hasilX2[k];
}
printf("\nSigma X : %lf",sX);
printf("\nSigma Y : %lf",sY);
printf("\nSigma XY : %lf",sXY);
printf("\nSigma X2 : %lf", sX2);
printf("\n===============================================\n");
b = (n*sXY-sX*sY)/(n*sX2-(sX*sX));
a = (sY-b*sX)/n;
printf("\n================================================\n");
printf("\n Nilai a : %lf",a);
printf("\n Nilai b : %lf",b);
printf("\n===============================================\n");
l=0;
for (l=0;l<n;l++) {
hasilYa[l] = a + b*dataX[l];
hasilEr[l] = abs(hasilYa[l]-dataY[l]);
printf("Nilai Y%d aksen : %lf",l+1,hasilYa[l]);
printf("\nNilai Error%d : %lf",l+1,hasilEr[l]);
}
printf("\n==================== END =======================\n");
}
</code>
0
580
2
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Mari bergabung, dapatkan informasi dan teman baru!
Programmer Forum
20.2KThread•4.3KAnggota
Terlama
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru