Minggu, 13 Juli 2014

MEMBUAT TRUCK MENGGUNAKAN OPEN GL

Malam kawan2, hari yang dingin karna hujan malam ini, hehehe
Saya akan menshare hasil project saya buat tugas UAS komgraf kemaren, berikut source codenya:

download source code nya disini.

#include 
#include 
#include "SOIL.h"

float  z_pos=-50.0f;
float sudut_y=0.0f;
float sudut_x=0.0f;

/*GLUquadricObj *pBumi;

GLuint tex_1;

GLuint texture[1];*/



void resize(int w, int h);    //mengembalikan ukuran (callback reshape)

GLfloat  source_light[]={0.30,0.30,0.30,0.50};   //pencayahaan

void resize(int w, int h)       //mengembalikan ukuran (callback reshape)
{
    if(w >= h)
        glViewport(0, 0, (GLsizei)h, (GLsizei)h);
    else
        glViewport(0, 0, (GLsizei)w, (GLsizei)w);
}

void Mobil(void)
{
 GLfloat mat_specular[]={1.0,1.0,1.0,1.0};
 GLfloat mat_shininess[]={50.0};
 GLfloat light_position[]={1.0,1.0,1.0,1.0};
 GLfloat white_light[]={1.0,1.0,1.0,1.0};

 glClearColor(0.,1.0,1.0,0.0);  //blackground
 glShadeModel(GL_SMOOTH);
 glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);
 glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);
 glLightfv(GL_LIGHT0,GL_POSITION,light_position);
 glLightfv(GL_LIGHT0,GL_DIFFUSE,white_light);
 glMatrixMode(GL_PROJECTION);
 gluPerspective(50.0,1.5,10.0,1000.0);
 glEnable  (GL_DEPTH_TEST);
 glPolygonMode   (GL_FRONT_AND_BACK,GL_FILL);
 glEnable  (GL_LIGHTING);
 glLightfv  (GL_LIGHT7,GL_DIFFUSE,source_light);     //pencayahaan
 glEnable  (GL_LIGHT7);
 glEnable  (GL_COLOR_MATERIAL);
 glColorMaterial (GL_FRONT_AND_BACK,GL_AMBIENT);

}

