Membuat 1 program
INPUT : Prefix / Suffix
> mengenali variabel
> dapat mengecek kebenaran prefix
> Operasi : tambah, kurang, kali, bagi, pangkat.
OUTPUT : menghitung hasilnya.
CONTOH :
INPUT : +[ab]c
MENU :
1. hitung
2. infix
3. postfix
PILIH : 1
Masukkan nilai ab : 4
Masukkan nilai c : 5
HASIL : 9
========================================================================
WARNING !!!
> Variabel bisa mengandung angka (Contoh : “a1″ ; tapi kalo “1a” ERROR).
========================================================================
Optional
Dalam Postfix & Infix
Display Output Program :
Algoritma Program :
1.Program menampilkan statemen selamat datang.
2.Program meminta user untuk memilih operasi yang ingin dikerjakan.
2.1.Operasi Tambah.
2.1.1.Program meminta user untuk memasukkan nama dan alamat yang akan ditambahkan.
2.1.2.Program memanggil method Tambah dari class classop.
2.1.2.1.Linked list belum berisi node (head = null)
2.1.2.1.1.Head dan ptr ditempatkan pada node tersebut.
2.1.2.2.Linked list berisi node.
2.1.2.2.1.Ptr.next ditempatkan pada node tersebut.
2.1.2.2.2.Ptr ditempatkan pada ptr.next.
2.1.3.Program menanyakan apakah user ingin menambahkan node lagi.
2.1.3.1.Program akan menjalankan operasi Tambah kembali.
2.1.3.2.Program menghentikan operasi Tambah.
2.2.Operasi Hapus.
2.2.1.Program meminta user memasukkan nama yang akan dihapus.
2.2.2.Program memanggil method Hapus dari class classop.
2.2.2.1.Selama node yang akan dihapus (hapus1) bukan null atau ada pada linkedlist, akan terjadi looping.
2.2.2.1.1.Hapus1 sama dengan hapus1.nama.
2.2.2.1.1.1.Hapus1 adalah head.
2.2.2.1.1.1.1.Head ditempatkan pada hapus1.next.
2.2.2.1.1.1.2.Hapus1 diinisialisasi dengan nilai null dan operasi Hapus dihentikan.
2.2.2.1.1.2.Hapus1 bukan head.
2.2.2.1.1.2.1.Hapus2 (node dibelakang node yang akan dihapus) selanjutnya adalah hapus1.next.
2.2.2.1.1.2.2.Hapus2.next berisi null
2.2.2.1.1.2.2.1.Ptr ditempatkan pada hapus2.
2.2.2.1.1.2.3.Hapus1 diinisialisasi dengan nilai null dan operasi Hapus dihentikan.
2.2.2.1.2.Hapus1 tidak sama dengan hapus1.nama.
2.2.2.1.2.1.Hapus2 ditempatkan pada hapus1.
2.2.2.1.2.2.Hapus1 ditempatkan pada hapus1.next.
2.2.2.2.Hapus1 adalah null.
2.2.2.2.1.Program menampilkan laporan bahwa node yang akan dihapus tidak ditemukan.
2.3.Operasi Cetak.
2.3.1.Program memanggil method Cetakdari class classop
2.3.2.Inisialisasi variable cetak = head.
2.3.3.Selama cetak tidak berisi null akan dilooping.
2.3.3.1.Mencetak cetak.nama dan cetak.alamat.
2.3.3.2.Menempatkan cetak pada cetak.next.
2.4.Program menampilkan laporan bahwa operasi yang dipilih tidak ada.
3.Program menanyakan apakah user ingin memilih operasi yang lain.
3.1.Program mengulangi dari awal (looping).
3.2.Program menampilkan statemen terima kasih.
Source Code Program :
import javax.swing.*;
public class DN
{
public static void main(String[] args)
{
classop Operasi=new classop();
JOptionPane.showMessageDialog(null," MODUL 1 PSD\n DAFTAR NAMA\nOleh KELOMPOK 84","SELAMAT DATANG",JOptionPane.INFORMATION_MESSAGE);
System.out.println(" MODUL 1 PSD DAFTAR NAMA Oleh KELOMPOK 84");
System.out.println(" <<<<<<<==========================>>>>>>>\n");
int jawab1=0, jawab3=0;
do
{
String operasi=JOptionPane.showInputDialog("Operasi yang dapat Anda pilih :\n1.Tambah\n2. Hapus\n3. Cetak");
int op=Integer.parseInt(operasi); //konversi string-int
switch(op)
{
case 1 :
{
do
{
String tambah1=JOptionPane.showInputDialog("Menambahkan Nama :");
System.out.print("\nMenambahkan Nama ("+tambah1+")");
String tambah2=JOptionPane.showInputDialog("Menambahkan Alamat :");
System.out.print("\nMenambahkan Alamat ("+tambah2+")");
Operasi.Tambah(tambah1,tambah2);
String jawab=JOptionPane.showInputDialog("Tekan '1' jika ingin menambahkan lagi");
jawab1=Integer.parseInt(jawab);
}
while(jawab1==1);
}
break;
case 2 :
{
String hapus=JOptionPane.showInputDialog("Menghapus Data Tentang :");
System.out.print("\nMenghapus Data ("+hapus+")");
Operasi.Hapus(hapus);
}
break;
case 3 :
{
System.out.println();
Operasi.Cetak();
}
break;
default :
JOptionPane.showMessageDialog(null,"Maaf, operasi yang Anda pilih tidak ada","LAPORAN",JOptionPane.ERROR_MESSAGE);
}
String jawab2=JOptionPane.showInputDialog("Tekan '1' jika ingin memilih operasi yang lain");
jawab3=Integer.parseInt(jawab2);
}
while(jawab3==1);
JOptionPane.showMessageDialog(null,"TERIMA KASIH ATAS KUNJUNGAN ANDA","SAMPAI JUMPA",JOptionPane.INFORMATION_MESSAGE);
}
}
//============================================================================//
class classnd
{
public String nama;
public String alamat;
public classnd next;
}
//============================================================================//
class classop
{
private classnd head, ptr;
public void classop()
{
head=null;
ptr=null;
}
public void Tambah(String tambah1, String tambah2)
{
classnd node=new classnd();
node.nama=tambah1;
node.alamat=tambah2;
if(head==null)
{
head=ptr=node; //blm ada isi
}
else
{
ptr.next=node; //pointer next menunjuk ke node
ptr=ptr.next; //pointer menunjuk ke pointer next(node)
}
}
public void Hapus(String hapus)
{
classnd hapus1=head, hapus2=head;
while(hapus1!=null)
{
if(hapus.equals(hapus1.nama)) //cek kesamaan 2 string
{
if(hapus1==head)
{
head=hapus1.next;
hapus1=null;
return; //kembali ke fungsi
}
Posted By : Evan Yofiyanto @ Evan’s Blog : Kuliah Informatika (kuliahinformatika.wordpress.com) [FREAX]
else
{
hapus2.next=hapus1.next;
if(hapus2.next==null)
{
ptr=hapus2;
}
hapus1=null;
return;
}
}
else
{
hapus2=hapus1;
hapus1=hapus1.next;
}
}
if(hapus1==null)
JOptionPane.showMessageDialog(null,"Maaf, data yang akan Anda hapus tidak ditemukan","LAPORAN",JOptionPane.ERROR_MESSAGE);
}
public void Cetak()
{
classnd cetak=head; //cetak mulai dari head
System.out.println("Mencetak LinkList:");
System.out.println("Nama Alamat");
while(cetak!=null) //berisi
{
System.out.print(cetak.nama);
System.out.print(" "+cetak.alamat+"\n");
cetak=cetak.next; //cetak selanjutnya
}
System.out.print("null null");
System.out.println();
}
}



Lagi belajar neh, maklum baru semester 1 jadi masih bingung bahasa pemrograman, mohon bimbingan dari master.
[...] Stack & Queue : Implementasi Prefix & Sufix dalam Java [...]