KOMUNIKASI DATA
PENGKODEAN DATA DIGITAL
( RZ, NRZ-L, D-MANCHESTER, AMI )
Oleh :
Ridho Wicaksono ( 18 / TT 2D )
1331130035
1.1 Tujuan
1.1.1 Tujuan Umum
(1.)Memahami macam-macam pengkodean data digital ( RZ , NRZ-L , D-
MANCHESTER , AMI )
(2.)Memahami teknik pengkodean data digital
(3.)Mampu melakukan simulasi pengodean data digital
Data digital merupakan data yang memiliki deretan nilai yang berbeda dan
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.
Amplitudo
1 0 1 1 0 0 1 1 0
t
Unipolar
Faktor yang menentukan sukses dari receiver dalam mengartikan sinyal yang
datang :
1. Data rate (kecepatan data) : peningkatan data rate akan meningkatkan bit error
rate (kecepatan error dari bit).
2. S/N : peningkatan S/N akan menurunkan bit error rate.
3. Bandwidth : peningkatan bandwidth dapat meningkatkan data rate.
Lima faktor yang perlu dinilai atau dibandingkan dari berbagai teknik
komunikasi :
Nonreturn to Zero Inverted (NRZI) yaitu suatu kode dimana satu transisi (low ke
high atau high ke low) pada awal suatu bit time akan dikenal sebagai binary '1' untuk
bit time tersebut; tidak ada transisi berarti binary '0'. Sehingga NRZI merupakan salah
satu contoh dari diferensial encoding.
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
NRZ-L
NRZ-I
0 1 0 0 1 1 0 0 1
RZ
3. Biphase
Biphase merupakan format pengkodean yang dikembangkan untuk mengatasi
keterbatasan kode NRZ. Dikenal dua teknik pengkodean biphase, yaitu Manchester dan
Differensial Manchester.
Manchester yaitu suatu kode dimana ada suatu transisi pada setengah dari periode. tiap
bit : transisi low ke high mewakili '1' dan high ke lob mewakili '0'.
Differential manchester yaitu suatu kode dimana binary '0' diwakili oleh
Adanya transisi di awal periode suatu bit dan binary '1' diwakili oleh ketiadaan transisi
di awal periode suatu bit.
1. Synchronisasi : karena adanya transisi selama tiap bit time, receiver dapat men-
synchron-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 :
0 1 0 0 1 1 0 0 1
Manchester
D-Manchester
Jika terjadi oktaf dari semua nol dan pulsa tegangan terakhir
yangmendahului oktaf ini adalah positif, maka 8 nol dari oktaf tersebut di-
encode sebagai 000+-0- +
Jika terjadi oktaf dari semua nol dan pulsa tegangan terakhir yang
mendahului oktaf ini adalah negatif, maka 8 nol dari oktaf tersebut di- encode
sebagai 000-+0+ -
+ 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0
Berubah Berubah
menjadi menjadi
+ 0 0 0 + - 0 - + - 0 0 0 - + 0 + -
+ 0 0 0 0 - 0 0 0 0
+ 0 0 0 + - 0 0 0 -
violasi violasi
+ 0 0 0 0 - 0 0 0 0
+ - 0 0 + - + 0 0 +
violasi violasi
AMI
0 0 0 V B 0 V B
B8ZS
0 0 0 V B 0 0 V B 0 0 V
HDB3
y a
b x
0,0
c
1 0 1
a1
b1 b2
a2
Gambar 10. Kondisi sinyal RZ pada posisi bit ‘1’
Pada gambar di atas dapat dilihat bahwa kondisi bit ‘1’ diwakili oleh 4 garis
dimana terdapat 2 garis yang mempunyai panjang yang sama (a1=a2, b1=b2).
Sedangkan untuk bit ‘0’ diwakili oleh gambar sebagai berikut :
a2
b1 b2
a1
Gambar 11. Kondisi sinyal RZ pada posisi bit ‘0’
Sama halnya untuk menggambarkan sinyal RZ bit ‘1’, bit ‘0’ juga memiliki 4
garis dimana terdapat 2 garis yang mempunyai panjang yang sama.
y
0,0
a
t
b x
1 0 1
a1
t
b1 b2
a2
1
Gambar 13. Penggambaran bit ‘1’ pada komputer
(1) PC : 1 Buah
(2) Aplikasi Borland Delphi 7 : disiapkan
BAB II
PEMBAHASAN
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;
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,ay-
a);
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;
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;
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-');
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-');
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-');
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;
end.
2.4 Flowchart Tugas
2.5 Design Tata Letak Komponen pada Delphi
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.