Kamis, 13 Desember 2012

Program Metode Eksponensial


Pada kali ini saya akan mencoba berbagi program yang saya buat, yaitu program metode eksponensial. Metode eksponensial ini sebenarnya salah satu materi mata kuliah saya yaitu metode numerik. Nah langsung aja ni codingnya:

#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <iomanip.h>

main()
{
int n, m;
char pilih, pilih1;
float x[25], y[25], lny[25], xlny[25], x2[25], xa, ya, hasil;
float a, b, lna, jumx, jumy, jumlny, jumxlny, jumx2, ratax, ratalny;

lagi:
clrscr();
cout<<"       >>> Program Fungsi Eksponensial <<<\n";
cout<<"     =======================================\n\n";
cout<<" Input Jumlah Data : ";
cin>>n;

cout<<"\n Input Data X !\n";
cout<<" --------------\n";
for (m=1; m<=n; m++)
{
cout<<"    Data X ke "<<m<<" : ";
cin>>x[m];
}

cout<<"\n Input Data Y !\n";
cout<<" --------------\n";
for (m=1; m<=n; m++)
{
cout<<"    Data Y ke "<<m<<" : ";
cin>>y[m];
}

for (m=1; m<=n; m++)
{
lny[m]=log(y[m]);
xlny[m]=x[m]*log(y[m]);
x2[m]=x[m]*x[m];
}

cout<<endl<<endl;

cout<<" ------------------------------------------------------------------\n";
cout<<" |    No   |    X    |    Y    |   Ln Y   |   X(Ln Y)   |   X^2   |\n";
cout<<" ==================================================================\n";
for (m=1; m<=n; m++)
{
cout<<" |    "<<setw(5)<<setiosflags(ios::left)<<m;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<x[m];
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<y[m];
cout<<"| "<<setw(9)<<setiosflags(ios::left)<<lny[m];
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<xlny[m];
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<x2[m]<<"|\n";
cout<<" ------------------------------------------------------------------\n";
}

jumx=0;
jumy=0;
jumlny=0;
jumxlny=0;
jumx2=0;
for (m=1; m<=n; m++)
{
jumx=jumx + x[m];
jumy=jumy + y[m];
jumlny=jumlny + lny[m];
jumxlny=jumxlny + xlny[m];
jumx2=jumx2 + x2[m];
}
ratax=jumx/n;
ratalny=jumlny/n;

cout<<" |"<<setw(9)<<setiosflags(ios::left)<<"Jumlah";
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<jumx;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<jumy;
cout<<"| "<<setw(9)<<setiosflags(ios::left)<<jumlny;
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<jumxlny;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<jumx2<<"|\n";
cout<<" ------------------------------------------------------------------\n";

cout<<" |"<<setw(9)<<setiosflags(ios::left)<<"Rata-rata";
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<ratax;
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<"";
cout<<"| "<<setw(9)<<setiosflags(ios::left)<<ratalny;
cout<<"| "<<setw(12)<<setiosflags(ios::left)<<"";
cout<<"| "<<setw(8)<<setiosflags(ios::left)<<""<<"|\n";
cout<<" ------------------------------------------------------------------\n";

b=((n*jumxlny)-(jumx*jumlny))/((n*jumx2)-(jumx*jumx));
lna=ratalny-(b*ratax);
a=exp(lna);

cout<<endl<<endl;
cout<<" a = "<<a<<endl;
cout<<" b = "<<b<<endl;
cout<<" Y = "<<a<<" . e^"<<b<<"X";

atas:
cout<<"\n\n Input nilai X atau Y yang diketahui.";
cout<<"\n    Tekan [1] bila nilai X yang diketahui !";
cout<<"\n    Tekan [2] bila nilai Y yang diketahui !";
pilih=getche();
if (pilih=='1')
{
   clrscr();
cout<<" Input nilai X yang diketahui : ";
   cin>>xa;
   hasil=a*exp(b*xa);
   cout<<" Nilai Y dari X = "<<xa<<" adalah : "<<hasil;
   cout<<endl<<endl;
   cout<<" Tekan [1] untuk menghitung lagi dengan data yang sama !\n";
   cout<<" Tekan [2] untuk menghitung lagi dengan data yang berbeda !\n";
   cout<<" Tekan [3] untuk keluar dari program !";
   pilih1=getche();
   if (pilih1=='1')
   {
    goto atas;
   }
   else if (pilih1=='2')
   {
    goto lagi;
   }
   else
   {
    exit(0);
   }
}
else if (pilih=='2')
{
clrscr();
cout<<" Input nilai Y yang diketahui : ";
   cin>>ya;
   hasil=log(ya/a)/b;
   cout<<" Nilai X dari Y = "<<ya<<" adalah : "<<hasil;
cout<<endl<<endl;
   cout<<" Tekan [1] untuk menghitung lagi dengan data yang sama !\n";
   cout<<" Tekan [2] untuk menghitung lagi dengan data yang berbeda !\n";
   cout<<" Tekan [3] untuk keluar dari program !";
   pilih1=getche();
   if (pilih1=='1')
   {
    goto atas;
   }
   else if (pilih1=='2')
   {
    goto lagi;
   }
   else
   {
    exit(0);
   }
   }
else
{
goto atas;
}
getch();
}

Buat agan-agan yang tidak punya aplikasi untuk menjalankan program C++ jangan khawatir, program fungsi eksponensial.exe bisa langsung di download di sini dan bisa dijalankan tanpa aplikasi tambahan. Demikian program sederhana yang saya buat, semoga bermanfaat untuk kita semua. Terima kasih atas kunjungannya dan jangan lupa jempot serta komentarnya :)

4 komentar: