Anda di halaman 1dari 9

NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL

KELAS : TT 2A

I. Tujuan Praktikum

II. Landasan Teori

III. Perencanaan
1. Flowchart Program Sinyal Analog
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

2. Flowchart Program Sinyal Analog dan Digital


START

Tidak
amp,sx,x,y:integer;
sy,frek:real; frek2.checked ?

ya

reset frek = 4

Tidak
amp1.checked ? Tidak
frek3.checked ?

ya
ya

amp = 25
frek = 2

Tidak
amp2.checked ?

ya x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
amp = 50

Membuat sumbu vertikal horizontal


Tidak pada canvas imgsinus
amp3.checked ?

ya
for sx:=1 to 395 do

amp = 100

sy:=sin(sx/pi/frek)*amp;
frmsinyal.imgsinus.Can vas.Pixels[sx
+20,120-round(sy)]:=clred;
Tidak
frek1.checked ?

ya

end
frek1 = 10
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

IV. Implementasi
1. Program Untuk Menggambarkan Sinyal Analog
unit siandig;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;

type
Tfrmsinyal = class(TForm)
imgtampil: TImage;
Panel1: TPanel;
btproses: TButton;
edsumbux: TEdit;
edsumbuy: TEdit;
mmhasil: TMemo;
Label1: TLabel;
Label2: TLabel;
edamp: TEdit;
Label3: TLabel;
colfrek: TRadioGroup;
frek1: TRadioButton;
frek2: TRadioButton;
frek3: TRadioButton;
procedure btprosesClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmsinyal: Tfrmsinyal;

implementation

{$R *.dfm}
procedure sumbu (ax, ay, b, c:integer);
Begin
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.imgtampil.Canvas.LineTo(ax+b,ay);
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay);
frmsinyal.imgtampil.Canvas.LineTo(ax,ay-c);
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay);
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

frmsinyal.imgtampil.Canvas.LineTo(ax,ay+c);
end;

procedure Tfrmsinyal.btprosesClick(Sender: TObject);


var
sx,x,y,a:integer;
sy,frek:real;
begin
if frek1.Checked then frek:=2;
if frek2.Checked then frek:=1;
if frek3.Checked then frek:=0.5;
x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
a:=strtoint(frmsinyal.edamp.Text);
sumbu (x,y,400,400);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*a;
frmsinyal.imgtampil.Canvas.Pixels[sx+x,200-round(sy)]:=clred;
end;

frmsinyal.mmhasil.Lines.Add('=> Amplitude ='+inttostr(a));


frmsinyal.mmhasil.Lines.Add('=> X ='+inttostr(sx)+''+formatfloat('#.###',(sy)));
end;
end.

2. Program Untuk Menampilkan Sinyal Analog dan Digital


unit sikotsinus;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;

type
Tfrmsinyal = class(TForm)
imgsinus: TImage;
imgkotak: TImage;
pnl1: TPanel;
btsin: TButton;
btkot: TButton;
edx: TEdit;
edy: TEdit;
lbl1: TLabel;
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

