Senin, 01 Juni 2020

Membuat Grafik Dari Database

Sebelumnya kita sudah membahas mengenai cara membuat grafik pie kemudian menginput suatu data dan mengaplikasikannya kedalam grafik atau diagram. Nah.. kali ini kita akan belajar membuat grafik dari database ...

Apasih database itu?
database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Jadi kita dapat menampilkan suatu data yang telah kita simpan sebelumnya kemudian kita akan mencoba membuat grafik dari data tersebut.


Yuk mari kita buat..


Pertama-tama kita buat databasenya terlebih dahulu ..
=> Start terlebih dahulu apache dan mysql pada xampp-control agar dapat terkoneksi ke database

=> Buka web dan ketikkan keyword localhost lalu klik phpMyAdmin

=> Klik new lalu masukkan nama database yang kamu inginkan. disini saya memberi nama database dengan nama grafik kemudian masukkan nama tabel. Disini saya menggunakan 2 tabel dengan nama nilai dan datadiri. dengan 3 kolom  pada tiap - tiap tabelnya. Jika sudah, klik create.

fyi..

Name : berisi nama yang akan kalian gunakan sebagai kepala tabel seperti nama, alamat, dsb.

Type : adalah tipe dari suatu data atau variabel yang akan menjadi isi tabel.

Lenght/values : batas panjang atau banyaknya karakter pada data.

Index : diisi jika ada data yang dijadikan primary.

maka tampilannya akan seperti ini






Jika sudah, kita lanjut ke netbeans ..

1. Buatlah New Project dengan format nama kamu_NIM (cth: LuthfiaPutriNabilla_171011401199)

2. Lalu buat pula new package dan new jframe form lalu buatlah desain seperti berikut :




3. Tambahkan jfreechart dan mysql- connector ke library agar bisa membuat grafik dan terkonek ke database. tampilannya akan seperti ini :



4. Kemudian masukkan import berikut ke source :
import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

5. Masukkan source code berikut :

public class nilai extends javax.swing.JFrame {
private Connection con_MIAFILIO; 
private Statement stat_MIAFILIO; 
private ResultSet res_MIAFILIO; 
private String t_MIAFILIO; 
private DefaultTableModel dtm_MIAFILIO; 
ResultSet rs_MIAFILIO;    
String sql_MIAFILIO;
    /**
     * Creates new form nilai
     */
    public nilai() {
        initComponents();
        koneksi_MIAFILIO();         
        kosongkan_MIAFILIO();        
        tabel_MIAFILIO(); 
        kosongkan1_MIAFILIO();
        tabel1_MIAFILIO();
//membuat layout tampil di tengah pada saat ditampilkan 
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();        
        Dimension frameSize = getSize();       
        setLocation(        (screenSize.width - frameSize.width) / 2,        
         (screenSize.height - frameSize.height) / 2);
    }
private void koneksi_MIAFILIO(){ 
        try { 
        Class.forName("com.mysql.jdbc.Driver"); 
        con_MIAFILIO=DriverManager.getConnection("jdbc:mysql://localhost/grafik", "root", ""); 
        stat_MIAFILIO=con_MIAFILIO.createStatement(); 
        } catch (Exception e) { 
        JOptionPane.showMessageDialog(null,"koneksi gagal" +e); 
        } 
        
    }
    
    private void kosongkan_MIAFILIO(){ 
        jTextField1_MIAFILIO.setText(""); 
        jTextField2_MIAFILIO.setText("");
        jTextField3_MIAFILIO.setText("");
    }
    
    private void kosongkan1_MIAFILIO(){ 
        nim_MIAFILIO.setText(""); 
        nama_MIAFILIO.setText("");
        jComboBox1.setSelectedIndex(0);
    }
    
