Kodingan untuk Membuat Grafik dari Persamaan Garis Lurus dan Kuadrat Menggunakan Delphi 7 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,sumbuX5,sumbuY+panjanglengansumbuX*i+1,sumbuX+5); gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*i,sumbuX+10,IntToStr(i));
gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*(-i)-1,sumbuX5,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*i1,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,sumbuXY*panjanglengansumbuY); for i:=-panjanglengansumbuX to panjanglengansumbuX do begin gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuXY*panjanglengansumbuY);
X:=i; Y:=M*X+C; gambar.Canvas.LineTo(sumbuY+X*panjanglengansumbuX,sumbuXY*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,sumbuX5,sumbuY+panjanglengansumbuX*i+1,sumbuX+5); gambar.Canvas.TextOut(sumbuY-3+panjanglengansumbuX*i,sumbuX+10,IntToStr(i)); gambar.Canvas.Ellipse(sumbuY+panjanglengansumbuX*(-i)-1,sumbuX5,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*i1,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,sumbuXY*panjanglengansumbuY); for i:=-panjanglengansumbuX to panjanglengansumbuX do begin gambar.Canvas.MoveTo(sumbuY+X*panjanglengansumbuX,sumbuXY*panjanglengansumbuY); X:=i; Y:=M*X*X+C; gambar.Canvas.LineTo(sumbuY+X*panjanglengansumbuX,sumbuXY*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.
Tampilan program ketika di Run
Tampilan program ketika di klik button1 dan mengubah nilai pada komponen “edit”
Tampilan program ketika di klik button2 dan mengubah nilai pada komponen “edit”
Tampilan program ketika nilai delta diubah