0% menganggap dokumen ini bermanfaat (0 suara)
31 tayangan15 halaman

Laprak M5.melani Ti21b

Laporan ini membahas praktikum modul V yang meliputi: 1. Penjelasan komponen StringGrid dan transformasi vektor dan faktor skala 2. Praktikum membuat program translasi objek 2D berbentuk segitiga 3. Soal post-test membuat program translasi objek 2D berbentuk persegi

Diunggah oleh

melani agustiasari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
31 tayangan15 halaman

Laprak M5.melani Ti21b

Laporan ini membahas praktikum modul V yang meliputi: 1. Penjelasan komponen StringGrid dan transformasi vektor dan faktor skala 2. Praktikum membuat program translasi objek 2D berbentuk segitiga 3. Soal post-test membuat program translasi objek 2D berbentuk persegi

Diunggah oleh

melani agustiasari
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

LAPORAN PRAKTIKUM

MODUL V

“Laporan ini dibuat untuk memenuhi tugas mata kuliah “Praktikum Grafika Komputer” yang
diampu oleh Bapak Rio Priantama, M.Kom”

Disusun oleh :

Nama : Melani Agustia Sari


NIM : 20210810079
Kelas : TINFC-2021-02

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER

UNIVERSITAS KUNINGAN

2023
TRANSLASI OBJEK 2D

A. Pree Test
1. Sebutkan dan Jelaskan kegunaan komponen StringGrid!
Jawab :
StringGrid adalah komponen visual dalam pengembangan perangkat lunak
menggunakan berbagai bahasa pemrograman, terutama dalam lingkungan
pengembangan perangkat lunak berbasis Windows. Di bawah ini adalah beberapa
komponen penting dari StringGrid beserta kegunaannya:
 Cells:
Kegunaan: Cells adalah elemen utama dalam StringGrid. Setiap sel dalam grid
berfungsi sebagai wadah untuk menampilkan atau menyimpan data. Anda dapat
mengakses dan memanipulasi nilai dalam setiap sel menggunakan indeks baris
dan kolom.
 ColCount dan RowCount:
Kegunaan: Properti ColCount menentukan jumlah kolom dalam StringGrid,
sedangkan RowCount menentukan jumlah baris. Dengan mengatur nilai-nilai ini,
Anda dapat menentukan ukuran grid sesuai dengan kebutuhan aplikasi Anda.
 FixedCols dan FixedRows:
Kegunaan: Properti FixedCols dan FixedRows menentukan jumlah kolom dan
baris tetap yang tidak dapat digulir. Ini berguna untuk menyimpan judul atau
informasi yang ingin tetap terlihat saat pengguna menggulir melalui data.
 Options:
Kegunaan: Properti Options mengandung serangkaian opsi yang dapat
dikonfigurasi untuk mengubah perilaku StringGrid. Misalnya, goEditing
memungkinkan pengeditan langsung di dalam sel, goRangeSelect memungkinkan
pemilihan sel dalam jangkauan, dan lain sebagainya.
 RowHeights dan ColWidths:
Kegunaan: Properti ini memungkinkan Anda untuk menentukan tinggi baris dan
lebar kolom secara individual. Ini berguna jika Anda ingin menyesuaikan tata
letak grid sesuai dengan kebutuhan tampilan.

1
 OnSelectCell:
Kegunaan: Event ini terjadi saat pengguna memilih sebuah sel. Anda dapat
menggunakan event ini untuk menanggapi pemilihan sel tertentu dan
menjalankan kode khusus.
 OnDrawCell:
Kegunaan: Event ini memungkinkan Anda untuk menggambar ulang atau
menyesuaikan tampilan setiap sel secara individual. Dengan event ini, Anda dapat
mengkustomisasi penampilan grid sesuai kebutuhan desain.
 Sorting:
Kegunaan: Beberapa implementasi StringGrid mendukung pengurutan data
secara otomatis berdasarkan kolom tertentu. Ini sangat berguna ketika Anda
bekerja dengan data yang perlu diurutkan untuk memudahkan analisis.

2. Jelaskan yannnng dimaksud dengan Translation vector dan Scalling factor!


Jawab :
 Translation Vector (Vektor Translasi):
Definisi: Translation vector, atau vektor translasi, adalah vektor yang menyatakan
perpindahan atau pergeseran suatu objek dari satu lokasi ke lokasi lain dalam
ruang. Dengan kata lain, vektor ini menentukan seberapa jauh dan ke arah mana
suatu objek bergerak.
 Scaling Factor (Faktor Skala):
Definisi: Scaling factor, atau faktor skala, mengacu pada nilai yang menentukan
seberapa besar atau seberapa kecil suatu objek akan diperbesar atau diperkecil.
Faktor skala dapat berbeda untuk setiap sumbu (x dan y) atau dapat sama untuk
kedua sumbu.

2
B. Praktikum
Praktikum 1
1. Rancangan form1 seperti dibawah ini :

3
2. Selanjutnya pindah ke jendela Editor dan buatlah deklarasi konstanta dan matrik
dibawah uses, sebagai berikut :

3. Kemudian pilih objek form1, klik 2x pada form yang kosong, kemudian ketika kode
program berikut :

4. Kemudian tambahkan juga kode pada objek form1, klik form1, kemudian pilih objek
form1, pada event OnPaint klik 2x disebelah kananya, kemudian ketika kode
program berikut :

5. Kemudian tambahkan juga kode pada objek form1, klik form1, kemudian pilih objek
form1, pada event OnShow klik 2x disebelah kananya, kemudian ketika kode
program berikut :

4
6. Kemudian ketikan kode program berikut dibawah kode program FormShow:

