laporan praktikum ii

32
LAPORAN PRAKTIKUM II KOMUNIKASI DATA PENGKODEAN DATA DIGITAL ( RZ, NRZ-L, D-MANCHESTER, AMI ) Oleh : Ridho Wicaksono ( 18 / TT 2D ) 1331130035 PROGRAM STUDI TEKNIK TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO

Upload: ridhowicaksono

Post on 08-Nov-2015

493 views

Category:

Documents


56 download

DESCRIPTION

Pengkodean

TRANSCRIPT

LAPORAN PRAKTIKUM IIKOMUNIKASI DATAPENGKODEAN DATA DIGITAL( RZ, NRZ-L, D-MANCHESTER, AMI )

Oleh :Ridho Wicaksono ( 18 / TT 2D )1331130035

PROGRAM STUDI TEKNIK TELEKOMUNIKASIJURUSAN TEKNIK ELEKTROPOLITEKNIK NEGERI MALANG2015

BAB IPENDAHULUAN

1.1 Tujuan1.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

1.1.2 Tujuan Khusus(1.) Membuat program untuk mensimulasikan karakteristik pengkodean data digital ( RZ , NRZ-L , D-MANCHESTER , AMI )(2.) Membuat flowchart teknik pengkodean data digital.

1.2 Teori Penunjang1.2.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. 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.

Gambar 1. Sinyal digital unipolar dari data 101100110B

Pengkodean polar bercirikan menggunakan dua level tegangan positif dan negatif sehingga dapat mengeliminasi timbulnya komponen DC. Pengkodean polar terdiri atas NRZ (non return to zero), RZ (return to zero) dan biphase.

Faktor yang menentukan sukses dari receiver dalam mengartikan sinyal yang datang : 1. Data rate (kecepatan data) : peningkatan data rate akan meningkatkan bit errorrate (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 : 1. Spektrum sinyal : disain sinyal yang bagus harus mengkonsentrasikan kekuatantransmisinya pada daerah tengah dari bandwidth transmisi; untuk mengatasi distorsi dalam penerimaan sinyal digunakan disain kode yang sesuai dengan bentuk dari spektrum sinyal transmisi. 2. Clocking : menentukan awal dan akhir dari tiap posisi bit dengan mekanisme synchronisasi yang berdasarkan pada sinyal transmisi. 3. Deteksi error : dibentuk dalam skema fisik encoding sinyal. 4. Interferensi sinyal dan Kekebalan terhadap noise 5. Biaya dan kesulitan : semakin tinggi kecepatan pensinyalan untuk memenuhidata rate yang ada, semakin besar biayanya.

Gambar 2. Jenis-jenis sinyal digital

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. Kode-kode 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:Nonreturn-to-Zero-Level (NRZ-L) yaitu suatu kode dimana tegangan negatif dipakai untuk mewakili suatu binary dan tegangan positif dipakai untuk mewakili binary lainnya.

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 dcdan kemampuan synchronisasi yang buruk

Gambar 2.2 menampilkan perbedaan kedua tipe pengkodean tersebut.

Gambar 3. Perbedaan NRZ-L dan NRZ-I

2. Return To Zero (Multilevel Binary)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).

Gambar 4. Sinyal Return To Zero

3. BiphaseBiphase 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 olehAdanya transisi di awal periode suatu bit dan binary '1' diwakili oleh ketiadaan transisi di awal periode suatu bit.

Keuntungan rancangan biphase : 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 : 1. memakai bandwidth yang lebih lebar dari pada multilevel binary.

Gambar 2.4 menampilkan perbedaan kedua tipe pengkodean tersebut.

Gambar 5.Perbedaan Manchester dan D-Manchester

4. B8ZS dan HDB3 Bipolar with 8-Zeros Substitution (B8ZS ) yaitu suatu kode Diana :

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+ -

High-density bipolar-3 zeros (HDB3 ) yaitu suatu kode dimana menggantikan string-string dari 4 nol dengan rangkaian yang mengandung satu atau dua pulsa atau disebut kode violation, jika violation terakhir positive maka violation ini pasti negative dan sebaliknya (lihat tabel 3.3).

Tabel 3.3. Aturan subsitusi HDB3

Gambar 6. Aturan pengkodean B8ZSHDB3 (High-Density Bipolar-3 Zero) memiliki prinsip yang sama dengan B8ZS, hanya pada HDB3 digunakan untuk menggantikan deretan bit 0 sebanyak 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.

Gambar 7.Aturan pengkodean HDB3

Gambar 8. Contoh pengkodean untuk B8ZS dan HDB3

1.2.2. Teknik Penggambaran Sinyal di Delphi Menggambar Sinyal RZ0,0abyxc101

Gambar 9. Penggambaran sinyal RZ pada umumnya

Untuk menggambarkan sinyal RZ, koordinat 0,0 terletak pada perpotongan antara sumbu x dan sumbu y. Langkah pertama untuk menggambar adalah melalui koordinat 0,0, sinyal RZ memiliki 2 kondisi sinyal yang ditandai dengan adanya bit 1 dan bit 0. Dimana untuk bit 1 di wakili oleh gambar sebagai berikut : a1

b2b1

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 :a2b1

b2

a1

Gambar 11. Kondisi sinyal RZ pada posisi bit 0Sama halnya untuk menggambarkan sinyal RZ bit 1, bit 0 juga memiliki 4 garis dimana terdapat 2 garis yang mempunyai panjang yang sama.

Penggambaran sinyal RZ di Komputer0,0tbyxc101a

Gambar 12. Penggambaran sinyal RZ di komputer

Untuk menggambarkan sinyal RZ di komputer sangat berbeda dengan menggambarkan sinyal RZ pada umumnya. Ini dikarenakan adanya perbedaan referensi koordinat (0,0), untuk penggambaran di komputer koordinat (0,0) terletak di pojok kiri atas. Langkah pertama penggambaran sinyal RZ adalah dengan menarik garis setinggi t menuju koordinat (0,0) pada penggambaran sinyal RZ pada umumnya. Setelah itu dilihat kondisi dari bit yang akan kita gambar, misalnya, bit 1 maka penggambarannya sebagai berikut :

y0,0

a1

t

b2b1

a2

1

Gambar 13. Penggambaran bit 1 pada komputer

Setelah menuju titik setinggi t dari koordinat (0,0) penggambaran sinyal RZ pada umumnya, dilanjutkan dengan membuat garis sepanjang b1 ke arah sumbu (0,0) penggambaran sinyal RZ dengan komputer, setelah itu, dari ujung garis b1, buat garis sepanjang garis a1 ke arah kanan, selanjutnya dari ujung garis a1 buat garis sepanjang b2 ke arah bawah (berlawanan dengan arah garis b1 / menuju koordinat (0,0) penggambaran sinyal RZ pada umumnya), setelah itu tarik garis sepanjang a2 dengan arah sesuai dengan garis a1.Untuk menggambarkan bit 0 sinyal RZ pada komputer mempunyai cara yang sama dengan penggambaran sinyal RZ dengan bit1. Yang membedakan hanyalah bentuk dari sinyal RZ bit 0 yang berlawanan arah dengan bit 1.

1.3 Alat dan bahan (1) PC : 1 Buah(2) Aplikasi Borland Delphi 7: disiapkan

BAB IIPEMBAHASAN

2.1 Prosedur PraktikumAdapun prosedur pada praktikum ini adalah :(1) Merangkai setiap komponen dipanel borland delphi sesuai dengan konsep tata letak komponen.

Gambar 14. Tata letak dari setiap komponen RZ

Gambar 15. Tata letak dari setiap komponen RZ

Gambar 16. Tata letak dari setiap komponen D-Manchester

Gambar 17. Tata letak dari setiap komponen AMI

(2) Membuat program untuk pengkodean data digital(3) Membuat Flowchart dari program yang telah dibuat(4) Membuat Tugas Praktikum

2.2 Tugas Praktikum(1) Merangkai setiap komponen dipanel borland delphi sesuai dengan konsep tata letak komponen.

Gambar 18. Tata letak dari setiap komponen

Keterangan settingan property dari setiap komponenKomponenPropertySetting

Form1CaptionEncoding By Ridho Wicaksono

Nameform1

Label1CaptionTeknik Telekomunikasi 2013

Label2CaptionPraktikum Komunikasi Data Semester 4

Label4CaptionRidho Wicaksono / TT- 2D / 1331130035

Label3CaptionButton Configuration

Label5CaptionRZ

Label6CaptionNRZL

Label7CaptionD-MANCHESTER

Label8CaptionAMI

Image1NameImage1

Image2NameImage2

Image3NameImage3

Image4NameImage4

Edit1Text101010110

Nameedbiner

Button 1Caption0

Namebtnnol

Button 2Caption1

Namebtnsatu

Button 3CaptionDel

Namebtndel

Button 4CaptionClear

Namebtnclear

Button 5Captionexit

Namebtnexit

Button 6CaptionRZ

Namebtnrz

Button 7CaptionNRZL

Namebtnnrzl

Button 8CaptionD-MANC

Namebtnman

Button 9CaptionAMI

Namebtnami

Button 10CaptionALL

Namebtnall

Panel 1Caption-

NamePanel1

2.3 Program Tugas Praktikumunit 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;

// Prosedur Sinyal NRZL //procedure NRZL_1(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_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;

// Prosedur Sinyal AMI //

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;beginedbiner:=form1.edbiner.Text;

//REFRESH PICTURE & Sumbu RZ form1.image1.Picture:=nil; form1.image1.Refresh;

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-');

//REFRESH PICTURE & Sumbu NRZL form1.image2.Picture:=nil; form1.image2.Refresh;

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-');

//REFRESH PICTURE & Sumbu D-Manchester form1.image3.Picture:=nil; form1.image3.Refresh;

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-');

//REFRESH PICTURE & Sumbu AMI form1.image4.Picture:=nil; form1.image4.Refresh;

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 RZprocedure rz;

var ax,ay,a,b,n,q:integer; edbiner:string;beginedbiner:=form1.edbiner.Text;q:=length(edbiner);ax:=10; ay:=140; a:=30; b:=30;for n:=1 to q doif 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 NRZLprocedure nrzl;var tnd,ax,ay,a,b,n:integer; edbiner:string;beginedbiner:=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-Manchesterprocedure dmanchester;var tnd, ax,ay,a,b,n:integer; edbiner:string;beginedbiner:=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 AMIprocedure ami;var tnd,ax,ay,a,b,n:integer; edbiner,start:string;beginedbiner:=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 Tambahanprocedure TForm1.btnnolClick(Sender: TObject);varedbiner:string;beginedbiner:=form1.edbiner.Text;if length(edbiner)