Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Tuesday, May 22, 2012

Simple GUI in Java

with a frame we will take a window or form, from application in desktop

with a simple example will output string " Hello World"
here's the code..


DemoFrame.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class DemoFrame {
  private JLabel label;
  
  public DemoFrame() {  
    label = new JLabel("Hallo Dunia...");
  }  
  
  public void createAndShowGUI() {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frame = new JFrame("Demo Frame");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(label, BorderLayout.CENTER);
    //frame.pack();
    frame.setBounds(0, 0, 300, 200); //ukuran frame
    frame.setLocationRelativeTo(null); //frame di tengah layar
    frame.setVisible(true);
  }
  
  public static void main(String[] args) {      
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        DemoFrame app = new DemoFrame();
        app.createAndShowGUI();
      }
    });      
  }  
}

Sunday, May 20, 2012

how to use Java Applet in html

in this lesson i'd like to share about give an output from php to html..

in Swing, applet imlementation with Japplet, that inheritance from Applet class(Japplet) and has a Container , with method called getContentPane(), with a declaration
Container getContentPane()
next to add another components , we need method add(), with a declaration
void add(comp)

example:
Demo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class DemoAppletSwing extends JApplet
  implements ActionListener {  
  
  public JTextField textField;
  public JButton button;
              
  public void init() {         
  
    // mendapatkan container
    Container cont = getContentPane();
    cont.setLayout(new FlowLayout());

    // menambahkan komponen JTextField  
    textField = new JTextField(25);
    cont.add(textField, BorderLayout.CENTER);

    // menambahkan komponen JButton 
    button = new JButton("Tombol Applet");
    button.addActionListener(this);
    cont.add(button, BorderLayout.CENTER);  
  }

  // menangani event klik pada komponen JButton  
  public void actionPerformed(ActionEvent event) {
    if (event.getSource() == button) {
      textField.setText("Anda telah melakukan klik " +
        "pada tombol Applet");
    }
  }
}

and with same directory
Test.html

<html>
<head>
</head>
<body>
<applet code="Test.class" width="300" height="100" >
</applet>
</body>
</html>

Wednesday, May 16, 2012

Branch and Bound TSP java

Branch and Bound implementation TSP for Java
copy this code in the same folder or if take software like eclipse, netbeans ect. take in the same package.


Matrik.java
package branchandbound;/**
 *
 * @Rezaakhmadg
 */
public class Matrik {
int graph[][]=new int['H']['H'];
    Matrik(){
        graph['A']['A']=0;graph['A']['B']=75;graph['A']['C']=60;graph['A']['D']=50;graph['A']['E']=215;graph['A']['F']=130;graph['A']['G']=95;
        graph['B']['A']=60;graph['B']['B']=0;graph['B']['C']=60;graph['B']['D']=70;graph['B']['E']=85;graph['B']['F']=50;graph['B']['G']=135;

        graph['C']['A']=40;graph['C']['B']=55;graph['C']['C']=0;graph['C']['D']=130;graph['C']['E']=95;graph['C']['F']=100;graph['C']['G']=55;
        graph['D']['A']=40;graph['D']['B']=75;graph['D']['C']=140;graph['D']['D']=0;graph['D']['E']=45;graph['D']['F']=60;graph['D']['G']=135;
        graph['E']['A']=20;graph['E']['B']=85;graph['E']['C']=100;graph['E']['D']=40;graph['E']['E']=0;graph['E']['F']=90;graph['E']['G']=95;
        graph['F']['A']=120;graph['F']['B']=55;graph['F']['C']=110;graph['F']['D']=60;graph['F']['E']=95;graph['F']['F']=0;graph['F']['G']=65;
        graph['G']['A']=80;graph['G']['B']=135;graph['G']['C']=60;graph['G']['D']=130;graph['G']['E']=95;graph['G']['F']=60;graph['G']['G']=0;
    }

}


Matrikint.java
package branchandbound;
/**
 *
 * @Rezaakhmadg
 */
public class Matrikint {
int graphI[][]=new int[8][8];
    Matrikint(){
            graphI[1][1]=0;graphI[1][2]=75;graphI[1][3]=60;graphI[1][4]=50;graphI[1][5]=215;graphI[1][6]=130;graphI[1][7]=95;
            graphI[2][1]=60;graphI[2][2]=0;graphI[2][3]=60;graphI[2][4]=70;graphI[2][5]=85;graphI[2][6]=50;graphI[2][7]=135;
            graphI[3][1]=40;graphI[3][2]=55;graphI[3][3]=0;graphI[3][4]=130;graphI[3][5]=95;graphI[3][6]=100;graphI[3][7]=55;
            graphI[4][1]=40;graphI[4][2]=75;graphI[4][3]=140;graphI[4][4]=0;graphI[4][5]=45;graphI[4][6]=60;graphI[4][7]=135;
            graphI[5][1]=20;graphI[5][2]=85;graphI[5][3]=100;graphI[5][4]=40;graphI[5][5]=0;graphI[5][6]=90;graphI[5][7]=95;
            graphI[6][1]=120;graphI[6][2]=55;graphI[6][3]=110;graphI[6][4]=60;graphI[6][5]=95;graphI[6][6]=0;graphI[6][7]=65;
            graphI[7][1]=80;graphI[7][2]=135;graphI[7][3]=60;graphI[7][4]=130;graphI[7][5]=95;graphI[7][6]=60;graphI[7][7]=0;
    }

}


bb.java
package branchandbound;

/**
 *
 * @Rezaakhmadg
 */
public class bb {
        char hasil[];
        int idx;
}


branchbound.java
package branchandbound;
/**
 *
 * @Rezaakhmad
 */
public class branchbound {
    bb br[]= new bb[10];
    Matrik S=new Matrik();
    Matrikint Mat=new Matrikint();
    public float bound;
    public float cekbound;
    public char getMinNode(char n){
    char k='A';
    int l=999;
    for (char i='A';i<'H';i++) {
        if (S.graph[n][i]<l&&i!='A'&&S.graph[n][i]!=0){
            k=i;
            l=S.graph[n][i];
        }
    }
    return (k);
}
     public int isZero(){
        int x=1;
        for (char i='A';i<'H';i++){
            for (char j='A';j<'H';j++){
                if (S.graph[i][j]!=0) x=0;
            }
        }
        return x;
    }

     public void empty (char a,char b){
    if (a=='A'||b=='A'){
        S.graph[a][b]=0;
        S.graph[b][a]=0;
    }else{
    for (char i='A';i<'H';i++){
        if (a!='A'){
        S.graph[a][i]=0;
        S.graph[i][a]=0;
        }
        }

    }
    }

    public bb Solusi(){
    bb Brn=new bb();
    Brn.idx=0;
    Brn.hasil=new char[100];
    char p='A';
    char temp;
    Brn.hasil[Brn.idx]=p;
    Brn.idx++;
    int ketemu=0;
    while (ketemu==0){
        temp=getMinNode(p);
        Brn.hasil[Brn.idx]=temp;
        Brn.idx++;
        empty(p,temp);
        p=temp;
        if (isZero()==1){
            ketemu=1;
        }
    }
    Brn.hasil[Brn.idx]='A';
    Brn.idx++;
    return Brn;
}
    public int minDouble(char p,char c){
    int min1=999;
    int min2=999;
    int hasil=0;
    for (char i='A';i<'H';i++){
        if (i!=p&&i!=c){
            for (char j='A';j<'H';j++){
                if (S.graph[i][j]<min1&&S.graph[i][j]!=0) {
                    min2=min1;
                    min1=S.graph[i][j];
                }else if(S.graph[i][j]<min2&&S.graph[i][j]!=0){
                    min2=S.graph[i][j];
                }
            }
            if (min1==999) min1=0;
            if (min2==999) min2=0;
            hasil+=min1+min2;
            min1=999;min2=999;

        }
        }

    return hasil;
}
    public int minSingle(char p,char c){
    int min1=999;
    int min2=999;
    int hasil=S.graph[p][c]+S.graph[c][p];
        for (char i='A';i<'H';i++){
            if (S.graph[p][i]<min1&&S.graph[p][i]!=0&&i!=c) {
                min1=S.graph[p][i];
            }
            if (S.graph[c][i]<min2&&S.graph[c][i]!=0&&i!=p) {
                min2=S.graph[c][i];
            }
        }
    if (min1==999) min1=0;
    if (min2==999) min2=0;
    hasil+=min1+min2;
    return hasil;
}

    public float getBound(char p,char c){
      
    bound = ((minSingle(p,c))+(minDouble(p,c))/2);
    return bound;
}

    public void cetakSolusi(char c[],int n){
    int i=1,j=1;
    String d="A ";
    int h=0;
    int temp1=1;
    int temp2=0;
//    for (i=1;i<n;i++) {
//         System.out.print("Solusi Indeks : " +i+ "\n");
//         System.out.print("Solusi Kota   : " +c[i]+ " \n");
//       
//     }
//
// i=1;
        while (i<n){
            if (c[i]=='A' && i==n-1) break;
          
            d+=c[i]+ " ";
          
            switch (c[i]) {
            case 'A': temp2 = 1;
                     break;
            case 'B': temp2 = 2;
                     break;
            case 'C': temp2 = 3;
                     break;
            case 'D': temp2 = 4;
                     break;
            case 'E': temp2 = 5;
                     break;
            case 'F': temp2 = 6;
                     break;
            case 'G': temp2 = 7;
                     break;
            }
            System.out.print("isi  : " + temp1 + " " +temp2 + " " + c[i] + " \n");
            h+=Mat.graphI[temp1][temp2];
          
            switch (c[i]) {
            case 'A': temp1 = 1;
                     break;
            case 'B': temp1 = 2;
                     break;
            case 'C': temp1 = 3;
                     break;
            case 'D': temp1 = 4;
                     break;
            case 'E': temp1 = 5;
                     break;
            case 'F': temp1 = 6;
                     break;
            case 'G': temp1 = 7;
                     break;
            }
            i++;
          
          
              }
      
        System.out.print("Solusi : " + d + "total waktu yang dibutuhkan " + h + " \n");

    }
 
   public void branchNbound(){
    int idx=1;
    float cek=999;
    char p='A';
    char min;
    char c[];
   c=new char[20];
   float b[];
   b=new float[10];

    c[0]='A';
    while(isZero()==0){
        min='A';
        for(char i='A';i<'H';i++){
            if(i!='H'&&S.graph[p][i]!=0){
            b[i]=getBound(p,i);
            if (b[i]<cek){
                cek=b[i];
                min=i;
            }
            }
        }
        cek=999;
                c[idx]=min;
                idx++;

        empty(p,min);
        for(char i='A';i<'H';i++){
            b[i]=0;
        }
        p=min;
    }

    cetakSolusi(c,idx);
}
}



Main.java
package branchandbound;

/**
 *
 * @Rezaakhmadg
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Matrik BF =new Matrik();

        for (char x='A';x<'H';x++){
            for (char y='A';y<'H';y++){
                System.out.print(BF.graph[x][y]+" ");
            }
            System.out.println('\n');
        }

        branchbound b = new branchbound();
        bb keluaran = new bb();
//        b.branchNbound();
        keluaran = b.Solusi();
        System.out.print("Solusi studi kasus dengan algoritma Branch and Bound : \n");
        System.out.print("****************************************************** \n");
        b.cetakSolusi(keluaran.hasil, keluaran.idx);
      
    }

}

Greedy TSP in Java

Greedy Implementation for TSP in java



Matrik.java
package Greedy_TSP;
 *
 * @author Rezaakhmadg
 */
public class Matrik {
int graph[][]=new int[8][8];
    Matrik(){
            graph[1][1]=0;graph[1][2]=75;graph[1][3]=60;graph[1][4]=50;graph[1][5]=215;graph[1][6]=130;graph[1][7]=95;
            graph[2][1]=60;graph[2][2]=0;graph[2][3]=60;graph[2][4]=70;graph[2][5]=85;graph[2][6]=50;graph[2][7]=135;
            graph[3][1]=40;graph[3][2]=55;graph[3][3]=0;graph[3][4]=130;graph[3][5]=95;graph[3][6]=100;graph[3][7]=55;
            graph[4][1]=40;graph[4][2]=75;graph[4][3]=140;graph[4][4]=0;graph[4][5]=45;graph[4][6]=60;graph[4][7]=135;
            graph[5][1]=20;graph[5][2]=85;graph[5][3]=100;graph[5][4]=40;graph[5][5]=0;graph[5][6]=90;graph[5][7]=95;
            graph[6][1]=120;graph[6][2]=55;graph[6][3]=110;graph[6][4]=60;graph[6][5]=95;graph[6][6]=0;graph[6][7]=65;
            graph[7][1]=80;graph[7][2]=135;graph[7][3]=60;graph[7][4]=130;graph[7][5]=95;graph[7][6]=60;graph[7][7]=0;
    }

}


Greedy.java

package Greedy_TSP;

/**
 *
 * @Rezaakhmadg
 */
public class Greedy {
    Matrik M=new Matrik();
    int[][] hasil=new int[9][9];
    int[] solusi=new int[10];
//    char[] record=new char[100];
  
//    public char ruteKota() {
//  
//}
    public Greedy(){
      
    }
    public void showHasil(){
    String temp="";
    int row=1;
    int col=1;
    int cc=0;
    int rr=0;
    int com=0;
    int cek=2;
    int jarak=0;
    int i=0;
    int j=0;
    int ce=0;
    solusi[1]=1;
    for (i=1;i<=8;i++) {
        for (j=1;j<=8;j++) {
            hasil[i][j]=1;
         }
    }
  
    while (cek<=8) {
        if (cek>7) break;
     com=1000;
       
         col=2;
         while (col<8) {
             if (col>7) break;
             ce=0;
             if (M.graph[row][col]<com && row!=col && hasil[row][col]==1) {
                        com=M.graph[row][col];
                        cc=col;
                        ce=1;
                      
                }
           
           
             col++;
           
           
         }
//         System.out.print("Solusi hasil colom: " + cc + " com : " + com +" cek: "+ col + " row: " + row +" \n");
            jarak+=com;
             for (i=1;i<8;i++) {
                for (j=1;j<8;j++) {
                    if (j==cc) hasil[i][j]=0;
         }
    }
          
            solusi[cek]=cc;
            row=cc;
            cek++;
          
    }          
                                  
           jarak+=M.graph[cc][1];
           solusi[cek]=1;

  
    for (i=1; i<cek; i++) {
          
             switch (solusi[i]) {
                    case 1: temp = temp+ "A ";
                             break;
                    case 2: temp = temp+ "B ";
                             break;
                    case 3: temp = temp+ "C ";
                             break;
                    case 4: temp = temp+ "D ";
                             break;
                    case 5: temp = temp+ "E ";
                             break;
                    case 6: temp = temp+ "F ";
                             break;
                    case 7: temp = temp+ "G ";
                             break;
                    }
                if (i==cek-1){
             System.out.print("Solusi : " + temp + "total waktu yang dibutuhkan " + jarak + " \n");
                }
              
    }
  
  
}
  
  
}
 


Main.java
package Greedy_TSP;

/**
 *
 * @Rezaakhmadg
 */
public class Main {

    /**
     * @param args the command line arguments
     */
        public static void main(String[] args) {
        // TODO code application logic here
//        Matrik baru =new Matrik();
//
//        for (char x='A';x<'H';x++){
//            for (char y='A';y<'H';y++){
//                System.out.print(BF.graph[x][y]+" ");
//            }
//            System.out.println('\n');
//        }

        Greedy g = new Greedy();
//        bb keluaran = new bb();
//        keluaran = b.Solusi();
        System.out.print("Solusi studi kasus dengan algoritma Greedy : \n");
        System.out.print("****************************************************** \n");
        g.showHasil();
      
    }

}

Monday, April 2, 2012

Java - Kamus Java

Perbedaan pemrograman prosedural dan pemrograman berorientasi objek ?
pada pemrograman prosedural semua data dan kode digabung menjadi satu bagian dalam satu program, tetapi dalam pemrograman berorientasi objek penyusun program secara konseptual akan dipecah menjadi bagian- bagian tersendiri yang disebut objek

pengertian
-class : suatu sifat dari suatu objek, misalnya class of human, yang berisikan sifat" human itu sendiri
-objek : sesuatu yang dimiliki dari class tersebut seperti class of human, human tersebut yang dinamakan objek dalam hal ini.

access modifier :
-private : hanya dapat diakses dalam class nya saja
-public : dapat diakses dimana saja
-protected : hanya dapat diakses dalam class nya saja dan pewarisannya

ADT
-konstruktor : fungsi yang dijalankan/dieksekusi secara otomatis ketika program dijalankan untuk proses inisialisasi
-selector : fungsi yang mempunyai kegunaan khusus untuk memberikan nilai
-mutator : fungsi untuk mengakses komponen dari suatu class dalam class yang berbeda.

Element dari konseptual objek model terdiri dari :
-Abstraksi : karakter yang membedakan sebuah objek dengan objek yang lain
-Encapsulasi : berfokus pada implementasi internal dari sebuah objek
-Modularity : proses pengelompokan objek menjadi sebuah kesatuan yang memiliki kesamaan tertentu
-Inheritance : pewarisan sifat dengan pengaturan hirarki dari sebuah objek agar memiliki kemampuan -reusability yang optimal
-polimorfisme : suatu konsep dimana suatu method objek memiliki banyak bentuk sesuai dengan kebutuhan
-overloading : merupakan bentuk dari polimorfisme, yaitu beberapa method dapat memiliki nama yang sama dengan isi dan parameter yang berbeda di dalam sebuah class.

notasi UML untuk mendefinisikan sebuah kelas lengkap dengan symbol access modfiernya :

