tutorial metode iterasi
TRANSCRIPT
-
Tutorial Komputasi Numerik Page 1
METODE ITERASI Pada Borland Delphi buatlah form seperti berikut dengan :
Untuk menambahkan komponen StringGrid bisa di akses pada tab control additional pada
component pallete, kemudian aturlah beberapa properties sebagai berikut:
FixedCol = 0, FixedRow = 1,
RowCount = 20, ColCount = 3 dan option goEditing = True.
Kemudian untuk prosedur FormShow pada Form, ketikkan kode di antara Begin dan
End, berikut:
Procedure TForm1.FormShow(Sender: TObject);
begin
with StringGrid1 do
begin
Cells[0,0]:='Taksiran';
Cells[1,0]:='Hasil';
-
Tutorial Komputasi Numerik Page 2
Cells[2,0]:='Kesalahan Iterasi';
end;
end;
Perintah di atas akan menampilkan tulisan Taksiran, Hasil, dan Kesalahan Iterasi pada
StringGrid di sel (0,0), (1,0), dan sel (2,0).
Buatlah prosedur tak standar untuk fungsi pangkat, ketikkan kode di antara Begin dan End
sebagai berikut :
Function XPangkat(x:real; n:Integer):Real;
var
i:Integer;
hasil:Real;
begin
hasil:=1;
for i:=1 to n do
hasil:=hasil*x;
Result:=hasil;
end;
Lakukan hal yang sama seperti procedure fungsi pangkat, untuk membuat procedure tak
standar fungsi factorial adalah sebagai berikut :
Function Faktorial(n:Integer):Integer;
var
i,hasil:Integer;
begin
hasil:=1;
if n=0 then hasil:=1 else
-
Tutorial Komputasi Numerik Page 3
for i:=1 to n do
hasil:=hasil*i;
Result:=hasil;
end;
Buatlah prosedur standar untuk hitung, ketikkan kode di antara Begin dan End, sebagai
berikut :
Procedure TForm1.bHitungClick(Sender: TObject);
var
i:Integer;
begin
//input nilai x dan batas iterasi
Batas:=StrToFloat(eBatas.Text);
Input:=StrToFloat(eNilaiX.Text);
//Proses Taksiran awal
HasilAkhir:=1 +input;
HasilAkhirAwal:=HasilAkhir;
//iterasi pertama
salah:=abs(HasilAkhir-1)/HasilAkhir*100;
salah:= (Round(salah*10000))/10000;
//menampilkan hasil iterasi awal
StringGrid1.Cells[0,1]:='1';
StringGrid1.Cells[1,1]:=FloatToStr(round(HasilAkhirAwal*10000)/10000);
-
Tutorial Komputasi Numerik Page 4
StringGrid1.Cells[2,1]:=FloatToStr(salah);
//proses taksiran dan iterasi selanjutnya
for i:=2 to 1000 do
begin
HasilAkhir:=HasilAkhir + XPangkat(Input,i)/Faktorial(i);
salah:=abs(HasilAkhir-HasilAkhirAwal)/HasilAkhir*100;
salah:=(ROUND(salah*10000))/10000;
HasilAkhirAwal:=HasilAkhir;
HasilAkhirAkhir:=(ROUND(HasilAkhir*10000))/10000;
//menampilkan hasil iterasi selanjutnya
StringGrid1.Cells[0,i]:=IntToStr(i);
StringGrid1.Cells[1,i]:=FloatToStr(round(HasilAkhirAkhir*10000)/10000);
StringGrid1.Cells[2,i]:=FloatToStr(salah);
if salah
-
Tutorial Komputasi Numerik Page 5
eNilaiX.Text:='';
eBatas.Text:='';
for i:= 1 to 20 do
for j:= 1 to 3 do
StringGrid1.Cells[j-1,i]:='';
end;
Dan yang terakhir pada tombol keluar ketikkan kode sebagai berikut :
Procedure TForm1.bExitClick(Sender: TObject);
begin
Application.Terminate;
end;
Kemudian jalankan ( run ) program tersebut dengan menekan F9 dan perhatikan hasilnya :
-
Tutorial Komputasi Numerik Page 6
Oleh :
o Afifah ( 12012444 ) o Annisa Triswardani ( 12012452 ) o Dinil Octavianir R ( 12012463 ) o Diana Indriati ( 12012461 )
Kelas B