PAPER GRAFIKA KOMPUTER pembuatan objek

(1)

OBJEK 3 DIMENSI

“ROBOT HUMANOID”

LAPORAN

UNTUK MEMENUHI TUGAS AKHIR MATAKULIAH

Praktikum Grafika Komputer

Yang Dibina oleh Heru Wahyu Herwanto, S.t., M.Kom.

Oleh

Ananda Putri Syaviri

130533608243

Nena Erviana

130533608234

Offering B 2013

UNIVERSITAS NEGERI MALANG

FAKULTAS TEKNIK

JURUSAN TEKNIK ELEKTRO

S1 PENDIDIKAN TEKNIK INFORMATIKA

APRIL 2015


(2)

OBJEK 3 DIMENSI

“ROBOT HUMANOID”

Ananda Putri Syaviri1, Nena Erviana2

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Negeri Malang syaviri@yahoo.co.id 1 , nena_underground@yahoo.co.id

www.um.ac.id

Abstrak

Perkembangan teknologi saat ini menjadi andalan dan kebutuhan masyarakat IT, terutama pada teknologi komunikasi dan informasi berbasi komputer. Hal ini menyebabkan produk berbasis IT mulai banyak bermunculan. Salah satu produk IT tersebut iaalah 3dsMax, dengan menggunakan produk imi, banyak bangun 3Dimensi dapat dibentuk. Produk 3dsMax merupakan software untuk membuat objek tiga dimensi yang menyediakan berbagai tool untuk pembuatan objek tiga dimensi. Produk ini memiliki kemampuan dalam menggabungkan objek image, vektor dan tiga dimensi, serta terdapat aplikasi untuk menambahkan animasi pada objek tersebut. Animasi dimensi tiga ini dapat diintegrasikan pada halaman multimedia dan dapat berdiri sendiri sebagai sebuah movie. Adapun pemberian animasi pada objek ini menggunakan aplikasi pemrograman visual basic dengan menggunakan bahasa OpenGlut.

Kata kunci : Robot, 3dsMax, Lighting, objek 3D, OpenGlut

1. Pendahuluan 1.1 Latar Belakang

Perkembangan komputer saat ini sudah mengalami banyak perubahan yang sangat pesat jika dibandingkan dengan waktu sebelumnya, seiring dengan kebutuhan manusia yang semakin banyak dan kompleks. Pada awalnya komputer hanya digunakan untuk para akademisi dan militer, namun saat ini berbagai kalangan dapat menggunakan komputer.

Kini komputer juga banyak digunakan dalam berbagai bidang dalam kehidupan, tidak hanya untuk urusan kemiliteran atau akademisi, tetapi digunakan juga dalam bidang kesehatan, pendidikan, psikologi, permainan, jual- beli dan lain- lain.

Dalam kehidupan sehari- hari, banyak instansi perusahaan, maupun lembaga pendidikan yang membutuhkan program aplikasi untuk dapat membuat sebuah rancangan objek 3D yang nantinya digunakan untuk bahan presentasi maupun sebagai perancangan untuk membuat sebuah renovasi gedung maupun pembuatan objek yang digunakan untuk menunjang sistem kerja instansi tersebut.

Banyak program aplikasi yang dapat digunakan untuk membuat rancangan objek 3D ini, diantaranya 3dsMax dan blender. Dalam dunia pemrograman dan desain grafis computer, sudah banyak pengembangan aplikasi yang ada untuk dapat membuat rancangan tersebut.

Dalam pembuatan program ini, membutuhkan banyak aspek untuk dapat mendukung berjalannya program sesuai dengan


(3)

perencanaan yang telah disusun. Program ini menggunakan bahasa pemrograman visual basic dan openGlut untuk membuat animasi pada objek yang dibuat pada apliaksi blender maupun 3dsMax. 1.2 Tujuan

Tujuan pembuatan program untuk menghasilkan objek 3D berbentuk robot dengan menerapkan konsep lighting dan pemberian animasi dengan interaksi keyboard dan mouse. Berikut tujuan lain dari pembuatan program ini:

- Untuk memenuhi tugas akhir mata kuliah Praktikum Grafika Komputer.

- Dapat membangun sebuah objek 3D pada aplikasi 3dsMax maupun blender.

