Anda di halaman 1dari 6

FIRMAN ALFIANSYAH

0931130055
D3 2B T.Telekomunikasi

1. Program gelombang sinus dan gelombang kotak.

FLOWCHART

START

Deskripsi type perintah;

Sinus Kotak
Perintah sinus atau
kotak ?

Inputan nilai amplitudo Inputan nilai data biner


dan nilai frekuensi

Perintah bentuk sinus Perintah bentuk kotak


x2:=i*round(pnjg)-round(pnjg); dan
sy:=sin(sx/pi/frek)*amp; x3:=(i+1)*round(pnjg)-round(pnjg);

Perintah output nilai slope


memreport.ScrollBars Bentuk gelombang kotak
:=ssVertical;

Bentuk gelombang sinus


dan nilai tiap slope

Reset semua data

FIRMAN ALFIANSYAH/2B/0931130055
LISTING PROGRAM

FIRMAN ALFIANSYAH/2B/0931130055
unit kotak;
procedure sumbu2 (ax,ay,b,c:integer);
interface begin
frmsinyal.imgdig.Canvas.MoveTo(ax,ay);
uses frmsinyal.imgdig.Canvas.LineTo(ax+b,ay);
Windows, Messages, SysUtils, Variants, Classes, frmsinyal.imgdig.Canvas.MoveTo(ax,ay);
Graphics, Controls, Forms, frmsinyal.imgdig.Canvas.LineTo(ax,ay-c);
Dialogs, StdCtrls, ExtCtrls; frmsinyal.imgdig.Canvas.MoveTo(ax,ay);
frmsinyal.imgdig.Canvas.LineTo(ax,ay+c);
type end;
Tfrmsinyal = class(TForm)
imgtampil: TImage; procedure Tfrmsinyal.btprosesClick(Sender:
Panel1: TPanel; TObject);
Label1: TLabel; var
Label2: TLabel; sx,x,y,amp:integer;
edsumbux: TEdit; sy:real;
edsumbuy: TEdit; frek:double;
btproses: TButton; begin
btclear: TButton; x:=strtoint(edsumbux.Text);
Label3: TLabel; y:=strtoint(edsumbuy.Text);
Label4: TLabel; amp:=strtoint(edamp.Text);
Label5: TLabel;
edamp: TEdit; case rdfrek.ItemIndex of
rdfrek: TRadioGroup; 0: frek:=20;
memreport: TMemo; 1: frek:=10;
imgdig: TImage; 2: frek:=4;
Panel2: TPanel; 3: frek:=2;
xpos: TEdit; 4: frek:=1;
ypos: TEdit; 5: frek:=0.5;
Label6: TLabel; end;
Label7: TLabel;
Label8: TLabel; sumbu(x,y,400,150);
eddata: TEdit; for sx:=1 to 395 do
proses: TButton; begin
clear: TButton; sy:=sin(sx/pi/frek)*amp;
Label9: TLabel; imgtampil.Canvas.Pixels[sx+x,150-
procedure btprosesClick(Sender: TObject); round(sy)]:=clblue;
procedure memreportChange(Sender: TObject); memreport.Lines.Add('x['+inttostr(sx)+'] =
procedure btclearClick(Sender: TObject); '+formatfloat('#.###',(sy)));
procedure FormCreate(Sender: TObject); end;
procedure prosesClick(Sender: TObject); edamp.Enabled := false;
procedure clearClick(Sender: TObject); btproses.Enabled := false;
private rdfrek.Enabled :=false;
{ Private declarations } end;
public
{ Public declarations }
end; procedure Tfrmsinyal.memreportChange(Sender:
TObject);
var begin
frmsinyal: Tfrmsinyal; memreport.ScrollBars :=ssVertical;
end;
implementation

{$R *.dfm} procedure Tfrmsinyal.btclearClick(Sender:


procedure sumbu (ax,ay,b,c:integer); TObject);
begin var
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay); sx,x,y,amp:integer;
frmsinyal.imgtampil.Canvas.LineTo(ax+b,ay); sy:real;
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay); frek:double;
frmsinyal.imgtampil.Canvas.LineTo(ax,ay-c); begin
frmsinyal.imgtampil.Canvas.MoveTo(ax,ay); x:=strtoint(edsumbux.Text);
frmsinyal.imgtampil.Canvas.LineTo(ax,ay+c); y:=strtoint(edsumbuy.Text);
end; amp:=strtoint(edamp.Text);

