arum jtd 3b
TRANSCRIPT
LAPORAN PRAKTIKUM
Mata Kuliah : Praktikum Komunikasi Data
Dosen Pembimbing : M. Sarosa, dipl.Ing, Dr
Oleh :
Arum Shadewi Ittaqa 0941160008 / 3B
POLITEKNIK NEGERI MALANG
JURUSAN TEKNIK ELEKTRO
PROGRAM STUDI D4 JARINGAN TELEKOMUNIKASI DIGITAL
MALANG
2011
Listing Program
unit arum;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tfrmsinyal = class(TForm)
imganalog: TImage;
imgdigital: TImage;
mereport: TMemo;
btanalog: TButton;
btdigital: TButton;
edsumbux: TEdit;
edsumbuy: TEdit;
Label1: TLabel;
Label2: TLabel;
btreset: TButton;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
RB1V: TRadioButton;
RB3V: TRadioButton;
RB5V: TRadioButton;
Label3: TLabel;
Label4: TLabel;
RB1Hz: TRadioButton;
RB5Hz: TRadioButton;
RB10Hz: TRadioButton;
Label5: TLabel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
Panel8: TPanel;
inputbiner: TEdit;
RB10V: TRadioButton;
RB50V: TRadioButton;
RB100V: TRadioButton;
RB10: TRadioButton;
RB20: TRadioButton;
RB30: TRadioButton;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
keluar: TButton;
Label10: TLabel;
Label11: TLabel;
procedure btanalogClick(Sender: TObject);
procedure btdigitalClick(Sender: TObject);
procedure btresetClick(Sender: TObject);
procedure keluarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmsinyal: Tfrmsinyal;
implementation
{$R *.dfm}
procedure sumbu1(ax,ay,b,c:integer);
begin
frmsinyal.imganalog.Canvas.MoveTo(ax,ay);
frmsinyal.imganalog.Canvas.LineTo(ax+b,ay);
frmsinyal.imganalog.Canvas.MoveTo(ax,ay);
frmsinyal.imganalog.Canvas.LineTo(ax,ay-c);
frmsinyal.imganalog.Canvas.MoveTo(ax,ay);
frmsinyal.imganalog.Canvas.LineTo(ax,ay+c);
frmsinyal.imganalog.Canvas.TextOut(ax,ay-c,'Amplitude (A)');
frmsinyal.imganalog.Canvas.TextOut(ax+b-15,ay-15,'Time(t)');
frmsinyal.imganalog.Canvas.TextOut(ax-10,ay-55,'3-');
frmsinyal.imganalog.Canvas.TextOut(ax-10,ay-107,'5-');
end;
procedure sumbu2(ax,ay,b,c:integer);
begin
frmsinyal.imgdigital.Canvas.MoveTo(ax,ay);
frmsinyal.imgdigital.Canvas.LineTo(ax+b,ay);
frmsinyal.imgdigital.Canvas.MoveTo(ax,ay);
frmsinyal.imgdigital.Canvas.LineTo(ax,ay-c);
frmsinyal.imgdigital.Canvas.MoveTo(ax,ay);
frmsinyal.imgdigital.Canvas.LineTo(ax,ay+c);
frmsinyal.imgdigital.Canvas.TextOut(ax,ay-c,'Amplitude (v)');
frmsinyal.imgdigital.Canvas.TextOut(ax+b-5,ay+5,'Time(s)');
frmsinyal.imgdigital.Canvas.TextOut(ax-15,ay-37,'10-');
frmsinyal.imgdigital.Canvas.TextOut(ax-15,ay-67,'50-');
frmsinyal.imgdigital.Canvas.TextOut(ax-21,ay-107,'100-');
end;
procedure digital(ax,ay,a,b,i:integer);
begin
frmsinyal.imgdigital.Canvas.Pen.Color:=clgreen;
frmsinyal.imgdigital.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.imgdigital.Canvas.LineTo(ax+(i-1)*b,ay-a);
frmsinyal.imgdigital.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
frmsinyal.imgdigital.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure garis(ax,ay,a,b,i:integer);
begin
frmsinyal.imgdigital.Canvas.Pen.Color:=clgreen;
frmsinyal.imgdigital.Canvas.MoveTo(ax+(i-1)*b,ay);
frmsinyal.imgdigital.Canvas.LineTo(ax+(i-1)*b,ay);
end;
procedure Tfrmsinyal.btresetClick(Sender: TObject);
var
x,y:integer;
begin
frmsinyal.imganalog.Picture:=nil;
frmsinyal.imganalog.Refresh ;
frmsinyal.imgdigital.Picture:=nil;
frmsinyal.imgdigital.Refresh ;
x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
sumbu1(20,120,x,y);
sumbu2(20,120,x,y);
end;
procedure Tfrmsinyal.btdigitalClick(Sender: TObject);
var
i,x,y,tinggi,lebar:integer;
biner:string;
begin
if RB10V.Checked then lebar:=30;
if RB50V.Checked then lebar:=60;
if RB100V.Checked then lebar:=100;
if RB10.Checked then tinggi:=10;
if RB20.Checked then tinggi:=30;
if RB30.Checked then tinggi:=50;
biner:=inputbiner.Text;
x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
sumbu2(20,120,x,y);
for i:=1 to 16 do
if biner[i]='1' then
digital(20,120,lebar,tinggi,i);
if biner[i]='0' then
garis(20,120,lebar,tinggi,i);
end;
procedure Tfrmsinyal.btanalogClick(Sender: TObject);
var
amp,sx,x,y:integer;
sy,frek:real;
begin
if RB1V.Checked then amp:=15;
if RB3V.Checked then amp:=50;
if RB5V.Checked then amp:=100;
if RB1Hz.Checked then frek:=10;
if RB5Hz.Checked then frek:=4;
if RB10Hz.Checked then frek:=2;
x:=strtoint(frmsinyal.edsumbux.Text);
y:=strtoint(frmsinyal.edsumbuy.Text);
sumbu1(20,120,x,y);
for sx:=1 to 395 do
begin
sy:=sin(sx/pi/frek)*amp;
frmsinyal.mereport.Lines.Add('x='+inttostr(sx)+''+formatfloat('#.###',(sy)));
frmsinyal.imganalog.Canvas.Pixels[sx+20,120-round(sy)]:=clgreen;
end;
end;
procedure Tfrmsinyal.keluarClick(Sender: TObject);
begin
close;
end;
end.
Tampilan pada program
FLOWCHART
Penjelasan Program
Proses dari program ini adalah sebagai berikut :
Program Gelombang Sinus - Pertama pemberian procedure sumbu untuk gelombang sinus maupun gelombang kotak.- 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 clearMereset 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.
KesimpulanDari hasil praktikum dapat diambil kesimpulan sebagai berikut :
1. Untuk menampilkan gelombang sinus dengan cara menampilkan titik sesui persamaan sy:=sin(sx/pi/frek)*amp dan looping sx:=1 to 395.
2. Untuk menampilkan gelombang kotak dengan cara memanggil gambar kotak pada biner ke-i=’1’ sedangkan memangil garis pada biner ke-i=’0’.