Anda di halaman 1dari 28

1

LAPORAN PRAKTIKUM
KOMPUTER GRAFIK





Nama Praktikan
Nomor
Mahasiswa
Tanggal
Kumpul
Tanda tangan
Pratikan
Miranda Dwi Yanti 1214370331 12 Juni 2014


Nama Penilai
Tanggal
Koreksi
Nilai
Tanda tangan
Dosen
Indri SulistiaNingsih,
S.Kom



Universitas Pembangunan Panca Budi
Fakultas Teknik
Jurusan Teknik Informatika
Medan
2014

Kelas

TI-4 D SORE

2
KATA PENGANTAR


Puji syukur saya ucapkan kepada Allah SWT yang telah memberikan berkat dan
rahmat-Nya kepada saya sehingga saya dapat menyelesaikan LAPORAN PRAKTIKUM.
Adapun tujuan penulisan LAPORAN PRAKTIKUM ini adalah untuk memenuhi persyaratan
Ujian Akhir Semester .

Dalam penyelesaian LAPORAN PRAKTIKUM ini saya banyak menemui hambatan
dan rintangan, dan kesalahan yang terdapat di LAPORAN PRAKTIKUM saya ini. Tetapi
saya dapat mengatasi dan melewati kesulitan itu dengan mudah karena adanya bantuan dari
berbagai pihak yang telah membantu saya sehingga LAPORAN PRAKTIKUM ini dapat
terselesaikan dengan baik. Dengan semakin cepatnya perkembangan teknologi, maka setiap
individu dapat mengakses internet dengan mudah dan cepat untuk mengetahui informasi
tentang LAPORAN PRAKTIKUM Objek 2D dan 3D .

Adapun SOP dalam pembuatan LAPORAN PRAKTIKUM saya ini diperlukan
langkah-langkah sebagai berikut :
1) Pengumpulan data
2) Melakukan observasi atau pemetaan terhadap proses kerja yang sudah berjalan atau
akan berjalan
3) Melakukan analisa terhadap design SOP yang sudah dibuat untuk diimplementasikan
4) Melakukan implementasi (uji coba) terhadap objek 2D dan 3D yang telah dibuat.

Saya mengucapkan banyak terimakasih atas bimbingan dan arahan yang telah
diberikan kepada saya, semoga apa yang saya dapatkan selama ini dapat menambah wawasan
serta pengetahuan untuk bisa saya terapkan kemasa yang akan datang dan ini merupakan
pengalaman yang berharga bagi saya.

Saya menyadari bahwa LAPORAN PRAKTIKUM ini masih terdapat banyak
kekurangan dan jauh dari kesempurnaan. Oleh karena itu saya mengharapkan kritik dan saran
yang bersifat membangun untuk memperbaiki LAPORAN PRAKTIKUM ini. Besar harapan

3
saya LAPORAN PRAKTIKUM ini berguna dan bermanfaat bagi seluruh pembaca dan bagi
diri saya khususnya. Akhir kata saya mengucapkan terimakasih.

Medan, 12 JUNI 2014
Penulis,


Miranda Dwi Yanti



























4
DAFTAR ISI

KATA PENGANTAR ..................................................................................... 2
DAFTAR ISI ................................................................................................... 3

BAB I PENDAHULUAN
A. LATAR BELAKANG ................................................................... 5
B. TUJUAN PRAKTIKAN .............................................................. 5

BAB II PENJELASAN LANDASAN TEORI
A. SEJARAH KOMPUTER GRAFIK ............................................. 6
B. PENGERTIAN KOMPUTER GRAFIK ...................................... 7
C. PENGERTIAN DARI OBJEK 2D DAN 3D ................................ 8

BAB III HASIL PERCOBAAN / PRAKTIKUM
1. CONTOH LATIHAN FUNGSI DARI PRIMITIVE DRAWING 12
2. CONTOH LATIHAN FUNGSI DARI 2D ................................ 19
3. CONTOH LATIHAN FUNGSI DARI 3D ................................. 21

