laporan praktikum bima

Upload: 1214370259

Post on 14-Oct-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/24/2018 Laporan Praktikum Bima

    1/53

    LAPORAN PRAKTIKUM

    KOMPUTER GRAFIK

    UNIVERSITAS PEMBANGUNAN PANCA BUDI

    FAKULTAS TEKHNIK

    JURUSAN SISTEM KOMPUTER

    MEDAN

    2014

    NAMA

    PRAKTIKAN

    NPM

    MAHASISW

    A

    TANGGAL

    PENGUMPULAN

    TANDA TANGAN

    PRAKTIKAN

    BIMA NUGRAGHA LUBIS 1214370259 11 juni 2014

    NAMA DOSEN TANGGAL

    KOREKSI

    NILAI TANDA TANGAN

    DOSEN

    INDRI SULISTIANINGSIH,

    S.KOM

    Kelas

    TI 4 Sore C

  • 5/24/2018 Laporan Praktikum Bima

    2/53

    DAFTAR ISI

    Daftar Isi .................................................................................................................i

    Kata Pengantar ...................................................................................................... ii

    BAB 1

    Pendahuluan

    1.1 Pengertian Komputer Grafik ....................................................................... 1

    1.2 Peranan dan Penggunaan Komputer Grafik ................................................ 1

    1.3 Pemilihan Aplikasi OPENGL ..................................................................... 1

    1.4 Tujuan ......................................................................................................... 2

    BAB 2

    Landasan Teori

    2.1 Sejarah OpenGL.......................................................................................... 3

    2.2 Pengenalan OpenGL ................................................................................... 4

    2.3 Cara Kerja OpenGL .................................................................................... 5

    BAB 3

    Hasil Percobaan/Praktikum

    3.1 Gambar 2D ................................................................................................ 12

    3.2 Gambar 3D ................................................................................................ 17

    BAB 4

    Analisa Hasil Percobaan

    4.1 Hasil percobaan gambar 2D ...................................................................... 21

    4.2 Hasil percobaan gambar 3D ...................................................................... 22

    PENUTUP............................................................................................................ iii

    DAFTAR PUSTAKA .......................................................................................... iv

  • 5/24/2018 Laporan Praktikum Bima

    3/53

    KATA PENGANTAR

    Segala puji hanya milik Allah SWT. Shalawat dan salam selalu tercurahkan kepada

    Rasulullah SAW. Berkat limpahan dan rahmat-Nya penyusun mampu menyelesaikan

    tugas makalah ini guna memenuhi tugas mata kuliah Komputer Grafik.

    Dalam penyusunan tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun

    penulis menyadari bahwa kelancaran dalam penyusunan materi ini tidak lain berkat bantuan,

    dorongan, dan bimbingan orang tua, sehingga kendala-kendala yang penulis hadapi teratasi.

    Makalah ini disusun agar pembaca dapat memperluas ilmu tentang ilmu komputer grafik dan

    contoh praktik pengerjaannya , makalah yang Saya sajikan berdasarkan pengamatan dariberbagai sumber informasi, referensi, dan berita. Makalah ini disusun oleh penyusun dengan

    berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari luar.

    Namun dengan penuh kesabaran dan terutama pertolongan dari Allah akhirnya makalah ini

    dapat terselesaikan.

    Semoga makalah ini dapat memberikan wawasan yang lebih luas dan menjadi sumbangan

    pemikiran kepada pembaca khususnya para mahasiswa Universitas Panca Budi. Saya sadar

    bahwa makalah ini masih banyak kekurangan dan jauh dari sempurna. Untuk itu, kepada

    dosen pembimbing saya meminta masukannya demi perbaikan pembuatan makalah

    saya di masa yang akan datang dan mengharapkan kritik dan saran dari para pembaca.

    Medan, 11 Juni 2014

    Bima Nugraha Lubis

  • 5/24/2018 Laporan Praktikum Bima

    4/53

    BAB I

    PENDAHULUAN

    1.1PENGERTIAN KOMPUTER GRAFIKMenurut Arntson (1988), komputer grafik adalah adalah komputer yang

    mampu menggambar atau menampilkan sebuah informasi yang berupa gambar

    atau ilustrasi. Grafika komputer merupakan suatu bidang yang mempelajari

    bagaimana menghasilkan suatu gambar menggunakan komputer, sehingga

    didalam grafika komputer akan dibahas tentang teknik-teknik menggambar.

    Komputer grafis ini terdiri atas satu set piranti untuk menciptakan gambar yang

    dapat berinteraksi secara alamiah dengan penggunanya. Peralatan-peralatan itu

    terdiri atas perangkat keras (hardware) dan perangkat lunak (software) yang

    secara bersama-sama memungkinkan pemogram untuk menampilkan program

    dengan kemampuan grafik yang canggih. Data ditampilkan secara visual melalui

    bentuk, warna dan tekstur secara lebih baik dibandingkan sekedar tabel-tabel

    angka, sebab syaraf sistem mata lebih mengenali dan memahami penyampaian

    pesan secara visual.

    1.2 PERANAN DAN PENGGUNAAN KOMPUTER GRAFIK

    Grafika komputer telah menunjukkan kemajuan yang pesat dalam

    pengembangan berbagai aplikasi untuk menghasilkan gambar. Walaupun pada

    awalnya aplikasi dalam sains dan engineering memerlukan peralatan yang mahal,

    perkembangan teknologi komputer memberikan kemudahan penggunaan komputer

    sebagai alat bantu aplikasi grafik komputer interaktif. Pada saat ini grafika

    komputer digunakan secara rutin dibidang ilmu pengetahuan, teknik, kedokteran,

    bisnis, industri, pemerintahaseni, hiburan, pendidikan, periklanan, dan lain

    sebagainya.

    1.3PEMILIHAN APLIKASI OpenGLDalam pembahasan dan praktik kerja di dalam makalah ini Saya akan

    memfokuskan pada penggunaan OpenGl sebagai pilihan Saya.

  • 5/24/2018 Laporan Praktikum Bima

    5/53

    1.4TUJUAN1. Sebagai bahan untuk Ujian Akhir Semester mata kuliah komputer grafik

    semester 4.

    2. mahasiswa diharapkan dapat mempraktikan pembuatan gambar 2D dan 3D.

  • 5/24/2018 Laporan Praktikum Bima

    6/53

    BAB II

    LANDASAN TEORI

    2.1 SEJARAH OPENGL

    Tahun 1980-an, mengembangkan perangkat lunak yang dapat berfungsi dengan

    berbagai hardware grafik adalah tantangan nyata. Pengembang perangkat lunak antarmuka

    dan kebiasaan menulis driver untuk setiap perangkat keras. Ini mahal dan mengakibatkan

    banyak duplikasi usaha.

    Pada awal 1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafik 3D untuk

    workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar industri

    defacto, membayangi terbuka berbasis standar PHIGS. Ini karena GL IRIS dianggap lebih

    mudah.

    digunakan, dan karena itu mendukung modus langsung rendering. By contrast,

    Sebaliknya, PHIGS dianggap sulit untuk digunakan dan ketinggalan zaman dalam hal

    fungsionalitas.

    SGIs pesaing (termasuk Sun Microsystems, Hewlett-Packard dan IBM) juga dapat

    membawa ke pasar 3D hardware, didukung oleh ekstensi yang dibuat pada PHIGS standar.

    Hal ini pada gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena lebih

    banyak hardware grafik 3D pemasok memasuki pasar. Dalam upaya untuk mempengaruhi

    pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka. SGI

    menganggap bahwa IrisGL API itu sendiri tidak cocok untuk membuka karena masalah

    lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak relevan dengan grafik

    3D. Sebagai contoh, termasuk windowing, keyboard dan mouse API, sebagian karena

    dikembangkan sebelum Sistem X Window dan Suns NEWS sistem dikembangkan. Selain

    itu, SGI memiliki sejumlah besar pelanggan perangkat lunak; dengan mengubah ke OpenGL

    API mereka berencana untuk mempertahankan pelanggan mereka terkunci ke SGI (dan IBM)

    hardware untuk beberapa tahun sementara pasar dukungan untuk OpenGL matang.

    Sementara itu, SGI akan terus berusaha untuk mempertahankan pelanggan mereka terikat

    pada hardware SGI dengan mengembangkan maju dan kepemilikan Iris Inventor dan Iris

    Performer pemrograman API. Akibatnya, SGI merilis standar OpenGL.

  • 5/24/2018 Laporan Praktikum Bima

    7/53

    2.2 PENGENALAN OPENGL

    OpenGL adalah sebuah program aplikasi interface yang digunakan untuk

    mendefinisikan komputer grafis 2D dan 3D. Program lintas-platform API ini umumnya

    dianggap ketetapan standar dalam industri komputer dalam interaksi dengan komputer grafis

    2D dan juga telah menjadi alat yang biasa untuk digunakan dengan grafis 3D. Singkatnya,

    Open Graphics Library, OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis

    ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru

    dari sistem. Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus

    atau executable kesistem operasi. Dengan demikian, program ini bekerja dengan perangkat

    keras grafis yang ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap

    perintah dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus

    tertentu yang terkait dengan grafis.

    OpenGL adalah suatu spesifikasi grafik yang low-level yang menyediakan fungsi untuk

    pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk

    keperluan-keperluan pemrograman grafik. OpenGL bersifat Open-Source, multi-platform dan

    multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun

    objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi

    (application programming interface (API) yang tidak tergantung pada piranti dan platform

    yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan

    sistem operasi lainnya.

    OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun

    dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang

    lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-

    package

    secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu,

    package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan

    bahasa pemrograman yang akan digunakan.OpenGl melayani dua tujuan :

    Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3Daccelerators, memamerkan oleh programmer dengan satu, seragam API.

  • 5/24/2018 Laporan Praktikum Bima

    8/53

    Untuk menyembunyikan kemampuan yang berbeda dari hardware platform, olehsemua yang memerlukan mendukung implementasi penuh fitur opengl set

    (menggunakan software emulation jika diperlukan).

    2.3 CARA KERJA OPENGL

    OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis.Untuk

    mendeskripsikan scene dan bagaimana penampilannya,sebenarnya programer lebih tau untuk

    menentukan hal-hal yang dibutuhkan untuk menghasilkan efek yang di inginkan.Langkah

    tersebut termasuk memanggil banyak perintah openGL,perintah tersebut digunakan untuk

    menggambarkan grafik primitif seperti titik,garis dan poligon dalam tiga dimensi.Sebagai

    tambahan,openGL mendukung lighting,shading,texture mapping,blending,transparancy,dan

    banyak kemampuan efek khusus lainnya.OpenGL mempunyai bnayak fungsi dan penggunaan

    perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus

    di letakkan pada direktory system dari windows (OS),yaitu :

    OpenGL32.dll Glu32.dll Glut32.dll

    Inisialisasi awal

    Inti dari tahapan ini adalah mengatur view port dan persepektif untuk penampilan obyek ke

    dalam layar monitor,viewport adalah besarnya layar monitor(image) yang dipakai untuk

    menampilkan obyek,sedangkan persepektif yang dimaksud adalah pengaturan sumbu z dalam

    penampilan obyek 3 dimensi,sehingga user dapat melihat obyek seolah-olah dalam bidang 3

    dimensi (X-Y-Z),selain itu penggambaran obyek yang dilakukan oleh programer juga dapat

    menggunaan koordinat 3 dimensi.

    Selain ke dua tujuan di atas pada tahap ini juga dilakukan koneksi awal dengan library

    openGL, koneksi ini dilakukan supaya fungsi-fungsi yang di sediakan openGL dapat

    digunakan. Fungsi/prosedur yang digunakan :

    LoadGlut(glut32.dll) -pemanggilan library openGL

    InitGL inisialisasi openGL awal yang harus dilakukan glViewport untuk pengaturan viewport glMatrixMode pengaturan viewport

  • 5/24/2018 Laporan Praktikum Bima

    9/53

    gluPerspective pengaturan persepektif

    Contoh script untuk inisialisasi openGL :

    Try

    LoadGlut(glut32.dll);

    InitGL;

    Exept one :=

    exeption

    do

    Begin

    messageDlg

    { e.message, mtError, [mbOk],};

    Halt {1}; End;

    End;

    Script di atas merupakan script yang paling sederhana, dalam artian minimal diperlukan

    untuk

    menginisialisasi penggunaan openGL.Fungsi-fungsi lain seperti yang disebut diatas seperti

    glViewport, glMatrixMode, dapat di tambah kan pada script sesuai dengan kebutuhan.

    Pembuatan gambar

    Didalam openGL pembuatan obyek dilakukan dengan titik-titik 3 dimensi,dengan mode

    GL_QUARDS, maka otomatis setiap 4 titik digambar menjadi sebuah bidang segiempat,sed

    angkan mode GL_LINES, pada setiap 2 titik digambar manjadi sebuah garis.Di dalam tahap

    ini setiap garis atau bidang juga dapat di atur warnanya.

    Fungsi atau prosedur yang digunakan :

    mode GL_QUARDS menggambarkan segi empat mode GL_LINES menggambark garis glVertex3f-penentuan titik 3 dimensi

    glColor3f penentuan warnaOpenGL memiliki lebih dari 200 fungsi. Fungsi tersebut

    bisa dikelompokkan menjadi :

  • 5/24/2018 Laporan Praktikum Bima

    10/53

    Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di layar. Fungsiini terdiri dari 2 jenis, yaitu primitif geometric seperti polygon (segi banyak) yang

    bisa dibuat menjadi dua, tiga, atau empat dimensi, dan primitif gambar seperti

    bitmaps.Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan warna, jenis

    garis, properti material, sumber cahaya, dan tekstur.

    Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan sebuahvirtual kamera yang bisa diposisikan dan diorientasikan relatif ke obyek yang

    ditentukan dengan fungsi primitif. Lensa kamera juga bisa dikendalikan sehingga bisa

    dihasilkan sudut

    yang lebar dan pandangan telefoto (jarak jauh).

    Fungsi windowing, fungsi ini mengendalikan windows pada layar dan penggunaandari mouse dan keyboard.

    Fungsi kontrol, menghidupkan macam-macam fitur OpenGL.

    Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl dan glu

    (atau GL dan GLU). Library yang pertama, adalah fungsi utama dari OpenGL, berisi

    semua fungsi OpenGL yang dibutuhkan sedangkan yang kedua, openGL Utility

    Llibrary (GLU) memuat fungsi yang ditulis menggunakan fungsi dari library utama

    dan sangat

    membantu bagi pengguna. Fungsi utama mempunyai nama yang diawali dengan gl seperti

    glVertex3f(), sedangkan fungsi didalam GLU mempunyai nama yang diawali dengan glu

    seperti gluOrtho2D()

    PRIMITIVE GRAFICS

    Primitif objek merupakan salah satu subbab dari grafika komputer yang terdiri dari titik, garis

    dan bangun dua dimensi. Dalam grafika komputer penghasilan citra menggunakan primitive

    grafik dasar, primitif ini memudahkan untur merender atau menggambar pada layar monitor

    sebagaimana penggunaan persamaan geometri sederhana. Contoh primitive grafika dasar

    antara lain : titik, garis, kurva, fill areadan text. Objek kompleks dapat dibuat dengan

    kombinasi dari primitive ini. Misalkan, Poligaris atau yang dapat didefinisikan sebagai urutan

    garis lurus yang saling terhubung. Secara umum algoritma grafis memiliki persamaan yaitu

    bagaimana menampilkan hasil.

  • 5/24/2018 Laporan Praktikum Bima

    11/53

    Primitive grafis yang umum dijelaskan pada tabel berikut :

    Fungsi dasar menggambar titik. Berikut adalah beberapa fungsi didalam menggambar suatu

    titik, antara lain :

    - glVertex2i(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa integer.

    Contoh glVertex2i(10,10)

    - glVertex2f(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa float. Contoh glVertex2f(10.0,10.0)

    - glVertex2d(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa double. Contoh glVertex2d(10.0,10.0);

    Cara pendefinisian primitive objek yang digunakan dalam pembuatan suatu objek :

    #define GL_POINTS

    Primitif objek ini dipergunakan untuk menciptakan suatu titik.

    # define GL_LINES

    Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis

    # define GL_LINE_LOOP

    # define GL_LINE_STRIP

    # define GL_TRIANGLES

    Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu

    segitiga dengan blok di tengahnya.

    # define GL_TRIANGLES_STRIPPada triangles strip jumlah vertex yang dipergunakan

    OBJEK GRAFIS PRIMITIFE GRAFIS

    Pixel (dot) Posisi (x,y) warna

    Garis (line) Posisi (x1,x2,y1,y2),Warna,Thickness,Pattern

    Lingkaran (circle) Pusat (x,y),Radius,Warna,Thickness,Pattern

    Ellipse Pusat (x,y),Radius : Horisontal/Vertical,Warna,Thickness,Pattern

    Kurva Teratur/Tidak teratur (Bezier)

    Character Type,Slanted,Thickness,Colour DLL

  • 5/24/2018 Laporan Praktikum Bima

    12/53

    adalah 4 buah vertex

    # define GL_TRIANGLE_FAN

    Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga

    dimana hanya menggunakan 1 titik pusat saja.

    # define GL_QUADS

    Quad atau segempat adalah empat buah titik yang terhubung menjadi quat segi

    empat dengan blok di tengahnya.

    # define GL_QUADS_STRIP

    Pada quads strip 4 buah vertex merupakan 1 kelompok.

    Langkah rendering pada quads strip :

    a.Nomor yang berhadap (membentuk 2 garis yang sejajar

    b.Nomor ganjil dengan nomor ganjil dipertemukan

    c.Nomor genap dengan nomor genap dipertemukan

    d.Garis yang tersisa akan dipertemukan

    # define GL_POLYGON

    Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi

    menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang

    dimiliki oleh GL_POLYGON sama dengan GL_TRIANGLE_FAN.

  • 5/24/2018 Laporan Praktikum Bima

    13/53

    Catatan :

    a) glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis,b) glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek,c) gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan

    mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.

    Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan

    menggunakan fungsi glColor3f(red,green,blue). Di mana red, green, blue berada pada 0

    sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala. Berikut

    adalah beberapa fungsi color :

    glColor3f(0,0,0);//black

    glColor3f(0,0,1);//blue

    glColor3f(0,1,0);//green

    glColor3f(0,1,1)//cyan

    glColor3f(1,0,0)//red

    glColor3f(1,0,1)//magenta

    glColor3f(1,1,0);//yellow

    glColor3f(1,1,1);//white

  • 5/24/2018 Laporan Praktikum Bima

    14/53

    GAMBAR 2D

    Primitive object 2D adalah suatu model pembuatan gambar yang mengacu kepada prespektif

    2 titik. Umumnya object 2D ini merupakan suatu object yang terdiri dari sekumpulan titik-

    titik yang menyambung (dihubungkan) menjadi satu dengan perantara garis lurus berupa

    polyline, polygon maupun kurva.

    GAMBAR3D

    Yang membedakan 2 dimensi dan 3 dimensi adalah kedalaman. Kedalaman didefinisikan

    sebagai jarak antara viewer terhadap benda yang dia lihat. Ini berarti berbeda dengan 2

    dimensi yang hanya menggunakan 2 ukuran, yaitu panjang dan lebar, maka 3 dimensi

    menggunakan 3 ukuran, yaitu panjang, lebar dan kedalaman. Secara geometri ketiga ukuran

    tersebut disimbolkan dengan sumbu x, y, dan z.

  • 5/24/2018 Laporan Praktikum Bima

    15/53

    BAB III

    PRAKTIKUM

    3.1 PEMBUATAN GAMBAR 2D

    a. Jajar genjangglEnd();#include

    void userdraw()

    {

    static int tick=0;

    void drawDot(int x,int y);

    glBegin(GL_LINES);

    glVertex2i(50,50);

    glVertex2i(100,100);

    glVertex2i(50,50);

    glVertex2i(200,50);

    glVertex2i(200,50);

    glVertex2i(250,100);glVertex2i(250,100);

    glVertex2i(100,100);

    }

    void display(void)

    {

    //clear screen

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

    glutSwapBuffers();

    }

    int main(int argc, char**argv)

    {

    glutInit(&argc,argv);//Inisialisasi Toolkit

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    glutInitWindowPosition(200,200);

  • 5/24/2018 Laporan Praktikum Bima

    16/53

    glutInitWindowSize(640,480);

    glutCreateWindow("Bima");

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

    gluOrtho2D(0.,640.,-240.,240.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    }

    Hasilnya

    b. BUNGA#include

    #include

    typedef struct

    {

    int x,y;

    }point2D_t;

    typedef struct

    {

    float r,g,b;

    }color_t;

    void setColor (color_t col)

  • 5/24/2018 Laporan Praktikum Bima

    17/53

    {

    glColor3f(col.r, col.g, col.b);

    }

    void drawPolygon(point2D_t pnt[],int n)

    {

    int i;

    glBegin(GL_POLYGON);

    for (i=0; i

  • 5/24/2018 Laporan Praktikum Bima

    18/53

    drawPolygon(batang,4);

    point2D_t

    pot[4]={{-60,-190},{60,-190},{30,-240},{-30,-240}};

    color_t hitam ={0,0,1};

    fillPolygon(pot,4, hitam);

    drawPolygon(pot,4);

    point2D_t

    pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-

    170},{-80,-170}};

    color_t hitam3 ={0,0,1};

    fillPolygon(pot2,4, hitam3);

    drawPolygon(pot2,4);

    point2D_t

    pot3[6]={{80,-160},{50,-160},{50,-190},{60,-190},{60,-

    170},{80,-170}};

    color_t hitam2 ={0,0,1};

    fillPolygon(pot3,4, hitam2);

    drawPolygon(pot3,4);

    static int tick=0;

    point2D_t shape[360];

    double srad,r;

    for(int s=0; s

  • 5/24/2018 Laporan Praktikum Bima

    19/53

    drawPolygon(shape, 360);

    }

    void display(void)

    {

    //clear screen

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

    glutSwapBuffers();

    }

    int main(int argc, char **argv)

    {

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    //posisi layar

    glutInitWindowPosition(150,150);

    //ukuran layar

    glutInitWindowSize(640,480);

    //title windows

    glutCreateWindow("Bunga Raflesia");

    //warna back layar

    glClearColor(1.0,1.0,1.0,0.0);

    gluOrtho2D(-300.,400.,-300.,300.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();return 0;

    }

  • 5/24/2018 Laporan Praktikum Bima

    20/53

    3.2PEMBUATRAN GAMBAR 3D#include

    #include

    #include

    #include

    #include

    #include

    void cube()

    {

    //menggambar kubus dan transformasi tarnslasi ke titik 0.5 0.5

    0.5 dan skala 1 1 1

    glPushMatrix();

    glTranslated(0.5,0.5,0.5);//cube

    glScaled(1.0,1.0,1.0);

    glutSolidCube(1.0);

    glPopMatrix();

    }

    void setMaterial()

    {

    //set properties of surfaces material

    GLfloat mat_ambient[] = {0.7f,0.7f,0.7f,1.0f}; // ada 4 jenismaterial yang dipakai, dengan kombinasi warna tertentu

    GLfloat mat_diffuse[] = {0.6f,0.6f,0.6f,1.0f};

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

    GLfloat mat_shininess[] = {50.0f};

    glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);

    glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);

    glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);

    glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);

  • 5/24/2018 Laporan Praktikum Bima

    21/53

    }

    void setLighting()

    {

    //set light sources

    GLfloat lightIntensity[] = {0.7f,0.7f,0.7f,1.0f};//mensetting

    pencahayaan

    GLfloat light_position[] = {2.0f,6.0f,3.0f,0.0f};

    glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);

    glLightfv(GL_LIGHT0,GL_POSITION,light_position);

    }

    void setViewport()

    {

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    double winHt = 1.0;//half height of the window

    glOrtho(-winHt*64/48,winHt*64/48,-winHt,winHt,0.1,100.0);

    }

    void setCamera()

    {

    //set the cameraglMatrixMode(GL_MODELVIEW);

    glLoadIdentity();

    gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);

    }

    void displayObject()

    {

  • 5/24/2018 Laporan Praktikum Bima

    22/53

    setMaterial();

    setLighting();

    setViewport();

    setCamera();

    //startDrawing

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    cube();//memanggil fungsi menggambar kubus

    glFlush();//mengirim smua objek untuk dirender

    }

    void main(int argc, char **argv)

    {

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);

    glutInitWindowSize(640,480);

    glutInitWindowPosition(100,100);

    glutCreateWindow("simple 3d scene");

    glutDisplayFunc(displayObject);//fungsi dari display object

    yang menggabungkan kubus lighting material dan kamera

    glEnable(GL_LIGHTING);

    glEnable(GL_LIGHT0);

    glShadeModel(GL_SMOOTH);

    glEnable(GL_DEPTH_TEST);

    glEnable(GL_NORMALIZE);

    glClearColor(1.0f,1.0f,1.0f,0.0f);glViewport(0,0,640,480);

    glutMainLoop();

    }

  • 5/24/2018 Laporan Praktikum Bima

    23/53

  • 5/24/2018 Laporan Praktikum Bima

    24/53

    BAB IVANALISA

    HASIL PRAKTIKUM

    4.1Hasil Percobaan 2D

    Warna background dan warna bidang yang dibuat sangat tidak combain sehingga

    menimbulkan kesulitan dalam melihatnya jika sesaat. Saya akui seharusnya gambar ini dapat

    lebih baik dari ini.

    Gambar 2D diatas meskipun tampak sederhana namun dalam pengerjaannya Saya

    mendapatkan kesulitan yang cukup lumayan,Karena gambar tersebut meniliki berbagai

    bentuk atau bisa kita sebut sebagai kombinasi dari berbagai bentuk dasar dari gmbar 2D.

  • 5/24/2018 Laporan Praktikum Bima

    25/53

    4.2Hasil Percobaan Gambar 3D

    Hasil yang sangat memuaskan bagi Saya karena selain seluruh bidangnya tampak

    simetris,dalam hal warna juga sangat baik.Seperti dapat kita lihat warna tersebut juga

    menonjolkan sisi berbayang sehingga semakin menguatkan dari gambar 3D tersebut.

  • 5/24/2018 Laporan Praktikum Bima

    26/53

    PENUTUP

    Dari pemaparan di atas dapat kita simpulkan bahwa penggunaan program OPENGL sangat

    membantu dalam studi Komputer Grafik bagi para pemula.Meskipun hasil dari praktikum

    yang telah saya lakukan di atas masih banyak mengalami kekurangan namun bagi saya yang

    merupakan seorang mahasiswa yang baru mengenal computer grafik, hal ini sangat

    membantu Saya dalam pendalaman ilmu saya akan komputer grafik.

    Pada bagian penutup ini Saya juga dituntut untuk memberikan saran tentang program

    OPENGL tersebut.Tidak akan banyak saran Saya untuk program ini karena mungkin saja

    bukan program ini yang memiliki kekurangan,akan tetapi akibat Saya yang merupakan

    seorang pemula sehingga sangat kaku dan mengalami kesulitan dalam pengaplikasiannya

    didalam praktik langsungnya.Saya harap di kemudian hari program OPEN GT ini dapat

    menjadi sebuah program dalam komputer grafik dapat mempermudah dan mengefesiensikan

    kinerjanya dengan mengupgrade atau dengan hal lainnya yang dapat mempermudah kami

    sebagai pemula untuk dapat memahaminya dengan cepat.

    Demikian makalah praktikum sebagai tugas Ujian Akhir Semester program Studi Komputer

    Grafik semester IV ini Saya perbuat. Saya sadar betul akan banyak kekurangan dalam

    penyajian ataupun dalam hal hasil akhir praktikum Saya. Namun Saya cukup berbangga hati

    dapat menyelesaikan makalah ini dengan hasil jerih payah usaha Saya sendiri yang mencari

    berbagai sumber pustaka yang berkaitan dengan makalah ini.

    Ribuan terimakasih Saya sampaikan kepada Dosen Komputer Grafik Ibu Indri

    Sulistianingsih,S.Kom dan seluruh penulis buku ataupun blog yang telah Saya manfaatkan

    tulisannya sebagai referensi dari makalah ini.

    Semoga makalah ini dapat bermanfaat dan mendapatkan respon yang positif dari dosen yang

    bersangkutan.

    Wassalamualaikum WRB.

  • 5/24/2018 Laporan Praktikum Bima

    27/53

    DAFTAR PUSTAKA

    ___. 2011. Komputer Grafik.

    http://dotsal.wordpress.com/2011/09/25/komputer-grafik/

    diakses tanggal 3 Juni 2014

    _____, 2008. Primitif Grafika. Online.

    http://materiquliah.wordpress.com/2008/11/15/primitif-grafika/

    . Diakses pada tanggal 3 Juni 2014

    _____2013. Grafika Komputer3D. (Online).

    (http://id.wikipedia.org/wiki/Grafika_komputer_3D

    Diakses pada tanggal 4 Juni 2014

    _____2012. Translasi, dan Rotasi Grafik Komputer.

    (Online). (http://kripiksukun.blogspot.com/2012 Page 337/04/translasiskala-dan-rotasi-

    grafik.html).Diakses pada tanggal 5 Juni 2014

  • 5/24/2018 Laporan Praktikum Bima

    28/53

    DAFTAR ISI

    Daftar Isi .................................................................................................................i

    Kata Pengantar ...................................................................................................... ii

    BAB 1

    Pendahuluan

    1.1 Pengertian Komputer Grafik ....................................................................... 1

    1.2 Peranan dan Penggunaan Komputer Grafik ................................................ 1

    1.3 Pemilihan Aplikasi OPENGL ..................................................................... 1

    1.4 Tujuan ......................................................................................................... 2

    BAB 2

    Landasan Teori

    2.1 Sejarah OpenGL.......................................................................................... 3

    2.2 Pengenalan OpenGL ................................................................................... 4

    2.3 Cara Kerja OpenGL .................................................................................... 5

    BAB 3

    Hasil Percobaan/Praktikum

    3.1 Gambar 2D ................................................................................................ 12

    3.2 Gambar 3D ................................................................................................ 17

    BAB 4

    Analisa Hasil Percobaan

    4.1 Hasil percobaan gambar 2D ...................................................................... 21

    4.2 Hasil percobaan gambar 3D ...................................................................... 22

    PENUTUP............................................................................................................ iii

    DAFTAR PUSTAKA .......................................................................................... iv

  • 5/24/2018 Laporan Praktikum Bima

    29/53

    KATA PENGANTAR

    Segala puji hanya milik Allah SWT. Shalawat dan salam selalu tercurahkan kepada

    Rasulullah SAW. Berkat limpahan dan rahmat-Nya penyusun mampu menyelesaikan

    tugas makalah ini guna memenuhi tugas mata kuliah Komputer Grafik.

    Dalam penyusunan tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun

    penulis menyadari bahwa kelancaran dalam penyusunan materi ini tidak lain berkat bantuan,

    dorongan, dan bimbingan orang tua, sehingga kendala-kendala yang penulis hadapi teratasi.

    Makalah ini disusun agar pembaca dapat memperluas ilmu tentang ilmu komputer grafik dan

    contoh praktik pengerjaannya , makalah yang Saya sajikan berdasarkan pengamatan dariberbagai sumber informasi, referensi, dan berita. Makalah ini disusun oleh penyusun dengan

    berbagai rintangan. Baik itu yang datang dari diri penyusun maupun yang datang dari luar.

    Namun dengan penuh kesabaran dan terutama pertolongan dari Allah akhirnya makalah ini

    dapat terselesaikan.

    Semoga makalah ini dapat memberikan wawasan yang lebih luas dan menjadi sumbangan

    pemikiran kepada pembaca khususnya para mahasiswa Universitas Panca Budi. Saya sadar

    bahwa makalah ini masih banyak kekurangan dan jauh dari sempurna. Untuk itu, kepada

    dosen pembimbing saya meminta masukannya demi perbaikan pembuatan makalah

    saya di masa yang akan datang dan mengharapkan kritik dan saran dari para pembaca.

    Medan, 11 Juni 2014

    Bima Nugraha Lubis

  • 5/24/2018 Laporan Praktikum Bima

    30/53

    BAB I

    PENDAHULUAN

    1.1PENGERTIAN KOMPUTER GRAFIKMenurut Arntson (1988), komputer grafik adalah adalah komputer yang

    mampu menggambar atau menampilkan sebuah informasi yang berupa gambar

    atau ilustrasi. Grafika komputer merupakan suatu bidang yang mempelajari

    bagaimana menghasilkan suatu gambar menggunakan komputer, sehingga

    didalam grafika komputer akan dibahas tentang teknik-teknik menggambar.

    Komputer grafis ini terdiri atas satu set piranti untuk menciptakan gambar yang

    dapat berinteraksi secara alamiah dengan penggunanya. Peralatan-peralatan itu

    terdiri atas perangkat keras (hardware) dan perangkat lunak (software) yang

    secara bersama-sama memungkinkan pemogram untuk menampilkan program

    dengan kemampuan grafik yang canggih. Data ditampilkan secara visual melalui

    bentuk, warna dan tekstur secara lebih baik dibandingkan sekedar tabel-tabel

    angka, sebab syaraf sistem mata lebih mengenali dan memahami penyampaian

    pesan secara visual.

    1.2 PERANAN DAN PENGGUNAAN KOMPUTER GRAFIK

    Grafika komputer telah menunjukkan kemajuan yang pesat dalam

    pengembangan berbagai aplikasi untuk menghasilkan gambar. Walaupun pada

    awalnya aplikasi dalam sains dan engineering memerlukan peralatan yang mahal,

    perkembangan teknologi komputer memberikan kemudahan penggunaan komputer

    sebagai alat bantu aplikasi grafik komputer interaktif. Pada saat ini grafika

    komputer digunakan secara rutin dibidang ilmu pengetahuan, teknik, kedokteran,

    bisnis, industri, pemerintahaseni, hiburan, pendidikan, periklanan, dan lain

    sebagainya.

    1.3PEMILIHAN APLIKASI OpenGLDalam pembahasan dan praktik kerja di dalam makalah ini Saya akan

    memfokuskan pada penggunaan OpenGl sebagai pilihan Saya.

  • 5/24/2018 Laporan Praktikum Bima

    31/53

    1.4TUJUAN1. Sebagai bahan untuk Ujian Akhir Semester mata kuliah komputer grafik

    semester 4.

    2. mahasiswa diharapkan dapat mempraktikan pembuatan gambar 2D dan 3D.

  • 5/24/2018 Laporan Praktikum Bima

    32/53

    BAB II

    LANDASAN TEORI

    2.1 SEJARAH OPENGL

    Tahun 1980-an, mengembangkan perangkat lunak yang dapat berfungsi dengan

    berbagai hardware grafik adalah tantangan nyata. Pengembang perangkat lunak antarmuka

    dan kebiasaan menulis driver untuk setiap perangkat keras. Ini mahal dan mengakibatkan

    banyak duplikasi usaha.

    Pada awal 1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafik 3D untuk

    workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar industri

    defacto, membayangi terbuka berbasis standar PHIGS. Ini karena GL IRIS dianggap lebih

    mudah.

    digunakan, dan karena itu mendukung modus langsung rendering. By contrast,

    Sebaliknya, PHIGS dianggap sulit untuk digunakan dan ketinggalan zaman dalam hal

    fungsionalitas.

    SGIs pesaing (termasuk Sun Microsystems, Hewlett-Packard dan IBM) juga dapat

    membawa ke pasar 3D hardware, didukung oleh ekstensi yang dibuat pada PHIGS standar.

    Hal ini pada gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena lebih

    banyak hardware grafik 3D pemasok memasuki pasar. Dalam upaya untuk mempengaruhi

    pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka. SGI

    menganggap bahwa IrisGL API itu sendiri tidak cocok untuk membuka karena masalah

    lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak relevan dengan grafik

    3D. Sebagai contoh, termasuk windowing, keyboard dan mouse API, sebagian karena

    dikembangkan sebelum Sistem X Window dan Suns NEWS sistem dikembangkan. Selain

    itu, SGI memiliki sejumlah besar pelanggan perangkat lunak; dengan mengubah ke OpenGL

    API mereka berencana untuk mempertahankan pelanggan mereka terkunci ke SGI (dan IBM)

    hardware untuk beberapa tahun sementara pasar dukungan untuk OpenGL matang.

    Sementara itu, SGI akan terus berusaha untuk mempertahankan pelanggan mereka terikat

    pada hardware SGI dengan mengembangkan maju dan kepemilikan Iris Inventor dan Iris

    Performer pemrograman API. Akibatnya, SGI merilis standar OpenGL.

  • 5/24/2018 Laporan Praktikum Bima

    33/53

    2.2 PENGENALAN OPENGL

    OpenGL adalah sebuah program aplikasi interface yang digunakan untuk

    mendefinisikan komputer grafis 2D dan 3D. Program lintas-platform API ini umumnya

    dianggap ketetapan standar dalam industri komputer dalam interaksi dengan komputer grafis

    2D dan juga telah menjadi alat yang biasa untuk digunakan dengan grafis 3D. Singkatnya,

    Open Graphics Library, OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis

    ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru

    dari sistem. Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus

    atau executable kesistem operasi. Dengan demikian, program ini bekerja dengan perangkat

    keras grafis yang ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap

    perintah dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus

    tertentu yang terkait dengan grafis.

    OpenGL adalah suatu spesifikasi grafik yang low-level yang menyediakan fungsi untuk

    pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk

    keperluan-keperluan pemrograman grafik. OpenGL bersifat Open-Source, multi-platform dan

    multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun

    objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi

    (application programming interface (API) yang tidak tergantung pada piranti dan platform

    yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan

    sistem operasi lainnya.

    OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++, namun

    dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman yang

    lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-

    package

    secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu,

    package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan

    bahasa pemrograman yang akan digunakan.OpenGl melayani dua tujuan :

    Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3Daccelerators, memamerkan oleh programmer dengan satu, seragam API.

  • 5/24/2018 Laporan Praktikum Bima

    34/53

    Untuk menyembunyikan kemampuan yang berbeda dari hardware platform, olehsemua yang memerlukan mendukung implementasi penuh fitur opengl set

    (menggunakan software emulation jika diperlukan).

    2.3 CARA KERJA OPENGL

    OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis.Untuk

    mendeskripsikan scene dan bagaimana penampilannya,sebenarnya programer lebih tau untuk

    menentukan hal-hal yang dibutuhkan untuk menghasilkan efek yang di inginkan.Langkah

    tersebut termasuk memanggil banyak perintah openGL,perintah tersebut digunakan untuk

    menggambarkan grafik primitif seperti titik,garis dan poligon dalam tiga dimensi.Sebagai

    tambahan,openGL mendukung lighting,shading,texture mapping,blending,transparancy,dan

    banyak kemampuan efek khusus lainnya.OpenGL mempunyai bnayak fungsi dan penggunaan

    perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus

    di letakkan pada direktory system dari windows (OS),yaitu :

    OpenGL32.dll Glu32.dll Glut32.dll

    Inisialisasi awal

    Inti dari tahapan ini adalah mengatur view port dan persepektif untuk penampilan obyek ke

    dalam layar monitor,viewport adalah besarnya layar monitor(image) yang dipakai untuk

    menampilkan obyek,sedangkan persepektif yang dimaksud adalah pengaturan sumbu z dalam

    penampilan obyek 3 dimensi,sehingga user dapat melihat obyek seolah-olah dalam bidang 3

    dimensi (X-Y-Z),selain itu penggambaran obyek yang dilakukan oleh programer juga dapat

    menggunaan koordinat 3 dimensi.

    Selain ke dua tujuan di atas pada tahap ini juga dilakukan koneksi awal dengan library

    openGL, koneksi ini dilakukan supaya fungsi-fungsi yang di sediakan openGL dapat

    digunakan. Fungsi/prosedur yang digunakan :

    LoadGlut(glut32.dll) -pemanggilan library openGL

    InitGL inisialisasi openGL awal yang harus dilakukan glViewport untuk pengaturan viewport glMatrixMode pengaturan viewport

  • 5/24/2018 Laporan Praktikum Bima

    35/53

    gluPerspective pengaturan persepektif

    Contoh script untuk inisialisasi openGL :

    Try

    LoadGlut(glut32.dll);

    InitGL;

    Exept one :=

    exeption

    do

    Begin

    messageDlg

    { e.message, mtError, [mbOk],};

    Halt {1}; End;

    End;

    Script di atas merupakan script yang paling sederhana, dalam artian minimal diperlukan

    untuk

    menginisialisasi penggunaan openGL.Fungsi-fungsi lain seperti yang disebut diatas seperti

    glViewport, glMatrixMode, dapat di tambah kan pada script sesuai dengan kebutuhan.

    Pembuatan gambar

    Didalam openGL pembuatan obyek dilakukan dengan titik-titik 3 dimensi,dengan mode

    GL_QUARDS, maka otomatis setiap 4 titik digambar menjadi sebuah bidang segiempat,sed

    angkan mode GL_LINES, pada setiap 2 titik digambar manjadi sebuah garis.Di dalam tahap

    ini setiap garis atau bidang juga dapat di atur warnanya.

    Fungsi atau prosedur yang digunakan :

    mode GL_QUARDS menggambarkan segi empat mode GL_LINES menggambark garis glVertex3f-penentuan titik 3 dimensi

    glColor3f penentuan warnaOpenGL memiliki lebih dari 200 fungsi. Fungsi tersebut

    bisa dikelompokkan menjadi :

  • 5/24/2018 Laporan Praktikum Bima

    36/53

    Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di layar. Fungsiini terdiri dari 2 jenis, yaitu primitif geometric seperti polygon (segi banyak) yang

    bisa dibuat menjadi dua, tiga, atau empat dimensi, dan primitif gambar seperti

    bitmaps.Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan warna, jenis

    garis, properti material, sumber cahaya, dan tekstur.

    Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan sebuahvirtual kamera yang bisa diposisikan dan diorientasikan relatif ke obyek yang

    ditentukan dengan fungsi primitif. Lensa kamera juga bisa dikendalikan sehingga bisa

    dihasilkan sudut

    yang lebar dan pandangan telefoto (jarak jauh).

    Fungsi windowing, fungsi ini mengendalikan windows pada layar dan penggunaandari mouse dan keyboard.

    Fungsi kontrol, menghidupkan macam-macam fitur OpenGL.

    Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl dan glu

    (atau GL dan GLU). Library yang pertama, adalah fungsi utama dari OpenGL, berisi

    semua fungsi OpenGL yang dibutuhkan sedangkan yang kedua, openGL Utility

    Llibrary (GLU) memuat fungsi yang ditulis menggunakan fungsi dari library utama

    dan sangat

    membantu bagi pengguna. Fungsi utama mempunyai nama yang diawali dengan gl seperti

    glVertex3f(), sedangkan fungsi didalam GLU mempunyai nama yang diawali dengan glu

    seperti gluOrtho2D()

    PRIMITIVE GRAFICS

    Primitif objek merupakan salah satu subbab dari grafika komputer yang terdiri dari titik, garis

    dan bangun dua dimensi. Dalam grafika komputer penghasilan citra menggunakan primitive

    grafik dasar, primitif ini memudahkan untur merender atau menggambar pada layar monitor

    sebagaimana penggunaan persamaan geometri sederhana. Contoh primitive grafika dasar

    antara lain : titik, garis, kurva, fill areadan text. Objek kompleks dapat dibuat dengan

    kombinasi dari primitive ini. Misalkan, Poligaris atau yang dapat didefinisikan sebagai urutan

    garis lurus yang saling terhubung. Secara umum algoritma grafis memiliki persamaan yaitu

    bagaimana menampilkan hasil.

  • 5/24/2018 Laporan Praktikum Bima

    37/53

    Primitive grafis yang umum dijelaskan pada tabel berikut :

    Fungsi dasar menggambar titik. Berikut adalah beberapa fungsi didalam menggambar suatu

    titik, antara lain :

    - glVertex2i(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa integer.

    Contoh glVertex2i(10,10)

    - glVertex2f(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa float. Contoh glVertex2f(10.0,10.0)

    - glVertex2d(x,y)Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa double. Contoh glVertex2d(10.0,10.0);

    Cara pendefinisian primitive objek yang digunakan dalam pembuatan suatu objek :

    #define GL_POINTS

    Primitif objek ini dipergunakan untuk menciptakan suatu titik.

    # define GL_LINES

    Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis

    # define GL_LINE_LOOP

    # define GL_LINE_STRIP

    # define GL_TRIANGLES

    Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu

    segitiga dengan blok di tengahnya.

    # define GL_TRIANGLES_STRIPPada triangles strip jumlah vertex yang dipergunakan

    OBJEK GRAFIS PRIMITIFE GRAFIS

    Pixel (dot) Posisi (x,y) warna

    Garis (line) Posisi (x1,x2,y1,y2),Warna,Thickness,Pattern

    Lingkaran (circle) Pusat (x,y),Radius,Warna,Thickness,Pattern

    Ellipse Pusat (x,y),Radius : Horisontal/Vertical,Warna,Thickness,Pattern

    Kurva Teratur/Tidak teratur (Bezier)

    Character Type,Slanted,Thickness,Colour DLL

  • 5/24/2018 Laporan Praktikum Bima

    38/53

    adalah 4 buah vertex

    # define GL_TRIANGLE_FAN

    Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga

    dimana hanya menggunakan 1 titik pusat saja.

    # define GL_QUADS

    Quad atau segempat adalah empat buah titik yang terhubung menjadi quat segi

    empat dengan blok di tengahnya.

    # define GL_QUADS_STRIP

    Pada quads strip 4 buah vertex merupakan 1 kelompok.

    Langkah rendering pada quads strip :

    a.Nomor yang berhadap (membentuk 2 garis yang sejajar

    b.Nomor ganjil dengan nomor ganjil dipertemukan

    c.Nomor genap dengan nomor genap dipertemukan

    d.Garis yang tersisa akan dipertemukan

    # define GL_POLYGON

    Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi

    menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang

    dimiliki oleh GL_POLYGON sama dengan GL_TRIANGLE_FAN.

  • 5/24/2018 Laporan Praktikum Bima

    39/53

    Catatan :

    a) glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis,b) glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek,c) gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan

    mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.

    Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan

    menggunakan fungsi glColor3f(red,green,blue). Di mana red, green, blue berada pada 0

    sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala. Berikut

    adalah beberapa fungsi color :

    glColor3f(0,0,0);//black

    glColor3f(0,0,1);//blue

    glColor3f(0,1,0);//green

    glColor3f(0,1,1)//cyan

    glColor3f(1,0,0)//red

    glColor3f(1,0,1)//magenta

    glColor3f(1,1,0);//yellow

    glColor3f(1,1,1);//white

  • 5/24/2018 Laporan Praktikum Bima

    40/53

    GAMBAR 2D

    Primitive object 2D adalah suatu model pembuatan gambar yang mengacu kepada prespektif

    2 titik. Umumnya object 2D ini merupakan suatu object yang terdiri dari sekumpulan titik-

    titik yang menyambung (dihubungkan) menjadi satu dengan perantara garis lurus berupa

    polyline, polygon maupun kurva.

    GAMBAR3D

    Yang membedakan 2 dimensi dan 3 dimensi adalah kedalaman. Kedalaman didefinisikan

    sebagai jarak antara viewer terhadap benda yang dia lihat. Ini berarti berbeda dengan 2

    dimensi yang hanya menggunakan 2 ukuran, yaitu panjang dan lebar, maka 3 dimensi

    menggunakan 3 ukuran, yaitu panjang, lebar dan kedalaman. Secara geometri ketiga ukuran

    tersebut disimbolkan dengan sumbu x, y, dan z.

  • 5/24/2018 Laporan Praktikum Bima

    41/53

    BAB III

    PRAKTIKUM

    3.1 PEMBUATAN GAMBAR 2D

    a. Jajar genjangglEnd();#include

    void userdraw()

    {

    static int tick=0;

    void drawDot(int x,int y);

    glBegin(GL_LINES);

    glVertex2i(50,50);

    glVertex2i(100,100);

    glVertex2i(50,50);

    glVertex2i(200,50);

    glVertex2i(200,50);

    glVertex2i(250,100);glVertex2i(250,100);

    glVertex2i(100,100);

    }

    void display(void)

    {

    //clear screen

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

    glutSwapBuffers();

    }

    int main(int argc, char**argv)

    {

    glutInit(&argc,argv);//Inisialisasi Toolkit

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    glutInitWindowPosition(200,200);

  • 5/24/2018 Laporan Praktikum Bima

    42/53

    glutInitWindowSize(640,480);

    glutCreateWindow("Bima");

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

    gluOrtho2D(0.,640.,-240.,240.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    }

    Hasilnya

    b. BUNGA#include

    #include

    typedef struct

    {

    int x,y;

    }point2D_t;

    typedef struct

    {

    float r,g,b;

    }color_t;

    void setColor (color_t col)

  • 5/24/2018 Laporan Praktikum Bima

    43/53

    {

    glColor3f(col.r, col.g, col.b);

    }

    void drawPolygon(point2D_t pnt[],int n)

    {

    int i;

    glBegin(GL_POLYGON);

    for (i=0; i

  • 5/24/2018 Laporan Praktikum Bima

    44/53

    drawPolygon(batang,4);

    point2D_t

    pot[4]={{-60,-190},{60,-190},{30,-240},{-30,-240}};

    color_t hitam ={0,0,1};

    fillPolygon(pot,4, hitam);

    drawPolygon(pot,4);

    point2D_t

    pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-

    170},{-80,-170}};

    color_t hitam3 ={0,0,1};

    fillPolygon(pot2,4, hitam3);

    drawPolygon(pot2,4);

    point2D_t

    pot3[6]={{80,-160},{50,-160},{50,-190},{60,-190},{60,-

    170},{80,-170}};

    color_t hitam2 ={0,0,1};

    fillPolygon(pot3,4, hitam2);

    drawPolygon(pot3,4);

    static int tick=0;

    point2D_t shape[360];

    double srad,r;

    for(int s=0; s

  • 5/24/2018 Laporan Praktikum Bima

    45/53

    drawPolygon(shape, 360);

    }

    void display(void)

    {

    //clear screen

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

    glutSwapBuffers();

    }

    int main(int argc, char **argv)

    {

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    //posisi layar

    glutInitWindowPosition(150,150);

    //ukuran layar

    glutInitWindowSize(640,480);

    //title windows

    glutCreateWindow("Bunga Raflesia");

    //warna back layar

    glClearColor(1.0,1.0,1.0,0.0);

    gluOrtho2D(-300.,400.,-300.,300.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();return 0;

    }

  • 5/24/2018 Laporan Praktikum Bima

    46/53

    3.2PEMBUATRAN GAMBAR 3D#include

    #include

    #include

    #include

    #include

    #include

    void cube()

    {

    //menggambar kubus dan transformasi tarnslasi ke titik 0.5 0.5

    0.5 dan skala 1 1 1

    glPushMatrix();

    glTranslated(0.5,0.5,0.5);//cube

    glScaled(1.0,1.0,1.0);

    glutSolidCube(1.0);

    glPopMatrix();

    }

    void setMaterial()

    {

    //set properties of surfaces material

    GLfloat mat_ambient[] = {0.7f,0.7f,0.7f,1.0f}; // ada 4 jenismaterial yang dipakai, dengan kombinasi warna tertentu

    GLfloat mat_diffuse[] = {0.6f,0.6f,0.6f,1.0f};

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

    GLfloat mat_shininess[] = {50.0f};

    glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);

    glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);

    glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);

    glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);

  • 5/24/2018 Laporan Praktikum Bima

    47/53

    }

    void setLighting()

    {

    //set light sources

    GLfloat lightIntensity[] = {0.7f,0.7f,0.7f,1.0f};//mensetting

    pencahayaan

    GLfloat light_position[] = {2.0f,6.0f,3.0f,0.0f};

    glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);

    glLightfv(GL_LIGHT0,GL_POSITION,light_position);

    }

    void setViewport()

    {

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    double winHt = 1.0;//half height of the window

    glOrtho(-winHt*64/48,winHt*64/48,-winHt,winHt,0.1,100.0);

    }

    void setCamera()

    {

    //set the cameraglMatrixMode(GL_MODELVIEW);

    glLoadIdentity();

    gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);

    }

    void displayObject()

    {

  • 5/24/2018 Laporan Praktikum Bima

    48/53

    setMaterial();

    setLighting();

    setViewport();

    setCamera();

    //startDrawing

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    cube();//memanggil fungsi menggambar kubus

    glFlush();//mengirim smua objek untuk dirender

    }

    void main(int argc, char **argv)

    {

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);

    glutInitWindowSize(640,480);

    glutInitWindowPosition(100,100);

    glutCreateWindow("simple 3d scene");

    glutDisplayFunc(displayObject);//fungsi dari display object

    yang menggabungkan kubus lighting material dan kamera

    glEnable(GL_LIGHTING);

    glEnable(GL_LIGHT0);

    glShadeModel(GL_SMOOTH);

    glEnable(GL_DEPTH_TEST);

    glEnable(GL_NORMALIZE);

    glClearColor(1.0f,1.0f,1.0f,0.0f);glViewport(0,0,640,480);

    glutMainLoop();

    }

  • 5/24/2018 Laporan Praktikum Bima

    49/53

  • 5/24/2018 Laporan Praktikum Bima

    50/53

    BAB IVANALISA

    HASIL PRAKTIKUM

    4.1Hasil Percobaan 2D

    Warna background dan warna bidang yang dibuat sangat tidak combain sehingga

    menimbulkan kesulitan dalam melihatnya jika sesaat. Saya akui seharusnya gambar ini dapat

    lebih baik dari ini.

    Gambar 2D diatas meskipun tampak sederhana namun dalam pengerjaannya Saya

    mendapatkan kesulitan yang cukup lumayan,Karena gambar tersebut meniliki berbagai

    bentuk atau bisa kita sebut sebagai kombinasi dari berbagai bentuk dasar dari gmbar 2D.

  • 5/24/2018 Laporan Praktikum Bima

    51/53

    4.2Hasil Percobaan Gambar 3D

    Hasil yang sangat memuaskan bagi Saya karena selain seluruh bidangnya tampak

    simetris,dalam hal warna juga sangat baik.Seperti dapat kita lihat warna tersebut juga

    menonjolkan sisi berbayang sehingga semakin menguatkan dari gambar 3D tersebut.

  • 5/24/2018 Laporan Praktikum Bima

    52/53

    PENUTUP

    Dari pemaparan di atas dapat kita simpulkan bahwa penggunaan program OPENGL sangat

    membantu dalam studi Komputer Grafik bagi para pemula.Meskipun hasil dari praktikum

    yang telah saya lakukan di atas masih banyak mengalami kekurangan namun bagi saya yang

    merupakan seorang mahasiswa yang baru mengenal computer grafik, hal ini sangat

    membantu Saya dalam pendalaman ilmu saya akan komputer grafik.

    Pada bagian penutup ini Saya juga dituntut untuk memberikan saran tentang program

    OPENGL tersebut.Tidak akan banyak saran Saya untuk program ini karena mungkin saja

    bukan program ini yang memiliki kekurangan,akan tetapi akibat Saya yang merupakan

    seorang pemula sehingga sangat kaku dan mengalami kesulitan dalam pengaplikasiannya

    didalam praktik langsungnya.Saya harap di kemudian hari program OPEN GT ini dapat

    menjadi sebuah program dalam komputer grafik dapat mempermudah dan mengefesiensikan

    kinerjanya dengan mengupgrade atau dengan hal lainnya yang dapat mempermudah kami

    sebagai pemula untuk dapat memahaminya dengan cepat.

    Demikian makalah praktikum sebagai tugas Ujian Akhir Semester program Studi Komputer

    Grafik semester IV ini Saya perbuat. Saya sadar betul akan banyak kekurangan dalam

    penyajian ataupun dalam hal hasil akhir praktikum Saya. Namun Saya cukup berbangga hati

    dapat menyelesaikan makalah ini dengan hasil jerih payah usaha Saya sendiri yang mencari

    berbagai sumber pustaka yang berkaitan dengan makalah ini.

    Ribuan terimakasih Saya sampaikan kepada Dosen Komputer Grafik Ibu Indri

    Sulistianingsih,S.Kom dan seluruh penulis buku ataupun blog yang telah Saya manfaatkan

    tulisannya sebagai referensi dari makalah ini.

    Semoga makalah ini dapat bermanfaat dan mendapatkan respon yang positif dari dosen yang

    bersangkutan.

    Wassalamualaikum WRB.

  • 5/24/2018 Laporan Praktikum Bima

    53/53

    DAFTAR PUSTAKA

    ___. 2011. Komputer Grafik.

    http://dotsal.wordpress.com/2011/09/25/komputer-grafik/

    diakses tanggal 3 Juni 2014

    _____, 2008. Primitif Grafika. Online.

    http://materiquliah.wordpress.com/2008/11/15/primitif-grafika/

    . Diakses pada tanggal 3 Juni 2014

    _____2013. Grafika Komputer3D. (Online).

    (http://id.wikipedia.org/wiki/Grafika_komputer_3D

    Diakses pada tanggal 4 Juni 2014

    _____2012. Translasi, dan Rotasi Grafik Komputer.

    (Online). (http://kripiksukun.blogspot.com/2012 Page 337/04/translasiskala-dan-rotasi-

    grafik.html).Diakses pada tanggal 5 Juni 2014