Java chart

23.40 viia 0 Comments

Udah pada tau JFreeChart blom ??? yang master di java pasti udah tau. Yup, JFreeChart adalah sebuah Library yang akan membantu kita dalam membuat sebuah grafik, baik itu grafik batang, lingkaran, garis dan sebagainya. JFreeChart dapat di download di situs resminya yaitu di http://www.jfree.org/jfreechart/ dan tentu saja library ini 100% free. Nah pada tulisan kali ini saya mencoba membagi bagaimana caranya membuat sebuah grafik dengan bantuan JFreeChart ini. Grafik yang akan saya coba buat yaitu grafik berbentuk lingkaran atau Pie Chart. Pertama kita buat dulu kelas yang mengextends JPanel, karena grafik akan saya letakkan dalam sebuah panel. IDE yang saya gunakan adalah Netbeans 6.9.1. Sebelumnya add dulu library yang telah didownload pada project masing – masing

Jika sudah mari kita mulai melakukan coding. Berikut Codenya :








/*

* IF THERE ANY QUESTION.

* PLEASE CONTACT ME AT.

* "stop.drunk@gmail.com"

*/



package aryawiratama.grafik;



import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartPanel;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

import org.jfree.chart.plot.PiePlot;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.data.general.PieDataset;



/**

*

* @author Arya Wiratama

*/

public class PieChart extends JPanel{

private JFreeChart piechart;

private ChartPanel panel;

public PieChart(){

panel = createChart(createData());

panel.setPreferredSize(new Dimension(500,500));



setLayout(new BorderLayout());

add(panel,BorderLayout.CENTER);

}



private PieDataset createData() {

DefaultPieDataset data = new DefaultPieDataset();

data.setValue("Windows",300);

data.setValue("Linux", 200);

data.setValue("Lainnya", 100);

return data;

}



private ChartPanel createChart(PieDataset data) {

piechart = ChartFactory.createPieChart("Data Pengguna OS", data, true, true, false);

PiePlot plot = (PiePlot) piechart.getPlot();

plot.setSectionPaint("Windows", new Color(135,206,250));

plot.setSectionPaint("Linux", new Color(205,133,63));

plot.setSectionPaint("Lainnya", new Color(255,105,180));

plot.setNoDataMessage("Data Tidak Ada");

plot.setExplodePercent("Linux", 0.1D);

plot.setLabelBackgroundPaint(new Color(255,228,225));

plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} ({2})"));

plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("Pengguna {0}"));

// Key = 0 ----> section as String (Windows, Linux, Lainnya)

// Key = 1 ----> section as value (300,200,100)

// KEy - 2 ----> section as percentage (50%,33%,17 %) Muncul jika aplikasi telah di running

plot.setSimpleLabels(true);

plot.setInteriorGap(0.0D);

return new ChartPanel(piechart);

}

}




Dan kode dibawah ini untuk menempelkan grafik pada JFrame yang telah dibuat.



/*

* IF THERE ANY QUESTION.

* PLEASE CONTACT ME AT.

* "stop.drunk@gmail.com"

*/



/*

* FrameUtama.java

*

* Created on 17 Jan 11, 14:10:27

*/



package aryawiratama.grafik;



import java.awt.BorderLayout;

import javax.swing.JPanel;



/**

*

* @author Arya Wiratama

*/

public class FrameUtama extends javax.swing.JFrame {

private JPanel panel;

private PieChart piechart;

public FrameUtama() {

setTitle("GRAFIK DENGAN JFREECHART");

piechart = new PieChart();

setLayout(new BorderLayout());

getContentPane().add(piechart,BorderLayout.CENTER);

initComponents();

}



public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new FrameUtama().setVisible(true);

}

});

}



// Variables declaration - do not modify

private aryawiratama.grafik.PieChart pieChart1;

// End of variables declaration



}


Jika sudah selesai melakukan coding, langsung saja dicompile tapi jangan di running dulu. Kita harus menarik panel chartnya dan meletakkannya didalam JFrame. Seperti ini nih



Nah setelah itu baru di running pada class yang mengextends JFrame karena disana ada method main. Nah nanti hasilnya akan seperti ini.


