Monday, October 26, 2015



Java OpenGL – JOGL

OpenGL(Open Graphic Library) adalah sebuah library terdiri dari berbagai macam fungsi dan biasanya digunakan untuk menggambar sebuah objek 2D ata 3D.

Membuat garis dengan menggunakan JOGL
Pada kesempatan kali ini saya akan membuat aplikasi untuk membuat garis dengan menggunakan bahasa Java dengan menggabungkan library pada OpenGL
Aplikasi yang digunakan untuk Java adalah Netbeans dan Library LWJGL :
1.      Java Development Kit
JDK adalah kumpulan Library dan Compiler yang digunakan dalam mengeksekusi program Java.
Pilih JDK sesuai dengan System OS Anda, kemudian download dan Install.
2.      Java IDE - Netbeans
Netbeans adalah sebuah aplikasi Integrated Development Environment (IDE) yang berbasiskan Java dari Sun Microsystems yang berjalan di atas swing. Swing merupakan sebuah teknologi Java untuk pengembangan aplikasi dekstop yang dapat berjalan pada berbagai macam platform seperti windows, linux, Mac OS X dan Solaris.
3.      Library LWJGL
Library Java yang digunakan untuk membaca Library OpenGL
Library yang dibbutuhkan adalah
-          lwjgl-2.9.1.zip
-          lwjgl-source-2.9.1.zip

Menginstall LWJGL pada Netbeans
1.        Buatlah Folder untuk menyimpan file LWJGL (Ex : C:\LWJGL\)
      

2.        Extract File lwjgl-2.9.1.zip dan lwjgl-source-2.9.1.zip ke dalam Folder LWJGL yang telah dibuat

3.        Buka Aplikasi Netbeans lalu ke Menu Tools > Libraries 

4.        Pada Tab yang tersedia click New Library > buat Nama Library LWJGL dan click OK

5.        Click Add Jar/Folder, lalu masuk ke penyimpanan LWJGL sebelumnya lalu
LWJGL > lwjgl-2.9.1 > jar Add File berikut
-          jinput.jar
-          lwjgl.jar
-          lwjgl_util.jar
Selanjutnya Add File yang terdapat di LWJGL > src
-          generated
-          java

6.        Buat Project baru pada Netbeans dengan Menu File > New Project > Java > Java Aplication

7.        Pada Project Manager, double click nama Project dan buka Tab Libraries > Add Library lalu masukan Library LWJGL yang tadi telah dibuat

8.        Pada Project Manager > Project > Properties > Run > VM Option masukan Syntaxs
-Djava.library.path=C:\LWJGL\lwjgl-2.9.1\native\windows

Program Netbeans sudah dapat di gunakan untuk membuat garis
Untuk membuat garis saya membuat dalam 4 file yang terpisah dalam sebuah Project, File itu terdiri dari
1.      Source Code Menu
Berisi codingan interface dengan user yang berisikan pilihan menu untuk meminta user memasukan inputan untuk membuat Garis Horizontal, Vertikal dan Diagonal
2.      Source Code Garis Vertikal
Berisi codingan Java dengan Library LWJGL untuk membuat garis Vertikal
3.      Source Code Garis Horizontal
Berisi codingan Java dengan Library LWJGL untuk membuat garis Horizontal
4.      Source Code Garis Diagonal
Berisi codingan Java dengan Library LWJGL untuk membuat garis Diagonal

Source Code Menu
import java.util.*;
import org.lwjgl.LWJGLException;

public class LineMaker
{
public static void main(String[] args) throws LWJGLException
{
int pil;
Scanner input = new Scanner(System.in);
System.out.println("========Aplikasi Pembuat Garis========");
System.out.println("1. Membuat Garis Vertical");
System.out.println("2. Membuat Garis Horizontal");
System.out.println("3. Membuat Garis Diagonal");
System.out.print("Silahkan Masukan Pilihan yang diinginkan : ");
pil = input.nextInt();
switch(pil)
{
case 1:
Vertikal vet = new Vertikal();
vet.layar();
break;
case 2:
Horizontal hoz = new Horizontal();
hoz.layar();
break;

case 3:
Diagonal dig = new Diagonal();
dig.layar();
break;
default:
System.out.println("Pilihan yang anda pilih salah!!");
}
}
}





Source Code Garis Horizontal
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;

public class Horizontal
{
public void layar() throws LWJGLException
{
int a,kordin1,kordin2;
Scanner putin = new Scanner(System.in);
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt();
ystem.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt();
System.out.print("Masukan Panjang garis yang diinginkan (dalam Pixel) : ");
a = putin.nextInt();
try
{
Display.setDisplayMode(new DisplayMode(300,300));
Display.setTitle("Garis Horizontal");
Display.create();
} catch (LWJGLException e)
{
System.exit(0);
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 0, 600, 1, -1);
                        GL11.glMatrixMode(GL11.GL_MODELVIEW);
while (!Display.isCloseRequested())
{
GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(kordin1,kordin2);
GL11.glVertex2f(kordin1,kordin2+5);
GL11.glVertex2f(kordin1+a,kordin2+5);
GL11.glVertex2f(kordin1+a,kordin2); 
GL11.glEnd();
Display.update();
}
}
}

Source Code Garis Vertikal
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;

public class Vertikal
{
public void layar() throws LWJGLException
{
int a,kordin1,kordin2;
Scanner putin = new Scanner(System.in);
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt();
System.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt();
System.out.print("Masukan Panjang garis yang diinginkan (dalam Pixel) : ");
a = putin.nextInt();
try
{
Display.setDisplayMode(new DisplayMode(300,300));
Display.setTitle("Garis Vertikal");
Display.create();
} catch (LWJGLException e)
{
System.exit(0);
}
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity
                        GL11.glOrtho(0, 800, 0, 600, 1, -1);
                        GL11.glMatrixMode(GL11.GL_MODELVIEW);

while (!Display.isCloseRequested())
{
GL11.glBegin(GL11.GL_QUADS);         GL11.glVertex2f(kordin1,kordin2);
GL11.glVertex2f(kordin1+5,kordin2);
                                    GL11.glVertex2f(kordin1+5,kordin2+a);
GL11.glVertex2f(kordin1,kordin2+a);
GL11.glEnd();
Display.update();
                        }
}
}

Source Code Garis Diagonal
import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.*;
import java.util.*;

public class Diagonal
{   
public void layar() throws LWJGLException
{
int a,kordin1,kordin2;
Scanner putin = new Scanner(System.in);
System.out.print("Masukan titik awal (x) : ");
kordin1 = putin.nextInt();
System.out.print("Masukan titik awal (y) : ");
kordin2 = putin.nextInt();
System.out.print("Masukan Panjang garis yang diinginkan (dalam Pixel) : ");
a = putin.nextInt();
try
{
Display.setDisplayMode(new DisplayMode(300,300));
Display.setTitle("Garis Diagonal");
Display.create();
} catch (LWJGLException e)
{
System.exit(0);
}

GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glOrtho(0, 800, 0, 600, 1, -1);
GL11.glMatrixMode(GL11.GL_MODELVIEW);

while (!Display.isCloseRequested())
{
                                    GL11.glBegin(GL11.GL_QUADS);
GL11.glVertex2f(kordin1,kordin2);
GL11.glVertex2f(kordin1-5,kordin2);
GL11.glVertex2f(kordin1+a-5,kordin2+a);
GL11.glVertex2f(kordin1+a,kordin2+a);
GL11.glEnd();
Display.update();
}
}
}

Hasil Program
Garis Vertikal                                                



Garis Horizontal






Garis Diagonal


Jika Inputan User tidak teredapat dalam Menu