ridho wicaksono 18 laporanpraktikum i

26
LAPORAN PRAKTIKUM I KOMUNIKASI DATA SINYAL ANALOG, SINYAL DIGITAL (PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI) Oleh : Ridho Wicaksono ( 18 / TT 2D ) PROGRAM STUDI TEKNIK TELEKOMUNIKASI JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI MALANG

Upload: ridho-wicaksono

Post on 27-Sep-2015

307 views

Category:

Documents


12 download

DESCRIPTION

Laporan Pratikum Gelombang sinus dan digital menggunakan delphi7

TRANSCRIPT

LAPORAN PRAKTIKUM I KOMUNIKASI DATASINYAL ANALOG, SINYAL DIGITAL(PENGGAMBARAN SINYAL MENGGUNAKAN DELPHI)

Oleh :Ridho Wicaksono ( 18 / TT 2D )

PROGRAM STUDI TEKNIK TELEKOMUNIKASIJURUSAN TEKNIK ELEKTROPOLITEKNIK NEGERI MALANG2015

BAB IPENDAHULUAN

1.1 Tujuan1.1.1 Tujuan Umum(1) Memahami Perbedaan Sinyal Analog dan Sinyal Digital.(2) Memahami macam-macam dari Sinyal Analog dan Sinyal Digital.

1.1.2 Tujuan Khusus(1) Memahami Pemrograman Delphi.(2) Memahami cara menggambar Sinyal Analog dan Sinyal Digital menggunakan bahasa program pada Delphi7.(3) Membuat program untuk mensimulasi Karakteristik Sinyal Analog dan Sinyal Digital.1.2 Teori Penunjang1.2.1 Sinyal Analog dan Sinyal DigitalSignal analogSignal analog adalah signal yang berupa gelombang elektromagnetik dan bergerak atas dasar fekuensi. Frekuensi adalah jumlah getaran bolak balik sinyal analog dalam satu siklus lengkap per detik. Satu siklus lengkap terjadi saat gelombang berada pada titik bertegangan nol, menuju titik bertegangan positif tertinggi pada gelombang, menurun ke titik tegangan negatif dan menuju ke titik nol kembali (lihat gambar). Semakin tinggi kecepatan atau frekuensinya semakin banyak siklus lengkap yang terjadi pada suatu periode tertentu. Kecepatan frekuensi tersebut dinyatakan dalam hertz. Sebagai contoh sebuah gelombang yang berayun bolak balik sebanyak sepuluh kali tiap detik berarti memiliki kecepatan sepuluh hertz.

Karakteristik sinyal analog ditentukan oleh tiga parameter, yaitu:1. Amplitudo, merupakan ukuran sinyal pada waktu tertentu.2. Frekuensi, merupakan kebalikan dari periode (f=1/T), yaitu banyaknya pengulangan sinyal (gelombang) dalam satuan waktu, dengan satuan Hz atau cycles per second.3. Phasa, merupakan ukuran dari posisi relatif awal suatu sinyal dengan tidak melewati periode tunggal dari sinyal. Gambar 1 menampilkan dua gelombang dengan beda phasa /2.

Gambar 1. Perbedaan phasa dua gelombangSumber: Arius, D dan Rum Andy KR, 2008

Bila dinyatakan dalam persamaan, suatu gelombang sinusoidal dapat dituliskan sebagai berikut:S(t) = A sin (2ft) + dengan A = AmplitudoF = Frekuensi = Phasa

Signal digitalSinyal digital merupakan sinyal sebagai wujud tampilan data digital. Data digital merupakan data yang memiliki deretan nilai yang berbeda dan memiliki ciri tersendiri. Contoh data digital adalah teks, deretan bilangan, dan karakter-karakter lain. Terdapat permasalahan dalam mewujudkan data digital menjadi sinyal digital, yaitu data dalam bentuk karakter-karakter yang dapat dipahami manusia tidak dapat langsung ditransmisikan dalam sistem komunikasi. Data harus diubah terlebih dahulu ke dalam bentuk deretan bit agar dapat ditransmisikan.Sebagai ganti gelombang maka signal pada sistem digital ditransmisikan dalam bentuk bit bit biner. Sistem biner adalah sistem on off (atau sistem 1 0 ), jadi bila ada tegangan atau on maka di angkakan 1, sedang bila tidak ada tegangan atau off maka diangkakan 0. Meski memiliki kelemahan terhadap nosie inteferensi listrik apabila jarak semakin jauh, namun signal digital masih dapat diperbaiki atau direparasi artinya dengan cara membangkitkan ulang bit-bit tersebut dengan tidak meregenerasi noise.