Library Untuk Membuat Grafik Pada Netbeans

Agar dapat membuat grafik/chart pada netbeans (java), maka dibutuhkan beberapa library
Diantaranya yaitu :

1. JFreechart
2. JCommon

Library-library tersebut dimasukkan pada netbeans dengan cara :
Pada menu tab pilih Tools->Libraries..
Kemudian tekan tombol Add Jar/Folder
Masukkan library-library yang telah anda download
Kemudian Tekan "OK"



sumber dari :
1. http://aryawiratama.wordpress.com/2011/01/17/membuat-pie-chart-menggunakan-jfreechart/


0 komentar:

contoh dan langkah dalam membuat program enkripsi dan deskrisi

22.59 viia 0 Comments


Langkah dalam membuat program diatas diantaranya :
1. buat project baru dan beri nama sesuai dengan keinginan hati
2. pilih file JFrame Form
3. kita buat tampilan seperti gambar di atas
4. ganti nama pada masing-masing object, misalkan jika nama objek sebelum dirubah "button" maka ganti nama tersebut misal btnsave , digunakan unutk mempermudah pembacaan
5. lalu masukkan coding yang ada


dibawah ini merupakan source-code :

import javax.swing.*;
import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.filechooser.FileFilter;

public class NewJFrame extends javax.swing.JFrame {

public NewJFrame() {
initComponents();
//Saat di awal aplikasi
//Judul = Untitled
this.setTitle("Untitled - NOTES");
//Atur Fillter jenis file dengan Handle fc
fc = new JFileChooser();
fc.addChoosableFileFilter(new jenisFile(EXT));
fc.addChoosableFileFilter(new jenisFile(EXT2));
//Filter Bawaan (All Files) di disable-kan
fc.setAcceptAllFileFilterUsed(false);
//variabel fileBaru diinisialisai dengan TRUE
fileBaru = true;
}
JFileChooser fc;
File file;
boolean fileBaru;
final String[] EXT = {".csv"};
final String[] EXT2 = {".txt", ".java"};
public String text, namafiletext;

private void msg(String pesan) {
JOptionPane.showMessageDialog(this, pesan, "Informasi", JOptionPane.INFORMATION_MESSAGE);
}

private boolean okToReplace() {
return (JOptionPane.showConfirmDialog(this, "File " + file.getName() + " Sudah Ada\n" + "Akan Ditimpa ?",
"Peringatan", JOptionPane.YES_NO_OPTION) == 0);
}

class jenisFile extends FileFilter {

private String[] s;

jenisFile(String[] sArg) {
s = sArg;
}
// Tentukan file apa yang akan ditampilkan
public boolean accept(File fArg) {
if (fArg.isDirectory()) {
return true;
}
// Jika Extension dari file sesuai syarat, tampilkan
for (int i = 0; i < s.length; ++i) {
if (fArg.getName().toLowerCase().indexOf(s[i].toLowerCase()) > 0) {
return true;
}
}
// selain kedua hal di atas, anggap false
return false;
}

public String getDescription() {
String tmp = "";
for (int i = 0; i < s.length; ++i) {
tmp += "*" + s[i] + " ";
}
return tmp;
}
}

private void SimpanFile() {
PrintWriter pw = null;
try {
pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
} catch (IOException e) {
msg("Gagal Simpan File : '" + file.getName());
return;
}
pw.print(isi1.getText());
pw.close();
this.setTitle(file.getName() + " - NOTES");
fileBaru = false;
}

class Enskripsimd5 {

private String convertToHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9)) {
buf.append((char) ('0' + halfbyte));
} else {
buf.append((char) ('a' + (halfbyte - (int) geser.getValue())));
}
halfbyte = data[i] & 0x0F;
} while (two_halfs++ < 1);
}
return buf.toString();
}

public String MD5(String text)
throws NoSuchAlgorithmException, UnsupportedEncodingException {
MessageDigest md;
md = MessageDigest.getInstance("MD5");
byte[] md5hash = new byte[32];
md.update(text.getBytes("iso-8859-1"), 0, text.length());
md5hash = md.digest();
return convertToHex(md5hash);

}
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new NewJFrame().setVisible(true);
}
});
}

