AMELIYA PUSPA NINGRUM


Lakukan Yang Terbaik Hari Ini

Membuat Grafik Dari Persamaan Garis Lurus Dan Kuadrat Dengan Delphi 7

Pada kali ini kita akan membuat grafik dari persamaan garis lurus dan kuadrat.

Untuk persamaan garis lurus kita memakai persamaan :

Y=mX+C

dan untuk persamaan kuadrat kita memakai persamaan :

Y:=mX2+C

Lalu siap kan form dengan tampilan sebagai berikut:

Berikut adalah source code:


unit Unit1;

interface

uses

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

  Dialogs, StdCtrls, ExtCtrls;

type

  TForm1 = class(TForm)

    Image1: TImage;

    Button1: TButton;

    ScrollBar1: TScrollBar;

    ScrollBar2: TScrollBar;

    Label3: TLabel;

    Label4: TLabel;

    Button2: TButton;

    Edit1: TEdit;

    Edit2: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Edit3: TEdit;

    Edit4: TEdit;

    Label5: TLabel;

    Label6: TLabel;

    Edit5: TEdit;

    Edit6: TEdit;

    Label7: TLabel;

    Label8: TLabel;

    Label9: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure ScrollBar2Change(Sender: TObject);

    procedure ScrollBar1Change(Sender: TObject);

    procedure Button2Click(Sender: TObject);

 

    procedure FormCreate(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  Form1: TForm1;

  //variabel yang digunakan

  gambar:TBitmap;

  sx,sy,sumbuX,sumbuY,panjanglengansumbuX,panjanglengansumbuY,i,X,Y:Integer;

  M,C:integer;

  j,jarakX,jarakY:Real;

implementation

{$R *.dfm}

 

procedure TForm1.Button1Click(Sender: TObject);

begin

//Tampilan gambar

    gambar:=TBitmap.Create;

    gambar.Width:=Image1.Width;

    gambar.Height:=Image1.Height; 

//Mengubah bahasa komputer menjadi tampilan

//Menampilkan posisi sumbu-Y

    Label3.Caption:=IntToStr(ScrollBar1.Position);

//Menampilkan posisi sumbu-X

    Label4.Caption:=IntToStr(-ScrollBar2.Position);

//Menentukan posisi dari sumbu-x dan sumbu-y

    sx:=Round(gambar.Height/2);

    sy:=Round(gambar.Width/2);

    sumbuX:=sx+ScrollBar2.Position;

    sumbuY:=sy+ScrollBar1.Position;

//Membuat garis (sumbu-x dan sumbu-y)

    gambar.Canvas.MoveTo(sumbuY,0);

    gambar.Canvas.LineTo(sumbuY,gambar.Height);

    gambar.Canvas.MoveTo(0,sumbuX);

    gambar.Canvas.LineTo(gambar.Width,sumbuX);

//Menentukan panjang sumbu-X dan sumbu-Y

    jarakX:=StrToFloat(Edit3.Text);

    jarakY:=StrToFloat(Edit4.Text);

    panjanglengansumbuX:=round(jarakX*2500);

    panjanglengansumbuY:=round(jarakY*2500);

 

    //Membuat titik pada koordinat sumbu-X dan sumbu-Y

     for i:=1 to panjanglengansumbuX do

     begin

      gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*i-1,sumbuX-5,sumbuY+panjanglengansumbuX*i+1,sumbuX+5);

      gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*i,sumbuX+10,IntToStr(i));

      gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*(-i)-1,sumbuX-5,sumbuY+panjanglengansumbuX*(-i)+1,sumbuX+5);

      gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*(-i),sumbuX+10,IntToStr(-i));

      end;

      for i:=1 to panjanglengansumbuY do

      begin

      gambar.Canvas.Ellipse(sumbuY-5,sumbuX+panjanglengansumbuY*i-1,sumbuY+5,sumbuX+panjanglengansumbuY*i+1);

      gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+panjanglengansumbuY*(-i),IntToStr(i));

      gambar.Canvas.Ellipse(sumbuY-5,sumbuX+panjanglengansumbuY*(-i)-1,sumbuY+5,sumbuX+panjanglengansumbuY*(-i)+1);

      gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+panjanglengansumbuY*(i),IntToStr(-i));

     end;

 

     //membuat garis dengan persamaan y=mx+c

     M:=StrToInt(Edit1.Text);

     C:=StrToInt(Edit2.Text);

     X:=-panjanglengansumbuX;

     Y:=M*X+C;

     gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

     for i:=-panjanglengansumbuX to panjanglengansumbuX do

     begin

     gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

     X:=i;

     Y:=M*X+C;

    gambar.Canvas.LineTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

 end;

 //menampilkan gambar

     image1.Picture.Assign(gambar);

     gambar.Free;

