Makalah Grafik Komputer Yoga Finish
-
Upload
yoga-nurzaman -
Category
Documents
-
view
4.263 -
download
11
description
Transcript of Makalah Grafik Komputer Yoga Finish
Design By My _NZ
GRAFIK TRANSFORMASI DENGAN MENGGUNAKAN
FREE PASCAL DAN COREL DRAW X4
Diajukan untuk memenuhi tugas Mata Kuliah Grafik Komputer
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI GARUT
GRAFIK TRANSFORMASI DENGAN MENGGUNAKAN
FREE PASCAL DAN COREL DRAW X4
Diajukan untuk memenuhi tugas Mata Kuliah Grafik Komputer
DISUSUN OLEH:
Yoga Nurjaman
0806089-T.INF
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI GARUT
2010
Page 1
GRAFIK TRANSFORMASI DENGAN MENGGUNAKAN
Diajukan untuk memenuhi tugas Mata Kuliah Grafik Komputer
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI GARUT
Design By My _NZ Page 2
KATA PENGANTAR
Segala puji hanya bagi Allah Tuhan semesta alam, serta syukur Saya
panjatkan kehadirat ilahi rabbi yang telah memberikan nikmat yang hakiki dalam
kehidupan yaitu nikmat Iman dan Islam. Shalawat serta salam semoga tetap
tercurah limpahkan kepada nabi kita nabi Muhammad SAW. Berkat rahmat dan
hidayahnya lah saya dapat menyusun makalah yang berjudul “GRAFIK
TRANSFORMASI DENGAN MENGGUNAKAN FREE PASCAL DAN
COREL DRAW X4”ini.
Pada kesempatan ini saya sampaikan ucapkan terima kasih kepada pihak -
pihak yang telah banyak membantu saya dalam penyelesaian makalah ini,
kepada :
1. Alloh SWT.
2. Kedua orang tuaku
3. Dosen Pembimbing Bpk. Asep Deddy S.M.kom.
4. Teman - teman saya yang senantiasa memberikan motifasi serta kritik dan
sarannya .
Garut, Maret 2010
My_NZ
Design By My _NZ Page 3
BAB I
PENDAHULUAN
1.1 Latar Belakang
Definisi - definisi Grafik Komputer
Pertama : Proses untuk menciptakan suatu gambar berdasarkan deskripsi
obyek maupun latar belakang yang terkandung pada gambar tersebut.
Kedua : Teknik untuk membuat gambar obyek sesuai dengan obyek tersebut
di alam nyata (realism).
Kemajuan teknologi pada saat ini memungkinkan manusia untuk tidak
menggambar menggunakan media kertas. Dengan adanya kebutuhan manusia
yang semakin meningkat dan keinginan untuk mendapatkan sebuah hasil yang
lebih bagus dan cepat, maka dibuat berbagai program aplikasi untuk dapat
memungkinkan manusia menggambar melalui media komputer.
Namun, tidak hanya program aplikasi yang dikhususkan untuk
menggambar grafik saja yang dapat menggambar grafik. Akan tetapi bahasa
pemrogramanpun dapat melakukan proses menggambar grafik, salah satunya
yaitu Turbo pascal, C dan yang lainnya.
1.2 Identifikasi Masalah
Identifikasi masalah tentang menggambar grafik menggunakan program
aplikasi grafik dan bahasa pemrograman, diantaranya sebagai berikut:
1. Konsep dasar menggambar Trasnformasi 2D grafik didalam komputer
2. Fasilitas yang digunakan untuk menggambar grafik
3. Perbandingan antara program aplikasi grafik dengan bahasa pemrograman
1.3 Tujuan
1. Mendeskripsikan pengertian, kegunaan,dan ruang lingkup
Transformasi didalam grafik komputer .
2. Mengkaji beberapa pembuatan grafik menggunakan bahasa pemrograman
menggunakan bahasa aplikasi dan bahasa pemrograman.
Design By My _NZ Page 4
3. Menganalisis program dengan membuat Algoritma program dan
mentranslasikannya kedalam bahasa pemrogrman dan bahasa aplikasi.
4. Mengevaluasi makalah ini yang terangkum dalam ringkasan kesimpulan.
1.4 Batasan Masalah
Makalah ini hanya akan membahas antara lain tentang :
1. Konsep dasar menggambar Transformasi 2D grafik didalam komputer dan
mentransaliskannya.
2. Fasilitas yang digunakan untuk menggambar grafik didalam bahasa
pemrograman ialah Turbo Pascal dan Corel draw.
1.5 Sistematika Penulisan
Agar makalah dipahami dengan baik oleh pembaca, maka penyusun
membuat sistematika penulisan makalah sebagai berikut :
BAB I PENDAHULUAN
Pendahuluan berisikan latar belakang, identifikasi masalah,
pembatasan masalah, Tujuan dibuatnya makalah dan sistematika
penulisan makalah.
BAB II LANDASAN TEORI
Landasan teori berisikan teori-teori yang digunakan didalam
makalah.
BAB III FLOW CHART SYSTEM
Menganalisis program dengan menggunakan flow chart system
pada penggunaan program
BAB IV KESIMPULAN DAN SARAN
Kesimpulan dan saran merupakan bab terakhir yang berisikan
tentang kesimpulan dari pembahasan serta pengajuan usulan atau
saran-saran.
Design By My _NZ Page 5
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI .........................................................................................................
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah .............................................................
1.2 Identifikasi Masalah ...................................................................
1.3 Tujuan Pembuatan Makalah .......................................................
1.4 Batasan Masalah .........................................................................
1.5 Sistematika Penulisan ................................................................
BAB II LANDASAN TEORI
2.1 Translasi .....................................................................................
2.2 Skala(Scaling) …………... .........................................................
2.3 Rotasi …………... ......................................................................
2.5 Algoritma Program ………….....................................................
2.6 Transformasi dengan menggunakan Corel X4 …………............
BAB III FLOW CHART SYSTEM
3.1 Flow chart system pascal ...........................................................
3.2 flow chart system corel draw X4 ................................................
DAFTAR PUSTAKA
Design By My _NZ Page 6
BAB II
LANDASAN TEORI
TRANSFORMASI 2D
2.1 Translasi
Definisi TranslasiPertama : Translasi adalah suatu pergerakan/perpindahan semua titik dari
objek pada suatu jalur lurus sehingga menempati posisi baru.
Kedua : Jalur yang direpresentasikan oleh vektor disebut Translasi atau Vektor Geser.
Translasi dilakukan dengan penambahan translasi pada suatu titik
koordinat dengan translation vector atau shift vector, yaitu(tx, ty). Koordinat baru
titik yang ditranslasi dapat diperoleh dengan menggunakan rumus
x’ = x +tx
y’ = y+ty
Jika secara Matriks dapat ditulis :
a bc d xy = x′y′
Design By My _NZ Page 7
Contoh pendekatan secara matematis :
Contoh Program Hasil Translasi:
Printscreen
Design By My _NZ Page 8
Listing Program Translasi
procedure translasi jadi;
type poligon=array[1..13]of pointtype;
mat=array[1..3,1..3]of real;
vek=array[1..3]of reaL;
const swiss:poligon
=((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140),
(x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340),
(x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));
var
DriverGrafis,ModeGrafis:integer;
swiss1,swiss2,swiss3:poligon;
vekhasil:vek;
I:integer;
procedure geser(var mt:mat; tx,ty:integer);
begin
MT[1,1]:=1; MT[1,2]:=0; MT[1,3]:=0;
MT[2,1]:=0; MT[2,2]:=1; MT[2,3]:=0;
MT[3,1]:=tx; MT[3,2]:=ty; MT[3,3]:=1;
end;
procedure perkalianvektor(var vekh,veka: vek;mata: mat);
var i,j:byte;
begin
for i :=1 to 3 do
begin
vekh[i]:=0;
for j :=1 to 3 do
vekh[i] := vekh[i] + veka[j] * mata[j,i];
end;
end;
Design By My _NZ Page 9
{Geser}
procedure ProsesGambar(tx,ty : integer);
var I,J : byte;
VekHasil,VekTitik : Vek; MatTrans : Mat;
begin
Geser(MatTrans,tx,ty);
for I := 1 to 13 do
begin
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss2[I].X := round(VekHasil [1]);
swiss2[I].Y := round(VekHasil [2]);
{*Membentuk koordinat homogen *}
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss3[I].X := round(VekHasil[1]);
swiss3[I].Y := round(VekHasil[2]);
end;
end;
2.2 Skala (Scaling)
Transformasi skala adalah perubahan ukuran suatu objek. Koordinat baru
diperoleh dengan melakukan perkalian koordinat dengan scaling factor,
yaitu(sx,sy) dimana sx adalh scaling facor untuk sumbu x dam sy adalah scaling
factor untuk sumbu y. koordinat baru titik yang diskala dapat diperoleh dengan:
Design By My _NZ Page 10
x’ = x.sx
y’= y.sy
Scaling factor sx dan sy dapat diberikan sembarang nilai positif. Nilai
lebih dari 1 menandakan bahwa sebuah objek diperbesar sedang nilai nilai
kurang dari 1 menunjukkan bahwa objek diperkecil.
Atau dalam bentuk operasi dan matriks :
Operasi Skala : ′′
= Bentuk Matriks : ′
′= 00
Contoh pendekatan secara matematis :
Design By My _NZ Page 11
Contoh Program Hasil Skala:
Printscreen
Listing Program Skala
procedure skalajadi;
type poligon=array[1..13]of pointtype;
mat=array[1..3,1..3]of real;
vek=array[1..3]of reaL;
const swiss:poligon
=((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140),
(x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340),
(x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));
var
DriverGrafis,ModeGrafis:integer;
swiss1,swiss2,swiss3:poligon;
vekhasil:vek;
Design By My _NZ Page 12
I:integer;
procedure skala(var MS:mat; sx,sy:real);
begin
MS[1,1]:=sx; MS[1,2]:=0; MS[1,3]:=0;
MS[2,1]:=0; MS[2,2]:=sy; MS[2,3]:=0;
MS[3,1]:=0; MS[3,2]:=0; MS[3,3]:=1;
end;
procedure perkalianvektor(var vekh,veka: vek;mata: mat);
var i,j:byte;
begin
for i :=1 to 3 do
begin
vekh[i]:=0;
for j :=1 to 3 do
vekh[i] := vekh[i] + veka[j] * mata[j,i];
end;
end;
{Skala}
procedure ProsesGambar(sx,sy : real);
var I,J : byte;
VekHasil,VekTitik : Vek; MatTrans : Mat;
begin
skala(MatTrans,sx,sy);
for I := 1 to 13 do
begin
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss2[I].X := round(VekHasil [1]);
Design By My _NZ Page 13
swiss2[I].Y := round(VekHasil [2]);
{*Membentuk koordinat homogen *}
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss3[I].X := round(VekHasil[1]);
swiss3[I].Y := round(VekHasil[2]);
end;
end;
2.3 Rotasi
Rotasi dua dimensi memindahkan sebuah objek menurut garis melingkar.
Untuk melakukan rotasi diperlukan sudut rotasi a’ dan pivot point(xp,yp). Nilai
positif dari sudut rotasi menentukan arah rotasi berlawanana dengan arah jarum
jam. Sedangkan sudut rotasi negative memutar objek searah dengan jarum jam.
Rumus transformasi untuk rotasi suatu titik(x,y) dengan sudut rotasi a
sebagai berikut:
x’= x cos ay sin a
y’= y sina+y cos a
Untuk memudahkan perhitungan dapat digunakan dengan Matriks :
xy = Cos (ѳ) −Sin (ѳ)Sin (ѳ) Cos (ѳ) xy– sin(θ) dan cos(θ) adalah fungsi linier dari θ,
– x’kombinasi linier dari x dan y
– y’kombinasi linier dari x and yx
Design By My _NZ Page 14
Contoh pendekatan secara matematis :
Contoh Program Hasil Rotasi:
Printscreen
Design By My _NZ Page 15
Listing Program Rotasi
procedure rotasijadi;
type poligon=array[1..13]of pointtype;
mat=array[1..3,1..3]of real;
vek=array[1..3]of reaL;
const swiss:poligon
=((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140),
(x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340),
(x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));
var
DriverGrafis,ModeGrafis:integer;
swiss1,swiss2,swiss3:poligon;
vekhasil:vek;
I:integer;
procedure rotasi(var MR:mat; theta:real);
begin
theta:= theta * pi / 180;
MR[1,1]:=cos(theta); MR[1,2]:=sin(theta); MR[1,3]:=0;
MR[2,1]:=-sin(theta); MR[2,2]:=cos(theta); MR[2,3]:=0;
MR[3,1]:=0; MR[3,2]:=0; MR[3,3]:=1;
end;
procedure perkalianvektor(var vekh,veka: vek;mata: mat);
var i,j:byte;
begin
for i :=1 to 3 do
begin
vekh[i]:=0;
for j :=1 to 3 do
vekh[i] := vekh[i] + veka[j] * mata[j,i];
end;
end;
Design By My _NZ Page 16
{Rotasi}
procedure ProsesGambar(theta : real);
var I,J : byte;
VekHasil,VekTitik : Vek; MatTrans : Mat;
begin
Rotasi(MatTrans,theta);
for I := 1 to 13 do
begin
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss2[I].X := round(VekHasil [1]);
swiss2[I].Y := round(VekHasil [2]);
{*Membentuk koordinat homogen *}
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss3[I].X := round(VekHasil[1]);
swiss3[I].Y := round(VekHasil[2]);
end;
end;
Design By My _NZ Page 17
2.4 Algoritma progamnya
Deskripsidrivergrafis,modegrafis,i:integer;
DekralasiDrivergrafis ← detect;initgraph(modegrafis,drivergrafis);Prosedur rotasi;Begintype poligon=array[1..13]of pointtype; mat=array[1..3,1..3]of real; vek=array[1..3]of reaL;
const swiss:poligon =((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140), (x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340), (x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));{Rotasi}DeklarasiI,J : byte; VekHasil,VekTitik : Vek; MatTrans : Mat;DeskripsiBegin Rotasi(MatTrans,theta); for I := 1 to 13 do begin VekTitik[1] := swiss[I].X; VekTitik[2] := swiss[I].Y; VekTitik[3] := 1; PerkalianVektor(VekHasil,VekTitik,MatTrans); swiss2[I].X := round(VekHasil [1]); swiss2[I].Y := round(VekHasil [2]); {*Membentuk koordinat homogen *} VekTitik[1] := swiss[I].X; VekTitik[2] := swiss[I].Y; VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans); swiss3[I].X := round(VekHasil[1]);
Design By My _NZ Page 18
swiss3[I].Y := round(VekHasil[2]); drawPoly(13, swiss);drawPoly(13, swiss1);ProsesGambar(15);drawpoly(13,swiss2);drawpoly(13,swiss3);end;
Prosedur skala;
Begin
type poligon=array[1..13]of pointtype;
mat=array[1..3,1..3]of real;
vek=array[1..3]of reaL;
const swiss:poligon
=((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140),
(x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340),
(x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));
{Skala}
Deklarasi
sx,sy : real;
I,J : byte;
VekHasil,VekTitik : Vek;
MatTrans : Mat;
begin
skala(MatTrans,sx,sy);
for I := 1 to 13 do
begin
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss2[I].X := round(VekHasil [1]);
swiss2[I].Y := round(VekHasil [2]);
Design By My _NZ Page 19
{*Membentuk koordinat homogen *}
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss3[I].X := round(VekHasil[1]);
swiss3[I].Y := round(VekHasil[2]);
drawPoly(13, swiss);
drawPoly(13, swiss1);
ProsesGambar(2,3);
drawpoly(13,swiss2);
drawpoly(13,swiss3);
end;
Prosedur translasi;
Begin
type poligon=array[1..13]of pointtype;
mat=array[1..3,1..3]of real;
vek=array[1..3]of reaL;
const swiss:poligon
=((x:220;y:340),(x:280;y:240),(x:400;y:240),(x:460;y:140),
(x:400;y:40),(x:340;y:140),(x:400;y:240),(x:460;y:340),(x:580;y:340),
(x:520;y:240),(x:400;y:240),(x:340;y:340),(x:220;y:340));
procedure perkalianvektor(var vekh,veka: vek;mata: mat);
i,j:byte;
begin
for i :=1 to 3 do
begin
vekh[i]:=0;
for j :=1 to 3 do
vekh[i] := vekh[i] + veka[j] * mata[j,i];
end;
Design By My _NZ Page 20
{Translasi}
Deklarasi
tx,ty : integer;
I,J : byte;
VekHasil,VekTitik : Vek;
MatTrans : Mat;
begin
Translasi(MatTrans,tx,ty);
for I := 1 to 13 do
begin
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss2[I].X := round(VekHasil [1]);
swiss2[I].Y := round(VekHasil [2]);
{*Membentuk koordinat homogen *}
VekTitik[1] := swiss[I].X;
VekTitik[2] := swiss[I].Y;
VekTitik[3] := 1;
PerkalianVektor(VekHasil,VekTitik,MatTrans);
swiss3[I].X := round(VekHasil[1]);
swiss3[I].Y := round(VekHasil[2]);
drawPoly(13, swiss);
drawPoly(13, swiss1);
ProsesGambar(100,120);
drawpoly(13,swiss2);
drawpoly(13,swiss3);
closegraph;end.
Design By My _NZ Page 21
2.5 Transformasi dengan menggunakan Corel X4
2.5.1 Translasi
Print Screennya:
2.5.2 Skala (Scaling)
Print Screennya:
Design By My _NZ Page 22
2.5.3 Rotasi
Print Screennya:
Dari hasil diatas dapat dibedakan antara menggunakan bahasa
pemrograman dengan program aplikasi.
Design By My _NZ Page 23
BAB III
Flow Chart System
Dari Program diatas saya sajikan kedalam flow chart system dari masing –
masing program, baik bahasa pemrograman pascal maupun corel draw x4.
Sebagai berikut :
3.1 Flow chart system Pascal
Start
End
Klik Start Pd Tekbar
Klik All Program
Klik Free Pascal
Hasil Pembuatan
Pembuatan Transformasi
Design By My _NZ Page 24
3.2 Flow chart system Corel Draw X4
Start
End
Klik Start Menu
Klik All Program
Klik Corel draw X4
Hasil Pembuatan
Pembuatan Transformasi 2D
Design By My _NZ Page 25
BAB IV
KESIMPULAN DAN SARAN
4.1 Kesimpulan
Dari pembahasan dapat diambil kesimpulan sebagai berikut :
1. Didalam pembuatan grafik di jaman serba teknologi ini kita bebas
menentukan alat apa yang akan kita pakai, dan untuk memahami
secara mendalam transformasi didalam grafik komputer sangatlah
penting menguasai ilmu matematik.
2. Perbandingan hasil pembuatan program dengan menggunakan
bahasa programan lebih sulit dan berbeda jauh dari segi tampilan,
maupun tata cara pembuatannya dibandingkan dengan program
aplikasi yang menerapkan system just click (event driven).
4.2 Saran
Setelah melihat uraian di atas, penyusun mempunyai saran.
1. Terlebih dahulu harus belajar algoritma, karena algorima adalah salah
satu kunci untuk dapat memahami permasalahan yang akan dihadapi
didalam pembuatan grafik komputer.
2. Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi
yang lebih bagus menurut anda, lebih kompleks, dan yang khusus
menangani pembuatan gambar/grafik serta yang mengikuti
perkembangan jaman .
3. Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa
pemrograman ) yang terdapat dalam bahasa pemrograman ataupun
fitur – fitur yang terdapat didalam program aplikasi.
Design By My _NZ Page 26
BIOGRAFI PENYUSUN MAKALAH
Nama : Yoga nurjaman
Alamat : Jl.Gadog kampung Cikapunduhan 02/04
Ds.Sirnajaya Kec.pasirwangi Kabupaten
Garut
Curiculum vitae : - SD Sirnajaya I&III
- SMPN 1 Pasirwangi
- SMAN 3 Tarogong Kidul/ SMAN 15 Garut
(IPA)
- STT GARUT (Teknik Informatika S1)
E - Mail : [email protected]
Web/Blog : http://www.yoganurjaman.blogspot.com
Facebook :Yoga nurzaman/ di Email [email protected]