private String readFile(File file) {
String result = "";
try {
FileInputStream fis = new FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(fis);
DataInputStream dis = new DataInputStream(bis);
while (dis.available() != 0) {
result += dis.readLine() + "\n";
}
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
return result;
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
//
private void initComponents() {

buka = new javax.swing.JButton();
simpan = new javax.swing.JButton();
simpan_sbg = new javax.swing.JButton();
keluar = new javax.swing.JButton();
baru = new javax.swing.JButton();
enkripsi = new javax.swing.JButton();
md5_1 = new javax.swing.JButton();
random1 = new javax.swing.JButton();
lblnamafile = new javax.swing.JLabel();
lblisifile = new javax.swing.JLabel();
nama_file = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
md5_2 = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
save = new javax.swing.JButton();
saveas2 = new javax.swing.JButton();
random2 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
isi2 = new javax.swing.JTextArea();
jScrollPane2 = new javax.swing.JScrollPane();
isi1 = new javax.swing.JTextArea();
geser = new javax.swing.JSpinner();
password1 = new javax.swing.JButton();
password2 = new javax.swing.JButton();
pass1 = new javax.swing.JTextField();
pass2 = new javax.swing.JTextField();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setBackground(javax.swing.UIManager.getDefaults().getColor("EditorPane.inactiveForeground"));

buka.setIcon(new javax.swing.ImageIcon("D:\\CD BUKU\\CD BONUS\\Program Demo Project\\icon1\\47.png")); // NOI18N
buka.setText("buka file");
buka.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bukaActionPerformed(evt);
}
});

simpan.setIcon(new javax.swing.ImageIcon("D:\\CD BUKU\\CD BONUS\\Program Demo Project\\icon2\\45.png")); // NOI18N
simpan.setText("simpan file");
simpan.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
simpanActionPerformed(evt);
}
});

simpan_sbg.setIcon(new javax.swing.ImageIcon("D:\\CD BUKU\\CD BONUS\\Program Demo Project\\icon2\\46.png")); // NOI18N
simpan_sbg.setText("simpan sebagai");
simpan_sbg.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
simpan_sbgActionPerformed(evt);
}
});

keluar.setText("keluar");
keluar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
keluarActionPerformed(evt);
}
});

baru.setIcon(new javax.swing.ImageIcon("D:\\CD BUKU\\CD BONUS\\Program Demo Project\\icon1\\21.png")); // NOI18N
baru.setText("new file");
baru.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
baruActionPerformed(evt);
}
});

enkripsi.setText("lakukan enkripsi");

md5_1.setText("MD5");
md5_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
md5_1ActionPerformed(evt);
}
});

random1.setText("random");
random1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
random1ActionPerformed(evt);
}
});

lblnamafile.setText("nama file");

lblisifile.setText("Isi file asli");

jLabel3.setText("geser");

md5_2.setText("MD5");

jLabel4.setText("isi file telah di enkripsi");

save.setText("save");
save.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveActionPerformed(evt);
}
});

saveas2.setText("save as");
saveas2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveas2ActionPerformed(evt);
}
});

random2.setText("random");
random2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
random2ActionPerformed(evt);
}
});

isi2.setColumns(20);
isi2.setRows(5);
jScrollPane1.setViewportView(isi2);

isi1.setColumns(20);
isi1.setRows(5);
jScrollPane2.setViewportView(isi1);

password1.setText("password");
password1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
password1ActionPerformed(evt);
}
});