- Dapat menerapkan konsep- konsep grafika komputer pada objek yang dibuat.

- Dapat memahami penggunaan fungsi- fungsi openGlut dalam membuat sebuah objek dan penerapan animasi serta interaksinya.

- Dapat menghasilkan program aplikasi objek 3D yang dapat membantu dalam perancangan untuk pembangunan objek di lapangan.

1.3 Batasan Masalah

Pembatasan pada penulisan paper tugas akhir adalah sebagai berikut:

1. Sistem ini menggunakan penerapan lighting. 2. Sistem ini menggunakan interaksi keyboard

baik pada tombol special dan tombol biasa. 3. Sistem ini menerapkan animasi dengan fungsi

scalef, untuk translasi, dan rotatef.

4. Sistem ini menggunakan penerapan fungsi interasi mouse.

2. Perancangan

Perancangan aplikasi ini berawal dari pembuatan objek yang menggunakan aplikasi software 3dsMax atau blender. Kemudian dieksport kedalam format .obj jika menggunakan 3dsMax, dan format .obj & .mtl jika menggunakan blender. Jika menggunakan aplikasi 3dsMax maka perlu mengimport file .obj pada 3dsMax kedalam blender, kemudian dieksport kembali kedalam format .obj dan secara otomatis blender akan mengeksport juga file dalam format .mtl. Kemudian untuk pemberian interaksi keyboard dan efek lighting dan texturing dilakukan pada aplikasi program visual basic.

Alur program yang digunakan dalam pembentukan objek robot humanoid ini adalah: 1. Start

2. Deklarasi header

#include <stdafx.h> #include <stdlib.h> #include <stdio.h> #include <windows.h> #include <gl/glut.h> #include "glm.h" 3. Deklarasi variable

int z = -20; , dan sebagainya 4. Deklarasi fungsi drawmodel_box 5. Deklarasi fungsi display

6. Deklarasi fungsi init 7. Deklarasi fungsi reshape 8. Deklarasi fungsi update 9. Deklarasi fungsi mouse 10. Deklarasi fungsi motion mouse

11. Deklarasi fungsi my Keyboard dan special Keyboard.

12. Deklarasi fungsi main untuk pemanggilan fungsi-fungsi diatas agar dapat meload objek yang telah dibuat.

13. Selesai.

2.1 Flowchart ( lampiran) 2.2 Kode Program

//deklarasi header

#include"stdafx.h" #include<stdlib.h>


(4)

#include<windows.h> #include<glut.h> #include"glm.h" int z = -20;

//deklarasi koordinat dan variabel yang digunakan

float tx=0, ty=0, tz=-5;

int w = 640, h = 480;

int x1 = 0, y1 = 0, z1 = 0, sudut = 0; // deklarasi sumbu x, y, z dan sudut

float cx=0, cy=0, cz=0;

int a, b; //untuk deklarasi variabel x dan y //deklarasi penggunaan parameter lighting

float x_light, y_light, z_light = 0.5; //nilai lighting yang digunakan 0.5

//deklarasi pointer untuk load objek

GLMmodel* pmodel1 = NULL;

//deklarasi pemanggilan objek robot

void drawmodel_box(void){

if (!pmodel1){

glColor3f(1,0,1); // deklarasi warna

pmodel1 =

glmReadOBJ("Robot.obj"); //fungsi untuk membaca file robot.obj

if (!pmodel1) exit(0);

glmUnitize(pmodel1); glmFacetNormals(pmodel1); glmVertexNormals(pmodel1, 100.0); //deklarasi vertex yang digunakan

}

glmDraw(pmodel1, GLM_SMOOTH| GLM_TEXTURE); //deklarasi gambar dengan fungsi glm_smooth, glm_texture

}

//deklarasi pemanggilan fungsi untuk penampilan objek

void display(void){ glClear

(GL_COLOR_BUFFER_BIT |

GL_DEPTH_BUFFER_BIT); //fungsi pewarnaan background

glLoadIdentity(); //fungsi loadIdentity

/*inisialisasi pemanggilan fungsi lighting*/

GLfloat LightPosition[] = {15.0f, 15.0f, 25.0f, 0.5f};

LightPosition[0] = a; LightPosition[1] = b; LightPosition[2] = 150;

//deklarasi dan inisialisasi array untuk posisi lighting

//GLfloat LightPosition[] = {x_light, y_light, z_light, 1};

glLightfv(GL_LIGHT0, GL_POSITION, LightPosition);

//deklarasi fungsi lighting specular

GLfloat LightSpecular[] = {0.5, 0.5, 0.5, 1.0};

//deklarasi fungsi shine ( pemberian cahaya)

GLfloat Shine[] = {25}; glClearDepth(1); glHint(GL_PERSPECTIVE_CORRECTION_HIN T, GL_NICEST); glMaterialfv(GL_FRONT, GL_SPECULAR, LightSpecular); glMaterialfv(GL_FRONT, GL_SHININESS, Shine); glLightfv(GL_LIGHT0, GL_POSITION, LightPosition); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);


(5)

//deklarasi pemberian animasi pada objek robot

glPushMatrix();

glTranslatef(0,0,z); //fungsi translasi dengan parameter 0,0,-20

glRotatef(sudut,x1,y1,z1); //fungsi rotasi dengan parameter 0,0,0,0 -> sesuai pendeklarasian pada variabel

drawmodel_box(); // pemanggilan fungsi drawmodel_box

//menampilkan objek

drawmodel_box(); glPopMatrix(); glPopMatrix();

Sleep(10); // fungsi untuk

menampilkan animasi objek yang dapat bergerak sendiri

glutSwapBuffers(); }

//fungsi init untuk meload objek (fungsi utama)

void init(void){

GLfloat LightPosition[] = {x_light, y_light, z_light, 20, 0};

GLfloat LightAmbient[] = {0.0f, 0.0f, 0.0f, 0.0f};

GLfloat LightDiffuse[] = {0.7f, 0.7f, 0.7f, 0.1f};

GLfloat LightSpecular[] = {0.5f, 0.5f, 0.5f, 0.1f};

GLfloat Shine[] = {80};

glClearColor (0.0, 0.0, 0.0, 0.0); glEnable(GL_DEPTH_TEST); glShadeModel (GL_SMOOTH); }

void reshape (int w, int h){

glViewport (0, 0, (GLsizei) w, (GLsizei) h);

glMatrixMode (GL_PROJECTION); glLoadIdentity();

gluPerspective(60.0, (GLfloat) w/(GLfloat) h, 1.0, 20.0);

glMatrixMode (GL_MODELVIEW); }

//fungsi update untuk interaksi load objek

void update (int value){

glutPostRedisplay();

glutTimerFunc(60, update, 0); }

//fungsi interaksi mouse

void mouse(int tombol, int state, int x, int

y){

a = x-(w/2); b = (h/2)-y; }

//fungsi motion/pergerakan mouse

void motion(int x, int y){

a = x-(w/2); b = (h/2)-y; }

//fungsi interaksi keyboard

void mykeyboard(unsignedchar key, int x,

int y){

if(key == 'a') { //untuk fungsi rotatef ke arah bawah pada sumbu y

x1=0; y1=1; z1=0; sudut+=3;}

elseif (key == 'n'){ // untuk fungsi rotatef ke arah atas pada sumbu x


(6)

sudut-=3; }

elseif (key == 'p') { // untuk fungsi rotatef ke arah kiri pada sumbu y dengan searah jarum jam

y1=1; z1=0; x1=0; sudut-=3; }

elseif (key == 'e') {// fungsi rotatef untuk ke arah kanan pada sumbu y dengan berlawanan arah jarum jam

y1=1; z1=0; x1=0; sudut+=3; } }

const GLfloat light_ambient[] = { 0.3f, 0.3f, 0.3f, 1.0f };

const GLfloat light_diffuse[] = { 0.7f, 0.7f, 0.7f, 1.0f };

const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat light_position[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat light_ambient2[] = { 0.3f, 0.3f, 0.3f, 0.0f };

const GLfloat light_diffuse2[] = { 0.3f, 0.3f, 0.3f, 0.0f };

const GLfloat mat_ambient[] = { 0.8f, 0.8f, 0.8f, 1.0f };

const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f };

const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };

const GLfloat high_shininess[] = { 100.0f };

