• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM"

Copied!
18
0
0

Teks penuh

(1)

Pada bab ini akan dibahas implementasi bertujuan memastikan apakah aplikasi yang dibuat berjalan sesuai yang penulis harapakan. Sebelum program diimplementasikan maka program harus bebas dari kesalahan, kesalahan saat proses ataupun kesalahan logical. Program dapat diimplementasikan setelah bebas dari kesalahan setelah pengujian.

4.1 Implementasi Program

Di dalam implementasi ini di deskripsikan dengan listing: #include<stdlib.h>

#include<GL/glut.h>

Kode 4.1 Fungsi ini digunakan untuk memanggil fungsi GLUT di Windows.

static float xpoz = 0, ypoz = 0, zpoz = 0,d = -12, e = -5,f = -5, pintu=0; Berfungsi untuk mendeklarasikan posisi awal x,y,dan z pada saat aplikasi di jalankan. Contoh source code

Kode 4.2 penerapan kode pada aplikasi Di bawah ini adalah contoh dari kode diatas

(2)

Gambar 4.1 tampilan awal aplikasi

Kode 4.1 akan di jelaskan dengan flowchart di bwah ini:

Gambar 4.2 flowchart listing dari fungsi library glut

Pengimlementasian yang selanjutnya termasuk dalam fungsi dari library glut di gambarkan dalam table.

(3)

Table 4.1 Implementasi source code

Source code Penjelasan

glColor3f(0.3,0.2,0.1) Berfungsi untuk mendefinisikan warna pada objek yang di buat (0.3,0.2,0.1) yaitu kuning. glVertex3d(x1,y1,z2); Berfungsi untuk menyatakan titik koordinat

x,y,z

glLoadIdentifity (); Berfungsi memanggil matriks identitas ke

matriks saat ini, agar nilai awal kembali ke pusat koordinat yaitu (0,0,0).

glEnable(GL_DEPTH_TEST); Berfungsi untuk mengaktifkan atau

menampilkan GL_DEPTH_TEST

glClearColor (0.3, 0.3, 0.5, 0.0); Berfungsi mendefinisikan warna pada windows yang dibuat dengan warna (0.3, 0.3, 0.5, 0.0) yaitu abu – abu.

glShadeModel (GL_SMOOTH); Berfungsi untuk member warna bayangan

glMatrixMode

(GL_PROJECTION);

Berfungsi untuk memberi nilai masukan pada matriks dengan model projection.

glTranslatef(d,e,f); Berfungsi menggeser seluruh pemandangan

ke kiri, kanan, atas, bawah, maju dan mundur sesuai nilai x,y dan z.

glRotatef(xpoz,0,1,0); Berfungsi untuk memutar seluruh obyek

dengan sudut angle (0-359) dan vector yang dinyatakan dengan nilai x,y dan z.

glutSolidCube(6.0f); Berfungsi membuat kubus.

glBegin(GL_QUADS); Berfungsi membuat segi empat.

glutInitDisplayMode

(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);

Untuk instalasi modus display. Fungsi ini meminta window yang bersifat double buffered, dengan warna RGB.

glutInitWindowSize (1024, 720); Membuat windows dengan ukuran

(1024,700) pada layar computer. glutInitWindowPosition (100,

100);

Membuat titik kiri atas window diletakan pada (100,100) pada layar computer.

(4)

glutKeyboardFunc(keyboard); Berfungsi mengaktifkan fungsi pada keyboard.

glutSwapBuffers(); Digunakan untuk menukar bagian belakang

menjadi bagian depan buffer. glOrtho(-12,12,-6,6,-35,35);

Mendeinisikan besarnya sistem koordinat dengan range sumbu x adalah (12,12), range untuk sumbu y adalah (-6,6), range sumbu z adalah (-35,35).

Contoh gambar pada glOrtho.

(5)

gluPerspective(80.0,2.2, 1.0, 100.0);

berfungsi untuk mendeklarasikan jarak ke depan dan ke belakang dari bidang pandang.

Contoh gambar glutPrespective.

Gambar 4.4 gluPrespective

Bentuk solid

glutSolidTorus dan glutSolidsphere //Ban Belakang glPushMatrix(); glColor3f(1.0, 1.0, 1.0); glScalef(0.35, 0.35, 0.25); glTranslatef(25.0, 4.5, 19.3); glutSolidTorus(2, 3, 20, 30); glPopMatrix(); //Velg glPushMatrix(); glColor3f(0.0, 0.0, 0.0); glScalef(0.5, 0.5, 0.5); glTranslatef(17.5, 2.5, 8.0); glutSolidSphere(2, 10, 20); glPopMatrix();

(6)

//Velg glPushMatrix(); glColor3f(0.0, 0.0, 0.0); glScalef(0.5, 0.5, 0.5); glTranslatef(-17.5, 2.5, 8.0); glutSolidSphere(2, 10, 20); glPopMatrix(); //Ban Depan glPushMatrix(); glColor3f(1.0, 1.0, 1.0); glScalef(0.35, 0.35, 0.25); glTranslatef(-25.0, 4.5, -19.3); glutSolidTorus(2, 3, 20, 30); glPopMatrix(); //Velg glPushMatrix(); glColor3f(0.0, 0.0, 0.0); glScalef(0.5, 0.5, 0.5); glTranslatef(17.5, 2.5, -8.0); glutSolidSphere(2, 10, 20); glPopMatrix(); glPushMatrix(); glColor3f(1.0, 1.0, 1.0); glScalef(0.35, 0.35, 0.25); glTranslatef(-25.0, 4.5, 19.3); glutSolidTorus(2, 3, 20, 30); glPopMatrix(); //Velg glPushMatrix(); glColor3f(0.0, 0.0, 0.0);

(7)

glScalef(0.5, 0.5, 0.5); glTranslatef(-17.5, 2.5, -8.0); glutSolidSphere(2, 10, 20); glPopMatrix();

kode 4.3 membuat roda dan velg

Fungsi glutSolidSphere yaitu membuat bola dan fungsi glutSolidTorus adalah menggambar dengan bentuk seperti donat berpusat pada asal pemodelan sistem koordinat. Di bawah ini contoh tampilan

Gambar 4.5 velg dan ban glPushmatrix dan glPopMatrix

glPushMatrix berfungsi menyimpan koordinat yang ada. Sedangkan glPopMatrix adalah suatu fungsi guna memanggil suatu fungsi yang telah disimpan pada glPushMatrix.

Contoh program: glColor3f(0.5, 0.3, 0.2); glPushMatrix(); glTranslatef(0.0, 9.8, -4.0); glScalef(1.0, 0.8, 0.2); glutSolidCube(6.0f); glPopMatrix();

(8)

glColor3f(0.5, 0.0, 0.2); glPushMatrix(); glTranslatef(0.0, 9.8, -4.6); glScalef(0.05, 0.8, 0.005); glutSolidCube(6.0f); glPopMatrix();

kode 4.4 contoh glPushMatrix dan glPopMatrix

Fungsi di atas untuk menggambar kubus solid. GLUT menyediakan objek sederhana yang langsung bias dipanggil dengan mudah. Pada objek diatas sebelum fungsi memanggil objek kubus dipanggil terjadi 2 buah transformasi yaitu skala dan rotasi. Jika tanpa ada push dan pop serta transformasi secara default objek akan dirender pada skala default dan posisi default.

Operasi push dan pop matrix adalah operasi penambahan stack matrix pada model view matrix untuk transformasi. Pada kode diatas ditambahkan translasi atau pergeseran x, y, z = (0.0, 9.8, -4.0) dan sisi satunya x, y, z = glTranslatef(0.0, 9.8, -4.6) operasi pop. matrix transformasi dirubah dengan menambahkan translate dan scale pada stack matrix model view sehingga objek kubus yang dipanggil melalui perhitungan transformasi. glPop mengeluarkan matrix transformasi keluar dari tumpukan sehingga mengembalikan matrix modelview menjadi matrix identitas. Berikut tampilan dari kode diatas adalah pintu pada lantai 2

(9)

Gambar 4.6 pintu pada lantai 2

4.2 Implementasi void pada source code dan pengerjaan 1. Void Kubus

menjelaskan mengenai bagaimana kotak kubus 3 dimensi dapat melalui beberapa titik. Apabila digabungkan akan menjadi kubus 3 dimensi. Di void kubus ini memiliki 6 bagian kubus yang harus di selesaikan agar membentuk kubus 3 dimensi.

void Kubus

(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4,float z1,float z2,float z3)

(10)

//sisi atas glVertex3d(x3,y3,z2); glVertex3d(x4,y4,z2); glVertex3d(x4,y4,z1); glVertex3d(x3,y3,z1); //sisi depan glVertex3d(x1,y1,z2); glVertex3d(x2,y2,z2); glVertex3d(x3,y3,z2); glVertex3d(x4,y4,z2); //sisi kanan glVertex3d(x2,y2,z2); glVertex3d(x2,y2,z1); glVertex3d(x3,y3,z1); glVertex3d(x3,y3,z2); //sisi belakang glVertex3d(x1,y1,z1); glVertex3d(x2,y2,z1); glVertex3d(x3,y3,z1); glVertex3d(x4,y4,z1); //sisi kiri glVertex3d(x1,y1,z2); glVertex3d(x1,y1,z1); glVertex3d(x4,y4,z1); glVertex3d(x4,y4,z2); //sisi bawah glVertex3d(x1,y1,z2); glVertex3d(x2,y2,z2); glVertex3d(x2,y2,z1); glVertex3d(x1,y1,z1); }

(11)

Berikut ini tampilan dari kode diatas:

Gambar 4.7 bodi bus lantai 1 dibuat dengan menggunakan void 2. Void init(void)

berfungsi menggambar, mengatur warna dan koordinat sistem. void init(void) { glClearColor (0.3, 0.3, 0.5, 0.0); glOrtho(-12,12,-6,6,-35,35); glEnable(GL_DEPTH_TEST); glShadeModel (GL_SMOOTH); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluPerspective(80.0,2.2, 1.0, 100.0); glMatrixMode (GL_MODELVIEW); }

