Stack & Queue : Implementasi Prefix & Sufix dalam Java

7 04 2010

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

}

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

}

}

Posted By : Evan Yofiyanto @ Evan’s Blog : Kuliah Informatika (kuliahinformatika.wordpress.com)

[FREAX]


Actions

Information

4 responses

14 05 2010
beasiswa s1

Lagi belajar neh, maklum baru semester 1 jadi masih bingung bahasa pemrograman, mohon bimbingan dari master.

5 07 2011
java – Midnight Class

[…] Stack & Queue : Implementasi Prefix & Sufix dalam Java […]

22 04 2013
j

maksudnya apa ini. antara judul dan isi tidak sesuai

12 12 2014

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: