Anda di halaman 1dari 27

PRAKTIKUM KOMUNIKASI DATA

PENGKODEAN DATA DIGITAL


(UNIPOLAR, RZ, AMI, B8ZS, NRZ-L,MANCHESTER)

PEMBIMBING :
Dr. M. Sarosa, Dipl. Ing., MT.

Disusun Oleh :
NAMA : INTAN RAHMANIA RAMDHAN
KELAS : JTD 3-B
NIM
: 1441160036

JARINGAN TELEKOMUNIKASI DIGITAL

POLITEKNIK NEGERI MALANG


MALANG
2016

BAB I
PENDAHULUAN

I.

II.

Tujuan

Dapat mengkonversikan data biner dari ke pengkodean data digital (UNIPOLAR,

RZ, NRZ-L,MANCHESTER AMI, B8ZS)


Dapat membuat program untuk mensimulasikan karakteristik pengkodean data biner

di komputer.
Mampu membuat flow chart pengkodean data digital.

Alat dan Bahan

Program Delphi 7

Satu unit komputer


III.

Teori Dasar
A. Pengkodean sinyal 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 di gital dalam bentuk karakter yang dapat dipahami
manusia tidak dapat langsung d itransmisikan 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 tela h berbentuk biner di diubah ke bentuk pulsa, biner 1
diwujudkan dalam suatu te gangan positif dan biner 0 sebagai tanpa tegangan atau nol
volt. Gambar 2.1 menampilkan contoh sinyal digital sederhana dari suatu data
101100110B.

Pengkodean polar bercirikan menggunakan dua level tegangan positif dan negative
sehingga dapat mengeliminasi timbulnya komponen DC. Pengkodean polar terdiri atas NRZ
(non return to zero), RZ (return to zero) dan biphase.
1. NRZ (Non-Return to Zero)
Format yang paling mudah dalam mentransmisikan sinyal digital adalah dengan
menggunakan dua tingkat tegangan yang berlainan untuk dua jenis digit biner. Kodekode biner dikonversikan ke level tegangan tertentu sesuai dengan nilainya. Tingkat
tegangan tetap konstan sepanjang interval bit yang ditransmisikan. Format pengkodean
ini dibagi menjadi dua tipe, yaitu:
A. Non-Return to Zero level (NRZ-L), tegangan negatif dipakai untuk mewakili
nilai biner 1 dan tegangan positif dipakai untuk mewakili nilai biner lainnya.
B. Non-Return to Zero Inverted (NRZ-I), suatu transisi (rendah ke tinggi atau
tinggi ke rendah) dilakukan pada awal suatu bit apabila ditemukan biner 1dan tidak ada
transisi apabila ditemukan biner 0. NRZ-I merupakan salah satu contoh dari differensial
encoding (penyandian encoding). Gambar 2.2 menampilkan perbedaan kedua tipe
pengkodean tersebut.

2. Return to Zero

Format pengkodean selalu menuju ke level nol pada setengah periodenya. Biner 0
diwakili oleh perubahan level dari negatif ke nol sedangkan biner 1 diwakili oleh perubahan
dari positif ke nol. Gambar 2.3 menampilkan contoh sinyal hasil pengkodean return to zero
(RZ).

3. Biphase
Biphase merupakan format pengkod ean yang dikembangkan untuk mengatasi
keterbatasan kode NRZ. Dikenal dua teknik pengkodean biphase, yaitu Manchester dan
Differensial Manchester. Pada pengkodean Manchester, ditandai dengan terjadinya suatu
transisi pada setengah periode bit: transisi rendah ke tinggi mewakili bit 1 dan tinggi ke
rendah mewakili bit 0. Sedangkan differensial manchester adalah suatu kode dimana bit 0
diwakili oleh adanya transisi diawal periode dan bit 1 diwakili oleh tidak adanya transisi di
awal periode suatu bit. Gambar 2.4 menampilkan perbedaan kedua tipe pengkodean tersebut.

4. B8ZS & HDB3