FIRMAN ALFIANSYAH/2B/0931130055
case rdfrek.ItemIndex of for i:=0 to n do
0: frek:=20; begin
1: frek:=10; if data[i] = '1' then
2: frek:=4; begin
3: frek:=2; x2:=i*round(pnjg)-round(pnjg);
4: frek:=1; imgdig.Canvas.MoveTo(x2,y1-100);
5: frek:=0.5; x3:=(i+1)*round(pnjg)-round(pnjg);
end; imgdig.Canvas.LineTo(x3,y1-100);
end
btproses.Enabled:=true; else
edamp.Enabled:=true; begin
rdfrek.Enabled :=true; x2:=i*round(pnjg)-round(pnjg);
rdfrek.ItemIndex :=0; imgdig.Canvas.MoveTo(x2,y1-1);
memreport.Lines.Clear; x3:=(i+1)*round(pnjg)-round(pnjg);
memreport.ScrollBars := ssNone; imgdig.Canvas.LineTo(x3,y1-1);
//hapus kurva end;
for sx:=1 to 395 do
begin if data[i]<>data[i+1] then
sy:=sin(sx/pi/frek)*amp; begin
x3:=(i+1)*round(pnjg)-round(pnjg);
imgtampil.Canvas.Pixels[sx+x,150- imgdig.Canvas.MoveTo(x3,y1-100);
round(sy)]:=clwhite; imgdig.Canvas.LineTo(x3,y1-1);
end; end;
//hapus sumbu x
imgtampil.Canvas.MoveTo(x,0); end;
for sx:=1 to 800 do
imgtampil.Canvas.Pixels[x,sx]:=clwhite;
end;
//hapus sumbu y
imgtampil.Canvas.MoveTo(0,y); procedure Tfrmsinyal.clearClick(Sender: TObject);
for sx:=1 to 800 do var i,j,x,y:integer;
imgtampil.Canvas.Pixels[sx,y]:=clwhite; begin
end; x:=strtoint(xpos.Text);
y:=strtoint(ypos.Text);
procedure Tfrmsinyal.FormCreate(Sender: eddata.Enabled:=true;
TObject); proses.Enabled:=true;
begin //hapus sumbu x
rdfrek.ItemIndex :=0; imgdig.Canvas.MoveTo(x,0);
end; for i:=1 to 800 do
imgdig.Canvas.Pixels[x,i]:=clwhite;
procedure Tfrmsinyal.prosesClick(Sender:
TObject); //hapus sumbu y
var imgdig.Canvas.MoveTo(0,y);
i,j,n,x1,y1,x2,x3,y2:integer; for i:=1 to 800 do
data:string; imgdig.Canvas.Pixels[i,y]:=clwhite;
sy:real;
pnjg:double; //hapus sinyal
begin for i:=1 to 100 do
x1:=strtoint(xpos.Text); for j:=1 to 500 do
y1:=strtoint(ypos.Text); begin
data:=eddata.Text; imgdig.Canvas.MoveTo(j,150-i);
n:=length(eddata.Text); imgdig.Canvas.Pixels[j,150-i]:=clwhite;
eddata.Enabled:=false; end;
proses.Enabled:=false; end;

pnjg:=imgdig.Width/round(n);
sumbu2(x1,y1,410,150); end.

FIRMAN ALFIANSYAH/2B/0931130055
HASIL PROGRAM

FIRMAN ALFIANSYAH/2B/0931130055
PENJELASAN JALANNYA PROGRAM
Proses dari program ini adalah sebagai berikut :
- Pertama pemberian procedure sumbu untuk gelombang sinus maupun
gelombang kotak.
 Program Gelombang Sinus
- Pemberian procedure proses
Berisikan nilai pilihan nilai frekuensi kemudian perintah proses
pembentukan gelombang sinus sy:=sin(sx/pi/frek)*amp; Dengan nilai
amplitudo inputan manual.
- Pemberian procedure memreport (Memo)
Menampilkan nilai amplitudo pada tiap slope dari gelombang sinus
dengan perintah proses memreport.ScrollBars :=ssVertical;
- Pemberian procedure clear
Mereset semua nilai yang telah diproses sebelumnya.
 Program Gelombang Kotak
- Pemberian procedure proses
Berisikan perintah pembentukan nilai-nilai dari suatu gelombang kotak
dimana terdiri dari perintah sebagai berikut x2:=i*round(pnjg)-
round(pnjg); untuk nilai panjang pada sumbu x pertama. Perintah
x3:=(i+1)*round(pnjg)-round(pnjg); untuk nilai panjang pada sumbu x
perulangan selanjutnya.
- Pemberian procedure clear
Mereset semua nilai yang telah diproses sebelumnya.

FIRMAN ALFIANSYAH/2B/0931130055

Anda mungkin juga menyukai