IN 3D
WRITTEN BY :
Marshal Samos
M.Arif Rahman
Neige Devi Samyono
Shekar Denanda Megadyati
Erfiandi
3IA15
UNIVERSITAS GUNADARMA
Kata Pengantar
Segala puji dan syukur penulis naikkan ke hadirat Allah S.W.T yang Maha
Kuasa yang telah memberikan berkat, anugerah dan karunia yang melimpah,
sehingga penulis dapat menyelesaikan buku berjudul Transformasi Model
3D Tingkat Pendidikan Perkuliahan untuk Mahasiswa Program Studi Pendidikan Teknik Informatika.
Buku ini telah disusun untuk memberi kemudahan bagi mahasiswa dalam
mengenal dan memahami tentang Transformasi Model 3D yang termasuk
ke dalam Pengolahan Citra, dimana diharapkan pembaca dapat memahami
tentang titik-titik pada model tiga dimensi, sistem koordinat, transformasi,
translasi, rotasi, skala, refleksi, serta pemindahan pada animasi tiga dimensi. Materi pada buku setiap tema bahasan dapat dikembangkan melalui keterampilan dan kreativitas dalam pemrograman menggunakan Processing,
sehingga dapat mendukung pengembangan dari kompetensi dasar itu sendiri.
Penulisan buku ini diharapkan mampu mengembangkan kreativitas, baik secara mandiri maupun kelompok melalui pemahaman mengenai konsep
serta materi yang ada pada setiap sub bahasan.
Pada kesempatan kali ini, penulis mengucapkan terimakasih kepada semua pihak yang telah memberi bantuan sehingga buku ini dapat terselesaikan. Penulis mengharapkan saran yang membangun dari pembaca agar dapat
mengembangkan buku ini menjadi lebih baik di lain hari, sehingga mampu
memberi manfaat bagi seluruh mahasiswa, khususnya pada bidang Teknik
Informatika.
Penulis
Daftar Isi
Kata Pengantar
Daftar Isi
1 Pendahuluan
1.1 Sistem Koordinat 3D . . . . . . . . . . .
1.1.1 Sistem Koordinat Tangan Kiri . .
1.1.2 Sistem Koordinat Tangan Kanan .
1.2 Transformasi 3D . . . . . . . . . . . . .
1.2.1 Sifat 3 Dimensi . . . . . . . . . .
1.2.2 Modelling Transformation . . . .
.
.
.
.
.
.
6
6
6
7
7
8
9
.
.
.
.
.
.
.
.
10
10
10
23
23
23
26
28
29
.
.
.
.
.
.
.
34
34
34
34
35
36
36
36
2 Konsep Transformasi 3D
2.1 Matriks Transformasi . . . . . . . .
2.1.1 Transformasi Pada Bidang .
2.1.2 Implementasi Transformasi
2.2 Matriks . . . . . . . . . . . . . . .
2.2.1 Pengertian Matriks . . . . .
2.2.2 Operasi Matriks . . . . . . .
2.2.3 Matriks Invers . . . . . . . .
2.2.4 Determinan Matriks . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
DAFTAR ISI
DAFTAR ISI
3.1.4.3
3.1.4.4
3.1.4.5
3.1.4.6
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
3.1.10
3.1.11
3.1.12
Pernyataan Nol . . . . . . . . . . . . . . . . .
Pernyataan Majemuk . . . . . . . . . . . . .
Pernyataan Berkondisi : if dan switch . . . .
Pernyataan Pengulangan : do-while, while
dan for . . . . . . . . . . . . . . . . . . . . .
3.1.4.7 Pernyataan yang berhubungan dengan pernyataan pengulangan: break dan continue .
Sistem koordinat (Dimensi X, Y, Z) . . . . . . . . . . .
Bentuk 1 . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.6.1 point (titik) . . . . . . . . . . . . . . . . . . .
3.1.6.2 line (garis) . . . . . . . . . . . . . . . . . . .
3.1.6.3 rect . . . . . . . . . . . . . . . . . . . . . . .
3.1.6.4 ellipse . . . . . . . . . . . . . . . . . . . . . .
3.1.6.5 ellipseMode . . . . . . . . . . . . . . . . . .
3.1.6.6 Kurva . . . . . . . . . . . . . . . . . . . . . .
Data 1 . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.7.1 Variabel . . . . . . . . . . . . . . . . . . . . .
3.1.7.2 Tipe data . . . . . . . . . . . . . . . . . . . .
Kontrol 1 . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.8.1 For . . . . . . . . . . . . . . . . . . . . . . .
Bentuk 2 . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.9.1 BeginShape . . . . . . . . . . . . . . . . . . .
3.1.9.2 LINES, LINE_STRIP, LINE_LOOP, TRIANGLES,
QUADS, POLYGON, dan lain-lain . . . . . . .
Struktur 2 . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.10.1 Setup & Draw . . . . . . . . . . . . . . . . .
3.1.10.2 Method . . . . . . . . . . . . . . . . . . . . .
3.1.10.3 Parameter . . . . . . . . . . . . . . . . . . . .
Lingkungan 2 . . . . . . . . . . . . . . . . . . . . . . .
3.1.11.1 Mengekspor dan dokumentasi . . . . . . . .
Kontrol 2 . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.12.1 If . . . . . . . . . . . . . . . . . . . . . . . .
3.1.12.2 If & Else . . . . . . . . . . . . . . . . . . . . .
36
36
36
37
37
37
37
37
38
39
39
40
40
41
41
41
42
42
43
43
46
47
47
48
48
48
48
48
48
49
51
51
52
53
4.4 Arm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
5 Penutup
5.1 Kesimpulan . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Saran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59
59
59
Bab 1
Pendahuluan
Tiga dimensi biasa disebut 3D atau adalah bentuk dari benda yang memiliki
panjang, lebar, dan tinggi. Grafik tiga dimensi merupakan teknik penggambaran yang berpusat pada titik koordinat sumbu x (datar), sumbu y (tegak),
dan sumbu z (miring). Representasi dari data geometrik tiga dimensi sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap grafika
komputer 2D. tiga dimensi, biasanya digunakan dalam penanganan grafis.
Perbedaan paling utama dari objek dua dimensi dan objek tiga dimensi yaitu
kedalamannya. Yaitu suatu jarak antara pengamat dengan suatu objek yang
dilihat (point of view). Jadi, jika objek 2 dimensi hanya menggunakan dua
ukuran (panjang dan lebar), maka tiga dimensi menggunakan tiga ukuran
meliputi panjang, lebar, kedalaman yang disimbolkan dengan sumbu x, y, z.
1.1
Sistem Koordinat 3D
Secara umum, sistem koordintat tiga dimensi dibedakan menjadi dua, yaitu
:
Sistem Koordinat Tangan Kiri
Sistem Koordinat Tangan Kanan
1.1.1
Sistem koordinat tangan kiri dapat digambarkan dengan tiga buah jari pada tangan kiri dengan punggung tangan menghadap pengamat dengan jari
tengah sebagai sumbu z negatif, jari telunjuk sebagai sumbu y dan ibu jari sebagai sumbu x. Sistem koordinat tangan kiri digunakan agar objek 3
dimensi memiliki nilai z positif (jarak jauh dekat benda lebih terlihat).
6
1.2. TRANSFORMASI 3D
BAB 1. PENDAHULUAN
1.1.2
Sistem koordinat tangan kanan dapat digambarkan dengan tiga buah jari
pada tangan kanan yang menghadap pengamat yaitu jari tengah sebagai
sumbu z positif, jari telunjuk sebagai sumbu y dan ibu jari sebagai sumbu
x. Sistem koordinat tangan kanan banyak digunakan pada penggambaran
geometri.
1.2
Transformasi 3D
1.2. TRANSFORMASI 3D
BAB 1. PENDAHULUAN
seperti pada 2D, ada tiga transformasi dasar yang dapat dilakukan terhadap
verteks, yaitu:
1. Translasi : Suatu pergerakan atau perpindahan semua titik dari objek
pada suatu jalur.
2. Pensekalaan : Memperbesar atau memperkecil suatu ukuran dari sebuah objek deangan ukuran tertentu.
3. Rotasi : Mereposisi semua titik semua titik dari suatu objek sepanjang
jalur lingkaran dengan pusatnya pada titik pivot.
Titik hasil transformasi dapat diperoleh melalui rumus affine transformation.
Dimana:
Q : (Qx, Qy, Qz) menyatakan matrix 1x3 yang berisi titik hasil transformasi.
P : (Px, Py, Pz) menyatakan matrik 1x3 yang berisi titik yang akan
ditransformasi.
Tr : (trx, try, trz) menyatakan matriks 1x3 yang berisi banyaknya pergeseran sumbu x,y, z.
M : Matriks transformasi berukuran 3x3 seperti berikut
1.2.1
Sifat 3 Dimensi
1.2. TRANSFORMASI 3D
BAB 1. PENDAHULUAN
Posisi sebuah titik dalam 3 dimensi dituliskan dalam bentuk (x,y,z). Komputer dapat digunakan untuk mengolah benda tiga dimensi. Ada tiga persoalan
dalam mengolah benda tiga dimensi menggunakan komputer :
Pembuatan lokasi titik 3D
Manipulasi titik 3D
Transformasi titik 3D menjadi 2D
Proses yang digunakan untuk menghasilkan lokasi titik-titik 3D yang menunjukkan bentuk dari benda 3D. Ada 3 macam proses untuk menghasilkan
lokasi titik 3D :
Penentuan langsung menggunakan peralatan seperti mouse3D, scanner3D berbagai peralatan lain
Menggunakan parametric surface
Menggunakan prosedur khusus seperti extrude dan surface of revolution
1.2.2
Modelling Transformation
Menempatkan model pada sistem koordinat yang disebut world space. Semua objek, sumber cahaya, dan sudut pandang pengamat berada pada world
space.
Bab 2
Konsep Transformasi 3D
2.1
2.1.1
Matriks Transformasi
Transformasi Pada Bidang
10
Perpindahan titik-titik pada bidang dengan jarak dan arah tertentu yang
diwakili oleh ruas garis berarah (Vector)
bilangan. Misal
Translasi
memetakan titik P(x1 ,y1 ) ke titik P ( x1 + a, y1
+ b ) yang dinotasikan dengan:
Contoh Perhitungan :
11
adalah.......
Dengan cara perhitungan yang sama, untuk titik-titik piramida yang lain
Rotasi (Rotate)
Menurut Hearn-Baker, transformasi rotasi dilakukan dengan memindahkan
semua titik-titik dari suatu objek ke posisi yang baru dengan memutar titiktitik tersebut dengan sudut dan sumbu putar yang ditentukan[1]. Rotasi
memiliki matriks seperti pada persamaan 2.9, 2.11, dan 2.13. Tiap sumbu
memiliki matriks rotasi yang bebeda.
12
Rotasi artinya berputar. Ketika suatu bentuk benda sengaja diputar maka
perlu di tentukan pusat dan besar sudut putar. sedangkan translasi adalah
pergeseran. Benda yang telah berpindah dari pusatnya berarti mengalami
pergeseran, yaitu apakah dia bergerak maju mundur ataupun menuju ke
atas bawah. Rotasi berbeda dengan translasi karena perubahan posisi pada
translasi tidak mengacu pada suatu titik tertentu. Keistimewaan dari rotasi adalah jarak antara titik pusat dengan masing-masing bagian dari obyek
yang diputar akan selalu tetap, seberapa jauh pun obyek itu diputar. Pada
sebuah game yang menggunakan grafik vektor dan grafik bitmap, rotasi dan
translasi sangat di butuhkan. Untuk membangkitkan rotasi pada objek 3D
kita harus membuat aksis dari rotasi dan jumlah sudut rotasi . Sebagai pusat
perputaran,rotasi 3D menggunakan sumbu koordinat sebagai pusat perputaran. Dengan demikian ada 3 macam rotasi yang dapat dilakukan, yaitu:
1. Rotasi terhadap sumbu X
2. Rotasi terhadap sumbu Y
3. Rotasi terhadap sumbu Z
Rotasi terhadap sumbu X, Y, dan Z diperlihakan seperti pada gambar berikut
.
Dengan menggunakan notasi matrix, maka besaran R bisa dikatakan sbb:
Mengingat ada 3 buah sumbu rotasi maka matriks transformasi yang digunakan juga bergantung kepada sumbu putar. Adapun isi masing-masing
transformasi sesuai dengan sumbu putar didefinisikan sebagai berikut
13
14
Langkah kedua adalah vektor s diubah menjadi unit vektor dengan membagi vektor dengan panjang absolut vektor.
Langkah ketiga adalah mencari besar sudut alpha yang dibentuk oleh
vektor s dan u2 (vektor searah sumbu y positif).
Langkah keempat adalah mencari besar sudut betha yang dibentuk oleh
vektor u (x, 0, z) dan u1 (vektor searah sumbu x positif).
15
Karena vektor u bernilai 0 maka sudut betha yang dibentuk oleh vektor
u dan u1 bernilai 0o.
Langkah kelima adalah memutar titik pada sumbu Y sehingga terletak di
bidang XY.
16
Langkah keenam adalah memutar titik pada sumbu z sebesar sudut yang
ditentukan untuk transformasi rotasi.
Langkah ketujuh adalah memutar balik titik sebesar alpha pada sumbu
Z.
17
Langkah kedelapan adalah memutar balik titik sebesar betha pada sumbu Y.
Dengan cara perhitungan yang sama, untuk titik-titik piramida yang lain.
Skala (Scale)
Skala merupakan salah satu bentuk transformasi yang merubah ukuran dari
objek yang ditentukan, baik membesar ataupun mengecil. Perubahan ukuran tersebut didasarkan pada sumbu x, sumbu y, maupun sumbu z, dimana
jika yang diubah hanya sumbu x, maka besarnya objek akan berubah sesuai
dengan sumbu x baru yang telah ditentukan, begitu pula jika diubah terhadap sumbu dan zy, maka objek akan menguikuti perubahan sesuai sumbu
y maupun z baru yang telah ditentukan. Perubahan skala diperoleh dari
18
mengalikan nilai koordinat objek dengan skala tertentu sesuai dengan sumbu masing - masing. Bentuk dari matriks skala adalah:
Transformasi penskalaan merupakan transformasi yang berfungsi mengubah ukuran suatu objek. Ukurannya dapat menjadi lebih kecil atau lebih
besar. Penskalaan memiliki matriks seperti pada persamaan di bawah ini:
Operasi invers dapat dilakukan dengan mengubah sx, sy, dan sz menjadi
1/sx, 1/sy, 1/sz sehingga hasil perkalian matriks menjadi [x/sx y/sy z/sz 1].
19
Contoh perhitungan:
1. Diketahui sebuah prisma dengan lokasi verteks seperti pada tabel berikut:
20
21
22
2.2. MATRIKS
Dengan cara perhitungan yang sama, untuk titik-titik piramida yang lain.
2.1.2
Implementasi Transformasi
Dalam mengimplementasikan transformasi diperlukan beberapa operasi seperti perkalian matriks, mengidentitaskan matriks, translasi, penskalaan, rotasi, dan shearing. Operasi-operasi tersebut dibuat dalam bentuk prosedurprosedur seperti berikut.
Perkalian Matriks
Perkalian matriks dibutukan untuk melakukan transformasi geometri. Misalnya mengalikan matriks translasi dengan matriks penskalaan untuk transformasi berturut-turut.
Matriks Identitas
Matriks identitas digunakan untuk menolkan suatu matriks transformasi.
Matriks Transformasi
Operasi matriks transformasi digunakan untuk mengalikan suatu titik 3 dimensi dengan matriks transformasi sehingga diperoleh titik hasil transformasinya
Dari ketiga jenis transformasi diatas, proses perhitungan dan penyelasaiannya menggunakan operasi Matriks.Dari ketiga jenis transformasi diatas,
proses perhitungan dan penyelasaiannya menggunakan operasi Matriks.
2.2
2.2.1
Matriks
Pengertian Matriks
Memahami matriks dan operasinya merupakan langkah awal dalam memahami buku ini. Beberapa masalah real dapat direpresentasikan dalam bentuk
23
2.2. MATRIKS
matriks. Masalah tersebut antara lain : grafika dan citra, chanel assignment
pada telekomunikasi, rantai markov, Operation Research, dan lain-lain. Pada
bab ini, selain menjelaskan tentang matriks dan operasi dasar pada matriks,
juga akan memaparkan tentang operasi baris elementer sebagai alat analisa
yang akan terus digunakan menelaah dalam buku ini. Matriks merupakan
kumpulan bilangan yang berbentuk segi empat yang tersusun dalam baris
dan kolom.
Contoh 1.1 : Notasi suatu matriks dalam buku ini dituliskan dalam bentuk :
2.2. MATRIKS
Matriks diagonal adalah matriks bujur sangkar dimana unsur selain unsur
diagonalnya adalah 0. Jika i= j maka aijdinamakan unsur diagonal. Sementara itu, Jika setiap unsur diagonal pada matriks diagonal sama dengan 1
maka matriks tersebut dinamakan matriks identitas (matriks satuan) .
Berikut ini adalah contoh matriks diagonal dan matriks identitas :
Matriks diagonal 3x3
Matriks segitiga
Ada dua macam matriks segitiga, yaitu :
2.2. MATRIKS
2.2.2
Operasi Matriks
Ada beberapa operasi matriks yang perlu diketahui, yaitu penjumlahan antara dua matriks, perkalian antar skalar dan matriks, perkalian antar matriks,
dan operasi baris (operasi yang dikenakan pada unsur-unsur baris dalam suatu matriks). Berikut ini adalah penjelasan dari beberapa operasi yang telah
disebutkan di atas.
26
2.2. MATRIKS
Penjumlahan Matriks
Agar dua buah matriks dapat dijumlahkan, maka syarat yang harus dipenuhi
oleh keduanya adalah ukuran kedua matriks tersebut harus sama. Penjumlahan dua buah matriks akan menghasilkan sebuah matriks dengan ukuran
yang sama dengan kedua matriks yang dijumlahkan, dan setiap unsur didalamnya merupakan hasil penjumlahan dari unsur yang seletak pada kedua
martriks tersebut.
Perkalian Matriks
1. Perkalian suatu matriks dengan skalar Suatu matriks yang dikalikan
dengan skalar akan menghasilkan matriks dengan ukuran yang sama tetapi setiap unsur pada matriks dikalikan dengan skalar tersebut.
27
2.2. MATRIKS
Perhatikan bahwa unsur baris ke-2 kolom ke-1 dari AB merupakan jumlah
dari hasil kali unsur-unsur pada baris ke-2 matriks A dengan unsur-unsur
pada kolom ke-1 matriks B.
Khusus untuk perkalian antara dua matriks, jika Adan B merupakan matriks bujursangkar, maka belum tentu AB= BA (tidak berlaku sifat komutatif). Selain kedua operasi diatas, ada juga operasi pada matriks yang dikenakan pada setiap baris pada matriks tersebut. Operasi yang demikian
dinamakan Operasi Baris Elementer (OBE).
2.2.3
Matriks Invers
Misalkan, A, B adalah matriks bujur sangkar yang berukuran sama dan I adalah matriks identitas. Jika A . B = I maka B dinamakan invers dari matriks A
(sebaliknya, A merupakan invers dari matriks B). Notasi bahwa B merupakan
28
2.2. MATRIKS
2.2.4
Determinan Matriks
Untuk setiap matriks persegi terdapat suatu bilangan tertentu yang disebut
determinan. Pengertian Determinan matriks adalah jumlah semua hasil perkalian elementer yang bertanda dari A dan dinyatakan dengan det(A). Yang
diartikan dengan sebuah hasil perkalian elementer bertanda dari suatu matriks A adalah sebuah hasil perkalian elementer pada suatu kolom dengan
+1 atau -1. Untuk lebih jelasnya, berikut ini diuraikan cara mencari determinan matriks berordo 2x2 dan matriks berordo 3x3.
Determinan Matriks Berordo 2x2
Jika matriks
maka det
29
2.2. MATRIKS
Jika matriks
30
2.2. MATRIKS
maka det(B)
Metode Kofaktor
31
2.2. MATRIKS
Terlebih dahulu siswa dijelaskan tentang sub matriks atau minor dari suatu
matriks. Minor suatu matriks A dilambangkan dengan M ij adalah matriks
bagian dari A yang diperoleh dengan cara menghilangkan elemen-elemennya
pada baris ke-i dan elemen-elemen pada kolom ke-j.
32
2.2. MATRIKS
33
Bab 3
Perangkat Lunak Transformasi 3D
3.1
3.1.1
Processing
Pengertian Processing
Processing adalah suatu projek terbuka yang diinisiasi oleh Ben Fry dan Casey Reas. Berkembang dari ide-ide yang dieksplorasi di Aesthetics and Computation Group (ACG) di MIT Media Lab. Projek ini kini terus diperbaiki dan
dikelola oleh sejumlah kecil tim voluntir. Processing mengaitkan konsep software pada prinsip-prinsip bentuk rupa, gerak, dan interaksi. Processing
mengintegrasikan suatu bahasa pemrograman, lingkungan pemrograman,
dan metodologi pengajaran ke dalam sistem terpadu.
3.1.2
Mode Pemrograman
Dalam Processing struktur program dapat dibuat dalam tiga tingkat kompleksitas: Mode Statik, Mode Aktif, dan Mode Java.
Mode Statik
Mode Statik digunakan untuk membuat gambar statik. Contoh berikut menggambar sebuah segi empat kuning di layar.
Mode Aktif
Mode Aktif menyediakan bagian setup() opsional yang akan berjalan ketika
program mulai berjalan. Bagian draw() akan berjalan selamanya sampai
progam dihentikan. Contoh ini menggambar segi empat yang mengikuti
34
3.1. PROCESSING
Mode Java
Mode Java adalah yang paling fleksibel, namun tidak tersedia sampai dengan
rilis Processing 1.0 Beta. Mode ini memungkinkan menulis program Java
secara lengkap di dalam Lingkugan Processing. Contoh ini sama dengan di
atas, namun ditulis dalam style Java:
3.1.3
Komentar
35
3.1. PROCESSING
3.1.4
Pernyataan
Pernyataan (statement) digunakan untuk melakukan suatu tindakan. Terdapat berbagai macam pernyataan.
3.1.4.1
Pernyataan Ungkapan
Pernyataan ungkapan merupakan bentuk pernyataan yang paling umum dipakai. Pernyataan ini terdiri dari sebuah ungkapan dan diakhiri dengan
titik-koma (;). Biasanya pernyataan ungkapan ini berupa penugasan nilai
terhadap variabel atau pemanggilan fungsi.
3.1.4.2
Pernyataan Deklarasi/definisi
Pernyataan Nol
Pernyataan nol atau pernyataan kosong adalah pernyataan yang berisi titikkoma saja. Perintah ini tidak melaksanakan apa-apa. Tetapi kehadirannya
kadang-kadang diperlukan. Misalnya pada kaidah suatu pernyataan yang
memerlukan pernyataan lain, padahal pernyataan lain tersebut tidak diperlukan.
3.1.4.4
Pernyataan Majemuk
Pernyataan majemuk sering kali disebut dengan istilah blok. Yang dimaksudkan pernyataan ini adalah nol atau sejumlah pernyataan yang berada di
dalam kurung kurawal.
3.1.4.5
36
3.1. PROCESSING
3.1.4.6
Pernyataan break digunakan pada pernyataan switch, for, while dan dowhile. Kegunaannya yaitu untuk memekasa keluar dari pernyataan-pernyataan
itu. Pernyataan continue dipakai untuk mengarahkan eksekusi ke putaran
atau iterasi berikutnya pada pernyataan pengulangan.
3.1.5
Processing menggunakan sistem koordinat kartesian dengan titik asal terletak di sudut kiri-atas. Bila program berukuran lebar 320 piksel dan lebar 240
piksel, maka koordinat [0, 0] terletak di kiri-atas dan koordinat [320, 240]
terletak di kanan bawah.
3.1.6
Bentuk 1
3.1.6.1
point (titik)
37
3.1. PROCESSING
Deskripsi Point atau titik adalah koordinat dalam ruang. Dalam Processing, point memiliki dimensi satu piksel. Parameter pertama adalah nilai
horizontal dari point, nilai kedua adalah nilai vertikal dari point, dan nilai
opsional ketiga adalah nilai kedalaman.
Sintaks point(x1, y1);
point(x1, y1, z1);
Parameter x1 int atau float: koordinat x dari point y1 int atau float: koordinat y dari point z1 int atau float: koordinat z dari point
Mengembalikan nilai: tidak
Penggunaan: Web dan aplikasi
Perintah terkait: beginshape()
3.1.6.2
line (garis)
Deskripsi line adalah garis langsung antara dua point. Versi line() dengan
empat parameter menggambar garis dalam bidang XY dengan Z=0. Versi
dengan enam parameter memungkinkan garis ditempatkan dimana saja di
dalam ruang XYZ. Untuk mewarnai garis, gunakan fungsi stroke(). Sebuah
garis tidak dapat diisi warna, dengan demikian method fill() tidak dapat
mempengaruhi warna garis. Garis digambar dengan lebar satu piksel.
38
3.1. PROCESSING
Sintaks line(x1, y1, x2, y2); line(x1, y1, z1, x2, y2, z2);
Parameter x1 int atau float: koordinat x dari titik pertama y1 int atau float:
koordinat y dari titik pertama z1 int atau float: koordinat z dari titik pertama
x2 int atau float: koordinat x dari titik kedua y2 int atau float: koordinat y
dari titik kedua z2 int atau float: koordinat z dari titik kedua
Mengembalikan nilai: tidak Penggunaan: Web dan aplikasi Perintah terkait: beginShape()
3.1.6.3
rect
Deskripsi Menggambar rectangle atau segi empat di layar. Sebuah segi empat adalah bentuk yang memiliki empat sisi dan setiap sisi mempunyai sudut
90 derajat. Dua parameter pertama mengeset letak, yang ketiga mengeset
lebar, yang keempat mengeset tinggi. Titik asal dapat diubah dengan menggunakan fungsi rectMode().
Sintaks rect(x, y, lebar, tinggi);
Parameter x int atau float: koordinat x dari segi empat y int atau float:
koordinat y dari segi empat lebar int atau float: lebar dari segi empat tinggi
int atau float: tinggi dari segi empat
Mengembalikan nilai: tidak Penggunaan: Web dan aplikasi
3.1.6.4
ellipse
39
3.1. PROCESSING
ellipseMode
Nama: ellipseMode() ellipseMode(CENTER); ellipse(35, 35, 50, 50); ellipseMode(CORNER); fill(102); ellipse(35, 35, 50, 50);
Deskripsi Titik asal dari ellipse dapat diubah dengan fungsi ellipseMode().
mode default dari ellipse mode adalah ellipseMode(CORNER), yang menentukan titik asal ellipse terletak di sisi kiri atas batas kotak yang membentuk
ellipse. Memanggil fungsi ellipseMode(CENTER_DIAMETER) akan menggambar bentuk ellipse dari pusat ellips. Parameter harus ditulis dengan "HURUF BESAR" semuanya karena Processing adalah bahasa case sensitive atau
membedakan huruf besar dan huruf kecil.
Sintaks ellipseMode(MODE);
Parameter MODE CORNER, CORNERS, CENTER, atau RADIUS.
Mengembalikan nilai: Tidak Penggunaan: Web dan aplikasi Perintah terkait: ellipse()
3.1.6.6
Kurva
Nama: curve() curve(10, 26, 83, 24, 83, 61, 25, 65);
40
3.1. PROCESSING
3.1.7
Data 1
3.1.7.1
Variabel
Variabel merupakan komponen penting pada pemrograman. Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung. Bentuk pendefinisian variabel:
tipe daftar_variabel;
Contoh :
int jumlah; float harga_per_unit, total_harga;
3.1.7.2
Tipe data
Secara internal, semua data di dalam komputer digital modern disimpan sebagai bilangan biner nol atau satu. Data biasanya merepresentasikan informasi dalam dunia nyata seperti nama, rekening bank, dan lain sebagainya,
41
3.1. PROCESSING
dan data biner tingkat rendah (lowlevel) diatur sedemikian rupa oleh bahasa
pemrogaman menjadi konsep-konsep tingkat tinggi (nama, rekening bank,
dan lain sebagainya). Secara praktek, tipe data digunakan untuk memberi
nama atau label bagi suatu nilai atau operasi yang bisa dilakukan oleh nilai
tersebut. Tipe data dapat diklasifikasikan menurut kategori-kategori sebagai
berikut: Tipe data primitif, merupakan tipe data paling sederhana seperti
integer dan bilangan floating point, Tipe data bentukan, tipe yang dibentuk
dari tipe dasar, seperti tipe data abstrak, Sub-tipe atau tipe turunan, Tipe
data fungsi, contohnya fungsi biner, Tipe data obyek, contohnya variabel
tipe, Tipe data kelas (class), contohnya obyek dalam bahasa pemrograman
dengan metode berorientasi obyek, Dan lain sebagainya.
3.1.8
Kontrol 1
3.1.8.1
For
for(int i=30; i<80; i=i+5) { for(int j=0; j<80; j=j+5) { point(i, j); } }
42
3.1. PROCESSING
Deskripsi Mengontrol urutan pengulangan/loop. Struktur for() terdiri dari tiga bagian: init, test, dan update. Tiap bagian tersebut harus dipisahkan
oleh titik-koma ";". Loop akan berlanjut sampai dengan test bernilai false.
Ketika for() dieksekusi, terjadi event berikut: 1. Statement init dieksekusi
2. Test dievaluasi apakah menghasilkan true atau false 3. Bila test menghasilkan true, lanjutkan ke step 4. Bila test menghasilkan, loncat ke step 6
4. Eksekusi pernyataan di dalam blok 5. Eksekusi pernyataan update dan
kembali ke step 2 6. Keluar dari loop.
Sintaks for(init; test; update) { pernyataan }
Parameter init pernyataan dieksekusi sekali ketika memulai loop test bila
tes menhasilkan true, pernyataan dieksekusi update dieksekusi pada bagian
akhir dari tiap pengulangan pernyataan kumpulan pernyataan yang dieksekusi setiap saat selama loop
Penggunaan: Web dan aplikasi Perintah terkait: while()
3.1.9
Bentuk 2
3.1.9.1
BeginShape
beginShape(LINES); vertex(30, 20); vertex(85, 20); vertex(85, 75); vertex(30, 75); endShape();
43
3.1. PROCESSING
44
3.1. PROCESSING
Deskripsi Menggunakan fungsi-fungsi beginShape() dan endShape() memungkinkan membuat bentuk yang lebih kompleks. Fungsi beginShape()
mulai merekam verteks dari sebuah bentuk dan fungsi endShape() menghentikan rekaman. Fungsi beginShape() memerlukan sebuah parameter yang
memberitahu tipe bentuk yang akan dibuat dari verteks-verteks yang ada.
Parameter untuk beginShape() adalah LINES, LINE_STRIP, LINE_LOOP, TRIANGLES, TRIANGLE_STRIP, QUADS, QUAD_STRIP, dan POLYGON. Sesudah
memanggil fungsi beginShape(), serangkaian fungsi vertex() harus mengikutinya. Untuk menghentikan menggambar bentuk, panggil fungsi endShape(). Fungsi vertex() dengan dua parameter menentukan sebuah lokasi dalam 2D dan fungsi vertex() dengan tiga parameter menentukan sebuah lokasi dalam 3D. Tiap bentuk akan diberi garis pinggir dengan warna dari fungsi
stroke() dan diisi warna dengan fungsi fill().
Sintaks beginShape(MODE);
Parameter MODE LINES, LINE_STRIP, LINE_LOOP, TRIANGLES, TRIANGLE_STRIP,
QUADS, QUAD_STRIP, POLYGON
Mengembalikan nilai: Tidak Penggunaan: Web dan aplikasi
Perintah terkait:
endShape() vertex() curveVertex() bezierVertex()
Nama: endShape() beginShape(LINE_STRIP); vertex(30, 20); vertex(85,
20); vertex(85, 75); vertex(30, 75); endShape();
45
3.1. PROCESSING
3.1. PROCESSING
3.1.10
Struktur 2
3.1.10.1
Nama: setup()
void setup() { size(200, 200); noStroke(); fill(102); }
int a = 0;
void draw() { background(0); rect(a++%width, 10, 2, 80); }
Deskripsi Fungsi yang dipanggil sekali ketika progtam mulai berjalan. Digunakan untuk menentukan properti-properti lingkungan awal seperti ukuran layar, warna background, memuat gambar, dsb. sebelum draw() mulai
mengeksekusi dan menggambar image ke layar. Variabel-variabel yang dideklarasikan di dalam setup setup() tidak dapat diakses dalam draw(). Bila
sebuah program memanggil fungsi setup() maka ia akan juga akan memanggil draw().
Sintaks void setup() { pernyataan }
Parameter pernyataan pernyataan yang valid
Mengembalikan nilai: Penggunaan: Perintah terkait:
Nama: draw() void setup() { size(200, 200); noStroke(); }
int a = 0;
void draw() { background(0); fill(a); a = a + 1; if (a > width) { a = 0;
} rect(a, 0, 2, 200); }
Deskripsi Secara kontinu mengeksekusi baris-baris kode yang dimuat di
dalam blok draw() sampai dengan program dihentikan. Fungsi draw() digunakan berhubunagn dengan setup(). Lamanya draw() mengeksekusi dalam
tiaip detik bisa dikontrol menggunakan fungsi delay() dan fungsi framerate().
Sintaks draw() { pernyataan }
47
3.1. PROCESSING
Method
Method adalah fungsi yang didefinisikan di dalam class yang mengoperasikan instans- instans dari class tersebut. Method terkait dengan konsep pemrograman berorientasi objek. Instruktur akan menjelaskan secara singklat
tentang konsep pemrograman berorientasi objek.
3.1.10.3
Parameter
3.1.11
Lingkungan 2
3.1.11.1
Anda dapat mengekspor hasil pekerjaan anda ke dalam format yang dapat
diakses melalui Web. Caranya dengan menggunakan menu File -> Eksport to
Web. Selain itu anda dapat menggunakan shortcut dengan menekan tombol
Ctrl+E pada keyboard.
3.1.12
Kontrol 2
3.1.12.1
If
Nama: if() for(int i=5; i<height; i+=5) { stroke(255); // Mengeset warna putih if(i < 35) { // Jika "i" kurang dari "35"... stroke(0); // ...set warna
menjadi putih } line(30, i, 80, i); }
48
3.1. PROCESSING
Deskripsi Memungkinkan program untuk membuat keputusan tentang kode mana yang akan dieksekusi. Bila evalusi ekspresi menghasilkan true, pernyataan yang terdapat di dalam blok dieksekusi dan bila ekspresi menghasilkan false pernyataan tidak akan dieksekusi.
Sintaks if(ekspresi) { pernyataan }
Parameter Ekspresi ekspresi valid yang akan dievaluasi apakah bernilai
true atau false pernyataan satu atau lebih pernyataan yang akan dieksekusi
Penggunaan: Web dan aplikasi Perintah terkait: else
3.1.12.2
If & Else
Nama: else
for(int i = 5; i < 95; i += 5) { if(i < 35) { line( 30, i, 80, i ); } else {
line( 20, i, 90, i ); } }
for(int i = 5; i < 95; i += 5) { if(i < 35) { line( 30, i, 80, i ); } else if (i
< 65) { line( 20, i, 90, i ); } else { line( 0, i, 100, i ); } }
3.1. PROCESSING
50
Bab 4
Studi Kasus Processing
4.1
Translate (Translasi)
Dalam sintaks berikut ini terdapat fungsi dengan nama translate() dimana
memiliki fungsi agar objek dapat berpindah dari satu lokasi ke lokasi yang
lain dalam satu window yang sama, dimana parameter yang pertama merupakan tolak ukur sumbu x dan parameter yang kedua merupakan tolak ukur
sumbu y. Berikut ini merupakan penulisan sintaks menggunakan alat bantu
processing:
51
4.2
Scale (Skala).
Dalam sintaks berikut ini terdapat fungsi dengan nama scale() merupakan
pendefinisian nilai dalam bentuk persen desimal. sebagai contoh method
memanggil nilai dari scale 2.0 dimana akan menambahkan dimensi dari bentuk tersebut menjadi 200 persen. Objek yang ada akan selalu diukur dari
ukuran aslinya. Berikut ini merupakan penulisan sintaks menggunakan alat
bantu processing:
52
4.3
Rotate (Rotasi).
pemanggilan nilai rotate sebesar 3.0. Berikut ini merupakan penulisan sintaks menggunakan alat bantu processing:
Rotasi.
Rotasi sebuah persegi terhadap sumbu z. untuk mendapatkan hasil yang diinginkan dengan mengirimkan nilai fungsi parameter dari rotasi antara 0 dan
PI*2 (Nilai TWO_PI adalah 6.28). Apabila sudut pengambilan gambar yang
54
Rotasi PushPop
55
Fungsi push() dan pop() memperbolehkan akses dalam mengendalikan transformasi tersebut, dimana fungsi push menyimpan koordinat sistem sementara pada stack dan pop mengembalikan koordinat sistem utama. Berikut ini
merupakan penulisan sintaks menggunakan alat bantu processing:
56
4.4. ARM.
4.4
Arm.
4.4. ARM.
58
Bab 5
Penutup
5.1
Kesimpulan
Bidang tiga dimensi merupakan bentuk dari benda yang memiliki panjang,
lebar serta tinggi yang berpusat pada titik koordinat sumbu x, y serta z. Dalam representasi objek tiga dimensi mampu dilakukan pemrosesan berupa
tiga bentuk transformasi dasar, yaitu translasi (pergerakan atau perpindahan), pensekalan (memperbesar atau memperkecil), dan rotasi (mereposisi
semua titik pada objek). Setiap kali melakukan suatu proses transformasi,
selalu dilakukan perhitungan melalui matriks. Dimana dalam pemahaman
matriks serta operasinya itu sendiri dapat diterapkan dalam grafika dan citra,
chanel assignment pada telekomunikasi, rantai markov, operation research
dan lain-lain. Dalam perhitungan determinan matriks yang diterapkan juga
beragam, terdapat perhitungan matriks untuk ordo 2x2, 3x3, dan kofaktor.
Dalam pengaplikasian sintaks serta perhitungan transformasi yang telah
dilakukan, alat bantu yang digunakan adalah perangkat lunak Processing.
Perangkat lunak Processing terdapat tiga mode yaitu mode aktif, pasif dan
java.
5.2
Saran
Pada pembuatan buku ini banyak sekali kekurangan penulis, maka dari itu
penulis meminta maaf jika dalam penulisan ini masih jauh dari kata sempurna.
59