BAB IV ANALISA HASIL PERCOBAAN .............................. . 25

BAB V PENUTUP
1. KESIMPULAN .......................................................................... 27
2. SARAN ......................................................................................... 27

DAFTAR PUSTAKA ..................................................................................... 28



5
BAB I
PENDAHULUAN

A. Latar Belakang
Perkembangan grafika komputer menuntut para pengembang sistem aplikasi grafika
komputer untuk dapat mengembangkan suatu informasi yang dilengkapi dengan visualisasi
dan animasi, agar dapat lebih mudah dipahami oleh pihak yang menggunakan sistem tersebut.
Grafika komputer telah menunjukkan kemajuan yang pesat dalam pengembangan berbagai
aplikasi untuk menghasilkan gambar. Grafika komputer digunakan untuk menunjang
berbagai bidang dengan teknologi grafika berbasis komputer. Penggunaan grafika komputer
telah lama digunakan dalam beberapa macam aplikasi, diantaranya pendidikan, kedokteran,
fisika, matematika, multimedia, dan lain-lain. Pada saat ini grafika komputer sudah
digunakan pada bidang sains, engineering, kedokteran, bisnis, industri, pemerintahan, seni,
hiburan, iklan, pendidikan, dan lain-lain. Oleh karena itu, sudah semakin banyak pula bahasa
pemrograman yang dilengkapi dengan tools/library pembuatan grafik Salah satu tools/library
pembuatan aplikasi grafik adalah OpenGL (Open Graphics Library). OpenGL(Open Graphics
Library) adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk
pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk
mendefinisikan suatu objek, baik objek 2 dimensi maupun objek 3 dimensi.

B. Tujuan Praktikan
1. Menyelesaikan Ujian Akhir Semester mata kuliah Komputer Grafik
2. Mahasiswa mampu membuat dan menggambarkan objek 2D dan 3D dengan
menggunakan perintah OpenGL , dll .
3. Mahasiswa mampu mengimplementasikan objek dari 2D dan 3D tersebut








6
BAB II
LANDASAN TEORI

A. SEJARAH KOMPUTER GRAFIK
Grafik Komputer adalah suatu proses pembuatan, penyimpanan dan manipulasi model
dan citra. Model berasal dari beberapa bidang seperti fisik, matematik, artistik dan bahkan
struktur abstrak. Istilah Grafik Komputer ditemukan tahun 1960 oleh William Fetter :
pembentukan disain model cockpit (Boeing) dengan menggunakan pen plotter dan referensi
model tubuh manusia 3 Dimensi. Pengguna mengendalikan isi, struktur dan kemunculan
objek serta menampilkan citra melalui suatu komponen dasar visual feedback.
Berikut adalah sejarah perkembangan grafik komputer :
Awal tahun 60-an dimulainya model animasi dengan menampilkan simulasi efek
fisik.
1961: Edward Zajac menyajikan suatu model simulasi satelit dengan menggunakan
teknologi Grafik Komputer.
1963 : Ivan Sutherland (MIT), menemukan Sketchpad (manipulasi langsung, CAD) ,
Alat untuk menampilkan Calligraphic (vector), Mouse oleh Douglas Englebert
1968 : ditemukan Evans & Sutherland.
1969 : Journal SIGGRAPH pertama kali diterbitkan
1970: Pierre Beezier mengembangkan kurva Beezier.
1971: Ditemukan Gouraud Shading,
1972: Ditayangkannya film Westworld, sebagai film pertama yang menggunakan
animasi komputer.
1974: Ed Catmull mengembangkan z-buffer (Utah). Komputer animasi pendek,
Hunger:Keyframe animation and morphing
1976: Jim Blinn mengembangkan texture dan bump mapping.
1977: Film terkenal Star Wars menggunakan grafik komputer
1979: Turner Whitted mengembangkan algoritma ray tracing,untuk pesawat Death
Star. Pertengahan tahun 70-an hingga 80-an: Pengembangan Quest for realism
radiosity sebagai main-stream aplikasi realtime.
1982: Pengembangan teknologi grafik komputer untuk menampilkan partikel.

7
1984: Grafik Komputer digunakan untuk menggantikan model fisik pada film The
Last Sta Fighter.
1986: Pertama kalinya Film hasil produksi grafik komputer dijadikan sebagai
nominasi dalam Academy Award: Luxo Jr. (Pixar).
1989: Film Tin Toy (Pixar) memenangkan Academy Award.
1995: Diproduksi fillm Toy Story (Pixar dan Disney) sebagai film 3D animasi
panjang pertama
Akhir tahun 90-an, ditemukannya teknologi visualisasi interaktif untuk ilmu
pengetahuan dan kedokteran, artistic rendering, image based rendering, path tracing,
photon maps, dll.
Tahun 2000 ditemukannya teknologi perangkat keras untuk real-time photorealistic
rendering. Dan sampai sekarang, seperti yang anda ketahui betapa dahsyatnya
perkembangan yang muncul di dunia grafik komputer.

Konsep Dasar Dari Grafik Komputer
Kegiatan yang Terkait dengan Grafik Komputer :
1. Pemodelan geometris: menciptakan model matematika dari objek-objek 2D dan
3D.
2. Rendering: memproduksi citra yang lebih solid dari model yang telah dibentuk.
3. Animasi: Menetapkan/menampilkan kembali tingkah laku/behavior objek
bergantung waktu


B. PENGERTIAN KOMPUTER GRAFIK
Grafika komputer ( computer graphics ) adalah bagian dari ilmu komputer yang
berkaitan dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana
dari grafika komputer adalah grafika komputer 2D yang kemudian berkembang menjadi
grafika komputer 3D pemrosesan citra (image processing), dan pengenalan pola (pattern
recognition). Grafika komputer sering dikenal juga dengan istilah visualisasi data.



8
Grafika komputer dapat digunakan di berbagai bidang kehidupan, mulai dari bidang
seni, sains, bisnis, pendidikan dan juga hiburan. Berikut adalah bidang aplikasi spesifik dari
grafika komputer:
Antarmuka pengguna (Graphical User Interface - GUI)
Peta (Cartography)
Kesehatan
Perancangan objek (Computer Aided Design - CAD)
Sistem multimedia
Presentasi grafik
Presentasi saintifik
Pemrosesan citra
Simulasi

C. PENGERTIAN OBJEK DARI 2D DAN 3D
2 DIMENSI :
Merupakan dimensi panjang dan lebar dalam satu bidang datar, jadi hanya ada
panjang dan lebar saja tanpa adanya dimensi tebal. Bidang dua dimensi dapat digambarkan
dengan sumbu X dan Y. Agar dapat tampil dengan sempurna, gambar yang akan ditampilkan
dengan teknik ini harus memiliki nilai koordinat x dan y minimum 0 dan maksimum sebesar
resolusi yang digunakan.
Macam-Macam objek 2D :
Line, Circle, arc, polygon, text,section, rectangle, ellips, star, helix .









9
3 DIMENSI :
Merupakan adanya dimensi tebal pada gambar sehingga menjadikan gambar jauh
lebih nyata dari pada gambar dua dimensi. Biasanya bidang tiga dimensi dinyatakan dengan
sumbu X Y dan Z. Representasi dari data geometrik 3 dimensi sebagai hasil dari pemrosesan
dan pemberian efek cahaya terhadap grafika komputer 2D. Tiga Dimensi, biasanya
digunakan dalam penanganan grafis. 3D secara umum merujuk pada kemampuan dari sebuah
video card (link). Saat ini video card menggunakan variasi dari instruksi-instruksi yang
ditanamkan dalam video card itu sendiri (bukan berasal dari software) untuk mencapai hasil
grafik yang lebih realistis dalam memainkan game komputer.
Konsep tiga dimensi atau 3D menunjukkan sebuah objek atau ruang memiliki tiga
dimensi geometris yang terdiri dari: kedalaman, lebar dan tinggi. Contoh tiga dimensi suatu
objek / benda adalah bola, piramida atau benda spasial seperti kotak sepatu.
Karakteristik 3D :
Mengacu pada tiga dimensi spasial, bahwa 3D menunjukkan suatu titik koordinat
Cartesian X, Y dan Z. Penggunaan istilah 3D ini dapat digunakan di berbagai bidang dan
sering dikaitkan dengan hal-hal lain seperti spesifikasi kualitatif tambahan (misalnya: grafis
tiga dimensi, 3D video, film 3D, kacamata 3D, suara 3D).
Macam-macam objek 3D :
Box, sphare, cyllinder, tube, pyramid,hedra



Bentuk sederhana dari grafik komputer ada 2 yaitu :
1. Grafik komputer 2 dimensi biasa disebut dengan 2D atau bidang adalah
bentuk dari benda yang memiliki panjang dan lebar. Grafik 2 Dimensi
merupakan teknik penggambaran yang berpatokan pada titik koordinat sumbu
x (datar) dan sumbu y (tegak). Agar dapat tampil dengan sempurna, gambar
yang akan ditampilkan dengan teknik ini harus memiliki nilai koordinat x dan
y minimum 0 dan maksimum sebesar resolusi yang digunakan.


10
2. Grafik komputer 3 dimensi biasa disebut 3D atau adalah bentuk dari benda
yang memiliki panjang, lebar, dan tinggi. Grafik 3 Dimensi merupakan teknik
penggambaran yg berpatokan pada titik koordinat sumbu x(datar), sumbu
y(tegak), dan sumbu z(miring).Representasi dari data geometrik 3 dimensi
sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap grafika
komputer 2D. Tiga Dimensi, biasanya digunakan dalam penanganan grafis.
3D secara umum merujuk pada kemampuan dari sebuah video card (link). Saat
ini video card menggunakan variasi dari instruksi-instruksi yang ditanamkan
dalam video card itu sendiri (bukan berasal dari software) untuk mencapai
hasil grafik yang lebih realistis dalam memainkan game komputer.

2D dan 3D dalam komputer grafik
A. Grafik komputer 2D
Grafik komputer 2D adalah sebuah generasi gambar digital berbasis komputer,
yang kebanyakan mengambil objek-objek dua dimensi (2D). Model Grafik 2D
merupakan kombinasi dari model geometri (juga disebut sebagai grafik vektor),
gambar digital (raster graphics), fungsi matematika, dan sebagainya. Komponen-
komponen ini dapat dimodifikasi dan dimanipulasi oleh transformasi geometri
dua dimensi, seperti translasi, rotasi, dan dilatasi.
Cara yang paling mudah untuk membuat sebuah gambar 2D kompleks yaitu
dimulai dengan sebuah "canvas" kosong yang diisi dengan warna latar tertentu,
yang kemudian kita "draw", "paint", atau "paste" suatu warna kedalamnya,
dengan urutan-urutan tertentu. Intinya, kanvas tersebut merupakan "frame buffer"
atau bayangan dari layar komputer.
Model-model yang digunakan pada disain grafis 2D biasanya tidak
mendukung bentuk-bentuk tiga-dimensi, atau fenomena yang bersifat tiga
dimensi, seperti pencahayaan, bayangan, pantulan, refraksi, dan sebagainya.
Namun demikian, mereka dapat membuat model berlapis-lapis (layer); nyata,
translusen, dan transparan, yang dapat ditumpuk dalam urutan tertentu. Urutan
tersebut biasanya didefinisikan dengan angka (kedalaman lapisan, atau jarak dari
si penglihat).

11
Banyak antarmuka grafis atau yang kita kenal dengan GUI (Grapical User
Interface) yang berbasiskan model grafis 2D. Software-software yang mendukung
GUI dapat menciptakan "keadaan visual" dalam berinteraksi dengan komputer,
sehingga para pengguna tidak selalu harus melihat tulisan. Grafik 2D juga penting
bagi kendali peralatan-peralatan semacam printer, plotter, shredder, dan
sebagainya. Mereka juga digunakan pada beberapa video dan games sederhana
seperti solitaire, chess, atau mahjong.
B. Grafik Komputer 3D
Grafik 3D merupakan perkembangan dari grafik 2D. Didalam grafika
komputer, 3D merupakan bentuk grafik yang menggunakan representasi data
geometri tiga dimensi. Suatu objek rangka 3D apabila disinari dari arah tertentu
akan membentuk bayangan pada permukaan gambar.
Proses pembuatan grafik komputer 3D dapat dibagi ke dalam tiga fase, yaitu
3D modeling yang mendeskripsikan bentuk dari sebuah objek, layout dan
animation yang mendeskripsikan gerakan dan tata letak sebuah objek, dan 3D
rendering yang memproduksi image dari objek tersebut.
Istilah atau Pengertian Grafik 3D adalah sebuah gambar,garis,lengkungan,dan
sebagainya yang memiliki titik-titik yang menghubungkan menjadi sebuah bentuk
3D. Di dalam dunia game, 3D secara umum merujuk pada kemampuan dari
sebuah video card (link). Saat ini video card menggunakan variasi dari instruksi-
instruksi yang ditanamkan dalam video card itu sendiri (bukan berasal dari
software) untuk mencapai hasil grafik yang lebih realistis dalam memainkan
game komputer.






12
BAB III
HASIL PERCOBAAN / PRAKTIKUM

1. CONTOH LATIHAN PRIMITIVE DRAWING


#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar poligon (rectangle) dengan titik sudut *
* (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0) */
glLineWidth(5);
glBegin(GL_LINES);
//komputer
glColor3f (1.0, 1.6, 0.0);
glVertex3f (-0.7, 0.7, 0.0);
glVertex3f (-0.1, 0.7, 0.0);

glColor3f (1.8, 1.0, 1.0);
glVertex3f (-0.1, 0.7, 0.0);

13
glVertex3f (-0.1, 0.1, 0.0);
//garis tengah
glColor3f (0.9, 0.7, 1.0);
glVertex3f (-0.25, 0.7, 0.0);
glVertex3f (-0.25, 0.1, 0.0);

glColor3f (1.0, 1.0, 0.0);
glVertex3f (-0.1, 0.1, 0.0);
glVertex3f (-0.7, 0.1, 0.0);

glColor3f (0.0, 1.0, 0.0);
glVertex3f (-0.7, 0.1, 0.0);
glVertex3f (-0.7, 0.7, 0.0);

//garis 3 di tengah
glColor3f (0.2, 0.9, 1.0);
glVertex3f (-0.65, 0.6, 0.0);
glVertex3f (-0.3, 0.6, 0.0);

glColor3f (0.9, 0.2, 0.5);
glVertex3f (-0.6, 0.55, 0.0);
glVertex3f (-0.35, 0.55, 0.0);

glColor3f (0.7, 0.3, 0.8);
glVertex3f (-0.55, 0.50, 0.0);
glVertex3f (-0.40, 0.50, 0.0);

//gambar GK-3
//G
glColor3f (0.0, 0.0, 1.0);
glVertex3f (-0.65, 0.40, 0.0);
glVertex3f (-0.55, 0.40, 0.0);

glVertex3f (-0.65, 0.40, 0.0);

14
glVertex3f (-0.65, 0.20, 0.0);

glVertex3f (-0.65, 0.20, 0.0);
glVertex3f (-0.55, 0.20, 0.0);

glVertex3f (-0.55, 0.20, 0.0);
glVertex3f (-0.55, 0.30, 0.0);

glVertex3f (-0.55, 0.30, 0.0);
glVertex3f (-0.61, 0.30, 0.0);

//K
glColor3f (0.9, 0.2, 0.3);
glVertex3f (-0.52, 0.40, 0.0);
glVertex3f (-0.52, 0.20, 0.0);

glVertex3f (-0.52, 0.30, 0.0);
glVertex3f (-0.42, 0.40, 0.0);

glVertex3f (-0.52, 0.30, 0.0);
glVertex3f (-0.42, 0.20, 0.0);

//Garis
glColor3f (2.3, 0.0, 1.0);
glVertex3f (-0.38, 0.30, 0.0);
glVertex3f (-0.43, 0.30, 0.0);

//3
glColor3f (1.0, 1.0, 0.0);
glVertex3f (-0.37, 0.40, 0.0);
glVertex3f (-0.28, 0.40, 0.0);

glVertex3f (-0.35, 0.30, 0.0);
glVertex3f (-0.28, 0.40, 0.0);

15

glVertex3f (-0.35, 0.30, 0.0);
glVertex3f (-0.28, 0.30, 0.0);

glVertex3f (-0.28, 0.20, 0.0);
glVertex3f (-0.28, 0.30, 0.0);

glVertex3f (-0.37, 0.20, 0.0);
glVertex3f (-0.28, 0.20, 0.0);

//keyboard
glColor3f (0.2, 1.0, 1.0);
glVertex3f (-0.70, 0.04, 0.0);
glVertex3f (-0.10, 0.04, 0.0);

glColor3f (1.0, 1.0, 1.0);
glVertex3f (-0.10, 0.04, 0.0);
glVertex3f (-0.20, -0.20, 0.0);

glColor3f (0.0, 1.6, 0.0);
glVertex3f (-0.80, -0.20, 0.0);
glVertex3f (-0.20, -0.20, 0.0);

glColor3f (0.8, 0.0, 1.0);
glVertex3f (-0.80, -0.20, 0.0);
glVertex3f (-0.70, 0.04, 0.0);

//garis dalam keyboard
glColor3f (0.8, 0.0, 1.0);
glColor3f (0.2, 0.8, 0.0);
glVertex3f (-0.68, -0.01, 0.0);
glVertex3f (-0.17, -0.01, 0.0);



16
glColor3f (0.2, 0.8, 0.0);
glVertex3f (-0.65, -0.05, 0.0);
glVertex3f (-0.22, -0.05, 0.0);

glColor3f (0.2, 0.2, 1.0);
glVertex3f (-0.62, -0.09, 0.0);
glVertex3f (-0.27, -0.09, 0.0);

//garis bawah
glColor3f (1.0, 1.0, 1.0);
glVertex3f (-0.80, -0.30, 0.0);
glVertex3f (0.8, -0.30, 0.0);

//CPU
glColor3f (1.0, 0.5, 0.0);
glVertex3f (0.0, 0.7, 0.0);
glVertex3f (0.35, 0.7, 0.0);

glColor3f (0.0, 1.0, 0.5);
glVertex3f (0.35, -0.2, 0.0);
glVertex3f (0.35, 0.7, 0.0);

glColor3f (0.5, 0.5, 1.0);
glVertex3f (0.0, -0.2, 0.0);
glVertex3f (0.35, -0.2, 0.0);

glColor3f (1.0, 0.5, 1.0);
glVertex3f (0.0, 0.7, 0.0);
glVertex3f (0.0, -0.2, 0.0);

//kotak kecil tengah
glColor3f (1.0, 0.0, 0.7);
glVertex3f (0.06, 0.60, 0.0);
glVertex3f (0.06, 0.45, 0.0);

17

glColor3f (0.7, 1.0, 0.0);
glVertex3f (0.06, 0.60, 0.0);
glVertex3f (0.29, 0.60, 0.0);

glColor3f (0.0, 0.7, 1.0);
glVertex3f (0.29, 0.60, 0.0);
glVertex3f (0.29, 0.45, 0.0);