Gambar 2. Sinyal digitalSumber: Arius, D dan Rum Andy KR, 2008

1.2.2 Menggambar Sinyal

a. Penggambaran gelombang sinusoidal secara umum

b. Penggambaran di komputer menggunakan Delphi Gambar 3. Perbedaan cara penggambaran gelombang sinusoidal

Menggambarkan gelombang sinusoidal di komputer berbeda dengan cara penggambaran secara umum. Untuk menggambarkan gelombang sinusoidal di komputer dapat diikuti gambar seperti ditampilkan pada Gambar 3.b. Dengan referensi koordinat awal (0,0) terletak di pojok kiri atas, di awali dari koordinat (0,y), lakukan perulangan sepanjang sumbu x, gunakan Persamaan 1 untuk menentukan nilai y, sehingga nilai masing-masing titik gelombang sinusoidal (y) di setiap posisi x adalah y=b A sin 2x.

1.2.3 DelphiA. Pengenalan dan Pengertian Delphi

Delphi adalah suatu bahasa pemograman (development language) yang digunakan untk merancang suatu aplikasi program.Delphi termasuk dalam pemrograman bahasa tingkat tinggi (high level lenguage). Maksud dari bahasa tingkat tinggi yaitu perintah-perintah programnya menggunakan bahasa yang mudah dipahami oleh manusia. Bahasa pemrograman Delphi disebut bahasa prosedural artinya mengikuti urutan tertentu. Dalam membuat aplikasi perintah-perintah, Delphi menggunakan lingkungan pemrograman visual.

B. IDE (Integrated Development Environment)

Kemudian, hal yang paling pertama dalam mengenal Delphi adalah harus mengetahui IDE. IDE (Integrated Development Environment) merupakan lingkungan/wilayah dimana seluruh tools atau komponen-komponen yang dibutuhkan untuk merancang atau membangun aplikasi program. Secara umum IDE Delphi di kelompokkan kepada 8 bagian yaitu :

1. Main Menu

Merupakan penunjuk ke seluruh fasilitas yang disediakan aplikasi Delphi.

Gambar 2.2. Menu Pemrograman Delphi

2. Toolbar / Speedbar

Merupakan Icon (Sortcut)yang dirancang untuk lebih memudahkan menjangkau fasilitas yang ada pada Delphi.

Gambar 2.3. Toolbar Pemrograman Delphi

3. Component Palette

Merupakan komponen-komponen VCL(Visual Component Library) yang dikelompokkan kedalam Tab-tab, komponen komponen inilah yang akan digunakan untuk merancang interface atau antar muka aplikasi.

Gambar 2.4. Component Palette Pemrograman Delphi

4. Form Designer

Merupakan interface (antar muka) apalikasi yang akan dibangun, Form akan menampung seluruh komponen yang akandigunakan dalam proses perancangan sebuah aplikasi dengan Delphi.

Gambar 2.5. Form Designer Pemrograman Delphi

5. Code Editor

Code editor merupakan tempat untuk menuliskan kode program menggunakan bahasa object Pascal. Kode program tidak perlu di tulis secara keseluruhan karena Delphi sudah menyediakan blok atau kerangka untuk menulis kode program.

Gambar 2.6. Code Editor Pemrograman Delphi

6. Code Explorer

Digunakan untuk memudahkan berpindah antar file unit di dalam jendela code editor. Code explorer berisi daftar yang menampilkan semua tipe,class, properti , method, variabel global, rutin global yang telah didefinisikan di dalam unit. Saat memilih sebuah item dalam code explorer, kursor akan berpindah menuju implementasi dari item yang dipilih di dalam code editor.

Gambar 2.7. Code Explorer Pemrograman Delphi7. Object inspector

Object inspector digunakan untuk mengubah properti atau karakteristik dari suatu komponen. Terdiri dari 2 tab yaitu :a. Properties

