Title | Laporan Tugas Besar GPC Membangun Aplikasi 3D OpenGL |
---|---|
Author | Muhamad Ibrahim |
Pages | 22 |
File Size | 266.3 KB |
File Type | |
Total Downloads | 274 |
Total Views | 422 |
MEMBANGUN APLIKASI ANIMASI 3D PEMBUANGAN SAMPAH ORGANIK DAN NON-ORGANIK Dikerjakan untuk memenuhi Tugas Besar Mata Kuliah Grafika dan Pengolahan Citra Dosen : Rangga Gelar Guntara, S.Kom., M.Kom Dikerjakan Oleh : Egy Dzulfahmi (10111502) Arif Rachman (10111486) M. Ibrahim (10111129) Lugy Septian C (...
MEMBANGUN APLIKASI ANIMASI 3D PEMBUANGAN SAMPAH ORGANIK DAN NON-ORGANIK
Dikerjakan untuk memenuhi Tugas Besar Mata Kuliah Grafika dan Pengolahan Citra Dosen : Rangga Gelar Guntara, S.Kom., M.Kom
Dikerjakan Oleh :
Egy Dzulfahmi
(10111502)
Arif Rachman
(10111486)
M. Ibrahim
(10111129)
Lugy Septian C
(10111235)
Riekal Fahmi
(10110482)
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK DAN ILMU KOMPUTER UNIVERSITAS KOMPUTER INDONESIA 2015
DAFTAR ISI
DAFTAR ISI .......................................................................................................................... i BAB 1 PENDAHULUAN ..................................................................................................... 1 1.1
Latar Belakang ................................................................................................... 1
1.2
Rumusan Masalah............................................................................................. 1
1.3
Maksud dan Tujuan .......................................................................................... 1
1.4
Batasan Masalah ............................................................................................... 2
BAB 2 LANDASAN TEORI ................................................................................................. 3 2.1
Grafika Komputer.............................................................................................. 3
2.2
OpenGL .............................................................................................................. 3
2.3
Objek 3D ............................................................................................................ 4
2.4
Objek Primitif 3D .............................................................................................. 5
2.5
Transformasi Objek 3D .................................................................................... 6
2.5.1
Translasi (Perpindahan) ............................................................................ 6
2.5.2
Rotasi (Perputaran) ................................................................................... 7
2.5.3
Skalasi (Penskalaan) .................................................................................. 7
BAB 3 ANALISIS DAN IMPLEMENTASI ........................................................................... 9 3.1
Taman................................................................................................................. 9
3.1.1
Matahari ..................................................................................................... 9
3.1.2
Pohon ......................................................................................................... 9
3.1.3
Lampu Taman.......................................................................................... 10
3.1.4
Kursi .......................................................................................................... 10
3.1.5
Jalan Taman dan Lantai Dasar............................................................... 10
3.2
Sungai atau Selokan ....................................................................................... 11
3.3
Orang Buang Sampah Organik ..................................................................... 11
3.4
Orang Buang Sampah Non-Organik............................................................ 12
3.5
Orang Buang Sampah ke Sungai .................................................................. 13
3.6
Tong Sampah .................................................................................................. 14
3.7
Sampah Berserakan di Sungai atau Selokan ............................................... 14
i
3.8
Tiang Tempat Logo Persib............................................................................. 15
3.9
Logo Persib ...................................................................................................... 15
3.10
Implementasi ................................................................................................... 17
BAB 4 KESIMPULAN DAN SARAN ................................................................................ 19 4.1
Kesimpulan ...................................................................................................... 19
4.2
Saran................................................................................................................. 19
ii
BAB 1 PENDAHULUAN
1.1
Latar Belakang Sampah merupakan material sisa yang tidak diinginkan setelah berakhirnya suatu
proses. Saat ini di kota Bandung sedang gencar membuat program yang berhubungan dengan sampah, seperti GPS (Gerakan Pungut Sampah), harus menyediakan tempat sampah di dalam mobil, hingga denda bagi yang membuang sampah sembarangan. Sudah diketahui bersama bahwa dampak yang bisa terjadi apabila membuang sampah sembarangan, terutama membuang ke sungai atau selokan, aliran air menjadi terhambat, sehingga berpotensi menyebabkan banjir. Sampah sendiri memiliki 2 jenis yaitu Organik dan Non Organik. Sampah organik adalah sampah yang mudah membusuk seperti sisa makanan, sayuran, daun-daun kering, dan sebagainya. Sampah ini dapat diolah lebih lanjut menjadi kompos. Sampah Non Organik adalah sampah yang tidak mudah membusuk, seperti plastik wadah pembungkus makanan, kertas, plastik mainan, botol dan gelas minuman, kaleng, kayu, dan sebagainya. Maka perlunya untuk memiliah-milah dalam pembuangan sampah tersebut. Maka daripada itu perlu rasanya dibangun sebuah aplikasi informasi pembuangan sampah berdasarkan jenisnya beserta dampak yang terjadi apabila membuang sampah sembarangan, agar warga mendapatkan pengetahuan untuk membedakan antara sampah organik dan non-organik serta bisa sadar akan akibat membuang sampah sembarangan. 1.2
Rumusan Masalah Aplikasi apa yang perlu dibuat untuk memberikan informasi pembuangan sampah
organik dan non organik sebagai media untuk membantu mensosialisasikan gerakan pungut sampah (GPS)? 1.3
Maksud dan Tujuan Maksud dari pembuatan tugas besar ini adalah Membangun Aplikasi 3D Informasi
Pembuangan Sampah Organik dan Non-Organik.
1
Tujuan dari tugas besar ini adalah : -
Memberikan informasi mengenai perbedaan sampah organik dan nonorganik
1.4
-
Mensimulasikan pembuangan sampah pada tempat sesuai dengan jenisnya.
-
Menampilkan dampak akibat membuang sampah sembarangan
Batasan Masalah Berikut ini dijelaskan batasan masalah dari pembuatan aplikasi informasi
pembuangan sampah organik dan non-organik 1.
Aplikasi dibangun menggunakan bahasa pemrograman C dengan tool Dev C++ 4.9.9.4 dan library OpenGL GLUT.
2.
Objek yang terdapat dalam aplikasi antara lain : a.
Lokasi berada di taman
b.
2 orang membuang sampah organik dan non organik dan 1 orang yang membuang sampah
c.
Tempat sampah organik dan non organik
d.
Sungai/selokan
e.
Sampah yang berserakan di sungai/selokan
f.
Lampu Taman
g.
Matahari
h.
Kursi
i.
Tiang untuk logo Persib
j.
Logo Persib
2
2
BAB 2
LANDASAN TEORI
2.1
Grafika Komputer Menurut Suyoto
(2003), grafika komputer (Computer Graphic) dapat diartikan
sebagai seperangkat alat yang terdiri dari hardware dan software untuk membuat gambar, grafik atau citra realistik untuk seni, game komputer, foto dan film animasi. Sistem grafika komputer dapat dijalankan dengan komputer pribadi (Personal Computer) atau
workstation. Grafika komputer semakin lama semakin pesat perkembangannya
sehingga definisi dari grafika komputer dapat diartikan sebagai suatu studi tantang bagaimana menggambar (membuta grafik) dengan menggunakan komputer dan manipulasinya (merubah sedikit/transformasi/ animasi). Pengertian grafik berbeda dengan image/citra, image adalah gambar yang diperoleh dengan alat pengambil gambar, sperti kamera, scanner, dll. Sedangkan grafik adalah gambar yang dibuat dengan cara tertentu, yaitu cara yang ada di grafik komputer. Grafik dan image termasuk picture/gambar. 2.2
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 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. OpenGL adalah suatu spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan
3
untuk keperluan-keperluan pemrograman grafis. OpenGL bersifat Open-Source, multiplatform 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 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).
2.3
Objek 3D Grafik komputer 3 dimensi biasa disebut 3D atau adalah bentuk dari benda yang
memiliki panjang, lebadan tinggi. Grafik 3 Dimensi merupakan teknik penggambaran yg berpatokan pada titik koordinat 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 secaraumum 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. Grafik 3D merupakan perkembangan dari grafik 2D. Didalam grafika komputer, 3D merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi. Perbedaan paling utama dari objek 2 dimensi dan objek 3 dimensi yaitu kedalamannya. Yaitu suatu jarak antara pengamat dengan suatu objek yang dilihat (point of view). Jadi, jika objek 2 dimensi hanya menggunakan 2 ukuran (panjang dan lebar), maka 3 dimensi menggunakan 3 ukuran meliputi panjang, lebar, kedalaman yang disimbolkan dengan sumbu x, y, z.
4
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. 2.4
Objek Primitif 3D Ada beberapa bentuk primitive dari objek 3 dimensi. Promitive yaitu bentuk dasar
yang dapat dengan mudah didefinisikan secara matematik.
Sphere : glutWireSphere(5, 20, 20);
Cube : glutWireSphere(25);
Cone : glutWireSphere(alas, tinggi, 20, 20);
Dodecahedron : glutWireDodecahedron();
Teapot : glutWireTeapot(15);
5
2.5
Torus : glutWireTorus(luar, dalam, 20, 20);
Transformasi Objek 3D Ada beberapa transformasi objek 3D, yaitu akan dijelaskan di bawah ini.
2.5.1
Translasi (Perpindahan) Dalam tranformasi objek tiga dimensi, translasi adalah pemindahan suatu titik
dari titik P=(x,y,z) ke posisi P=(x’,y’,z’) (Hearn, 1994) dengan menggunakan operasi matriks:
Parameter tx, ty, dan tz menjelaskan perpindahan jarak untuk koordinat x, y, dan z.
Sebuah bangun tiga dimensi yang ditranslasikan dengan vektor tertentu, dilakukan dengan memindahkan titik-titik sesuai dengan vektor tersebut.
6
2.5.2
Rotasi (Perputaran) Untuk merotasikan sebuah objek diperlukan sumbu rotasi (poros untuk
merotasikan objek) (Donald Hearn, 1994). Sintaks untuk merotasikan objek pada OpenGL adalah glRotate(sudut, x, y, z). Parameter pertama adalah nilai perputaran sudut. Parameter kedua , ketiga, dan keempat bernilai 1 apabila sumbunya dijadikan sumbu putar. Contoh perotasian objek ditunjukkan pada gambar di bawah ini.
Kode program : quadratic:=glunewquadric(); glucylinder(quadratic,0.25,0.25,1,32,32); gltranslatef(1,0,1); glrotatef(-90,1,0,0); glucylinder(quadratic,0.25,0.25,1,32,32); Pada contoh diatas, diketahui bahwa posisi awal tabung sejajar dengan sumbu z. Namun, setelah dirotasi sebesar - putar x, posisi tabung sejajar dengan sumbu y. Itu menunjukkan bahwa perotasian objek dengan sudut putar positif akan berputar berlawanan dengan arah jarum jam, begitu pula sebaliknya, jika sudut putar bernilai negatif, maka objek akan berputar searah dengan jarum jam. 2.5.3
Skalasi (Penskalaan) Transformasi skala adalah perubahan ukuran suatu objek (Sutopo, 2002). Sintaks
untuk untuk melakukan proses penskalaan dalam OpenGL adalah glScalef(x,y,z:glFloat)
7
Parameter pertama, kedua, dan ketiga masing-masing menunjukkan nilai skala dari ukuran objek. Apabila parameter tersebut bernilai 1, maka berarti ukuran objek tersebut tetap. Contoh penskalaan ditunjukkan oleh gambar di bawah ini
8
3
BAB 3
ANALISIS DAN IMPLEMENTASI
Bab analisis berisi tentang penjelasan penggunaan fungsi OpenGL untuk membentuk objek-objek yang ada pada Aplikasi. 3.1
Taman
Berikut ini ada beberapa objek-objek pembentuk taman, akan dijelaskan di bawah ini. 3.1.1
Matahari Berikut ini adalah objek-objek yang membangun Matahari:
No
Objek Pembentuk
Keterangan
1
Matahari
Menggunakan glutSolidSphere yang berfungsi untuk membentuk pola lingkaran dan glColor3f untuk memberi warna
3.1.2
Pohon Berikut ini adalah objek-objek yang membangun Pohon:
No
Objek Pembentuk
Keterangan
1
Tangkai
Menggunakan glutSolidCube untuk mengatur ketebalan tangkai dan glTranslatef untuk mengatur posisi tangkai
2
Daun
Menggunakan glutSolidCone untuk membentuk kerucut dan di atur glTranslatef hingga pada posisi yg di inginkan
9
3.1.3
Lampu Taman Berikut ini adalah objek-objek yang membangun Lampu Taman:
No
Objek Pembentuk
Keterangan
1
Bola Lampu
Menggunakan glutSolidSphere sehingga membentuk pola lingkaran dan glTranslatef untuk mengatur posisi bola lampu
2
Tiang Lampu
Menggunakan glutSolidCube dan atur ketebalan nya dan glTranslatef untuk mengatur posisinya
3.1.4
Kursi Berikut ini adalah objek-objek yang membangun Kursi:
No
Objek Pembentuk
Keterangan
1
Kursi
Menggunakan glutSolidCube untuk mengatur ketebalan dan glTranslatef untuk mengatur posisi
3.1.5
Jalan Taman dan Lantai Dasar Berikut ini adalah objek-objek yang membangun Jalan Taman dan Lantai Dasar:
No
Objek Pembentuk
Keterangan
1
Jalan
Menggunakan GL_QUADS dan atur glVertex3f dan gunakan glColor3f untuk mengatur warna
10
3.2
Sungai atau Selokan Berikut ini adalah objek-objek yang membangun Selokan:
No
Objek Pembentuk
Keterangan
1
Pembatas Sungai
Menggunakan glutSolidCube lalu di glScale dan glTranslate untuk merubah posisi agar pas dengan pinggiran sungai
2
Sungai
Menggunakan glutSolidCube lalu di glScale dan glTranslate untuk merubah posisi agar pas dengan selasela jalan yang ada
3.3
Orang Buang Sampah Organik Berikut ini adalah objek-objek yang membangun Orang Buang Sampah Organik :
No
Objek Pembentuk
Keterangan
1
Kepala
Menggunakan glutSolidSphere
2
Badan
glutSolidCube di-glScale-kan sehingga membentuk balok, lalu ditumpuk dengan glutSolidSphere.
3
Rambut
glutSolidSphere dan di glTranslate sehingga pas dengan posisi kepala
4
Mata
Mata kiri dan kanan menggunakan glutSolidSphere
5
Leher
Menggunakan glutSolidCube
6
Mulut
Menggunakan glutSolidSphere lalu di-glScale dan glRotate
7
Tangan Kiri
Untuk tangan glutSolidCone, glutSolidCube dan untuk telapak tangan menggunakan glutSolidSphere
8
Tangan Kanan
Sama seperti tangan kiri, namun dilakukan glRotate supaya membentuk tangan yang sedang membuang sampah
11
9
Kaki
Kedua kaki menggunakan glutSolidCube lalu di-glScale supaya membentuk kaki
10
Telapak Kaki
Sama dengan kaki, menggunakan glutSolidCube hanya perbedaannya glScalenya.
11
Sampah Donat
Menggunakan glutSolidTorus
3.4
Orang Buang Sampah Non-Organik Berikut ini adalah objek-objek yang membangun Orang Buang Sampah NonOrganik :
No
Objek Pembentuk
Keterangan
1
Kepala
Menggunakan glutSolidSphere
2
Badan
glutSolidCube di-glScale-kan sehingga membentuk balok, lalu ditumpuk dengan glutSolidSphere.
3
Topi
glutWireTorus dilakukan ...