LAPORAN PRAKTIKUMKOMPUTER GRAFIK
KelasTI 4 Sore C
NamaPraktikanNomor MahasiswaTanggalPengumpulanTanda
tanganPraktikan
Juherdi Helmi
1214370260
NamaPenilaiTanggalKoreksiNilaiTanda TanganDosen
Indri Sulistianingsih,S.Kom
UNIVERSITAS PEMBANGUNAN PANCA BUDIFAKULTAS TEKHNIKJURUSAN SISTEM
KOMPUTERMEDAN 2014
DAFTAR ISI
Daftar IsiiKata PengantariiBAB 1Pendahuluan 1.1 Pengertian
Komputer Grafik1 1.2 Peranan dan Penggunaan Komputer Grafik1 1.3
Pemilihan Aplikasi OPENGL1 1.4 Tujuan1BAB 2Landasan Teori 2.1
Sejarah OpenGL2 2.2 Pengenalan OpenGL3 2.3 Cara Kerja OpenGL4
Inisialisasi Awal4 Pembuatan Gambar5 Primitive Grafik6 Gambar 2D9
Gambar 3D9BAB 3Hasil Percobaan/Praktikum 3.1 Gambar Jajar Genjang10
3.2 Gambar 2D12 3.3 Gambar 3D17BAB 4Analisa Hasil Percobaan 4.1
Analisa dari percobaan gambar jajar Genjang22 4.2 Analisa dari
percobaan gambar 2D23 4.3 Analisa dari percobaan gambar
3D24PENUTUPiiiDAFTAR PUSTAKAiv
KATA PENGANTAR
Dengan memanjatkan puji syukur kepada Tuhan Yang Maha Esa
penulis dapat menyelesaikan tugas pembuatan makalah KOMPUTER GRAFIK
ini dengan lancar.
Dalam pembuatan makalah ini, penulis mendapat bantuan dari
berbagai pihak, maka pada kesempatan ini penulis mengucapkan terima
kasih yang sebesar-besarnya kepada : Seluruh rekan yg, yang telah
memberikan kesempatan dan memberi fasilitas sehingga makalah ini
dapat selesai dengan lancar. Temen yang telah banyak membantu
sehingga pembuatan makalah ini dapat berjalan lancar. Yudi Imron
Habibi,S.Ag. yang telah memberi kesempatan dan memfasilitasi kepada
penulis sehingga makalah ini bisa selesai dengan lancar. Mama dan
Bapak dirumah yang telah memberikan bantuan materil maupun doanya,
sehingga pembuatan makalah ini dapat terselesaikan. Semua pihak
yang tidak dapat penulis sebutkan satu persatu yang membantu
pembuatan makalah ini.
Akhir kata semoga makalah ini bisa bermanfaat bagi pembaca pada
umumnya dan penulis pada khususnya, penulis menyadari bahwa dalam
pembuatan makalah ini masih jauh dari sempurna untuk itu penulis
menerima saran dan kritik yang bersifat membangun demi perbaikan
kearah kesempurnaan. Akhir kata penulis sampaikan terimakasih.
Medan, 11 Juni 2014
Juherdi Helmi
BAB I PENDAHULUAN
1.1 PENGERTIAN 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.
1.2 PERANAN DAN PENGGUNAAN KOMPUTER GRAFIKGrafika 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.3 PEMILIHAN APLIKASI Open-GL Dalam pembahasan dan praktik
kerja di dalam makalah ini Saya akan memfokuskan pada penggunaan
Open-GL sebagai pilihan Saya.
1.4 TUJUAN1. Sebagai bahan untuk Ujian Akhir Semester mata
kuliah komputer grafik semester 4.2. mahasiswa diharapkan dapat
mempraktikan pembuatan gambar 2D dan 3D.
BAB II LANDASAN TEORI
A.SEJARAH OPEN-GLPada tahun 1982,seorang profesor dari Stanford
University yang bernama Jim Clark memulaimembuka perusahaan
komputer grafis yang pertama yaitu Silicon Graphics Computer
System, yang kemudian dikenal dengan nama SGI. Para teknisi SGI
membutuhkan cara yang standar spesifikas untuk pengoperasian dan
transformasi 3D, oleh sebab itu mereka mendesain sebuah aplikasi
pemrograman antarmuka (API) yang bernama IrisGL. IrisGL ini hanya
dapat digunakan pada hardware keluaran dari SGS (tidak bersifat
open-standard). Pada saat yang bersamaan, vendor lain termasuk Sun
Microsystem, IBM dan Hewlett-Packard juga mengeluarkan produk 3D
hardware di pasaran. Mereka menggunakan jenis API lain yang disebut
PHIGS. Karena vendor lain juga meluncurkan produk 3D hardware di
pasaran, lingkup pemasaran SGI pun menjadi berkurang.Untuk kembali
mendongkrak penjualan produk mereka ke pasaran, akhirnya SGI
mengubah IrisGL menjadi open-standard. Namun akrena alasan lisensi
dan hak paten, mereka tidak dapat meluncurkan IrisGL versi
open-standard. Akhirnya mereka membuat API baru berbasis IrisGL
yang diberi nama OpenGLAwalnya, OpenGL didesain untuk digunakan
pada pemrograman C/C++, namun seiring dengan berjalannya waktu,
OpenGL dapat digunakan pada berbagai jenis bahasa pemrograman
seperti, Java, Visual, Basic, Delphi, dan sebagainya. Untuk
menggunakan OpenGl dalam compiler bahasa pemrograman misalnya C++,
dibutuhkan instalasi library tertentu. GLUT (OpenGL utility
Toolkit) merupakan library dari pengembangan OpenGL untuk sistem
windows. GLUT didesain untuk membuat program OpenGL yang berukuran
kecil sampai medium. GLUT tidak dapat secara langsung digunakan,
karena membutuhkan beberapa file tambahan antara lain : glut.h,
glut.lib, dan glut32.dll yang disimpan pada direktori tertentu.
B.PENGENALAN OPEN-GL Open-GL 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, Open-GL
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 Open-GL 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.
Open-GL adalah suatu spesifikasi grafik yang low-level yang
menyediakan fungsi untuk pembuatan grafik primitif termasuk titik,
garis, dan lingkaran. Open-GL digunakan untuk keperluan-keperluan
pemrograman grafik. Open-GL bersifat Open-Source, multi-platform
dan multi-language serta digunakan mendefinisikan suatu objek, baik
objek 2 dimensi maupun objek 3 dimensi. Open-GL juga merupakan
suatu antarmuka pemrograman aplikasi (application programming
interface (API) yang tidak tergantung pada piranti dan platformyang
digunakan, sehingga Open-GL dapat berjalan pada sistem operasi
Windows, UNIX dan sistem operasi lainnya.
Open-GL pada awalnya didesain untuk digunakan pada bahasa
pemrograman C/C++, namun dalam perkembangannya Open-GL dapat juga
digunakan dalam bahasa pemrograman yang lain seperti Java, Tcl,
Ada, Visual Basic, Delphi, maupun Fortran. Namun Open-GL di-package
secara berbeda-beda sesuai dengan bahasa pemrograman yang
digunakan. Oleh karena itu, package Open-GL tersebut dapat
di-download pada situs http://www.opengl.org sesuai dengan bahasa
pemrograman yang akan digunakan.Open-GL melayani dua tujuan : Untuk
menyembunyikan kompleksitas dari interfacing dengan berbagai 3D
accelerators, memamerkan oleh programmer dengan satu, seragam API.
Untuk menyembunyikan kemampuan yang berbeda dari hardware platform,
oleh semua yang memerlukan mendukung implementasi penuh fitur
opengl set (menggunakan software emulation jika diperlukan).
C. CARA KERJA OPEN-GL
Open-GL 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
open-GL,perintah tersebut digunakan untuk menggambarkan grafik
primitif seperti titik,garis dan poligon dalam tiga dimensi.Sebagai
tambahan,open-GL mendukung lighting,shading,texture
mapping,blending,transparancy,dan banyak kemampuan efek khusus
lainnya.Open-GL mempunyai bnayak fungsi dan penggunaan perintah
yang sangat luas, penggunaan open-GL membutuhkan library tambahan
yang harus di letakkan pada direktory system dari windows
(OS),yaitu : OpenGL32.dll Glu32.dll Glut32.dll
Inisialisasi awalInti 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
open-GL, koneksi ini dilakukan supaya fungsi-fungsi yang di
sediakan open-GL dapat digunakan. Fungsi/prosedur yang digunakan
:LoadGlut(glut32.dll) -pemanggilan library open-GL InitGL
inisialisasi open-GL awal yang harus dilakukan glViewport untuk
pengaturan viewport glMatrixMode pengaturan viewport gluPerspective
pengaturan persepektif
Contoh script untuk inisialisasi open-GL
:TryLoadGlut(glut32.dll);InitGL;Exept one := exeption
doBeginmessageDlg{ e.message, mtError, [mbOk],};Halt {1};
End;End;
Script di atas merupakan script yang paling sederhana, dalam
artian minimal diperlukan untuk menginisialisasi penggunaan
open-GL.Fungsi-fungsi lain seperti yang disebut diatas seperti
glViewport, glMatrixMode, dapat di tambah kan pada script sesuai
dengan kebutuhan.
Pembuatan gambar Didalam open-GL pembuatan obyek dilakukan
dengan titik-titik 3 dimensi,dengan mode GL_QUARDS, maka otomatis
setiap 4 titik digambar menjadi sebuah bidang segiempat,sedangkan
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
garisglVertex3f-penentuan titik 3 dimensi glColor3f penentuan
warnaOpen-GL memiliki lebih dari 200 fungsi. Fungsi tersebut bisa
dikelompokkan menjadi : Fungsi primitif, menentukan elemen yang
bisa menghasilkan gambar di layar. Fungsi ini 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.
Open-GL menyediakan sebuah virtual 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
penggunaan dari mouse dan keyboard.Fungsi kontrol, menghidupkan
macam-macam fitur Open-GL.Fungsi-fungsi Open-GL dimuat didalam 2
library yang disebut dengan gl dan glu (atau GL dan GLU). Library
yang pertama, adalah fungsi utama dari Open-GL, berisi semua fungsi
Open-GL yang dibutuhkan sedangkan yang kedua, open-GL 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 GRAFICSPrimitif 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.
Primitive grafis yang umum dijelaskan pada tabel berikut :OBJEK
GRAFISPRIMITIFE 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
EllipsePusat (x,y),Radius :
Horisontal/Vertical,Warna,Thickness,Pattern
KurvaTeratur/Tidak teratur (Bezier)
CharacterType,Slanted,Thickness,Colour DLL
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_POINTSPrimitif objek ini dipergunakan untuk menciptakan suatu
titik.# define GL_LINESPrimitif objek ini adalah suatu primitive
objek guna menciptakan suatu garis# define GL_LINE_LOOP# define
GL_LINE_STRIP# define GL_TRIANGLESTriangle 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 adalah 4 buah vertex# define
GL_TRIANGLE_FANTriangles fan adalah pembuatan suatu objek dengan
menggunakan segitiga dimana hanya menggunakan 1 titik pusat saja.#
define GL_QUADSQuad atau segempat adalah empat buah titik yang
terhubung menjadi quat segi empat dengan blok di tengahnya.# define
GL_QUADS_STRIPPada quads strip 4 buah vertex merupakan 1
kelompok.Langkah rendering pada quads strip :a.Nomor yang berhadap
(membentuk 2 garis yang sejajarb.Nomor ganjil dengan nomor ganjil
dipertemukanc.Nomor genap dengan nomor genap dipertemukand.Garis
yang tersisa akan dipertemukan# define GL_POLYGONPolygon 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.
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);//blackglColor3f(0,0,1);//blueglColor3f(0,1,0);//greenglColor3f(0,1,1)//cyanglColor3f(1,0,0)//redglColor3f(1,0,1)//magentaglColor3f(1,1,0);//yellowglColor3f(1,1,1);//white
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.
BAB III PRAKTIKUM1. PEMBUATAN JAJARGENJANGglEnd();#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
screenglClear(GL_COLOR_BUFFER_BIT);userdraw();glutSwapBuffers();}int
main(int argc, char**argv){glutInit(&argc,argv);//Inisialisasi
ToolkitglutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowPosition(200,200);glutInitWindowSize(640,480);glutCreateWindow("Menampilkan
Titik");glClearColor(1.0f,0.0f,0.0f,0.0f);gluOrtho2D(0.,640.,-240.,240.);glutIdleFunc(display);glutDisplayFunc(display);glutMainLoop();return
0;}Hasilnya
2. GAMBAR 2DPEMBUATAN BUNGA#include #include typedef struct{int
x,y;}point2D_t;
typedef struct{float r,g,b;}color_t;
void setColor (color_t col){glColor3f(col.r, col.g, col.b);}
void drawPolygon(point2D_t pnt[],int n){int
i;glBegin(GL_POLYGON);for (i=0; i