jump to navigation

Program Pencari Bilangan Sempurna April 21, 2008

Posted by yasinisasi in Uncategorized.
trackback

Di bawah ini adalah kode untuk program pencari bilangan sempurna dengan mengaplikasikan konsep JFrame dengan interface Action Listener. File ni cocok banget kalo sampean pengin belajar dikit dikit masalah JFrame. Simpan file ini dengan nama file Sempurna.java.
Selamat mencoba

import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.awt.event.*;
public class Sempurna extends JFrame{
static int urutan,inputan;
static boolean lanjut,inputanBenar;
private JLabel LabelInputan=new JLabel(“Masukkan urutan bilangan sempurna yang Anda cari”);
private static JTextField Inputan=new JTextField();
private static JLabel status=new JLabel();
private JButton TombolHitung=new JButton(“Cari”);
private JButton TombolReset=new JButton(“Reset”);
private JPanel PanelTombol=new JPanel();
private JPanel PanelInputOutput=new JPanel();

public Sempurna() {
PanelInputOutput.setLayout(new GridLayout(3,2, 10, 10));
PanelInputOutput.add(LabelInputan);
Inputan.setToolTipText(“Ketik urutan bilangannya di sini”);
PanelInputOutput.add(Inputan);
PanelInputOutput.add(status);
setLayout(new FlowLayout(FlowLayout.LEFT));
add(PanelInputOutput);
TombolHitung.setToolTipText(“Klik untuk mencari bilangan sempurna”);
PanelTombol.add(TombolHitung);
TombolReset.setToolTipText(“Klik untuk menghapus semua teks”);
PanelTombol.add(TombolReset);
setLayout(new FlowLayout(FlowLayout.CENTER));
add(PanelTombol,BorderLayout.SOUTH);
TombolHitung.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){


urutan=0;
lanjut=true;
inputanBenar=false;
inputan=InputanUser();
if(inputanBenar){
status.setText(“Bilangan sempurna ke-“+inputan+” adalah “+Sempurnakan(inputan));
}
}
});

TombolReset.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Inputan.setText(“”);
status.setText(“”);
}
});
}
private static int InputanUser(){
int n=0;
try{
n=Integer.parseInt(Inputan.getText());
if(n>=10)
status.setText(“Bilangan terlalu besar. Harus kurang dari 10”);
else if(n>4 && n < 10){
int yakin=JOptionPane.showConfirmDialog(null,”Proses ini butuh waktu lama dan \nkemungkinan “+
“akan mengakibatkan komputer hang. \nAnda yakin untuk melanjutkan?”,”Konfirmasi”,0);
if (yakin==0) inputanBenar=true;
else{
inputanBenar=false;
Inputan.setText(“”);
status.setText(“”);
}
}
else
inputanBenar=true;
}
catch(Exception a){
inputanBenar=false;
status.setText(“Anda harus memasukkan angka!!!”);
}
return n;
}
private static int Sempurnakan(int input){
int urutan=0,bilangan;
boolean lanjut=true;
for( bilangan=1;lanjut;bilangan++){
if(IniSempurna(bilangan)){
urutan++;
if(urutan==input)
lanjut=false;
}
}
return bilangan-1;
}
private static boolean IniSempurna(int bilangan){
int jumlahFaktor=0;
for(int faktor=1;faktor<=bilangan/2;faktor++){
if(bilangan%faktor==0)
jumlahFaktor=jumlahFaktor+faktor;
}
return bilangan==jumlahFaktor;
}
public static void main(String[] args){
Sempurna frame=new Sempurna();
frame.setTitle(“Program Pencari Bilangan Sempurna”);
frame.setSize(390,180); //x , y
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}

Comments»

1. Muhamad Rizal Avif Khan - February 28, 2009

wah….emang programmer sejati kamu Sin….
Cool abiz
tapi, kalo udah di posting semua…jangan2 ntar mabanya tinggal nyontek lagi…g blajar nemuin sendiri dunk…hahahah:mrgreen:


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: