B. Landasan Teori
1.3.1 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 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.
1.3.1.1 Unipolar
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 te gangan atau nol volt. Gambar 1
menampilkan contoh sinyal digital sederhana dari suatu data
101100110.
Amplitudo
NAMA : Adinda Elsa Sifatul Aulia Praktikum II
NIM : 1941160070 Pengkodean Data Digital
(Unipolar.RZ.NRZL,NRZI,MANCHASTER,D-
KELAS : 2C-JTD
MANCHASTER,AMI,B8ZS,HDB3)
Unipolar
0 1 0 0 1 1 0 0 1
RZ
Berbasis AMI
C. Implementasi
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tfrmsinyal = class(TForm)
Edit1: TEdit;
keluar: TButton;
nrzi: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
nrzl: TImage;
uni: TImage;
rz: TImage;
b: TImage;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
ami: TImage;
dm: TImage;
manc: TImage;
hdb: TImage;
Label9: TLabel;
procedure Edit1Change(Sender: TObject);
procedure keluarClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
NAMA : Adinda Elsa Sifatul Aulia Praktikum II
NIM : 1941160070 Pengkodean Data Digital
(Unipolar.RZ.NRZL,NRZI,MANCHASTER,D-
KELAS : 2C-JTD
MANCHASTER,AMI,B8ZS,HDB3)
frmsinyal: Tfrmsinyal;
implementation
{$R *.dfm}
nrzi.Canvas.Pen.Color:=clblue;
ami.Picture:=nil; //AMI
sumbu(ami,x1,y1,400,80);
ami.Canvas.Pen.Color:=clblue;
manc.Picture:=nil; //MANC
sumbu(manc,x1,y1,400,80);
manc.Canvas.Pen.Color:=clblue;
dm.Picture:=nil;
sumbu(dm,x1,y1,400,80); //DM
dm.Canvas.Pen.Color:=clblue;
hdb.Picture:=nil; //HDB3
sumbu(hdb,x1,y1,400,80);
hdb.Canvas.Pen.Color:=clblue;
b.Picture:=nil; //B8ZS
sumbu(b,x1,y1,400,80);
b.Canvas.Pen.Color:=clblue;
//............gambar gelombang RZ.............
tnd1:=1; tnd2:=1;
pnjg:=round(rz.Width/round(2*n));
for i:=0 to n do
begin //..............JIKA i = SATU..............
if data[i] = '1' then
begin
x2:=round((2*i*pnjg)-(2*pnjg));
uni.Canvas.LineTo(x2,y1-40); //UNIPOLAR
uni.Canvas.LineTo(round(x2+pnjg*2),y1-40);
rz.Canvas.MoveTo(x2,y1-1); //RZ
rz.Canvas.LineTo(x2,y1-40);
rz.Canvas.LineTo(round(x2+pnjg),y1-40);
rz.Canvas.LineTo(round(x2+pnjg),y1-1);
rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);
nrzl.Canvas.LineTo(x2,y1+40);
nrzl.Canvas.LineTo(round(x2+pnjg*2),y1+40); //NRZL
if tnd1=0 then begin //NRZI
nrzi.Canvas.MoveTo(x2,y1+40);
nrzi.Canvas.LineTo(x2,y1-40);
nrzi.Canvas.LineTo(round(x2+pnjg*2),y1-40);
tnd1:=1;
end
else begin
nrzi.Canvas.MoveTo(x2,y1-40);
nrzi.Canvas.LineTo(x2,y1+40);
nrzi.Canvas.LineTo(round(x2+pnjg*2),y1+40);
tnd1:=0;
NAMA : Adinda Elsa Sifatul Aulia Praktikum II
NIM : 1941160070 Pengkodean Data Digital
(Unipolar.RZ.NRZL,NRZI,MANCHASTER,D-
KELAS : 2C-JTD
MANCHASTER,AMI,B8ZS,HDB3)
end;
if tnd2=0 then begin //AMI
ami.Canvas.MoveTo(x2,y1);
ami.Canvas.LineTo(x2,y1+40);
ami.Canvas.LineTo(round(x2+pnjg*2),y1+40);
ami.Canvas.LineTo(round(x2+pnjg*2),y1);
tnd2:=1;
end
else begin
ami.Canvas.MoveTo(x2,y1);
ami.Canvas.LineTo(x2,y1-40);
ami.Canvas.LineTo(round(x2+pnjg*2),y1-40);
ami.Canvas.LineTo(round(x2+pnjg*2),y1);
tnd2:=0;
end;
manc.Canvas.MoveTo(x2,y1-1); //MANC
manc.Canvas.LineTo(x2,y1+40);
manc.Canvas.LineTo(round(x2+pnjg),y1+40);
manc.Canvas.LineTo(round(x2+pnjg),y1-1);
manc.Canvas.LineTo(round(x2+2*pnjg),y1-1);
dm.Canvas.LineTo(x2,y1-40); //DMANC
dm.Canvas.LineTo(round(x2+pnjg),y1-40);
dm.Canvas.LineTo(round(x2+pnjg),y1+40);
dm.Canvas.LineTo(round(x2+2*pnjg),y1+40);
if tnd2=0 then begin //HDB3
hdb.Canvas.MoveTo(x2,y1+1);
hdb.Canvas.LineTo(x2,y1+40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1+40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1+40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1-1);
tnd2:=1;
end
else begin
hdb.Canvas.MoveTo(x2,y1-1);
hdb.Canvas.LineTo(x2,y1-40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1-40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1-40);
hdb.Canvas.LineTo(round(x2+2*pnjg),y1+1);
tnd2:=0;
end;
if tnd2=0 then begin
b.Canvas.MoveTo(x2,y1-1);
b.Canvas.LineTo(x2,y1-40);
b.Canvas.LineTo(round(x2+2*pnjg),y1-40);
NAMA : Adinda Elsa Sifatul Aulia Praktikum II
NIM : 1941160070 Pengkodean Data Digital
(Unipolar.RZ.NRZL,NRZI,MANCHASTER,D-
KELAS : 2C-JTD
MANCHASTER,AMI,B8ZS,HDB3)
b.Canvas.LineTo(round(x2+2*pnjg),y1-40);
b.Canvas.LineTo(round(x2+2*pnjg),y1-1);
tnd2:=1;
end
else begin
b.Canvas.MoveTo(x2,y1+1);
b.Canvas.LineTo(x2,y1+40);
b.Canvas.LineTo(round(x2+2*pnjg),y1+40);
b.Canvas.LineTo(round(x2+2*pnjg),y1+40);
b.Canvas.LineTo(round(x2+2*pnjg),y1-1);
tnd2:=0;
end;
end
//..............JIKA i = NOL..............
else begin
x2:=round((2*i*pnjg)-(2*pnjg));
uni.Canvas.LineTo(x2,y1); //UNIPOLAR
uni.Canvas.LineTo(round(x2+pnjg*2),y1);
rz.Canvas.MoveTo(x2,y1-1);
rz.Canvas.LineTo(x2,y1+40); //RZ
rz.Canvas.LineTo(round(x2+pnjg),y1+40);
rz.Canvas.LineTo(round(x2+pnjg),y1-1);
rz.Canvas.LineTo(round(x2+2*pnjg),y1-1);
nrzl.Canvas.LineTo(x2,y1-40); //NRZL
nrzl.Canvas.LineTo(round(x2+pnjg*2),y1-40);
if tnd1=0 then
nrzi.Canvas.LineTo(round(x2+pnjg*2),y1+40) //NRZI
else nrzi.Canvas.LineTo(round(x2+pnjg*2),y1-40);
ami.Canvas.MoveTo(x2,y1); //AMI
ami.Canvas.LineTo(round(x2+pnjg*2),y1);
manc.Canvas.MoveTo(x2,y1-1);
manc.Canvas.LineTo(x2,y1-40); //MANC
manc.Canvas.LineTo(round(x2+pnjg),y1-40);
manc.Canvas.LineTo(round(x2+pnjg),y1-1);
manc.Canvas.LineTo(round(x2+2*pnjg),y1-1);
dm.Canvas.LineTo(x2,y1+40); //DMANC
dm.Canvas.LineTo(round(x2+pnjg),y1+40);
dm.Canvas.LineTo(round(x2+pnjg),y1-40);
dm.Canvas.LineTo(round(x2+2*pnjg),y1-40);
if tnd2=0 then //HDB3
hdb.Canvas.MoveTo(x2,y1-1)
else hdb.Canvas.LineTo(round(x2+pnjg*2),y1-1);
if tnd2=0 then
b.Canvas.MoveTo(x2,y1-1)
NAMA : Adinda Elsa Sifatul Aulia Praktikum II
NIM : 1941160070 Pengkodean Data Digital
(Unipolar.RZ.NRZL,NRZI,MANCHASTER,D-
KELAS : 2C-JTD
MANCHASTER,AMI,B8ZS,HDB3)
else b.Canvas.LineTo(round(x2+pnjg*2),y1-1);
end;
end;
end;
end;
procedure Tfrmsinyal.keluarClick(Sender: TObject);
begin
frmsinyal.Close;
end;
end.
Dari hasil program yang sudah dicoding dapat menampilkan 9 bentuk gelombang digtal
yang berasal dari inputan biner yang sama namun dibedakan sesuai dengan jenis
gelombang digital yang sudah tertulis di program
E. Kesimpulan
Pada praktikum encoding dapat kita simpulkan bahwa software delphi dapat
menampilkan nilai input dan mengeluarkan hasil sesuai perintah yang dikodekan user
tapi user harus memperhatikan inisialisasi,parameter dan method yg dikodekan