Pages

Komputasi Numerik Membuat Program Deret Mc Laurin exp(x), sin, cos menggunakan Delphi7

Kamis, 03 April 2014
.Komputasi Numerik....Seperti yang sudah ada pada Judul ("Membuat Program Deret Mc Laurin exp(x), sin, cos").
.Disini saya tidak akan menjelaskan cara membuat formnya., mungkin anda sudah cukup paham dengan bahasa pemrograman Delphi7...
.Ok.! yyuuuukkkk Langsung saJa kita muLai membuatnya:.......................
.ini hasiL RUNnya sobat...
.Taaaaaa Daaaaaaaaaa.............!!!!



.sebelum memulai pengkodingannya...
.sisipkan XPManifest1  Letaknya ada dibagian bar menu tombol...
.klik tulisan Win32.. lalu klik gambar XP pada kolom garis merah...





.Jika sudah selesai memilih tombol XPManifest1...
.Letakkan XPManifest1 seperti gambar dibawah ini...





















.lalu seret bagian bawah Form ke atas hingga gambar XPManifest1 tertutup ., maka akan seperti gambar ini...
.biar tampilannya tambah cantik sobat.... :-)



















.Partama - tama sobat masukkan koding2 Function Variabel berikut ini terlebih dahulu sebelum memulai ke bagian Procedure...
.-Letakkan koding ini dibawah tulisan {$R *.dfm}...

Function XPangkat (x:real; n:integer):real;
var
  i:integer;
  hasil: real;
begin
  if n=0 then hasil:=1 else
  begin
    hasil:=1;
    For i:= 1 to n do
      hasil:=hasil*x;
  end;
  Result:=hasil;
end;

Function Faktorial (n:integer): real;
var
  i:integer;
  hasil: real;
begin
  hasil:=1;
  if n=0 then hasil:=1 else
  For i:= 1 to n do
    hasil:=hasil*i;
  Result:=hasil;
end;

Function CosPangkat (x:real; n:integer):real;
var
  i:integer;
  hasil: real;
begin
  if n=0 then hasil:=1 else
  begin
    hasil:=1;
    For i:= 1 to 2*n do
      hasil:=hasil*x;
  end;
  Result:=hasil;
end;

Function CosFaktorial (n:integer): real;
var
  i:integer;
  hasil: real;
begin
  hasil:=1;
  if n=0 then hasil:=1 else
  For i:= 1 to 2*n do
    hasil:=hasil*i;
  Result:=hasil;
end;

Function sinpangkat (x:real; n:integer) : real;
var
  i: integer;
  hasil:real;
begin
 if n = 0 then hasil := 1 else
 begin
   hasil:=1;
   For i:= 1 to 2*n+1 do
     hasil:=hasil*x;
 end;
 result:=hasil;
end;

Function sinFaktorial(n:integer):real;
var
  i: integer;
  hasil : real;
begin
  hasil:=1;
  if n = 0 then hasil := 1 else
  for i:=1 to 2*n+1 do
    hasil:=hasil*i;
    result:=hasil;
end;




.Jika koding diatas sudah selesai... sekarang kita masuk ke bagian pengkodingan...
.ini kodingnya sobat :-)
.koding pada tombol "Exp(x)"... Caption Button  Exp(x) saya ganti dengan nama "BTExp" biar lebih keren saja... Hohohooo...!!!
.Double klik saja pada tombol Button Exp(x) Tersebut., Lalu masukkan kodingnya dibawah ini...
.koding tombol Exp(x)...

procedure TForm1.BTExpClick(Sender: TObject);
Var
  i: integer;
begin
  //input
   x:=StrToFloat(EnilaiX.Text);
   BatasIterasi:=StrToFloat(EEbatasIterasi.Text);
   //Nilai Awal
   NilaiAwal:= XPangkat (x,0)/Faktorial(0);
   //Tampilan Awal
   LBHasil.Items.Add('Fungsi EXP(x) ');
   LBHasil.Items.Add('');
   LBHasil.Items.Add('Iterasi ke '+IntToStr(0)+'Hasil'+
    FormatFloat('#.00000',NilaiAwal)+' Kesalahan -');
   i:=1;
   //Mulai Iterasi
   Repeat
     NilaiAkhir:=NilaiAwal+XPangkat(x,i)/Faktorial(i);
     salah:=abs((NilaiAkhir-NilaiAwal)/NilaiAkhir)*100;
     //Tampilan Berikut
     LBHasil.Items.Add('Iterasi ke '+IntToStr(i)+'Hasil'+
      FormatFloat('#.00000',NilaiAkhir)+' Kesalahan '+
      FormatFloat('#.00000',salah));
     i:=i+1;
     //Mengembalikan Nilai Akhir Menjadi Nilai Awal
     NilaiAwal:=NilaiAkhir;
   Until salah<= BatasIterasi;
   LBHasil.Items.Add('');