password2.setText("password");
password2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
password2ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(buka)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(simpan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(simpan_sbg)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 111, Short.MAX_VALUE)
.addComponent(keluar)
.addGap(18, 18, 18))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(baru)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(enkripsi))
.addGroup(layout.createSequentialGroup()
.addComponent(lblnamafile)
.addGap(18, 18, 18)
.addComponent(nama_file, javax.swing.GroupLayout.PREFERRED_SIZE, 111, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(lblisifile)
.addGroup(layout.createSequentialGroup()
.addComponent(md5_1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(random1)))
.addGap(17, 17, 17)
.addComponent(jLabel3))
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 282, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(35, 35, 35)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(geser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addGap(10, 10, 10)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel4)
.addComponent(md5_2, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(save, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(random2, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(saveas2, javax.swing.GroupLayout.Alignment.LEADING)))
.addGroup(layout.createSequentialGroup()
.addComponent(password2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(pass2, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE))
.addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 190, Short.MAX_VALUE))))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(password1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(pass1, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(simpan)
.addComponent(simpan_sbg)
.addComponent(buka)
.addComponent(keluar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(baru)
.addComponent(enkripsi)
.addComponent(jLabel3)
.addComponent(geser, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblnamafile)
.addComponent(nama_file, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(lblisifile)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(md5_1)
.addComponent(random1)))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(41, 41, 41)
.addComponent(md5_2, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4))
.addGroup(layout.createSequentialGroup()
.addGap(5, 5, 5)
.addComponent(save)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(saveas2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(random2))))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addGap(45, 45, 45)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 159, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(password1)
.addComponent(pass1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(password2)
.addComponent(pass2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);

pack();
}//


private void bukaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
JFileChooser fc = new JFileChooser();
JFrame jf = new JFrame();
int ret = fc.showOpenDialog(jf.add(fc));
if (ret == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
text = readFile(file);
isi1.setText(text);
namafiletext = file.getPath().toString();
nama_file.setText(namafiletext);
}
}

private void simpanActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (fileBaru) {
simpan.doClick();
} else {
SimpanFile();
}
}

private void simpan_sbgActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
if (!file.exists() || okToReplace()) {
SimpanFile();
}
}
}

private void baruActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
isi1.setText("");
isi1.requestFocus();
this.setTitle("Untitled - NOTES");
fileBaru = true;
}

private void keluarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}

private void md5_1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
save.setEnabled(true);
password2.setEnabled(true);
pass2.setEnabled(true);
isi2.setEnabled(true);
saveas2.setEnabled(true);
md5_2.setEnabled(true);
random2.setEnabled(true);

Enskripsimd5 md5 = new Enskripsimd5();
try {
isi2.setText(md5.MD5(isi1.getText()));

} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(NewJFrame.class.getName()).log(Level.SEVERE, null);
}
}

private void random1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
save.setEnabled(true);
password1.setEnabled(true);
pass2.setEnabled(true);
isi2.setEnabled(true);
saveas2.setEnabled(true);
md5_2.setEnabled(true);
random2.setEnabled(true);
String randomKey = "";
double randomNumber;
for (int i = 0; i < isi1.getText().length(); i++) {
randomNumber = Math.random() * 25 + 65;
randomKey = randomKey + (char) randomNumber;
}

isi2.setText(randomKey);
}

private void saveActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (fileBaru) {
saveas2.doClick();
} else {
SimpanFile();
}
}

private void saveas2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
file = fc.getSelectedFile();
if (!file.exists() || okToReplace()) {
SimpanFile();
}
}
}

private void random2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String randomKey = "";
double randomNumber;
for (int i = 0; i < isi2.getText().length(); i++) {
randomNumber = Math.random() * 25 + 65;
randomKey = randomKey + (char) randomNumber;
}

isi1.setText(randomKey);
}

private void password1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (pass2.getText().equals(pass1.getText())) {
msg("password anda benar : " + pass1.getText());
isi1.setText(isi2.getText());
} else {
msg("password anda salah : " + pass1.getText());
}
}

