Folks!
untuk tugas kali ini adalah membuat program grafik sederhana di Netbeans dengan bantuan JFreeChart.
Fungsinya adalah membuat kesimpulan dari data menjadi lebih menarik, simpel dan tidak terlalu detail yaitu berupa gambaran umumnya saja.

JFreeChart ini adalah libraru gratis untuk membuat grafik pada pemrograman Java terdapat berbagai macam grafik yang dapat ditampilkan diantaranya : Pie, Bar, Line, XY, 3D dan Bubble Chart.
teman teman bisa melihat contoh dari library JFreeCgart di http://www.jfree.org/jfreechart/samples.html

oke langkah pertamanya adalah
  • Buka Netbeans
  • Buat Projek Java Application

  • Import Library yang sudah didownload tadi
                              
  • Buat Class dengan Nama PieGrafikInput maka akan tampil seperti gambar di bawah

  • Lalu Copykan file source dibawah ini ke PieGrafikInput :
package zen_pertemuan5_6;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.util.Rotation;
/**
 *
 * @author zen
 */
public class PieGrafikInput extends JFrame{
    double n1=0,n2=0, n3=0;
    public void setNilai(String nilai1, String nilai2, String nilai3){
        try {
        n1 = Double.parseDouble(nilai1);
        } catch (NumberFormatException e){}
       
        try {
        n2 = Double.parseDouble(nilai2);
        } catch (NumberFormatException e){}
       
        try {
        n3 = Double.parseDouble(nilai3);
        } catch (NumberFormatException e){}
       
        this.setSize(600,400);
        this.setTitle("diagram pie");
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
    PieDataset dataset=buildData();
    JFreeChart chart=buildChart(dataset,"Grafik Pie");
    ChartPanel pieChart=new ChartPanel(chart);
   
    this.setContentPane(pieChart);
   
}
   
    private JFreeChart buildChart(PieDataset dataset,String judul){
        JFreeChart chart= ChartFactory.createPieChart3D(judul,
                dataset,
                true,
                true,
                false);
       
         PiePlot3D plot = (PiePlot3D) chart.getPlot();
        plot.setStartAngle(290);
        plot.setDirection(Rotation.CLOCKWISE);
        plot.setForegroundAlpha(0.5f);
        return chart;
   
   
    }
   
    private PieDataset buildData() {
        DefaultPieDataset dataSet = new DefaultPieDataset();
        dataSet.setValue("Nilai 1", n1);
        dataSet.setValue("nilai 2", n2);
        dataSet.setValue("nilai 3", n3);
        return dataSet;

    }
     public static void main(String[] args) {
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (Exception e) {
    }
    SwingUtilities.invokeLater(new Runnable() {
        @Override public void run() {
            new GrafikInput().setVisible(true);
        }
    });
}
}

  • Setelah itu baru kita buat JFrame dengan Design sebagai berikut


  • Input dan masukan code pada Tab Source disamping Tab Design, Berikut Kodenya :
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package zen_pertemuan5_6;

import java.awt.Color;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;


/**
 *
 * @author zen
 */
public class GrafikInput extends javax.swing.JFrame {
    public GrafikInput() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                         
    private void initComponents() {

        j1 = new javax.swing.JTextField();
        j2 = new javax.swing.JTextField();
        j3 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        j1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                j1ActionPerformed(evt);
            }
        });

        j2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                j2ActionPerformed(evt);
            }
        });

        jLabel1.setText("Input 1");

        jLabel2.setText("Input 2");

        jLabel3.setText("Input 3");

        jButton1.setText("Grafik Pie");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("SIMPAN");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 312, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                .addComponent(jLabel1)
                                .addGap(18, 18, 18)
                                .addComponent(j1))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addGap(18, 18, 18)
                                .addComponent(j2))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
                                .addComponent(j3, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addGap(18, 18, 18)
                        .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(104, 104, 104))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(j1, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1))
                        .addGap(8, 8, 8)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(j2, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(j3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel3)))
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(16, 16, 16)
                .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(134, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                       

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        PieGrafikInput obj1 = new PieGrafikInput();
        obj1.setNilai(jLabel1.getText(),jLabel2.getText(),jLabel3.getText());
        obj1.setVisible(true);
    }                                       

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        int a,b,c;
        a=Integer.parseInt(j1.getText());
        b=Integer.parseInt(j2.getText());
        c=Integer.parseInt(j3.getText());
        jLabel1.setText(""+a);
        jLabel2.setText(""+b);
        jLabel3.setText(""+c);
    }                                       

    private void j2ActionPerformed(java.awt.event.ActionEvent evt) {                                  

    }                                 

    private void j1ActionPerformed(java.awt.event.ActionEvent evt) {                                  

    }                                 

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new GrafikInput().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                    
    private javax.swing.JTextField j1;
    private javax.swing.JTextField j2;
    private javax.swing.JTextField j3;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    // End of variables declaration                  
}

  • File akan menjadi seperti ini :


  • Setelah itu Running File GrafikInput.java maka kita sudah membuat grafik pie sederhana



Selesai.