Thursday, June 18, 2015

Rextester.com (Tools untuk Matakuliah Konsep Bahasa Pemrograman)


Bagi teman-teman yang pengen belajar bahasa pemrograman dasar tapi tidak mau repot-repot menginstall compiler atau editornya, mungkin situs ini boleh dijadikan referensi buat belajar. http://rextester.com/runcode . selamat belajar Happy Coding :D


Contoh penggunaan pada bahasa Haskell.

Contoh-contoh program



Saturday, April 18, 2015

Singleton Design Pattern

Source : http://tutorial-edge.com/programming-design-concepts-singleton-design-pattern/


Saturday, February 7, 2015

E-Book Data Structures and Algorithms in Java


Modul hanya dapat diakses oleh pengguna EMAIL STUDENT UKSW. Silahkan login 'email student' terlebih dahulu !

E-Book Java Desktop (Indonesia)


Modul hanya dapat diakses oleh pengguna EMAIL STUDENT UKSW. Silahkan login 'email student' terlebih dahulu !

Tuesday, October 28, 2014

Modul Grafika Komputer (FTI UKSW)

Berikut ini adalah Modul Grafika Komputer.. (Praktikum Grafkom FTI 2010, Eko Sediyono).

Modul hanya dapat diakses oleh pengguna EMAIL STUDENT UKSW. Silahkan login 'email student' terlebih dahulu !

Materi 1
Materi 2
Materi 3
Materi 4
Materi 5

SELAMAT BELAJAR

Saturday, June 7, 2014

Contoh Operasi CRUD ke Database MySQL Server menggunakan Java Persistance API (JPA)

@PersistenceContext(unitName = "Persist1MVCPU")
 private EntityManager em;