Digunakan untuk menentukan seting suatu objek. Satu objek memiliki beberapa properti yang dapat diatur langsung dari object inspector maupun melalui kode program. Seting ini mempengaruhi cara kerja objek tersebut saat aplikasi dijalankan.b. Event

Merupakan bagian yang dapat diisi dengan kode program tertentu yang berfungsi untuk menangani event-event (berupa sebuah procedure) yang dapat direspon oleh sebuah komponen.Event adalah peristiwa atau kejadian yang diterima oleh suatu objek, misal : klik, drag, dan lain-lain. Event yang diterima objek akan memicu Delphi menjalankan kode program yang ada didalamnya. Misalnya ingin sesuatu dikerjakan pada saat form ditutup, maka untuk menyatakan tindakan tersebut (berupa sebuah procedure) menggunakan OnClose.

Gambar 2.8. Object Inspector Pemrograman Delphi

8. Object Tree View

Object tree view berisi daftar komponen yang sudah diletakkan di form designer.

Gambar 2.9. Object Tree View Pemrograman Delphi2

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

BAB IIPEMBAHASAN

2.1 Prosedur Langkah langkah dalam praktikum ini adalah (1) Merangkai setiap komponen diform borland delphi sesuai dengan konsep tata letak komponen.

Gambar 2. Konsep tata letak komponen

Keterangan settingan property dari setiap komponen :KomponenPropertySetting

FormCaptionMenampilkan sinyak sinusoida dan kotak

NameFrmsinyal

Label1CaptionX

Label2CaptionY

Edit1Text400

NameEdit1

Edit2Text120

NameEdit2

Button1CaptionSinus

Namebtsinus

Edit3TextKosongkan

NameEdbiner

Button2CaptionDigital

Namebtdigit

Image1NameImagesinus

Image2NameImagedigit

GroupBox1CaptionMenu Gelombang Sinus

GroupBox2CaptionMenu Gelombang Digital

GroupBox3CaptionAmplitudo

GroupBox4CaptionFrekuensi

GroupBox5CaptionLebar Pulsa

GroupBox6CaptionTinggi Pulsa

GroupBox7CaptionPhase

Caption(kosongkan)

Panel1NamePanel1

(2) Mengisikan program dalam penggambaran sumbu koordinat.

a.) Program untuk menggambarkan sumbu koordinat sinus :procedure sumbu1(ax,ay,b,c:integer);begin frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax+b,ay); frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax,ay-c); frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax,ay+c); frmsinyal.imagesinus.Canvas.Pen.Color:=clred; frmsinyal.imagesinus.Canvas.MoveTo(ax,ay+110); frmsinyal.imagesinus.Canvas.LineTo(ax+160,ay+110); frmsinyal.imagesinus.Canvas.MoveTo(ax+220,ay+110); frmsinyal.imagesinus.Canvas.LineTo(ax+390,ay+110); frmsinyal.imagesinus.Canvas.TextOut(ax+170,ay+105,'1detik'); frmsinyal.imagesinus.Canvas.TextOut(ax,ay-c,'Amplitude(A)'); frmsinyal.imagesinus.Canvas.TextOut(ax+b-15,ay 15,'Time(t)'); frmsinyal.imagesinus.Canvas.TextOut(ax-10,ay-55,'2-'); frmsinyal.imagesinus.Canvas.TextOut(ax-10,ay-107,'4-');end;

b.) Program untuk menggambarkan sumbu koordinat digital :

procedure sumbu2(ax,ay,b,c:integer);begin frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+b,ay); frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax,ay-c); frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax,ay+c); frmsinyal.imagedigit.Canvas.TextOut(ax,ay-c,'Amplitude (v)'); frmsinyal.imagedigit.Canvas.TextOut(ax+b-5,ay+5,'Time(s)'); frmsinyal.imagedigit.Canvas.TextOut(ax-15,ay-37,'30-'); frmsinyal.imagedigit.Canvas.TextOut(ax-15,ay-67,'60-'); frmsinyal.imagedigit.Canvas.TextOut(ax-21,ay-107,'100-');end;

(3) Mengisikan program biner satu, nol dan tegak pada digital :