end;

 

//Menentukan posisidarisumbu-X

procedure TForm1.ScrollBar2Change(Sender: TObject);

begin

end;

//Menentukan posisi dari sumbu-Y (pada Button1 prosedurnya)

procedure TForm1.ScrollBar1Change(Sender: TObject);

begin

end;

 

//Membuat sumbu-X dan sumbu-Y berpotongan pada tengah gambar (pada Button2 prosedurnya)

procedure TForm1.Button2Click(Sender: TObject);

begin

//Tampilan gambar

    gambar:=TBitmap.Create;

    gambar.Width:=Image1.Width;

    gambar.Height:=Image1.Height;

 

//Mengubah bahasa komputer menjadi tampilan

//Menampilkan posisi sumbu-Y

    Label3.Caption:=IntToStr(ScrollBar1.Position);

//Menampilkan posisi sumbu-X

    Label4.Caption:=IntToStr(-ScrollBar2.Position);

//Menentukan posisi dari sumbu-x dan sumbu-y

    sx:=Round(gambar.Height/2);

    sy:=Round(gambar.Width/2);

    sumbuX:=sx+ScrollBar2.Position;

    sumbuY:=sy+ScrollBar1.Position;

//Membuat garis (sumbu-x dan sumbu-y)

    gambar.Canvas.MoveTo(sumbuY,0);

    gambar.Canvas.LineTo(sumbuY,gambar.Height);

    gambar.Canvas.MoveTo(0,sumbuX);

    gambar.Canvas.LineTo(gambar.Width,sumbuX);

 

//Menentukan panjang sumbu-X dan sumbu-Y

    jarakX:=StrToFloat(Edit3.Text);

    jarakY:=StrToFloat(Edit4.Text);

    panjanglengansumbuX:=round(jarakX*2500);

    panjanglengansumbuY:=round(jarakY*2500);

 

    //Membuat titik pada koordinat sumbu-X dan sumbu-Y 

     for i:=1 to panjanglengansumbuX do

     begin

      gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*i-1,sumbuX-5,sumbuY+panjanglengansumbuX*i+1,sumbuX+5);

      gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*i,sumbuX+10,IntToStr(i));

      gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*(-i)-1,sumbuX-5,sumbuY+panjanglengansumbuX*(-i)+1,sumbuX+5);

      gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*(-i),sumbuX+10,IntToStr(-i));

      end;

      for i:=1 to panjanglengansumbuY do

      begin

      gambar.Canvas.Ellipse(sumbuY-5,sumbuX+panjanglengansumbuY*i-1,sumbuY+5,sumbuX+panjanglengansumbuY*i+1);

      gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+panjanglengansumbuY*(-i),IntToStr(i));

      gambar.Canvas.Ellipse(sumbuY-5,sumbuX+panjanglengansumbuY*(-i)-1,sumbuY+5,sumbuX+panjanglengansumbuY*(-i)+1);

      gambar.Canvas.TextOut(sumbuY-15,sumbuX-7+panjanglengansumbuY*(i),IntToStr(-i));

     end;

 

     //membuat garis y=mx^2+c

     M:=StrToInt(Edit5.Text);

     C:=StrToInt(Edit6.Text);

     X:=-panjanglengansumbuX;

     Y:=M*X*X+C;

     gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

     for i:=-panjanglengansumbuX to panjanglengansumbuX do

     begin

     gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

     X:=i;

     Y:=M*X*X+C;

    gambar.Canvas.LineTo(sumbuY+X*panjanglengansumbuX,sumbuX-Y*panjanglengansumbuY);

 end;

 //menampilkan gambar

     image1.Picture.Assign(gambar);

     gambar.Free;

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin 

//Memberi jangkauan dari scrollbar

  ScrollBar1.Max:=Round(Image1.Width/2);

  ScrollBar1.Min:=-Round(Image1.Width/2);

  ScrollBar2.Max:=Round(Image1.Height/2);

  ScrollBar2.Min:=-Round(Image1.Height/2);

end;

end. 


Lalu compile dan run, tampilan akan menjadi seperti ini:

 

Jika menekan button1 maka berikut adalah hasilnya:

Jika mengubah nilai dalam edit berikut adalah hasilnya:

Jika button2 di klik berikut ini adalah hasilnya:

Jika mengubah deltanya :

 

Terima kasih, semoga bermanfaat :)

Tinggalkan Komentar

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