    private void tabel_MIAFILIO(){ 
        DefaultTableModel t_MIAFILIO= new DefaultTableModel(); 
        t_MIAFILIO.addColumn("NIM"); 
        t_MIAFILIO.addColumn("Nilai Semester Ganjil"); 
        t_MIAFILIO.addColumn("Nilai Semester Genap");
        jTable1_MIAFILIO.setModel(t_MIAFILIO); try{ res_MIAFILIO=stat_MIAFILIO.executeQuery("select * from nilai"); 
        while (res_MIAFILIO.next()) { 
            t_MIAFILIO.addRow(new Object[]{ 
                res_MIAFILIO.getString("NIM"),
                res_MIAFILIO.getString("Nilai Semester Ganjil"), 
                res_MIAFILIO.getString("Nilai Semester Genap"),
            }); 
        } 
        }catch (Exception e) { 
            JOptionPane.showMessageDialog(rootPane, e); 
        }
    }
    private void tabel1_MIAFILIO(){ 
        DefaultTableModel t_MIAFILIO= new DefaultTableModel(); 
        t_MIAFILIO.addColumn("NIM"); 
        t_MIAFILIO.addColumn("Nama"); 
        t_MIAFILIO.addColumn("Jurusan");
        tabel_MIAFILIO.setModel(t_MIAFILIO); try{ res_MIAFILIO=stat_MIAFILIO.executeQuery("select * from datadiri"); 
        while (res_MIAFILIO.next()) { 
            t_MIAFILIO.addRow(new Object[]{ 
                res_MIAFILIO.getString("NIM"),
                res_MIAFILIO.getString("Nama"), 
                res_MIAFILIO.getString("Jurusan"),
            }); 
        } 
        }catch (Exception e) { 
            JOptionPane.showMessageDialog(rootPane, e); 
        }
    }






6. Beri events-action pada semua button dan jComboBox

7. Masukkan source code berikut pada :

jComboBox

String s;
        if(jComboBox1.getSelectedIndex()==0)
        {
            s="Teknik Informatika";
        }
        else if(jComboBox1.getSelectedIndex()==1)
        {
            s="Teknik Mesin";
        }
        else if(jComboBox1.getSelectedIndex()==2)
        {
            s="Sastra Inggris";
        }
        else if(jComboBox1.getSelectedIndex()==3)
        {
            s="Pendidikan Ekonomi";
        }
        else if(jComboBox1.getSelectedIndex()==4)
        {
            s="Hukum";
        }
        else
        {
            s="Akutansi";
        }

save button (right)

try {
            stat_MIAFILIO.executeUpdate("insert into nilai values (" + "'" + jTextField1_MIAFILIO.getText()+"'," + "'" + jTextField2_MIAFILIO.getText()+ "'," + "'" + jTextField3_MIAFILIO.getText()+ "')"); 
            kosongkan_MIAFILIO(); 
            JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data"); 
        } catch (Exception e) { 
            JOptionPane.showMessageDialog(null, "Perintah Salah : "+e); 
        }

save button (left)

try { 
            String a;
        a = nim_MIAFILIO.getText();
        jTextField1_MIAFILIO.setText(a);
            int s=0;
            koneksi_MIAFILIO();
            String cs="";
            s=jComboBox1.getSelectedIndex();
            if(s==0)
            {
                cs="Teknik Informatika";
        }
        else if(s==1)
        {
            cs="Teknik Mesin";
        }
        else if(s==2)
        {
            cs="Sastra Inggris";
        }
        else if(s==3)
        {
            cs="Pendidikan Ekonomi";
        }
        else if(s==4)
        {
            cs="Hukum";
        }
        else
        {
            cs="Akutansi";
        }
            stat_MIAFILIO.executeUpdate("insert into datadiri values (" + "'" + nim_MIAFILIO.getText()+"'," + "'" + nama_MIAFILIO.getText()+ "',"+"'"+cs+"')"); 
            kosongkan1_MIAFILIO(); 
            JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data"); 
        } catch (Exception e) { 
            JOptionPane.showMessageDialog(null, "Perintah Salah : "+e); 
        }
       

tampilkan button (right)

try{
            Object [] rows={"NIM","Nilai Semester Ganjil","Nilai Semester Genap"};
            dtm_MIAFILIO=new DefaultTableModel(null,rows);
            jTable1_MIAFILIO.setModel(dtm_MIAFILIO); jTable1_MIAFILIO.setBorder(null);
            jScrollPane1.setVisible(true);
            jScrollPane1.setViewportView(jTable1_MIAFILIO);
            int no = 1;
            String nim="",gnp="",gjl="";try{String sql="select * from nilai";Statement
                st=con_MIAFILIO.createStatement();ResultSet rs=st.executeQuery(sql);
                while(rs.next()){nim=rs.getString("NIM");gjl=rs.getString("Nilai Semester Ganjil");gnp=rs.getString("Nilai Semester Genap"); String []
                    tampil={""+nim,gjl,gnp};dtm_MIAFILIO.addRow(tampil);
                }
            }catch(SQLException e){e.printStackTrace();
                JOptionPane.showMessageDialog(null,"Query Salah "+e);
            }
        }catch(Exception e){e.printStackTrace();
        }

tampilkan button (left)

try{
            Object [] rows={"NIM","Nama","Jurusan"};
            dtm_MIAFILIO=new DefaultTableModel(null,rows);
            tabel_MIAFILIO.setModel(dtm_MIAFILIO); tabel_MIAFILIO.setBorder(null);
            jScrollPane2.setVisible(true);
            jScrollPane2.setViewportView(tabel_MIAFILIO);
            int no = 1;
            String nim="",nama="",jrs="";try{String sql="select * from datadiri";Statement
                st=con_MIAFILIO.createStatement();ResultSet rs=st.executeQuery(sql);
                while(rs.next()){nim=rs.getString("NIM");nama=rs.getString("Nama");jrs=rs.getString("Jurusan"); String []
                    tampil={""+nim,nama,jrs};dtm_MIAFILIO.addRow(tampil);
                }
            }catch(SQLException e){e.printStackTrace();
                JOptionPane.showMessageDialog(null,"Query Salah "+e);
            }
        }catch(Exception e){e.printStackTrace();
        }

hapus button (right)

try {
            stat_MIAFILIO.executeUpdate("delete from nilai where " + "NIM='"+jTextField1_MIAFILIO.getText() +"'" );
            kosongkan_MIAFILIO();
            JOptionPane.showMessageDialog(null, "Berhasil");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "pesan salah : "+e);
        }

hapus button (left)

try {
            stat_MIAFILIO.executeUpdate("delete from datadiri where " + "NIM='"+nim_MIAFILIO.getText() +"'" );
            kosongkan1_MIAFILIO();
            JOptionPane.showMessageDialog(null, "Berhasil");
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "pesan salah : "+e);
        }

grafik button

pienilai obj1_MIAFILIO = new pienilai();
        obj1_MIAFILIO.setNilai(jTextField2_MIAFILIO.getText(),jTextField3_MIAFILIO.getText());
        obj1_MIAFILIO.setVisible(true);
        dispose();

clear button (right)

kosongkan_MIAFILIO();

clear button (left)

kosongkan1_MAFILIO();

8. Beri events-Mouse pada tabel dan masukkan source code berikut :

Tabel (right)

int i_MIAFILIO = jTable1_MIAFILIO.getSelectedRow();
        if(i_MIAFILIO==-1){
            return;
        }
        String code_MIAFILIO = (String)jTable1_MIAFILIO.getValueAt(i_MIAFILIO,0);
        String code1_MIAFILIO = (String)jTable1_MIAFILIO.getValueAt(i_MIAFILIO,1);
        String code2_MIAFILIO = (String)jTable1_MIAFILIO.getValueAt(i_MIAFILIO,2);

        jTextField1_MIAFILIO.setText(code_MIAFILIO);
        jTextField2_MIAFILIO.setText(code1_MIAFILIO);
        jTextField3_MIAFILIO.setText(code2_MIAFILIO);

Tabel (left)

int i = tabel_MIAFILIO.getSelectedRow(); 
        if(i==-1){ 
            return; 
        } 
        String code = (String)tabel_MIAFILIO.getValueAt(i,0); 
        String code1 = (String)tabel_MIAFILIO.getValueAt(i,1);
        String code2 = (String)tabel_MIAFILIO.getValueAt(i, 2);
        String code3 = (String)tabel_MIAFILIO.getValueAt(i, 0);
        
        nim_MIAFILIO.setText(code); 
        nama_MIAFILIO.setText(code1);
        jComboBox1.setSelectedItem(code2);
        jTextField1_MIAFILIO.setText(code3);        

NOTE 
RIGHT : pallete pada panel sebelah kanan (lihat desain) untuk tabel nilai
        
LEFT   : pallete pada panel sebelah kiri (lihat desain) untuk tabel datadiri

9. Buatlah new java class dan beri nama pienilai kemudian masukkan import berikut 

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;

 source code nya :

public class pienilai extends JFrame{
     double n1_MIAFILIO=0,n2_MIAFILIO=0; 
    public void setNilai(String nilai1_MIAFILIO, String nilai2_MIAFILIO){
try { 
    n1_MIAFILIO = Double.parseDouble(nilai1_MIAFILIO); 
} catch (NumberFormatException ex){}
try { 
    n2_MIAFILIO = Double.parseDouble(nilai2_MIAFILIO); 
} catch (NumberFormatException ex){}

this.setSize(600,400);
this.setTitle("Diagram PIE");
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//membuat diagram/ chart jfreechart
//Membuat/ mengkakulasikan data char
PieDataset dataset_MIAFILIO = buildData();
//Membuat chart berdasarkan data yang ada pada dataset
JFreeChart chart_MIAFILIO = buildChart(dataset_MIAFILIO, "Data Dari Tabel");
//Memasukkan chart pada panel agar lebih mudah ditampilkam pada komponen
ChartPanel pieChart_MIAFILIO = new ChartPanel(chart_MIAFILIO);

//memasukkan chart panel kedalam jpanel
this.setContentPane(pieChart_MIAFILIO);
}
    private JFreeChart buildChart(PieDataset dataset_MIAFILIO, String judul_MIAFILIO){
JFreeChart chart_MIAFILIO = ChartFactory.createPieChart3D(judul_MIAFILIO,// Judul Char
dataset_MIAFILIO,// data chart yang akan di tampilkan
true, // jika ya, maka akan legend chart/diagram ditampilkan
true,
false);

PiePlot3D plot_MIAFILIO = (PiePlot3D) chart_MIAFILIO.getPlot();
plot_MIAFILIO.setStartAngle(290);
plot_MIAFILIO.setDirection(Rotation.CLOCKWISE);
plot_MIAFILIO.setForegroundAlpha(0.5f);
return chart_MIAFILIO;
    }
    private PieDataset buildData() {
DefaultPieDataset dataSet_MIAFILIO = new DefaultPieDataset();
dataSet_MIAFILIO.setValue("Nilai Semester Ganjil", n1_MIAFILIO);
dataSet_MIAFILIO.setValue("Nilai Semester Genap", n2_MIAFILIO);


return dataSet_MIAFILIO;
}
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        try { 
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) { }
SwingUtilities.invokeLater(new Runnable() { @Override 
public void run() { new pienilai().setVisible(true); 
                } 
            });
        }

    
}



9. run project

hasil






Remember!! pastikan database terhubung terlebih dahulu sebelum mengoding source lainnya karena ngobrol aja kalo ga nyambung gak enak ye kan 😆 

Okee sekian dulu postingan yang agak panjang ini, kalau ada yang mau ditanyakan bisa tulis di kolom komentar ya cuy..

ilalliqo wa ma'an najah 🙏


Tidak ada komentar:

Posting Komentar