procedure satu(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay-a); frmsinyal.imagedigit.Canvas.LineTo(ax+b+(i-1)*b,ay-a);end;

procedure nol(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+b+(i-1)*b,ay);end;

procedure tegak(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+(i-1)*b,ay-a);end;

(4) Mengisikan program reset pada tabel gelombang sinus dan digital :

procedure reset_sinus;var x,y:integer;begin frmsinyal.imagesinus.Picture:=nil; frmsinyal.imagesinus.Refresh ;

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); sumbu2(20,120,x,y);end;

procedure reset_digit;var x,y:integer;begin frmsinyal.imagedigit.Picture:=nil; frmsinyal.imagedigit.Refresh ;

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); sumbu2(20,120,x,y);end;

(5) Ketikkan kode program di bawah ini untuk menggambarkan gelombang sinus dengan cara melakukan double click pada button SINUS sebagai event on click.procedure Tfrmsinyal.BtsinusClick(Sender: TObject);var amp,sx,x,y:integer; //Variabel yang dipanggil sy,frek,phase:real;begin reset_sinus; if rba1.Checked then amp:=25; //amplitudo = 1v if rba2.Checked then amp:=50; //amplitudo = 2v if rba4.Checked then amp:=100; //amplitudo = 4v if rbf2.Checked then frek:=2; //frekuensi = 2Hz if rbf5.Checked then frek:=5; // frekuensi = 5Hz if rbf10.Checked then frek:=10; // frekuensi = 10Hz if rbp0.Checked then phase:=0;//phase = 0 if rbp90.Checked then phase:=pi/2;// phase = 90 if rbp180.Checked then phase:=pi;//phase = 180

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); for sx:=1 to 395 do

beginsy:=sin(sx/pi/frek+phase)*amp; //Saat Pratikum ditambahkan program untuk phase gelombang sinus disinifrmsinyal.imagesinus.Canvas.pixels[sx+20,120-round(sy)]:=clred; end;

end;(6) Ketikkan kode program di bawah ini untuk menggambarkan gelombang digital dengan cara melakukan double click pada button DIGITAL sebagai event on click.

procedure Tfrmsinyal.BtdigitClick(Sender: TObject);var i,x,y,tinggi,lebar:integer; //Variabel yang dipanggil biner:string; tnd : integer;begin reset_digit; if rbl10.checked then lebar:=10; if rbl30.checked then lebar:=30; if rbl50.checked then lebar:=50; if rbt10.checked then tinggi:=30; if rbt30.checked then tinggi:=60; if rbt50.checked then tinggi:=100; biner:=edbiner.Text; x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu2(20,120,x,y); tnd:=0; for i:=1 to 16 do if biner[i]='1' then if tnd=0 then begin tegak(20,120,lebar,tinggi,i); satu (20,120,lebar,tinggi,i); tnd:=1; end else satu(20,120,lebar,tinggi,i) else if tnd=1 then begin tegak(20,120,lebar,tinggi,i); nol (20,120,lebar,tinggi,i); tnd:=0; end else nol(20,120,lebar,tinggi,i);end;

2.2 Hasil Percobaan(1) Flowchart Gelombang Sinus

(2) Flowchart Gelombang Digital

(3) Program

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;

