BAB II LANDASAN TEORI
2.1 PENGERTIAN VISUAL BASIC Microsoft Visual Basic (sering disingkat sebagai VB saja) merupakan sebuah bahasa pemrograman yang menawarkan Integrated Development Environment (IDE) visual untuk membuat program perangkat lunak berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman (COM). Visual Basic merupakan turunan bahasa pemrograman BASIC dan menawarkan pengembangan perangkat lunak komputer berbasis grafik dengan cepat. Beberapa bahasa skrip seperti Visual Basic for Applications (VBA) dan Visual Basic Scripting Edition (VBScript), mirip seperti halnya Visual Basic, tetapi cara kerjanya yang berbeda. Para
programmer
dapat
membangun
aplikasi
dengan
menggunakan
komponen-komponen yang disediakan oleh Microsoft Visual Basic Programprogram yang ditulis dengan Visual Basic juga dapat menggunakan Windows API, tapi membutuhkan deklarasi fungsi luar tambahan. Dalam pemrograman untuk bisnis, Visual Basic memiliki pasar yang sangat luas. Sebuah survey yang dilakukan pada tahun 2005 menunjukkan bahwa 62% pengembang perangkat lunak dilaporkan menggunakan berbagai bentuk Visual Basic, yang diikuti oleh C++, JavaScript, C#, dan Java.
2.2 SISTEM WARNA RGB Pada model RGB, setiap warna merupakan komponen spektral utama, yaitu merah, hijau, dan biru. Model RGB ini berbasis sistem koordinat. Komponen merah, hijau, dan biru merupakan komponen utama. Warna hitam merupakan origin, sedangkan putih merupakan warna pada titik terjauh dari origin. Pada model ini, warna abu-abu (titik yang memiliki nilai RGB sama) berada pada garis dari titik hitam hingga putih (Gonzalez & Woods, 2002, p . 290).
6
7
Citra RGB direpresentasikan dalam tiga komponen citra R, G, dan B. Ketika citra tersebut ditampilkan pada monitor, ketiga citra akan digabungkan pada layar untuk menghasilkan citra komposit.
2.3 ANAGLYPH IMAGE Anaglyph image adalah sebuah citra dimana ketika citra tersebut dilihat dengan mata kanan dan mata kiri akan saling bertumpukan dengan warna yang berbeda. Sedangkan, setiap mata hanya memfilter warna yang diterimanya dan mengirimkannya
ke
otak.
Kemudian,
otak
akan
memprosesnya
dan
menangkapnya sebagai citra dalam 3D. Dalam pengertian yang lain, anaglyph image merupakan sebuah citra yang dibentuk dari pengintegrasian dua citra. Anaglyph image juga merupakan bagian dari grafik 3D yang meningkatkan persepsi kedalaman suatu benda 3D. Citra yang dihasilkan tidak hanya tampak sebagai benda datar pada layar, tetapi akan tampak seolah-olah muncul dari layar. Secara fisik, anaglyph image merupakan citra dalam bentuk dua dimensi yang terlihat tidak jelas karena ada pergeseran channel warna R (red) pada citra tersebut. Jadi, ketika mata manusia melihat tanpa bantuan apapun. otak akan menangkap citra tersebut sebagai obyek yang tidak jelas karena ada bayangan pada citra tersebut. Oleh karena itu, mata manusia membutuhkan kacamata untuk membantu dalam melihat anaglyph image ini. Kacamata ini dinamakan dengan anaglyph glasses.
Gambar 2.0 Anaglyph Glasses
8
2.4 REKAYASA PIRANTI LUNAK Dalam merancang suatu aplikasi, perlu diadakan suatu pendekatan sistematis dalam rekayasa piranti lunak tersebut. Tujuan dari rekayasa piranti lunak tersebut adalah untuk menghasilkan piranti lunak yang ekonomis yang dapat diandalkan. Menurut Pressman (2001, p3), piranti lunak adalah produk yang dirancang dan dibangun oleh software engineer. Produk ini meliputi program – program yang dijalankan dalam computer, dokumen – dokumen baik dalam bentuk hardcopy maupun virtual dan data yang mengkombinasikan gambar, video, dan audio. Dalam rekayasa piranti lunak terdapat suatu pendekatan yang disebut sebagai Waterfall. Waterfall disebut juga sebagai Classic Life Cycle atau Linear Sequential Model. Model ini memberikan sebuah pendekatan untuk pembangunan perangkat lunak yang sistematis dan berangkaian. Model Waterfall pertama kali diajukan oleh Winston Royce (Somerville, 1989, p7). Aktifitas – aktifitas dalam Waterfall adalah sebagai berikut: 1. Analisis dan definisi kebutuhan Tugas, batasan dan tujuan dari sistem ditentukan dari konsultasi dengan pengguna sistem. Setelah diperoleh kesepakatan, ketetapan tersebut didefinisikan dalam suatu bentuk yang dapat dimengerti oleh pengguna dan staf pengembangan perangkat lunak. 2. Perancangan sistem dan perangkat lunak Berdasarkan definisi kebutuhan yang telah ditetapkan, kebutuhan tersebut dibagi secara spesifik menjadi kebutuhan sistem perangkat lunak. Proses ini disebut sebagai perancangan sistem. Perancangan perangkat lunak adalah proses representasi kebutuhan dari setiap sistem perangkat lunak dalam suatu bentuk yang siap untuk diubah ke program computer. 3. Implementasi dan Unit Testing Pada tahap ini, perancangan perangkat lunak diwujudkan sebagai suatu set program yang ditulis dengan bahasa pemrograman. Unit testing meliputi pemeriksaan pada setiap unit program untuk memenuhi spesifikasi tersebut.
9
4. Tes Sistem Unit dari setiap program disatukan dan dites sebagai sebuah sistem menyeluruh untuk memastikan bahwa syarat dari perangkat lunak telah dipenuhi. Setelah pengujian, sistem perangkat lunak diserahkan kepada pelanggan. 5. Operasi dan perawatan Secara umum, ini merupakan tahap yang paling lama. Sistem di-install dan digunakan. Proses perawatan meliputi perbaikan dari kesalahan yang ditemukan pada tahap – tahap sebelumnya, perbaikan pengimplementasian unit sistem dan meningkatkan sistem unit dari persyaratan baru yang diterima.
Sistem Engineer
Analysis
Design
Coding
Testing
Maintenance
Gambar 2.1 Pendekatan model Waterfall
10
2.5 INTERAKSI MANUSIA DAN KOMPUTER Konsep utama dari interaksi manusia dan komputer ini sebenarnya adalah bagaimana membuat sistem yang mudah dipelajari dan mudah digunakan. Menurut Shneiderman (1998, p8), interaksi manusia dan komputer adalah ilmu yang berhubungan dengan perancangan, evaluasi dan implementasi sistem computer interaktif untuk digunakan oleh manusia serta studi fenomena – fenomena besar yang berhubungan dengannya. Sistem yang interaktif dan User Friendly akan membuat pengguna lebih mudah dan nyaman dalam menjalankan sistem tersebut, namun sebaliknya apabila sistem kurang interaktif, maka sistem itu akan sulit digunakan dan mengakibatkan kejenuhan sehingga pengguna akan kurang menyukai sistem tersebut. Shneiderman (1998, p15) mengemukakan ada lima criteria yang harus dipenuhi untuk membuat sebuat sistem yang User Friendly, yaitu: 1. Waktu Belajar Berapa lama watu yang dibtutuhkan oleh seorang pemakai awam untuk mempelajari cara pengoperasian sistem. 2. Kecepatan Kinerja Berapa lama waktu yang dibutuhkan oleh sistem untuk menyelesai-kan suatu tugas. 3. Tingkat Kesalahan Berapa banyak kesalahan dan kesalahan apa saja yang dibuat pemakai pada waktu menggunakan sistem. 4. Daya Ingat Bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu. 5. Kepuasan Subjektif Bagaimana kesukaan pemakai terhadap aspek sistem.
11
2.6 LANDASAN TEORI KOMPUTER GRAFIK Grafika komputer merupakan salah satu bidang dari ilmu komputer yang perkembangannya sangat cepat.
Penggunaan grafika komputer sangat terasa
manfaatnya di hampir seluruh kegiatan, terutama yang berhubungan dengan komputer. Pada kenyataannya, sebagian besar kegiatan manusia memanfaatkan grafika komputer.
Industri film, televisi, desain grafis dan arsitektur adalah
beberapa contoh kegiatan yang banyak sekali memanfaatkan grafika komputer. Bidang ilmu murni seperti Fisika, Matematika, Kimia dan Biologi pun merasakan manfaat dari grafika komputer. Bidang-bidang tersebut memanfaatkan grafika komputer untuk visualisasi model-model objek yang secara kasat mata mustahil terlihat seperti; atom, sel dan bakteri. Bahkan perkembangan bidangbidang tersebut menjadi semakin cepat, karena para ilmuwan semakin berani melakukan Eksperimen tanpa takut melakukan kesalahan yang mengakibatkan kerugian besar, sehingga mereka dapat menghasilkan penemuan-penemuan baru. Berkat bantuan grafika komputer, Benoit Mandelbort, seorang ilmuwan matematika berhasil memodelkan dan memvisualisasikan fraktal, suatu bentuk geometri yang sangat rumit. Padahal selama berpuluh-puluh tahun fraktal hanya dikenal sebagai bentuk teori matematika saja dan masih abstrak. Merupakan hal yang mustahil menghasilkan suatu citra fraktal tanpa bantuan komputer, karena pada bagian-bagiannya memiliki bentuk yang sangat kecil dan tidak dapat terlihat oleh mata manusia yang paling normal sekalipun.
Selain itu, membuat citra
fraktal adalah pekerjaan yang sangat membosankan dan melelahkan. Dengan bantuan grafika komputer, hal tersebut menjadi mungkin dan bukan hal yang mustahil lagi. Industri film dan game adalah yang paling merasakan manfaat grafika komputer. Saat ini, film yang digemari bukan lagi film-film kartun, tetapi film animasi yang menggunakan teknologi tiga dimensi (3D).
Dengan grafik 3D,
dapat dihasilkan suatu objek yang menyerupai bentuk aslinya. Hal ini sangat menguntungkan, karena pembuat film dapat mengurangi biaya produksi yang biasanya digunakan untuk menyewa aktor dalam film tersebut, karena aktor-aktor tersebut digantikan perannya oleh objek-objek 3D buatan komputer. Hal yang sama terjadi pada industri game. Jika dulu game-game yang digemari masih
12
dalam bentuk dua dimensi (2D), dengan teknologi yang ada sekarang dapat dihasilkan suatu game yang lebih realistis karena sudah dalam bentuk 3D. Di Indonesia sendiri bidang-bidang yang berhubungan dengan grafika komputer sudah menjadi alternatif pilihan pekerjaan yang banyak diminati, seperti; desain grafis, pengolahan citra dan digital fotografi. Selain itu, pada bidang ini, bangsa Indonesia tidak terlalu tertinggal jika dibandingkan dengan bidang ilmu komputer yang lain seperti jaringan komputer dan pemrograman. Bahkan banyak ditemui orang-orang yang sudah sangat ahli pada bidang-bidang yang digelutinya, meskipun belum ditemui orang yang mampu menghasilkan suatu game yang spektakuler. Grafik Komputer adalah suatu proses pembuatan, penyimpanan dan manipulasi model dan citra. Model berasal dari beberapa bidang seperti fisik, matematik, artistik dan bahkan struktur abstrak. Istilah ”Grafik Komputer” ditemukan tahun 1960 oleh William Fetter, pembentukan Design Model Cockpit (Boeing) dengan menggunakan Pen Plotter dan Referensi Model tubuh manusia 3D. Pengguna mengendalikan isi, struktur dan kemunculan objek serta menampilkan citra melalui suatu komponen dasar Visual Feedback. Grafis Komputer adalah grafis yang dibuat dengan menggunakan Komputer lebih umumnya adalah Representasi Piktorial dan manipulasi data dengan Komputer. Perkembangan Komputer grafis telah membuat Komputer lebih mudah untuk berinteraksi dan lebih baik untuk memahami dan menafsirkan berbagai jenis data. Perkembangan Komputer grafis memiliki dampak yang mendalam pada banyak jenis media dan telah merevolusi permainan Video Animasi dan Industri. Istilah Komputer grafis mencakup hampir semua yang ada di Komputer yang bukan merupakan teks atau suara. Hari ini hampir semua Komputer menggunakan beberapa grafis dan pengguna mengharapkan untuk mengendalikan Komputer mereka melalui ikon dan gambar, bukan hanya dengan mengetik. Istilah Computer Graphics memiliki beberapa arti, seperti Representasi dan Manipulasi data Piktorial oleh Komputer dari berbagai Teknologi yang digunakan untuk membuat dan memanipulasi data gambar-gambar tersebut, gambar yang dihasilkan, dan sub-bidang ilmu Komputer yang mempelajari metode untuk
13
Mensintesis Digital dan memanipulasi konten visual, lihat studi Komputer grafis lebih lanjut. Grafik Komputer dan gambar yang dihasilkan Komputer menyentuh banyak aspek kehidupan sehari-hari kita. Citra Komputer dapat ditemukan di televisi, di koran, laporan cuaca, dan masih banyak lagi. Komputer grafis yang dibangun dengan baik dapat menyajikan grafik statistik kompleks dalam bentuk yang lebih mudah untuk memahami dan menafsirkannya. Seperti grafik yang digunakan untuk menggambarkan surat-surat, laporan, tesis, dan bahan presentasi. Berbagai alat dan fasilitas yang tersedia untuk memungkinkan pengguna untuk memvisualisasikan data mereka, dan Komputer grafis yang digunakan dalam banyak disiplin ilmu.
2.6.1 Sejarah Grafika Komputer Sejarah perkembangan bidang grafika komputer tidak terpaut jauh dengan
perkembangan
dunia
komputer,
karena
keduanya
sangat
berhubungan erat. Meskipun pada mulanya komputer tidak menggunakan monitor, justru setalah menggunakan monitor dunia komputer mengalami perkembangan yang sangat pesat. Sejarah grafika komputer dimulai pada tahun 1961. Ketika itu seorang mahasiswa MIT, Ivan Sutherland, membuat suatu program penggambar yang disebut Sketchpad. Dengan menggunakan pena cahaya (light pen), Sketchpad mengijinkan seseorang untuk manggambar suatu bidang yang sederhana, menyimpan dan bahkan menampilkannya kembali. Pena cahaya tersebut memiliki sel photoelectric kecil pada ujungnya.
Sel tersebut
mengeluarkan getaran elektronik ketika diletakan di depan layar komputer, kemudian pistol elektron yang terdapat pada layar menembakkan elektron ke arah pena tersebut diletakkan. Dengan penemuannya tersebut, Sutherland mulai menemukan solusi dari permasalahan grafika komputer yang dia hadapi. Bahkan sekarang, banyak standar antarmuka grafika komputer yang bermula dari program Sketchpad. Salah satu contoh adalah dalam menggambar Constraints. Jika seseorang ingin menggambar kotak, misalnya, dia tidak perlu mengkhawatirkan tentang bagaimana menggambar empat garis secara sempurna untuk
14
menghasilkan sisi-sisi kotak tersebut. Dia hanya perlu menentukan lokasi dan ukuran kotak tersebut, kemudian Software akan membuat kotak yang sempurna, dengan dimensi dan lokasi yang tepat. Contoh lain adalah bahwa Sketchpad memodelkan objek, tidak hanya menggambar suatu objek. Pada tahun yang sama mahasiswa MIT lainnya, Steve Russel, berhasil membuat game pertama yang diberi nama Spacewar. Pada tahun 1963, E.E Zajac, ilmuwan di Bell Telephone Laboratory (BTL), menciptakan film yang dibuat oleh komputer yang diberi judul “Simulation of two-giro gravity attitude control system”. Pada film animasi tersebut, Zajac menunjukkan bagaimana kelakuan satelit bisa berubah pada saat mengorbit bumi. Dia membuat film animasi tersebut menggunakan komputer mainframe IBM 7090.
Dari institusi yang sama, BTL,
juga dihasilkan beberapa film
animasi oleh beberapa ilmuwan lain. Pada pertengahan tahun 60-an, beberapa perusahaan seperti TRW, Lockheed-Georgia, General Electric dan Sperry Rand mulai melirik untuk bergerak pada bidang grafika komputer. IBM cepat meresponnya dengan melepaskan komputer untuk grafis, IBM 2250, yang merupakan komputer grafis pertama. Hingga pertengahan tahun 80-an, banyak penelitian yang telah dilakukan dan menghasilkan penemuan-penemuan baru yang menambah khazanah bidang grafika komputer.
Fraktal, Animasi 3D, Texture Mapping dan
Rendering adalah beberapa contoh penemuan di bidang grafika komputer yang sangat berpengaruh pada perkembangan ilmu pengetahuan secara umum.
2.6.2 Pemanfaatan Grafika Komputer Pada awal bab ini telah dijelaskan mengenai beberapa keuntungan dari pemanfaatan grafika komputer. Untuk itu pada bagian ini akan dibahas mengenai spesifikasi bidang-bidang yang memanfaatkan grafika komputer. Bidang-bidang tersebut diantaranya:
15
a. Computer-Aided Design (CAD) CAD adalah suatu metode yang digunakan untuk merancang suatu model 3D yang sekarang sudah rutin digunakan untuk merancang gedung, mobil, model pesawat, komputer, tekstil dan banyak produk lainnya. Salah satu contoh yang perangkat lunak yang paling dikenal adalah AutoCAD.
b. Hiburan Tidak dipungkiri lagi bahwa pada bidang ini grafika komputer sudah sangat lazim digunakan, bahkan merupakan suatu kebutuhan. Industri film dan televisi merasakan sekali pentingnya grafika komputer. Hampir tidak ada satu pun film yang tidak memanfaatkan grafika komputer. Selain itu, grafika komputer juga dimanfaatkan pada pengembangan game di seluruh dunia. Bahkan game merupakan salah satu contoh yang hampir 100% menggunakan teknologi grafika komputer.
c. Pendidikan dan Pelatihan Pemodelan fisika, keuangan, dan sistem ekonomi sering digunakan sebagai tujuan pendidikan. Pemodelan dari sistem fisika, sistem fisilogis dan perkembangan populasi bisa membantu untuk memahami jalannya suatu sistem. Untuk beberapa aplikasi latihan, didesain sistem khusus. Contoh dari sistem khusus tersebut adalah simulator untuk sesi praktik atau latihan bagi kapten kapal, pilot pesawat terbang, operator peralatan berat control lalu lintas udara.
Beberapa
simulator tidak memiliki layar video, sebagai contoh adalah simulator penerbangan yang hanya terdapat panel kontrol untuk alat-alat penerbangan. Kebanyakan simulator menyediakan layar grafis untuk operasi visual.
16
d. Visualisasi Ilmuwan, teknisi, personil medis, analis bisnis dan lainnya sering membutuhkan untuk menganalisa banyaknya informasi atau melakukan studi atas kelakuan dari proses penting. Dengan menggunakan visualisasi akan semakin mempermudah untuk mempelajari, memahami dan melakukan analisa terhadap suatu permasalahan.
Dengan
adanya
visualisasi,
suatu
fungsi
matematika dapat menjadi suatu bentuk grafis yang menarik, sehingga orang-orang akan lebih tertarik untuk mempelajarinya.
e. Pengolahan Citra Perkembangan
perangkat
lunak
grafis
saat
ini
memungkinkan untuk melakukan pengolahan citra. Suatu citra yang telah rusak dapat diperbaiki kembali sehingga kualitasnya hampir menyamai citra yang masih baru. Selain itu, sering juga dipergunakan untuk melakukan eksperimen dan eksplorasi terhadap suatu citra, sehingga dapat menghasilkan citra lain yang lebih menarik. Adobe Photoshop, CorelDraw dan ACDSee adalah beberapa perangkat lunak yang sering dipergunakan untuk melakukan pengolahan citra.
f. Graphical User Interface Sampai akhir tahun 80-an, program-program yang tersedia kurang menarik karena kebanyakan tampilan pada monitor hanya berupa teks saja. Hal ini sungguh sangat menjemukan bagi para pengguna komputer. Microsoft dengan Windows-nya menggebrak
dengan
mengeluarkan
sistem
operasi
yang
menggunakan GUI (Graphical User Interface). Keuntungan dari penggunaan GUI ini adalah perangkat lunak atau program yang tersedia jadi lebih interaktif dan mudah
17
mengoperasikannya karena perintah-perintah program yang biasanya diketik cukup diwakili oleh satu tombol saja, bahkan satu tombol tersebut bisa mewakili beberapa perintah sekaligus. Tentu saja hal ini sangat menguntungkan karena setiap pengguna komputer tidak perlu lagi menghafal perintah-perintah yang
jumlahnya
relatif
banyak
dan
bermacam-macam
fungsinya. Ditambah lagi dengan adanya GUI ini setiap pengguna tidak membutuhkan waktu yang lama untuk menggunakan suatu program. Bahkan sudah banyak bahasa pemrograman yang digunakan untuk membangun suatu program yang menggunakan GUI seperti Delphi, Visual Basic dan Visual C.
2.6.3 Dasar-dasar Grafika Komputer a. Titik Titik merupakan elemen paling utama pada pembentukan suatu bidang geometri. Titik tidak memiliki arah atau besaran, namun titik dapat direpresentasikan sebagai sepasang koordinat pada suatu bidang.
Pada bidang kartesian 2 dimensi, letak suatu titik
tergantung pada besarnya nilai pada sumbu mendatar (Horizontal) dan sumbu tegak (Vertikal), atau biasa juga disebut sebagai sumbux dan sumbu-y.
Sementara untuk 3 dimensi ditambah dengan
sumbu-z untuk menentukan kedalaman.
Y
Y
.(3,5,3)
.(3,5) b.
X X Z (a)
(b)
Gambar 2.1 (a) Titik pada 2 dimensi. (b) Titik pada 3 Dimensi
18
b. Garis Garis adalah jarak terpendek diantara dua titik, atau sekumpulan titik yang saling berdekatan sepanjang jarak antara dua titik.
Y (4,5)
(1,2) X
Gambar 2.2 Garis pada bidang kartesian c. Poligon Poligon adalah bidang yang dibentuk oleh segmen-segmen garis. Tidak ada batasan jumlah segmen garis yang membentuknya, asalkan titik awal juga merupakan titik akhir. Artinya, poligon merupakan suatu bidang tertutup. Pada poligon, segmen garis juga disebut sebagai edges dan koordinat dari setiap titik pada tiap-tiap segmen disebut dengan vertices atau vertex. Beberapa contoh poligon yang sering kita temukan adalah segitiga, segiempat dan segilima. biasanya
ditentukan
oleh
Penamaan suatu poligon
banyaknya
segmen
garis
yang
membentuknya, meskipun bentuk dari bidang-bidang tersebut tidak selalu teratur.
Gambar 2.3 Macam-macam bentuk poligon
19
d. Vektor Secara umum vektor adalah suatu besaran yang memiliki nilai dan arah. Vektor dapat dikatakan juga sebagai selisih antara dua titik. Karena itu, untuk vektor dua dimensi, diperoleh persamaan:
V P2 P1 ( x2 x1 , y2 y1 )
(2-1)
(Vx ,Vy ) Dimana komponen kartesian Vx dan Vy merupakan proyeksi dari
V terhadap sumbu-x dan sumbu-y. Suatu vektor, secara geometri disajikan dengan ruas garis berararah.
P2
y2
V y1
P1 x2
x1
Gambar 2.4. Vektor pada bidang xy
Pada vektor 2D, besar atau panjang vektor dapat dihitung dengan menggunakan rumus:
V Vx2 V y2
(2-2)
20
a) Penjumlahan Vektor dan Perkalian Skalar Secara definisi, jumlah dua vektor didapatkan dengan melakukan
penjumlahan
komponen
yang
memiliki
korespondensi sama, seperti yang dapat dilihat berikut ini: V 1 V 2 (V1x V2 x ,V1 y V2 y )
(2-3)
Sementara penjumlahan antara vektor dengan skalar tidak didefinisikan.
Akan tetapi, perkalian vektor dengan skalar
dapat dilakukan, seperti contoh berikut: nV (nVx , nVy )
(2-4)
Dimana n adalah bilangan skalar.
b) Perkalian Skalar Dua Buah Vektor Perkalian vektor untuk menghasilkan suatu besaran skalar didefinisian dengan:
V 1 .V 2 V 1 V 2 cos ,
0
(2-5)
dimana adalah besar sudut antara dua buah vektor. Perkalian jenis ini disebut perkalian skalar atau perkalian titik (dot product). Perkalian titik dua buah vektor akan bernilai nol apabila kedua vektor tersebut saling tegak lurus. Perkalian titik memiliki sifat komutatif, sehingga:
V 1.V 2 V 2 .V 1
(2-6)
Dikarenakan perkalian tersebut menghasilkan nilai skalar, maka perkalian titik bersifat distributif terhadap penjumlahan vektor. V 1.(V 2 V 3 ) V 1.V 2 V 1.V 3
(2-7)
c) Perkalian Vektor Dua Buah Vektor Perkalian dua buah vektor untuk menghasilkan vektor yang lain, didefinisikan dengan persamaan:
21
V 1 V 2 u V 1 V 2 sin , 0
(2-8)
dimana u adalah unit vektor, bernilai 1 yang tegak terhadap V 1 dan V 2 , seperti yang terlihat pada gambar berikut.
V 1 V2
V2 u
V1
Gambar 2.5 Perkalian dua buah vektor Arah untuk u ditentukan oleh aturan tangan kanan (right-hand rule). Bayangkanlah sebuah sumbu yang tegak lurus V 1 dan
V 2 dan melalui titik asal. Kepalkan jari-jari tangan kanan, kecuali jempol, seolah-olah memegang sumbu ini dengan mengikuti arah V 1 ke V 2 . Pada saat tangan terkepal, maka jempol tangan kanan tersebut menunjuk ke arah u atau didefinisikan sebagai arah vektor V 1 V2 Pada perkalian vektor, tidak bersifat komutatif, sehingga: V 1 V 2 V 2 V 1
(2-9)
Karena itu urutan faktor-faktor dalam perkalian vektor sangatlah penting. Untuk skalar hal ini tidak menjadi masalah, karena urutan faktor dalam aljabar atau ilmu hitung biasa tidak mempengaruhi hasil akhirnya. Perkalian vektor sering juga disebut dengan perkalian silang atau cross product.
e. Matriks Matriks adalah sekumpulan bilangan yang disusun berdasarkan baris dan kolom dalam bentuk segiempat. Adapun unsur-unsur yang terdapat dalam matriks adalah:
22
-
Baris Matriks, merupakan susunan bilangan-bilangan yang letaknya mendatar (horizontal) dalam suatu matriks.
-
Kolom
Matriks,
merupakan
susunan
bilangan-
bilangan yang letaknya tegak (vertikal) dalam suatu matriks. -
Elemen Matriks, adalah bilangan-bilangan yang menyusun matriks tersebut dan diletaknya di dalam tanda kurung.
Baris
Kolom
Elemen
Gambar 2.6 Matriks
Ukuran suatu matriks ditentukan oleh banyaknya jumlah baris dan kolom. Sebagai contoh, apabila suatu matriks memiliki 4 baris dan 3 kolom, maka ukuran matriks tersebut adalah 4 X 3. Apabila jumlah baris dan kolom sama, maka matriks itu disebut matriks persegi. Secara umum, kita dapat menuliskan suatu matriks m x n sebagai berikut:
a11 a12 a a 22 A 21 a31 a32 a 41 a 42
... a1n ... a 2 n ... a3n ... a 4 n
Dimana ajk merupakan elemen matriks A.
Subskrip pertama
merupakan simbol untuk baris matriks, dan subskrip kedua merupakan simbol untuk kolom matriks.
23
Suatu matriks dengan jumlah baris atau kolom hanya satu dapat juga merupakan suatu vektor. Terdapat dua jenis vektor, yaitu vektor baris dan bektor kolom.
Secara umum, matrik bisa dilihat sebagai
sekumpulan vektor baris atau vektor kolom.
a) Perkalian Skalar dan Penjumlahan Matriks Untuk melakukan perkalian suatu matriks A dengan nilai skalar s, yang harus dilakukan adalah mengalikan setiap elemen dengan nilai s, sebagai contoh adalah:
1 2 3 A 4 5 6
(2-10)
3 6 9 3A 12 10 18
(2-11)
Maka,
Sementara penjumlahan matriks hanya dapat dilakukan apabila dua buah matriks memiliki jumlah baris dan sama. Jika matriks pertama memiliki ukuran m x n, maka matriks kedua pun harus memiliki ukuran m x n.
Operasi
penjumlahan dilakukan dengan menjumlahkan dua buah elemen pada baris dan kolom yang sama. Contoh:
1 2 3 4 4 6 4 3 2 0.5 6 3.5
(2-12)
b) Perkalian Matriks Perkalian dua buah matriks A berukuran m x n dengan matriks B berukuran p x q dapat dilakukan apabila n pada matriks A, memiliki jumlah yang sama dengan p pada matiks B. Matriks yang dihasilkan, AB, akan memiliki ukuran m x q. Matriks C merupakan perhitungan yang dilakukan berdasarkan persamaan berikut:
24
n
cij aik bkj
(2-13)
k 1
Pada contoh berikut, suatu matriks 3 x 2 dikalikan dengan matriks 2 x 2, sehingga menghasilkan matriks 3 x 2:
0 1 0.1 (1).3 0.2 (1).4 3 4 1 2 5 7 5.2 7.4 26 38 (2-14) 5.1 7.3 3 4 2.1 8.3 2.2 8.4 22 28 2 8 Perkalian matriks tidak bersifat komutatif, artinya apabila matriks A dikali kan dengan matriks B, menghasilkan matriks C, maka matriks B dikali A belum tentu menghasilkan matriks C juga. AB BA
(2-15)
Tetapi perkalian matriks memiliki sifat distributif, yaitu:
A( B C ) AB AC
(2-16)
c) Matriks Transpose Matriks transpose
didapatkan dengan melakukan
perubahan posisi baris dan kolom, dimana elemen pada baris berubah menjadi kolom, begitu juga sebaliknya, elemen kolom berubah menjadi elemen baris. Contoh:
1 4 a T 1 2 3 T 4 5 6 2 5 , a b c b (2-17) 3 6 c Untuk perkalian matriks, transposenya adalah:
( AB)T BT AT
(2-18)
f. Sistem Koordinat Menampilkan objek gambar secara 3D dapat mempermudah visualisasi dan penyampaian makna gambar dibandingkan dengan visualisasi secara dua dimensi (2D). Dari dahulu gambar 3D lebih
25
dekat dengan orang awam, karena kemudahan proses penyampaian informasi. Tujuan dari grafik 3D adalah untuk merepresentasikan alam tiga dimensi ke alam dua dimensi. Representasi dilakukan dalam dua dimensi karena media untuk menampilkan grafik tersebut, yaitu layar komputer adalah dua dimensi. Merepresentasikan objek dalam tiga dimensi dapat dilakukan dengan menggunakan sistem koordinat yang menyediakan tiga sumbu koordinat.
Tiga sumbu ini biasanya
dinamakan X,Y,Z. Terdapat dua macam sistem koordinat 3D yaitu sistem Tangan Kiri (Left-hand) dan sistem Tangan Kanan (Right-hand). Perbedaan dari kedua sistem ini terletak pada arah sumbu Z. Pada sistem Tangan Kiri koordinat yang lebih jauh mempunyai nilai Z yang lebih besar, sedangkan koordinat yang lebih dekat mempunyai nilai Z yang lebih kecil. Pada layar komputer, arah sumbu-Z terlihat seolah-olah menjauhi pengguna komputer.
Pada sistem Tangan Kanan, arah
sumbu-Z berkebalikan dengan Tangan Kiri, sehingga pada layar komputer terlihat seolah-olah mendekati pengguna komputer. Y
Y
Z X (a)
X Z
(b)
Gambar 2.7 (a) Sistem koordinat tangan kiri (b) Sistem kordinat tangan kanan g. Proyeksi Proyeksi adalah cara untuk menampilkan atau menyajikan suatu objek 3D ke dalam suatu bidang 2D. Beberapa contoh bidang 2D adalah kertas dan monitor. Terdapat dua jenis metode proyeksi yang
26
sering digunakan, yaitu Proyeksi Paralel (parallel projection) dan Proyeksi Perspektif (perspective projection)
a. Proyeksi Paralel Pada proyeksi paralel, suatu objek diproyeksikan terhadap bidang sepanjang garis secara paralel. Dengan menggunakan metode ini ukuran dan bentuk objek tidak berubah.
P2
P1
P2’
P1’
Gambar 2.8 Proyeksi Paralel
b. Proyeksi perspekti Pada proyeksi perspektif, objek diproyeksikan pada bidang sepanjang garis yang berpusat pada satu titik yang disebut Projection Reference Point atau Center of Projection (pusat proyeksi).
Dengan
menggunakan metode ini, terjadi perubahan bentuk dan ukuran objek, karena setiap objek yang mendekati titik pusat proyeksi akan berukuran lebih kecil daripada aslinya.
27
P2 P2’
pusat proyeksi P1’
P1
Gambar 2.9 Proyeksi Perspektif
h. Transformasi Transformasi merupakan suatu proses untuk melakukan perubahan pada suatu objek.
Terdapat beberapa jenis trasnsformasi, yaitu
translasi, rotasi dan skala.
a. Translasi Translasi adalah proses pemindahan letak objek dari suatu posisi ke posisi yang lainnya.
Proses
translasi
operasi
dilakukan
dengan
melakukan
pertambahan suatu titik dengan jarak translasi. Misalkan suatu titik A(x,y) ditranslasikan sejauh T(tx,ty), maka posisi titik setelah ditranslasikan adalah A’(x’,y’). Pada translasi berlaku rumus:
x' x t x y' y t y
(2-19)
Persamaan di atas dapat juga direpresentasikan dengan menggunakan matrix.
t x x x' A , A' , T y y ' t y
(2-20)
Sehingga, persamaan (2-19) di atas dapat pula dituliskan dengan cara berikut:
28
A' A T
(2-21)
Gambar 2.10 Translasi pada Objek 2D
Pada bidang 3 dimensi, metode yang digunakan merupakan pengembangan dari metode 2 dimensi dengan menyertakan koordinat z. Untuk melakukan translasi
suatu
titik
A(x,y,z)
sejauh
T(t x,ty,tz)
digunakan rumus: x' x t x y' y t y
(2-22)
z' z t z
Persamaan (2-22) di atas, dapat pula ditampilkan dalam bentuk matriks translasi di bawah ini:
x' 1 y ' 0 z ' 0 1 0
0 0 tx x 1 0 t y y . 0 1 tz z 0 0 1 1
(2-23)
atau dapat pula dituliskan dengan persamaan berikut:
A' T . A
Gambar 2.11 Translasi pada Objek 3D
(2-24)
29
b. Skala Skala adalah proses untuk merubah ukuran dan posisi suatu objek. Operasi ini dilakukan dengan melakukan perkalian terhadap koordinat titik A(x,y) dengan faktor skala sx dan sy untuk menghasilkan koordinat baru A’(x’,y’).
x' x.s x , y' y.s y
(2-25)
Faktor skala sx merupakan skala object pada sumbu-x, sementara sy skala pada sumbu-y. Persamaan (2-25) dapat juga dituliskan dalam bentuk matriks.
x' s x y ' 0
0 x . s y y
(2-26)
atau
A' S. A
(2-27)
Nilai faktor skala > 1 akan menyebabkan bidang menjadi lebih besar dan posisi titik menjadi s kali lebih jauh, sementara untuk nilai faktor skala <1 akan mengurangi ukuran objek. Nilai faktor skala = 0 akan menyebabkan objek hilang, meskipun sebenarnya objek tersebut berubah menjadi titik, yaitu (0,0).
(6,6)
(3,3) (2,2) (1,1)
Gambar 2.12. Skala Objek 2D dengan nilai skala 3 untuk x dan y
30
Pada objek 3D, maka persamaan skala yang digunakan adalah sebagai berikut:
x' x.s x , y' y.s y , z ' z.s z
(2-28)
Operasi matriks untuk skala pada bidang 3D di titik A(x,y,z) bisa ditulis sebagai berikut:
x' s x y ' 0 z' 0 1 0
0 sy
0 0
0 0
sz 0
0 x 0 y . 0 z 1 1
(2-29)
atau
A' S. A
(2-30)
Gambar 2.13 Skala pada Objek 3D
c. Rotasi Rotasi 2 dimensi digunakan terhadap objek dengan melakukan perputaran sepanjang jalur bundar pada bidang xy.
Untuk melakukan rotasi, harus
ditentukan terlebih dahulu sudut rotasi dan posisi (xr,yr) dari titik rotasi (pivot point) sebagai tempat dimana objek akan di rotasi. Nilai positif untuk sudut rotasi akan menentukan perputaran berlawanan dengan arah jarum jam terhadap pivot point,
31
sedangkan nilai negatif akan menentukan perputaran sesuai dengan arah jarum jam. Pertama kali yang harus dilakukan adalah dengan menentukan persamaan transformasi untuk rotasi dari titik A sementara pivot point adalah titik pusat (0,0). Hubungan antara sudut dan koordinat dari titik asli dan titik yang telah ditransformasi dapat dilihat pada gambar berikut.
(x’,y’) r
θ r
(x,y)
Φ
Gambar 2.14 Hubungan antara sudut dan koordinat pada rotasi Pada gambar di atas, r merupakan konstanta untuk jarak titik dari titik pusat, sudut Φ merupakan besarnya sudut titik awal dari sumbu mendatar, dan sudut θ merupakan sudut perputaran. Menggunakan trigonometri
standar,
kita
dapat
menentukan
koordinat transformasi sebagai berikut: x' r cos( ) r cos cos r sin sin (2-31) x' r sin( ) r cos sin r sin cos
Koordinat titik awal pada koordinat polar adalah
x r cos , y r sin
(2-32)
Dengan melakukan substitusi persamaan (2-32) ke dalam persamaan (2-31), akan didapatkan persamaan transformasi untuk perputaran titik pada posisi (x,y) sebesar sudut θ.
32
x' x cos y sin y ' x sin y cos
(2-33)
Dengan representasi vektor, kita dapat menuliskan persamaan rotasi dalam bentuk matriks:
A' R. A
(2-34)
dimana matriks rotasi adalah
cos R sin
sin cos
(2-35)
Rotasi titik di sekitar posisi pivot yang kita kehendaki dapat dilihat pada gambar berikut. (x’,y’) r
θ
(x,y)
r Φ
(xr,yr)
Gambar 2.15 Perputaran dengan pusat pada titik (xr,yr) Menggunakan
hubungan
trigonometri,
maka
dilakukan perubahan pada persamaan (2-33) untuk mendapatkan persamaan transformasi untuk rotasi pada posisi (xr,yr).
x' xr ( x xr ) cos ( y y r ) sin y ' y r ( x xr ) sin ( y y r ) cos
(2-36)
Rotasi pada objek 3D berbeda dengan objek 2D. Tidak seperti aplikasi pada 2D, dimana seluruh transformasi hanya berputar pada bidang xy seperti halnya kita melihat perputaran jam, pada 3D kita dapat menentukan perputaran pada setiap sumbu.
33
Untuk melakukan perputaran pada sumbu-z, maka dihasilkan persamaan sebagai berikut: x' x cos y sin y ' x sin y cos
(2-37)
z' z
Persamaan di atas dapat diubah ke dalam bentuk matriks sebagai berikut:
x' cos y ' sin z' 0 1 0
sin cos 0 0
0 0 x 0 0 y . 1 0 z 0 1 1
(2-38)
Atau dapat juga ditulis
A' Rz ( ).A
(2-39)
Hal yang sama juga dapat dilakukan untuk rotasi pada sumbu-x dan sumbu-y.
Untuk perputaran pada
sumbu-x, persamaan yang didapat adalah: y ' y cos z sin z ' y sin z cos
(2-40)
x' x
Apabila diubah ke dalam bentuk matriks akan menghasilkan:
0 x' 1 y ' 0 cos z ' 0 sin 0 1 0
0 sin cos 0
0 x 0 y . 0 z 1 1
(2-41)
Atau dapat juga ditulis
A' Rx ( ). A
(2-42)
Sedangkan perputaran pada sumbu-y, persamaan yang didapat adalah:
z ' z cos x sin x' z sin x cos
(2-43)
y' y Bentuk matriks untuk persamaan di atas adalah:
34
x' cos y ' 0 z ' sin 1 0
0 sin 1 0
0 x 0 y . 0 z 1 1
0 cos 0 0
(2-44)
Atau dalam bentuk sederhananya adalah: A' R y ( ). A
(2-45)
Gambar-gambar
berikut
ini
menggambarkan
mengenai perputaran pada masing-masing sumbu, yaitu x, y dan z.
Y
Y
X
X
Z
Z (a)
(b) Y
X Z
(c)
Gambar 2.16. Rotasi Objek 3D (a). Rotasi pada sumbux (b).Rotasi pada sumbu-y (c). Rotasi pada sumbu-z
35
2.7 UNIFIED MODELLING LANGUAGE (UML) Unified Modelling Language (UML) adalah sekumpulan simbol dan diagram umtuk memodelkakan perngkat lunak. Desain dalam bentuk simbol dan diagram, kemudian dapat diterjemahkan menjadi kode program. Telah tersedia alat-alat (tools) yang dapat membuat kode program berdasarkan UML Class Diagram. Implementasi kode program dari diagram UML dapat menggunakan bahasa pemrograman apa saja dengan syarat bahasa pemrograman tersebut harus mendukung pemrograman berorientasi Objek (PBO) seperti C++, Java, C#, atau VB.NET (Munawar;2005, P26). UML adalah bahasa standar untuk membuat model. Model adalah deskripsi masalah atau topik dari aplikasi yang akan dibuat. Dengan menggunakan model, tim pengembang akan terbantu dalam memahami lingkup masalah yang akan dipecahkan. Model adalah visualisasi dari aplikasi yang akan dibangun. Dengan UML semua anggota dapat berbicara dengan bahasa yang sama. UML menyediakan beberapa jenis diagram untuk mempresentasikkan entities dan relationship yang terdapat di dalam aplikasi (Munawar;2005, P26). Tahapan pembangunan aplikasi berorientasi objek pada umumnya bersifat iteratif dan incremental. Proses pembanguan aplikasi dibagi menjadi beberapa sikluls. Setiap kali satu siklus dilakukan, dilakukan evaluasi sebagai bahan untuk memulai siklus berikutnya (Munawar;2005, P26). Setiap siklus biasanya terdiri atas:
Tahap Analisa Permintaan
Tahap Analisa Sistem
Tahap Desain
Tahap Implementasi UML akan digunakan pada tahap analisa dan desain. Desain yang dihasilkan berupa diagram-diagram UML yang akan diterjemahkan menjadi kode program pada tahap implementasi (Munawar;2005, P26). Pada penelitian ini penulis menggunakan diagram yaitu Use Case Diagram dan Activity Diagram.
36
2.7.1 Diagram Use Case (Use Case Diagram) Diagram Use Case ini digunakan untuk menunjukan fungsionalitas dari suatu sistem dari sudut pandang pengguna atau user. OMG atau Objek Management Group telah mendefinisikan notasi grafis untuk Use Case, tetapi tidak sampai pada menuliskan secara detail Use Case-nya. Diagram Use Case mendeskripsikan interaksi tipikal antara para pengguna sistem dengan sistem itu sendiri dengan memberi sebuah narasi tentang bagaimana sistem tersebut digunakan (Fowler;2005, P141). Sedangkan notasi-notasi yang digunakan dalam pemodelan diagram Use Case dapat dilihat pada tabel 2.1
NO
GAMBAR
NAMA
KETERANGAN Menspesifikasikan himpuan peran yang
1
Actor
pengguna
mainkan
ketika
berinteraksi
dengan Use Case. Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (Independent) 2
Dependency
akan
mempengaruhi
elemen
yang
bergantung padanya elemen yang tidak mandiri (Independent). Hubungan 3
Generalization
dimana
objek
anak
(Descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (Ancestor).
4
Include
Menspesifikasikan
bahwa
Use
Case
sumber secara Eksplisit. Menspesifikasikan bahwa Use Case target
5
Extend
memperluas perilaku dari Use Case sumber pada suatu titik yang diberikan.
6
Association
Apa yang menghubungkan antara objek satu dengan objek lainnya.
37
7
System
Menspesifikasikan
Use Case
yang
menampilkan sistem secara terbatas.
Deskripsi 8
paket
dari
urutan
aksi-aksi
yang
ditampilkan sistem yang menghasilkan suatu hasil yang terukur bagi suatu aktor Interaksi aturan-aturan dan elemen lain
9
Collaboration
yang bekerja sama untuk menyediakan prilaku yang lebih besar dari jumlah dan elemen-elemennya (sinergi). Elemen fisik yang eksis saat aplikasi
10
Note
dijalankan
dan
mencerminkan
sumber daya komputasi
Tabel 2.1 Simbol Diagram Use Case (Use Case Diagram)
2.7.2 Diagram Aktivitas (Activity Diagram) Diagram aktifitas menggambarkan berbagai alur aktifitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, keputusan yang mungkin terjadi, bagaimana mereka berakhir, dan juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi (Munawar:2005, P28). Oleh karena itu diagram aktifitas tidak menggambarkan perilaku internal sebuah sistem dan interaksi antar subsistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktifitas dari level atas secara umum. Sedangkan notasi-notasi yang digunakan dalam pemodelan diagram aktifitas dapat dilihat pada tabel 2.2.
suatu
38
NO
GAMBAR
NAMA
KETERANGAN Memperlihatkan bagaimana masing-
Actifity
1
masing
kelas
antarmuka
saling
berinteraksi satu sama lain 2
Action
3
Initial Node
State dari sistem yang mencerminkan eksekusi dari suatu aksi Bagaimana
Node Fork Node
5
dibentuk
atau
objek
dibentuk
dan
diawali.
Actifity Final Bagaimana
4
objek
dihancurkan Satu aliran yang pada tahap tertentu berubah menjadi beberapa aliran
Tabel 2.2 Simbol Diagram Aktivitas (Activity Diagram)
2.7.3 Sequence Diagram Sequence Diagram menurut Munawar (2005: 187) adalah grafik dua dimensi dimana obyek ditunjukkan dalam dimensi horizontal, sedangkan lifeline ditunjukkan dalam dimensi vertikal.
NO
GAMBAR
NAMA
KETERANGAN Objek Entity, antarmuka yang saling berinteraksi.
1
2
LifeLine
Message
Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi
39
3
Message
Spesifikasi dari komunikasi antar objek yang memuat informasiinformasi tentang aktifitas yang terjadi
Tabel 2.3 Simbol Squence Diagram
2.7.4 Class Diagram Class Diagram menurut Munawar (2005: 28) merupakan himpunan dari objek-objek yang sejenis. Sebuah objek memiliki keadaan sesaat (State) dan perilaku (Behavior). State sebuah objek adalah kondisi objek tersebut yang dinyatakan dalam attribute/properties. Sedangkan perilaku suatu objek mendefinisikan bagaimana sebuah objek bertindak/beraksi dan memberikan reaksi.
NO
GAMBAR
NAMA
KETERANGAN Hubungan
1
Generalization
dimana
objek
anak
(Descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (Ancestor).
2
Nary Association
Upaya untuk menghindari asosiasi dengan lebih dari 2 objek.
Himpunan dari objek-objek yang 3
Class
berbagi atribut serta operasi yang sama. Deskripsi dari urutan aksi-aksi yang
4
Collaboration
ditampilkan menghasilkan
sistem suatu
terukur bagi suatu aktor
hasil
yang yang
40
Operasi yang benar-benar dilakukan 5
Realization
oleh suatu objek.
Hubungan dimana perubahan yang terjadi pada suatu elemen mandiri 6
Dependency
(independent)
akan
mempegaruhi
elemen yang bergantung padanya elemen yang tidak mandiri Apa yang menghubungkan antara 7
Association
objek satu dengan objek lainnya
Tabel 2.4 Simbol Class Diagram