Data 1
JUDUL :
FLOWCHART :
start
Sumbu x,
sumbu y,
data biner
Data[i]=’1'
x2:=i*round(pnjg)-round(pnjg); x2:=i*round(pnjg)-round(pnjg);
Image1.Canvas.MoveTo(x2,y1-50); Image1.Canvas.MoveTo(x2,y1-100);
x3:=(i+1)*round(pnjg)-round(pnjg); x3:=(i+1)*round(pnjg)-round(pnjg);
Image1.Canvas.LineTo(x3,y1-50); Image1.Canvas.LineTo(x3,y1-100);
Data[i]><data[i
+1]
x3:=(i+1)*round(pnjg)-round(pnjg);
Image1.Canvas.MoveTo(x3,y1-100);
Image1.Canvas.LineTo(x3,y1-50);
start
Sumbu x,
sumbu y,
frekuensi,
amplitudo
(Tampilkan)
sy:=sin(sx/pi/
frek)*amp;
Image1.Canvas.Pi
xels[sx+x,150-
round(sy)]:=clblue;
Memo1.Lines.Add(
'x['+inttostr(sx)+'] =
'+formatfloat('#.##
#',(sy)));
Memo1.ScrollBars :=ssVertical;
(Bersihkan)
sy:=sin(sx/pi/frek)*amp;
Image1.Canvas.Pixels[sx+x,
150-round(sy)]:=clwhite;
Image1.Canvas.MoveTo(x,0)
;
for sx:=1 to 800 do
Image1.Canvas.Pixels[x,sx]:
=clwhite;
Image1.Canvas.MoveTo(0,y)
;
for sx:=1 to 800 do
Image1.Canvas.Pixels[sx,y]:
=clwhite;
LISTING PROGRAM :
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, ExtCtrls, StdCtrls;
type
Tfrmsinyal = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
edsumbux: TEdit;
3
edsumbuy: TEdit;
report: TMemo;
btsinewave: TButton;
Imgsinus: TImage;
edampl: TEdit;
Label3: TLabel;
rdfrekuensi: TRadioGroup;
btclear: TButton;
Panel2: TPanel;
Imgkotak: TImage;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
eddigx: TEdit;
eddigy: TEdit;
edbiner: TEdit;
btdigitalwave: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
procedure btsinewaveClick(Sender: TObject);
procedure reportChange(Sender: TObject);
procedure btclearClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btdigitalwaveClick(Sender: TObject);
procedure ImgkotakClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmsinyal: Tfrmsinyal;
implementation
{$R *.dfm}
4
procedure Tfrmsinyal.btsinewaveClick(Sender: TObject);
var sx,x,y,ampl:integer;
sy:real;
frek:double;
begin
x:=strtoint(edsumbux.Text);
y:=strtoint(edsumbuy.Text);
ampl:=strtoint(edampl.Text);
case rdfrekuensi.ItemIndex of
0: frek:=20;
1: frek:=10;
2: frek:=4;
3: frek:=2;
4: frek:=1;
5: frek:=0.5;
end;
sumbu(x,y,35,150);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*ampl;
imgsinus.Canvas.Pixels[sx+x,150-round(sy)]:=clblue;
report.Lines.Add('x['+inttostr(sx)+']='+formatfloat('#.###',(sy)));
end;
edampl.Enabled:=false;
btsinewave.Enabled:=false;
rdfrekuensi.Enabled:=false;
end;
case rdfrekuensi.ItemIndex of
0: frek:=20;
1: frek:=10;
2: frek:=4;
3: frek:=2;
4: frek:=1;
5: frek:=0.5;
end;
btsinewave.Enabled:=true;
edampl.Enabled:=true;
rdfrekuensi.Enabled:=true;
rdfrekuensi.ItemIndex:=0;
report.Lines.Clear;
report.ScrollBars:=ssNone;
// kosongkan kurva
for sx:=1 to 395 do
begin
5
sy:=sin(sx/pi/frek)*ampl;
imgsinus.Canvas.Pixels[sx+x,150-round(sy)]:=clwhite;
end;
// hapus Sumbu X
imgsinus.Canvas.MoveTo(x,0);
for sx:=1 to 800 do
imgsinus.Canvas.Pixels[x,sx]:=clwhite;
//hapus Sumbu Y
imgsinus.Canvas.MoveTo(0,y);
for sx:=1 to 800 do
imgsinus.Canvas.Pixels[sx,y]:=clwhite;
end;
end.
ANALISIS DATA :
Ay+c Ax+b
frekuensi 1 Hz
frekuensi 6 Hz
case rdfrekuensi.ItemIndex of
0: frek:=20;
1: frek:=10;
2: frek:=4;
3: frek:=2;
4: frek:=1;
5: frek:=0.5;
end;
btsinewave.Enabled:=true;
edampl.Enabled:=true;
rdfrekuensi.Enabled:=true;
rdfrekuensi.ItemIndex:=0;
report.Lines.Clear;
report.ScrollBars:=ssNone;
// kosongkan kurva
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*ampl;
imgsinus.Canvas.Pixels[sx+x,150-round(sy)]:=clwhite;
end;
// hapus Sumbu X
imgsinus.Canvas.MoveTo(x,0);
for sx:=1 to 800 do
imgsinus.Canvas.Pixels[x,sx]:=clwhite;
//hapus Sumbu Y
imgsinus.Canvas.MoveTo(0,y);
for sx:=1 to 800 do
imgsinus.Canvas.Pixels[sx,y]:=clwhite;
end;
end.
KESIMPULAN
10
Gelombang sinus memilki referensi koordinat awal yaitu (0,0) dan berada
pada pojok kiri atas.