<Nama Kelas>
Attribute
Method
Simbol akses modifier:
+ = public
- = private
# = protected


 contoh jenis" hubungan antar kelas
-agregasi : hubungan yang menyatakan bagian (“terdiri atas..”).
contoh satu jurusan memiliki banyak mahasiswa
-assosiasi : hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
contoh : segiempat berfungsi sebagai deklarasi objek untuk class driverutama
-inheritance : hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
contoh :  class matematika dengan class hitungan extends matematika
-komposisi : ketergantungan nya beberapa objek terhadap suatu objek
contoh : CPU memiliki objek , monitor, ram, procesor




Java - Program Utama(segiempat)


Nah setelah memahami array dan pendeklarasiannya , ayo kita membuat suatu program utama dimana program utama tersebut menyimpan nilai” array yang berisikan data panjang, lebar , luas , keliling dari segitiga


 pahamilah codingan sebagai berikut :

import java.io.*;  //membaca objek input output

class DriverArray {

  // Prosedur untuk membaca elemen array
  private static SegiEmpat readElement() {
    // Objek yang menjadi elemen array
    SegiEmpat s = new SegiEmpat();

    // Objek untuk pembacaan data dari keyboard
    InputStreamReader i = new InputStreamReader(System.in); //mendefinisikan alat input
    BufferedReader b = new BufferedReader(i);

    try {
      System.out.print("Panjang : ");
      String pString = b.readLine(); //pString membaca sebagai inputan
      System.out.print("Lebar   : ");
      String lString = b.readLine(); //lString membaca sebagai inputan
      float p = Float.parseFloat(pString); // mengkonversikan nilai string menjadi float
      float l = Float.parseFloat(lString); // mengkonversikan nilai string menjadi float
      s.setPanjang(p);
      s.setLebar(l);
    }
    catch (IOException err) {
      System.out.println("Proses pembacaan gagal!"); // bila input gagal
    }
    catch (NumberFormatException err) {
      System.out.println("Nilai input tidak valid!"); // bila nilai diluar dari yang diminta
    }
    return s;
  }

  // Program utama
  public static void main(String arg[]) { // menyatakan program utama

    // Penciptaan Objek
    Array a = new Array(); // mendefinisikan objek
    SegiEmpat e;

    // Penciptaan objek untuk pembacaan data
    InputStreamReader istream = new InputStreamReader(System.in) ;// mendifinisikan objek input
    BufferedReader bufRead = new BufferedReader(istream) ;

    int pilih = 10;
    do {
      // "Hapus" layar
      for (int i=0; i<15; i++) System.out.println();

      // Tampilkan pilihan menu
      try {
        System.out.println("Pengolahan Array Segi Empat");
        System.out.println();
        System.out.println("[1] Create Array Kosong");
        System.out.println("[2] Add Satu Elemen Array");
        System.out.println("[3] Delete Elemen Array");
        System.out.println("[4] Display Seluruh Elemen Array");
        System.out.println("[5] Search Elemen Tertentu");
        System.out.println();
        System.out.println("[0] Selesai");
        System.out.println();
        System.out.print("\nPilihan : ");
        String p = bufRead.readLine();
        pilih = Integer.parseInt(p);

        switch (pilih) {
          case 1:
            // Create array kosong
            a.createEmptyArray();
            bufRead.readLine();
            break;

          case 2:
            // Add elemen setelah elemen terakhir
            e = readElement();
            a.addElement(e);
            bufRead.readLine();
                    break;

          case 3:
            // Delete elemen terakhir
            a.delElement();
            bufRead.readLine();
                    break;

          case 4:
            // Display semua elemen array
            a.displayAllElement();
            bufRead.readLine();
                    break;

          case 5:
            // Search elemen array tertentu
            e = readElement();
            int x = a.searchElement(e);
            if (x != -9999)
              System.out.println("Posisi elemen yang dicari: "+x);
            else
              System.out.println("Elemen yang dicari tidak ditemukan");
            bufRead.readLine();
                    break;

          case 0:
            // "Hapus" layar
                    for (int i=0; i<25; i++)
                System.out.println();
                    break;

          default:
            // Beri pesan jika pilihan bukan 0-5
                    System.out.println("Pilihan Menu harus 0 sampai dengan 5");
            bufRead.readLine();
        }
      }
      catch (IOException err) {
        System.out.println("Proses pembacaan gagal. Ulangi lagi!");
      }
      catch (NumberFormatException err) {
        System.out.println("Data masukan tidak valid. Ulangi lagi!");
      }

    }
    while (pilih != 0);

  }
}