lbl2: TLabel;
lbl3: TLabel;
lbl4: TLabel;
pnl2: TPanel;
pnl3: TPanel;
grp1: TGroupBox;
edbin: TEdit;
pnl4: TPanel;
pnl5: TPanel;
AMPLITUDO: TLabel;
FREKUENSI: TLabel;
amp1: TRadioButton;
amp2: TRadioButton;
amp3: TRadioButton;
frek1: TRadioButton;
frek2: TRadioButton;
frek3: TRadioButton;
lp1: TRadioButton;
lp2: TRadioButton;
lp3: TRadioButton;
tp1: TRadioButton;
tp2: TRadioButton;
tp3: TRadioButton;
lbl5: TLabel;
lbl6: TLabel;
procedure btsinClick(Sender: TObject);
procedure btkotClick(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
frmsinyal: Tfrmsinyal;
implementation
{$R *.dfm}
procedure sumbu1(ax,ay,b,c:integer);
begin
frmsinyal.imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.imgsinus.Canvas.LineTo(ax+b,ay);
frmsinyal.imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.imgsinus.Canvas.LineTo(ax,ay-c);
frmsinyal.imgsinus.Canvas.MoveTo(ax,ay);
frmsinyal.imgsinus.Canvas.LineTo(ax,ay+c);
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

frmsinyal.imgsinus.Canvas.Pen.Color:=clblue;
frmsinyal.imgsinus.Canvas.MoveTo(ax,ay+110);
frmsinyal.imgsinus.Canvas.LineTo(ax+160,ay+110);
frmsinyal.imgsinus.Canvas.MoveTo(ax+220,ay+110);
frmsinyal.imgsinus.Canvas.LineTo(ax+390,ay+110);
frmsinyal.imgsinus.Canvas.TextOut(ax+170,ay+105,'1 detik');
frmsinyal.imgsinus.Canvas.TextOut(ax,ay-c,'Amplitude (A)');
frmsinyal.imgsinus.Canvas.TextOut(ax+b-15,ay-15,'Time(t)');
frmsinyal.imgsinus.Canvas.TextOut(ax-10,ay-30,'1-');
frmsinyal.imgsinus.Canvas.TextOut(ax-10,ay-58,'2-');
frmsinyal.imgsinus.Canvas.TextOut(ax-10,ay-107,'4-');
end;
procedure sumbu2(ax,ay,b,c:integer);
begin
frmsinyal.imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.imgkotak.Canvas.LineTo(ax+b,ay);
frmsinyal.imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.imgkotak.Canvas.LineTo(ax,ay-c);
frmsinyal.imgkotak.Canvas.MoveTo(ax,ay);
frmsinyal.imgkotak.Canvas.LineTo(ax,ay+c);
frmsinyal.imgkotak.Canvas.TextOut(ax,ay-c,'Amplitude (v)');
frmsinyal.imgkotak.Canvas.TextOut(ax+b-5,ay+5,'Time(s)');
frmsinyal.imgkotak.Canvas.TextOut(ax-15,ay-37,'30-');
frmsinyal.imgkotak.Canvas.TextOut(ax-15,ay-67,'60-');
frmsinyal.imgkotak.Canvas.TextOut(ax-21,ay-107,'100-');
end;
procedure satu(ax,ay,a,b,i:integer);
begin
frmsinyal.imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay-a);
frmsinyal.imgkotak.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
end;

procedure nol(ax,ay,a,b,i:integer);
begin
frmsinyal.imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.imgkotak.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;

procedure tegak(ax,ay,a,b,i:integer);
begin
frmsinyal.imgkotak.Canvas.Pen.Color:=clred;
frmsinyal.imgkotak.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.imgkotak.Canvas.LineTo(ax+(i-1)*b,ay-a);
end;
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

procedure reset;
var
x,y:integer;
begin
frmsinyal.imgsinus.Picture:=nil;
frmsinyal.imgsinus.Refresh ;
frmsinyal.imgkotak.Picture:=nil;
frmsinyal.imgkotak.Refresh ;
x:=strtoint(frmsinyal.edx.Text);
y:=strtoint(frmsinyal.edy.Text);
sumbu1(20,120,x,y);
sumbu2(20,120,x,y);
end;

procedure Tfrmsinyal.btsinClick(Sender: TObject);


var
sy,frek:real;
amp,sx,x,y:integer;
begin
reset;
if amp1.Checked then amp:=25;
if amp2.Checked then amp:=50;
if amp3.Checked then amp:=100;
if frek1.Checked then frek:=10;
if frek2.Checked then frek:=4;
if frek3.Checked then frek:=2;
x:=strtoint(frmsinyal.edx.Text);
y:=strtoint(frmsinyal.edy.Text);
sumbu1(600,120,x,y);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*amp;
frmsinyal.imgsinus.Canvas.Pixels[sx+20,120-round(sy)]:=clred;
end;
end;

procedure Tfrmsinyal.btkotClick(Sender: TObject);


var
lebar,tinggi,i,x,y:integer;
biner:string;
tnd:integer;
begin
reset;
if lp1.Checked then lebar:=10;
if lp2.Checked then lebar:=30;
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

if lp3.Checked then lebar:=50;


if tp1.Checked then tinggi:=30;
if tp2.Checked then tinggi:=60;
if tp3.Checked then tinggi:=100;
biner:=edbin.Text;
x:=strtoint(frmsinyal.edx.Text);
y:=strtoint(frmsinyal.edy.Text);
sumbu2(20,120,x,y);
tnd:=0;
for i:=1 to 16 do
if biner[i]='1' then
if tnd=0 then begin tegak(20,120,tinggi,lebar,i);
satu (20,120,tinggi,lebar,i);
tnd:=1; end
else satu(20,120,tinggi,lebar,i)
else if tnd=1 then begin tegak(20,120,tinggi,lebar,i);
nol (20,120,tinggi,lebar,i);
tnd:=0; end
else nol(20,120,tinggi,lebar,i);
end;

end.
NAMA : WAHYU PUTRA RAHMAT ABDIANTO PRKATIKUM 1 SINYAL ANALOG DAN DIGITAL
KELAS : TT 2A

V. Hasil dan Pembahasan


1. Program Untuk Menggambarkan Sinyak Analog

2. Program Untuk Menggambarkan Sinyal Analog dan Digital

Anda mungkin juga menyukai