(12)

Tampilan dari kode diatas sama dengan gambar 4.1 tetapi dari sini kita bias menggatur warna dasar dari aplikasi, koordinat posisi kamera dan jarak kamera dari objek.

3. Void display(void)

berfungsi menggambar dan mengatur warna dan koordinat.

glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity (); //digunakan untuk me-nonaktifkan/me-reset transformasi sebelumnya

glTranslatef(d,e,f); //digunakan untuk melakukan perpindahan posisi gelombang glRotatef(xpoz,0,1,0); glRotatef(ypoz,1,0,0); glRotatef(zpoz,0,0,1); Kode 4.7 Rotasi Contoh rotasi:

Gambar 4.8. Objek dan rotasi 4. Void keyboard

Setelah aplikasi sudah selesai maka di bawah ini script berisi navigasi penggunaan tombol keyboard yang digunakan untuk menggerakan kamera.

Maksud Dari “d,e,f,xpoz” di bawah ialah dari glTranslatef(d,e,f); yang digunakan untuk melakukan perpindahan posisi d ialah sumbu x, dan e

(13)

ialah sumbu y, dan f ialah sumbu z dan untuk glRotatef(xpoz,0,1,0); ialah melakukan rotasi ke sumbu Y.

void keyboard(unsigned char key, int x, int y) { switch (key) { case 'x': xpoz=xpoz+5; if (xpoz>360) xpoz=0; glutPostRedisplay(); break; case 'c': xpoz=xpoz-5; if (xpoz>360) xpoz=0; glutPostRedisplay(); break; case 'y': ypoz=ypoz+5; if (ypoz>360) ypoz=90; glutPostRedisplay(); break; case 'u': ypoz=ypoz-5; if (ypoz>360) ypoz=0; glutPostRedisplay(); break; case 'z': zpoz = zpoz+5; if (zpoz>360) zpoz=0; glutPostRedisplay(); break; case 'w': e = e - 1;

(14)

glutPostRedisplay(); break; case 's': e = e + 1; glutPostRedisplay(); break; case 'a': d = d + 1; glutPostRedisplay(); break; case 'd': d = d - 1; glutPostRedisplay(); break; case 'q': f = f + 1; glutPostRedisplay(); break; case 'e': f = f - 1; glutPostRedisplay(); break;

case 27:; //Tekan ESC untuk exit exit(0);

} }

(15)

4.3 Pengujian

Pada tahab ini penulis akan melakukan pengujian menggunakan black box terhadap program.

Table 4.2 Pengujian

Rancangan Hasil yang diharapkan Hasil

Compile program Aplikasi berjalan OK

Tombol W Kamera bergerak ke atas OK

Tombol A Kamera bergerak ke kiri OK

Tombol S Kamera bergerak ke bawah OK

Tombol D Kamera bergerak ke kanan OK

Tombol Q Kamera bergerak maju OK

Tombol E Kamera bergerak mundur OK

Tombol Y Kamera berputar ke sumbu Y OK

Tombol Esc Exit program OK

4.4 Hasil Program

Hasil akhir pada aplikasi ini.

(16)

Gambar 4.10 Tampilan ruang kelas ekonomi Pada kelas ekonomi bis hanya menyediakan bangku.

(17)

Gambar 4.11 tampilan ruang kelas bisnis Pada kelas bisnis disediakan fasilitas tambahan 2 buah TV

(18)

Gambar 4.12 Tampilan ruang kelas VIP

Gambar

Gambar 4.1 tampilan awal aplikasi
Table 4.1 Implementasi source code
Gambar 4.3 glOrtho
Gambar 4.4 gluPrespective
+7

Referensi

Dokumen terkait

Begitu juga dengan sifat-sifat yang telah disepakati atau kesesuaian produk untuk aplikasi tertentu tidak dapat disimpulkan dari data yang ada dalam Lembaran Data Keselamatan

Hasil penelitian ini diharapkan dapat memberikan manfaat kepada. 1) Mahasiswa untuk lebih mengembangkan kemampuan berpikir kritisnya agar lebih siap dalam menghadapi tantangan di

For the optical access data center network, the proposed scheme realizes high energy efficiency and scalability by minimizing the number of active OLT to suit user traffic

Peneliti kemudian memberikan pelatihan kepada mahasiswa dalam menyusun media pembelajaran PAI dengan menerapkan tuter smedi “satu semester satu media” melalui strategi

 Hemoglobin Bart’s Hidrops Fetalis, bentuk yang paling parah dari α-thalassemia, ditandai dengan onset janin edema luas, ascites, efusi pleura dan perikardial, dan

Indikator presepsi siswa yang ketiga tentang media pembelajaran dengan menggunakan Adobe Flash Professional CS6 adalah “Kesesuaian media dengan tujuan

3 Fraktur terjadi apabila ada suatu trauma yang mengenai tulang, dimana trauma tersebut kekuatannya melebihi kekuatan tulang,ada 2 faktor yang mempengaruhi terjadinya frakturya