AMELIYA PUSPA NINGRUM


Lakukan Yang Terbaik Hari Ini

PROGRAM INTEGRAL DAN DIFERENSIAL MENGGUNAKAN DELPHI

PROGRAM MENGHITUNG INTEGRAL

Source code Program:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls,math, ExtCtrls;

type

  TForm1 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Button1: TButton;

    ListBox1: TListBox;

    Image1: TImage;

    Label6: TLabel;

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  //variabel global untuk menangani semua procedure

  awal,Akhir,Y,X,DeltaX,NilaiIntegral,maksimalY,MinimalY,luasPixel : Real;

  i,JumlahPixelX,pixelX,PixelY,sumbuX,SumbuY : Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

   ListBox1.Clear; //untuk mengosogkan listbox saat proses baru

   //mengosongkan bidang gambar

   image1.Canvas.Brush.Bitmap:= nil;

   image1.Canvas.FillRect(Rect(0,0,image1.width,image1.Height));

   //memasukkan kondisi awal

   Awal := StrToFloat(edit1.text);

   Akhir := StrToFloat(edit2.text);

   MaksimalY :=StrToFloat(edit3.Text);

   MinimalY := StrToFloat(edit4.Text);

   JumlahPixelX:=Image1.Width; //menghitung jumlah titik x pada pixel

   DeltaX := (Akhir-Awal)/JumlahPixelX; //menghitung jarak antar x

   //menentukan posisi sumbu koordinat x dan y

   SumbuX:=Round(-awal/deltaX);

   SumbuY:=Round((Image1.Height)+minimalY*image1.Height/(MaksimalY-MinimalY));

   //menggambar sumbu koordinat x dan y

   image1.Canvas.Pen.Width:=4;//menentukan ketebalan garis x,y

   image1.Canvas.Pen.Color:=clBlack;

   image1.Canvas.MoveTo(0,SumbuY);

   image1.Canvas.LineTo(image1.width,SumbuY);

   image1.Canvas.MoveTo(SumbuX,0);

   image1.Canvas.LineTo(SumbuX,image1.height);

   //memberikan komentar pada listbox

   ListBox1.Items.Add( 'Nilai Integralnya adalah :');

   X:= awal;//posisi awal x

   nilaiIntegral :=0;

   LuasPixel := (Abs(MaksimalY-MinimalY)/Image1.height)*DeltaX;

   //looping for to do

   For i:=1 to JumlahPixelX do

   begin

      x:= X + deltaX;//menentukan nilai x selanjutnya

      Y:= sin (x);//persamaan untuk mencari nilai integral

      //menentukan posisi x,y, dalam koordinat

      pixelX:=i;

      pixelY:=Round((Image1.Height/2)-Y*image1.Height/(MaksimalY-MinimalY));

      nilaiIntegral :=nilaiIntegral+ (abs(PixelY-Image1.Height/2));

      Image1.Canvas.Pen.Width:=3;//menentukan ketebalan garis kurva

      //perintah if then else

      if i=1 then Image1.Canvas.Pen.Color:=clBlue;

         Image1.Canvas.Pen.Color:=clBlue;

         Image1.Canvas.MoveTo(PixelX,sumbuY);

         Image1.Canvas.LineTo(PixelX,PixelY);

    end;

    //memunculkan hasil integral

    NilaiIntegral:=NilaiIntegral*LuasPixel;

    ListBox1.Items.Add(FloatToStr(NilaiIntegral));

    Label6.Caption:= 'Fungsi Y=sin x'; //memunculkan fungsi yang digunakan

end;

 end.

Dari program diatas, maka akan menampilkan program seperti berikut:

PROGRAM DIFERENSIAL

Source code program:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs,math, ExtCtrls, StdCtrls;

type

  TForm1 = class(TForm)

    Edit1: TEdit;

    Edit2: TEdit;

    Edit3: TEdit;

    Edit4: TEdit;

    Button1: TButton;

    ScrollBar1: TScrollBar;

    ScrollBar2: TScrollBar;

    Image1: TImage;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure ScrollBar1Change(Sender: TObject);

    procedure ScrollBar2Change(Sender: TObject);

    procedure FormCreate(Sender: TObject);

  private

    procedure diferensial;

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

  //variabel global yang menangani semua procedure

  awal,Akhir,Y,X,DeltaX,gradien,konstanta,nilai,maksimalY,MinimalY,Xlama,Ylama : Real;