Kedua kode ini didasarkan pada pengkodean AMI (Alternative Mark Inversion) dan
cocok untuk transmisi dengan kecepatan data tinggi. Ada dua teknik yang umum digunakan

dalam layanan transmisi jarak jauh dan keduanya diilustrasikan pada Gambar 8. Pengkodean
B8ZS dikenal sebagai pengkodean bipolar dengan 8 nol tertukar sedangkan skema pengkodean
didasarkan pada bipolar-AMI. Kelemahan pengkodean ini adalah panjang string (deretan) nol
dapat menyebabkan hilangnya sinkronisasi saat transmisi.
Kedua pengkodean ini dibangun untuk menghilangkan deretan bit 0yang mungkin
muncul dalam suatu pengiriman data. B8ZS ( Bipolar 8-zero subtitution) digunakan untuk
menggantikan deretan bit 0 lebih dari 8 buah. Aturan pengkodean B8ZS diperlihatkan pada
Gambar 2.5, kedelapan bit nol digantikan dengan bit-bit tertentu yang pol aritasnya tergantung
dari polaritas bit sebelumya. Bit-bit pengganti bit nol tersebut disebut sebagai bit violasi.

HDB3 (High-Density Bipolar-3 Zero) memiliki prinsip yang sama dengan B8ZS, hanya
pada HDB3 digunakan untuk menggantikan deretan bit 0sebanyak 4 buah. Gambar 2.6
menampilkan aturan penggantian bila ditemukan deretan bit 0 lebih dari 4 buah. Contoh hasil
pengkodean menggunakan B8ZS dan HDB3 ditampilkan pada Gambar 2.7

5. Manchester

Mempunyai karakteristik sebagai berikut, pada saat bit "0" maka dinyatakan sebagai
setengah periode bit pertamanya adalah low dan setengah periode bit sisanya adalah high.
Sedangkan pada saat bit "1" maka dinyatakan sebagai setengah bit pertamanya adalah
high dan setengah periode bit sisanya adalah low .

BAB II
PERENCANAAN

1. UNIPOLAR

2. RZ

3. NRZ-L

4. MANCHESTER

5. AMI

6. B8ZS

SCRIPT

unit Unit1;
interface
uses
Windows, Messages,
SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tfrmshow = class(TForm)
imguni: TImage;
imgrz: TImage;
imgnrzl: TImage;
imgmc: TImage;
imgami: TImage;
imgb8zs: TImage;
Label1: TLabel;

Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure
Button1Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmshow: Tfrmshow;

frmshow.imguni.Canvas.LineT

implementation

o(ax+b+(i-1)*b,ay);
end;

{$R *.dfm}
//Procedure Unipolar//
procedure
satu(ax,ay,a,b,i:integer);
begin
frmshow.imguni.Canvas.Pen.C
olor:=clGreen;
frmshow.imguni.Canvas.Pen.
Width:=2;
frmshow.imguni.Canvas.Move

procedure
tegak(ax,ay,a,b,i:integer);
begin
frmshow.imguni.Canvas.Pen.C
olor:=clGreen;
frmshow.imguni.Canvas.Pen.
Width:=2;
frmshow.imguni.Canvas.Move
To(ax+(i-1)*b,ay);

To(ax+(i-1)*b,ay-a);

frmshow.imguni.Canvas.LineT

frmshow.imguni.Canvas.LineT

o(ax+(i-1)*b,ay-a);
end;

o(ax+b+(i-1)*b,ay-a);
end;
procedure
nol(ax,ay,a,b,i:integer);
begin
frmshow.imguni.Canvas.Pen.C
olor:=clGreen;
frmshow.imguni.Canvas.Pen.
Width:=2;
frmshow.imguni.Canvas.Move
To(ax+(i-1)*b,ay);

