Anda di halaman 1dari 15

LAPORAN PRAKTIKUM

MATA KULIAH
KOMPUTER GRAFIS
(Membuat Objek Titik-Titik Pada OpenGL )

Andi Muh. Fadel Alfayed


1729041069
PTIK D 2017

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


JURUSAN PENDIDIKAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS NEGERI MAKASSAR
2019
PRAKTIKUM

Membuat Objek Titik

A. Tujuan
Tujuan dari laporan ini adalah untuk memenuhi tugas laporan yang diberikan
olen dosen pengampu mata kuliah komputer grafis dan membuat objek titik titik
menggunakan OpenGL.

B. Teori Dasar
Menurut Suyoto (2003), grafika komputer (Computer Graphic) dapat
diartikan sebagai seperangkat alat yang terdiri dari hardware dan software untuk
membuat gambar, grafik ataucitra realistik untuk seni, game komputer, foto dan
film animasi. Sistem grafika komputer dapat dijalankan dengan komputer pribadi
(Personal Computer) atau workstation.
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 ke sistem
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.
Dasar-dasar menggambar dengan OpenGL mempunyai 10 buah bentuk
geometris sederhana,biasa disebut 10 Geometris Primitif. Disebut primitif karena
bentuk sederhana dan ditampilkan sangat cepat dan bisa dibentuk gambar yang
lebih kompleks lagi dengan penggabungan gambar geometris primitif tersebut. 10
Geometris tersebut diantarannya :
1. Gl_Points (Point),
2. Gl_Lines (Garis),
3. Gl_Triangles (Segitiga),
4. Gl_Triangle Strip (Segitiga Jalur),
5. Gl_Quad Strip (Quad Jalur),
6. Gl_Line Strip (Garis Jalur),
7. Gl_Line Loop (Garis Looping),
8. Gl_Quads (Quad),
9. Gl_Polygon (Poligon),
10. Gl_Triangle Fan (Segitiga Fan).
Gambar 1.1 Fungsi Geometris

Pada prinsipnya openGL mempunyai prinsip pembuatan warna sama seperti


RGB pada warna-warna yang disediakan oleh berbagai macam pemrograman.
namun perbedaannya adalah :
1. kode warna RGB pada pemrograman lain mempunyai nilai default
(255,255,255).
2. sedangkan openGL memiliki kode warna default (1,1,1)
jadi intinya kode warna pada openGL mempunyai rentang antara 0 sampai
dengan 1. berikut ini adalah sedikit kode warna yang penulis kumpulkan dari
beberapa percobaan :
1. Warna Merah = glColor3f (1.0,0.0,0.0).
2. Warna Hijau = glColor3f (0.0,1.0,0.0).
3. Warna Biru = glColor3f(0.0,0.0,1.0).
4. Warna Kuning = glColor3f(1.0,1.0,0.0).
5. Warna Cyan = glColor3f(0.0,1.0,1.0).
6. Warna Magenta = glColor3f(1.0,0.0,1.0).
7. Warna putih = glColor3f(1.0,1.0,1.0).
8. Warna Hitam = glColor3f(0.0,0.0,0.0).
Berikut ini prosedur untuk membuat titik, dengan menggunakan perintah
GL_POINTS pada program OpenGL.
#include <GL/glut.h>
#include <GL/gl.h>
#include <windows.h>
void userdraw () {
glBegin (GL_POINTS);
glVertex2i (150,0);
glVertex2i (150,200);
glVertex2i (370,200);
glEnd ();
}
void display (void) {
glClear (GL_COLOR_BUFFER_BIT);
userdraw ();
glutSwapBuffers ();
}
int main (int argc, char **argv) {
glutInit (&argc,argv);
glutInitDisplayMode (GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize (640,480);
glutCreateWindow ("Membuat Objek Titik");
glClearColor (0.0, 0.0, 0.0, 0.0);
gluOrtho2D (0.,640.,-240.,240.);
glutIdleFunc (display);
glutDisplayFunc (display);
glutMainLoop ();
return 0;
}

Gambar 1.2 Output Syntaks Membuat Titik


C. Alat dan Bahan
1. Laptop
2. CodeBlocks Dev c++ OpenGL
3. OS Windows 8

D. Prosedur Percobaan
1. Membuat titik – titik merah secara random di koordinat bidang pada layar
display berwarna hitam.
2. Membaut titik – titik warna warni secara random di koordinat bidang pada
layar display berwarna hitam.

E. Langkah Kerja dan Analisis Praktikum


1. Program output titik berwarna merah yang terletak secara random.
Berikut script dan penjelesannya :

Gambar 4.1 Script Titik Merah


a. Memanggil library

- Kode program di atas berfungsi untuk import library yang akan digunakan
yang diawali dengan menggunakan tanda pagar # disebut sebagai
Preprocessor Directive, Pada contoh di atas tertulis #include <windows.h>
yang berarti program tersebut akan menggunakan fitur dari pustaka
(Library) yang bernama windows.h.
- Bertujuan untuk memberitahu compiler bahwa file akan menggunakan
beberapa fitur dan fungsi yang ada pada pustaka yang disebutkan.
- #include<Windows.h> Mendefinisikan sebuah window berdasarkan
koordinat kiri atas dan kanan bawah.
- #include<GL/glut.h> Pemrograman grafis menggunakan OpenGL-GLUT
membutuhkan header glut.h yang ada di folder c:\Program Files\Microsoft
Visual Studio\VC98\bin\GL.

b. Prosedur untuk menampilkan objek

- Void userdraw(void){} suatu fungsi bervariabel userdraw untuk membuat


kode program untuk menghasilkan suatu gambar. Bertipe void artinya
tidak akan mengembalikan nilai apapun, hanya menjalankan rutin
program tertentu saja. Serta fungsi tersebut tidak menggunakan parameter
apapun (void).
- Float x,y suatu perintah untuk menginisialisasi variabel x y yang memiliki
tipe data float mendukung bilangan koma.
- For (int i=0; i<1000; i++){} merupakan perintah untuk melakukan
pengulangan sebanyak yang diinginkan pada program, pengulangan for
terdiri dari 3 bagian, pertama inisialisasi variabel i dengan nilai 0 yang
mendukung tipe data integer, kedua tahap kondisi yang harus dipenuhi
agar perulangan terjadi sebanyak 1000 kali, ketiga tahap increment
penaikan nilai 1 kali variabel jika telah memenuhi kondisi.
- X = 640 * (float)rand() / RAND_MAX - 320 dan Y= 480 * (float)rand() /
RAND_MAX - 240 merupakan perintah untuk memberikan nilai secara
random pada variabel x dan y, dimana x memiliki nilai interval 640
terhitung dari -320 sampai 320 , sedangkan y memiliki nilai interval 480
terhitung dari -240 sampai 240. Perintah (float)rand() berfungsi
mengeluarkan angka random antara 0-RAND_MAX, sedangkan
RAND_MAX merupakan konstanta dari suatu angka akhir random yang
bisa dikeluarkan dengan nilai 32767.
- glPointSize(5) merupakan perintah yang digunakan mengatur ketebalan
titik sebesar 5 kali ketebalan.
- glColor3f(1,0,0) merupakan perintah yang digunakan untuk memberikan
warna merah pada titik titiknya dengan menggunakan satuan nilai float.
- glBegin(GL_POINTS) merupakan perintah yang digunakan untuk
membuat titik-titik.
- glVertex2f(x,y) merupakan perintah untuk memetakan secara koordinat xy
dari titik yang dibuat, dimana xy merupakan angka acak dengan
menggunakan satuan nilai float.
- glEnd() merupakan perintah untuk mengakhiri glBegin pembuatan objek
titik.
- ; perintah untuk mengakhiri suatu baris perintah.

- Void display(void){} suatu fungsi bervariabel display untuk membuat


kode program untuk menghasilkan suatu gambar. Bertipe void artinya
tidak akan mengembalikan nilai apapun, hanya menjalankan rutin
program tertentu saja. Serta fungsi tersebut tidak menggunakan parameter
apapun (void).
- glClear(GL_COLOR_BUFFER_BIT) perintah berfungsi untuk
membersihkan laya dan memberi warna yang telah kita definisikan
sebelumnya.
- userdraw() perintah untuk memanggil fungsi userdraw yang telah dibuat
yang hanya menjalankan rutin program tertentu saja yaitu mendefenisikan
objek yang dibuat.
- glutSwapBuffers() perintah untuk menukar bagian belakang buffer
menjadi buffer layar (screenbuffer).
- ; perintah untuk mengakhiri suatu baris perintah.

c. Program utama

- Int main (int argc, char *argv[]){} merupakan fungsi utama yang
mengeksekusi keseluruhan perintah perintah yang terdapat dalam program.
- glutInit(&argc, argv) perintah ini berguna untuk inisialisasi secara umum
terhadap nilai-nilai yang ada pada library GLUT.
- glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB) perintah ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa
menentukan apakah akan menggunakan windows buffer single atau
double.
- glutInitWindowPosition (100,100) perintah ini berfungsi untuk
menentukan letak window dengan patokkannya ialah pada window kiri
atas.
- glutInitWindowSize(640,480) perintah ini berfungsi untuk
menspesifikasikan ukuran window yang dibuat dalam pixel.
- glutCreateWindow("Percobaan 1") perintah ini berfungsi untuk memberi
Judul pada windows yaitu percobaan 1.
- glClearColor (0.0 , 0.0 , 0.0 , 0.0) perintah ini berfungsi untuk
mendefinisikan warna dari latar belakang display yang dibuat dengan
warna hitam yaitu (0,0,0).
- gluOrtho2D(-320 , 320 , -240 , 240) perintah ini berfungsi untuk
Mendefinisikan besarnya sistem koordinat dengan range sumbu x adalah
-320 sampai 320 dan range untuk sumbu y adalah -240 sampai 240.
- glutDisplayFunc(display) perintah ini berfungsi untuk display yg
menentukan konten dari windows yg telah di buat sebelumnya.
- glutMainLoop() peintah ini berfungsi untuk perulangan fungsi utama jadi
fungsi utama akan dipanggil terus selama aplikasi ditutup.
- Return 0 berfungsi untuk memberitahu cpu bahwa aplikasi berakhir secara
wajar.
- ; perintah yang berfungsi untuk mengakhiri suatu baris perintah.

Hasil praktikum I ;

Gambar 4.2 Hasil praktikum 1 output titik berwarna merah


2. Program output titik berwarna merah yang terletak secara random.
Berikut script dan penjelasannya :

Gambar 4.3 Script titik Warna-Warni

a. Memanggil Library

- Kode program di atas berfungsi untuk import library yang akan


digunakan yang diawali dengan menggunakan tanda pagar # disebut
sebagai Preprocessor Directive, Pada contoh di atas tertulis #include
<windows.h> yang berarti program tersebut akan menggunakan fitur
dari pustaka (Library) yang bernama windows.h.
- Bertujuan untuk memberitahu compiler bahwa file akan menggunakan
beberapa fitur dan fungsi yang ada pada pustaka yang disebutkan.
- #include<Windows.h> Mendefinisikan sebuah window berdasarkan
koordinat kiri atas dan kanan bawah.
- #include<GL/glut.h> Pemrograman grafis menggunakan OpenGL-
GLUT membutuhkan header glut.h yang ada di folder c:\Program
Files\Microsoft Visual Studio\VC98\bin\GL.

b. Prosedur untuk menampilkan objek

- Void userdraw(void){} suatu fungsi bervariabel userdraw untuk


membuat kode program untuk menghasilkan suatu gambar. Bertipe
void artinya tidak akan mengembalikan nilai apapun, hanya
menjalankan rutin program tertentu saja. Serta fungsi tersebut tidak
menggunakan parameter apapun (void).
- Float x,y dan int a,b,c; suatu perintah untuk menginisialisasi variabel x
y yang memiliki tipe data float mendukung bilangan koma, serta
variabel a,b,c yang mendukung tipe datang integer bilangan bulat.
- For (int i=0; i<1000; i++){} merupakan perintah untuk melakukan
pengulangan sebanyak yang diinginkan pada program, pengulangan
for terdiri dari 3 bagian, pertama inisialisasi variabel i dengan nilai 0
yang mendukung tipe data integer, kedua tahap kondisi yang harus
dipenuhi agar perulangan terjadi sebanyak 1000 kali, ketiga tahap
increment penaikan nilai 1 kali variabel jika telah memenuhi kondisi.
- X = 640 * (float)rand() / RAND_MAX - 320 dan Y= 480 *
(float)rand() / RAND_MAX - 240 merupakan perintah untuk
memberikan nilai secara random pada variabel x dan y, dimana x
memiliki nilai interval 640 terhitung dari -320 sampai 320 , sedangkan
y memiliki nilai interval 480 terhitung dari -240 sampai 240. Perintah
(float)rand() berfungsi mengeluarkan angka random antara 0-
RAND_MAX, sedangkan RAND_MAX merupakan konstanta dari
suatu angka akhir random yang bisa dikeluarkan dengan nilai 32767.
- glPointSize(5) merupakan perintah yang digunakan mengatur
ketebalan titik sebesar 5 kali ketebalan.
- p : adalah label yang digunakan menandakan suatu perintah yang
dibawahnya akan dieksekusi ulang oleh perintah goto.
- a = rand()%2 , b = rand()%2, c = rand()%2 adalah perintah untuk
memberi nilai pada variabel a,b,c berupa nilai angka random dengan
banyak angka sebesar 2 yaitu 0 dan 1.
- if(a==0&&b==0){ if(c==0){} } adalah perintah untuk mengecek
suatu kondisi jika syaratnya bernilai benar maka eksekusi akan
dilanjutkan dengan perintah berikut, pada syntak tersebut jika variabel
a,b,c bernilai sama dengan 0 maka akan mengeksekusi perintah goto
p;
- goto p adalah perintah untuk melompat ke baris yang miliki label
dengan nama p untuk dieksekusi ulang.
- glColor3f(a,b,c) merupakan perintah yang digunakan untuk
memberikan warna warni pada titik titiknya dengan menggunakan
satuan nilai float karena a,b,c telah merupakan nilai random.
- glBegin(GL_POINTS) merupakan perintah yang digunakan untuk
membuat titik-titik.
- glVertex2f(x,y) merupakan perintah untuk memetakan secara
koordinat xy dari titik yang dibuat, dimana xy merupakan angka acak
dengan menggunakan satuan nilai float.
- glEnd() merupakan perintah untuk mengakhiri glBegin pembuatan
objek titik.
- ; perintah untuk mengakhiri suatu baris perintah.
- Void display(void){} suatu fungsi bervariabel display untuk membuat
kode program untuk menghasilkan suatu gambar. Bertipe void artinya
tidak akan mengembalikan nilai apapun, hanya menjalankan rutin
program tertentu saja. Serta fungsi tersebut tidak menggunakan
parameter apapun (void).
- glClear(GL_COLOR_BUFFER_BIT) perintah berfungsi untuk
membersihkan laya dan memberi warna yang telah kita definisikan
sebelumnya.
- userdraw() perintah untuk memanggil fungsi userdraw yang telah
dibuat yang hanya menjalankan rutin program tertentu saja yaitu
mendefenisikan objek yang dibuat.
- glutSwapBuffers() perintah untuk menukar bagian belakang buffer
menjadi buffer layar (screenbuffer).
- ; perintah untuk mengakhiri suatu baris perintah.

