Laporan Praktikum Helmi Ti Sore c

37
LAPORAN PRAKTIKUM KOMPUTER GRAFIK Nama Praktikan Nomor Mahasiswa Tanggal Pengumpulan Tanda tangan Praktikan Juherdi Helmi 1214370260 Nama Penilai Tanggal Koreksi Nilai Tanda Tangan Dosen Indri Sulistianingsih,S. Kom UNIVERSITAS PEMBANGUNAN PANCA BUDI I Kelas TI 4 Sore C

Transcript of Laporan Praktikum Helmi Ti Sore c

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