KOMUNIKASI DATA
PENGKODEAN DATA DIGITAL
( RZ, NRZ-L, D-MANCHESTER, AMI )
Oleh :
Ridho Wicaksono ( 18 / TT 2D )
1331130035
PENDAHULUAN
1.1 Tujuan
1.1.1 Tujuan Umum
(1.)Memahami macam-macam pengkodean data digital ( RZ , NRZ-L , DMANCHESTER , AMI )
(2.)Memahami teknik pengkodean data digital
(3.)Mampu melakukan simulasi pengodean data digital
1.1.2 Tujuan Khusus
(1.)Membuat program untuk mensimulasikan karakteristik pengkodean data digital ( RZ ,
NRZ-L , D-MANCHESTER , AMI )
(2.)Membuat flowchart teknik pengkodean data digital.
memiliki ciri-ciri tersendiri. Contoh data digital adalah teks, deretan bilangan, dan
karakter-karakter yang lain. Data digital dalam bentuk karakter yang dapat dipahami
manusia tidak dapat langsung ditransmisikan dalam sistem komunikasi, data harus
terlebih dahulu diubah ke dalam bentuk biner. Jadi, data digital ditransmisikan dalam
bentuk deretan biner. Sedangkan sinyal digital merupakan sinyal untuk menampilkan
data digital. Deretan pulsa yang berbeda dan tidak terjadi secara terus-menerus
merupakan contoh sinyal digital.
Pengkodean data digital ditujukan untuk membangun sinyal digital, yang
meliputi: unipolar, polar dan bipolar. Unipolar merupakan pengkodean paling
sederhana dimana data digital yang telah berbentuk biner di diubah ke bentuk pulsa,
biner 1 diwujudkan dalam suatu tegangan positif dan biner 0 sebagai tanpa tegangan
atau nol volt. Gambar 2.1 menampilkan contoh sinyal digital sederhana dari suatu data
101100110B.
Keuntungan differensial encoding : lebih kebal noise, tidak dipengaruhi oleh level
tegangan. Kelemahan dari NRZ-L maupun NRZI : keterbatasan dalam komponen dc
dan kemampuan synchronisasi yang buruk
Gambar 2.2 menampilkan perbedaan kedua tipe pengkodean tersebut.
1. Synchronisasi : karena adanya transisi selama tiap bit time, receiver dapat mensynchron-kan pada transis tersebut atau dikenal sebagai self clocking codes.
2. Tidak ada komponen dc.
3. Deteksi terhadap error : ketiadaan dari transisi yang diharapkan, dapat dipakai
untuk mendeteksi error.
Kekurangannya :
1. memakai bandwidth yang lebih lebar dari pada multilevel binary.
Gambar 2.4 menampilkan perbedaan kedua tipe pengkodean tersebut.
Menggambar Sinyal RZ
0,0
Gambar 9. Penggambaran
sinyal RZ pada umumnya
c
Untuk menggambarkan sinyal RZ, koordinat 0,0 terletak pada perpotongan
1
antara sumbu x dan sumbu y. Langkah pertama untuk menggambar adalah melalui
koordinat 0,0, sinyal RZ memiliki 2 kondisi sinyal yang ditandai dengan adanya bit 1
dan bit 0. Dimana untuk bit 1 di wakili oleh gambar sebagai berikut :
a1
b1
Pada gambar di atas dapat dilihat bahwa kondisi bit 1 diwakili oleh 4 garis
dimana terdapat 2 garis yang mempunyai
b1
a1
a
b
menggambarkan sinyal
y 0,0
t
a
b2
b1
a2
: 1 Buah
: disiapkan
BAB II
PEMBAHASAN
Gambar
15. Tata
letak dari
setiap
komponen
RZ
(1) Merangkai setiap komponen dipanel borland delphi sesuai dengan konsep tata
letak komponen.
Property
Caption
Setting
Encoding By Ridho Wicaksono
Label2
Name
Caption
Caption
form1
Teknik Telekomunikasi 2013
Praktikum Komunikasi Data Semester 4
Label4
Label3
Label5
Label6
Label7
Label8
Image1
Image2
Image3
Image4
Edit1
Caption
Caption
Caption
Caption
Caption
Caption
Name
Name
Name
Name
Text
Form1
Label1
Image2
Image3
Image4
101010110
Button 1
Button 2
Button 3
Button 4
Button 5
Button 6
Button 7
Button 8
Button 9
Button 10
Panel 1
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
Caption
Name
edbiner
0
btnnol
1
btnsatu
Del
btndel
Clear
btnclear
exit
btnexit
RZ
btnrz
NRZL
btnnrzl
D-MANC
btnman
AMI
btnami
ALL
btnall
Panel1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
btnnol: TButton;
btnsatu: TButton;
edbiner: TEdit;
btndel: TButton;
btnclear: TButton;
btnexit: TButton;
btnrz: TButton;
btnnrzl: TButton;
btnman: TButton;
btnami: TButton;
btnall: TButton;
Label1: TLabel;
Label2: TLabel;
Panel1: TPanel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
procedure btnnolClick(Sender: TObject);
procedure btnsatuClick(Sender: TObject);
procedure btnexitClick(Sender: TObject);
procedure btndelClick(Sender: TObject);
procedure btnclearClick(Sender: TObject);
procedure btnrzClick(Sender: TObject);
procedure btnnrzlClick(Sender: TObject);
procedure btnmanClick(Sender: TObject);
procedure btnamiClick(Sender: TObject);
procedure btnallClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x,y,ax,ay,a,b,c,n,i,k:integer;
edbiner:string;
implementation
{$R *.dfm}
// Prosedur Sinyal RZ //
procedure rz_1(ax,ay,a,b,n:integer);
begin
form1.image1.Canvas.Pen.Color:=clred;
form1.image1.Canvas.Pen.Width:=2;
form1.image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);
form1.image1.Canvas.LineTo(ax+(n-1)*(b+b),ay-a);
form1.image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay-a);
form1.image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);
form1.image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);
end;
procedure rz_2(ax,ay,a,b,n:integer);
begin
form1.image1.Canvas.Pen.Color:=clred;
form1.image1.Canvas.Pen.Width:=2;
form1.image1.Canvas.MoveTo(ax+(n-1)*(b+b),ay);
form1.image1.Canvas.LineTo(ax+(n-1)*(b+b),ay+a);
form1.image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay+a);
form1.image1.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);
form1.image1.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);
end;
// Prosedur Sinyal NRZL //
procedure NRZL_1(ax,ay,a,b,i:integer);
begin
form1.image2.Canvas.Pen.Color:=clred;
form1.image2.Canvas.Pen.Width:=2;
form1.image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);
form1.image2.Canvas.LineTo(ax+b+(i-1)*b,ay+a);
end;
procedure NRZL_0(ax,ay,a,b,i:integer);
begin
form1.image2.Canvas.Pen.Color:=clred;
form1.image2.Canvas.Pen.Width:=2;
form1.image2.Canvas.MoveTo(ax+(i-1)*b,ay-a);
form1.image2.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
end;
procedure NRZL_tegak(ax,ay,a,b,i:integer);
begin
form1.image2.Canvas.Pen.Color:=clred;
form1.image2.Canvas.Pen.Width:=2;
form1.image2.Canvas.MoveTo(ax+(i-1)*b,ay+a);
form1.image2.Canvas.LineTo(ax+(i-1)*b,ay-a);
end;
// Prosedur Sinyal D-Manchester //
procedure dmncstr_1(ax,ay,a,b,i:integer);
begin
form1.image3.Canvas.Pen.Color:=clred;
form1.image3.Canvas.Pen.Width:=2;
form1.image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay+a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+2*b,aya);
end;
procedure dmncstr_0(ax,ay,a,b,i:integer);
begin
form1.image3.Canvas.Pen.Color:=clred;
form1.image3.Canvas.Pen.Width:=2;
form1.image3.Canvas.MoveTo(ax+(i-1)*b+((i-1)*b),ay-a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay-a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))+b,ay+a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b))
+2*b,ay+a);
end;
procedure dtegak(ax,ay,a,b,i:integer);
begin
form1.image3.Canvas.Pen.Color:=clred;
form1.image3.Canvas.Pen.Width:=2;
form1.image3.Canvas.MoveTo((ax+(i-1)*b+((i-1)*b)),ay-a);
form1.image3.Canvas.LineTo((ax+(i-1)*b+((i-1)*b)),ay+a);
end;
// Prosedur Sinyal AMI //
procedure ami_1(ax,ay,a,b,i:integer);
begin
form1.image4.Canvas.Pen.Color:=clred;
form1.image4.Canvas.Pen.Width:=2;
form1.image4.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image4.Canvas.LineTo(ax+(i-1)*b,ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure ami_2(ax,ay,a,b,i:integer);
begin
form1.image4.Canvas.Pen.Color:=clred;
form1.image4.Canvas.Pen.Width:=2;
form1.image4.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image4.Canvas.LineTo(ax+(i-1)*b,ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*b,ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure ami_tegak(ax,ay,a,b,i:integer);
begin
form1.image4.Canvas.Pen.Color:=clred;
form1.image4.Canvas.Pen.Width:=2;
form1.image4.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image4.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
//PROCEDURE
UTAMA-------------------------------------------------------------procedure sumbu;
var
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
//REFRESH PICTURE & Sumbu RZ
form1.image1.Picture:=nil;
form1.image1.Refresh;
form1.image1.Canvas.Pen.Color:=clBlack;
form1.image1.Canvas.Pen.Style:=pssolid;
form1.image1.Canvas.MoveTo(10,200);
form1.image1.Canvas.LineTo(10 ,200-145);
form1.image1.Canvas.TextOut(10,200-155,'Amplitudo');
form1.image1.Canvas.MoveTo(10,140);
form1.image1.Canvas.LineTo(10+370,140);
form1.image1.Canvas.TextOut(10+370,140+5,'Time');
form1.image1.Canvas.Pen.Color:=clBlue;
form1.image1.Canvas.Pen.Style:=psDot;
form1.Image1.Canvas.TextOut(200-200,200-100,'5V+');
form1.image1.Canvas.TextOut(200-200,200-70,'0V');
form1.Image1.Canvas.TextOut(200-200,200-40,'5V-');
//REFRESH PICTURE & Sumbu NRZL
form1.image2.Picture:=nil;
form1.image2.Refresh;
form1.image2.Canvas.Pen.Color:=clBlack;
form1.image2.Canvas.Pen.Style:=pssolid;
form1.image2.Canvas.MoveTo(10,200);
form1.image2.Canvas.LineTo(10,200-145);
form1.image2.Canvas.TextOut(10,200-155,'Amplitudo');
form1.image2.Canvas.MoveTo(10,140);
form1.image2.Canvas.LineTo(10+370,140);
form1.image2.Canvas.TextOut(10+370,140+5,'Time');
form1.image2.Canvas.TextOut(200-200,200-100,'5V+');
form1.image2.Canvas.TextOut(200-200,200-70,'0V');
form1.image2.Canvas.TextOut(200-200,200-40,'5V-');
//REFRESH PICTURE & Sumbu D-Manchester
form1.image3.Picture:=nil;
form1.image3.Refresh;
form1.image3.Canvas.Pen.Color:=clBlack;
form1.image3.Canvas.Pen.Style:=pssolid;
form1.image3.Canvas.MoveTo(10,200);
form1.image3.Canvas.LineTo(10,200-145);
form1.image3.Canvas.TextOut(10,200-155,'Amplitudo');
form1.image3.Canvas.MoveTo(10,140);
form1.image3.Canvas.LineTo(10+370,140);
form1.image3.Canvas.TextOut(10+370,140+5,'Time');
form1.image3.Canvas.TextOut(200-200,200-100,'5V+');
form1.image3.Canvas.TextOut(200-200,200-70,'0V');
form1.image3.Canvas.TextOut(200-200,200-40,'5V-');
//REFRESH PICTURE & Sumbu AMI
form1.image4.Picture:=nil;
form1.image4.Refresh;
form1.image4.Canvas.Pen.Color:=clBlack;
form1.image4.canvas.Pen.Style:=PsSolid;
form1.image4.Canvas.MoveTo(10,200);
form1.image4.Canvas.LineTo(10,200-155);
form1.image4.Canvas.TextOut(10,200-155,'Amplitudo');
form1.image4.Canvas.MoveTo(10,140);
form1.image4.Canvas.LineTo(10+370,140);
form1.image4.Canvas.TextOut(10+370,145+0,'Time');
form1.image4.Canvas.TextOut(200-200,200-100,'5V+');
form1.image4.Canvas.TextOut(200-200,200-70,'0V');
form1.image4.Canvas.TextOut(200-200,200-40,'5V-');
end;
//PROGRAM---------------------------------------------------//Program RZ
procedure rz;
var
ax,ay,a,b,n,q:integer;
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
q:=length(edbiner);
ax:=10; ay:=140; a:=30; b:=30;
for n:=1 to q do
if edbiner[n]='1' then
begin
rz_1(ax,ay,b,a,n);
end
else if edbiner[n]='0' then
begin
rz_2(ax,ay,b,a,n);
end;
end;
//Program NRZL
procedure nrzl;
var
tnd,ax,ay,a,b,n:integer;
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
ax:=10; ay:=140; a:=30; b:=30;
tnd:=0;
for n:=1 to length(edbiner) do
if edbiner[n]='1' then
if tnd=0 then
begin
NRZL_1(ax,ay,b,a,n);
NRZL_tegak(ax,ay,b,a,n);
tnd:=1;
end
else
NRZL_1(ax,ay,b,a,n)
else
if tnd=1 then
begin
NRZL_0(ax,ay,b,a,n);
NRZL_tegak(ax,ay,b,a,n);
tnd:=0;
end
else NRZL_0(ax,ay,b,a,n);
end;
//Program D-Manchester
procedure dmanchester;
var
tnd, ax,ay,a,b,n:integer;
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
ax:=10; ay:=140; a:=30; b:=30;
tnd:=0;
for n:=1 to length(edbiner) do
begin
if edbiner[n]='1' then
if tnd = 0 then
begin dmncstr_1(ax,ay,b,a,n);
tnd:= 1;
end
else
begin dmncstr_0(ax,ay,b,a,n);
tnd:=0;
end
else
if tnd = 0 then
begin dtegak(ax,ay,b,a,n);
dmncstr_0(ax,ay,b,a,n);
end
else
begin dtegak(ax,ay,b,a,n);
dmncstr_1(ax,ay,b,a,n);
end
end;
end;
//Program AMI
procedure ami;
var
tnd,ax,ay,a,b,n:integer;
edbiner,start:string;
begin
edbiner:=form1.edbiner.Text;
ax:=10; ay:=140; a:=30; b:=30;
tnd:=0;
start:='atas';
if start='bawah' then tnd:=0
else if start='atas' then tnd:=1;
for n:=1 to length(edbiner) do
if edbiner[n]='1' then
if tnd=1 then
begin
ami_1(ax,ay,b,a,n);
tnd:=0;
end
else
begin
ami_2(ax,ay,b,a,n);
tnd:=1;
end
else
ami_tegak(ax,ay,b,a,n);
end;
//Tombol Tambahan
procedure TForm1.btnnolClick(Sender: TObject);
var
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
if length(edbiner)<12 then
begin
edbiner:=edbiner+'0';
form1.edbiner.Text:=edbiner;
end;
end;
procedure TForm1.btnsatuClick(Sender: TObject);
var
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
if length(edbiner)<12 then
begin
edbiner:=edbiner+'1';
form1.edbiner.Text:=edbiner;
end;
end;
procedure TForm1.btnexitClick(Sender: TObject);
begin
application.Terminate;
end;
procedure TForm1.btndelClick(Sender: TObject);
var
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
if length(edbiner)<20 then
begin
edbiner:=copy(edbiner,0,length(edbiner)-1);
form1.edbiner.Text:=edbiner;
end;
end;
procedure TForm1.btnclearClick(Sender: TObject);
var
edbiner:string;
begin
edbiner:=form1.edbiner.Text;
if length(edbiner)<20 then
begin
edbiner:=' ';
form1.edbiner.Text:=edbiner;
showmessage('ISIKAN DATA SEK BRO !');
end;
end;
procedure TForm1.btnrzClick(Sender: TObject);
begin
sumbu;
rz;
end;
procedure TForm1.btnnrzlClick(Sender: TObject);
begin
sumbu;
nrzl;
end;
procedure TForm1.btnmanClick(Sender: TObject);
begin
sumbu;
dmanchester;
end;
procedure TForm1.btnamiClick(Sender: TObject);
begin
sumbu;
ami;
end;
procedure TForm1.btnallClick(Sender: TObject);
begin
sumbu;
rz;
nrzl;
dmanchester;
ami;
end;
end.
BAB III
PENUTUP
3.1 Kesimpulan
1.) Pengkodean data digital ditujukan untuk membangun sinyal digital, yang
meliputi: unipolar, polar dan bipolar. Unipolar merupakan pengkodean paling
sederhana dimana data digital yang telah berbentuk biner di diubah ke bentuk
pulsa, biner 1 diwujudkan dalam suatu tegangan positif dan biner 0 sebagai
tanpa tegangan atau nol volt.
2.) Penggambaran koordinat 0,0 terletak pada perpotongan antara sumbu x dan
sumbu y. Langkah pertama untuk menggambar adalah melalui koordinat 0,0.