void mySpecialKeyboard(int key, int x, int

y){

switch(key){

case GLUT_KEY_UP : //untuk fungsi scalef ukuran besar

z++;

break;

case GLUT_KEY_DOWN : //untuk fungsi scalef ukuran kecil

z--;

break;

case GLUT_KEY_RIGHT : //untuk rotatef ke arah bawah pada sumbu x

x1=1; sudut+=3;

break;

case GLUT_KEY_LEFT : //untuk fungsi rotatef ke arah atas pada sumbu z

z1=1; sudut-=3;

break; }

}

//deklarasi fungsi utama

void main(int argc, char** argv) { glutInit(&argc, argv);

glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); glutInitWindowSize (800, 640); glutInitWindowPosition (150, 150); glutCreateWindow ("ROBOT

HUMANOID");

gluOrtho2D(-100,100,-100,100); init();


(7)

glutReshapeFunc(reshape); glutTimerFunc(60, update, 0); glutKeyboardFunc(mykeyboard); glutSpecialFunc(mySpecialKeyboard); glutPassiveMotionFunc(motion); glutMainLoop(); } 2.3 Pembahasan

 Penjelasan Kode Program I. Header

- #include"stdafx.h"

: digunakan untuk pemanggilan header - #include<stdlib.h>

: digunakan untuk inisialisasi header - #include<windows.h>

: digunakan untuk inisialisasi header penampilan windows aplikasi. - #include<glut.h>

: digunakan untuk pemanggilan fungsi glut yang ada pada script

- #include"glm.h"

: digunakan untuk pemanggilan fungsi yang ada pada folder glm pada project visual basic

II. Deklarasi variable

//deklarasi koordinat dan variabel yang digunakan

- int z = -20;

- float tx=0, ty=0, tz=-5; - int w = 640, h = 480;

- int x1 = 0, y1 = 0, z1 = 0, sudut = 0; // deklarasi sumbu x, y, z dan sudut - float cx=0, cy=0, cz=0;

- int a, b; //untuk deklarasi variabel x dan y

- float x_light, y_light, z_light = 0.5;

//deklarasi penggunaan parameter lighting

- GLMmodel* pmodel1 = NULL;

//deklarasi pointer untuk load objek

Deklarasi diatas digunakan untuk pemanggilan nilai- nilai variable yang digunakan sebagai parameter fungsi.

III. Fungsi

a) drawmodel_box(void): digunakan untuk deklarasi pemanggilan objek yang telah dibuat pada aplikasi 3dsMax dalam format .obj

b) display(void) : digunakan untuk deklarasi pemanggilan fungsi untuk menampilkan objek

c) init(void) : digunakan untuk deklarasi meload objek dengan pendeklarasian penggunaan lighting dalam objek ini. d) reshape (int w, int h) : digunakan

untuk pendeklarasian fungsi viewport, matrixmode, loadidentity, perspektif yang fungsinya membentuk objek 3D.

e) update (int value) : digunakan untuk interaksi load objek dengan fungsi timerfunc dan postredisplay

f) mouse(int tombol, int state, int x,

int y) : digunakan untuk pendeklarasian penggunaan interaksi mouse

g) motion(int x, int y) : digunakan untuk fungsi motion/pergerakan mouse

h) mykeyboard(unsigned char key, int

x, int y) : digunakan untuk pendeklarasian tombol keyboard yang digunakan untuk interaksi keyboard seperti rotate dan scalef pada objek. i) mySpecialKeyboard(int key, int x,

int y) : digunakan untuk pendeklarasian tombol navigasi keyboard yang digunakan untuk interaksi keyboard.

j) main(int argc, char** argv) : digunakan sebagai fungsi utama untuk pemanggilan fungsi- fungsi yang terkait dengan menampilkan objek pada windows aplikasi.


(8)

- glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);

digunakan untuk pewarnaan pada display objek

- glutInitWindowSize (800, 640);

digunakan untuk pengaturan size window untuk menampilkan objek

- glutInitWindowPosition (150, 150);

digunakan untuk pengaturan posisi window pada desktop untuk menampilkan objek

- glutCreateWindow ("ROBOT HUMANOID");

digunakan untuk pemberian judul window