c. Program utama

- Int main (int argc, char *argv[]){} merupakan fungsi utama yang
mengeksekusi keseluruhan perintah perintah yang terdapat dalam
program.
- glutInit(&argc, argv) perintah ini berguna untuk inisialisasi secara
umum terhadap nilai-nilai yang ada pada library GLUT.
- glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB) perintah ini
digunakan untuk menentukan apakah akan menggunakan model
pewarnaan RGBA atau indek warna. Dengan fungsi ini juga bisa
menentukan apakah akan menggunakan windows buffer single atau
double.
- glutInitWindowPosition (100,100) perintah ini berfungsi untuk
menentukan letak window dengan patokkannya ialah pada window
kiri atas.
- glutInitWindowSize(640,480) perintah ini berfungsi untuk
menspesifikasikan ukuran window yang dibuat dalam pixel.
- glutCreateWindow("Percobaan 1") perintah ini berfungsi untuk
memberi Judul pada windows yaitu percobaan 1.
- glClearColor (0.0 , 0.0 , 0.0 , 0.0) perintah ini berfungsi untuk
mendefinisikan warna dari latar belakang display yang dibuat dengan
warna hitam yaitu (0,0,0).
- gluOrtho2D(-320 , 320 , -240 , 240) perintah ini berfungsi untuk
Mendefinisikan besarnya sistem koordinat dengan range sumbu x
adalah -320 sampai 320 dan range untuk sumbu y adalah -240
sampai 240.
- glutDisplayFunc(display) perintah ini berfungsi untuk display yg
menentukan konten dari windows yg telah di buat sebelumnya.
- glutMainLoop() peintah ini berfungsi untuk perulangan fungsi utama
jadi fungsi utama akan dipanggil terus selama aplikasi ditutup.
- Return 0 berfungsi untuk memberitahu cpu bahwa aplikasi berakhir
secara wajar.
- ; perintah yang berfungsi untuk mengakhiri suatu baris perintah.

Hasil praktikum II :

Gambar 4.4 Hasil Praktikum II Output Titik Warna Warni


F. Kesimpulan
Mahasiswa telah mampu membuat objek titik sesuai dengan indikator
yang telah ditentukan oleh dosen.

Anda mungkin juga menyukai