//Procedure RZ//
procedure
rz_1(ax,ay,a,b,i:integer);
begin
frmshow.imgrz.Canvas.Pen.Col
or:=clGreen;
frmshow.imgrz.Canvas.Pen.Wi
dth:=2;
frmshow.imgrz.Canvas.MoveTo
(ax+(i-1)*(b+b),ay);
frmshow.imgrz.Canvas.LineTo(
ax+(i-1)*(b+b),ay-a);

frmshow.imgrz.Canvas.LineTo(

procedure

ax+b+(i-1)*(b+b),ay-a);

nol0(ax,ay,a,b,i:integer);
begin

frmshow.imgrz.Canvas.LineTo(

frmshow.imgnrzl.Canvas.Pen.

ax+b+(i-1)*(b+b),ay);

Color:=clGreen;

frmshow.imgrz.Canvas.LineTo(

frmshow.imgnrzl.Canvas.Pen.

ax+b+b+(i-1)*(b+b),ay);
end;

Width:=2;

procedure

frmshow.imgnrzl.Canvas.Move
To(ax+(i-1)*b,ay-a);

rz_0(ax,ay,a,b,i:integer);
begin

frmshow.imgnrzl.Canvas.LineT

frmshow.imgrz.Canvas.Pen.Col

o(ax+b+(i-1)*b,ay-a);
end;

or:=clGreen;
frmshow.imgrz.Canvas.Pen.Wi

procedure

dth:=2;

satu1(ax,ay,a,b,i:integer);
begin

frmshow.imgrz.Canvas.MoveTo

frmshow.imgnrzl.Canvas.Pen.

(ax+(i-1)*(b+b),ay);

Color:=clGreen;

frmshow.imgrz.Canvas.LineTo(

frmshow.imgnrzl.Canvas.Pen.

ax+(i-1)*(b+b),ay+a);

Width:=2;

frmshow.imgrz.Canvas.LineTo(

frmshow.imgnrzl.Canvas.Move

ax+b+(i-1)*(b+b),ay+a);

To(ax+(i-1)*b,ay+a);

frmshow.imgrz.Canvas.LineTo(

frmshow.imgnrzl.Canvas.LineT

ax+b+(i-1)*(b+b),ay);

o(ax+b+(i-1)*b,ay+a);
end;

frmshow.imgrz.Canvas.LineTo(
ax+b+b+(i-1)*(b+b),ay);
end;
//Procedure NRZ-L//

procedure
tegak1(ax,ay,a,b,i:integer);
begin

frmshow.imgnrzl.Canvas.Pen.
Color:=clGreen;
frmshow.imgnrzl.Canvas.Pen.
Width:=2;
frmshow.imgnrzl.Canvas.Move
To(ax+(i-1)*b,ay+a);
frmshow.imgnrzl.Canvas.LineT

procedure
mncstr_1(ax,ay,a,b,i:integer);
begin
frmshow.imgmc.Canvas.Pen.C
olor:=clGreen;
frmshow.imgmc.Canvas.Pen.W
idth:=2;

o(ax+(i-1)*b,ay-a);
end;

frmshow.imgmc.Canvas.MoveT

//Procedure Manchester//

frmshow.imgmc.Canvas.LineTo

procedure

o(ax+(i-1)*b+((i-1)*b),ay+a);

((ax+(i-1)*b+((i-1)*b))+b,ay+a);

mncstr_0(ax,ay,a,b,i:integer);
begin

frmshow.imgmc.Canvas.LineTo

frmshow.imgmc.Canvas.Pen.C

frmshow.imgmc.Canvas.LineTo

olor:=clGreen;

((ax+(i-1)*b+((i-1)*b))+2*b,ay-a);
end;

frmshow.imgmc.Canvas.Pen.W

((ax+(i-1)*b+((i-1)*b))+b,ay-a);

idth:=2;

procedure

frmshow.imgmc.Canvas.MoveT

mantegak(ax,ay,a,b,i:integer);
begin