end;


.Sekarang giliran memasukkan koding tombol Sin(x)... kasik dah sobat...!!!
.double klik tombolnya dan masukkan kodingnya...
.koding tombol Sin(x)...

procedure TForm1.BTsinxClick(Sender: TObject);
var
 i : integer;
begin
  //input
  x := StrToFloat(enilaiX.Text);
  BatasIterasi := StrToFloat(EEbatasIterasi.Text);
  x:=x/180*3.14;
  //niali awal
  NilaiAwal := x;
  //Tampilan awal
  lbHasil.Items.Add('Fungsi sin(x) ');
  lbHasil.Items.Add('');
  lbHasil.Items.Add('Iterasi ke ' + IntToStr(0) + ' Hasil ' +
    FormatFloat('#.00000',NilaiAwal) + ' Kesalahan -');
  i:=1;
   tanda:=-1;
  //mulai iterasi
  repeat
    NilaiAkhir := NilaiAwal+(tanda*(sinPangkat(x,i)/sinFaktorial(i)));
    salah := abs((NilaiAkhir-NilaiAwal)/NilaiAkhir)*100;
    //Tampilan berikut
    lbHasil.Items.Add('Iterasi ke ' +IntToStr(i)+' Hasil '+
      FormatFloat('#.00000',NilaiAkhir)+ ' Kesalahan '+
      FormatFloat('#.00000',salah));
    i := i + 1;
    tanda:=tanda*(-1);
    //mengembalikan nilai akhir menjadi nilai awal
    NilaiAwal := NilaiAkhir;
  until salah <= BatasIterasi;
  lbHasil.Items.Add('');
 end;

 .koding tombol Cos(x):
procedure TForm1.BTcosxClick(Sender: TObject);
Var
  i: integer;
begin
  //input
   x:=StrToFloat(EnilaiX.Text);
   BatasIterasi:=StrToFloat(EEbatasIterasi.Text);
   x:= x/180*3.14;
   //Nilai Awal
   NilaiAwal:= XPangkat (x,0)/Faktorial(0);
   //Tampilan Awal
   LBHasil.Items.Add('Fungsi cos(x) ');
   LBHasil.Items.Add('');
   LBHasil.Items.Add('Iterasi ke '+IntToStr(0)+'Hasil'+
    FormatFloat('#.00000',NilaiAwal)+' Kesalahan -');
   i:=1;
   tanda:=-1;
   //Mulai Iterasi
   Repeat
     NilaiAkhir:=NilaiAwal+(tanda*(CosPangkat(x,i)/CosFaktorial(i)));
     salah:=abs((NilaiAkhir-NilaiAwal)/NilaiAkhir)*100;
     //Tampilan Berikut
     LBHasil.Items.Add('Iterasi ke '+IntToStr(i)+'Hasil'+
      FormatFloat('#.00000',NilaiAkhir)+' Kesalahan '+
      FormatFloat('#.00000',salah));
     i:=i+1;
     tanda:=tanda*(-1);
     //Mengembalikan Nilai Akhir Menjadi Nilai Awal
     NilaiAwal:=NilaiAkhir;
   Until salah<= BatasIterasi;
   LBHasil.Items.Add('');

end;

.Koding tombol Ulang...
procedure TForm1.BTulangClick(Sender: TObject);
begin
  Refresh;
  EnilaiX.Clear;
  EEbatasIterasi.Clear;
  LBHasil.Clear;

end;

.Koding tombol Exit...
procedure TForm1.BTexitClick(Sender: TObject);
begin
  Close;
end;

end.


..::selesai::..
.kalau ada yang eror silahkan pos koment.
.tapi saya sangat berharap tidak ada yang eror.
.ammiiinnn!!!.

.


















1 komentar:

perhatian!
tolong komentarnya berhubungan dengan artikel yang ada.
komentar yang mengarah ke tindakan spam
akan dihapus atau terjaring secara otomatis oleh spam filter