void display(void)
{

 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();

  glTranslatef(0,0,z_pos);// besar kecilnya mobil
  glRotatef(sudut_y, 0, 1, 0);
  glRotatef(sudut_x, 1, 0, 0);

   glBegin(GL_QUADS);  //ruang

        glColor3f(0.0f, 10.0f, 0.0f);
        glVertex3f(-25.0f, -5.0f, 25.0f);
        glVertex3f( 50.0f, -5.0f, 25.0f);
        glVertex3f( 50.0f, -5.0f, -25.0f);
        glVertex3f(-25.0f, -5.0f, -25.0f);
    glEnd();

   glBegin(GL_QUADS);  //bawah panjang

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.0f, 1.0f);
        glVertex3f( 25.0f, -2.0f, 1.0f);
        glVertex3f( 25.0f, -2.5f,1.0f);
        glVertex3f(-1.0f, -2.5f, 1.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.0f, -3.0f);
        glVertex3f( 25.0f, -2.0f, -3.0f);
        glVertex3f( 25.0f, -2.5f, -3.0f);
        glVertex3f(-1.0f, -2.5f, -3.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.5f, 1.0f);
        glVertex3f( 25.0f, -2.5f, 1.0f);
        glVertex3f( 25.0f, -2.5f, -3.0f);
        glVertex3f(-1.0f, -2.5f, -3.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.0f, 1.0f);
        glVertex3f( 25.0f, -2.0f, 1.0f);
        glVertex3f( 25.0f, -2.0f, -3.0f);
        glVertex3f(-1.0f, -2.0f, -3.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.0f, 1.0f);
        glVertex3f(-1.0f, -2.0f, -3.0f);
        glVertex3f(-1.0f, -2.5f, -3.0f);
        glVertex3f(-1.0f, -2.5f, 1.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(25.0f, -2.0f, 1.0f);
        glVertex3f(25.0f, -2.0f, -3.0f);
        glVertex3f(25.0f, -2.5f, -3.0f);
        glVertex3f(25.0f, -2.5f, 1.0f);
    glEnd();

    glBegin(GL_QUADS);  //catokan

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(17.0f, -1.5f, 0.0f);
        glVertex3f( 20.0f, -2.0f,0.0f);
        glVertex3f(17.0f, -2.0f, 0.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f( 20.0f, -1.5f, 0.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(17.0f, -1.5f, -2.0f);
        glVertex3f( 20.0f, -2.0f, -2.0f);
        glVertex3f(17.0f, -2.0f, -2.0f);
        glVertex3f( 20.0f, -1.5f, -2.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(17.0f, -2.0f, 0.0f);
        glVertex3f( 20.0f, -2.0f, 0.0f);
        glVertex3f( 20.0f, -2.0f, -2.0f);
        glVertex3f(17.0f, -2.0f, -2.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(17.0f, -1.5f, 0.0f);
        glVertex3f( 20.0f, -1.5f, -2.0f);
        glVertex3f(17.0f, -1.5f, -2.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f( 20.0f, -1.5f, 0.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(17.0f, -1.5f, 0.0f);
        glVertex3f(17.0f, -1.5f, -2.0f);
        glVertex3f(17.0f, -2.0f, -2.0f);
        glVertex3f(17.0f, -2.0f, 0.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(20.0f, -1.5f, -2.0f);
        glVertex3f(20.0f, -2.0f, -2.0f);
        glVertex3f(20.0f, -2.0f, 0.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(20.0f, -1.5f, 0.0f);
    glEnd();

    //glBindTexture(GL_TEXTURE_2D, tex_1);
    glBegin(GL_QUADS);  //moncong

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f(-1.0f, -2.5f, 2.0f);
        glVertex3f(-9.0f, -2.5f, 1.5f);
        glColor3f(10.0f, 0.0f, 0.0f);
        glVertex3f(-9.0f, 0.5f, 1.5f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-9.0f, 0.5f, -3.5f);
        glVertex3f(-1.0f, 1.0f, -4.0f);
        glVertex3f(-1.0f, -2.5f, -4.0f);
        glVertex3f(-9.0f, -2.5f, -3.5f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, -2.5f, 2.0f);
        glVertex3f( -9.0f, -2.5f, 1.5f);
        glVertex3f( -9.0f, -2.5f, -3.5f);
        glVertex3f(-1.0f, -2.5f, -4.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f( -9.0f, 0.5f, -3.5f);
        glVertex3f(-1.0f, 1.0f, -4.0f);
        glColor3f(10.0f, 0.0f, 0.0f);
        glVertex3f( -9.0f, 0.5f, 1.5f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f( -9.0f, -2.5f, 1.5f);
        glVertex3f( -9.0f, -2.5f, -3.5f);
        glVertex3f(-9.0f, 0.5f, -3.5f);
        glColor3f(5.0f, 0.0f, 0.0f);
        glVertex3f(-9.0f, 0.5f, 1.5f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(-1.0f, 0.5f, 2.0f);
        glVertex3f(-1.0f, -2.5f, 2.0f);
        glVertex3f(-1.0f, -2.5f, -4.0f);
        glVertex3f(-1.0f, 0.5f, -4.0f);
    glEnd();

    glBegin(GL_QUADS);  //lampu

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-9.0f, -1.5f, 1.5f);
        glVertex3f(-9.0f, -1.5f, 3.0f);
        glVertex3f(-9.0f, -2.0f, 3.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-9.0f, -2.0f, 1.5f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-9.0f, -1.5f, -5.0f);
        glVertex3f(-9.0f, -1.5f, -3.5f);
        glVertex3f(-9.0f, -2.0f, -3.5f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-9.0f, -2.0f, -5.0f);
    glEnd();

    glBegin(GL_QUADS);  //bemper

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-9.0f, -2.5f, 3.0f);
        glVertex3f(-9.0f, -2.5f, -5.0f);
        glVertex3f(-9.0f, -3.75f, -5.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-9.0f, -3.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);   //kiri depan
        glVertex3f(-6.0f, -1.0f, 3.0f);
        glVertex3f(-6.0f, -1.0f, 1.5f);
        glVertex3f(-4.0f, -1.0f,1.5f);
        glVertex3f(-4.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-7.0f, -1.25f, 3.0f);
        glVertex3f(-7.0f, -1.25f, 1.5f);
        glVertex3f(-6.0f, -1.0f,1.5f);
        glVertex3f(-6.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-8.0f, -1.75f, 3.0f);
        glVertex3f(-8.0f, -1.75f, 1.5f);
        glVertex3f(-7.0f, -1.25f,1.5f);
        glVertex3f(-7.0f, -1.25f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-9.0f, -2.5f, 3.0f);
        glVertex3f(-9.0f, -2.5f, 1.5f);
        glVertex3f(-8.0f, -1.75f,1.5f);
        glVertex3f(-8.0f, -1.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-3.0f, -1.25f, 3.0f);
        glVertex3f(-3.0f, -1.25f, 1.5f);
        glVertex3f(-4.0f, -1.0f,1.5f);
        glVertex3f(-4.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-2.0f, -1.75f, 3.0f);
        glVertex3f(-2.0f, -1.75f, 1.5f);
        glVertex3f(-3.0f, -1.25f,1.5f);
        glVertex3f(-3.0f, -1.25f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -2.5f, 3.0f);
        glVertex3f(-1.0f, -2.5f, 1.5f);
        glVertex3f(-2.0f, -1.75f,1.5f);
        glVertex3f(-2.0f, -1.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);      //kanan depan
        glVertex3f(-6.0f, -1.0f, -5.0f);
        glVertex3f(-6.0f, -1.0f, -3.5f);
        glVertex3f(-4.0f, -1.0f,-3.5f);
        glVertex3f(-4.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-7.0f, -1.25f, -5.0f);
        glVertex3f(-7.0f, -1.25f, -3.5f);
        glVertex3f(-6.0f, -1.0f,-3.5f);
        glVertex3f(-6.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-8.0f, -1.75f, -5.0f);
        glVertex3f(-8.0f, -1.75f, -3.5f);
        glVertex3f(-7.0f, -1.25f,-3.5f);
        glVertex3f(-7.0f, -1.25f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-9.0f, -2.5f, -5.0f);
        glVertex3f(-9.0f, -2.5f, -3.5f);
        glVertex3f(-8.0f, -1.75f,-3.5f);
        glVertex3f(-8.0f, -1.75f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-3.0f, -1.25f, -5.0f);
        glVertex3f(-3.0f, -1.25f, -3.5f);
        glVertex3f(-4.0f, -1.0f,-3.5f);
        glVertex3f(-4.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-2.0f, -1.75f, -5.0f);
        glVertex3f(-2.0f, -1.75f, -3.5f);
        glVertex3f(-3.0f, -1.25f,-3.5f);
        glVertex3f(-3.0f, -1.25f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -2.5f, -5.0f);
        glVertex3f(-1.0f, -2.5f, -3.5f);
        glVertex3f(-2.0f, -1.75f,-3.5f);
        glVertex3f(-2.0f, -1.75f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(25.0f, -2.0f, 3.0f);
        glVertex3f(25.0f, -2.0f, 1.0f);
        glVertex3f(25.0f, -3.75f, 1.0f);
        glVertex3f(25.0f, -3.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(25.0f, -2.0f, -3.0f);
        glVertex3f(25.0f, -2.0f, -5.0f);
        glVertex3f(25.0f, -3.75f, -5.0f);
        glVertex3f(25.0f, -3.75f, -3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);   //kiri belakang
        glVertex3f(12.0f, -1.0f, 3.0f);
        glVertex3f(12.0f, -1.0f, 1.0f);
        glVertex3f(22.0f, -1.0f,1.0f);
        glVertex3f(22.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(11.0f, -1.25f, 3.0f);
        glVertex3f(11.0f, -1.25f, 1.0f);
        glVertex3f(12.0f, -1.0f,1.0f);
        glVertex3f(12.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(10.0f, -1.75f, 3.0f);
        glVertex3f(10.0f, -1.75f, 1.0f);
        glVertex3f(11.0f, -1.25f,1.0f);
        glVertex3f(11.0f, -1.25f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(9.0f, -2.5f, 3.0f);
        glVertex3f(9.0f, -2.5f, 1.0f);
        glVertex3f(10.0f, -1.75f,1.0f);
        glVertex3f(10.0f, -1.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(23.0f, -1.25f, 3.0f);
        glVertex3f(23.0f, -1.25f, 1.0f);
        glVertex3f(22.0f, -1.0f,1.0f);
        glVertex3f(22.0f, -1.0f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(24.0f, -1.75f, 3.0f);
        glVertex3f(24.0f, -1.75f, 1.0f);
        glVertex3f(23.0f, -1.25f,1.0f);
        glVertex3f(23.0f, -1.25f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(25.0f, -2.5f, 3.0f);
        glVertex3f(25.0f, -2.5f, 1.0f);
        glVertex3f(24.0f, -1.75f,1.0f);
        glVertex3f(24.0f, -1.75f, 3.0f);

        glColor3f(1.0f, 1.0f, 1.0f);   //kanan belakang
        glVertex3f(12.0f, -1.0f, -5.0f);
        glVertex3f(12.0f, -1.0f, -3.0f);
        glVertex3f(22.0f, -1.0f,-3.0f);
        glVertex3f(22.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(11.0f, -1.25f, -5.0f);
        glVertex3f(11.0f, -1.25f, -3.0f);
        glVertex3f(12.0f, -1.0f,-3.0f);
        glVertex3f(12.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(10.0f, -1.75f, -5.0f);
        glVertex3f(10.0f, -1.75f, -3.0f);
        glVertex3f(11.0f, -1.25f,-3.0f);
        glVertex3f(11.0f, -1.25f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(9.0f, -2.5f, -5.0f);
        glVertex3f(9.0f, -2.5f, -3.0f);
        glVertex3f(10.0f, -1.75f,-3.0f);
        glVertex3f(10.0f, -1.75f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(23.0f, -1.25f, -5.0f);
        glVertex3f(23.0f, -1.25f, -3.0f);
        glVertex3f(22.0f, -1.0f,-3.0f);
        glVertex3f(22.0f, -1.0f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(24.0f, -1.75f, -5.0f);
        glVertex3f(24.0f, -1.75f, -3.0f);
        glVertex3f(23.0f, -1.25f,-3.0f);
        glVertex3f(23.0f, -1.25f, -5.0f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(25.0f, -2.5f, -5.0f);
        glVertex3f(25.0f, -2.5f, -3.0f);
        glVertex3f(24.0f, -1.75f,-3.0f);
        glVertex3f(24.0f, -1.75f, -5.0f);
    glEnd();

    glBegin(GL_QUADS);  //kabin bawah

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, -2.0f, 2.0f);
        glVertex3f(-1.0f, -2.0f, 2.0f);

        glColor3f(.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);
        glVertex3f( 3.0f, 1.0f, -4.0f);
        glVertex3f( 3.0f, -2.0f, -4.0f);
        glVertex3f(-1.0f, -2.0f, -4.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, -2.0f, 2.0f);
        glVertex3f( 3.0f, -2.0f, 2.0f);
        glVertex3f( 3.0f, -2.0f, -4.0f);
        glVertex3f(-1.0f, -2.0f, -4.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, 1.0f, -4.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);

        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);
        glVertex3f(-1.0f, -2.0f, -4.0f);
        glVertex3f(-1.0f, -2.0f, 2.0f);

        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(3.0f, 1.0f, 2.0f);
        glVertex3f(3.0f, 1.0f, -4.0f);
        glVertex3f(3.0f, -2.0f, -4.0f);
        glVertex3f(3.0f, -2.0f, 2.0f);
    glEnd();

    glBegin(GL_QUADS);  //pijakan kaki 1

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, -3.74f, 3.0f);
        glVertex3f( 3.0f, -3.74f, 3.0f);
        glVertex3f( 3.0f, -3.75f, 3.0f);
        glVertex3f(-1.0f, -3.75f, 3.0f);

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, -3.74f, -5.0f);
        glVertex3f( 3.0f, -3.74f, -5.0f);
        glVertex3f( 3.0f, -3.75f, -5.0f);
        glVertex3f(-1.0f, -3.75f, -5.0f);

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, -3.75f, 3.0f);
        glVertex3f( 3.0f, -3.75f, 3.0f);
        glVertex3f( 3.0f, -3.75f, -5.0f);
        glVertex3f(-1.0f, -3.75f, -5.0f);

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, -3.74f, 3.0f);
        glVertex3f( 3.0f, -3.74f, 3.0f);
        glVertex3f( 3.0f, -3.74f, -5.0f);
        glVertex3f(-1.0f, -3.74f, -5.0f);

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, -3.74f, 3.0f);
        glVertex3f(-1.0f, -3.74f, -5.0f);
        glVertex3f(-1.0f, -3.75f, -5.0f);
        glVertex3f(-1.0f, -3.75f, 3.0f);

        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(3.0f, -3.74f, 3.0f);
        glVertex3f(3.0f, -3.74f, -5.0f);
        glVertex3f(3.0f, -3.75f, -5.0f);
        glVertex3f(3.0f, -3.75f, 3.0f);
    glEnd();

    glBegin(GL_QUADS);  //pijakan kaki 2

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -3.0f, 2.5f);
        glVertex3f( 3.0f, -3.0f, 2.5f);
        glVertex3f( 3.0f, -3.74f, 2.5f);
        glVertex3f(-1.0f, -3.74f, 2.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -3.0f, -4.5f);
        glVertex3f( 3.0f, -3.0f, -4.5f);
        glVertex3f( 3.0f, -3.74f, -4.5f);
        glVertex3f(-1.0f, -3.74f, -4.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -3.74f, 2.5f);
        glVertex3f( 3.0f, -3.74f, 2.5f);
        glVertex3f( 3.0f, -3.74f, -4.5f);
        glVertex3f(-1.0f, -3.74f, -4.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -3.0f, 2.5f);
        glVertex3f( 3.0f, -3.0f, 2.5f);
        glVertex3f( 3.0f, -3.0f, -4.5f);
        glVertex3f(-1.0f, -3.0f, -4.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-1.0f, -3.0f, 2.5f);
        glVertex3f(-1.0f, -3.0f, -4.5f);
        glVertex3f(-1.0f, -3.74f, -4.5f);
        glVertex3f(-1.0f, -3.74f, 2.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(3.0f, -3.0f, 2.5f);
        glVertex3f(3.0f, -3.0f, -4.5f);
        glVertex3f(3.0f, -3.74f, -4.5f);
        glVertex3f(3.0f, -3.74f, 2.5f);
    glEnd();

    glBegin(GL_QUADS);  //kabin atas kiri

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-0.5f, 2.0f, 2.0f);
        glVertex3f( 3.0f, 2.5f, 2.0f);
        glVertex3f( 3.0f, 1.0f, 2.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);

        glColor3f(1.0f, 1.0f, 0.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);
        glVertex3f( 3.0f, 2.5f, -1.0f);
        glVertex3f( 3.0f, 1.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, 1.0f, 2.0f);
        glVertex3f( 3.0f, 1.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-0.5f, 2.0f, 2.0f);
        glVertex3f( 3.0f, 2.5f, 2.0f);
        glVertex3f( 3.0f, 2.5f, -1.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-0.5f, 2.0f, 2.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, 1.0f, 2.0f);

        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(3.0f, 2.5f, 2.0f);
        glVertex3f(3.0f, 2.5f, -1.0f);
        glVertex3f(3.0f, 1.0f, -1.0f);
        glVertex3f(3.0f, 1.0f, 2.0f);
    glEnd();

    glBegin(GL_QUADS);   //spion

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-0.5f, 2.0f, 2.5f);
        glVertex3f(-0.5f, 1.0f, 2.5f);
        glVertex3f(-0.25f, 1.0f, 3.5f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-0.25f, 2.0f, 3.5f);

        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex3f(-0.5f, 2.0f, -4.5f);
        glVertex3f(-0.5f, 1.0f, -4.5f);
        glVertex3f(-0.25f, 1.0f, -5.5f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-0.25f, 2.0f, -5.5f);
    glEnd();

    glBegin(GL_QUADS);  //kabin atas kanan

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-0.5f, 2.0f, -4.0f);
        glVertex3f( 3.0f, 2.5f, -4.0f);
        glVertex3f( 3.0f, 1.0f, -4.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);

        glColor3f(1.0f, 1.0f, 0.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);
        glVertex3f( 3.0f, 2.5f, -1.0f);
        glVertex3f( 3.0f, 1.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);

        glColor3f(1.0f, 0.0f, 1.0f);
        glVertex3f(3.0f, 1.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);
        glVertex3f(3.0f, 1.0f, -4.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);
        glVertex3f( 3.0f, 2.5f, -1.0f);
        glVertex3f( 3.0f, 2.5f, -4.0f);
        glVertex3f(-0.5f, 2.0f, -4.0f);

        glColor3f(0.0f, 0.0f, 0.0f);
        glVertex3f(-0.5f, 2.0f, -4.0f);
        glVertex3f(-1.0f, 2.0f, -1.0f);
        glVertex3f(-1.5f, 1.0f, -1.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(-1.0f, 1.0f, -4.0f);

        glColor3f(0.0f, 1.0f, 0.0f);
        glVertex3f(3.0f, 2.5f, -1.0f);
        glVertex3f(3.0f, 2.5f, -4.0f);
        glVertex3f(3.0f, 1.0f, -4.0f);
        glVertex3f(3.0f, 1.0f, -1.0f);
    glEnd();

     glBegin(GL_QUADS);  //kabin belakang

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, -2.0f, 3.0f);
        glVertex3f(3.0f, -2.0f, 3.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(9.0f, -2.0f, -5.0f);
        glVertex3f(3.0f, -2.0f, -5.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(3.0f, -2.0f, 3.0f);
        glVertex3f(9.0f, -2.0f, 3.0f);
        glVertex3f(9.0f, -2.0f, -5.0f);
        glVertex3f(3.0f, -2.0f, -5.0f);

        glColor3f(0.0f, 0.0f, 1.0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);
        glVertex3f(3.0f, -2.0f, -5.0f);
        glVertex3f(3.0f, -2.0f, 3.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(9.0f, -2.0f, -5.0f);
        glVertex3f(9.0f, -2.0f, 3.0f);
    glEnd();

    glBegin(GL_QUADS);  //kabin belakang atas

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(9.0f, 3.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(3.5f, 3.0f, 3.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(3.5f, 3.0f, -5.0f);
        glVertex3f(9.0f, 3.5f, -5.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);

        glColor3f(1.0f, 0.0f, .0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(9.0f, 3.5f, 3.0f);
        glVertex3f(9.0f, 3.5f, -5.0f);
        glVertex3f(3.5f, 3.0f, -5.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(3.5f, 3.0f, 3.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(3.5f, 3.0f, -5.0f);
        glVertex3f(3.0f, 2.5f, -5.0f);
        glVertex3f(3.0f, 2.5f, 3.0f);
        glColor3f(10.0f, 10.0f, 10.0f);
        glVertex3f(3.5f, 3.0f, 3.0f);

        glColor3f(1.0f, 0.0f, 0.0f);
        glVertex3f(9.0f, 3.5f, 3.0f);
        glVertex3f(9.0f, 3.5f, -5.0f);
        glVertex3f(9.0f, 2.5f, -5.0f);
        glVertex3f(9.0f, 2.5f, 3.0f);
    glEnd();

 glFlush();
 glutSwapBuffers();

}

void myTimeOut(int  id)
{
  // called if timer event
  // ...advance the state of animation incrementally...

 glutPostRedisplay();    // request redisplay
 glutTimerFunc(100, myTimeOut, 0);  // request next timer event
}

void myKeyboard(unsigned char key, int  x, int  y)
{
  if((key=='-')||(key=='_')) z_pos-= 1.0f;
  if((key=='=')||(key=='+')) z_pos+= 1.0f;

  if((key=='a')||(key=='A'))sudut_y+=5.0f;
  if((key=='d')||(key=='D'))sudut_y-=5.0f;

  if((key=='w')||(key=='W'))sudut_x+=5.0f;
  if((key=='s')||(key=='S'))sudut_x-=5.0f;
}

void tampil()
{
 display();
}

int main(int argc,char *argv[])
{
 glutInit(&argc,argv);
 glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA|GLUT_DEPTH);
 glutInitWindowPosition(0,0);
 glutInitWindowSize(700,700);
 glutCreateWindow("Project UAS");
 glutDisplayFunc(display);
 glutKeyboardFunc(myKeyboard);
 glutTimerFunc(100,myTimeOut, 0);
 glutReshapeFunc(resize);      //mengembalikan ukuran (callback reshape)
 Mobil();
 glutMainLoop();
 return(0);
}

/*GLuint LoadGLTexture(const char *filename)
{
    // load an image file directly as a new OpenGL texture
    GLuint tex;
    tex = SOIL_load_OGL_texture(filename, SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID,SOIL_FLAG_INVERT_Y);

    // check for an error during the load process
    if(tex == 0) {
        printf("SOIL loading error: '%s'\n", SOIL_last_result());
    }
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    return tex;
}

void init(void)
{
    tex_1 = LoadGLTexture("moncongdepan.png");

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    glShadeModel(GL_SMOOTH);

    glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
    glClearDepth(1.0f);

    pBumi = gluNewQuadric();
    gluQuadricNormals(pBumi, GLU_SMOOTH);
    gluQuadricTexture(pBumi, GL_TRUE);

}*/

Minggu, 06 Juli 2014

TAHAPAN PEMBUATAN ER DIAGRAM

Kali ini saya ingin menjelaskan bagaimana cara membuat ERD (Entity Relational Diagram) dalam database. Sebelum kita membuat ERD ada baiknya kita berkenalan dulu dengan segala sesuatu yang berhubungan dengan ERD. Untuk membuat ERD kita memerlukan Entitas/Entity, Relasi/Relationship, dan Atribut/Attribute.

ERD adalah pemodelan data utama yang membantu mengorganisasikan data dalam suatu proyek ke dalam entitas-entitas dan menentukan hubungan antar entitas.

Entitas/Entity adalah suatu tempat atau objek untuk menyimpan data. Contoh: Entitas buku untuk menyimpan atribut mengenai buku (judul buku, kode buku, pengarang, dsb). Entity digambarkan dengan Persegi dalam ERD.

Relasi/Relationship adalah hubungan yang terjadi antara entitas atau lebih. Contoh: Entitas buku dan Entitas Pengarang memiliki hubungan “ditulis”, yang artinya, pengarang menulis buku, dan buku ditulis pengarang. Selain itu, terdapat relasi “one to one”, “one to many”, dan “many to many” dalam entity. Relasi ini digambarkan dengan garis dalam ERD.

Atribut/Attribute adalah ciri umum semua entitas atau semua yang ada dalam entitas. Contoh: Entitas pengarang memiliki atribut nama, alamat, no telpon, dsb. Atribut digambarkan dengan lingkaran memanjang dalam ERD tapi jarang sekali dalam ERD atribut ikut digambarkan. Atribut juga sering disebut dengan field atau kolom dalam suatu ERD.

Dalam membuat ERD, ada beberapa hal yang perlu kita waspadai, selain itu kita juga dituntut untuk lebih teliti dalam menentuka entity, relasi, atribut, menghindarkan terjadinya relasi “many to many” dan lain sebagainya. Untuk itu lihat beberapa langkah berikut agar kita bisa membuat ERD dengan baik:
1.        Menentukan Entity
Disini kita dituntut untuk menentukan dengan cermat sebuah entity yang ada dalam suatu proyek atau masalah. Entity berguna untuk menentukan peran, kejadian, lokasi, hal nyata dan konsep penggunaan untuk database
2.        Menentukan Relasi
Setelah kita berhasil membuat Entity, langkah selanjutnya adalah menentukan relasi antar entity. Relasi apa yang terdapat antara Entity A dan B, apakah entity A dan B memiliki relasi “one to one”, “one to many”, atau “many to many”.
3.        Gambar ERD sementara
Jika sudah mengetahui Entity beserta Relasinya, sekarang kita buat dulu gambar ERD sementara. Entity digambarkan dengan persegi, relasi digambarkan dengan garis.
4.        Isi kardinalitas
Kardinalitas menentukan jumlah kejadian satu entitas untuk sebuah kejadian pada entitas yang berhubungan. Contohnya antara Entitas Buku, Distributor dan Pengarang, kardinalitas yang ada berupa:
a.               Satu pengarang dapat menulis banyak buku
b.              Satu buku ditulis satu pengarang
c.               Banyak buku di distribusikan oleh satu distributor.
Dari sini kita bisa mengetahui harus memberi relasi apa. One to one kah?, dsb.
5.        Tentukan Primary Key (Kunci Utama)
Menentukan Primary Key pada masing-masing entity. Primary Key adalah atribut pada entity yang bersifat unik. Jadi setiap entity hanya memiliki satu Primary Key saja. Contoh: Entity Buku memiliki Primary Key bernama kode buku. Kode Buku ini bersifat unik, karena masing-masing buku memiliki kode yang berbeda-beda.
Tentukan pula Foreign Key (Kunci Tamu) pada masing-masing Entity. Foreign Key adalah Primary Key yang ada dalam Entity yang lain. Contoh pada Entity Pengarang misalnya terdapat atribut kode buku, yang mana, kode buku merupakan Primary Key dari Entity buku.
6.        Gambar ERD berdasarkan Primary Key
Menghilangkan relasi “many to many” dan memasukkan Primary dan Foreign Key pada masing-masing entitas. Relasi many to many antar entity perlu dihilangkan dengan cara menambah atribut baru antara 2 entity yang memiliki relasi many to many.
7.        Menentukan Atribut
Jika sudah melakukan step diatas, sekarang saatnya menentukan atribut pada masing-masing Entitas. Telitilah dalam menentukan atribut.
8.        Pemetaan Atribut
Apabila atribut telah ditentukan, sekarang pasang atribut dengan entitas yang sesuai.
9.        Gambar ERD dengan Atribut
Mengatur ERD seperti langkah 6 dengan menambahkan atribut dan relasi yang ditemukan.
10.    Periksa Hasil
Periksa lagi ERD, apakah ERD sudah menggambarkan system yang akan dibangun? Jika belum, check kembali dari awal.


Notasi yang digunakan dalam ERD adalah :


Entitas dapat merupakan :
·       Sebuah elemen lingkungan dari perusahaan , seperti customer atau supplier
·       Suatu sumber daya , seperti suatu piutang dagang, suatu produk, atau suatu penjual
·       Suatu arus informasi , seperti suatu penjualan pemesanan atau suatu faktur 

Di dalam sebuah entitas terdapat beberapa atribut. Atribut merupakan gambaran karakteristik dari sebuah entitas atau himpunan entitas.
contoh:


Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Key dipilih karena unik, untuk setiap entitas sehingga bisa di bedakan dari entitas yang lain. Kita bisa mendefinisikan key sebagai satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik.


Ada 3 macam key :
1.        Super Key
Superkey yaitu satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.
Contoh super key yaitu :
id_kereta, nama_kereta, kapasitas, harga
id_kereta, nama_kereta, kapasitas
id_kereta, nama_kereta
id_kereta

2.        Candidat Key
Kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik.
Contoh : id_kereta

3.        Primary Key
Primary key merupakan salah satu dari candidate key yang terpilih. Alasan pemilihan primary key :
a.         Lebih sering di jadikan acuan
b.        Lebih ringkas
c.         Jaminan keunikan key lebih baik
Contoh dari primary key adalah id_kereta.

 Jika sebuah primary key terhubung ke table/entity lain, maka keberadaan primary key pada entity tersebut di sebut sebagai foreign key ( kunci tamu ).

Misal : Primary Key id_kereta dari entity kereta_api digunakan juga pada field entity penumpang, maka keberadaan field id_kereta pada entity penumpang disebut sebagai foreign key.

Dalam ERD, hubungan (relasi) dapat terdiri dari sejumlah entitas yang disebut dengan derajad relasi. Derajad relasi maksimum disebut dengan kardinalitas sedangkan derajad minimum disebut dengan modalitas. Jadi kardinalitas relasi menunjukkan jumlah maksimum entitas yang dapat berelasi dengan entitas pada himpunan entitas lain. Kardinalitas relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dapat berupa :
1.        Satu ke satu (one to one/ 1-1)
Setiap entitas pada himpunan entitas A dapat berelasi dengan paling banyak satu entitas pada himpunan entitas B, demikian juga sebaliknya.



1.        Satu ke banyak (one to many/ 1- N ) / N-1

Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya. Atau Setiap entitas pada himpunan entitas A hanya dapat berelasi dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya.


1.        Banyak ke banyak (many to many/ N –N)
Setiap entitas pada himpunan entitas A dapat berelasi dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya.


Berikut ini adalah tahapan yang saya lakukan dalam pembuatan ERD pada " Sistem Informasi Pemesanan Tiket Kereta Online" .
1.    Penentuan Entities


Keterangan :
a.         penumpang
·           id_penumpang (Primary Key)
·           nama_penumpang
·           id_kereta (Foreign Key)
·           alamat
·           tanggal_keberangkatan
·           tanggal_lahir
·           no_identitas
b.        bank
·           kode_bank (Primary Key)
·           nama_bank
c.         kereta_api
·           id_kereta (Primary Key)
·           nama_kereta
·           kelas_ kereta
·           harga
·           kapasitas
·           jam_keberangkatan
·           stasiun_asal
·           stasiun_tujuan
d.        tiket
·           id_tiket (Primary Key)
·           id_penumpang (Foreign Key)
·           harga
·           id_kereta (Foreign Key)
·           no_kursi
·           no_gerbong
·           kode_pemesanan (Foreign Key)
e.         bukti_pemesanan
·           kode_pemesanan (Primary Key)
·           nama_pemesan
·           id_kereta (Foreign Key)
·           jumlah_penumpang
·           tanggal_pemesanan
f.         tanda_pembayaran
·           kode_pembayaran (Primary Key)
·           kode_pemesanan (Foreign Key)
·           tanggal_pembayaran
·           waktu
·           kode_bank (Foreign Key)
·           nama_pembayar
  
2.        Penentuan Atribut

3.       Penentuan Kardinalitas Relasi


4.        Pembuatan ERD

Sumber : http://mybroadcaster.blogspot.com

FLOW CHART SISTEM INFORMASI PEMESANAN TIKET KERETA ONLINE

Dalam membuat suatu sistem informasi perlu adanya suatu langkah untuk menganalisa suatu kasus dan merencanakan hal-hal yang akan dilakukan. Pada bagian ini saya akan menganalisa suatu kasus dengan menggunakan Flowchart.

Flowchart adalah sekumpulan gambar – gambar tertentu untuk menyatakan alur dari suatu program yang akan diterjemahkan ke salah satu bahasa pemrograman. Kegunaan flowchart sama seperti halnya algoritma yaitu untuk menuliskan alur program tetapi dalam bentuk gambar atau symbol.

Flowchart dalam menggambarkan alur sistem atau program menggunakan suatu gambar yang mempunyai symbol tertentu seperti dibawah ini :


Sesudah Anda paham mengenai penjelasan flowchart diatas Anda bisa mencobanya dengan menggunakan MS Office (MS Word, Powerpoint, exel) yang biasanya sudah tersedia di program computer Anda. Namun jika kedua program tersebut tidak bisa memenuhi kebutuhan dalam membuat flowchart bentuk lain yang lebih rumit, seperti algoritma. Anda tinggal mencari program Flowchart di internet yang bisa mempermudah menerapkan algoritma ke dalam bentuk flowchart. Berikut ini beberapa di antaranya :
1.   FlowBreeza adalah software yang bisa mengotomatiskan teks ke dalam Flowchart, artinya anda bisa membuat diagram alur atau flowchart hanya dengan mengetik.
2.  LucidChart adalah software atau aplikasi yang terintegrasi dengan Google Drive. LucidChart menggunakan sistem WYSIWIG dasar yang bisa memungkinkan Anda membuat diagram dengan mudah.
3.      Visio, aplikasi ini bisa berjalan dengan menggunakan beberapa system seperti Windows, Mas Os. Dia adalah aplikasi yang bisa membantu Anda dalam pembuatan diagram, sisitemoperasinya bisa berjalan dengan system operasi seperti linux atau solaris.

Dalam hal ini saya mendapat tugas untuk membuat dua (2) flowchart guna merancang sebuah sistem informasi, yaitu :
1.        Flowchart proses
Yaitu flowchart yang menggambarkan alur langkah-langkah/proses dalam pembuatan suatu sistem informasi dan merupakan bagan yang memperlihatkan urutan prosedur dan proses perancangan sistem informasi mulai dari awal hingga akhir, berikut gambarnya.


Dari flowchart di atas terlihat bahwa flowchart proses menggambarkan tentang proses pembuatan sistem informasi penjualan tiket kereta online.

2.        Flowchart web
Adalah bagan yang menggambarkan alur dari sistem informasi pemesanan tiket kereta dan memberikan gambaran secara rinci tentang urutan instruksi yang ada pada sistem informasi yang akan jadi nantinya.
Dalam membuat flowcharr ada beberapa cara yang harus dilakukan yaitu cara membuat flowchart harus berurutan, sistematis dan memiliki dasar-dasar pengetahuan logika. Di mana simbol yang satu dengan yang lainnya saling berkaitan atau berhubungan. Oleh karenanya jika Anda akan membuat flowchart ada beberapa hal yang harus diperhatikan, antara lain yaitu:
a.         Flowchart harus digambarkan secara vertical dan horizontal artinya dari atas ke bawah dan dari kiri ke kanan.
b.        Gambaran segala aktivitas harus didefinisikan dengan teliti, jelas dan dapat dimengerti.
c.         Permulaan dan akhir dari aktivitas harus ditentukan dengan jelas.
d.        Setiap aktifitas atau langkah-langkah, harus diuraikan dan dideskripsikan dengan menggunakan kata kerja, misalnya melakukan pengendalian, Membuat perencanan, menghitung banyaknya jalur dan lain sebagainya.
e.         Setiap langkah-langkah harus berada pada urutan yang benar dan mudah dimengerti.
f.         Jika ada cabang-cabang yang memotong aktivitas yang digambarkan. Sebaiknya jangan digambarkan pada diagram flowchart yang sama. Setiap percabangan harus disimpan di halaman yang lain secara terpisah atau jika cabang tersebut tidak berkaitan hilangkan saja.
g.        Gunakan tanda atau simbol yang terdapat pada flowchart yang standar dan tepat.

Dalam bagian ini saya buat menjadi dua (2) bagian, yaitu flowchart untuk halaman admin dan flowchart pada halaman user, berikut gambarnya.
a.         Flowchart halaman user

b.         Flowchart halaman admin
Dengan artikel ini diharapkan bisa membantu Anda dalam hal cara membuat flowchart dan memilih program flowchart yang tepat dan benar. Program-program yang disebutkan di atas hanyalah sebagian dari banyaknya program flowchart yang sudah tersedia di internet yang bisa Anda dapatkan secara gratis ataupun bayar. Nah, itulah penjelasan mengenai cara membuat flowchart. Semoga informasi yang disampaikan bermanfaat.