o(ax+(i-1)*b+((i-1)*b),ay-a);
frmshow.imgmc.Canvas.LineTo
((ax+(i-1)*b+((i-1)*b))+b,ay-a);
frmshow.imgmc.Canvas.LineTo
((ax+(i-1)*b+((i-1)*b))+b,ay+a);
frmshow.imgmc.Canvas.LineTo
((ax+(i-1)*b+((i-1)*b))+2*b,ay+a)
end;

frmshow.imgmc.Canvas.Pen.C
olor:=clGreen;
frmshow.imgmc.Canvas.Pen.W
idth:=2;
frmshow.imgmc.Canvas.MoveT
o(ax+(i-1)*b+((i-1)*b),ay-a);

frmshow.imgmc.Canvas.LineTo

frmshow.imgami.Canvas.Move

(ax+(i-1)*b+((i-1)*b),ay+a);
end;

To(ax+(i-1)*b,ay);

//Procedure AMI//
procedure

o(ax+(i-1)*b,ay+a);

ami1_1(ax,ay,a,b,i:integer);
begin

frmshow.imgami.Canvas.LineT

frmshow.imgami.Canvas.Pen.

frmshow.imgami.Canvas.LineT

Color:=clGreen;

o(ax+b+(i-1)*b,ay);
end;

frmshow.imgami.Canvas.Pen.

frmshow.imgami.Canvas.LineT

o(ax+b+(i-1)*b,ay+a);

Width:=2;

procedure

frmshow.imgami.Canvas.Move

ami0(ax,ay,a,b,i:integer);
begin

To(ax+(i-1)*b,ay);
frmshow.imgami.Canvas.LineT
o(ax+(i-1)*b,ay-a);
frmshow.imgami.Canvas.LineT
o(ax+b+(i-1)*b,ay-a);
frmshow.imgami.Canvas.LineT

frmshow.imgami.Canvas.Pen.
Color:=clGreen;
frmshow.imgami.Canvas.Pen.
Width:=2;
frmshow.imgami.Canvas.Move
To(ax+(i-1)*b,ay);

o(ax+b+(i-1)*b,ay);
end;

frmshow.imgami.Canvas.LineT

procedure

o(ax+b+(i-1)*b,ay);
end;

ami1_2(ax,ay,a,b,i:integer);
begin
frmshow.imgami.Canvas.Pen.
Color:=clGreen;
frmshow.imgami.Canvas.Pen.
Width:=2;

//Procedure B8ZS//
procedure
Button1plus(ax,ay,a,b,i:integer
);
begin

frmshow.imgb8zs.Canvas.Pen.

frmshow.imgb8zs.Canvas.Line

Color:=clGreen;

To(ax+b+(i-1)*b,ay+a);

frmshow.imgb8zs.Canvas.Pen.

frmshow.imgb8zs.Canvas.Line

Width:=2;

To(ax+b+(i-1)*b,ay);
end;

frmshow.imgb8zs.Canvas.Mov
eTo(ax+(i-1)*b,ay);

procedure

frmshow.imgb8zs.Canvas.Line

Button1nol(ax,ay,a,b,i:integer);
begin

To(ax+(i-1)*b,ay-a);
frmshow.imgb8zs.Canvas.Line
To(ax+b+(i-1)*b,ay-a);

frmshow.imgb8zs.Canvas.Pen.
Color:=clGreen;
frmshow.imgb8zs.Canvas.Pen.

frmshow.imgb8zs.Canvas.Line

Width:=2;

To(ax+b+(i-1)*b,ay);
end;

frmshow.imgb8zs.Canvas.Mov

procedure
Button1minus(ax,ay,a,b,i:integ

eTo(ax+(i-1)*b,ay);
frmshow.imgb8zs.Canvas.Line

er);
begin

To(ax+b+(i-1)*b,ay);
end;

frmshow.imgb8zs.Canvas.Pen.

//Procedure Sumbu//

Color:=clGreen;
frmshow.imgb8zs.Canvas.Pen.
Width:=2;
frmshow.imgb8zs.Canvas.Mov
eTo(ax+(i-1)*b,ay);
frmshow.imgb8zs.Canvas.Line
To(ax+(i-1)*b,ay+a);

