Rabu, 24 Maret 2010

Queue Class Example

package queue;

public class Queue {
    private boolean full, empty;
    private int max_item = 100;
    private int item [max_item];
    private int head, tail;
  
    public Queue(){
        full=false;
        empty=true;
        head=0;
        tail=0;              
    }
    public boolean isFull(){
        return(full);
    }
    public boolean isEmpty(){
        return(empty);
    }
    public void insert (int data){
        if (isFull()){
            if (head==max_item){
                item[head++]=data;
                empty=false;
            }
            if (tail==0 && head==max_item){
                full=true;
            }
        }
        return;
    }
    private void shiftData(){
        for (int i=0; i
            item[i]=item[i+tail];
        }
        head = head-tail+1;
        tail=0;
        return;
    }
    public int remove(){
        int x;
        if (isEmpty()){
            x=item(tail++);
            full=false;
            if (head==tail){
                empty=true;
            }
        }
        else{
            System.out.print("Queue is empty!");
        }
        return(x);      
    }
}

Stack Class Example

package stack;

public class Stack {
    private boolean empty,full;
    private int pos;
    private int max_data=100;
    private int item [max_data];
  
    public Stack(){
        full=false;
        empty=true;
        pos=0;
    }
    public boolean isFull(){
        return(full);
    }
    public boolean isEmpty(){
        return(empty);
    }
    public void push(int data){
        if (!isFull()){
            item [pos++] = data;
            empty = false;
            if (pos==max_data){
            full=true;
            }
        }
        else {
            System.out.print("Stack is Full");
        }
        return;
    }
    public int pop(){
        int x;
        if (!isEmpty()){
            x = item [--pos];
            if(pos==0){
            empty=true;
            }
        }
        else{
            System.out.print("Stack is Empty");
        }
        return(x);
    }
  
}

Java Double Linked List

Main Class

package rizal;


public class Main {


    public static void main(String[] args)
        int x =5;
        System.out.println(x);
    }
}


DoubleList Class

package rizal;


public class DoubleList {
    int awal, akhir;
    int jnode;
    int max_node=100;
    Node item[]=new Node[max_node];


    public DoubleList(){
        jnode=0;
        awal=-1;
        akhir=-1;
        for(int i=0;i
            item[i]=new Node(0);
        }
    }
    public int getJNode(){
        return(jnode);
    }
    public void insert (int data, int pos){
        if(jnode==0){
            awal=0;
            akhir=0;
            item[0].setData(data);
            jnode++;
        }
        else{
            if (jnode!=max_node){
                int p=FindEmpty();
                if (pos==0){
                item[p].setData(data);
                item[p].setNext(awal);
                item[awal].setPrev(p);
                awal=p;
                jnode++;
                }
                else if(pos>=jnode){
                    item[p].setData(data);
                    item[p].setPrev(akhir);
                    item[akhir].setNext(p);
                    akhir=p;
                    jnode++;
                }
                else {
                    if (pos>jnode/2){
                        int i =akhir;
                        for (int j=0;j
                            i=item[i].getPrev();
                        }
                        item[p].setData(data);
                        item[p].setNext(i);
                        item[p].setPrev(item[i].getPrev());
                        item[item[i].getPrev()].setNext(p);
                        item[i].setPrev(p);
                        jnode++;
                    }
                    else {
                        int i=awal;
                        for(int j=0;j
                            i=item[i].getNext();
                        }
                        item[p].setData(data);
                        item[p].setPrev(i);
                        item[p].setNext(item[i].getNext());
                        item[item[i].getNext()].setPrev(p);
                        item[i].setNext(p);
                        jnode++;
                    }
                }
            }
            else {
                System.out.println("Double List is Full!!!!");
            }
        }


        return;
    }
    private int FindEmpty () {
        int i;


        for (i=0;i
            if (i!=akhir && item[i].getNext()==-1){
                return(i);
            }  
        }
        return(-1);
    }
}



Node Class

package rizal;


public class Node {
    private int prev, data, next;


    public Node (int n){
        data = n;
        prev = -1;
        next = -1;
    }


    public void setData(int n){
        data = n;
    }
    public int getData(){
        return (data);
    }
    public void setPrev(int n){
        prev = n;
    }
    public void setNext(int n){
        next = n;
    }
    public int getPrev(){
        return (prev);
    }
    public int getNext(){
        return (next);
    }
}

Selasa, 22 Desember 2009

Development of System Expert System




Sabtu, 19 Desember 2009

HP Sahabat Rumah in Prolog (Updated)

Sebelumnya, kami telah posting HP Sahabat Rumah dalam Simple Expert System Design. Namun, disini
kami tidak mengerjakan serumit seperti yang ada di dalam penjelasan kami sebelumnya.

Hehe.. : )

Kalau pada posting sebelumnya, kami hanya membuat pseudocode yang berfungsi hanya untuk mengecek peralatan listrik yang sedang menyala atau tidak. Tapi, kali ini kami menambahnya dengan beberapa fungsi baru yang menurut kami tidak jauh berbeda dengan konsep dasar kami pada posting yang berjudul HP Sahabat Rumah. Kami memberi beberapa tambahan didalamnya, yaitu diantaranya seperti mematikan maupun menyalakan lampu, buka-tutup pagar, dan lain sebagainya. Supaya lebih mudah, kita lihat saja pseudocodenya.