private void password2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (pass1.getText().equals(pass2.getText())) {
msg("password anda benar : " + pass2.getText());
isi2.setText(isi1.getText());
} else {
msg("password anda salah : " + pass2.getText());
}
}
/**
* @param args the command line arguments
*/
// Variables declaration - do not modify
private javax.swing.JButton baru;
private javax.swing.JButton buka;
private javax.swing.JButton enkripsi;
private javax.swing.JSpinner geser;
private javax.swing.JTextArea isi1;
private javax.swing.JTextArea isi2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JButton keluar;
private javax.swing.JLabel lblisifile;
private javax.swing.JLabel lblnamafile;
private javax.swing.JButton md5_1;
private javax.swing.JButton md5_2;
private javax.swing.JTextField nama_file;
private javax.swing.JTextField pass1;
private javax.swing.JTextField pass2;
private javax.swing.JButton password1;
private javax.swing.JButton password2;
private javax.swing.JButton random1;
private javax.swing.JButton random2;
private javax.swing.JButton save;
private javax.swing.JButton saveas2;
private javax.swing.JButton simpan;
private javax.swing.JButton simpan_sbg;
// End of variables declaration
}

0 komentar:

Mysql dengan Java

22.56 viia 0 Comments

Agar aplikasi Java bisa terkoneksi dengan MySQL diperlukan driver sebagai perantara Java dan MySQL. Driver tersebut bisa di-download di situs resminya MySQL.

[ Download MySQL Connector ]

Ekstrak file hasil download (tipe file: *.jar). Salin file tersebut ke direktori [instalasi jre]/lib/ext/. Ok, aplikasi Java anda siap untuk dikoneksikan dengan MySQL.

Uji Coba
Kode di bawah ini digunakan untuk menghubungkan Java dengan MySQL.
/*
* DBConnection.java
*
* Created on 29 September 2007, 11:41
*
*/

import java.sql.*;