procedure sumbu;
var q,n:integer;
biner:string;
begin
biner:=frmshow.Edit1.Text;
q:=length(biner);
//-----Sumbu Unipolar -----//

frmshow.imguni.Canvas.Pen.C

frmshow.imguni.Canvas.TextO

olor:=clGreen;

ut((30*n)-5,160-130,biner[n]);
end;

frmshow.imguni.Canvas.Pen.S
tyle:=pssolid;
frmshow.imguni.Canvas.Move
To(10,160);
frmshow.imguni.Canvas.LineT
o(10,160-145);
frmshow.imguni.Canvas.TextO
ut(10,160-155,'Amplitudo');
frmshow.imguni.Canvas.Move
To(10,100);
frmshow.imguni.Canvas.LineT
o(10+370,100);
frmshow.imguni.Canvas.TextO
ut(10+370,100+5,'Time');
frmshow.imguni.Canvas.Pen.C
olor:=clGreen;
frmshow.imguni.Canvas.Pen.S

//---- Sumbu RZ ----//

frmshow.imgrz.Canvas.Pen.Col
or:=clGreen;
frmshow.imgrz.Canvas.Pen.Sty
le:=pssolid;
frmshow.imgrz.Canvas.MoveTo
(10,160);
frmshow.imgrz.Canvas.LineTo(
10,160-145);
frmshow.imgrz.Canvas.TextOu
t(10,160-155,'Amplitudo');
frmshow.imgrz.Canvas.MoveTo
(10,100);
frmshow.imgrz.Canvas.LineTo(
10+370,100);

tyle:=psDot;
for n:=1 to q do
begin

frmshow.imgrz.Canvas.TextOu

frmshow.imguni.Canvas.Move

or:=clGreen;

To(10+(30*n),160-130);
frmshow.imguni.Canvas.LineT
o(10+(30*n),160);

t(10+370,100+5,'Time');
frmshow.imgrz.Canvas.Pen.Col

frmshow.imgrz.Canvas.Pen.Sty
le:=psDot;
for n:=1 to q do

begin
frmshow.imgrz.Canvas.MoveTo
(10+(30*n),160-130);
frmshow.imgrz.Canvas.LineTo(
10+(30*n),160);
frmshow.imgrz.Canvas.TextOu

frmshow.imgnrzl.Canvas.Pen.
Color:=clGreen;
frmshow.imgnrzl.Canvas.Pen.
Style:=psDot;
for n:=1 to q do
begin

t((30*n)-5,160-130,biner[n]);
end;

frmshow.imgnrzl.Canvas.Move

//----Sumbu NRZ-L -----//

frmshow.imgnrzl.Canvas.LineT

To(10+(30*n),160-130);

o(10+(30*n),160);
frmshow.imgnrzl.Canvas.Pen.

frmshow.imgnrzl.Canvas.Text

Color:=clGreen;

Out((30*n)-5,160-130,biner[n]);
end;

frmshow.imgnrzl.Canvas.Pen.
Style:=pssolid;
frmshow.imgnrzl.Canvas.Move

//-----Sumbu
Manchester------//

To(10,160);
frmshow.imgnrzl.Canvas.LineT
o(10,160-145);
frmshow.imgnrzl.Canvas.Text
Out(10,160-155,'Amplitudo');
frmshow.imgnrzl.Canvas.Move
To(10,100);
frmshow.imgnrzl.Canvas.LineT
o(10+370,100);
frmshow.imgnrzl.Canvas.Text
Out(10+370,100+5,'Time');

frmshow.imgmc.Canvas.Pen.C
olor:=clBlack;
frmshow.imgmc.Canvas.Pen.St
yle:=pssolid;
frmshow.imgmc.Canvas.MoveT
o(10,160);
frmshow.imgmc.Canvas.LineTo
(10,160-145);
frmshow.imgmc.Canvas.TextO
ut(10,160-155,'Amplitudo');

frmshow.imgmc.Canvas.MoveT

