laporan canvas kdo.doc

Post on 29-Nov-2015

8 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

C++

TRANSCRIPT

LAPORAN PEMROGAMANCANVAS

Dosen Pembimbing :Dr.M. Sarosa, Dipl. Ing. Mt

Oleh :M. FARAITODY

1_B/15Jaringan Telekomunikasi Digital

PROGRAM STUDI TEKNIK TELEKOMUNIKASIPOLITEKNIK NEGERI MALANG

2011

BAB 1PENDAHULUAN

A. TUJUAN Memahami bentuk gelombang sinus dan kotak

Membedakan antara gelombang sinus dan kotak

Memahami menggunakan C++ builder

Membuat flowchart untuk pemrogaman Transistor.

Membuat program untuk mensimulasi Karakteristik Sinyal Sinus dan Sinyal Kotak.

B. Alat dan Bahan

Program C++ Builder 6

Satu unit Komputer

C. TEORI DASARSinyal Sinus dan Sinyal Kotak

Sinyal analog merupakan gelombang elektromagnetik yang langsung,

terus-menerus, dan disebarkan melalui berbagai media transmisi. Contoh sinyal

analog yang paling mudah dijumpai adalah gelombang sinusoidal. 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. Gelombang sinus secara umum

Sumber: Arius, D dan Rum Andy KR, 2008

Bila dinyatakan dalam persamaan, suatu gelombang sinusoidal dapat

dituliskan sebagai berikut:

S(t) = A sin (2.ft) + (1)

dengan A = Amplitudo

F = Frekuensi

= Phasa

Sinyal kotak 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.

Gambar 2. Sinyal Kotak

BAB IIPEMBAHASAN

A. View Hasil Progam Pertama kali

B. View Hasil Progam ketika menekan PEN > STYLEUntuk menentukan bentuk garis

C. View Hasil Progam ketika menekan PEN > COLORUntuk menentukan warna

D. View Hasil Progam ketika menekan PEN > WIDTHUntuk menentukan ketebalan garis

E. View Hasil Progam ketika menekan SINUSUntuk mengetahui gambar gelombang sinus

F. View Hasil Progam ketika menekan KOTAKUntuk mengetahui gambar gelombang kotak

G. Script Progam

//---------------------------------------------------------------------------

#include <vcl.h>#pragma hdrstop#include <math.h>

#include "UnitGambarCanvas.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}//---------------------------------------------------------------------------

void __fastcall TForm1::BersihkanCanvas(){ Canvas->Brush->Style = bsSolid; Canvas->Brush->Color = clWhite; Canvas->FillRect(Rect(0,0,ClientWidth,ClientHeight));}

void __fastcall TForm1::SetDefault(){ Canvas->Pen->Width = 1; Canvas->Pen->Mode = pmCopy; Canvas->Pen->Style = psSolid; Canvas->Pen->Color = clBlack;}

void __fastcall TForm1::STYLE1Click(TObject *Sender){ //membuat 7 elemen array tipe TPenStyle TPenStyle JENIS[7] = {psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame}; int posisiY = 20; //deklarasi posisiY dengan nilai awal 20 BersihkanCanvas(); SetDefault(); for(int j=0;j<7;j++){ Canvas->Pen->Style = JENIS[j];

Canvas->MoveTo(100,posisiY); Canvas->LineTo(ClientWidth - 10, posisiY); posisiY += 20; } Canvas->TextOut(1,10,"psSolid"); Canvas->TextOut(1,30,"psDash"); Canvas->TextOut(1,50,"psDot"); Canvas->TextOut(1,70,"psDashDot"); Canvas->TextOut(1,90,"psDashDotDot"); Canvas->TextOut(1,110,"psClear"); Canvas->TextOut(1,130,"psInsideFrame");

}//---------------------------------------------------------------------------

void __fastcall TForm1::FormResize(TObject *Sender){ Invalidate();}//---------------------------------------------------------------------------

void __fastcall TForm1::COLOR1Click(TObject *Sender){ BersihkanCanvas(); SetDefault(); for(int k=0;k<100;k++){ Canvas->Pen->Color = RGB(random(255),random(255),random(255)); Canvas->MoveTo(random(ClientWidth),random(ClientHeight)); Canvas->LineTo(random(ClientWidth),random(ClientHeight)); }}//---------------------------------------------------------------------------

void __fastcall TForm1::WIDTH1Click(TObject *Sender){ int posisiY = 20; BersihkanCanvas(); SetDefault(); for(int i=1;i<=7;i++){ Canvas->TextOut(10,posisiY,"Width = "+AnsiString(i)); Canvas->Pen->Width = i; Canvas->MoveTo(80,posisiY+8); Canvas->LineTo(ClientWidth-10,posisiY+8); posisiY += 20; }}

//---------------------------------------------------------------------------

void __fastcall TForm1::SINUS1Click(TObject *Sender){ int tinggi = ClientHeight; int lebar = ClientWidth; int posisiY = 20; BersihkanCanvas(); SetDefault();

Canvas->MoveTo(20,tinggi/2); Canvas->LineTo(lebar-10,tinggi/2); Canvas->MoveTo(20,10); Canvas->LineTo(20,tinggi - 10);

int sx,sy; for(sx=1;sx<lebar-33;sx++){ sy = sin(sx/3.14/10)*100; Canvas->Pixels[sx+20][tinggi/2-floor(sy)] = clRed; }

}//---------------------------------------------------------------------------

void __fastcall TForm1::KOTAK1Click(TObject *Sender){ int tinggi = ClientHeight; int lebar = ClientWidth; int posisiY = 20; int lb,i; BersihkanCanvas(); SetDefault();

Canvas->MoveTo(20,tinggi/2); Canvas->LineTo(lebar-10,tinggi/2); Canvas->MoveTo(20,10); Canvas->LineTo(20,tinggi-10);

AnsiString biner=Edit3->Text; int l= Edit3->MaxLength; int y= tinggi/2; int x= posisiY; int a=600/l; //lebar kotak int b=100;

Canvas->Pen->Color=clYellow; for(i=1;i<l;i++){

if(biner[i]=='1'){ Canvas->MoveTo(x+(i-1)*a,y-b); Canvas->LineTo(x+i*a,y-b); }else {Canvas->MoveTo(x+(i-1)*a,y);

Canvas->LineTo(x+i*a,y); }if(biner[i]!=biner[i+1]){

Canvas->MoveTo(x+i*a,y-b);Canvas->LineTo(x+i*a,y); }

} Canvas->Pen->Color=clBlack;

}//---------------------------------------------------------------------------

top related