@Resource
private javax.transaction.UserTransaction utx;
//Insert
public boolean addMhsToDatabase(TblMahasiswa mhs) {
        boolean res = false;
        try {
            utx.begin();
            em.persist(mhs);
            res = true;
            utx.commit();
        } catch (Exception e) {
            Logger.getLogger(getClass().getName()).log(Level.SEVERE, "exception caught", e;
            throw new RuntimeException(e);
        }
        return res;
    }
//Load Data
public List getListMahasiswa(){
        return em.createNamedQuery("TblMahasiswa.findAll").getResultList();

}

Cara Mendapakan Nilai Pixel Gambar

private File file;
BufferedImage gambarAsli;

public GetPixelColor() {
  try {
    this.gambarAsli = ImageIO.read(new File("src/image/strawberry.jpg"));
        } catch (IOException ex) {
            Logger.getLogger(GetPixelColor.class.getName()).log(Level.SEVERE, null, ex);
        }

    }
    //ambil nilai pixel (warna)
    public int v(int x, int y) {
        int rgb = gambarAsli.getRGB(x, y);
        int red = rgb & 0x000000FF;
        int green = (rgb & 0x0000FF00) >> 8;
        int blue = (rgb & 0x00FF0000) >> 16;
        return (red + green + blue) / 3;

    }

Thursday, February 20, 2014

Subnetting IP Address Jaringan

Contoh :

192.100.08.0 /27

subnet mask : 1111 1111.1111 1111.1111 1111.11100000 = 255. 255. 255.  224
Jumlah subnet : 2^3  = 8
jumlah host (2^5) - 2 = 32 - 2 = 30 host
blog subnet : 256 - 224 = 32


   NETID                               HOST_ID                         BROADCAST

192.100.08.0                192.100.08.1  - 192.100.08.30               192.100.08.31
192.100.08.32              192.100.08.1  - 192.100.08.62               192.100.08.63
192.100.08.64              192.100.08.1  - 192.100.08.94               192.100.08.95
192.100.08.96              192.100.08.1  - 192.100.08.126             192.100.08.127
192.100.08.128            192.100.08.1  - 192.100.08.158             192.100.08.159
192.100.08.160            192.100.08.1  - 192.100.08.190             192.100.08.191
192.100.08.192            192.100.08.1  - 192.100.08.222             192.100.08.223
192.100.08.224            192.100.08.1  - 192.100.08.254             192.100.08.255


---------------------------------------------------------------------------------------------------

170.52.0.0 /19

subnet mask : 11111111.11111111.11100000.00000000 = 255.255.224.0
jumlah subnet : 2^3      = 8 subnet
jumlah host : (2^13)-2 = 8192 - 2 = 8190 host
blok subnet   : 256 - 224 = 32

   NETID                               HOST_ID                      BROADCAST

1. 170.52.0.0          170.52.0.1          -      170.52.30.1          170.52.31.1  
2. 170.52.32.0        170.52.33.1        -      170.52.62.1          170.52.63.1      
3. 170.52.64.0        170.52.65.1        -      170.52.94.1          170.52.95.1
4. 170.52.96.0        170.52.97.1        -      170.52.126.1        170.52.127.1
5. 170.52.128.0      170.52.129.1      -      170.52.158.1        170.52.159.1
6. 170.52.160.0      170.52.161.1      -      170.52.190.1        170.52.191.1
7. 170.52.192.0      170.52.193.1      -      170.52.222.1        170.52.223.1
8. 170.52.224.0      170.52.226.1      -      170.52.254.1        170.52.255.1              
                                                       


Monday, November 18, 2013

Translasi dan Rotasi pada Ruang 3 Dimensi

#include<windows.h>
#include<gl/glut.h>

void init(){
 glClearColor(0.0,0.0,0.0,0.0);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(-15.0,15.0,-15.0,15.0,-15.0,15.0);
}


void resize(int width, int height){
 if (height == 0){
  height = 1;
 }
 glLoadIdentity();
 /* note we divide our width by our height to get the aspect ratio */
 gluPerspective(45.0, width / height, 1.0, 400.0);
 /* set initial position */
 glTranslatef(0.0, -5.0, -150.0);
 glMatrixMode(GL_MODELVIEW);
}

void segiEmpat(){
  glBegin(GL_QUADS);
  glColor3f(0.0,0.0,1.0);
  glVertex3f(-3.0,3.0,3.0); //front
  glVertex3f(-3.0,-3.0,3.0);
  glVertex3f(3.0,-3.0,3.0);
  glVertex3f(3.0,3.0,3.0);
  //   glColor3f(1.0,0.0,0.0);
  //glVertex3f(-3.0,3.0,-3.0); //left
  //glVertex3f(-3.0,-3.0,-3.0);
  //glVertex3f(-3.0,-3.0,3.0);
  //glVertex3f(-3.0,3.0,3.0);
  //glColor3f(1.0,0.0,1.0);
  //glVertex3f(3.0,3.0,-3.0); //back
  //glVertex3f(3.0,-3.0,-3.0);
  //glVertex3f(-3.0,-3.0,-3.0);
  //glVertex3f(-3.0,3.0,-3.0);
  //glColor3f(0.0,1.0,0.0);
  //glVertex3f(3.0,3.0,3.0); //right
  //glVertex3f(3.0,-3.0,3.0);
  //glVertex3f(3.0,-3.0,-3.0);
  //glVertex3f(3.0,3.0,-3.0);
  //glColor3f(1.0,1.0,1.0);
  //glVertex3f(-3.0,3.0,-3.0); //top
  //glVertex3f(3.0,3.0,-3.0);
  //glVertex3f(3.0,3.0,3.0);
  //glVertex3f(-3.0,3.0,3.0);
  //glColor3f(1.0,1.0,1.0);
  //glVertex3f(-3.0,-3.0,-3.0); //bottom
  //glVertex3f(3.0,-3.0,-3.0);
  //glVertex3f(3.0,-3.0,3.0);
  //glVertex3f(-3.0,-3.0,3.0);
 glEnd();

}

void display(){
 //glClear(GL_COLOR_BUFFER_BIT);
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 segiEmpat();
 glutSwapBuffers();
}

void keyboardChar(unsigned char key,int x,int y){
 switch(key){
 case 'w' :
 case 'W':
         /* angle, x,   y,  z */

  glRotated(3.0, 1.0, 0.0, 0.0); // Rotasi ke atas terhadap sumbu x
  break;
 case 's':
 case 'S':
  glRotatef(-3.0,1.0,0.0,0.0); // Rotasi ke bawah terhadap sumbu x
  break;
 case 'a':
 case 'A':
  glRotatef(3.0,0.0,1.0,0.0); // Rotasi ke kiri terhadap sumbu y
  break;
 case 'd':
 case 'D':
  glRotatef(-3.0,0.0,1.0,0.0); // Rotasi ke kanan terhadap sumbu y
  break;
 case 'o':
 case 'O':
  glRotatef(3.0,0.0,0.0,1.0);
  break;
 case 'p':
 case 'P':
  glRotatef(-3.0,0.0,0.0,1.0);
  break;
 case 'l':
 case 'L':
  glTranslatef(-0.1,0.0,0.0);
  break;
 case 'r':
 case 'R':
  glTranslatef(0.1,0.0,0.0);
  break;
 case 'u':
 case 'U':
  glTranslatef(0.0,0.1,0.0);
  break;
 case 'y':
 case 'Y':
  glTranslatef(0.0,-0.1,0.0);
  break;
 case 'm':
 case 'M':
  glTranslatef(0.0,0.0,5.0);
  break;
 case 'n':
 case 'N':
  glTranslatef(0.0,0.0,-5.0);
  break;
 case 'h':
 case 'H':

  glScalef(1.0,1.1,0.0);

  break;

 }

 display();// Repaint the window

}





void keyboard(int key,int x,int y){

 switch(key){

 case 'w' :

 case 'W':

         /* angle, x,   y,  z */

  glRotated(3.0, 1.0, 0.0, 0.0); // Rotasi ke atas terhadap sumbu x

  break;

 case 's':

 case 'S':

  glRotatef(-3.0,1.0,0.0,0.0); // Rotasi ke bawah terhadap sumbu x

  break;

 case 'a':

 case 'A':

  glRotatef(3.0,0.0,1.0,0.0); // Rotasi ke kiri terhadap sumbu y

  break;

 case 'd':

 case 'D':

  glRotatef(-3.0,0.0,1.0,0.0); // Rotasi ke kanan terhadap sumbu y

  break;



 case 'o':

 case 'O':

  glRotatef(3.0,0.0,0.0,1.0);

  break;

 case 'p':

 case 'P':

  glRotatef(-3.0,0.0,0.0,1.0);

  break;



 case GLUT_KEY_UP:

 //case 'L':

  glTranslatef(-0.1,0.0,0.0);

  break;



 case 'r':

 case 'R':

  glTranslatef(0.1,0.0,0.0);

  break;



 case 'u':

 case 'U':

  glTranslatef(0.0,0.1,0.0);

  break;



 case 'y':

 case 'Y':

  glTranslatef(0.0,-0.1,0.0);

  break;



 case 'm':

 case 'M':

  glTranslatef(0.0,0.0,5.0);

  

  break;



 case 'n':

 case 'N':

  glTranslatef(0.0,0.0,-5.0);

  break;



 case 'h':

 case 'H':

  

  glScalef(1.0,1.1,0.0);

  break;

 }



 display();// Repaint the window

}





int main(int args1, char **args2){

 glutInit(&args1, args2);

 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);

 glutInitWindowSize(600,600);

 glutInitWindowPosition(50,50);

 glutCreateWindow("A 3D Object");

 init();

 glutDisplayFunc(display);   // memanggil fungsi display

 glutKeyboardFunc(keyboardChar);  // keyboard

 glutSpecialFunc(keyboard);

 glutReshapeFunc(resize);     // risize objek

 glutMainLoop();

 return 0;

}

Wednesday, October 2, 2013

Dasar Menggambar Grafik Menggunakan OpenGL C++



*Materi Grafika Komputer FTI UKSW 2013 
  Download glut-3.7.6-bin.zip disini
  Cara Install FreeGLUT         lihat


Pemanggilan fungsi glutInit, berguna untuk inisialisasi secara umum terhadap nilai-nilai yang ada pada library GLUT.










Untuk menginisialisasi modus display dilakukan dengan memanggil fungsi: glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB) pada procedure myInit();
Fungsi tersebut meminta window yang bersifat double buffered, dengan warna RGB. Beberapa baris berikut ini adalah membuat window.






Seperti yang kita lihat, GLUT langsung membuat window tanpa memerlukan macam-macam syarat.

fungsi glOrtho digunakan untuk membuat kotak tempat obyek yang sedang digambar.

Berikut ini adalah fungsi-fungsi aplikasi yang kita buat :

                               glutDisplayFunc(display);
                               glutMainLoop();

Fungsi pertama digunakan untuk mengubah pandangan dengan menggunakan GLUT. Selanjutnya dipanggil fungsi glutMainLoop() , yaitu digunakan untuk menjalankan program. Semua fungsi sebelumnya akan berpengaruh setelah fungsi ini dieksekusi.