- gluOrtho2D(-100,100,-100,100);

digunakan untuk pengaturan system koordinat yang digunakan.

- init();

digunakan untuk pemanggilan fungsi init yang sebelumnya telah dideklarasikan untuk fungsi lighting objek.

- glutDisplayFunc(display);

digunakan untuk meload objek pada fungsi display

- glutReshapeFunc(reshape);

digunakan untuk meload objek 3D yang telah dibuat pada fungsi reshape - glutTimerFunc(60, update, 0);

digunakan untuk pengaturan timer/ motion yang digunakan.

- glutKeyboardFunc(mykeyboard);

digunakan untuk pemanggilan fungsi interaksi keyboard tombol biasa.

- glutSpecialFunc(mySpecialKeyboar d);

digunakan untuk pemanggilan fungsi

interaksi keyboard tombol

special/navigasi.

- glutPassiveMotionFunc(motion);

digunakan untuk motion atau pergerakan objek menggunakan passive motion

- glutMainLoop();

digunakan untuk fungsi perulangan pada program objek ini.

3. Kesimpulan

Berdasarkan uraian yang telah disampaikan baik dari proses awal perancangan hingga pengujian program, maka dapat disimpulkan bahwa Dengan menggunakan Bahasa pemrograman visual basic dan openGlut, dapat menghasilkan suatu objek 3D yang digunakan untuk membangun sebuah desain atau rancangan objek yang akan dibuat di lapangan. Berikut kesimpulan yang dapat ditarik dari pembuatan program ini adalah:

 Animasi robot humanoid ini digunakan untuk dapat melihat bentuk robot secara detail.

 Animasi robot humanoid ini digunakan untuk mengetahui komponen dan fungsi yang dapat digunakan jika nantinya akan dibuat di lapangan.

 Dengan menggunakan bahasa

pemograman C++ di dalam visual basic studio maka dapat membuat sebuah objek menjadi objek 3D dengan pemberian animasi baik interaksi pasif maupun aktif, namun pada program ini menggunakan motion pasif dengan interakasi mouse dan keyboard.

 Untuk dapat membuat sebuah objek 3D , dapat menggunakan aplikasi 3dsMax atau blender, kemudian di eksport dalam format.obj sehingga lebih mudah dalam pembuatan script program, tidak perlu mendeklarasikan satu-persatu objek yang digunakan untuk membangun sebuah objek.


(9)

LAMPIRAN

-

FLOWCHART


(10)

Tampilan awal

Key Up


(11)

Key left

Tombol a


(12)

Tombol e


(1)

glutReshapeFunc(reshape); glutTimerFunc(60, update, 0); glutKeyboardFunc(mykeyboard); glutSpecialFunc(mySpecialKeyboard); glutPassiveMotionFunc(motion); glutMainLoop(); } 2.3 Pembahasan

 Penjelasan Kode Program I. Header

- #include "stdafx.h"

: digunakan untuk pemanggilan header - #include <stdlib.h>

: digunakan untuk inisialisasi header - #include <windows.h>

: digunakan untuk inisialisasi header penampilan windows aplikasi. - #include <glut.h>

: digunakan untuk pemanggilan fungsi glut yang ada pada script

- #include "glm.h"

: digunakan untuk pemanggilan fungsi yang ada pada folder glm pada project visual basic

II. Deklarasi variable

//deklarasi koordinat dan variabel yang digunakan

- int z = -20;

- float tx=0, ty=0, tz=-5;

- int w = 640, h = 480;

- int x1 = 0, y1 = 0, z1 = 0, sudut = 0;

// deklarasi sumbu x, y, z dan sudut

- float cx=0, cy=0, cz=0;

- int a, b; //untuk deklarasi variabel x dan y

- float x_light, y_light, z_light = 0.5;

//deklarasi penggunaan parameter lighting

- GLMmodel* pmodel1 = NULL;

//deklarasi pointer untuk load objek

Deklarasi diatas digunakan untuk pemanggilan nilai- nilai variable yang digunakan sebagai parameter fungsi.

III. Fungsi

a) drawmodel_box(void): digunakan untuk deklarasi pemanggilan objek yang telah dibuat pada aplikasi 3dsMax dalam format .obj

