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>

Thursday, May 17, 2012

Responsi COA Memory Eksternal

Haloo, disini saya cuman share responsi dari kelas saya, soalnya ga cuma" hasil responsi yg saya terima kalau ga saya share :D buat belajar juga kan asyiik. langsung aja ke TKP....

1. Sebuah memori berukuran 4 KB dipasang pada komputer dengan prosesor Intel. Memori tersebut terdiri dari 8 bank memori.

  • Berapakah jumlah memory plane pada setiap bank memori ? (nilai 1)
    • Jawab: Pada komputer dengan prosesor Intel, satu alamat terdiri dari 8 bit, maka jumlah memori plane setiap bank memori = 8 memori plane
  • Berapakah jumlah total alamat pada memori tersebut ? (nilai 1)
    • Jawab: 4 KB : 1 byte/alamat = 4 KB alamat = 4096 alamat
  • Berapakah lebar alamat yang diperlukan untuk bisa mengakses semua alamat pada memori tersebut ? (nilai 1)
    • Jawab: 4 KB = 4096 alamat = 212 alamat, maka lebar alamat yang diperlukan = 12 bit
  • Berapakah banyaknya data yang dapat disimpan pada setiap bank memori ? (nilai 1)
    • Jawab: 4 KB = 4096 byte : 8 bank = 512 byte
  • Berapakah jumlah alamat pada setiap bank memori ? (nilai 1)
    • Jawab: 512 byte : 1 byte/alamat = 512 alamat

2.  Bila di suatu alamat memori terdiri dari 8 bank, memiliki nilai 011000001102

  • di bank ke berapakah letak alamat tersebut? (nilai 1) – (Penjelasan: Bank pertama adalah bank-0 atau bank ke-1)
    • Jawab: Jumlah bank 8 buah, maka range bank = bank-0 (bank ke-1) s.d. bank 7 (bank ke-8). Maka maksimal penanda untuk bank, diperlukan sebanyak 3 bit (letaknya di MSB), untuk lebar alamat 11 bit. Jadi 011000001102 (yang warna merah adalah penanda bank) Dari nilai 0112, dapat diketahui alamat tersebut berada pada bank-3 (bank ke-4)
  • Bila ukuran matriks memori dianggap sama besar, gambarkan matriks memori untuk plane-0 (plane ke-1), bank-0 (bank ke-1), beserta koordinatnya! (nilai 3)
    • Jawab: Lebar alamat 11 bit. Digunakan sebagai bank selector : 3 bit MSB. Sisa bit adalah 8 bit, yang digunakan sebagai koordinat matriks memori. Dari 8 bit, 4 bit digunakan sebagai y select line, 4 bit digunakan sebagai x select line. Matriks berada pada plane-0 (plane ke-1) nilai nol digunakan sebagai koordinat plane pada matriks. Maka gambar matriks memorinya adalah:



  • Bila diketahui (berdasar pertanyaan sebelumnya) suatu matriks memori memiliki koordinat bernilai (3,33). Berada pada plane berapa koordinat tersebut! (nilai 1)
    • Jawab: Nomor awal pada koordinat menunjukkan nomor plane. Maka koordinat tersebut berada pada plane-3 (plane ke-4).
Direct Mapping


3. Main memory berukuran 16 MByte
Cache berukuran 64 kByte
1 byte = 1 alamat
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat

Sebutkan jumlah bit untuk tag (s-r), line (r), dan word (w) !
Jawab:
Jumlah alamat total = 16 MB/1 byte = 16 M alamat
Memory 16 M alamat = 24 . 220 = 224 -> Jumlah bit alamat yang diperlukan = 24 bit
(lebar alamat)
1 blok = 4 alamat = 22 , maka Jumlah word (w) = 2 bit
Jumlah line cache = 64 kbyte/4 byte = 16 k line
16 k = 24 . 210 = 214 -> Jumlah bit line = 14 bit
Jumlah bit tag (s-r) = 24 – 14 – 2 = 8 bit

ASSOSIATIVE MAPPING

5.Main memory berukuran 16 MByte
Cache berukuran 64 kByte
1 alamat = 1 byte
1x transfer data = 1 blok memori = 1 line cache = 4 byte = 4 alamat

Sebutkan jumlah bit untuk tag dan word (w) !
Maka:
Memori 16 Mbyte = 16 M alamat = 24 . 220 = 224 -> Jumlah bit alamat yang diperlukan =
24 bit
Jumlah word (w) = 2 bit (1 blok = 4 alamat = 22)
Jumlah bit tag = 24 – 2 = 22 bit

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();
      
    }

}

Sejarah Mips

Sejarah pada Mips berawal dari John L hennesey yang berasal dari stanford yang kemudian beralih ke Mips technology system .
Mips yang artinya Million Instruction per second atau juga dikenal without Interlocked Pipline Stages, Pipelines itu berarti paralel, Ngomong ngomong apa sih Mips itu? mips itu mempelajari prosesor dengan intruksi intruksinya
nah ini sejarahnya :
  • 1985 : MIPS computer system mereleaase design pertamanya yaitu R2000
  • 1988 : R3000 direlease berbentuk CPU yang berbasis 32 bit. Mengimplementasikan hampir semua interlock di hardware-nya dan mmen-suply full multiple dan dividing instruction.
  • 1990 awal : melisensi produknya ke 3 vendor
  • 1990 : MIPS menjadi power house dalam embedded processor.
  • 1991 : MIPS me-release mikroprosesor 64 bit dengan nama R4000
  • 1992 : MIPS Computer system berganti menjadi MIPS technologies setelah dibeli oleh SG
  • 1998 : MIPS menjadi sangat sukses setelah SGI mengubah proses MIPS technologies.
  • 1999 : MIPS membentuk 2 kelas besar untuk lisensi yaitu MIPS 32 (prosesor 32 bit) dan MIPS 64 (prosesor 64 bit). Bedanya terletak pada lebar jalur yang akan dilalui oleh bit-bit data.