7. Kemudian tambahkan kode program berikut dibawah type :

5
8. Kemudian tambahkan juga kode program berikut dibawah var:

9. Kemudian pilih Obyek Button1(Segitiga), klik 2x kemudian ketikan kode program


berikut :

10. Kemudian pilih Obyek Button2(Translasi), klik 2x kemudian ketikan kode program
berikut :

11. Kemudian pilih Obyek Button3(Ulang), klik 2x kemudian ketikan kode program
berikut :

6
12. Kemudian pilih Obyek Button4(Keluar), klik 2x kemudian ketikan kode program
berikut :

13. Jalankan Program, Maka Hasilnya sebagai berikut :

7
C. Post Test
1. Buatlah sebuah form 2 yang berisi program untuk membuat objek 2D bentuk
segiempat dan bisa melakukan translasi
Jawab :
Tampilan Awal

Script Program :

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, Grids, StdCtrls;
Const N = 4;

type
Matrik33 = array[1..3,1..3] of Real; Matrik3N = array[1..3,1..N] of Real;
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
eNilaiA: TEdit;

8
eNilaiB: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
StringGrid1: TStringGrid;
procedure FormPaint(Sender: TObject);
procedure FormShow(Sender: TObject);

procedure Obyek2D(Sender: TObject; var Obyek:Matrik3N);


procedure MatrikTranslasi2D(Sender: TObject; var Tv : Matrik33; a,b :
real);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
X0,y0:integer; Obyek: Matrik3N; Tv : Matrik33; a,b : real;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);


begin
x0 := Clientwidth div 2;
y0 := ClientHeight div 2;
9
end;

procedure TForm1.FormPaint(Sender: TObject);


var k:integer;
begin
//sumbu x
for k := 0 to ClientWidth do
Canvas.Pixels[k,y0] := clred;
//sumbu y
for k := 0 to ClientHeight do
Canvas.Pixels[x0, k] := clBlue;
end;

procedure TForm1.FormShow(Sender: TObject);


begin
with StringGrid1 do
begin
Cells[0,0] := 'X'; Cells[0,1]:='Y';
end;
end;

procedure TForm1.Obyek2D(Sender: TObject; var Obyek:Matrik3N);


var i,j : integer;
begin
for i := 1 to 2 do
for j := 1 to N do
Obyek[i,j] := StrToFloat(StringGrid1.Cells[j,i-1]);
for j := 1 to N do
Obyek[3,j]:=1;
end;

procedure TForm1.MatrikTranslasi2D(Sender: TObject; var Tv : Matrik33;


a,b : real);
begin
10
a := StrToFloat(eNilaiA.Text); b:= StrToFloat(eNilaiB.Text);
Tv[1,1]:=1; TV[1,2]:=0; Tv[1,3]:=a;
Tv[2,1]:=0; Tv[2,2]:=1; Tv[2,3]:=b;
Tv[3,1]:=0; Tv[3,2]:=0; Tv[3,3]:=1;
end;

procedure MatrikKaliTransformasiObyek2D(var obyek: Matrik3N; Tr :


Matrik33);
var i,j,k : integer; Hasil : Matrik3N;
begin
for i := 1 to 3 do
for k := 1 to N do
begin
Hasil[i,k]:=0;
for j := 1 to 3 do
Hasil[i,k] := Hasil[i,k] + Tr[i,j] * Obyek[j,k];end;
Obyek :=Hasil;
end;

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, 4]), trunc(Y0 - Obyek[2, 4]));
// Menggambar garis penutup segiempat
Canvas.MoveTo(trunc(X0 + Obyek[1, 4]), trunc(Y0 - Obyek[2, 4]));
Canvas.LineTo(trunc(X0 + Obyek[1, 1]), trunc(Y0 - Obyek[2, 1]));

end;
procedure TForm1.Button2Click(Sender: TObject);
11
begin
Obyek2D(Sender, Obyek);
MatrikTranslasi2D(Sender, Tv, a,b);
MatrikKaliTransformasiObyek2D(Obyek, Tv);
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, 4]), trunc(Y0 - Obyek[2, 4]));
// Menggambar garis penutup segiempat
Canvas.MoveTo(trunc(X0 + Obyek[1, 4]), trunc(Y0 - Obyek[2, 4]));
Canvas.LineTo(trunc(X0 + Obyek[1, 1]), trunc(Y0 - Obyek[2, 1]));
end;

procedure TForm1.Button3Click(Sender: TObject);


var i,j : integer;
begin
Form1.Refresh;
eNilaiA.Text := '';
eNilaiB.Text := '';
for i : 1 to 2 do
for j := 1 to 3 do
StringGrid1.Cells[j,i-1]:='';
end;

end.

Outputnya :
Klik Segiempat
12
Klik Translasi

D. Pertanyaan dan Tugas


1. Buatlah laporan dan resume praktikum dari praktikum modul 5 ini.
Jawab :
Dari praktikum diatas bisa disimpulkan sebagai berikut :
Translasi adalah transformasi dengan bentuk yang tetap, memindahkan objek apa
adanya. Setiap titik dari objek akan ditranslasikann dengan besaran yang sama.
Transformasi transalasi merupakan suatu translasi 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
transalasi pada suatu ititk koordinat dengan translation vector, yaitu (tx, ty), dimana tx
adalah transalasi menurut sumbu x da ty adalah translasi menurut sumbu y. koordinat
baru titik yang ditranslasi dapat diperoleh dengan menggunakan rumus :

13
(x,y) = titik asal sebelum translasi
x’ = x + tx
y’ = y + ty
(x’, y’) = titik baru hasil translasi.

14

Anda mungkin juga menyukai