glColor3f (1.0, 0.4, 0.4);
glVertex3f (0.06, 0.45, 0.0);
glVertex3f (0.29, 0.45, 0.0);

//garis tengah
glColor3f (1.0, 0.2, 0.0);
glVertex3f (0.0, 0.35, 0.0);
glVertex3f (0.35, 0.35, 0.0);

glVertex3f (0.0, 0.30, 0.0);
glVertex3f (0.35, 0.30, 0.0);

//garis bawah (3)
glColor3f (1.0, 1.0, 1.0);
glVertex3f (0.03, 0.22, 0.0);
glVertex3f (0.32, 0.22, 0.0);

glColor3f (1.0, 0.8, 0.0);
glVertex3f (0.06, 0.15, 0.0);
glVertex3f (0.29, 0.15, 0.0);

glColor3f (0.0, 1.0, 0.8);
glVertex3f (0.09, 0.08, 0.0);
glVertex3f (0.26, 0.08, 0.0);


18
glEnd();
glFlush ();
}
void kunci(unsigned char key, int x, int y)
{
switch (key)
{
case 27 :
case 'q':
exit(0);
break;
}
glutPostRedisplay();
}
int main(int argc, char *argv[])
{
glutInitWindowSize(1000,600);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Tugas");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}









19
2. CONTOH 2D


#include "stdafx.h"
#include <windows.h>
#include <gl/Gl.h> // untuk menggunakan Libary yg disediakan OpenGL
#include <gl/glut.h>

//<<<<<<<<<<<<<<<<<<<<<<< myInit >>>>>>>>>>>>>>>>>>>>
void myInit(void)
{
glClearColor(1.0,1.0,1.0,0.0); // membuat latar belakang putih
glPointSize(4.0); // ukuran titik 4 x 4 pixel
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0, 640.0, 0.0, 480.0);
}
void myDisplay(void) // ini bagian headernya
{
glClear(GL_COLOR_BUFFER_BIT); // hapus layar / clear screen.
glFlush(); // mengirim semua output ke layar
}

20
//<<<<<<<<<<<<<<<<<<<<<<<< main >>>>>>>>>>>>>>>>>>>>>>
void main(int argc, char** argv)
{
glutInit(&argc, argv); // inisialisasi toolkit
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // set modus display
glutInitWindowSize(640,480); // set ukuran window
glutInitWindowPosition(100, 150); // set posisi window di layar
//acuan sudut kiri-atas
glutCreateWindow("Rumah Warna"); // buka screen window
glutDisplayFunc(myDisplay); // registrasi fungsi menggambar
myInit();
glutMainLoop(); // berulang terus-menerus
}
//Segitiga
glBegin(GL_POLYGON); // untuk membuat object 2D
glColor3f(0.0f,1.0f,0.0f); // untuk mengset warnanya
glVertex2i(100, 150); //titik kiri
glVertex2i(200, 150); //titik kanan
glVertex2i(150, 230); //titik atas
glEnd();
//Garis Segitiga
glBegin(GL_LINE_LOOP); // untuk membuat garis.
glColor3f(0.0f,0.0f,0.0f);
glVertex2i(100, 150); //titik kiri
glVertex2i(200, 150); //titik kanan
glVertex2i(150, 230); //titik atas
glEnd();

di bawah ini settingan warna untuk rumah pada gambar di atas :
Biru muda : glColor3f(0.0f,1.0f,1.0f);
Merah : glColor3f(1.0f,0.0f,0.0f);
Hijau : glColor3f(0.0f,1.0f,0.0f);
Abu Abu : glColor3f(0.7f,0.7f,0.7f);
Pink : glColor3f(1.0f,0.0f,1.0f);
21
Kuning : glColor3f(1.0f,1.0f,.0f);
Orange muda : glColor3f(1.0f,0.6f,0.0f);
Orange : glColor3f(1.0f,0.4f,0.0f);

