lap or an
TRANSCRIPT
LAPORAN PRAKTIKUM
( KOMUNIKASI DATA)
PROGRAM STUDI TEKNIK TELEKOMUNIKASI D3
Dosen Pengajar : Dr. M. Sarosa, Dipl. Ing. MT.
Disusun oleh :Abd. Hadi Muzaki
T. Telekomunikasi / 2D
KEMENTRIAN PENDIDIKAN DAN KEBUDAYAANPOLITEKNIK NEGERI MALANG
Jl. Soekarno Hatta 9 PO. BOX 04 Malang 65141 Telp. (0341) 404424-25 (Hunting) Fax. (0341)404420
http://www.poltek-malang.ac.id
Laporan Praktikum Komunikasi Data
I. Tujuan
a. Menampilkan simulasi sinyal RZ, NRZ-L, Manch, HDB3
b. Memahami Perbedaan Sinyal RZ, NRZ-L, Manch, HDB3
c. Memahami Pemrograman Delphi.
d. Membuat program untuk mensimulasi Karakteristik Sinyal Analog dan Sinyal Digital.
II. Alat & Bahan
a. Program delphi versi 6 ke atas
b. Satu unit Komputer
III. Langkah Kerja
a. Membuat form sesuai ketentuan
b. Mengedit caption, name, label dan lain-lain
c. Membuat program
d. Memperbaiki jika terjadi eror pada program
e. Menjalankan program
Laporan Praktikum Komunikasi Data
IV. Flowchart
Program Utama
START
inisialisasi library, form dan objek
pendukung
Baca input data dari komponen edit
Apakah data kosong?
Hapus kanvas
Tampilkan dialog box perintah
untuk input dataHapus kanvas
Gambar sumbu
C
A
B
Laporan Praktikum Komunikasi Data
Gambar gelombang kotak
Gambar gelombang RZ
Gambar gelombang NRZ-L
Gambar gelombang manchester
Gambar gelombang HDB3
Apakah ada perubahan
data?
C
A
B
YA
TDK
Laporan Praktikum Komunikasi Data
Flowchart Gelombang Kotak
START
i=0
i=jumlah data?
data[i] = ‘1’ ?
gambar sinyal ‘1’ dengan amplitudo = koordinat y-
100
gambar sinyal ‘0’ dengan amplitudo = koordinat y
i:=i+i
YA
TDK
YA
TDK
gambar garis vertikal yang menghubungkan 2 sinyal
data yang berbeda
apa data ke i tidak sama dengan data
setelahnya?
YA
TDK
END
Laporan Praktikum Komunikasi Data
Flowchart Gelombang RZ
i=0
gambar garis vertikal naik dari (x2,y1) ke (x2,y1-100)
gambar garis vertikal turun dari (x2,y1) ke (x2,y1+100)
i:=i+i
TDK
tarik garis horizontal sejajar sumbu x menuju end point pad akoordinat
((x2+2*pnjg),y1-1)
tarik garis horizontal ke koordinat ((x2+pnjg), y1-100)
tarik garis vertikal kembali menuju sumbu x dgn koordinat
((x2+pnjg),y1-1)
tarik garis horizontal ke koordinat ((x2+pnjg), y1+100)
tarik garis vertikal kembali menuju sumbu x dgn koordinat
((x2+pnjg),y1-1)
tarik garis horizontal sejajar sumbu x menuju end point pad akoordinat
((x2+2*pnjg),y1-1)
i=jumlah data?
data[i] = ‘1’ ? YA
TDK
YA
START
END
Laporan Praktikum Komunikasi Data
Flowchart Gelombang NRZ-L
i:=0
j=jumlah data?
data[j] = ‘0’ ?
nrzl.Canvas.MoveTo(x1,y1-25); nrzl.Canvas.MoveTo(x1,y1+25);
i:=i+i
YA
TDK
YA
TDK
nrzl.Canvas.MoveTo(x2,y1-25);
nrzl.Canvas.LineTo(x2,y1+25);
nrzl.Canvas.LineTo(x2,y1-25);
x1:=i*round(pnjg)-round(pnjg); x2:=(i+1)*round(pnjg)-round(pnjg);
nrzl.Canvas.LineTo(x2,y1+25);
data[j] = ‘0’? ‘1’ ?YA
TDK
nrzl.Canvas.MoveTo(x2,y1-25);
nrzl.Canvas.LineTo(x2,y1+25);
START
END
Laporan Praktikum Komunikasi Data
Flowchart gelombang Manchester
i=0
tempatkan pixel pada posisi (x2,y1-25)
tempatkan pixel pada posisi (x2,y1+25)
i:=i+i
TDK
tarik garis horizontal ke ((x2+2*pnjg),y1+25)
tarik garis horizontal ke titik(x2+pnjg),y1-25)
tarik garis vertikal turun ke(x2+pnjg),y1+25)
tarik garis horizontal ke titik(x2+pnjg),y1+25)
tarik garis vertikal naik ke(x2+pnjg),y1-25)
tarik garis horizontal ke ((x2+2*pnjg),y1-25)
i=jumlah data?
data[i] = ‘0’ ?
data[i]=data[i+1] ?
tempatkan pixel pada posisi((x2+2*pnjg),y1+25)
tarik garis vertikal naik ke((x2+2*pnjg),y1-25)
YA
START
END
END
Laporan Praktikum Komunikasi Data
Flowchart Program HDB3
START
jumnol:=0;jumsat:=0;p:=1;flag:=0;j:=1
j=jumlah data?
hdb3.Canvas.Pen.style:=pssolid;hdb3.Canvas.Pen.Color:=clred;hdb3.Canvas.MoveTo(0,y1-1);
hdb3.Canvas.LineTo(1000,y1-1);x1:=round(j*pnjg-pnjg);
x2:=round(x1+pnjg);
data[j] = ‘1’ ?
flag=0 ?
p:=p+1
p:=p
jumnol:=0; jumsat:=jumsat+1; cons:=round(Power(-1,p)*25); with hdb3.Canvas do MoveTo(x1,round(y1-1)); LineTo(x1,round(y1-cons)); LineTo(x2,round(y1-cons)); LineTo(x2,round(y1-1));
p:=p; jumnol:=jumnol+1;
flag:=1; hdb3.Canvas.MoveTo(x1,y1-1); hdb3.Canvas.LineTo(x1,y1-cons); hdb3.Canvas.LineTo(x2,y1-cons); hdb3.Canvas.LineTo(x2,y1-1);
jumnol mod 4 =0?
flag =0
A
YA
TDK
YA
TDK
YA
TDK
B
Laporan Praktikum Komunikasi Data
V. Listing Program
unit alldigital;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Math;
type Tfrmdigital = class(TForm) kotak: TImage; Label1: TLabel; rz: TImage; nrzl: TImage; manchester: TImage;
A
p:=p+1; cons:=round(Power(-1,p)*25); hdb3.Canvas.MoveTo(x2,y1-1); hdb3.Canvas.LineTo(x2,y1-cons); hdb3.Canvas.LineTo(round(x2+pnjg),y1-cons); hdb3.Canvas.LineTo(round(x2+pnjg),y1-1);
flag=0 ?
End
YA
TDK
B
Laporan Praktikum Komunikasi Data
hdb3: TImage; Label2: TLabel; Label4: TLabel; Label5: TLabel; Panel1: TPanel; eddata: TEdit; Label8: TLabel; Label6: TLabel; bitrate: TEdit; label3: TLabel; procedure eddataChange(Sender: TObject);
procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } end;
var frmdigital: Tfrmdigital;
implementation
{$R *.dfm}
procedure sumbu(image:Timage;ax,ay,b,c:integer);beginimage.Canvas.Pen.Color:=clblack;image.Canvas.MoveTo(ax,ay);image.Canvas.LineTo(ax+b,ay);image.Canvas.MoveTo(ax,ay);image.Canvas.LineTo(ax,ay-c);image.Canvas.MoveTo(ax,ay);
Laporan Praktikum Komunikasi Data
image.Canvas.LineTo(ax,ay+c);end;
procedure grid(image:Timage);var i,n:integer;pnjg:double;begin n:=length(frmdigital.eddata.Text); pnjg:=frmdigital.kotak.Width/round(n); for i:=1 to n do begin image.Canvas.Pen.Style:=psdot; image.Canvas.MoveTo(round(pnjg*i),0); image.Canvas.LineTo(round(pnjg*i),100); end;end;
procedure Tfrmdigital.eddataChange(Sender: TObject);var cons,i,n,p,x1,x2,y1,y2,nol,z,awal:integer; j,jumnol,jumsat,flag:integer; data,biner:string; pnjg,br:double; a,pol:boolean;
begin x1:=0; y1:=50;
if length(eddata.Text)=0 then begin
Laporan Praktikum Komunikasi Data
Showmessage('Masukkan input data biner'); eddata.SetFocus; kotak.Picture:=nil; rz.Picture:=nil; nrzl.Picture:=nil; manchester.Picture:=nil; hdb3.Picture:=nil; end else
begin data:=eddata.Text; n:=length(eddata.Text); pnjg:=kotak.Width/round(n); br:=1/n; frmdigital.bitrate.Text:=floattostr(br);
kotak.Picture:=nil;rz.Picture:=nil;nrzl.Picture:=nil;manchester.Picture:=nil;hdb3.Picture:=nil;
sumbu(kotak,x1,y1,1000,50);sumbu(rz,x1,y1,1000,50);sumbu(nrzl,x1,y1,1000,50);sumbu(manchester,x1,y1,1000,50);sumbu(hdb3,x1,y1,1000,50);
kotak.Canvas.Pen.Color:=clblue;rz.Canvas.Pen.Color:=clfuchsia;
Laporan Praktikum Komunikasi Data
nrzl.Canvas.Pen.Color:=clpurple;manchester.Canvas.Pen.Color:=clred;{startpen(kotak);startpen(rz);startpen(nrzl);startpen(manchester);startpen(hdb3);}
//=======================Gambar gelombang kotak=======================
for i:=0 to n dobegin if data[i] = '1' then begin x1:=i*round(pnjg)-round(pnjg); x2:=(i+1)*round(pnjg)-round(pnjg); kotak.Canvas.MoveTo(x1,y1-25); kotak.Canvas.LineTo(x2,y1-25); end else begin x1:=i*round(pnjg)-round(pnjg); x2:=(i+1)*round(pnjg)-round(pnjg); kotak.Canvas.MoveTo(x1,y1-1); kotak.Canvas.LineTo(x2,y1-1);end; if data[i]<>data[i+1] then begin x2:=(i+1)*round(pnjg)-round(pnjg); kotak.Canvas.MoveTo(x2,y1-25); kotak.Canvas.LineTo(x2,y1-1); end
Laporan Praktikum Komunikasi Data
end;//====================================================================//=======================Gambar gelombang NRZ-L=======================for i:=0 to n dobegin if data[i] = '0' then begin x1:=i*round(pnjg)-round(pnjg); nrzl.Canvas.MoveTo(x1,y1-25); x2:=(i+1)*round(pnjg)-round(pnjg); nrzl.Canvas.LineTo(x2,y1-25); end else begin x1:=i*round(pnjg)-round(pnjg); nrzl.Canvas.MoveTo(x1,y1+25); x2:=(i+1)*round(pnjg)-round(pnjg); nrzl.Canvas.LineTo(x2,y1+25);end;
if data[i]<>data[i+1] then begin x2:=(i+1)*round(pnjg)-round(pnjg); nrzl.Canvas.MoveTo(x2,y1-25); nrzl.Canvas.LineTo(x2,y1+25); endend;
//====================================================================
Laporan Praktikum Komunikasi Data
//=======================Gambar gelombang Manchester==================pnjg:=round(manchester.Width/round(2*n));for i:=0 to n dobegin if data[i] = '0' then begin x2:=round((2*i*pnjg)-(2*pnjg));
manchester.Canvas.MoveTo(x2,y1-25); manchester.Canvas.LineTo(round(x2+pnjg),y1-25); manchester.Canvas.LineTo(round(x2+pnjg),y1+25); manchester.Canvas.LineTo(round(x2+2*pnjg),y1+25);
end //endif else begin x2:=round((2*i*pnjg)-(2*pnjg));
manchester.Canvas.MoveTo(x2,y1+25); manchester.Canvas.LineTo(round(x2+pnjg),y1+25); manchester.Canvas.LineTo(round(x2+pnjg),y1-25); manchester.Canvas.LineTo(round(x2+2*pnjg),y1-25);end; //endif
if data[i]=data[i+1] then begin manchester.Canvas.MoveTo(round(x2+2*pnjg),y1+25); manchester.Canvas.LineTo(round(x2+2*pnjg),y1-25); end;
end; //end loop
Laporan Praktikum Komunikasi Data
//====================================================================
//=======================Gambar gelombang RZ==========================pnjg:=round(rz.Width/round(2*n));for i:=0 to n dobegin if data[i] = '1' then begin x2:=round((2*i*pnjg)-(2*pnjg)); rz.Canvas.MoveTo(x2,y1-1); rz.Canvas.LineTo(x2,y1-25); rz.Canvas.LineTo(round(x2+pnjg),y1-25); rz.Canvas.LineTo(round(x2+pnjg),y1-1); rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);
end else begin x2:=round((2*i*pnjg)-(2*pnjg)); rz.Canvas.MoveTo(x2,y1-1); rz.Canvas.LineTo(x2,y1+25); rz.Canvas.LineTo(round(x2+pnjg),y1+25); rz.Canvas.LineTo(round(x2+pnjg),y1-1); rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);end;
end;
//====================================================================
Laporan Praktikum Komunikasi Data
//=======================Gambar gelombang HDB3========================
data:=eddata.Text;n:=length(eddata.Text);pnjg:=hdb3.Width/round(n);
jumnol:=0;jumsat:=0;p:=1;cons:=0;
flag:=0;
for j:=1 to n do begin hdb3.Canvas.Pen.style:=pssolid; hdb3.Canvas.Pen.Color:=clteal; hdb3.Canvas.MoveTo(0,y1-1); hdb3.Canvas.LineTo(1000,y1-1); x1:=round(j*pnjg-pnjg); x2:=round(x1+pnjg);//============================================================================== if data[j] = '1' then begin
if flag=0 then p:=p+1else p:=p; jumnol:=0; jumsat:=jumsat+1; cons:=round(Power(-1,p)*25);
Laporan Praktikum Komunikasi Data
with hdb3.Canvas do begin MoveTo(x1,round(y1-1)); LineTo(x1,round(y1-cons)); LineTo(x2,round(y1-cons)); LineTo(x2,round(y1-1)); end end
else if data[j] = '0' then begin p:=p; jumnol:=jumnol+1; if(jumnol mod 4 =0) then begin flag:=1;
hdb3.Canvas.MoveTo(x1,y1-1); hdb3.Canvas.LineTo(x1,y1-cons); hdb3.Canvas.LineTo(x2,y1-cons); hdb3.Canvas.LineTo(x2,y1-1); end //endif else flag := 0;
if flag=1 then begin p:=p+1; cons:=round(Power(-1,p)*25); hdb3.Canvas.MoveTo(x2,y1-1); hdb3.Canvas.LineTo(x2,y1-cons); hdb3.Canvas.LineTo(round(x2+pnjg),y1-cons); hdb3.Canvas.LineTo(round(x2+pnjg),y1-1); end //endif
Laporan Praktikum Komunikasi Data
//else nol.Font.Color:=clblack;
end;
end;
end;
end;
//====================================================================
procedure Tfrmdigital.FormShow(Sender: TObject);beginkotak.Picture:=nil;rz.Picture:=nil;nrzl.Picture:=nil;manchester.Picture:=nil;hdb3.Picture:=nil;eddata.Text:='1010';end;
end.
Laporan Praktikum Komunikasi Data
VI. .Simulasi (RZ, NRZ-L, Manch, HDB3)
Laporan Praktikum Komunikasi Data