MODUL I
MENGENAL DELPHI DAN PENGANTAR GRAFIKA
I. TUJUAN
Delphi adalah suatu program berbasis bahasa Pascal yang berjalan dalam lingkungan
Windows. Delphi juga merupakan sebuah perangkat lunak pengembangan program yang
terintegrasi, yang meliputi fungsi untuk penulisan program, kompilasi sampai dengan
pelacakan kesalahan (debugging). Delphi adalah suatu bahasa pemrograman yang telah
memanfaatkan metode pemrograman Object Oriented Programming (OOP).
Secara default elemen IDE (Integrated Development Environment) terdiri atas
beberapa bagian sebagaimana terlihat pada gambar 1.1, yaitu Menu Bar, Tool Bar,
Component Palette, Object Treeview, Object Inspector, Form Designer, dan Code Editor.
Tool Bar
Menu bar
Component
Palette
Object
TreeView
Code
Explorer
Form
Designer
Object
Inspector
Page 1
Komponen pada Delphi terdiri atas komponen visual dan komponen non visual.
Komponen visual akan ditampilkan apa adanya dalam form yang dibuat, sedangkan
komponen visual tidak terlihat pada waktu dieksukusi.
Beberapa komponen yang sering digunakan adalah:
Tabel 1.1. Tabel Komponen
Komponen
Icon
Palet
Keterangan
Label
Standar
Button
Standar
Edit
Standar
Page 2
Additional
Timer
System
OpenPictureDialog
Dialogs
Grafika komputer merupakan suatu cabang bidang ilmu yang mempelajari bagaimana
membuat gambar/grafik dan bagaimana memanipulasinya menggunakan komputer. Grafika
komputer merupakan bagian yang paling menarik di bidang ilmu komputer, karena selain
harus mengerti bahasa dan logika pemrograman juga dibutuhkan kemampuan analisis serta
pemahaman matematis.
Gafika komputer bertujuan menghasilkan citra (lebih tepat disebut grafik/picture)
dengan primitif-primitif geometri seperti garis, lingkaran, persegi, dan lain sebagainya.
Primitif-primitif geometri tersebut memerlukan data deskriptif untuk melukis elemen-elemen
gambar. Contoh data deskriptif adalah koordinat titik, panjang garis, jari-jari lingkaran, tebal
garis, dan warna.
Pada pemrograman Delphi dapat dibangun bentuk-bentuk bidang tertentu secara
langsung tanpa merangkaikan titik. Obyek canvas tetap digunakan untuk menempatkan
gambar yang akan dibuat. Selain menempatkan gambar, obyek canvas juga memiliki properti
untuk warna, ukuran garis, dan jenis font.
Kode program canvas adalah:
Canvas.Moveto(x,y) : digunakan untuk menempatkan posisi awal garis
Canvas.Lineto(x,y)
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini, dengan menambahkan objek Buton
4. Pada objek Button1 atur properti caption ganti dengan Garis.
Page 3
end.
6. Eksekusi program di atas dengan menekan tombol F9.
Praktikum 2
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini, dengan menambahkan objek Buton
4. Pada objek Button1 atur properti caption ganti dengan Garis Horizontal.
Page 4
Praktikum 3
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini, dengan menambahkan objek Buton
4. Pada objek Button1 atur properti caption ganti dengan Garis Vertikal.
Page 5
Praktikum 4
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini, dengan menambahkan objek Buton
4. Pada objek Button1 atur properti caption ganti dengan Rectangle.
Praktikum 5
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini, dengan menambahkan objek Buton
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 6
Tugas
1. Buat dan rancanglah kode program untuk menampilkan gambar seperti berikut:
a. Rumah
b. Mobil
Page 7
MODUL II
MENGGAMBAR GARIS DENGAN METODE DDA, BRESENHAM
DAN POLINOM
I. TUJUAN
1. Mahasiswa dapat membuat garis menggunakan metode DDA
2. Mahasiswa dapat membuat garis menggunakan metode Bresenham
3. Mahasiswa dapat membuat garis dengan metode polinom
II. TEORI
Algoritma DDA adalah algoritma pembentukan garis berdasarkan perhitungan x dan
y, menggunakan rumus y = m. x. Garis dibuat dengan menentukan dua endpoint yaitu titik
awal dan titik akhir. Setiap koordinat titik yang membentuk garis diperoleh dari perhitungan,
kemudian dikonversikan menjadi nilai integer.
Digital Diferensial Analyser (DDA) adalah algoritma pembentukan garis berdasarkan
perhitungan dx maupun dy, menggunakan rumus
dy = m . dx
Garis dibuat menggunakan dua endpoint, yaitu titik awal dan titik akhir. Setiap koordinat titik
yang membentuk garis diperoleh dari perhitungan, kemudian dikonversikan menjadi nilai
integer. Langkah Pembentukan Garis DDA:
a) Tentukan dua titik yang akan dihubungkan dalam pembentukan garis
b) Tentukan titik awal (x0,y0) dan titik akhir (x1,y1).
c) Hitung dx = x1- x0dan dy = y1 y0
d) Tentukan step = max( |dx| , |dy| )
e) Hitung penambahan koordinat pixel XInc = dx / step dan YInc = dy / step
f) Koordinat selanjutnya (x+XInc, y+yInc)
g) Posisi pada layar ditentukan dengan pembulatan nilai koordinat tersebut
h) Ulangi langkah f dan g untuk menentukan posisi pixel berikutnya. sampai x=x1 dan
y=y1.
Algoritma Bressenham mengembangkan algoritma klasik yang lebih menarik, karena
hanya menggunakan perhitungan matematika dengan bilangan integer. Dengan demikian
tidak perlu membulatkan nilai posisi setiap pixel setiap waktu. Algoritma garis Bressenhem
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 8
pk+1 = pk +2dy
bila tidak maka titik selanjutnya adalah (xk +1, yk +1) dan pk+1 = pk +2dy2dx.
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Label1
Properti
Nilai
Name
Form1
Caption
Algoritma Garis
Width
340
Height
135
Caption
Menggambar
Garis
Page 9
Caption
X1
Label3
Caption
Y1
Label4
Caption
X2
Label5
Caption
Y2
Label6
Caption
Xawal
Label7
Caption
Xakhir
Label8
Caption
Nilai A =
Label9
Caption
Nilai B =
Edit1
Name
edX1
Text
Kosongkan
Name
edY1
Text
Kosongkan
Name
edX2
Text
Kosongkan
Name
edY2
Text
Kosongkan
Name
edXAwal
Text
Kosongkan
Name
edXAkhir
Text
Kosongkan
Name
edA
Text
Kosongkan
Name
edB
Text
Kosongkan
Name
DDA
Caption
DDA
Name
Bresenham
Caption
Bresenham
Name
Polinom
Caption
Polinom
Name
Ulang
Caption
Ulang
Name
Keluar
Caption
Keluar
Edit2
Edit3
Edit4
Edit5
Edit6
Edit7
Edit8
Button1
Button2
Button3
Button4
Button5
Page 10
Page 11
Page 12
Praktikum 2
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Properti
Name
Nilai
Form1
Page 13
Label1
Caption
Lingkaran Polinom
Width
340
Height
135
Caption
Menggambar
Lingkaran
Caption
Radius
Edit1
Name
eR
Caption
Dikosongan
Name
Button1
Caption
8 Warna
Name
Button2
Caption
Ulang
Name
Button3
Caption
Keluar
Button1
Button2
Button3
5. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
var
x0,y0:integer;
begin
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
6. Kemudian pilih Objek Form1, pada event OnPaint klik 2x disebelah kanannya,
kemudian ketikan kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
var
k,x0,y0:integer;
begin
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
for k := 0 to ClientWidth do // sumbu x
Canvas.Pixels[k,y0]:= clBlue;
for k := 0 to ClientHeight do // sumbu y
Canvas.Pixels[x0,k]:= clRed;
end;
7. Kemudian pilih Objek Button1(8 Warna), klik 2x kemudian ketikan kode program
berikut:
procedure TForm1.Button1Click(Sender: TObject);
var
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 14
Page 15
Page 16
MODUL III
MENGGAMBAR TRANSLASI DAN ROTASI OBJEK 2D
I. TUJUAN
1. Mahasiswa dapat menggambar objek 2D
2. Mahasiswa dapat melakukan proses translasi 2D
3. Mahasiswa dapat melakukan proses Rotasi objek 2D
II. TEORI
Grafika komputer merupakan bidang yang menarik minat banyak orang. Salah sub
bagian dari grafika komputer adalah pemodelan objek (object modelling). Dalam pemodelan
objek dua dimensi (2D), didapati berbagai objek dapat dimodelkan menurut kondisi tertentu,
objek yang dimodelkan itu perlu dimodifikasi.
Pemodifikasian objek ini dapat dilakukan dengan melakukan berbagai operasi fungsi
atau operasi transformasi geometri. Contoh transformasi geometri adalah translasi,
penskalaan, putaran (rotasi), balikan, shearing dan gabungan
Transformasi translasi merupakan suatu operasi yang menyebabkan perpindahan
objek 2D dari satu tempat ke tempat yang lain. Perubahan ini berlaku dalam arah yang sejajar
dengan sumbu X dan sumbu Y. Translasi dilakukan dengan penambahan translasi pada suatu
titik koordinat dengan translation vector, yaitu (tx,ty), dimana tx adalah translasi menurut
sumbu x dan ty adalah translasi menurut sumbu y. Koordinat baru titik yang ditranslasi dapat
diperoleh dengan menggunakan rumus :
x = x + tx
y = y + ty
(x,y) = titik asal sebelum translasi
(x,y) = titik baru hasil translasi
Translasi adalah transformasi dengan bentuk yang tetap, memindahkan objek apa adanya.
Setiap titik dari objek akan ditranslasikan dengan besaran yang sama.
Penskalaan adalah suatu operasi yang membuat suatu objek berubah ukurannya baik
menjadi mengecil ataupun membesar secara seragam atau tidak seragam tergantung pada
faktor penskalaan (scalling factor) yaitu (sx,sy) yang diberikan. sx adalah faktor penskalaan
menurut sumbu x dan sy faktor penskalaan menurut sumbu y. Koordinat baru diperoleh
dengan rumus:
Page 17
dirotasi.Putaran biasa dilakukan pada satu titik terhadap sesuatu sumbu tertentu misalnya
sumbu x, sumbu y atau garis tertentu yang sejajar dengan sembarang sumbu tersebut. Titik
acuan putaran dapat sembarang baik di titik pusat atau pada titik yang lain.
Aturan dalam geometri, jika putaran dilakukan searah jarum jam, maka nilai sudutnya
adalah negatif. Sebaliknya, jika dilakukan berlawanan arah dengan arah jarum jam nilai
sudutnya adalah positif.
Rotasi dapat dinyatakan dengan:
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Page 18
Label1
Properti
Nilai
Name
Form1
Caption
Translasi Segitiga
Width
340
Height
135
Caption
Menggambara
TRANSLASI
Dasar
Label2
Caption
Nilai A
Label3
Caption
Nilai B
Edit1
Name
eNilaiA
Edit2
Name
eNilaiB
Button1
Name
Button1
Caption
Segitiga
Name
Button2
Caption
Translasi
Name
Ulang
Caption
Ulang
Name
Keluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
Button4
StringGrid1
Catatan:
Komponen StringGrid1 bisa diakses pada Tab Control Additional
pada komponen Pallete
5. Selanjutnya tekan F12 untuk berpindah ke jendela code editor dan buatlah deklarasi
konstanta dan matrik dibawah uses, sebagai berikut:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 19
Page 20
Page 21
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
16. Eksekusi program di atas dengan menekan tombol F9.
17. Coba masukan angka pada X (10,50,10) dan pada Y (10,10,50) pada tranlasi A dan B
(100,100), kemudian klik tombol segitiga dan klik tombol tranlasi.
Page 22
Praktikum 2
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Label1
Properti
Nilai
Name
Form1
Caption
Rotasi Segitiga
Width
340
Height
135
Caption
Menggambar
ROTASI
pada
Titik (0,0)
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 23
Caption
Sudut
Edit1
Name
eSudut
Button1
Name
ButtonSegitiga
Caption
Segitiga
Name
ButtonRotasi
Caption
Rotasi
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
StringGrid1
Catatan:
Komponen StringGrid1 bisa diakses pada Tab Control Additional
pada komponen Pallete
5. Selanjutnya tekan F12 untuk berpindah ke jendela code editor dan buatlah deklarasi
konstanta dan matrik dibawah uses, sebagai berikut:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
//deklarasi konstanta
Const N = 3;
//deklarasi matriks
Type
Matrik33 = array[1..3,1..3] of Real;
Matrik3N = array[1..3,1..N] of Real;
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
// lebar layar dan tinggi layar maksimum
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
7. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnPaint klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 24
Page 25
program berikut:
procedure TForm1.Button1Click(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
Canvas.MoveTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Canvas.LineTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.MoveTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.LineTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.MoveTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.LineTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
end;
13. Kemudian pilih Objek ButtonRotasi(Rotasi), klik 2x kemudian ketikan kode program
berikut:
Page 26
Page 27
MODUL IV
MENGGAMBAR SCALING DAN FLIPPING OBJEK 2D
I. TUJUAN
1. Mahasiswa dapat menggambar objek 2D
2. Mahasiswa dapat melakukan proses penskalaan 2D
3. Mahasiswa dapat melakukan proses Pencerminan objek 2D
II. TEORI
Penskalaan adalah suatu operasi yang membuat suatu objek berubah ukurannya baik
menjadi mengecil ataupun membesar secara seragam atau tidak seragam tergantung pada
faktor penskalaan (scalling factor) yaitu (sx,sy) yang diberikan. sx adalah faktor penskalaan
menurut sumbu x dan sy faktor penskalaan menurut sumbu y. Koordinat baru diperoleh
dengan rumus:
x = x * sx
y = y * sy
(x,y) = titik awal sebelum diskala
(x,y) = titik setelah diskala
Nilai lebih dari 1 menyebabkan objek diperbesar, sebaliknya bila nilai lebih kecil dari
1, maka objek akan diperkecil. Bila (sx,sy) mempunyai nilai yang sama, maka skala disebut
dengan uniform scalling.
Operasi pencerminan merupakan operasi geometri yang tidak mengalami perubahan
ukuran citra.Operasi ini hanya mengakibatkan adanya perubahan orientasi citra, baik secara
horizontal, vertikal maupun keduanya.
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Page 28
Label1
Properti
Nilai
Name
Form1
Caption
Scalling Segitiga
Width
340
Height
135
Caption
Label2
Caption
Label3
Caption
Edit1
Name
eX
Edit2
Name
eY
Button1
Name
ButtonSegitiga
Caption
Segitiga
Name
ButtonScalling
Caption
Scalling
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
StringGrid1
Catatan:
Komponen StringGrid1 bisa diakses pada Tab Control Additional
pada komponen Pallete
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 29
5. Selanjutnya tekan F12 untuk berpindah ke jendela code editor dan buatlah deklarasi
konstanta dan matrik dibawah uses, sebagai berikut:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
//deklarasi konstanta
Const N = 3;
//deklarasi matriks
Type
Matrik33 = array[1..3,1..3] of Real;
Matrik3N = array[1..3,1..N] of Real;
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
// lebar layar dan tinggi layar maksimum
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
7. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnPaint klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
var
k:integer;
begin
for k := 0 to ClientWidth do // sumbu x
Canvas.Pixels[k,y0]:= clBlue;
for k := 0 to ClientHeight do // sumbu y
Canvas.Pixels[x0,k]:= clRed;
end;
Perintah di atas akan menampilkan sumbu koordinat x yang berwarna biru dan
sumbu koordinat y yang berwarna biru secara otomatis saat form dijalankan.
Sebaiknya k berupa variable lokal.
8. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnShow klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormShow(Sender: TObject);
begin
with StringGrid1 do
begin
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 30
Page 31
program berikut:
procedure TForm1.ButtonSegitigaClick(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
Canvas.MoveTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Canvas.LineTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.MoveTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.LineTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.MoveTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.LineTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
end;
13. Kemudian pilih Objek ButtonScalling(Scalling), klik 2x kemudian ketikan kode
program berikut:
procedure TForm1.ButtonScallingClick(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
MatrikScaling2D(Sender,S,sx,sy);
MatrikKaliTransformasiObyek2D(Obyek,S);
Canvas.MoveTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Canvas.LineTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.MoveTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.LineTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.MoveTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.LineTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
end;
14. Kemudian pilih Objek ButtonKeluar(Keluar), klik 2x kemudian ketikan kode
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
Page 32
Praktikum 2
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Label1
Properti
Nilai
Name
Form1
Caption
Pencerminan Segitiga
Width
340
Height
135
Caption
Menggambar
Pencerminan
Button2
Name
ButtonSegitiga
Caption
Segitiga
Name
ButtonCerminX
Page 33
Button3
Button4
StringGrid1
Caption
Cermin X
Name
ButtonCerminY
Caption
Cermin Y
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Catatan:
Komponen StringGrid1 bisa diakses pada Tab Control Additional
pada komponen Pallete
5. Selanjutnya tekan F12 untuk berpindah ke jendela code editor dan buatlah deklarasi
konstanta dan matrik dibawah uses, sebagai berikut:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
//deklarasi konstanta
Const N = 3;
//deklarasi matriks
Type
Matrik33 = array[1..3,1..3] of Real;
Matrik3N = array[1..3,1..N] of Real;
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
// lebar layar dan tinggi layar maksimum
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
7. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnPaint klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
var
k:integer;
begin
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 34
Page 35
program berikut:
procedure TForm1.ButtonSegitigaClick(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
Canvas.MoveTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Canvas.LineTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.MoveTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.LineTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.MoveTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.LineTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
end;
13. Kemudian pilih Objek ButtonCerminX(Cermin X), klik 2x kemudian ketikan kode
program berikut:
procedure TForm1.ButtonCerminXClick(Sender: TObject);
begin
Obyek2D(Sender,Obyek);
MatrikPencerminanSumbuX(Mx);
MatrikKaliTransformasiObyek2D(Obyek,Mx);
Canvas.MoveTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Canvas.LineTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.MoveTo(trunc(X0 + Obyek[1,2]),trunc(Y0 - Obyek[2,2]));
Canvas.LineTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.MoveTo(trunc(X0 + Obyek[1,3]),trunc(Y0 - Obyek[2,3]));
Canvas.LineTo(trunc(X0 + Obyek[1,1]),trunc(Y0 - Obyek[2,1]));
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 36
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
16. Eksekusi program di atas dengan menekan tombol F9.
Praktikum 3
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 37
Properti
Nilai
Name
Form1
Caption
Shearing
Width
340
Height
135
Label1
Caption
Menggambar Shearing
Label2
Caption
Nilai A =
Label3
Caption
Nilai B =
Button1
Name
ButtonSegiempat
Caption
Segi Empat
Name
ButtonShearing
Caption
Shearing
Name
ButtonUlang
Caption
Ulang
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
Button4
StringGrid1
Catatan:
Page 38
5. Selanjutnya tekan F12 untuk berpindah ke jendela code editor dan buatlah deklarasi
konstanta dan matrik dibawah uses, sebagai berikut:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
//deklarasi konstanta
Const N = 4; {Segi empat}
//deklarasi matriks
Type
Matrik33 = array[1..3,1..3] of Real;
Matrik3N = array[1..3,1..N] of Real;
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
// lebar layar dan tinggi layar maksimum
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
7. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnPaint klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
var
k:integer;
begin
for k := 0 to ClientWidth do // sumbu x
Canvas.Pixels[k,y0]:= clBlue;
for k := 0 to ClientHeight do // sumbu y
Canvas.Pixels[x0,k]:= clRed;
end;
Perintah di atas akan menampilkan sumbu koordinat x yang berwarna biru dan
sumbu koordinat y yang berwarna biru secara otomatis saat form dijalankan.
Sebaiknya k berupa variable lokal.
8. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnShow klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormShow(Sender: TObject);
begin
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 39
Page 40
Page 41
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
16. Eksekusi program di atas dengan menekan tombol F9.
Page 42
MODUL V
MENGGAMBAR KUBUS 3D DAN TRANSLASI 3D
I. TUJUAN
1. Mahasiswa dapat menggambar objek 3D
2. Mahasiswa dapat membuat gambar kubus 3D
3. Mahasiswa dapat melakukan proses translasi 3D
II. TEORI
Perbedaan 2 dimensi dan 3 dimensi adalah kedalaman. Kedalaman didefinisikan
sebagai jarak antara viewer terhadap benda yang di lihat.Ini berarti berbeda dengan 2 dimensi
yang hanya menggunakan 2 ukuran, yaitu panjang dan lebar, maka 3 dimensi menggunakan 3
ukuran, yaitu panjang, lebar dan kedalaman. Secara geometri ketiga ukuran tersebut
disimbolkan dengan sumbu x, y, dan z.
Benda tiga dimensi disusun dari sekumpulan surface. Gambar di bawah memberikan
contoh bagaimana surface digunakan untuk menyusun benda tiga dimensi. Surface dapat
dibuat dari rangkaian Polygon.
Polygon adalah bentuk yang disusun dari serangkaian garis yang terhubung satu
dengan yang lain dan berbentuk kurva tertutup sehingga membentuk sebuah objek gambar.
Titik sudut dari Polygon disebut vertex sedangkan garis penyusun Polygon disebut edge.
Titik hasil transformasi dapat diperoleh melalui rumus dibawah ini disebut sebagai
Affine Transformation.
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 43
Untuk invers dari translasi dapat dilakuan dengan mengubah nilai vektor translasi menjadi
negatif .
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Page 44
Properti
Nilai
Name
Form1
Caption
Kubus 3D
Width
340
Height
135
Label1
Caption
Menggambar Kubus 3D
Label2
Caption
Koordinat Awal
Label3
Caption
Panjang Sisi
Edit1
Name
eX
Edit2
Name
eY
Edit3
Name
eZ
Edit4
Name
eSisi
Button1
Name
ButtonKubus
Caption
Kubus
Name
ButtonUlang
Caption
Ulang
Name
ButtonKeluar
Caption
Keluar
Button2
Button3
5. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
// lebar layar dan tinggi layar maksimum
x0 := ClientWidth div 2;
y0 := ClientHeight div 2;
end;
6. Kemudian tambahkan juga kode pada objek Form1, Klik Form1, Kemudian pilih
Objek Form1, pada event OnPaint klik 2x disebelah kanannya, kemudian ketikan
kode program berikut:
procedure TForm1.FormPaint(Sender: TObject);
var k : Integer;
begin
for k := 1 to X0 do // sumbu x
begin
X3D := X0 + k; Y3D := Y0;
Canvas.Pixels[X3D,Y3D]:= clBlue;
end;
for k := 1 to Y0 do // sumbu y
begin
X3D := X0; Y3D := Y0-k;
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 45
sumbu koordinat y yang berwarna biru secara otomatis saat form dijalankan.
Sebaiknya k berupa variable lokal.
7. Kemudian tambahkan juga kode kemudian ketikan kode program berikut:
procedure UbahKoordinat3D(var X3D,Y3D:Integer; X,Y,Z:Integer);
begin
X3D := X0 + X - Z;
Y3D := Y0 - Y + Z div 2;
end;
procedure TForm1.Garis3D(Sender: TObject; x1,y1,z1,x2,y2,z2:integer);
begin
UbahKoordinat3D(X3D1,Y3D1,x1,y1,z1);
UbahKoordinat3D(X3D2,Y3D2,x2,y2,z2);
Canvas.MoveTo(X3D1,Y3D1);
Canvas.LineTo(X3D2,Y3D2);
end;
8. Kemudian tambahkan kode program berikut dibawah type
Page 46
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
13. Eksekusi program di atas dengan menekan tombol F9.
Praktikum 2
1. Buka Program Aplikasi Delphi
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 47
Properti
Nilai
Name
Form1
Caption
Garis 3D
Width
340
Height
135
Label1
Caption
Menggambar Garis 3D
Label2
Caption
Titik Awal
Label3
Caption
Titik Akhir
Edit1
Name
eX1
Edit2
Name
eY1
Edit3
Name
eZ1
Edit4
Name
eX2
Edit5
Name
eY2
Edit6
Name
eZ2
Button1
Name
ButtonGaris
Caption
Garis
Name
ButtonUlang
Caption
Ulang
Name
ButtonKeluar
Caption
Keluar
Button2
Button3
5. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
kode program berikut:
procedure TForm1.FormCreate(Sender: TObject);
begin
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 48
sumbu koordinat y yang berwarna biru secara otomatis saat form dijalankan.
Sebaiknya k berupa variable lokal.
7. Kemudian tambahkan juga kode kemudian ketikan kode program berikut:
procedure UbahKoordinat3D(var X3D,Y3D:Integer; X,Y,Z:Integer);
begin
X3D := X0 + X - Z;
Y3D := Y0 - Y + Z div 2;
end;
procedure TForm1.Garis3D(Sender: TObject; x1,y1,z1,x2,y2,z2:integer);
begin
UbahKoordinat3D(X3D1,Y3D1,x1,y1,z1);
UbahKoordinat3D(X3D2,Y3D2,x2,y2,z2);
Canvas.MoveTo(X3D1,Y3D1);
Canvas.LineTo(X3D2,Y3D2);
end;
8. Kemudian tambahkan kode program berikut dibawah type
Page 49
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Application.Terminate;
end;
13. Eksekusi program di atas dengan menekan tombol F9.
Page 50
Praktikum 3
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Properti
Nilai
Name
Form1
Caption
Translasi 3D
Width
340
Height
135
Label1
Caption
Translasi 3D
Label2
Caption
Banyak Segi
Label3
Caption
Nilai A
Label4
Caption
Nilai b
Label5
Caption
Nilai c
Edit1
Name
eSegi
Page 51
Name
eA
Edit3
Name
eB
Edit4
Name
eC
Button1
Name
ButtonObyek
Caption
Obyek
Name
ButtonTranslasi
Caption
Translasi
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
StringGrid1
Catatan:
Komponen
diakses
StringGrid1
pada
Additional
Tab
pada
bisa
Control
komponen
Pallete
5. Kemudian tekan F12, masuk ke dalam code editor, kemudian ketikan kode program
berikut dibawah uses:
Type
Matrik44 = array[1..4,1..4] of Real;
Matrik4N = array[1..4,1..20] of Real; {N = 20 untuk antisipasi segi banyak}
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
Page 52
Page 53
Page 54
program berikut:
procedure TForm1.ButtonObyekClick(Sender: TObject);
begin
MatrikObyek3D(Sender,Obyek3D);
GambarObyek3D(Sender,Obyek3D);
end;
12. Kemudian pilih eSegi(), klik 2x kemudian ketikan kode program berikut:
procedure TForm1.eSegiChange(Sender: TObject);
begin
if eSegi.Text='' then
begin
eSegi.SetFocus;
StringGrid1.ColCount:=2;
StringGrid1.RowCount:=3;
end
else
begin
n:=StrToInt(eSegi.Text);
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=3;
end;
end;
13. Kemudian pilih Objek ButtonTranslasi(Translasi), klik 2x kemudian ketikan kode
program berikut:
procedure TForm1.ButtonTranslasiClick(Sender: TObject);
begin
a := StrToFloat(eA.Text);
b := StrToFloat(eB.Text);
c := StrToFloat(eC.Text);
MatrikObyek3D(Sender,Obyek3D);
MatrikTranslasi3D(Tv3,a,b,c);
MatrikKaliTransformasiObyek3D(Obyek3D,Tv3);
GambarObyek3D(Sender,Obyek3D);
end;
14. Kemudian pilih Objek ButtonKeluar(Keluar), klik 2x
program berikut:
procedure TForm1.KeluarClick(Sender: TObject);
begin
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 55
Page 56
MODUL VI
MENGGAMBAR ROTASI 3D DAN SCALLING 3D
I. TUJUAN
1. Mahasiswa dapat menggambar objek 3D
2. Mahasiswa dapat membuat rotasi obyek 3D
3. Mahasiswa dapat melakukan proses scalling 3D
II. TEORI
Berbeda dengan rotasi 2 dimensi yang menggunakan titik pusat (0,0)sebagai pusat
perputaran, rotasi 3 dimensi menggunakan sumbu koordinat sebagai pusat perputaran.
Dengan demikian ada 3 macam rotasi yang dapat dilakukan, yaitu:
Rotasi sumbu x
Rotasi sumbu y
Rotasi sumbu z
Mengingat ada 3 buah sumbu rotasi maka matriks transformasi yang digunakan juga
bergantung kepada sumbu putar. Adapun isi matriks transformasi sesuai dengan sumbu putar
didefinisikan sebagai berikut :
Page 57
Praktikum 1
1. Buka Program Aplikasi Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah Form seperti gambar dibawah ini
Properti
Nilai
Name
Form1
Caption
Rotasi 3D
Width
340
Height
135
Label1
Caption
Rotasi 3D
Label2
Caption
Banyak Segi
Page 58
Caption
Sudut
Edit1
Name
eSegi
Edit2
Name
eSudut
Button1
Name
ButtonRotasi
Caption
Rotasi
Name
ButtonObyek
Caption
Obyek
Name
ButtonKeluar
Caption
Keluar
Name
StringGrid1
FixedCol
Fixed Row
RowCount
ColCount
Options goEditing
True
Button2
Button3
StringGrid1
Catatan:
Komponen
diakses
StringGrid1
pada
Additional
Tab
pada
bisa
Control
komponen
Pallete
5. Kemudian tekan F12, masuk ke dalam code editor, kemudian ketikan kode program
berikut dibawah uses:
Type
Matrik44 = array[1..4,1..4] of Real;
Matrik4N = array[1..4,1..20] of Real; {N = 20 untuk antisipasi segi banyak}
6. Kemudian pilih Objek Form1, klik 2x pada form yang kosong, kemudian ketikan
Page 59
Page 60
Page 61
program berikut:
procedure TForm1.ButtonObyekClick(Sender: TObject);
begin
MatrikObyek3D(Sender,Obyek3D);
GambarObyek3D(Sender,Obyek3D);
end;
12. Kemudian pilih eSegi(), klik 2x kemudian ketikan kode program berikut:
procedure TForm1.eSegiChange(Sender: TObject);
begin
if eSegi.Text='' then
begin
eSegi.SetFocus;
StringGrid1.ColCount:=2;
StringGrid1.RowCount:=3;
end
else
begin
n:=StrToInt(eSegi.Text);
StringGrid1.ColCount:=N+1;
StringGrid1.RowCount:=3;
end;
end;
13. Kemudian pilih Objek ButtonRotasi(Rotasi), klik 2x kemudian ketikan kode program
berikut:
procedure TForm1.ButtonRotasiClick(Sender: TObject);
begin
sudut:=StrToFloat(eSudut.Text);
MatrikObyek3D(Sender,Obyek3D);
MatrikRotasiSumbuZ(R3,sudut);
MatrikKaliTransformasiObyek3D(Obyek3D,R3);
Canvas.Pen.Color := clGreen;
GambarObyek3D(Sender,Obyek3D);
end;
14. Kemudian pilih Objek ButtonKeluar(Keluar), klik 2x
program berikut:
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 62
Page 63
MODUL VII
MENGGAMBAR CHART
I. TUJUAN
1. Mahasiswa dapat menggambar objek CHART
2. Mahasiswa dapat memilih CHART
II. TEORI
Chart adalah bagan grafik yang digunakan unuk mempresentasikan suatu data ke
dalam suatu bentuk yang lebih menarik. Tujuan dibuatnya Chart adalah untuk mempermudah
membaca sekumpulan data.
Perancangan program untuk penggambaran Chart Animasi dapat dilakukan dengan
langkah-langkah seperti di bawah ini.
Praktikum 01
1. Jalankan Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Setelah muncul Form baru pada halaman Delphi, maka tambahkan icon Button1,
Button2, DBCHart, dan Timer pada halaman Form1.
Button1
Properti
Nilai
Name
Form1
Caption
Chart
Name
Button1
Caption
&About
Page 64
Timer
Name
Button2
Caption
&Close
Interval
100
6. Perhatikan pada bagian Form Editing DBChart1, klik 1x pada button Add, sehingga
muncul tampilan.
7. Klik pada icon Line dan kemudian klik OK, sehingga akan muncul tampilan.
Page 65
11. Lalu pada Axis klik PageControl Title, sehingga muncul tampilan
Page 66
Page 67
Page 68
MODUL VIII
MEMBUAT GRAFIK ANIMASI
I. TUJUAN
1. Mahasiswa dapat menggambar objek Animasi
2. Mahasiswa dapat membuat program sederhana
II. TEORI
Animasi yang akan dibuat pada bab ini adalah sebuah animasi pergerakan bola yang
memantul dari atas sampai ke bawah. Perancangan program untuk animasi bola pantul dapat
dilakukan dengan langkah seperti di bawah ini:
Praktikum 01
1. Jalankan Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Setelah muncul Form baru pada halaman Delphi, maka tambahkan icon Button1,
Button2, Button3, ScrollBar1, ScrollBar2, Label1, Label2, Panel, dan Timer
Page 69
Page 70
if Kanan then
begin
Bola.Left := Bola.Left+1;
if Bola.Left + Bola.Width >= Panel1.ClientWidth then
begin
Kanan := False;
Bola.Brush.Color :=clblue;
end
end
else
Begin
Bola.Left :=Bola.left -1;
if Bola.Left <= 0 then
Begin
Kanan := True;
Bola.Brush.Color:=clgreen;
end
end;
Tito Sugiharto, M.Eng - Universitas Kuningan 2015
Page 71
Page 72
MODUL IX
MEMBUAT GRAFIK ANIMASI
I. TUJUAN
1. Mahasiswa dapat menggambar objek Animasi
2. Mahasiswa dapat membuat program sederhana
II. TEORI
Animasi yang akan dibuat pada bab ini adalah sebuah animasi pergerakan objek mobil
yang bergerak dari atas kiri ke kanan. Perancangan program untuk animasi mobil dapat
dilakukan dengan langkah seperti di bawah ini:
Praktikum 01
1. Jalankan Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Buatlah sebuah gambar jalan.Bmp dengan paint.
Page 73
Page 74
Page 75
MODUL X
MEMBUAT GRAFIK ANIMASI SOLAR SYSTEM
I. TUJUAN
1. Mahasiswa dapat menggambar objek Animasi
2. Mahasiswa dapat membuat program sederhana
II. TEORI
Animasi yang akan dibuat pada bab ini adalah sebuah animasi pergerakan objek
planer berputar. Perancangan program untuk animasi planet berputar dapat dilakukan dengan
langkah seperti di bawah ini:
Praktikum 01
1. Jalankan Delphi
2. Untuk memulai Proyek baru pilih Menu File New Application
3. Rancanglah tampilan Form seperti gambar di bawah ini
Page 76
Page 77