/**
*
* @author Dani Gunawan
*/
public class DBConnection {

/** Creates a new instance of DBConnection */
public DBConnection() {
}

public Connection connect() {
Connection conn = null;

try
{
String userName = “root”;
String password = “”;
String url = “jdbc:mysql://localhost/test”;
Class.forName (“com.mysql.jdbc.Driver”).newInstance ();
conn = DriverManager.getConnection (url, userName, password);
} catch (Exception e) {
e.printStackTrace();
conn = null;
} finally {
if (conn != null)
{
try
{
conn.close ();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}

return conn;
}
}

Sedangkan kode di bawah ini untuk pengetesan koneksi.

/**
* TesConnection.java
*/
import java.sql.*;

public class TesConnection {

public static void main(String args[]) {

Connection dbcon = new DBConnection().connect();

if (dbcon != null) {
System.out.println(“Database connection is successfully created”);
} else {
System.out.println(“Database connection isn’t successfully created”);
}
}

}

How to Use Them?
Letakkan kedua source pada folder yang sama. Kompile DBConnection.java, kemudian TesConnection.java.

javac DBConnection.java

javac TesConnection.java

Atau kalo mo praktis, gunakan wildcard asterisk (*).

javac *.java

Jalankan TesConnection:

java TesConnection

Bila hasilnya:

Database connection is successfully created

artinya database telah terkoneksi, tetapi bila:

Database connection isn’t successfully created

artinya database anda belum terkoneksi.
Kemungkinan:
- MySQL belum diinstal
- Nama database tidak ditemukan
- User atau password salah

Kedua source di atas dapat di-download melalui link di bawah:

[ Download file contoh koneksi Java & MySQL ]

NB:
Percobaan dilakukan di sistem operasi Windows XP Sp 2, belum pernah dilakukan di sistem operasi lain.

Semoga bermanfaat… :)


diambil dari : http://danigunawan.com/komputer/koneksi-java-mysql/

0 komentar:

Stream, Reader, dan Writer 4

22.43 viia 0 Comments

Enkripsi

Enkripsi tidak bisa lepas dari kriptografi, ato bisa disebut enkripsi adalah bagian dari kriptografi. Kriptografi sendiri adalah :

Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan
agar aman. (Cryptography is the art and science of keeping messages
secure. [45]) “Crypto” berarti “secret” (rahasia) dan “graphy” berarti
“writing” (tulisan) [3]. Para pelaku atau praktisi kriptografi disebut
cryptographers. Sebuah algoritma kriptografik (cryptographic algorithm),
disebut cipher, merupakan persamaan matematik yang digunakan untuk
proses enkripsi dan dekripsi. (Budi Raharjo, Keamanan Sistem Informasi Berbasis Internet)

Sedangkan enkripsi adalah :

Enkripsi (encryption) yang merupakan bagian dari seni kriptografi, adalah proses yang dilakukan untuk mengamankan sebuah pesan (plaintext) menjadi pesan yang tersembunyi (ciphertext). Plaintext adalah pesan yang belum dienkripsi, sedangkan ciphertext adalah pesan setelah dienkripsi yang sudah tidak dapat dibaca dengan mudah. Sedangkan proses sebaliknya, untuk mengubah ciphertext menjadi plaintext atau proses untuk menterjemahkan pesan yang sudah dienkripsi kedalam bentuk pesan aslinya disebut dekripsi (decryption).

Intinya dengan di enkripsi pesan yang kita sampaikan kepada orang lain tidak bisa dibaca oleh orang yang tidak berhak. Seperti kalo dulu neh (sblm ada SMS) surat cinta gt.. :D , siapa yang mau surat cintanya dibaca orang lain,makanya pake ekripsi donk donk hehehe…Nah Enkripsi tersebut merupakan bagian dari Kriptografi.

Ini dia program ato aplikasi enkripsi yang aku buat eehh…aku edit :D . Tak kasih screenshotnya

Misal kata yg mau disampaikan ke target…”JADI PACAR KU DONK” (arrrgh…jadul bgt ga romantis :D ), nah kan malu tuh kalo kebaca temen keliatan ga ada sisi romantisnya hehe.. nah kalo di enkripsi dengan pergeseran 20 ato A=U huruf urutan abjadnya kyk gini :

ABCDEFGHIJKLMNOPQRSTUVWXYZ

UVWXYZABCDEFGHIJKLMNOPQRST

Jadinya :

Nah tu DUXC..bla..bla..bla susah kan bacanya, untuk membcanya si ‘target’ harus punya aplikasi ini juga, sesuaikan di pergeseran hurufnya kemudian klik |Dekripsi|. Akhirnya si ‘target’ tau juga isi hati ku :D

pengen buat..neh tak kasih sourcenya pake Visual Basic kok gampang :D :

Private Sub cmdDecrypt_Click()
Var = Text1.Text
Text2 = “”
If Var < 26 Then
N = Len(Trim(Text3))
For i = 1 To N
Cipher = Mid(Text3, i, 1)
Plain = Chr(Asc(Cipher) + 26 - Var)
If Asc(Plain) > 90 Then
Text2.SelText = Chr(64 + (Asc(Plain) - 90))
Else
Text2.SelText = Plain
End If
Next
Else
MsgBox “Masukan angka 1 s/d 25″, vbOKOnly + vbInformation, “Peringatan”
Text1 = “”
End If
End Sub

Private Sub cmdEncrypt_Click()
Var = Text1.Text
Text2 = “”
If Var < 26 Then
N = Len(Trim(Text3))
For i = 1 To N
Cipher = Mid(Text3, i, 1)
Plain = Chr(Asc(Cipher) + Var)
If Asc(Plain) > 90 Then
Text2.SelText = Chr(64 + (Asc(Plain) - 90))
Else
Text2.SelText = Plain
End If
Next
Else
MsgBox “Masukan angka 1 s/d 25″, vbOKOnly + vbInformation, “Peringatan”
Text1 = “”
End If
End Sub

Private Sub Command1_Click()
If MsgBox(” Anda yakin mau keluar dari program ini?”, vbYesNo + vbInformation, “Peringatan”) = vbYes Then
If MsgBox(” Thankyou”, vbOKOnly, “Say…) = vbOK Then
Unload Me
End If
End If
End Sub

Private Sub Command3_Click()
Text3 = “”: Text2 = “”
End Sub

Private Sub Text3_KeyPress(KeyAscii As Integer)
Text3.SetFocus
If KeyAscii = 8 Then Exit Sub
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If Not (KeyAscii >= 65 And KeyAscii <= 90) Then
KeyAscii = 0
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If Not (KeyAscii >= 47 And KeyAscii <= 57) Then
KeyAscii = 0
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If Not (KeyAscii >= 65 And KeyAscii <= 90) Then
KeyAscii = 0
End If
End Sub

Sedikit penjelasan

Proses enkripsi dijalankan dengan memanfaatkan kode ASCII. Setiap karakter yang dapat diketikan melalui keyboard selalu memiliki kode ASCII berupa angka-angka (data numerik) yang terurut. Misalnya kode ASCII dari karakter “A” adalah 65, “B” adalah 66 dan seterusnya. Jadi untuk merubah/menggeser karakter “A” menjadi “D” yaitu geser 3 atau sesuai dengan Variabel Var pada Text1 yang telah diinputkan. Dalam ASCII A=65 maka 65+3 = 68, 68 merupakan huruf D. Fungsi Chr() digunakan untuk mengkonversi data angka menjadi karakter sesuai dengan tabel ASCII, sedangkan Fungsi Asc() digunakan sebaliknya, untuk mengkonversi data karakter menjadi data numerik sesuai dengan kode ASCII. Script yang digunakan seperti di bawah ini :

Private Sub cmdEncrypt_Click()
Var = Text1.Text
Text2 = “”
If Var < 26 Then
N = Len(Trim(Text3))
For i = 1 To N
Cipher = Mid(Text3, i, 1)
Plain = Chr(Asc(Cipher) + Var)
If Asc(Plain) > 90 Then
Text2.SelText = Chr(64 + (Asc(Plain) - 90))
Else
Text2.SelText = Plain
End If
Next
Else
MsgBox “Masukan angka 1 s/d 25″, vbOKOnly + vbInformation, “Peringatan”
Text1 = “”
End If
End Sub

Proses dekripsi hampir sama dengan ekripsi, hanya saja di sini dekripsi merupakan proses pembalikan dari enkripsi,yaitu jika semula di tambah 3 maka sekarang di kurangi 3 atau sesuai dengan Variabel Var. Jadi untuk merubah/menggeser karakter “D” menjadi “A” yaitu geser 3. Dalam ASCII D = 68 dan A = 65. Dalam source digunakan script Plain = Chr(Asc(Cipher) + 26 - Var) karena pada saat D (ASCII=68) di tambah 26 maka akan melewati batas yang telah ditentukan yaitu 90 sehingga akan kembali ke 68 atau D. Seuai dengan range huruf dalam ASCII adalah antara A=65 dan Z=90 . Misal D = 68 ditambah 26 nilainya 94, karena batas sudah ditentukan yaitu 90, maka nilai tersebut akan kembali ke 68. Selanjutya nilai dikurangi dengan nilai pada Variabel Var misalnya 3 maka nilainya akan menjadi 65 (68-3) atau A. Scriptnya adalah sebagai berikut

Private Sub cmdDecrypt_Click()
Var = Text1.Text
Text2 = “”
If Var < 26 Then
N = Len(Trim(Text3))
For i = 1 To N
Cipher = Mid(Text3, i, 1)
Plain = Chr(Asc(Cipher) + 26 - Var)
If Asc(Plain) > 90 Then
Text2.SelText = Chr(64 + (Asc(Plain) - 90))
Else
Text2.SelText = Plain
End If
Next
Else
MsgBox “Masukan angka 1 s/d 25″, vbOKOnly + vbInformation, “Peringatan”
Text1 = “”
End If
End Sub

Agar teks yang di ketikan pada Text2 dan Text3 tidak menyimpang maka di gunakan script di bawah ini untuk membatasi pengetikan huruf saja. Yaitu dengan menggunakan kode ASCII A=65 dan Z =90, kalo pada Text1 yaitu pada text area untuk mengetikan pergeseran huruf maka batasanya pada diganti If Not (KeyAscii >= 48 And KeyAscii <= 57), dalam ASCII 48=0 dan 57 =9, karena yang akan di ketikan hanya angka,Script :

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
KeyAscii = Asc(UCase(Chr(KeyAscii)))
If Not (KeyAscii >= 65 And KeyAscii <= 90) Then
KeyAscii = 0
End If
End Sub

Nah sekian dulu ya…semoga bermanfaat

reference :

http://helmishare.blogspot.com

http://chuz.comze.com/?p=89

0 komentar: