Sabtu, 15 Juni 2013

Sistem Interaktif

Apakah yang dimaksud dengan sistem interaktif ? Ya sebelum membahas sistem interaktif kita harus mengetahui apa yang dinamakan dengan sistem, dan interaktif.Sistem merupakan suatu unsur yang saling berkaitan satu dengan yang lain untuk mencapai suatu tujuan tertentu, sedangkan interaktif merupakan sebuah interaksi, hubungan atau keterkaitan. Sehingga sistem interaktif dapat didefinisikan sebagai suatu unsur yang saling berkaitan dalam sebuah interaksi. Sistem interaktif dapat dicontohkan dalam implementasi dari segi entertainment dan pemrograman.

Sistem interaktif dilihat dari segi entertainment merupakan usaha dalam memproduksi dan mendistribusikan sebuah produk atau layanan yang memiliki nilai hiburan yang ditujukan kepada pengguna dari suatu produk dan layanan yang ada.




Sedangkan dari segi program, sistem interaktif merujuk kepada sistem aplikasi perangkat lunak komputer yang dapat berinteraksi langsung dengan manusia. Interaktivitas pada aplikasi komputer ini meliputi aplikasi yang sering digunakan sehari-hari seperti pengolah kata dan pengolah grafis. Sebuah program disebut interaktf  jika memiliki desain grafis yang baik dan juga user friendly terhadap GUI (Graphical User Interface) atau yang biasa disebut antar muka yang menggunakan menu grafis agar mempermudah para pengguna-nya untuk berinteraksi. Adapun komponen-komponen GUI adalah sebagai berikut :











Dari setiap komponen-komponen gui memiliki event (suatu kejadian yang terjadi karena adanya interaksi user dengan komponen-komponen GUI.) yang berbeda-beda. Adapun event macam-macam jenis event adalah sebagai berikut :

Event Source
Komponen GUI yang membuat event atau tempat terjadinya event.yaitu berupa komponen-komponen visual, seperti : button, combo box, text field, etc.

Event Model
Interaksi antara user dan komponen GUI. Untuk mendeskripsikan bagaimana program merespon interaksi user terdapat bagian-bagian penting yaitu event source dan event listener / Handler.

Event Listener
Objek penerima & pengolah event. Menerima dan menangani event, mengandung business logic. Contoh: menampilkan informasi penting ke user, melakukan komputasi matematis, dan lain sebagainya.

Event Object
Objek yang terbentuk saat terjadi event. Yaitu ketika user berinteraksi dengan komponen GUI. Seperti : tekan button, ketik di text field, dll. Mengandung semua informasi yang berhubungan dengan event yang muncul, seperti : Tipe event yang muncul, asal dari event tersebut. Direpresentasikan oleh class Event.

Event Handler
Event Handler berupa blok method dari listener yang menentukan proses selanjutnya setelah komponen mendapatkan event. Misalkan pada event tombol simpan ditekan, event listener akan menangkap event pada Event Source tombol Simpan, kemudian Event Handler akan menyimpan data yang akan didefenisikan pada blok Event Handler.

Dalam konsep interaktif program/ program interaktif, event memiliki peran yang tidak jauh berbeda dengan yang telah disebutkan diatas, yaitu sebagai pengelola interaksi antara user dengan program yang berjalan. Setiap event dibentuk sesuai dengan algoritma yang dituju. 


Sumber :
http://ghadinkz23.blogspot.com/2010/12/pengertian-gui-dan-cli.html
http://id.wikipedia.org/wiki/Antarmuka_pengguna_grafis
http://www.andisun.com/jurnal/basic-mendesain-graphical-user-interface-gui













Kamis, 13 Juni 2013

Tugas Proyeksi Orthographic dan Proyeksi Perspective


1.   Sebutkan algoritma untuk menggambar garis!
Algoritma Penggambaran garis terdiri dari :
·         Algoritma Bresenham,
·         Algoritma midpoint dan
·         Algoritma DDA.



 2.    Berikan satu (1) algoritma untuk menggambar garis!