frmshow.imgami.Canvas.Move

o(10,100);

To(10,160);

frmshow.imgmc.Canvas.LineTo

frmshow.imgami.Canvas.LineT

(10+370,100);

o(10,160-145);

frmshow.imgmc.Canvas.TextO

frmshow.imgami.Canvas.TextO

ut(10+370,100+5,'Time');

ut(10,160-155,'Amplitudo');

frmshow.imgmc.Canvas.Pen.C

frmshow.imgami.Canvas.Move

olor:=clBlack;

To(10,100);

frmshow.imgmc.Canvas.Pen.St

frmshow.imgami.Canvas.LineT

yle:=psDot;
for n:=1 to q do
begin

o(10+370,100);

frmshow.imgmc.Canvas.MoveT
o(10+(30*n),160-130);
frmshow.imgmc.Canvas.LineTo

frmshow.imgami.Canvas.TextO
ut(10+370,100+5,'Time');
frmshow.imgami.Canvas.Pen.
Color:=clGreen;

(10+(30*n),160);

frmshow.imgami.Canvas.Pen.S

frmshow.imgmc.Canvas.TextO

tyle:=psDot;
for n:=1 to q do
begin

ut((30*n)-5,160-130,biner[n]);
end;

//-----Sumbu AMI----//

frmshow.imgami.Canvas.Move
To(10+(30*n),160-130);
frmshow.imgami.Canvas.LineT

frmshow.imgami.Canvas.Pen.

o(10+(30*n),160);

Color:=clGreen;

frmshow.imgami.Canvas.TextO

frmshow.imgami.Canvas.Pen.S

ut((30*n)-5,160-130,biner[n]);
end;

tyle:=pssolid;

//-----Sumbu B8ZS----//

frmshow.imgb8zs.Canvas.Pen.
Color:=clGreen;
frmshow.imgb8zs.Canvas.Pen.

frmshow.imgb8zs.Canvas.Line
To(10+(30*n),160);

Style:=pssolid;

frmshow.imgb8zs.Canvas.Text

frmshow.imgb8zs.Canvas.Mov

130,biner[n]);
end;
end;

eTo(10,160);
frmshow.imgb8zs.Canvas.Line
To(10,160-145);
frmshow.imgb8zs.Canvas.Text
Out(10,160-155,'Amplitudo');
frmshow.imgb8zs.Canvas.Text
Out(10+150,160-155,'B8ZS');
frmshow.imgb8zs.Canvas.Mov
eTo(10,100);
frmshow.imgb8zs.Canvas.Line
To(10+1070,100);
frmshow.imgb8zs.Canvas.Text
Out(10+1070,100+5,'Time');

