Minggu, 13 Mei 2012

Struktur Data Java : Graph

Pada tulisan ini ane akan memberikan sedikit tutorial tentang graph
Kelas Vertex  :

 public class Vertex {
    public String label;
    public boolean wasVisited;
    public Vertex(String lab) {
        label = lab;
        wasVisited = false;
    }
    public String getLabel() {
        return label;
    }
    public void setLabel(String label) {
        this.label = label;
    }
}// akhir kelas


Kelas Graph :

 public class Graph {
    private final int MAX_VERTEX = 10;
    private int adjMat[][];
    private Vertex vertexList[];
    private int nVerts;
    public Graph() {
        vertexList = new Vertex[MAX_VERTEX];
        adjMat = new int[MAX_VERTEX][MAX_VERTEX];
        nVerts = 0;
        for (int i = 0; i < MAX_VERTEX; i++) 
        for (int k = 0; k < MAX_VERTEX; k++) 
                adjMat[i][k] = 0;
    }// akhir konstruktor

    public void addVertex(String lab) {
        vertexList[nVerts++] = new Vertex(lab);
    }
    // Metode Menambahkan Lintasan
    public void addEdge(String v1, String v2) {
        adjMat[getVertexList(v1)][getVertexList(v2)] = 1;
        adjMat[getVertexList(v2)][getVertexList(v1)] = 1;
    }
    public void display(int v){
        System.out.println(vertexList[v].label);
    }
    public int getVertexList(String data) {
        int dataI=0;
        for (int i = 0; i < MAX_VERTEX; i++) {
            if(vertexList[i].getLabel().equals(data)){
                return i;
            } else if(vertexList[i].getLabel().equals(data)){
                return i;
            } else if(vertexList[i].getLabel().equals(data)){
                return i;
            } else if(vertexList[i].getLabel().equals(data)){
                return i;
            }else if(vertexList[i].getLabel().equals(data)){
                return i;
            }else if(vertexList[i].getLabel().equals(data)){
                return i;
            }
        }
        return dataI;
    }
    public int[][] getAdjMat() {
        return adjMat;
    }
    public void setAdjMat(int[][] adjMat) {
        this.adjMat = adjMat;
    }
    public int getnVerts() {
        return nVerts;
    }
    public void setnVerts(int nVerts) {
        this.nVerts = nVerts;
    }
}// Akhir kelas


Kelas Main :

public class Main {
    public static void main(String[] args) {
        // TODO code application logic here
        Graph graph = new Graph();
        graph.addVertex("A");
        graph.addVertex("B");
        graph.addVertex("C");
        graph.addVertex("D");
        graph.addVertex("E");
        graph.addEdge("A", "B");
        graph.addEdge("B", "A");
        graph.addEdge("A", "C");
        graph.addEdge("C", "D");
        graph.addEdge("A", "D");

        int isi[][] = graph.getAdjMat();
        for (int i = 0; i < graph.getnVerts(); i++) {
            for (int j = 0; j < graph.getnVerts(); j++) {
                System.out.print(isi[i][j] + " ");
            }
            System.out.print("\n");
        }
    }
}


Hasil Akhir :


Di sini Ane Menggunakan Tool Netbean Jika agan - agan menggunakan tool yang sama silahkan saja download dengan di sini (klik di sini). tinggal di unrar beres deh!!! Keterangan lebih lanjut hubungin email ane aja : prince.henfry@gmail.com

Tidak ada komentar:

Posting Komentar