OLEH
USWATUN KHASANAH
1331130019
TT2B/19
BAB I
PENDAHULUAN
1.1.
TUJUAN
1. Memahami pengkodean data digital
2. Memahami macam-macam pengkodean data digital.
Unipolar encoding bersifat sederhana (gelombang kotak).
Unipolar encoding seperti : NRZ,Rzdan biphase (manchester/DManchester).
Bipolar encoding seperti : AMI,B8ZS dan HDB3.
1.2.
DASAR TEORI
Dalam proses kerjanya komputer mengolah data secara digital,
melalui sinyal listrik yang diterimanya atau dikirimkannya. Pada
prinsipnya, komputer hanya mengenal dua arus, yaitu on atau off, atau
istilah dalam angkanya sering juga dikenal dengan 1 (satu) atau 0 (nol).
Kombinasi dari arus on atau off inilah yang yang mampu membuat
komputer melakukan banyak hal, baik dalam mengenalkan huruf, gambar,
suara, bahkan film film menarik yang anda tonton dalam format digital.
Sistem
yang
merubah
sinyal
analog
menjadi
sinyal
digital
PENGKODEAN DATA
Dalam proses telekomunikasi, data tersebut harus dimengerti baik
dari sisi pengirim maupun dari sisi penerima. Untuk mencapai hal
tersebut, data harus diubah dalam bentuk khusus yaitu sandi untuk
komunikasi data.
TEKNIK ECONDING
Modulasi adalah proses encoding sumber data dalam suatu sinyal carrier
dengan frekuensi.
Ada 4 kombinasi hubungan data dan sinyal:
Data
digital,
sinyal
digital
perangkat
pengkodean
data
tidak
dipengaruhi
oleh
level
tegangan.
Multilevel Binary
1. Bipolar-AMI yaitu suatu kode dimana binary 0 diwakili dengan
tidak adanya line sinyal dan binary 1 diwakili oleh suatu pulsa
positif atau negatif. Zero menggambarkan tidak adanya line signal.
Satu menggambarkan positif atau negatif sinyal.
2. Pseudoternary yaitu suatu kode dimana binary 1 diwakili oleh
ketiadaan line sinyal dan binary 0 oleh pergantian pulsa-pulsa
positif dan negatif. Satu menggambarkan adanya jalur sinyal. Zero
menggambarkan perwakilan dari positif dan negatif.
Biphase
1. Manchester yaitu suatu kode dimana ada suatu transisi pada
setengah dari periode. Tiap bit transisi low ke high mewakili 1
dan high ke low mewakili 0. Zero dari tinggi ke rendah di
pertengahan interval. Satu dari rendah ke tinggi di pertengahan
interval.
2. 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.
Perbandingan Format Pengkodean Sinyal Digital
String pada empat zero digantikan dengan satu atau dua pulsa
B8ZS dan HDB3
BAB II
PERENCANAAN
2.1 Langkah langkah pada Form
1. Buka program Delphi untuk menggamarkan sinyal.
2. Tambahkan pada form,image dan button. Selanjutnya mengatur tata letak
komponen-komponen seperti pada gambar Fom berikut
BAB III
HASIL DAN PEMBAHASAN
3.1 PROGRAM
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
biner: TEdit;
image1: TImage;
procedure binerChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//---------------------------------------sumbu--------------------------------------procedure sumbu (image:Timage;ax,ay,b,c:integer);
begin
image.Picture:=nil;
image.Refresh;
image.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);
image.Canvas.LineTo(ax,ay+c);
end;
//********************* PROCEDURE SINYAL Unipolar
***********************************
procedure satu(ax,ay,a,b,i:integer);
begin
form1.image1.Canvas.Pen.Color:=clred;
form1.image1.Canvas.Pen.Width:=2;
form1.image1.Canvas.MoveTo(ax+(i-1)*b,ay-a);
form1.image1.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
end;
procedure nol(ax,ay,a,b,i:integer);
begin
form1.image1.Canvas.Pen.Color:=clred;
form1.image1.Canvas.Pen.Width:=2;
form1.image1.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image1.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure tegak(ax,ay,a,b,i:integer);
begin
form1.image1.Canvas.Pen.Color:=clred;
form1.image1.Canvas.Pen.Width:=2;
form1.image1.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image1.Canvas.LineTo(ax+(i-1)*b,ay-a);
end;
//********************** PROCEDURE SINYAL RZ
***********************************
procedure rz_1(ax,ay,a,b,n:integer);
begin
form1.image2.Canvas.Pen.Color:=clred;
form1.image2.Canvas.Pen.Width:=2;
form1.image2.Canvas.MoveTo(ax+(n-1)*(b+b),ay);
form1.image2.Canvas.LineTo(ax+(n-1)*(b+b),ay-a);
form1.image2.Canvas.LineTo(ax+b+(n-1)*(b+b),ay-a);
form1.image2.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);
form1.image2.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);
end;
procedure rz_0(ax,ay,a,b,n:integer);
begin
form1.image2.Canvas.Pen.Color:=clred;
form1.image2.Canvas.Pen.Width:=2;
form1.image2.Canvas.MoveTo(ax+(n-1)*(b+b),ay);
form1.image2.Canvas.LineTo(ax+(n-1)*(b+b),ay+a);
form1.image2.Canvas.LineTo(ax+b+(n-1)*(b+b),ay+a);
form1.image2.Canvas.LineTo(ax+b+(n-1)*(b+b),ay);
form1.image2.Canvas.LineTo(ax+b+b+(n-1)*(b+b),ay);
end;
//*************************** PROCEDURE SINYAL AMI
*****************************
procedure ami1_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,ay);
form1.image3.Canvas.LineTo(ax+(i-1)*b,ay-a);
form1.image3.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
form1.image3.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure ami1_2(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,ay);
form1.image3.Canvas.LineTo(ax+(i-1)*b,ay+a);
form1.image3.Canvas.LineTo(ax+b+(i-1)*b,ay+a);
form1.image3.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure ami0(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,ay);
form1.image3.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
//******************** PROCEDURE SINYAL MANCHASTER
*****************************
procedure mncstr_0(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+b),ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);
form1.image4.Canvas.LineTo(ax+b+b+(i-1)*(b+b),ay+a);
end;
procedure mncstr_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+b),ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);
form1.image4.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);
end;
procedure tegak_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+b),ay+a);
form1.image4.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);
form1.image4.Canvas.MoveTo(ax+(i-1)*(b+b),ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);
form1.image4.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay-a);
end;
procedure tegak_0(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+b),ay+a);
form1.image4.Canvas.LineTo(ax+(i-1)*(b+b),ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay-a);
form1.image4.Canvas.LineTo(ax+b+(i-1)*(b+b),ay+a);
form1.image4.Canvas.LineTo(ax+(b+b)+(i-1)*(b+b),ay+a);
end;
//*************************** PROCEDURE SINYAL B8ZS
****************************
procedure b8zsplus(ax,ay,a,b,n:integer);
begin
form1.image5.Canvas.Pen.Color:=clred;
form1.image5.Canvas.Pen.Width:=2;
form1.image5.Canvas.MoveTo(ax+(n-1)*b,ay);
form1.image5.Canvas.LineTo(ax+(n-1)*b,ay-a);
form1.image5.Canvas.LineTo(ax+b+(n-1)*b,ay-a);
form1.image5.Canvas.LineTo(ax+b+(n-1)*b,ay);
end;
procedure b8zsminus(ax,ay,a,b,n:integer);
begin
form1.image5.Canvas.Pen.Color:=clred;
form1.image5.Canvas.Pen.Width:=2;
form1.image5.Canvas.MoveTo(ax+(n-1)*b,ay);
form1.image5.Canvas.LineTo(ax+(n-1)*b,ay+a);
form1.image5.Canvas.LineTo(ax+b+(n-1)*b,ay+a);
form1.image5.Canvas.LineTo(ax+b+(n-1)*b,ay);
end;
procedure b8zsnol(ax,ay,a,b,n:integer);
begin
form1.image5.Canvas.Pen.Color:=clred;
form1.image5.Canvas.Pen.Width:=2;
form1.image5.Canvas.MoveTo(ax+(n-1)*b,ay);
form1.image5.Canvas.LineTo(ax+b+(n-1)*b,ay);
end;
//************************** PROCEDURE SINYAL HDB3
*****************************
procedure hdb3plus(ax,ay,a,b,i:integer);
begin
form1.image6.Canvas.Pen.Color:=clred;
form1.image6.Canvas.Pen.Width:=2;
form1.image6.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image6.Canvas.LineTo(ax+(i-1)*b,ay-a);
form1.image6.Canvas.LineTo(ax+b+(i-1)*b,ay-a);
form1.image6.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure hdb3minus(ax,ay,a,b,i:integer);
begin
form1.image6.Canvas.Pen.Color:=clred;
form1.image6.Canvas.Pen.Width:=2;
form1.image6.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image6.Canvas.LineTo(ax+(i-1)*b,ay+a);
form1.image6.Canvas.LineTo(ax+b+(i-1)*b,ay+a);
form1.image6.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
procedure hdb3nol(ax,ay,a,b,i:integer);
begin
form1.image6.Canvas.Pen.Color:=clred;
form1.image6.Canvas.Pen.Width:=2;
form1.image6.Canvas.MoveTo(ax+(i-1)*b,ay);
form1.image6.Canvas.LineTo(ax+b+(i-1)*b,ay);
end;
//*************************** PROGRAM Unipolar
*****************************
procedure uni;
var
tnd,ax,ay,a,b,n:integer;
biner:string;
begin
biner:=form1.biner.Text;
ax:=0; ay:=50; a:=30; b:=15;
tnd:=0;
for n:=1 to length(biner) do
if biner[n]='1' then
if tnd=0 then begin tegak(ax,ay,b,a,n);
satu (ax,ay,b,a,n);
tnd:=1; end
else satu(ax,ay,b,a,n)
else if tnd=1 then begin tegak(ax,ay,b,a,n);
nol (ax,ay,b,a,n);
tnd:=0; end
else nol(ax,ay,b,a,n);
end;
//*************************** PROGRAM RZ
*****************************
procedure rz;
var
ax,ay,a,b,n,q:integer;
biner:string;
begin
biner:=form1.biner.Text;
q:=length(biner);
ax:=0; ay:=50; a:=15; b:=15;
for n:=1 to q do
if biner[n]='1' then
begin
rz_1(ax,ay,b,a,n);
end
else if biner[n]='0' then
begin
rz_0(ax,ay,b,a,n);
end;
end;
//*************************** PROGRAM AMI
*****************************
procedure ami;
var
tnd,ax,ay,a,b,n:integer;
biner,start:string;
begin
biner:=form1.biner.Text;
ax:=0; ay:=50; a:=30; b:=15;
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);
end;
//*************************** PROGRAM MANCHASTER
*****************************
procedure manchaster;
var
tnd, ax,ay,a,b,n:integer;
biner:string;
begin
biner:=form1.biner.Text;
ax:=0; ay:=50; a:=15; b:=15;
tnd:=0;
for n:=1 to length(biner) do
if biner[n]='1' then
if tnd=0 then
begin
mncstr_1(ax,ay,b,a,n);
tnd:=1
end
else
tegak_1(ax,ay,b,a,n)
else
if tnd=1 then
begin
mncstr_0(ax,ay,b,a,n);
tnd:=0;
end
else
tegak_0(ax,ay,b,a,n);
end;
//*************************** PROGRAM B8ZS
*************************
procedure b8zs;
var
tnd,ax,ay,a,b,n,u:integer;
biner,start:string;
begin
biner:=form1.biner.Text;
ax:=0; ay:=50; a:=30; b:=15;
tnd:=0;
u:=0;
start:='false';
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
if tnd = 0 then
begin b8zsplus(ax,ay,b,a,n);
tnd:=1;
end
else
begin b8zsminus(ax,ay,b,a,n);
tnd:=0;
end
else 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 tnd=1 then
begin
b8zsnol(ax,ay,b,a,n);
b8zsnol(ax,ay,b,a,n+1);
b8zsnol(ax,ay,b,a,n+2);
b8zsplus(ax,ay,b,a,n+3);
b8zsminus(ax,ay,b,a,n+4);
b8zsnol(ax,ay,b,a,n+5);
b8zsminus(ax,ay,b,a,n+6);
b8zsplus(ax,ay,b,a,n+7);
start:='true'; u:=n+7;
end
else
begin
b8zsnol(ax,ay,b,a,n);
b8zsnol(ax,ay,b,a,n+1);
b8zsnol(ax,ay,b,a,n+2);
b8zsminus(ax,ay,b,a,n+3);
b8zsplus(ax,ay,b,a,n+4);
b8zsnol(ax,ay,b,a,n+5);
b8zsplus(ax,ay,b,a,n+6);
b8zsminus(ax,ay,b,a,n+7);
start:='true'; u:=n+7;
end
end
else if biner[n]='0' then
begin
if start='true' then Continue
else b8zsnol(ax,ay,b,a,n);
end
end;
end;
//*************************** PROGRAM HDB3
*****************************
procedure hdb3;
var
tnd,ax,ay,a,b,n,u:integer;
biner,start,tipe:string;
begin
biner:=form1.biner.Text;
ax:=0; ay:=50; a:=30; b:=15;
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 hdb3plus(ax,ay,b,a,n);
tnd:=1;
end
else
begin hdb3minus(ax,ay,b,a,n);
tnd:=0;
end;
if tipe='genap' then tipe:='ganjil' else tipe:='genap';
end
else if (biner[n-4]='0') and (biner[n-3]='0') and (biner[n-2]='0') and
(biner[n-1]='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
(start='false') then
begin
if tipe='genap' then
begin
if tnd = 1 then
begin
hdb3minus(ax,ay,b,a,n);
hdb3nol(ax,ay,b,a,n+1);
hdb3nol(ax,ay,b,a,n+2);
hdb3minus(ax,ay,b,a,n+3);
tnd:=0;
start:='true'; u:=n+3;
end
else
begin
hdb3plus(ax,ay,b,a,n);
hdb3nol(ax,ay,b,a,n+1);
hdb3nol(ax,ay,b,a,n+2);
hdb3plus(ax,ay,b,a,n+3);
tnd:=1;
start:='true'; u:=n+3;
end;
end
BAB IV
PENUTUP
4.1 KESIMPULAN
Dari percobaan diatas dapat disimpulkan bahwa kita dapat
membuat berbagai macam pengkodean digital (unipolar, RZ, AMI,
Manchester, B8ZS,HDB3) menggunakan delphi, yang mempunyai
berbagai karakteristik yang berbeda-beda, selain itu dapat membuat
sumbu, memntukan nilai tinggi, garis dari beberapa kondisi biner
untuk sinyal diital, dan lembar dari sinyal, penggambaran sumbu serta
penggambaran sinyal itu tersendiri.
Daftar Pustaka
1. http://dicqyharrysandy.blogspot.com/2013/01/pengkodean-dataanalog-dan-digital.html