b) display(void) : digunakan untuk deklarasi pemanggilan fungsi untuk menampilkan objek

c) init(void) : digunakan untuk deklarasi meload objek dengan pendeklarasian penggunaan lighting dalam objek ini. d) reshape (int w, int h) : digunakan

untuk pendeklarasian fungsi viewport, matrixmode, loadidentity, perspektif yang fungsinya membentuk objek 3D.

e) update (int value) : digunakan untuk interaksi load objek dengan fungsi timerfunc dan postredisplay

f) mouse(int tombol, int state, int x, int y) : digunakan untuk pendeklarasian penggunaan interaksi mouse

g) motion(int x, int y) : digunakan untuk fungsi motion/pergerakan mouse

h) mykeyboard(unsigned char key, int x, int y) : digunakan untuk pendeklarasian tombol keyboard yang digunakan untuk interaksi keyboard seperti rotate dan scalef pada objek. i) mySpecialKeyboard(int key, int x,

int y) : digunakan untuk pendeklarasian tombol navigasi keyboard yang digunakan untuk interaksi keyboard.

j) main(int argc, char** argv) : digunakan sebagai fungsi utama untuk pemanggilan fungsi- fungsi yang terkait dengan menampilkan objek pada windows aplikasi.


(2)

- glutInitDisplayMode (GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE); digunakan untuk pewarnaan pada display objek

- glutInitWindowSize (800, 640); digunakan untuk pengaturan size window untuk menampilkan objek

- glutInitWindowPosition (150, 150); digunakan untuk pengaturan posisi window pada desktop untuk menampilkan objek

- glutCreateWindow ("ROBOT HUMANOID");

digunakan untuk pemberian judul window - gluOrtho2D(-100,100,-100,100);

digunakan untuk pengaturan system koordinat yang digunakan.

- init();

digunakan untuk pemanggilan fungsi init yang sebelumnya telah dideklarasikan untuk fungsi lighting objek.

- glutDisplayFunc(display);

digunakan untuk meload objek pada fungsi display

- glutReshapeFunc(reshape);

digunakan untuk meload objek 3D yang telah dibuat pada fungsi reshape - glutTimerFunc(60, update, 0);

digunakan untuk pengaturan timer/ motion yang digunakan.

- glutKeyboardFunc(mykeyboard); digunakan untuk pemanggilan fungsi interaksi keyboard tombol biasa.

- glutSpecialFunc(mySpecialKeyboar d);

digunakan untuk pemanggilan fungsi

interaksi keyboard tombol

special/navigasi.

- glutPassiveMotionFunc(motion); digunakan untuk motion atau pergerakan objek menggunakan passive motion - glutMainLoop();

digunakan untuk fungsi perulangan pada program objek ini.

3. Kesimpulan

Berdasarkan uraian yang telah disampaikan baik dari proses awal perancangan hingga pengujian program, maka dapat disimpulkan bahwa Dengan menggunakan Bahasa pemrograman visual basic dan openGlut, dapat menghasilkan suatu objek 3D yang digunakan untuk membangun sebuah desain atau rancangan objek yang akan dibuat di lapangan. Berikut kesimpulan yang dapat ditarik dari pembuatan program ini adalah:

 Animasi robot humanoid ini digunakan untuk dapat melihat bentuk robot secara detail.

 Animasi robot humanoid ini digunakan untuk mengetahui komponen dan fungsi yang dapat digunakan jika nantinya akan dibuat di lapangan.

 Dengan menggunakan bahasa pemograman C++ di dalam visual basic studio maka dapat membuat sebuah objek menjadi objek 3D dengan pemberian animasi baik interaksi pasif maupun aktif, namun pada program ini menggunakan motion pasif dengan interakasi mouse dan keyboard.

 Untuk dapat membuat sebuah objek 3D , dapat menggunakan aplikasi 3dsMax atau blender, kemudian di eksport dalam format.obj sehingga lebih mudah dalam pembuatan script program, tidak perlu mendeklarasikan satu-persatu objek yang digunakan untuk membangun sebuah objek.


(3)

LAMPIRAN

-

FLOWCHART


(4)

Tampilan awal

Key Up


(5)

Key left

Tombol a


(6)

Tombol e