kemudian maksud dari :
glBegin(GL_POINTS) //buat titik.
glVertex2i(100, 150);
fungsi diatas untuk membuat posisi titik pada sebuah Grafik, itu maksudnya kita ngeset
posisi Y =100, X =150 yang akan di tampilkan di layar.


3. CONTOH 3D








22
#include <Windows.h>
#include <iostream>
#include <gl\GL.h>
#include <gl\GLU.h>
#include <gl\glut.h>
#include <math.h>

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 jenis material 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);
}

void setLighting()
{

23
//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 camera
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);
}

void displayObject()
{
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
}

24

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();
}













25
BAB IV
ANALISA HASIL PERCOBAAN

Primitive Drawing


Bisa kita lihat dari gambar di atas gambar komputer dan cpu tersebut banyak
menggunakan banyak warna. Kesulitannya adalah dalam menentukan titik koordinat
dari masing masing garis .


2D

26
Dari gambar di atas dapat kita lihat objek 2 dimensi ini terlihat sangat menarik dan
sangat mudah membuatnya, akan tetapi bagi saya ini sangat rumit. Rumit dalam menentukan
titik koordinatnya, objek 2D poligonnya .

3D



Gambar di atas adalah kubus 3D . Hasil yang 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.








27
BAB V
PENUTUP

1. KESIMPULAN
Dari pembahasan di atas dapat saya simpulakan bahwa :
Di dalam pembuatan grafik objek 2D dan 3D ini kita bisa dengan bebas membuat
berbagai macam gambar maupun itu 2D ataupun 3D .
Dan untuk memahami secara mendalam tentang transformasi di dalam grafik
komputer sangatlah penting. Dan kita juga harus tau atau menguasai ilmu
matematik atau sejenisnya .
Perbandingan hasil pembuatan program dengan menggunakan bahasa
pemrograman lebih sulit dan sangat berbeda jauh dari segi tampilan, maupun tata
cara pembuatannya dibandingkan dengan program aplikasi yang menerapkan
system just click (event driven) atau dengan menggambar di kertas .


2. SARAN
Setelah melihat uraian di atas, saya mempunyai saran yaitu :
Dalam pelaksanaan praktikum mahasiswa harus bisa lebih teliti, cermat dan
memahami apa yang telah di ajarkan oleh dosen selama ini.
Terlebih dahulu harus belajar algoritma, karena algorima adalah salah satu kunci
untuk dapat memahami permasalahan yang akan dihadapi didalam pembuatan
grafik komputer.
Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang lebih
bagus menurut anda, lebih kompleks, dan yang khusus menangani pembuatan
gambar/grafik serta yang mengikuti perkembangan zaman .
Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa
pemrograman ) yang terdapat dalam bahasa pemrograman ataupun fitur fitur
yang terdapat didalam program aplikasi.
Kritik dan saran dari dosen atau pembaca lain juga sangat saya butuhkan untuk
kesempurnaan laporan praktikum saya ini.

28

DAFTAR PUSTAKA


https://docs.google.com/document/d/15Us0Xa9Su30BmYysaQ8vTWnivvJbOT-
84BvOJFkBJM0/edit?pli=1

https://www.google.co.id/?gws_rd=ssl#q=PENGERTIAN+KOMPUTER+GRAFIK

http://resman16waruwu.blogspot.com/2013/01/sejarah-komputer-grafik.html

http://id.wikipedia.org/wiki/Grafika_komputer

http://camillainsaniputri.blogspot.com/2013/11/pengertian-2dimensi-3-dimensi-dan-
pixel.html

http://juvanister.blogspot.com/2010/10/perbedaan-grafis-2d-dan-3d.html

http://amalia-chairy.blogspot.com/2012/10/contoh-program-primitive-drawing-pada-c.html


http://jradjulan.mhs.uksw.edu/2012/09/tugas-grafika-komputer.html

Anda mungkin juga menyukai