Garis Lurus
Garis lurus dinyatakan dinyatakan dalam persamaan :
y = mx + c (1)
dimana : m : gradient dan
c : konstanta.
Untuk menggambarkan piksel-piksel dalam garis lurus, parameter yang digunakan tergantung dari gradient, jika besarnya gradient diantara 0 dan 1, maka digunakan sumbu x sebagai parameter dan sumbu y sebagai hasil dari fungsi, sebaliknya, bila gradient melebihi 1, maka sumbu y digunakan sebagai parameter dan sumbu x sebagai hasil dari fungsi, hal ini bertujuan untuk menghindari terjadinya gaps karena adanya piksel yang terlewatkan. Hasil dari fungsi biasanya merupakan bilangan riel, sedangkan koordinat pixel dinyatakan dalam bilangan integer (x,y), maka diperlukan operasi pembulatan kedalam bentuk integer terdekat. Penggambaran garis lurus dengan metode diatas dimulai dengan operasibilangan riel untuk menghitung gradient m dan konstanta c.
m = (y2 - y1 ) / (x2-x1) (2)
c = y1 ? m* x1* (3)
.

Algoritma Midpoint
Algoritma midpoint dikembangkan oleh Pitteway pada tahun 1967. Pada gambar 1, titik abu-abu menyatakan posisi piksel, titik hitam menyatakan posisi piksel yang telah digambar. Berdasarkan piksel ke n yang telah digambar, diperlukan metode untuk menentukan piksel berikut yang akan digambar, karena penggambaran dilakukan dari kiri ke kanan, maka piksel berikutnya harus pada kolom n+1. Karena gradien diantara 0 dan 1, maka piksel berikutnya adalah pada posisi titik p atau titik q.

Persamaan garis lurus yang telah dinyatakan dalam persamaan (1) dapat dinyatakan dalam fungsi x,y berikut.
·         f(x, y) = ax + by + c = 0 *(4)

Fungsi f(x,y) dalam persamaan (4), akan memberikan nilai 0 pada setiap titik yang terletak pada garis, dan bernilai positip pada setiap titik yang terletak dibawah garis, dan bernilai negatif pada setiap titik yang terletak diatas garis. Maka untuk menentukan apakah titik P atau Q sebagai koordinat piksel berikutnya, maka dilakukan dengan cara menghitung nilai fungsi f(x,y) dalam persamaan (4) pada titik P dan titik Q . Jika fungsi f(x,y) tersebut memberikan nilai positif, maka piksel berikutnya adalah Q, sebaliknya piksel berikutnya adalah P.

g(x, y) = f(xn + 1, yn + 1/2) *(5)

Fungsi g(x,y) persamaan (5) merupakan variabel penentu, dengan mengevaluasi             g (x, y) dapat ditentukan piksel berikutnya yang mana berdasarkan tanda plus atau minus dari hasil fungsi g(x,y). Untuk mempercepat komputasi fungsi g(x,y), dilakukan dengan cara incremental berdasarkan nilai sebelumnya. Untuk setiap piksel, increment sederhana (DeltaG) dipakai sebagai variabel penentu. Karena hanya ada 2 pilihan piksel pada setiap tahap, maka hanya ada 2 increment yang dapat digunakan. Hal ini dilakukan dengan cara pengurangan nilai g(x,y) yang berurutan dengan menggunakan persamaan 4 dan persamaan 5.

·         DeltaG = a * DeltaX + b * DeltaY *(6)
Dimana DeltaX dan DeltaY adalah increment yang dipakai pada x dan y, yang bernilai 0 atau 1. Bila bergeser 1 piksel ke kanan :
o   *DeltaG1 = a* (7)
Bila bergeser 1 piksel ke kanan dan 1 piksel ke atas :
o   *DeltaG2 = a + b *(8)