Fungsi aplikasi untuk menampilkan kotak di dalam window adalah sebagai berikut :

               void display(void)
               {
                               glClear(GL_COLOR_BUFFER_BIT);
                               glRectf(-5.0, 5.0, 5.0, -5.0);
                               glutSwapBuffers();
               }

Pertama-tama dipanggil fungsi glClear dengan parameter  GL_COLOR_BUFFER_BIT. Fungsi ini akan menghapus window dan memberi warna yang telah kita definisikan sebelumnya dengan menggunakan glClearColor.  Selanjutnya menggambar segiempat yang kita inginkan dengan menggunakan fungsi glRectf.


Suatu fungsi memiliki beberapa macam prototipe. Contohnya fungsi glColor, memiliki beberapa prototipe berikut ini :

glColor3f(float, float, float);
glColor4f(float, float, float, float);
glColor3d(double, double, double);
glColor3i(int, int, int);
etc, etc, etc.

Fungsi-fungsi tersebut memiliki bagian-bagian:

     gl            Color              3                   f

Walaupun ada fungsi yang memiliki beberapa macam versi, sebaiknya dipilih versi yang menggunakan bilangan float. Karena dalam OpenGL semua nilai yang digunakan secara internal akan dikembalikan dalam bentuk float point.


Titik, Garis, dan Poligon

OpenGL menggunakan sistem koordinat Cartesius, sumbu datar sebagai sumbu x, sumbu tegak sebagai sumbu y, dan sumbu z nya adalah mendekat atau menjauh. Sumbu z positif selalu menuju ke arah kita, sebaliknya sumbu z negatif selalu menjauh dari kita. Dengan menggunakan sistem ini kita dapat menyatakan titik dalam ruang tiga dimensi, yang disebut juga “vertex”, dengan tiga sumbu koordinat x, y, dan z. Sebagai contoh :

(0,0,0)     à pusat sistem koordinat
(2,0,4)     à dua unit ke kanan, 4 unit menuju kita, dan sumbu y pada pusat
(3,-4,-2) à 3 unit ke kanan, 4 unit ke bawah, dan 2 unit menjauh dari kita

Untuk menyatakan titik tersebut OpenGL menyediakan fungsi glVertex yang didahului dan diakhiri dengan glBegin dan glEnd:

               glBegin(GL_POINTS);           /* Ingin menggambar titik */           
               glVertex3f(2.0, 0.0, 4.0);        /* menyatakan sejumlah titik */
               glVertex3f(3.0, -4.0, -2.0);
               glEnd();                                  /* Akhir dari menggambar titik */

Fungsi glBegin memberitahu kepada OpenGL bahwa kita akan mulai menggambar sekaligus menyatakan apa yang akan digambar, yaitu dengan memberikan parameter GL_POINTS. Fungsi glEnd menyatakan pembuatan gambar diakhiri. Dengan menggunakan OpenGL, menggambar pada bidang 3D sangat fleksibel, misalnya akan menggambar suatu garis, maka pada glBegin diberi parameter GL_LINES. Dengan ini pasangan-pasangan glVertex akan membentuk garis. Bila glVertex tidak memiliki pasangan maka perintah tersebut diabaikan (tidak akan menggambar titik)  


               glBegin(GL_LINES);                        /* mulai menggambar garis */
               glVertex3f(6.0, 4.0, 2.0);                   /* garis pertama, pasangan glVertex */
               glVertex3f(2.0, -4.0, 3.3);
               glVertex3f(5.0, 8.0, 8.0);                   /* garis ke dua */
               glVertex3f(-4.7, 5.0, -3.0);
               glVertex3f(0.0, 0.0, 0.0);                   /* garis ke tiga */
               glVertex3f(6.0, -1.0, -7.0);
               glEnd();

Untuk menggambar suatu bangun, OpenGL memiliki 6 macam bangun primitif, yaitu :
GL_TRIANGLES: setiap 3 glVertex membentuk segitiga, dan tiap segitiga saling lepas.
GL_TRIANGLE_STRIP : setiap 3 glVertex membentuk segitiga, dan semua segitiga saling terkait
GL_TRIANGLE_FAN  : membentuk beberapa segitiga yang berpusat pada satu titik (seperti kipas)
GL_QUADS             : tiap 4 glVertex membentuk segi empat
GL_QUAD_STRIP    : tiap 4 glVertex membentuk segi empat, dan semuanya saling menempel
GL_POLYGON.        : n glVertex akan membentuk bidang bersisi n






Contoh di bawah ini adalah menggambar segitiga biasa.

               glBegin(GL_TRIANGLES);
              
               glVertex3f(-3.0, -3.0, 2.0);
               glVertex3f(3.0, -3.0, -1.0);
               glVertex3f(0.0, 3.0, 4.0);

               glEnd();

Contoh program di bawah ini adalah menggambar sebuah segiempat belahketupat. Perhatikan, pada setiap bidang warnanya diganti dengan menggunakan fungsi glColor yang nilai parameternya berbeda-beda. Yang terjadi adalah, pada pergantian warna terjadi gradasi secara halus mulai dari  warna awal menuju warna berikutnya.




Output Program



Sunday, July 7, 2013

Bisection Method (Metode Numerik)




Silahkan dilanjutkan sampai iterasi ke-Lima !!
Sumber : Metode Numerik (Rinaldi Munir)

Saturday, April 20, 2013

Contoh Mengurutkan Huruf menggunakan Java

Sebelum belajar cara mengurutkan data ada baiknya memahami dulu metode 'tukar' data. Kode dibawah ini merupakan sebuah metode yang akan menukar nilai dua variabel jika nilai variabel pertama kurang dari nilai variabel kedua.

Algoritma :

1.  Ambil nilai a awal simpan di variabel temp;

2.  Tukar kedua nilai variabel, dengan mengambil nilai b ke variabel 

    a dan variabel b diisi dengan nilai temp (nilai awal variabel a).

Nah, untuk melakukan sorting (mengurutkan) huruf dalam sebuah kata atau kalimat metodenya mirip dengan cara diatas, yaitu membandingkan setiap huruf pada kata atau kalimat.

Kata atau kalimat (Baca: String) merupakan sekumpulan dari beberapa huruf (Baca: char). Sehingga untuk melakukan sorting dengan cara membandingkan setiap huruf yang ada dalam kalimat maka kita perlu mengambil huruf-huruf tersebut dan menampung dalam sebuah variabel array characters kemudian membandingkan elemen array berdasarkan indeksnya.

Untuk mengkonversi String ke dalam bentuk array karakter, pada java sudah disiapkan sebuah method toCharArray() pada class String, kita menggunakan method ini saja. Setelah itu mulailah mengurutkan huruf dengan kode dibawah ini yang merupakan modifikasi dari kode diatas.




@.... Selamat mencoba .... @

Friday, April 19, 2013

Menyimpan dan Menampilkan Tanggal (JAVA)

