Anda di halaman 1dari 12

PEMROGRAMAN DASAR LANJUT

GELOMBANG SINUS DAN KOTAK

Disusun oleh:
Doni Priadi (1041160045)

JURUSAN TEKNIK ELEKTRO


PROGRAM STUDI JARINGAN TELEKOMUNIKASI DIGITAL
POLITEKNIK NEGERI MALANG
2011

A. Tujuan :
Membuat grafik gelombang sinus dan kotak

B. Teori Dasar :
Penghasil garis (line generator) adalah prosedur yang digunakan
untuk menghasilkan/memproduksi bentuk garis yang tersusun dari titik-titik
elemen gambar (pixel).
Pada prinsipnya sebuah garis hanyalah kumpulan dari titik-titik yang
digambar secara kontinu dan linier. Salah satu algoritma yang dapat
digunkan untuk membuat garis adalah algoritma DDA (digital differential
analyzer) dengan pseudo algoritm sebagai berikut.
Persamaan garis luurs dengan koordinat cartesius adalah
y=m.x + b

dengan m adalah kemiringan garis, b tiik pada sumbu y. Jika


dikatahui 2 tiik akhir dari segmen garios yang diposisikan pada titik x1,y1
dan x2,y2 maka untuk menentukan kemiringan garis adalah :
m = y2-y1
x2-x1

m= y1-m.x1
Pemilihan digunakan untuk mengarahkan perjalanan suatu proses. Pemilihan
dapat diibaratkan sebagai katup atau kran yang mengatur jalannya air. Bila katup
terbuka maka air akan mengalir dan sebaliknya bila katup tertutup air tidak akan
mengalir atau akan mengalir melalui tempat lain. Fungsi penyeleksian kondisi penting
artinya dalam penyusunan bahasa C, terutama untuk program yang kompleks.
Struktur ini digunakan jika kondisinya hanya 2.
if (kondisi)
{
/* aksi 1 jika kondisi terpenuhi*/ ;
}
else
{
/* aksi 2 jika kondisi tidak terpenuhi*/
}

C. Flowchart

start

Input biner:
1010101010101010

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

for(i=1;i<=l;i++)

Gelombang
kotak

end

Gelombang sinus

start

Membuat gelombang
sinus:
sy = sin(sx/3.14/10)*100;

for(sx=1;sx<lebar33;sx++)

Grafik sinus

end

Gelombang
kotak

D.Script Program:
1. Program grafik gelombang sinus dan kotak
//--------------------------------------------------------------------------#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;
BersihkanCanvas();
SetDefault();
Canvas->MoveTo(20,tinggi/2);
Canvas->LineTo(lebar-10,tinggi/2);
Canvas->MoveTo(20,10);
Canvas->LineTo(20,tinggi - 10);

//ini sb.x

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 posisiX =20;
int i;
BersihkanCanvas();
SetDefault();
// menggambar sumbu
Canvas->MoveTo(20, tinggi/2);
Canvas->LineTo(lebar-10,tinggi/2);
Canvas->MoveTo(20,10);
Canvas->LineTo(20,tinggi-10);
//menggambar kotak
AnsiString biner=Edit1->Text;
int l=Edit1-> MaxLength;
int y = tinggi/2;
int x = posisiX;
int a = 600/l;
int b = 100;
Canvas->Pen->Color=clRed;
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;
}
//---------------------------------------------------------------------------

E. Program

1.1Tampilan program gelombang sinus dan kotak

1.1
1.2Tampilan pen-> color

1.2 Tampilan pen->

1.3 tampilan pen->width

1.2 bentuk gelombang sinus dan kotak

1.3 bentuk gelombang kotak saat diberi input 1


saat diberi input 0

1.4 bentuk gelombang kotak

F. kesimpulan
untuk membuat gelombang sinus dan kotak digunakan looping untuk
membentuk garis dengan batas yang ditentukan. input untuk gelombang kotak
harus sama dengan jumlah maxlength yang ditentukan

DAFTAR PUSTAKA
FACHRURROZI, M. KONSEP DAN APLIKASI PEMROGRAMAN MENGGUNAKAN
BORLAND C++ BUILDER 6

Anda mungkin juga menyukai