i,JumlahPixelX,pixelX,PixelY,sumbuX,SumbuY,PixelXlama,PixelYlama,PixelXdif,PixelYdif,XlamaDif,YlamaDif : Integer;

implementation

{$R *.dfm}

procedure Tform1.diferensial;

begin

   //mengosongkan bidang gambar

   image1.Canvas.Brush.Bitmap := nil;

   image1.Canvas.FillRect(Rect(0,0,image1.width,image1.Height));

   //memasukkan kondisi awal

   Awal := StrToFloat(edit1.text)+Scrollbar1.Position;

   Akhir := StrToFloat(edit2.text)+Scrollbar1.Position;

   MaksimalY :=StrToFloat(edit3.Text)-Scrollbar2.Position;

   MinimalY := StrToFloat(edit4.Text)-Scrollbar2.Position;

   JumlahPixelX:=Image1.Width; //menghitung jumlah titik x pada pixel

   DeltaX := (Akhir-Awal)/JumlahPixelX;//menghitung jarak antar x

   //menentukan posisi sumbu koordinat x dan y

   SumbuX:=Round(-awal/deltaX);

   SumbuY:=Round((Image1.Height)+minimalY*image1.Height/(MaksimalY-MinimalY));

   //menggambar sumbu koordinat x dan y

   image1.Canvas.Pen.Width:=3;//menentukan ketebalan garis sumbu x dan y

   image1.Canvas.Pen.Color:=clBlue;//memberikan warna pada garis sumbu x dan y

   image1.Canvas.MoveTo(0,SumbuY);

   image1.Canvas.LineTo(image1.width,SumbuY);

   image1.Canvas.MoveTo(SumbuX,0);

   image1.Canvas.LineTo(SumbuX,image1.height);

   //posisi awal x

    X:= awal;

    //looping for to do

    For i:=1 to JumlahPixelX do

    begin

       x:= X + deltaX;//menentukan nilai x selanjutnya

       Y:= Sin(x);//persamaan untuk diferensial

       y:=Y+Scrollbar2.Position;// penggulungan layar ke atas dan ke bawah

       //menentukan posisi x,y dalam koordinat

       pixelX:=i;

       pixelY:=Round((Image1.Height/2)-Y*image1.Height/(MaksimalY-MinimalY));

       Image1.Canvas.Pen.Width:=5;//menentukan ketebalan garis kurva

       //perintah if then else (untuk aturan yang digunakan)

       if i=1 then

       begin

         Xlama:=X;

         Ylama:=Y;

         PixelXlama:=PixelX;

         PixelYLama:=PixelY;

       end

       else

       begin

         gradien :=(Y-Ylama)/(X-Xlama);

         gradien:=gradien+Scrollbar2.Position;

         PixelXdif :=i;

         PixelYDif:=Round((Image1.Height/2)-gradien*image1.Height/(MaksimalY-MinimalY));

 

         if i>2 then

         begin

            //kurva diferensial

            Image1.Canvas.Pen.Color:=clRed;

            Image1.Canvas.MoveTo(XlamaDif,YlamaDif);

            Image1.Canvas.LineTo(PixelXdif,PixelYdif);

         end;

         //kurva fungsi awal

         Image1.Canvas.Pen.Color:=clYellow;

         Image1.Canvas.MoveTo(PixelXlama,PixelYlama);

         Image1.Canvas.LineTo(PixelX,PixelY);

         Xlama:=X;

         YLama:=Y;

         PixelXlama:=PixelX;

         PixelYLama:=PixelY;

         Xlamadif:=PixelXdif;

         YLamadif:=PixelYdif;

       end;

    end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

   diferensial;

   //memberi keterangan pada gambar

   Label8.Caption:='Warna Kuning: Kurva Fungsi Awal y=sin x';

   Label9.Caption:='Warna Merah : Kurva Hasil Diferensial';

end;

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

   diferensial;

end;

procedure TForm1.ScrollBar2Change(Sender: TObject);

begin

   diferensial;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

    //perintah untuk batas min dan max

    scrollbar1.min:=-100;

    scrollbar1.max:=100;

    scrollbar2.min:=-100;

    scrollbar2.max:=100;

    scrollbar1.Position:=0;

    scrollbar2.Position:=0;

end;

end.

Tampilan program akan tampak seperti berikut pada saat dijalankan:

Berikut adalah program integral dan differensial pada gelombang sinus dengan menggunakan program delphi. Semoga bermanfaat :)


Tinggalkan Komentar

Nama :
E-mail :
Web : tanpa http://
Komentar :
Verification Code :   ">