Anda di halaman 1dari 5

2.

Program

#include<iostream>
#include<windows.h>
#include<conio.h>
using namespace std;
int main()
{
int a[20]={0};//koefisien dari suku banyak
int b[20]={0}; // hasil dari pembagian horner
int d[20]={0};
int i;//perulangan
int n; //derajat polinom
int o; // nilai x yang diketahui disoal
int p; //nilai suku banyak
string lanjut; // variabel untuk memilih melanjutkan kembali program / berhenti
kembali:
system("cls");
cout<<endl<<endl<<endl<<endl;
cout<<" AKAR-AKAR POLINOM "<<endl;
cout<<”METODE HORNER UNTUK EVALUASI POLINOM "<<endl<<endl<<endl;
cout<<" ======= Disusun Oleh ======= "<<endl<<endl;
cout<<" Akmal "<<endl;
cout<<" Widya Dwi Wulandari "<<endl<<endl<<endl;
cout<<" ======== Dosen Pengajar ======== "<<endl;
cout<<” Anita Desiani, S.Si., M.kom "<<endl<<endl<<endl;
cout<<" JURUSAN MATEMATIKA "<<endl;
cout<<”FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM"<<endl;
cout<<" UNIVERSITAS SRIWIJAYA "<<endl;
cout<<" 2017 "<<endl;
getch ();
system("cls");
aku:
cout<<" - Metode horner untuk evaluasi polinom - "<<endl<<endl;
// LANGKAH 1 :
// kita memulai program dengan memasukkan nilai derajat yang diinginkan/ pangkat
tertinggi
cout<<"\n Input nilai pangkat tertinggi dari fungsi : ";cin>>n;
// jika derajat yang diinputan lebih dari 20 atau kurang dari 0 maka program akan error
// karena program kami kondisikan menginput nilai maksimal berderajat 20
if(n>20 || n<= 0)
{ system ("cls");
Beep(987,800); // untuk mengeluarkan bunyi bip yg pertama (seperti peringatan)
Beep(988,1500); // untuk mengeluarkan bunyi bip yg kedua
system ("color 47"); // untuk mengubah backgroud menjadi warna merah
cout<<"\n XXX PROGRAM ERROR XXX"<<endl<<endl;
cout<<"NOTE !! (Program hanya bisa menginputkan nilai sampai derajat ke
20)"<<endl<<endl<<endl<<endl;
cout<<"Apakah anda ingin mengulang program (ketik 'ingin' jika ulang )."<<endl;
cin>>lanjut; //ketik 'ingin' jika ingin mengulang kembali program
system ("color 0F"); // untuk mengubah background menjadi warna hitam
if(lanjut=="ingin")
system ("cls");
goto aku;
return 0;}

// LANGKAH 2 :
// masukkan semua koefisien sebanyak perulangan n
cout<<"\n Input nilai koefisien !\n";
for(i=n;i>=0;i--)
{cout<<" Koefisien X^"<<i<<" : ";cin>>a[i];} // masukkan masing2 koefisien dari
suku banyak sampai ke-n
cout<<"\n\nP(x) = ";
for(i=n;i>=0;i--)
{if(i==0)
{cout<<" + ("<<a[i]<<") = 0";break;} // pada perulangan i=0 maka akan kita
keluarkan nilai dari a[0] = 0
cout<<"("<<a[i]<<")X"; // keluarkan nilai a[i](koefisien) yang telah diinputkan tadi
dgn perulangan sebanyak n
if (i==1)
continue;
cout<<"^"<<i<<" + ";}
cout<<endl;

// LANGKAH 3:
// masukkan nilai x yang telah diketahui (x adalah nilai pembagi polinom)
cout<<"Masukkan nilai x = ";cin>>o;
system ("cls"); //untuk menghapus layar sebelumnya agar terlihat lebih rapi

// LANGKAH 4 :
// kita cari nilai suku banyak dan polinom sisa dari pembagian horner
cout<<"Tentukan nilai suku banyak dari P(x) = "; // output semua koefisien polinom
dan nilai x yang telah diinputkan tadi berbentuk soal
for(i=n;i>=0;i--) // perulangan untuk mengoutputkan nilai polinom yang telah diketahui
{if(i==0) // jika i=0 maka output "+(" , a[i] , ")=0"
{cout<<" + ("<<a[i]<<") = 0";break;}
cout<<"("<<a[i]<<")x";
if (i==1)
continue;
cout<<"^"<<i<<" + ";}
cout<<" untuk x = "<<o<<" beserta polinom sisanya."<<endl<<endl;
// penyelesaian
cout<<"Penyelesaian : ";
cout<<endl;
cout<<endl<<endl<<endl;
// rumus untuk menyelesaikan pembagian horner
cout<<"x = "<<o<<" | ";
for(i=n;i>=0;i--)
cout<<a[i]<<" ";
cout<<endl;
cout<<" |\n";
cout<<" | ";
b[n]=a[n]*1; // masukkan nilai koefisien ke-n kedalam ruang kosong (b[n])
for(i=n-1;i>=0;i--) //lakukan perulangan
{

d[i]=o*b[i+1];

if(i==0)

p=a[i]+d[i];

b[i]=a[i]+d[i];

cout<<d[i]<<" ";

cout<<endl;

for(i=n;i>=0;i--)

cout<<"_________"; }

cout<<" + "; cout<<endl;

cout<<" | ";

for(i=n;i>=0;i--)

cout<<b[i]<<" ";

cout<<endl<<endl;

cout<<"Nilai dari P(x) untuk x = "<<o<<" memiliki nilai sebesar "<<p<<endl; //


output hasil nilai suku banyak yang telah diproses

cout<<"Dan menghasilkan polinom sisa ";

// output hasil polinom sisa yang telah diproses

for(i=n;i>=0;i--)

if(i==1)

{cout<<" + "<<b[i];break;}

cout<<"("<<b[i]<<")X";

if (i==2)

continue;

cout<<"^"<<i-1<<" + "; } cout<<endl<<endl;


// jika ingin mengulang program dengan soal yang berbeda silahkan ketik 'ya'

cout<<" Apakah anda ingin mengulanginya lagi? ketik 'ya' jika ingin.
"<<endl;

cin>>lanjut;

if (lanjut=="ya")

{system ("cls");

goto aku;}

else

{ system ("cls");

cout<<"Terima kasih atas kontribusi anda ^_^ sampai berjumpa lagi"<<endl;}

Anda mungkin juga menyukai