Jadi nilai dari variable penentu dapat dihitung dari nilai sebelumnya dengan cara menambah dengan (a) atau (a+b). Algoritma untuk menggambar garis lurus dari (x1, y1) sampai (x2, y2) dilakukan dengan langkah-langkah sebagai-berikut:
1.      Gambar piksel pertama (x1,y1). Hitung variabel penentu dengan persamaan (3).
2.      Tentukan tanda variabel penentu. Jika variabel penentu bernilai positif, increment x dan y dan tambahkan (a+b) pada vaiabel penentu, sebaliknya increment x dan y dan tambahkan (a) pada variabel penentu.
3.      Plot piksel pada posisi (x, y).
4.      Ulangi langkah mulai langkah kedua, sampai piksel terakhir (x2,y2).

Lingkaran
Kurva lingkaran dinyatakan dinyatakan dalam persamaan :
·         (x-xc) ^2 + (y-yc) ^2 = r ^2 *(9)
dimana : (xc,yc) : koordinat titik pusat lingkaran
r : jari-jari lingkaran
Untuk menggambarkan piksel-piksel dalam kurva lingkaran, dapat digunakan sumbu x dari
x = (xc-r) sampai x = (xc+r) sebagai parameter dan sumbu y sebagai hasil dari persamaan (10)
·         y = yc +- sqrt(r ^2 - (x-xc) ^2 *(10)
Algoritma ini memerlukan waktu operasi yang besar, karena mengandung operasi bilangan riel perkalian maupun eksponential, dan menghasilkan posisi koordinat piksel yang tidak merata, karena terjadinya gaps yang disebabkan adanya perubahan gradient.
Untuk menghindari posisi koordinat piksel yang tidak merata, koordinat piksel (x,y) dinyatakan dengan menggunakan koordinat polar dalam persamaan (11)
·         x = xc + r cos q *(11a)
·         y = yc + r sin q *(11b)
Persamaan (11) diatas mengandung operasi bilangan riel perkalian untuk mendapatkan koordinat piksel (x,y), untuk setiap nilai x, dari x = (xc-r) sampai x = (xc+r), operasi inilah yang perlu dihindari, karena operasi ini memerlukan waktu operasi yang besar.
Algoritma Midpoint
Komputasi untuk membuat kurva lingkaran dimulai dengan mengidentifikasi bagian-bagian dari lingkaran yang dapat ditentukan dengan menggunakan sifat simetri, hal ini dilakukan dengan cara membagai lingkaran dengan masing-masing mempunyai sudut sebesar 45° , sehingga dalam sebuah lingkaran dibagi menjadi 8 bagian. Sebagai contoh, digambarkan bagian dari lingkaran dari sudut 90° sampai 45° . Seperti pada algoritma midpoint untuk garis lurus, maka pada setiap tahapan, terdapat 2 koordinat piksel yang harus dipilih yaitu (x+1, y) atau (x+1, y-1).
Gambar 2. Lingkaran
Langkah berikutnya, adalah menyatakan persamaan lingkaran dan fungsi untuk menentukan variabel penentu. Persamaan lingkaran dengan pusat (0,0) dinyatakan dalam persamaan (12).
·         f(x, y) = x*x + y+y - r*r = 0 *(12)
Fungsi f(x, y) persamaan (12) akan bernilai positif jika titik (x,y) diluar lingkaran, dan bernilai negatif jika titik (x,y) didalam lingkaran. Fungsi untuk variabel penentu dan increment dinyyatakan dalam persamaan (13), (14), dan (15).
g(x, y) = (x + 1) (x + 1) + (y - 1/2) (y - 1/2) - r*r (13)
·         DeltaG1 = 2x + 3 (14)
·         DeltaG2 = 2x - 2y + 5 (15)
Berbeda dengan nilai dari increment pada algoritma garis lurus yang bernilai konstan, pada kurva lingkaran, increment tidak konstan. Terlihat bahwa komputasi increment memerlukan operasi perkalian, tetapi operasi perkalian dapat diubah dengan cara komputasi nilai increment secara increment pula, sehingga diperlukan 2 komputasi increment dalam setiap piksel yang diproses. Secara umum, kurva polinomial orde n memerlukan n level increment. Pada titik awal (x1,y1), komputasi variabel penentu mempunyai bagian bilangan riel, sehingga operasi bilangan integer tidak dapat digunakan secara langsung.
Dalam praktek hal ini diselesaikan dengan cara menambahkan nilai 1/4 pada variable penentu. Hal ini tidak mempengaruhi perubahan tanda bilangan, karena operasi yang dilakukan adalah operasi bilangan integer, sehingga menghasilkan operasi yang lebih cepat


3.  Berikan contoh gambar garis dengan bentuk tepi Butt, Round, dan Square!




4.  Penggabungan garis Ugly, Bevel, Round, Miter



-          Ugly Join
Penggabungan dua buah garis yang memilik sudut pertemuan menjorok kedalam.
-          Bevel
Penggabungan dua buah garis yang memilik sudut pertemuan menjorok keluar.

-          Round
Penggabungan dua buah garis dengan membentuk lengkungan.
-          Miter
Penggabungan dua buah garis yang membentuk lancip.


5.  Contoh Gambar




a.       Transformasi






b.       Share





c.       Scale






6.  Transformasi linear merupakan perpindahan dari satu ruang yang biasanya dinamakan dengan domain atau daerah asal ke ruang lain yang dinamakan kodomain atau daerah hasil. Dan Transformasi non linear transformasi.







7. Berikan contoh Linear Transformation dan Non-Linear Transformation dari Operasi-Operasi Primitive transformation!
a.       Transformasi Linear

Tunjukan bahwa  









b.       Transformasi Non Linear



1 8.    Apakah perbedaan antara Geometric Transformation dan Color Space Transformation?

Transformasi geometri adalah bagian dari geometri yang membahas tentang perubahan (letak,bentuk , penyajian) yang didasarkan dengan gambar dan matriks sedangkan Color Space Transformation membahas cara-cara mentransfomasi warna dalam model warna tertentu saja dan merupakan bagian dari pengolahan citra.

   9. Apakah yang dimaksud dengan Koordinat Homogen (Homogeneous Coordiantes)?
Koordinat homogen adalah representasi koordinat 2 dimensi dengan 3 vektor

310.  Berikan penjelasan mengenai Proyeksi Orthographic?
Proyeksi merupakan salah satu jenis transformasi , yaitu transformasi koordinat. Proyeksi merupakan proses dimana informasi tentang titik di sebuah sistem koordinat berdimensi n dipindahkan ke system koordinat berdimensi kurang dari n. Proyeksi Ortographic merupakan bagian dari proyeksi Paralel.

Proyeksi Orthographic diperoleh apabila sinar proyeksi tegak lurus dengan bidang proyeksi. Proyeksi orthographic sering digunakan untuk menghasilkan tampak depan, tampak belakang, tampak samping dan tampak atas dari sebuah benda atau disebut sebagai Multiview orthographic. Tampak atas, tampak belakang dan tampak dari samping sebuah benda sering disebut sebagai elevation. Sedangkan tampak dari atas disebut sebagai plan view.

Transformasi untuk proyeksi multiview orthographic dapat diperoleh dengan rumus

Proyeksi terhadap bidang x-z:qx = px,qy =pz
Proyeksi terhadap bidang y-z:qx = px,qy =pz
Proyeksi terhadap bidang x-y:qx = px,qy =py

Dimana q(x,y) merupakan titik hasil proyeksi dari p(x,y,z) seperti digambarkan di bawah ini :





111.   Berikan penjelasan mengenai Proyeksi Perspective?
Proyeksi perspektif memberikan sudut pandang yang lebih realistis dibandingkan proyeksi orthographic. Proyeksi perspektif pada kenyataannya jarak benda terhadap kita akan mempengaruhi bagaimana benda tersebut terlihat. Benda yang terlihat jauh akan kelihatan kecil sedangkan benda yang dekat akan terlihat lebih besar. Efek ini disebut sebagai shortening. Pada perspektif semua garis menghilang pada satu atau lebih titik yang sama atau disebut titik hilang (vanishing point).


112.   Berikan contoh gambar dua proyeksi tersebut!
-          Proyeksi Ortographic


-          Proyeksi Prespective



13. Buatlah tabel perbandingan diantara dua proyeksi tersebut!