Menjawab pertanyaan dari teman saya, berikut saya share beberapa method yang bisa digunakan untuk setTanggal dan menampilkan tanggal.


Source: http://docs.oracle.com/javase/1.4.2/docs/api/java/util/GregorianCalendar.html

@ Selamat Mencoba @

Wednesday, February 13, 2013

Mencari nilai tertinggi dari 3 variabel acak

Jika user diminta mencari angka tertinggi dari 3 data yang diinput maka algoritma atau langkah-langkah yang perlu dilakukan adalah membandingkan setiap variabel dengan variabel lainnya.

Misalkan saya mempunyai data :
a = 10;
b = 3;
c = 34;

maka yang langkah-langka dilakukan adalah
- membandingkan a dengan b jika a > b nilai max = a
- membandingkan a dengan c jika a > c nilai max = a

- membandingkan b dengan a jika b > a nilai max = b
- membandingkan b dengan c jika b > b nilai max = b

- membandingkan c dengan a jika c > a nilai max = c
- membandingkan c dengan b jika c > b nilai max = c


langkah-langkah diatas bisa dipersingkat dengan membuat sebagai berikut
- membandingkan a dengan b jika (a > b && a > c) nilai max = a

- membandingkan b dengan a jika (b > a && b > b) nilai max = b

- membandingkan c dengan a jika (c > a && c > b) nilai max = c


nah sekarang bagaimana implementasinya ???

#include<stdio.h>
int  a = 0, b = 0, c = 0;

int cariMax(int a, int b, int c){

   int maxValue;
   //membandingkan a dengan b jika (a > b && a > c) nilai max = a
   if(a>b && a>c){
        maxValue = a; printf("Max Value adalah Bil.A");     
   }
   //membandingkan b dengan a jika (b > a && b > b) nilai max = b
   if(b>a && b>c){
         maxValue = b; printf("Max Value adalah Bil.B");   
   }
   //membandingkan c dengan a jika (c > a && c > b) nilai max = c

   if(c>b && c>a){
        maxValue = c; printf("Max Value adalah Bil.C");     
   }
   return maxValue;

}

cukup mudahkan kawan-kawan ??? ;)

"Good-luck"


Thursday, December 6, 2012

Contoh Struct dan Pointer dalam Bahasa C++

Pada tulisan kali ini saya coba menulis bagaimana sebuah pointer dalam C dapat didefinisikan sebagai ‘object’ yang menunjuk ke structure (lebih dikenal dengan struct).

Sebelumnya bagi yang belum tau apa itu Pointer, untuk mudahnya saya menggunakan bahasa sendiri pointer yaitu variable pada C yang menampung alamat variabel tertentu sehingga nilai pointer berisi nilai (value) yang sama dengan variabel yang diambil alamatnya.




Pada kasus yang menggunakan struct, konsepnya mirip dengan yang diatas. Kalau diatas kita menggunakan variabel disini kita menggunakan objek.



Berbeda dengan penggunaan pointer pada variebel biasa, untuk membuat objek sebelumnya, perlu dibuat structurenya seperti berikut :




Artinya objek yang nantinya kita buat, memiliki attribute nama dan alamat yang bisa diisi dan dipanggil nilainya.

Untuk memberi nilai pada attribut objek mahasiswa mhs melalui pointer, langkah awalnya mengambil informasi alamat memori dimana objek mhs disimpan dengan menampungnya di pointer pmhs. Setelah itu setiap attribut mahasiswa mhs yaitu nama dan alamat diberikan nilai, dengan code :


pmhs->nama untuk memberikan nilai ke attribute nama pada objek mhs;

pmhs->alamat untuk memberikan nilai ke attribute alamat pada objek mhs;



Jika sudah kita coba tampilkan nilai attribute yang sudah kita masukan ke objek mhs dengan memanggil method tampilkanData(pmhs).



Method ini berparameter struct mahasiswa *m artinya method ini menerima passing reference pmhs (alamat objek)  yang barusan kita input dari method main dan mencetak nilai attributenya.

Ada masukan ??? :D