type Tfrmsinyal = class(TForm) imagesinus: TImage; imagedigit: TImage; GroupBox1: TGroupBox; GroupBox2: TGroupBox; Btsinus: TButton; Btdigit: TButton; Edit1: TEdit; Edit2: TEdit; GroupBox3: TGroupBox; GroupBox4: TGroupBox; GroupBox5: TGroupBox; GroupBox6: TGroupBox; edbiner: TEdit; rba1: TRadioButton; rba2: TRadioButton; rba4: TRadioButton; rbf2: TRadioButton; rbf5: TRadioButton; rbf10: TRadioButton; rbt10: TRadioButton; rbt30: TRadioButton; rbt50: TRadioButton; rbl10: TRadioButton; rbl30: TRadioButton; rbl50: TRadioButton; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Button1: TButton; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Groupbox7: TGroupBox; rbp0: TRadioButton; rbp90: TRadioButton; rbp180: TRadioButton; procedure BtsinusClick(Sender: TObject); procedure BtdigitClick(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;

var frmsinyal: Tfrmsinyal;

implementation

{$R *.dfm}

procedure sumbu1(ax,ay,b,c:integer);begin frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax+b,ay); frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax,ay-c); frmsinyal.imagesinus.Canvas.MoveTo(ax,ay); frmsinyal.imagesinus.Canvas.LineTo(ax,ay+c); frmsinyal.imagesinus.Canvas.Pen.Color:=clred; frmsinyal.imagesinus.Canvas.MoveTo(ax,ay+110); frmsinyal.imagesinus.Canvas.LineTo(ax+160,ay+110); frmsinyal.imagesinus.Canvas.MoveTo(ax+220,ay+110); frmsinyal.imagesinus.Canvas.LineTo(ax+390,ay+110); frmsinyal.imagesinus.Canvas.TextOut(ax+170,ay+105,'1 detik'); frmsinyal.imagesinus.Canvas.TextOut(ax,ay-c,'Amplitude (A)'); frmsinyal.imagesinus.Canvas.TextOut(ax+b-15,ay-15,'Time(t)'); frmsinyal.imagesinus.Canvas.TextOut(ax-10,ay-55,'2-'); frmsinyal.imagesinus.Canvas.TextOut(ax-10,ay-107,'4-');end;

procedure sumbu2(ax,ay,b,c:integer);begin frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+b,ay); frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax,ay-c); frmsinyal.imagedigit.Canvas.MoveTo(ax,ay); frmsinyal.imagedigit.Canvas.LineTo(ax,ay+c); frmsinyal.imagedigit.Canvas.TextOut(ax,ay-c,'Amplitude (v)'); frmsinyal.imagedigit.Canvas.TextOut(ax+b-5,ay+5,'Time(s)'); frmsinyal.imagedigit.Canvas.TextOut(ax-15,ay-37,'30-'); frmsinyal.imagedigit.Canvas.TextOut(ax-15,ay-67,'60-'); frmsinyal.imagedigit.Canvas.TextOut(ax-21,ay-107,'100-');end;

procedure satu(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay-a); frmsinyal.imagedigit.Canvas.LineTo(ax+b+(i-1)*b,ay-a);end;

procedure nol(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+b+(i-1)*b,ay);end;

procedure tegak(ax,ay,a,b,i:integer);begin frmsinyal.imagedigit.Canvas.Pen.Color:=clgreen; frmsinyal.imagedigit.Canvas.MoveTo(ax+(i-1)*b,ay); frmsinyal.imagedigit.Canvas.LineTo(ax+(i-1)*b,ay-a);end;

procedure reset_sinus;var x,y:integer;begin frmsinyal.imagesinus.Picture:=nil; frmsinyal.imagesinus.Refresh ;

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); sumbu2(20,120,x,y);end;

procedure reset_digit;var x,y:integer;begin frmsinyal.imagedigit.Picture:=nil; frmsinyal.imagedigit.Refresh ;

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); sumbu2(20,120,x,y);end;

procedure Tfrmsinyal.BtsinusClick(Sender: TObject);var amp,sx,x,y:integer; sy,frek,phase:real;begin reset_sinus; if rba1.Checked then amp:=25; if rba2.Checked then amp:=50; if rba4.Checked then amp:=100; if rbf2.Checked then frek:=2; if rbf5.Checked then frek:=5; if rbf10.Checked then frek:=10; if rbp0.Checked then phase:=0; if rbp90.Checked then phase:=pi/2; if rbp180.Checked then phase:=pi;

x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu1(20,120,x,y); for sx:=1 to 395 do

begin sy:=sin(sx/pi/frek+phase)*amp; frmsinyal.imagesinus.Canvas.pixels[sx+20,120-round(sy)]:=clred; end;

end;procedure Tfrmsinyal.BtdigitClick(Sender: TObject);var i,x,y,tinggi,lebar:integer; biner:string; tnd : integer;begin reset_digit; if rbl10.checked then lebar:=30; if rbl30.checked then lebar:=60; if rbl50.checked then lebar:=100; if rbt10.checked then tinggi:=30; if rbt30.checked then tinggi:=60; if rbt50.checked then tinggi:=100; biner:=edbiner.Text; x:=strtoint(frmsinyal.Edit1.Text); y:=strtoint(frmsinyal.Edit2.Text); sumbu2(20,120,x,y); tnd:=0; for i:=1 to 16 do if biner[i]='1' then if tnd=0 then begin tegak(20,120,lebar,tinggi,i); satu (20,120,lebar,tinggi,i); tnd:=1; end else satu(20,120,lebar,tinggi,i) else if tnd=1 then begin tegak(20,120,lebar,tinggi,i); nol (20,120,lebar,tinggi,i); tnd:=0; end else nol(20,120,lebar,tinggi,i);end;

procedure Tfrmsinyal.Button1Click(Sender: TObject);beginclose;end;

end.

(4) Desain Aplikasi yang dibuat

Gambar 3. Program sebelum dijalankan

Gambar 4. Program setelah dijalankanBAB IIIPENUTUP

3.1 Kesimpulan

1. Delphi adalah suatu bahasa pemograman (development language) yang digunakan untuk merancang suatu aplikasi program. 2. Untuk membuat program pada Delphi, ketika mendesign layout form pada project diwajibkan untuk memberikan identitas yang sesuai dengan script pada program yang akan digunakan agar tidak terjadi eror/kesalahan.3. Agar hasil program dapat sukses, maka harus menyimpan unit serta project terlebih dahulu kemudian di compile.4. Hasil output gelombang dipengaruhi oleh besar amplitude dan frekuensi untuk gelombang sinus, sedangakan gelombang kotak dipengaruhi oleh bilangan biner serta tinggi dan lebar pulsa.

amp,sx,x,y:integer;sy,frek,pha:real;

x:=strtoint(sinuskotak.edsumbux.Text); y:=strtoint(sinuskotak.edsumbuy.Text); sumbu1(20,120,x,y);

mulai

if rba1=amp 25

if rba2=amp 50

if rba4=amp 100

if rbf2=frek10

if rbf10=frek 2

if rbf5=frek4

If rb6=frek 10

If rb5=frek 2

If rb4=frek 2

If rb6=frek 10

If rb5=frek 2

If rb4=frek 2

for sx:=1 to 395

sy:=sin(sx/pi/frek)*amp; sinuskotak.imgsinus.Canvas.Pixels[sx+20,120-round(sy)]:=clred;

Gel sinus

end

tdk

tdk

tdk

tdk

tdk

tdk

tdk

tdk

ya

ya

ya

amp,sx,x,y:integer;sy,frek,phasa:real;

x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);sumbu1(20,120,x,y);

mulai

if RadioButton1=amp 25

if RadioButton4=frek10

if RadioButton6=frek 2

if RadioButton5=frek4

if RadioButton13= pha 0

if RadioButton15=pha pi;

if RadioButton14=pha pi/2;

if RadioButton2=amp 50

if RadioButton3=amp 100

sy:=sin(sx/pi/frek+phasa)*amp;frmsinyal.imgsinus.Canvas.pixels[sx+20,120-round(sy)]:=clred;

Gel sinus

end

ya

ya

ya

ya

ya

ya

ya

ya

tdk

tdk

tdk

tdk

tdk

tdk

for sx:=1 to 395

ya

i,x,y,tinggi,lebar:integer;biner:string;tnd : integer;

biner:=edbiner.Text;x:=strtoint(frmsinyal.edsumbux.Text);y:=strtoint(frmsinyal.edsumbuy.Text);sumbu2(20,120,x,y);tnd:=0;

mulai

if rbl10=lebar 10

if rbl30= lebar 60

if rbl50= lebar 100

if rbt10= tinggi 10

If rbt50= tinggi 50

If rbt30=tinggi 30

if rbt10= tinggi 10

If rbt50= tinggi 50

If rbt30=tinggi 30

if rbt10= tinggi 10

If rbt50= tinggi 50

If rbt30=tinggi 30

Gel kotak

end

if tnd=0

tdk

tegak(20,120,lebar,tinggi,i);nol (20,120,lebar,tinggi,i);tnd:=0; end

tdk

tdk

tdk

tdk

tdk

tdk

tidak

ya

tdk

ya

ya

ya

for i:=1 to 16

tegak(20,120,lebar,tinggi,i);satu (20,120,lebar,tinggi,i);tnd:=1; end