THis is my source:
/*
* ===== PROGRAM PREFIX =====
*
* MODUL II
* KELOMPOK V
* I Wayan Surya Priantara 5107100057
*
* deskripsi:
* Program ini digunakan untuk mengkonversi bentuk ke postfix
* dengan menggunakan konsep stack (LIFO)
*/
package infixtopostfix;
import java.util.Scanner;
//Node untuk menampung operator
class Character
{
char c;
Character next;
}
class Stack
{
Character head;
Stack()
{
head=null;
}
//FUNGSI PUSH
public void push(char c)
{
Character baru=new Character();
baru.c=c;
baru.next=head;
head=baru;
baru=null;
}
//FUNGSI POP
public char pop()
{
char c;
Character view=head;
c=view.c;
head=head.next;
view=null;
return c; //mengembalikan karakter untuk ditampilkan di layar
}
}
/*
* @author Kelompok V
*/
public class Main
{
//FUNGSI PENGECEKAN ANTARA OPERAND DAN OPERATOR
public static String Prefix2Postfix(String infix)
{
String postfix="";
int lenght=infix.length();
int flag=0;
Stack Oprtr=new Stack();
//JIKA INNPUTAN SALAH, MAKA ERROR AKAN DITANGKAP
try{
for(int i=0; i<lenght; i++)
{
char c=infix.charAt(i);
if(c=='+'
|| c=='-'
|| c=='*'
|| c=='/'
|| c=='^')
{
Oprtr.pushİ;
}
else
{
if(flag==0)
{
postfix+=c;
flag=1;
}
else if(flag==1)
{
char Opr=Oprtr.pop();
postfix+=c;
postfix+=Opr;
}
}
}
}
catch(NullPointerException error)
{
}
return postfix;
}
public static void main(String[] args)
{
// TODO code application logic here
Scanner S=new Scanner(System.in);
String infix="";
String postfix;
String lanjut="";
do{
lanjut="";
do{
System.out.println("Inputkan infix:");
infix=S.nextLine();
if(infix.length()==0) System.out.println("Masukin yang bener dong !!!");
}while(infix.length()==0);
int L1=infix.length();
postfix=Prefix2Postfix(infix);
int L2=postfix.length();
if(L1==L2)
System.out.println("\nPostfixnya adalah :\n"+postfix);
else
System.out.println("Sintaks salah...");
System.out.println("\nMau ngulang programnya lagi? (y=yes) : ");
lanjut=S.nextLine();
if(lanjut.equals("y")==true || lanjut.equals("Y")==true)
{
System.out.println("\n");
}
}
while(lanjut.equals("Y")==true || lanjut.equals("y")==true);
}
}

New Topic/Question
Reply



MultiQuote

|