Out(10+(30*n)-15,160-

procedure reset;
begin
frmshow.imguni.Picture:=nil;
frmshow.imguni.Refresh;
frmshow.imgrz.Picture:=nil;
frmshow.imgrz.Refresh;
frmshow.imgnrzl.Picture:=nil;
frmshow.imgnrzl.Refresh;
frmshow.imgmc.Picture:=nil;
frmshow.imgmc.Refresh;
frmshow.imgami.Picture:=nil;
frmshow.imgami.Refresh;
frmshow.imgb8zs.Picture:=nil;
frmshow.imgb8zs.Refresh;
end;

frmshow.imgb8zs.Canvas.Pen.
Color:=clGreen;
frmshow.imgb8zs.Canvas.Pen.
Style:=psDot;
for n:=1 to q do
begin
frmshow.imgb8zs.Canvas.Mov
eTo(10+(30*n),160-130);

procedure
Tfrmshow.Button1Click(Sender
: TObject);
var
tnd,ax,ay,a,b,n:integer;
biner:string;
q:integer;
start:string;
u:integer;

tipe,data:string;
begin
reset;
sumbu;
//Unipolar//
biner:=frmshow.Edit1.Text;
ax:=10; ay:=100; a:=30;
b:=30;
tnd:=0;
for n:=1 to length(biner) do
if biner[n]='1' then
if tnd=0 then begin
tegak(ax,ay,a,b,n);
satu (ax,ay,a,b,n);
tnd:=1; end
else satu(ax,ay,a,b,n)
else if tnd=1 then begin
tegak(ax,ay,a,b,n);
nol(ax,ay,a,b,n);
tnd:=0; end
else nol(ax,ay,a,b,n);
//RZ//
biner:=frmshow.Edit1.Text;
q:=length(biner);
ax:=10; ay:=100; a:=30;
b:=30;
for n:=1 to q do
if biner[n]='1' then begin
rz_1(ax,ay,a,b,n);
end
else if biner[n]='0' then
begin
rz_0(ax,ay,a,b,n);
end;
//NRZ-L//

//biner:=frmshow.Edit1.Text;
ax:=10; ay:=100; a:=30;
b:=30;
tnd:=0;
for n:=1 to length (biner) do
if biner[n]<> biner[n-1] then
if tnd=0 then
begin
tegak1(ax,ay,b,a,n);
satu1(ax,ay,b,a,n);
tnd:=1;
end
else
begin
tegak1(ax,ay,b,a,n);
nol0(ax,ay,b,a,n);
tnd:=0;
end
else
if tnd=1 then
begin
satu1(ax,ay,b,a,n);
tnd:=1;
end
else
begin
nol0(ax,ay,b,a,n);
tnd:=0;
end;

//Manchester//
biner:=frmshow.Edit1.Text;
ax:=10; ay:=85; a:=30;
b:=30;
tnd:=0;
for n:=1 to length(biner) do
begin
if biner[n] <> biner[n-1] then

if tnd = 0 then
begin
mncstr_0(ax,ay,b,a,n);
tnd:=1;
end
else
begin
mncstr_1(ax,ay,b,a,n);
tnd:=0;
end
else
if tnd = 0 then
begin
mantegak(ax,ay,b,a,n);
mncstr_1(ax,ay,b,a,n);
tnd:=0;
end
else
begin
mantegak(ax,ay,b,a,n);
mncstr_0(ax,ay,b,a,n);
tnd:=1;
end
end;
//AMI//
//biner:=frmshow.Edit1.Text;
ax:=10; ay:=100; 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(biner) do
if biner[n]='1' then
if tnd=1 then
begin
ami1_1(ax,ay,b,a,n);

tnd:=0;
end
else
begin
ami1_2(ax,ay,b,a,n);
tnd:=1;
end
else
ami0(ax,ay,b,a,n);
//Program B8ZS//
biner:=frmshow.Edit1.Text;
ax:=10; ay:=100; a:=30;
b:=30;
tnd:=0;
start:='false';
tipe:='genap'; u:=0;
for n:=1 to length(biner) do
begin
if start='true' then
if n <= u then
begin
start:='true';
end
else
begin
start:='false';
end;
if biner[n]='1' then
begin
if tnd = 0 then
begin
Button1plus(ax,ay,b,a,n);
tnd:=1;
end
else
begin
Button1minus(ax,ay,b,a,n);
tnd:=1;

end;
if tipe='genap' then
tipe:='ganjil' else tipe:='genap';
end
else if (biner[n-8]='0') and
(biner[n-7]='0') and (biner[n6]='0') and (biner[n-5]='0') and
(biner[n-4]='0') and
(biner[n-3]='0') and (biner[n2]='0') and (biner[n-1]='0') and
(biner[n]='0') and
(biner[n+1]='0') and
(biner[n+2]='0') and
(biner[n+3]='0') then
begin
if tipe='genap' then
tipe:='ganjil' else tipe:='genap';
end;
if (biner[n]='0') and
(biner[n+1]='0') and
(biner[n+2]='0') and
(biner[n+3]='0') and
(biner[n+4]='0') and
(biner[n+5]='0') and
(biner[n+6]='0') and
(biner[n+7]='0') and
(start='false') then
begin
if tipe='genap' then
begin
if tnd = 1 then
begin
Button1nol(ax,ay,b,a,n);
Button1nol(ax,ay,b,a,n+1);
Button1nol(ax,ay,b,a,n+2);

Button1minus(ax,ay,b,a,n+3);
Button1plus(ax,ay,b,a,n+4);
Button1nol(ax,ay,b,a,n+5);
Button1plus(ax,ay,b,a,n+6);
Button1minus(ax,ay,b,a,n+7);
tnd:=0;
start:='true'; u:=n+7;
end
else
begin
Button1plus(ax,ay,b,a,n);
Button1nol(ax,ay,b,a,n+1);
Button1nol(ax,ay,b,a,n+2);
Button1plus(ax,ay,b,a,n+3);
Button1minus(ax,ay,b,a,n+4);
Button1nol(ax,ay,b,a,n+5);
Button1minus(ax,ay,b,a,n+6);
Button1plus(ax,ay,b,a,n+7);
tnd:=1;
start:='true'; u:=n+7;
end;
end
else if tipe='ganjil' then
begin
if tnd = 1 then

begin
Button1nol(ax,ay,b,a,n);
Button1nol(ax,ay,b,a,n+1);
Button1nol(ax,ay,b,a,n+2);
Button1plus(ax,ay,b,a,n+3);
Button1minus(ax,ay,b,a,n+4);
Button1nol(ax,ay,b,a,n+5);
Button1minus(ax,ay,b,a,n+6);
Button1plus(ax,ay,b,a,n+7);
tnd:=1;
start:='true'; u:=n+7;
end
else
begin
Button1nol(ax,ay,b,a,n);
Button1nol(ax,ay,b,a,n+1);
Button1nol(ax,ay,b,a,n+2);
Button1minus(ax,ay,b,a,n+3);

Button1plus(ax,ay,b,a,n+4);
Button1nol(ax,ay,b,a,n+5);
Button1plus(ax,ay,b,a,n+6);
Button1minus(ax,ay,b,a,n+7);
tnd:=0;
start:='true'; u:=n+7;
end;
end
end;
if biner[n]='0' then
begin
if start='false' then
Button1nol(ax,ay,b,a,n);
end;
end;
end;
procedure
Tfrmshow.Button2Click(Sender
: TObject);
begin
close();
end;
end.

BAB III
PEMBAHASAN

1.

Data
digital

merupakan
data yang memiliki deretan nilai yang berbeda dan
memiliki

ciri-ciri

tersendiri

dan

Sinyal

digital

merupakan hasil teknologi yang dapat mengubah signal menjadi


2.

kombinasi urutan bilangan 0 dan 1


Pengkodean unipolar hanya menggunakan sebuah level tegangan
untuk menyatakan dua posisi bilangan biner yaitu yaitu 0V dan +V

3.

untuk menyatakan data biner 0 dan 1.


Pengkodean saluran jenis Return to Zero (RZ) menggunakan level
V dan +V dengan transisi di pertengahan bit data biner. Data biner
0 dinyatakan dengan transisi dari level V menuju 0V, sedangkan

4.

data biner 1 dinyatakan dengan transisi dari level 0V menuju +V.


Pengkodean Mancaster merupakan suatu kode di mana biner 1 diwakili oleh
adanya transisi di awal periode suatu bit dan biner 0 diwakili oleh ketiadaan transisi

5.

di awal periode suatu bit.


Pengkodean AMI merupakan suatu kode dimana binary '0' diwakili
dengan tidak adanya line sinyal dan binary '1' diwakili oleh suatu

6.

pulsa positif atau negatif.


Pengkodean B8ZS (Bipolar 8 zero substitution) digunakan untuk menggatikan
deretan bit 0 lebih dari 8 buah, kedelapan bit nol digantikan dengan bit-bit tertentu

yang polaritasnya tergantung dari polaritas bit sebelumnya. Bit- bit penganti bit nol
tersebut di sebut sebagai bit violasi(violation code).

Anda mungkin juga menyukai