PEMBIMBING :
Dr. M. Sarosa, Dipl. Ing., MT.
Disusun Oleh :
NAMA : INTAN RAHMANIA RAMDHAN
KELAS : JTD 3-B
NIM
: 1441160036
BAB I
PENDAHULUAN
I.
II.
Tujuan
di komputer.
Mampu membuat flow chart pengkodean data digital.
Program Delphi 7
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.
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
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
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
3.
4.
5.
6.
yang polaritasnya tergantung dari polaritas bit sebelumnya. Bit- bit penganti bit nol
tersebut di sebut sebagai bit violasi(violation code).