Pages

Wednesday, October 19, 2011

Persamaan Regresi dengan bahasa C


LISTING PROGRAM :
#include<iostream.h>
#include<stdio.h>
#include<conio.h>

typedef float data[100];
int sum, i;
data x, y, x2, y2, xy;
float a0, a1, b0, b1;

class carisigma
{
            public:
                        float sigma(data k, int n);
};

class regresi : public carisigma
{
            public:
                        void input(data x, data y, int n);
                        void proses(int n);
                        void reg_yx(int m);
                        void reg_xy(int m);
};

float carisigma :: sigma(data k, int n)
{
            int jml=0;
            for (i=1; i<=n; i++)
            {
                        jml+= k[i];
            }
            return jml;
}

void regresi :: input(data x, data y, int n)
{
            clrscr();
            cout<<"Input Nilai X :"<<endl;
            for (i=1; i<=n; i++)
            {
                        cout<<"\nNilai X ke-"<<i<<" : "; cin>>x[i];
            }
            clrscr();
            cout<<"Input Nilai Y :"<<endl;
            for (i=1; i<=n; i++)
            {
                        cout<<"\nNilai Y ke-"<<i<<" : "; cin>>y[i];
            }
            clrscr();
            cout<<"Himpunan X = {";
            for (i=1; i<=n; i++)
            {
                        cout<<" "<<x[i]<<" ";
            }
            cout<<"}";
            cout<<"\nHimpunan Y = {";
            for (i=1; i<=n; i++)
            {
                        cout<<" "<<y[i]<<" ";
            }
            cout<<"}";
}

void regresi :: proses(int n)
{
            for (i=1; i<=n; i++)
            {
                        xy[i] = x[i] * y[i];
                        x2[i] = x[i] * x[i];
                        y2[i] = y[i] * y[i];
            }
}

void regresi :: reg_yx(int m)
{
a1 = (m * sigma(xy, m) - sigma(x, m) * sigma(y, m)) / (m * sigma(x2, m) - (sigma(x, m)     * sigma(x, m)));
a0 = ((sigma(y, m) * sigma(x2, m)) - sigma(x, m) * sigma(xy, m)) / (m * sigma(x2, m) - (sigma(x, m) * sigma(x, m)));
            cout<<"\n\nPersamaan Regresi Y terhadap X :"<<endl;
            if (a1 > 0)
            {
                        printf("Y = %.2f + %.2f X",a0, a1);
            }
            else
            {
                        printf("Y = %.2f%.2f X",a0, a1);
            }
}

void regresi :: reg_xy(int m)
{
b1 = (m * sigma(xy, m) - sigma(y, m) * sigma(x, m)) / (m * sigma(y2, m) - (sigma(y, m) * sigma(y, m)));
b0 = ((sigma(x, m) * sigma(y2, m)) - sigma(y, m) * sigma(xy, m)) / (m * sigma(y2, m) - (sigma(y, m) * sigma(y, m)));
            cout<<"\n\nPersamaan Regresi X terhadap Y :"<<endl;
            if (b1 > 0)
            {
                        printf("X = %.2f + %.2f Y",b0, b1);
            }
            else
            {
                        printf("X = %.2f%.2f Y",b0, b1);
            }
}

int main()
{
            regresi obj;
            clrscr();
            do
            {
                        if (sum<=0 || sum>100)
                        {
                                    clrscr();
                                    cout<<"Masukkan banyaknya masing-masing data X & Y [1 s/d 100] : "; cin>>sum;
                        }
            }
            while(sum<=0 || sum>100);
            obj.input(x, y, sum);
            obj.proses(sum);
            obj.reg_yx(sum);
            obj.reg_xy(sum);
            getch();
            return 0;
}

tampilannya seperti berikut :
Disini user menginput banyaknya data adalah tiga untuk masing-masing data pada variabel X dan Y.


Kemudian program meminta user untuk menginput nilai-nilai pada variabel X sesuai dengan banyaknya data.
 


Berikut ini merupakan tampilan inputan nilai-nilai pada variabel X. Terdapat tiga nilai, sesuai dengan banyaknya data yang ingin diinput.



Sedangkan tampilan di bawah ini merupakan inputan nilai-nilai pada variabel Y



Setelah semua data diinput, kemudian user menekan tombol enter, maka program akan menjalankan perhitungan regresi dan hasilnya akan tercetak seperti tampilandi bawah ini :

 

No comments:

Post a Comment