Jurnal INFORMASI Vol.4 No.2 (6), November 2011 53 PEMODELAN DAN OPERASI GRAFIK VEKTOR SURVACE 3D DENGAN MEMANFAATKAN FUNGSI RUMUS-RUMUS MATEMATIK TRIGONOMETRI Dede Suryana,Ir.,M.Si Teknik Informatika, STMIK IM, Jl.Jakarta No.79 Bandung [email protected] Abstrak Grafik komputer adalah salah satu disiplin ilmu yang mendukung komputerisasi grafis. Saat ini kita dapat melihat bahwa teknologi grafik komputer telah banyak dimanfaatkan oleh berbagai kalangan untuk menunjang berbagai kebutuhan manusia, salah satunya kalangan matematikawan untuk menampilkan secara visual formula-formula matematika ke dalam grafik komputer tiga dimensi. Teknik penyajian objek gambarnya juga berbeda-beda, salah satunya model rangka. Pendekatan model operasi grafik vektor dilakukan dengan transformasi rotasi objek grafik tiga dimensi dengan pendekatan algoritma yang digunakan untuk membangkitkan dan memanipulasi gambar pada layar tampilan, Untuk proses transformasi banyak melibatkan fungsi matematika, salah satunya menggunakan fungsi matriks dan vektor, sehingga objek grafis tersebut dapat dimanipulasi dan di proyeksikan dari berbagai arah dan sudut pandang yang berbeda. Keyword: grafik komputer, pemodelan, trigonometri 1. Pendahuluan Teknologi grafika komputer telah banyak dimanfaatkan untuk menunjang berbagai kebutuhan manusia, salah satunya yang sangat terkenal adalah pemanfaatan grafik komputer dalam pembuatan permukaan tiga dimensi yang banyak di gunakan oleh bidang sains dan teknologi, kalangan matematikawan untuk menggambar, mengukur dan menyajikan hasil formulasi ke bentuk objek secara visual, misalnya menampilkan objek berdasarkan fungsi rumus matematika biasa, berdasarkan fungsi invers dan juga hyperbola yang bisa di evaluasi dalam berbagai bentuk dan sudut pandang yang berbeda dan banyak hal lagi yang memanfaatkan grafik komputer. Topik tentang grafik komputer tentu tidak terlepas dari berbagai metoda dan algoritma yang diperlukan untuk membangkitkan gambar pada layar tampilan dan cara memanipulasi gambar agar sesuai dengan yang di inginkan. lebih jauh, fungsi rumus-rumus matematika dapat menghasilkan gambar grafik yang indah. Salah satunya adalah pemanfaatan fungsi matematika trigonometri, fungsi matematika ini merupakan metode dasar yang paling penting dalam menggambar suatu objek dengan teknik transformasi, seperti salah satunya transformasi rotasi, dan pemberian efek pencerminan serta proyeksi perspektif maka objek grafik tersebut terkesan lebih hidup dan variatif. Teknik transformasi ini pula dapat di manfaatkan pada objek dua dimensi atau tiga dimensi. Untuk mendukung proses transformasi dalam studi ini, objek gambar yang di gunakan penulis adalah bervariasi sesuai dengan rumus yang dimasukkan, misalnya, garis-garis yang saling sambung menyambung membentuk permukaan bola, permukaan hiperbola terbuka kebawah atau keatas, permukaan elipsoida, dan lain-lain. Dengan transformasi objek ini dapat dimanfaatkan untuk menggambar struktur suatu objek tiga dimensi dari berbagai arah dan memanipulasinya sesuai dengan kebutuhan. “Microsoft Visual Basic 6.0” menjadi pilihan penulis untuk mengaplikasikan secara visual teknik transformasi grafik vektor tiga dimensi dengan menggunakan fungsi matematika trigonometri. 2. Perancangan Model Objek Grafik Vektor 3D Tahapan perancangan yang dilakukan dalam studi ini adalah “ A. Tahap Konsep Pembentukan Model Objek Tiga Dimensi B. Tahap Perancangan Model Implementasi dari tahap perancangan tersebut adalah : 2.1. Tahap Konsep Pembentukan Model Objek Tiga Dimensi ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 54 Perancangan pada tahap konsep adalah perancangan yang dilakukan untuk penyusunan materi dan pengkajian konsep tersebut secara teoritis, perancangan difokuskan pada masalah transformasi objek tiga dimensi dalam bentuk visual. Informasi yang sangat penting pada model tiga dimensi adalah geometri dan topologi. Geometri berhubungan erat dengan ukuran, misalnya lokasi titik, atau ukuran objek. Topologi digunakan untuk menunjukan bagaimana titik–titik disatukan untuk membentuk poligon, bagaimana poligon disusun untuk membentuk objek yang dimaksud. Dalam pemodelan tiga dimensi, sering diperlukan informasi tambahan, misalnya warna dari setiap permukaan yang menyusun objek. 2.2. Tahap Perancangan Model Perancangan pada tahap ini adalah menerapkan konsep–konsep yang telah dirancang menurut suatu paradigma tertentu sehingga sistem yang dirancang mempunyai kemampuan sesuai yang diharapkan. Pada tahap ini juga ditentukan format–format yang diterapkan pada sistem. Hal ini dilakukan karena perlu adanya penyesuaian antara konsep dan perancangan. Pada tahap perancangan ini terdapat beberapa kegiatan yang dilakukan, diantaranya : a. Perancangan Struktur Menu implementasi perancangan struktur menu sebagai berikut. Gambar 2.1 Struktur menu program b. Perancangan Antarmuka (interface) GUI Antarmuka merupakan sarana untuk berkomunikasi antara komputer dengan user, tujuannya supaya user dapat berinteraksi dengan tingkat kemudahan yang tinggi. Antarmuka yang baik harus memenuhi aturan perancangan seperti penggunaan warna yang baik, tata letak yang sesuai serta dialog yang sesuai dengan pesan yang ditulisnya. Pada program Memanfaatkan Fungsi-fungsi Rumus Matematika Trigonometri Dalam Menggambar Objek Permukaan Grafik Vektor Tiga Dimensi ini terdiri dari beberapa window diantaranya window utama untuk menampilkan objek gambar dan mengatur arah perputaran dan window yang berisi tentang informasi program. Adapun rancangan antarmuka program adalah sebagai berikut: ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 c. 55 Gambar 2.2. Rancangan antarmuka untuk menampilkan objek gambar tiga dimensi Rancangan Proses (flowchart) Gambar 2.3. Flowchart Program 3. Implementasi Grafik 3D Pada bagian ini penulis akan membahas bagaimana mengimplementasikan hasil rancangan yang dilakukan pada tahap merancang model. Dalam mengimplementasikan hasil rancangan tersebut penulis menggunakan bahasa pemograman “VISUAL BASIC 6.0”. Visual Basic dipilih karena banyak menyediakan kemudahan–kemudahan dalam pemograman grafik dengan adanya suatu komponen, yaitu GDI (graphics device interface) yang khusus di rancang untuk memudahkan dalam membuat pemograman berbasis grafik. Tahap implementasi ini, terdiri dari pengkodean dan pengujian. ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 56 A. Coding Pengkodean merupakan proses pembuatan kode program sehingga dapat berjalan secara otomatis. Dalam merancang program ini terdapat beberapa proses yang di kodekan dan digolongkan menjadi beberapa bagian yaitu : 1. Pengkodean untuk proses penghitungan operasi matematika. 2. Pengkodean untuk model objek gambar. 3. Pengkodean untuk konversi dan pengenal string rumus yang dimasukkan agar dikenali dan dimengerti oleh program dan sebagainya. A.1. Pengkodean Untuk Operasi Matematika Pada tahap ini adalah proses pengkodean dari operasi matrik dan vektor seperti operasi dot product, cross product, perkalian matriks rotasi, pengkodean pencerminan, pengkodean perspektif, serta untuk memetakan koordinat ke koordinat kartesian. Untuk lebih jelasnya tentang proses pengkodean ini dapat dilihat pada listing program dibawah ini. '----- Program Utama untuk menampilkan Objek Grafik Tiga Dimensi ' Berdasarkan Fungsi Matematika Trigonometri. '--Array dimulai pada subscript 1 sebagai default Option Base 1 '--Standar Integers DefInt A-Q '--Mendeklarasikan titik rst, uvw, xyz adalah Real DefSng R-Z '--Batas Low & High sumbu x dan y dibaca dari file Dim YH(), YL(), XH(), XL() '--Batas +/- sumbu z dibaca dari file Dim ZL() '--Jarak Perspektif dibaca dari file Dim PD() '--Nilai fungsi asli 3D Dim svrx(), svry(), svrz() '--Nilai fungsi Rotasi 3D Dim rx(), ry(), rz() '--Titik Layar Dim xs(), zs() '--Batas Tinggi Grid sumbu x dan y Dim grxhi, gryhi '--Konversi nilai grid ke nilai sumbu x,y Dim scx, scy '--Batas Rendah dan Tinggi sumbu x & y Dim xxlo, xxhi, yylo, yyhi '--Batas +/- sumbu z Dim batasZ '--Sudut putar sumbu x & z Dim sudutX, sudutZ '--Digunakan untuk skala plot kebawah Dim zpL, zpH ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 57 '--Fungsi -> faktor skala picDisplay Dim xoff, yoff, zoff, scfx, scfy, scfz '--Digunakan dengan faktor skala Dim xmin, zmin '--Titik mata (pada y=0) Dim titikMataX, titikMataZ '--Jarak Perspektif Dim JarakPersp Const pi = 3.1415927 '--Simpan koordinat mouse pada klik-kanan MouseDown Dim XMouse, YMouse '---- Nilai fungsi asli ---ReDim svrx(1 To grxhi, 1 To gryhi) ReDim svry(1 To gryhi, 1 To gryhi) ReDim svrz(1 To grxhi, 1 To gryhi) '---ReDim ReDim ReDim Nilai fungsi Rotasi rx(1 To grxhi, 1 To ry(1 To gryhi, 1 To rz(1 To grxhi, 1 To '---ReDim ReDim ReDim Nilai Tampilan xs(1 To grxhi, ys(1 To grxhi, zs(1 To grxhi, ---gryhi) gryhi) gryhi) ---1 To gryhi) 1 To gryhi) 1 To gryhi) '---- Memakai rotasi untuk data asli tentang sumbu-z ---For J = 1 To gryhi For I = 1 To grxhi rx(I, J) = svrx(I, J) * Cos(sudutX) + svry(I, J) * Sin(sudutX) ry(I, J) = svry(I, J) * Cos(sudutX) - svrx(I, J) * Sin(sudutX) rz(I, J) = svrz(I, J) Next I Next J '-- Memakai rotasi tentang sumbu-x For J = 1 To gryhi For I = 1 To grxhi rx(I, J) = rx(I, J) ry(I, J) = ry(I, J) * Cos(xang) - rz(I, J) * Sin(xang) rz(I, J) = ry(I, J) * Sin(xang) + rz(I, J) * Cos(xang) Next I Next J ‘---- Proses penggambaran garis saat rotasi '---- Gambar garis sumbu X ---picDisplay.ForeColor = culgreen& For J = 1 To gryhi res& = MoveToEx(phdc&, xs(1, J), zs(1, J), pp) For I = 1 + 1 To grxhi res& = LineTo(phdc&, xs(I, J), zs(I, J)) Next I Next J '---- Gambar garis sumbu Y ---picDisplay.ForeColor = culcyan& For I = 1 To grxhi ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 58 res& = MoveToEx(phdc&, xs(I, 1), zs(I, 1), pp) For J = 1 + 1 To gryhi res& = LineTo(phdc&, xs(I, J), zs(I, J)) Next J Next I ‘--- Proses pencerminan diaktifkan If CheckMirror = 1 Then '---- Gambar garis sumbu-X ---picDisplay.ForeColor = culgreen& For J = 1 To gryhi res& = MoveToEx(phdc&, xs(1, J), p - zs(1, J), pp) For I = 1 + 1 To grxhi res& = LineTo(phdc&, xs(I, J), p - zs(I, J)) Next I Next J '---- Gambar garis sumbu-Y ---picDisplay.ForeColor = culcyan& For I = 1 To grxhi res& = MoveToEx(phdc&, xs(I, 1), p - zs(I, 1), pp) For J = 1 + 1 To gryhi res& = LineTo(phdc&, xs(I, J), p - zs(I, J)) Next J Next I End If A.2. Pengkodean Untuk Objek Gambar Pengkodean objek gambar meliputi pengkodean untuk masing–masing objek permukaan berdasarkan rumus yang di masukkan, sedangkan fungsi dan prosedur yang dibuat untuk lebih jelasnya dapat dilihat pada listing program berikut ini, sedangkan untuk listing program yang utuh dapat dilihat pada lampiran. '----- Program Utama untuk menampilkan Objek Grafik Tiga Dimensi '---- Gambar garis sumbu X ---picDisplay.ForeColor = culgreen& For J = 1 To gryhi res& = MoveToEx(phdc&, xs(1, J), zs(1, J), pp) For I = 1 + 1 To grxhi res& = LineTo(phdc&, xs(I, J), zs(I, J)) Next I Next J '---- Gambar garis sumbu Y ---picDisplay.ForeColor = culcyan& For I = 1 To grxhi res& = MoveToEx(phdc&, xs(I, 1), zs(I, 1), pp) For J = 1 + 1 To gryhi res& = LineTo(phdc&, xs(I, J), zs(I, J)) Next J Next I '---- Untuk mengeksekusi formula yang dipilih pada daftar formula ---Private Sub cmdEvaluasi_Click() On Error GoTo evalerror yyhi = Val(txtYHI.Text) yylo = Val(txtYLO.Text) xxhi = Val(txtXHI.Text) xxlo = Val(txtXLO.Text) batasZ = Val(txtZLIM.Text) JarakPersp = Val(txtPERSPEC.Text) ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 59 If (yyhi = 0 And yylo = 0) Or (xxhi = 0 And xxlo = 0) Then MsgBox ("Batas nol dapat menyebabkan terlalu banyak error" + vbCrLf + "Ganti batas") Exit Sub End If If yylo > yyhi Then MsgBox ("Y-High harus lebih tinggi dari Y-Low!" + vbCrLf + "Ganti batas") Exit Sub End If If xxlo > xxhi Then MsgBox ("X-High harus lebih tinggi dari X-Low!" + vbCrLf + "Ganti batas") Exit Sub End If A.3. Pengkodean Untuk Konversi Rumus Fungsi konversi rumus adalah suatu fungsi yang digunakan untuk memproses rumus yang dimasukkan baik yang ada pada daftar atau rumus baru agar bisa dimengerti oleh program. Untuk lebih jelasnya fungsi dan prosedur yang terdapat pada modul ini dapat dilihat pada potongan listing program dibawah ini. ‘--- Modul Program MdlTrigonometri.Bas ‘---Deklarasi Global untuk dipanggil oleh unit lain Public Sub GantiPI(inval$) Public Sub GantiLN(inval$) Public Sub GantiLOG(inval$) Public Sub GantiASIN(inval$) Public Sub GantiACOS(inval$) Public Sub GantiCOSH(inval$) Public Sub GantiTANH(inval$) '--- Ganti sub-string p1->p2 dalam inval$ dengan rep$ Public Sub GantiStr(inval$, p1, p2, rep$) Public Sub GantiXY(inval$, ByVal X, ByVal Y) '--- Tekanan diluar spasi, trim & hapus beberapa penunjuk + Public Sub TekananSpasi(inval$) '--- Cari angka jadi pada karakter c$ dalam inval$ Public Function NumOccStr(inval$, c$) '---pin adalah posisi pada (pout jika posisi kurung sesuai ) Public Sub CariKurungTutupYgSesuai(inval$, pin, pout) Public Function zAtn2(Y, X) B. Hasil Hasil dari implementasi pada rancangan pembuatan objek grafik tiga dimensi ini yaitu terbentuknya perangkat lunak, dimana perangkat lunak ini terdiri dari beberapa bagian yaitu seting yang berguna untuk mengatur objek gambar dan bidang gambar yang berfungsi sebagai tempat untuk menampilkan gambar tersebut. Hasil visualisasi program dapat dilihat pada gambar berikut : ISSN 2085-8795 LPPM STMIK IM Jurnal INFORMASI Vol.4 No.2 (6), November 2011 60 Gambar 3.1. Form daftar fungsi Trigonometri Gambar 3.2. Antarmuka dan contoh tampilan objek pada bidang gambar. 4. Kesimpulan Hasil Studi dari pemodelan computer grafik yang telah disajikan maka didapat beberapa kesimpulan sebagai berikut: 1. Grafik dapat digunakan dan dimanfaatkan dalam berbagai disiplin ilmu, salah satunya adalah dalam pemodelan suatu objek. 2. Suatu objek grafik dapat ditampilkan dengan baik jika didukung oleh piranti yang baik pula. 3. Fungsi-fungsi rumus trigonometri menghasilkan suatu objek grafik yang indah dan unik. 4. Program grafik vektor ini sangat membantu bagi pengguna yang berprofesi di bidang perencanaan yang banyak menggunakan rumus-rumus matematika untuk pemodelan. Daftar Pustaka [1] Agustinus Nalwan, “Pemograman Animasi dan Game Professional 1,2 dan 3”. [2] Cornel Pokorny, 1994, “Computer Graphics An Object-Oriented Approach To The Art and Science Implemented In C++”, Franklin, Beedle & Associates Incorporated, Wilsonville, Oregon. [3] Dani Okianto, 1997, “Panduan Belajar Microsoft Visual Basic 6.0”, Jakarta, PT. Elex Media Komputindo. [4] P. Insap Santosa, Ir., M.Sc., 1994, “Grafika Komputer dan Antarmuka Grafis”, Penerbit Andi Offset Yogyakarta, Cetakan Pertama, [5] Rahadian Hadi, 2001,”Pemrograman Window API dengan Microsof Visual Basic, Jakarta, PT. Elex Media Komputindo. [6] Sunaryat, Anang, 2003, Pemodelan dan Operasi Grafik Vektor Surface 3D , Bandung [7] http://3Dblackhole.base.org “Mathematics of 3D Graphics”. [8] http://3Dblackhole.base.org “3D Transformations Second part of The 3D Coding Blackhole Tutorial ISSN 2085-8795 LPPM STMIK IM