Desain
Hasil :
package hanoi;
import java.io.FileOutputStream;
import java.io.PrintStream;
import javax.swing.JOptionPane;
import java.io.FileOutputStream;
import java.io.PrintStream;
import javax.swing.JOptionPane;
public final class HanoiGui extends javax.swing.JFrame {
/** Creates new form HanoiGui */
static int moves = 0;
static int totalDisks = 0;
private String Pindah;
int jumlah;
public HanoiGui() {
initComponents();
}
public void test() throws java.io.IOException{
int disks = 0;
char tiang1 = 'A';
char tiang2 = 'B';
char tiang3 = 'C';
//char toZero ='D';
String angka=textisi.getText();
jumlah=Integer.parseInt(angka);
totalDisks = jumlah;
if(totalDisks > 10){
jTextIsi.setText("Masih Dalam Proses.............\n");
}
FileOutputStream fos = new FileOutputStream("Hanoi.txt");
PrintStream ps = new PrintStream(fos); // objek tempat informasi bisa dicetak
solveHanoi(jumlah, tiang1, tiang2, tiang3, ps);
ps.close();
jTextIsi.append(" Jumlah Angka = "+ jumlah+"\n"+
"Hasil perpindahan : "+ moves +"\n"+"Menara Hanoi Berpindah" +"\n"
+ "Terima Kasih \n");
}
public void solveHanoi(int disks, char tiang1, char tiang2, char tiang3,PrintStream ps) {
if (disks >= 1) {
solveHanoi(disks-1, tiang1, tiang3, tiang2,ps);
moveDisk(tiang1, tiang2, ps);
solveHanoi(disks-1, tiang3,tiang2, tiang1, ps);
}
}
public void moveDisk(char tiang1, char tiang2,PrintStream ps) {
moves++;
if(totalDisks <= 30){
ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
}else{
ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
}
}
/** Creates new form HanoiGui */
static int moves = 0;
static int totalDisks = 0;
private String Pindah;
int jumlah;
public HanoiGui() {
initComponents();
}
public void test() throws java.io.IOException{
int disks = 0;
char tiang1 = 'A';
char tiang2 = 'B';
char tiang3 = 'C';
//char toZero ='D';
String angka=textisi.getText();
jumlah=Integer.parseInt(angka);
totalDisks = jumlah;
if(totalDisks > 10){
jTextIsi.setText("Masih Dalam Proses.............\n");
}
FileOutputStream fos = new FileOutputStream("Hanoi.txt");
PrintStream ps = new PrintStream(fos); // objek tempat informasi bisa dicetak
solveHanoi(jumlah, tiang1, tiang2, tiang3, ps);
ps.close();
jTextIsi.append(" Jumlah Angka = "+ jumlah+"\n"+
"Hasil perpindahan : "+ moves +"\n"+"Menara Hanoi Berpindah" +"\n"
+ "Terima Kasih \n");
}
public void solveHanoi(int disks, char tiang1, char tiang2, char tiang3,PrintStream ps) {
if (disks >= 1) {
solveHanoi(disks-1, tiang1, tiang3, tiang2,ps);
moveDisk(tiang1, tiang2, ps);
solveHanoi(disks-1, tiang3,tiang2, tiang1, ps);
}
}
public void moveDisk(char tiang1, char tiang2,PrintStream ps) {
moves++;
if(totalDisks <= 30){
ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
}else{
ps.print("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
jTextIsi.append("Berpindah dari " + tiang1 + " ke " + tiang2 + ". "+"\n");
}
}
private void textisiKeyTyped(java.awt.event.KeyEvent evt) {
if (!Character.isDigit(evt.getKeyChar())) { // berfungsi untuk mengantisipasi input karakter, jika selain angka tidak bisa ditmpilkan
evt.consume();
}
}
public void enter(){
String kesalahan=textisi.getText();
if(kesalahan.length()==0){
JOptionPane.showMessageDialog(null,"Field Kosong ","Information",JOptionPane.ERROR_MESSAGE);
}else{
try {
test();
} catch (Exception ex) {
// Logger.getLogger(HanoiGui.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null,"Terjadi kesalahan karakter berlebih ","Information",JOptionPane.INFORMATION_MESSAGE);
}
}
}
private void buttonmasukActionPerformed(java.awt.event.ActionEvent evt) {
enter(); // untuk mengeksekusi input
}
private void buttonkeluarActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Terima Kasih");
System.exit(0); // untuk keluar dari program
}
private void buttonkosongActionPerformed(java.awt.event.ActionEvent evt) {
jTextIsi.setText(" "); // untuk mengosongkan isi teks output
}
if (!Character.isDigit(evt.getKeyChar())) { // berfungsi untuk mengantisipasi input karakter, jika selain angka tidak bisa ditmpilkan
evt.consume();
}
}
public void enter(){
String kesalahan=textisi.getText();
if(kesalahan.length()==0){
JOptionPane.showMessageDialog(null,"Field Kosong ","Information",JOptionPane.ERROR_MESSAGE);
}else{
try {
test();
} catch (Exception ex) {
// Logger.getLogger(HanoiGui.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null,"Terjadi kesalahan karakter berlebih ","Information",JOptionPane.INFORMATION_MESSAGE);
}
}
}
private void buttonmasukActionPerformed(java.awt.event.ActionEvent evt) {
enter(); // untuk mengeksekusi input
}
private void buttonkeluarActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(this, "Terima Kasih");
System.exit(0); // untuk keluar dari program
}
private void buttonkosongActionPerformed(java.awt.event.ActionEvent evt) {
jTextIsi.setText(" "); // untuk mengosongkan isi teks output
}
Hasil :
1. Silahkan masukkan komentar
2. Berkomentar dengan kata-kata yang santun
3. Jangan menggunakan kata-kata kotor
4. Jika anda tidak suka dengan yang kami sajikan, lebih baik jangan di baca
5. Tinggalkan link web/blog anda agar admin bisa visit back
6. Jadilah pengunjung yang baik
7. Kami hanya memberikan informasi dari sumber-sumber yang bisa admin percaya.
8. Maaf jika ada salah satu artikel tidak ada sumbernya.
EmoticonEmoticon