Kamis, 22 Oktober 2015

Grafik Komputer dan Pengolahan Citra

Penjelasan Mengenai Garis Horizontal, Vertikal, dan Diagonal Pada OpenGL dalam Java

VERTIKAL


Import org.lwjgl.LWJGLException; sebagai pengambilan library org.lwjgl.LWJGLException pada java.
Import org.lwjgl.opengl.*; sebagai pengambilan library org.lwjgl.opengl.* pada java.
Import java.util.*; sebagai pengambilan library java.util.* pada java.
Public class Vertikal { untuk pembuatan public class bernama Vertikal
Public void layar () throws LWJGLException { untuk pembuatan prosedur layar dengan menggunakan LWJGLException
Int a, kordin1, kordin2; untuk pendeklarasian variabel a, kordin1, kordin2 dengan menggunakan integer
Scanner putin = new Scanner(System.in); proses penginputan dengan nama “putin” sebagai penginputan sistem
System.out.print(“Masukan titik awal (x) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (x) : “
Kordin1 = putin.nextInt(); untuk proses menginput kedalam variabel kordin1
System.out.print(“Masukan titik awal (y) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (y) : “
Kordin2 = putin.nextInt();untuk proses menginput kedalam variabel kordin2
System.out.print(“Masukan Panjang garis yang diinginkan (dalam Pixel) : “); untuk menampilkan isi komentar yaitu “Masukan Panjang garis yang diinginkan (dalam Pixel) : “
a = putin.nextInt();untuk proses menginput kedalam variabel a

try { untuk penamaan prosedur yaitu “try”
Display.setDisplayMode(new DisplayMode (300,300)); untuk mengatur layar output dengan berukuran 300,300
Display.setTitle(“Garis Vertikal”); untuk membuat title judul bernama “Garis Vertikal”
Display.create(); untuk menampilkan layar output
} catch(LWJGLException e) {  untuk mengambil LWJGLException
System.exit(0); } berfungsi untuk mengeluarkan sistem atau menutup sistem
GL11.glMatrixMode(GL11.GL_PROJECTION); untuk menampilkan Matriks Mode dengan Project
GL11.glLoadIdentity(); untuk meload identitas pada GL11.
GL11.glOrtho(0, 800, 0, 600, 1, -1);

GL.glMatrixMode(GL11.GL_MODELVIEW); untuk menampilkan Matriks Mode dengan modelview
While (!Display.isCloseRequested()) { melakukan proses perulangan hingga program diakhiri
GL11.glBegin(GL11.GL_QUADS); untuk memulai proses pemanggilan opengl
GL11.glVertex2f(kordin1,kordin2); membuat titik garis dengan koordinat variabel (kordin1,kordin2)
GL11.glVertex2f(kordin1+5,kordin2); membuat titik garis dengan koordinat variabel (kordin1+5,kordin2)
GL11.glVertex2f(kordin1+5,kordin2+a); membuat titik garis dengan koordinat variabel (kordin1+5,kordin2+a)
GL11.glVertex2f(kordin1,kordin2+a); membuat titik garis dengan koordinat variabel (kordin1,kordin2+a)
GL11.glEnd(); mengakhiri proses pemanggilan opengl
Display.update(); untuk menampilkan program yang sudah diperbaharui

LINE MAKER

Import org.lwjgl.opengl.*; sebagai pengambilan library org.lwjgl.opengl.* pada java.
Import org.lwjgl.LWJGLException; sebagai pengambilan library org.lwjgl.LWJGLException pada java.
Public class LineMaker { untuk pembuatan public class bernama LineMaker
Public static void main () throws LWJGLException { untuk pembuatan prosedur main dengan menggunakan LWJGLException
Int pil; untuk pendeklarasian variabel pil menggunakan integer
Scanner input = new Scanner(System.in); proses pemasukkan input dengan Scanner sistem
System.out.println(“=======Aplikasi Pembuat Garis=======”); untuk menampilkan isi komentar dalam tanda petik dua “=======Aplikasi Pembuat Garis=======”
System.out.println(“1. Membuat Garis Vertical”); untuk menampilkan isi komentar dalam tanda petik dua “1. Membuat Garis Vertical”
System.out.println(“2. Membuat Garis Horizontal”); untuk menampilkan isi komentar dalam tanda petik dua “2. Membuat Garis Horizontal”
System.out.println(“3. Membuat Garis Diagonal”); untuk menampilkan isi komentar dalam tanda petik dua “3. Membuat Garis Diagonal”
System.out.println(“Silahkan masukan Pilihan yang diinginkan : ”); untuk menampilkan isi komentar dalam tanda petik dua “Silahkan masukan Pilihan yang diinginkan : ”
pil = input.nextInt(); proses pemasukkan input kedalam variabel pil
switch(pil){ membuat pilihan dengan menggunakan variabel pil
case 1: jika pilihan pada input adalah 1 maka akan melakukan proses berikut
Vertikal vet = new Vertikal(); pemanggilan fungsi Vertikal dengan menamakan kedalam variabel vet
vet.layar(); untuk menampilkan fungsi dalam vet dan menggunakan main layar
break; proses pemberhentian sejenak
case 2: jika pilihan pada input adalah 2 maka akan melakukan proses berikut
Horizontal hoz = new Horizontal(); pemanggilan fungsi Horizontal dengan menamakan kedalam variabel hoz
hoz.layar(); untuk menampilkan fungsi dalam hoz dan menggunakan main layar
break; proses pemberhentian sejenak
case 3: jika pilihan pada input adalah 3 maka akan melakukan proses berikut
Diagonal dig = new Diagona;(); pemanggilan fungsi Diagonal dengan menamakan kedalam variabel dig
dig.layar();untuk menampilkan fungsi dalam dig dan menggunakan main layar
break; proses pemberhentian sejenak
default: untuk pilihan diantara ketiganya
System.out.println(“Pilihan yang anda pilih salah!!”); untuk menampilkan isi komentar dalam tanda petik dua “Pilihan yang anda pilih salah!!”

HORIZONTAL


Import org.lwjgl.LWJGLException; sebagai pengambilan library org.lwjgl.LWJGLException pada java.
Import org.lwjgl.opengl.*; sebagai pengambilan library org.lwjgl.opengl.* pada java.
Import java.util.*; sebagai pengambilan library java.util.* pada java.
Public class Horizontal { untuk pembuatan public class bernama Vertikal
Public void layar () throws LWJGLException { untuk pembuatan prosedur layar dengan menggunakan LWJGLException
Int a, kordin1, kordin2; untuk pendeklarasian variabel a, kordin1, kordin2 dengan menggunakan integer
Scanner putin = new Scanner(System.in); proses penginputan dengan nama “putin” sebagai penginputan sistem
System.out.print(“Masukan titik awal (x) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (x) : “
Kordin1 = putin.nextInt(); untuk proses menginput kedalam variabel kordin1
System.out.print(“Masukan titik awal (y) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (y) : “
Kordin2 = putin.nextInt();untuk proses menginput kedalam variabel kordin2
System.out.print(“Masukan Panjang garis yang diinginkan (dalam Pixel) : “); untuk menampilkan isi komentar yaitu “Masukan Panjang garis yang diinginkan (dalam Pixel) : “
a = putin.nextInt();untuk proses menginput kedalam variabel a

try { untuk penamaan prosedur yaitu “try”
Display.setDisplayMode(new DisplayMode (300,300)); untuk mengatur layar output dengan berukuran 300,300
Display.setTitle(“Garis Horizontal”); untuk membuat title judul bernama “Garis Horizontal”
Display.create(); untuk menampilkan layar output
} catch(LWJGLException e) {  untuk mengambil LWJGLException
System.exit(0); } berfungsi untuk mengeluarkan sistem atau menutup sistem
GL11.glMatrixMode(GL11.GL_PROJECTION); untuk menampilkan Matriks Mode dengan Project
GL11.glLoadIdentity(); untuk meload identitas pada GL11.


GL.glMatrixMode(GL11.GL_MODELVIEW); untuk menampilkan Matriks Mode dengan modelview
While (!Display.isCloseRequested()) { melakukan proses perulangan hingga program diakhiri
GL11.glBegin(GL11.GL_QUADS); untuk memulai proses pemanggilan opengl
GL11.glVertex2f(kordin1,kordin2); membuat titik garis dengan koordinat variabel (kordin1,kordin2)
GL11.glVertex2f(kordin1,kordin2+5); membuat titik garis dengan koordinat variabel (kordin1,kordin2 ditambah 5)
GL11.glVertex2f(kordin1+a,kordin2+5); membuat titik garis dengan koordinat variabel (kordin1 ditambah nilai variabel a,kordin2 ditambah 5)
GL11.glVertex2f(kordin1+a,kordin2); membuat titik garis dengan koordinat variabel (kordin1 ditambah nilai variabel a,kordin2)
GL11.glEnd(); mengakhiri proses pemanggilan opengl
Display.update(); untuk menampilkan program yang sudah diperbaharui

DIAGONAL


Import org.lwjgl.LWJGLException; sebagai pengambilan library org.lwjgl.LWJGLException pada java.
Import org.lwjgl.opengl.*; sebagai pengambilan library org.lwjgl.opengl.* pada java.
Import java.util.*; sebagai pengambilan library java.util.* pada java.
Public class Diagonal { untuk pembuatan public class bernama Diagonal
Public void layar () throws LWJGLException { untuk pembuatan prosedur layar dengan menggunakan LWJGLException
Int a, kordin1, kordin2; untuk pendeklarasian variabel a, kordin1, kordin2 dengan menggunakan integer
Scanner putin = new Scanner(System.in); proses penginputan dengan nama “putin” sebagai penginputan sistem
System.out.print(“Masukan titik awal (x) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (x) : “
Kordin1 = putin.nextInt(); untuk proses menginput kedalam variabel kordin1
System.out.print(“Masukan titik awal (y) : “); untuk menampilkan isi komentar yaitu “Masukkan titik awal (y) : “
Kordin2 = putin.nextInt();untuk proses menginput kedalam variabel kordin2
System.out.print(“Masukan Panjang garis yang diinginkan (dalam Pixel) : “); untuk menampilkan isi komentar yaitu “Masukan Panjang garis yang diinginkan (dalam Pixel) : “
a = putin.nextInt();untuk proses menginput kedalam variabel a

try { untuk penamaan prosedur yaitu “try”
Display.setDisplayMode(new DisplayMode (300,300)); untuk mengatur layar output dengan berukuran 300,300
Display.setTitle(“Garis Horizontal”); untuk membuat title judul bernama “Garis Horizontal”
Display.create(); untuk menampilkan layar output
} catch(LWJGLException e) {  untuk mengambil LWJGLException
System.exit(0); } berfungsi untuk mengeluarkan sistem atau menutup sistem
GL11.glMatrixMode(GL11.GL_PROJECTION); untuk menampilkan Matriks Mode dengan Project
GL11.glLoadIdentity(); untuk meload identitas pada GL11.
GL11.glOrtho(0, 800, 0, 600, 1, -1);

GL.glMatrixMode(GL11.GL_MODELVIEW); untuk menampilkan Matriks Mode dengan modelview
While (!Display.isCloseRequested()) { melakukan proses perulangan hingga program diakhiri
GL11.glBegin(GL11.GL_QUADS); untuk memulai proses pemanggilan opengl
GL11.glVertex2f(kordin1,kordin2); membuat titik garis dengan koordinat variabel (kordin1,kordin2)
GL11.glVertex2f(kordin1-5,kordin2); membuat titik garis dengan koordinat variabel (kordin1 dikurang 5,kordin2)
GL11.glVertex2f(kordin1+a-5,kordin2+a); membuat titik garis dengan koordinat variabel (kordin1 ditambah nilai variabel a kemudian dikurang 5,kordin2 ditambah nilai variabel a)
GL11.glVertex2f(kordin1+a,kordin2+a); membuat titik garis dengan koordinat variabel (kordin1 ditambah nilai variabel a,kordin2 ditambah nilai variabel a)
GL11.glEnd(); mengakhiri proses pemanggilan opengl
Display.update(); untuk menampilkan program yang sudah diperbaharui


Untuk menjalankan program, compile file tersebut lalu jalankan. Akan muncul seperti gambar dibawah ini.

Menu pilihan yang pertama adalah garis vertical, kedua garis adalah horizontal, dan ketiga adalah garis diagonal. Jika pilih 2 dengan titik awal x = 100 dan y = 110. Untuk panjang garis dalam pixel kita gunakan 400. Maka akan muncul seperti gambar dibawah ini.

Kemudian jika kita pilih pilihan nomer 1 dengan nilai x = 100, dan y = 110. Untuk panjang garis dalam pixel kita gunakan 400 maka akan muncul seperti gambar dibawah ini.

Dan jika kita memilih pilihan nomer 3 dengan nilai x = 100 dan y = 110. Untuk panjang garis dalam pixel kita gunakan 400 maka akan muncul seperti gambar berikut.







Minggu, 18 Oktober 2015

Grafik Komputer dan Penggolahan Citra

Penjelasan mengenai garis horizontal, vertikal, dan diagonal pada OpenGL dalam Dev C++

Dalam OpenGL  pada dev c++ saya akan menjelaskan program inputan dalam membuat garis vertical, horizontal, serta diagonal. Untuk itu sebelum membuat program garis pada openGL terlebih dahulu menginstal glut.h pada library dev c++. versi  dari glut.h tersebut adalah glut-3.7.6 . berikut ini saya akan menjelaskan langkah-langkah  pada dev c++ :

Pilih Menu Tools > Package Manager.

Kemudian pilih install pada dev c++.

Pilih file glut-3.7.6.bin untuk melakukan penginstalan pada dev c++

selanjutnya Pilih  Install untuk pemasangan dev c ++ package.

penginstallan package pada dev c++ selesai kemudian pilih finish untuk melanjutkan proses selanjutnya.

Selanjutnya dalam pembuatan program openGL kita dapat menjalankan sebuah project dalam dev c++  dengan langkah berikut.


Dalam pembuatan garis pada dev c++ dapat menggunakan File Header :
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/gl.h>
#include <stdlib.h>
#include <cstdlib>
#include <windows.h>
#include <iostream>

perintah diatas ini untuk memanggil semua file Header yang telah  dibutuhkan dalam pembuatan program garis pada dev c++, kemudian iostream ini  sebagai input dan output sedangkan glu,glut,gl berguna agar program dapat menggunakan statement-statement OpenGL.
kita dapat menulis programnya sebagai berikut :

penjelasan pada program garis sumbu:
  1. glClear (GL_COLOR_BUFFER_BIT);  Digunakan untuk membersihkan layar latar belakang dengan warna hitam.
  2. glPushMatrix (); Digunakan untuk membuat baris kode menjadi tidak berlaku untuk bagian luar.
  3. glColor3f (1.0,1.0,1.0); Digunakan untuk menentukan warna garis/titik.
  4. glBegin (GL_LINES); Digunakan untuk menggambar garis dari titik.
  5. glVertex3f (x+0.5,a+0.5,0.0); Digunakan untuk menentukan titik awal pada garis a.
  6. glVertex3f (x+0.5,b+0.5,0.0); Digunakan untuk menentukan titik awal pada garis b.
  7. glEnd (); Digunakan untuk mengakhiri suatu gambar garis dititik akhir.
  8. glPopMatrix (); Digunakan untuk membuat baris kode menjadi tidak berlaku untuk bagian luar.
penjelasan pada menu program garis:
menu:
int a;
cout<<"MENU \n"; (mencetak MENU yang ada dalam komentar (“))
cout<<"1. Garis Vertikal \n"; (untuk mencetak 1.Garis Vertikal)
cout<<"2. Garis Horizontal \n"; (untuk mencetak 2.Garis Horizontal)
cout<<"3. Garis Diagonal \n"; (untuk mencetak 3.Garis Diagonal)
cout<<"4. Exit \n"; (untuk mencetak 4. Exit)
cout<<"Masukkan Pilihan Anda : "; cin>>a; (untuk mencetak masukkan pilihan anda : pada inputan dalam variabel a)
cout<<"\n"; (untuk mencetak enter)
glutInit(&iArgc, cppArgv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); (untuk penampilan layar single dan warna dasar)
glutInitWindowSize(500, 500); (untuk mengatur ukuran layar yang akan ditampilkan dalam ukuran 500x500)
glutInitWindowPosition(400, 200); (untuk mengatur layar tampilan dalam posisi 400,200)
glutCreateWindow("OpenGL with C++"); (untuk membuat layar output dengan keterangan padaOpenGL with C++)
Initialize(); (untuk pemanggilan fungsi Initialize)

switch(a)
{
                case 1: (untuk memanggil piliha case 1)
                glutDisplayFunc(vertikal); (untuk menampilkan/memanggil fungsi dalam vertikal)
    glutMainLoop(); (untuk melakukan perulangan)
                return 0;
                case 2: (untuk memanggil pilihan case 2)
                glutDisplayFunc(horizontal); (untuk menampilkan fungsi dalam bentuk horizontal)
                glutMainLoop(); (untuk melakukan perulangan pada case 2)
    return 0;
                case 3:  (untuk memanggil pilihan case 3)
                glutDisplayFunc(diagonal); (untuk menampilkan fungsi dalam bentuk horizontal)
                glutMainLoop(); (untuk melakukan perulangan pada case 3)
                return 0;
                case 4:  (untuk memanggil pilihan case 4)
                break; 
                return 0;
                                                               
                default:
                cout<<"Pilihan Anda Salah"; goto menu;} (untuk menampilkan pada komentar "Pilihan     Anda Salah" jika pilihan tersebut  tidak ada pada program maka ia akan kembali ke menu) 

Kemudian compile project tersebut, Dengan pilihan compile atau dengan f9 . kemudian akan muncul outputan dibawah ini:
Jika kita menginput dengan angka 1, akan masuk kedalam pilihan vertikal. karena dalam vertikal maka  nilai X awal =  0, nilai  X akhir = 2, dan nilai Y tetap = 0. Lalu akan muncul hasil outputan .

kemudian hasil outputan pada program pilihan 1 adalah vertikal.

Jika kita menginput dengan angka 2, akan masuk kedalam pilihan horizontal. karena dalam horizontal X awalnya tetap dan Y tetapnya tidak bernilai, maka kita dapat menginput dalam pilihan X akhir. X akhir harus lebih besar dari X awal. seperti gambar berikut. 
kemudian hasil outputan pada program pilihan 2 adalah horizontal.


Jika kita menginput dengan angka 3, akan masuk kedalam pilihan diagonal. karena dalam diagonal X0 dan Y0 harus sama. XI dan Y1 harus bernilai sama. Dengan ketentuan XI dan Y1 lebih besar dengan X0 dan Y0. seperti gambar berikut. 
kemudian hasil outputan pada program pilihan  adalah diagonal.


Dan jika kita salah input dalam pilihan menu (misalkan inputan adalah 5) maka akan muncul seperti berikut.