Jumat, 15 Januari 2021

20201_Secure_UAS_07TPLE013_Hendra Supriatna

 UJIAN TENGAH SEMESTER GANJIL TAHUN AKADEMIK 2020 / 2021

Nama                                  :  Hendra Supriatna

NIM                                     : 171011401082

Kelas                                   : 07TPLE013

Mata Kuliah                   : Keamanan Komputer

Dosen                              : Rengga Herdiansyah, A.Md., S.Kom., M.Kom.

 

 

1.             Mengapa basis data perlu diamankan? Apa dampak dari pencurian basis data?

Jawaban :

Karena memang tidak ada jaringan yang kebal terhadap serangan hacker, namun dengan langkah-langkah pencegahan kita dapat membuat sulit bagi intruder baik dari database atau dari lalu lintas data.

Dampak dari pencurian basis data

Ø Paling ringan: Perusahaan HANYA akan kehilangan waktu dan uang untuk biaya penyelidikan

Ø Menghentikan layanan kepada customer sampai sistemnya dinyatakan dapat dipercaya, misalnya website ditutup sementara waktu diperas oleh pelaku

 

2.      Ilustrasikan bagaimana perlindungan pada infrastruktur jaringan komputernya?

            Jawaban :

1.      Gunakan enkripsi pada titik akses nirkabel (AP)

2.      Jika memilikii jaringan nirkabel pastikan untuk menyembunyikan SSID atau setidaknya mengganti namanhya menjadi sesuatu yang biasa.

3.      Jika router (kabel atau nirkabel) memiliki antarmuka manajemen web nonaktifkan akses dari jaringan luar.

4.      Pastikan semua PC anda menggunakan perangkat lunak antivirus dan jika anda menggunakan windows tambahkan perlindungan antispyware.

5.      Melakukan backup secara teratur.

 

3.       Jaringan komputer terbagi atas beberapa lapisan yang saling independen satu sama lain yang disebut dengan protokol, lapisan apa sajakah itu?

          Jawaban :

          Lapisan-lapisan yang dimiliki:

 

1.     Physical

2.     Data Link

3.     Network

4.     Transport

5.     Session

6.     Presentasion

7.     Application

-    Disebut juga OSI (Open System Interconnection)

-     Contoh protokol: TCP/IP, IPX/SPX, APPLETALK, NETBEUI, dll.

-    Yang banyak digunakan adalah TCP/IP.

Terdiri dari 4 lapisan :

1.  Link (Lapisan OSI 1 dan 2)

2.  Internetwork (Lapisan OSI 3)

3.  Transport (Lapisan OSI 4 dan 5)

4.  Application (Lapisan OSI 5 sampai 7)

 

 

4.      Jelaskan arsitektur firewall yang banyak digunakan saat ini?

            Jawaban :

1.      Arsitektur Dual-home host dibuat disekitar komputer dual-homed host, yaitu komputer yang memiliki paling sedikit dua interface jaringan. Untuk mengimplementasikan tipe arsitektur dual-homed host, fungsi routing pada host ini di non-aktifkan. Sistem di dalam firewall dapat berkomunikasi dengan dual-homed host dan sistem di luar firewall dapat berkomunikasi dengan dual-homed host, tetapi kedua sistem ini tidak dapat berkomunikasi secara langsung.

2.      Arsitektur screened host menyediakan service dari sebuah host pada jaringan internal dengan menggunakan router yang terpisah. Pada arsitektur ini, pengamanan utama dilakukan dengan packet filtering.

3.      Arsitektur screened subnet menambahkan sebuah layer pengaman tambahan pada arsitekture screened host, yaitu dengan menambahkan sebuah jaringan perimeter yang lebih mengisolasi jaringan internal dari jaringan Internet.

 

5.     Apa saja yang menjadi pertimbangan dalam membangun sebuah Data Recovery Center?

        Jawaban :

Sebuah Disaster Recovery Plan tidak sekedar rencana saja akan tetapi merupakan suatu proses yang berkelanjutan. Realisasi dari rencana tersebut juga terus menerus di test secara berkala untuk menghindari sebuah BCP yang terlalu sulit dilaksanakan pada akhirnya.

Dan dapat juga diambil kesimpulan bahwa disaster recovery site atau DRC site tidak dapat dilokasi yang sama dengan data center internal dan harus memiliki jarak minimal 35 KM dan maksimal 50 KM, serta harus pada suatu bangunan data center ber arsitekur khusus yang didirikan untuk rencana mitigasi bencana di Indonesia.

 

6.     Sepeti apa infrastuktur sistem world wide web yang banyak digunakan saat ini??

Jawaban :

Ø  Web Mail Service

Web mail service digunakan untuk mengirimkan surat elektronik kepada orang lain. Layanan ini bisa didapatkan secara gratis maupun berbayar. Layanan email gratis, misalnya dari Gmail.com, Yahoo.com, dan hotmail.com. Sedangkan email berbayar biasanya untuk kebutuhan perusahaan dengan menggunakan domain sendiri.

Ø  Search Engine

Search engine merupakan layanan gratis untuk mencari informasi berdasarkan keyword tertentu.

Ø  Web Hosting

Web hosting merupakan tempat untuk menyimpan database sebuah website. Sebuah website hanya bisa diakses jika domain website tersebut terhubung dengan web hosting.

Ø  Portal

Portal merupakan sebuah layanan di internet yang mana terdapat beberapa layanan sekaligus, misal email, news, chatting, tanya jawab. Salah satu portal yang cukup populer adalah Yahoo.com.

 

7.       Terdapat  protokol  apa  saja  dalam  infrastuktur  pengiriman  dan  penerimaan  surat elektronik? Jelaskan dengan singkat.

·         Protocol SMTP (Simple Mail Transfer Protocol) adalah suatu protokol untuk berkomunikasi dengan server guna mengirimkan email dari lokal email ke server, sebelum akhirnya dikirimkan ke server email penerima. Proses ini dikontrol dengan Mail Transfer Agent (MTA) yang ada dalam server email Anda.

·         POP3 (Post Office Protocol V3) adalah protokol yang digunakan untuk mengambil surat elektronik (email) dari server email. Protokol ini erat hubungannya dengan protokol SMTP di mana protokol SMTP berguna untuk mengirim surat elektronik dari komputer pengirim ke server.

·         IMAP SMTP adalah merupakan protokol komunikasi dua arah sebagai perubahan yang dibuat pada local mail yang dikirimkan ke server. Pada dasarnya, isi email tetap berada di server. Protokol IMAP lebih direkomendasikan oleh penyedia email seperti Gmail dibandingkan menggunakan POP3.

 

8.       Bagaimana mekanisme pertahanan yang bisa diterapkan dalam menghadapi serangan terhadap sistem email??

          Jawaban :

v  Gunakan kombinasi kata sandi yang kuat

v  Verifikasi setiap akun email untuk kata sandi yang unik dan kuat

v  Aktifkan 2FA untuk setiap akun email

v  Pembaruan rutin perangkat lunak anti-virus dan peramban

v  Jangan pernah membuka email dari pengirim dan sumber yang tidak dikenal

v  Jangan pernah mengklik tautan yang tidak sah dan mencurigakan

v  Pindai lampiran sebelum membukanya

v  Selektif dan berhati-hati sebelum mengunduh tautan dari Internet

v  Baca perjanjian lisensi dengan cermat sebelum menginstal perangkat lunak apa pun

v  Hindari mengklik Iklan Internet

v  Enkripsi komunikasi email saat dan ketika diperlukan

v  Berhati-hatilah saat menggunakan koneksi Wi-Fi Publik

v  Jangan pernah membagikan informasi perusahaan milik perusahaan dengan sumber yang tidak diketahui

v  Jika Anda telah melalui pos ini, Anda harus memahami tentang masalah-masalah nyata ini dan bagaimana cara menanganinya untuk melindungi fungsionalitas akun email Anda.

 

9.       Dari  segala  macam  serangan  hacker  yang  ada,  serangan  mana  yang  paling  sering digunakan?

          Jawaban :

Serangan Denial of Service (DoS) merupakan serangan terhadap server website Anda. Jika website Anda terkena serangan ini, pengunjung website Anda tidak akan bisa mengakses website Anda. Hal itu karena serangan ini akan membanjiri trafik pada server website Anda sehingga server overload.

 

Biasanya serangan ini merupakan serangan awalan. Setelah website Anda lumpuh, hacker akan meluncurkan serangan berbeda lainnya.

 

10.     Menurut kalian diantara virus, Trojan, dan worm yang mana paling menganggu atau merusak komputer? Mengapa?

           Jawaban :

Menurut pendapat saya worm adalah paling mengganggu atau merusak computer karena mirip dengan virus yang dapat menyebar dengan cara menyalin diri sendiri dan dapat menyebabkan kerusakan yang hampir sama dengan virus. perbedaaannya adalah worm tidak membutuhkan sebuah program atau file yang terinfeksi dalam proses penyebaran, worm adalah perangkat lunak yang mandiri dan tidak memerlukan program host atau bantuan manusia untuk menyebarkannya. teknik yang digunakan oleh worm yaitu mencari celah keamanan pada sistem target atau juga menggunakan trik kecil agar kita menjalankan worm, seperti link download yang menginstall program tertentu


Selasa, 02 Juni 2020

LANGKAH-LANGKAH MEMBUAT APLIKASI DATABASE DENGAN MENAMPILKAN HASIL GRAFIK

LANGKAH-LANGKAH MEMBUAT APLIKASI DATABASE DENGAN MENAMPILKAN HASIL GRAFIK DENGAN NAMA PROJECT "SYAHENFEBFAHNA"
( APLIKASI INPUT NILAI MAHASISWA )
Hendra Supriatna (171011401082)

1. Kalian Harus Memiliki Aplikasi Neatbens java , NAVICHAT , & XAMPP 
2 . Run XAMPP Terlebih Dahulu , Klik Start Pada MSYQL & APACHE


3 . Masuk Ke Navichat > Klik Connection > Pilih MYSQL 


Connection Name > localhost 


4 . Klik Kanan Pada LocalHost > New Database > Database Name > indexprestasi 

 

5 . Jika Sudah Akan Muncul IndexPrestasi > Table , DataMhs , User Seperti ini 


6 . Buka Neatbens , Buat New Project > Pilih Java Application > Beri Nama Bebas

7 . Lalu Klik Kanan Pada Source Package > Pilih New Package > Lalu Namakan 


8 .  Lalu Buatlah JFrame Form Dengan Nama LoginAdmin 


Klik Kanan Pada Package > New > JFrameForm > Nama LoginAdmin

Design JFrame Fromnya Seperti ini 


Masukan Source Code Pada LoginAdmin 

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.*;
import javax.swing.JOptionPane;
import syaHenFebFahAna.dataInputMhs;

public class LoginAdmin extends javax.swing.JFrame {

    Connection con;
    Statement stat;
    ResultSet rs;

    public LoginAdmin() {
        initComponents();
    }

    public void connection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/indexprestasi", "root", "");
            stat = con.createStatement();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    /**
     * 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")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jPasswordField1 = new javax.swing.JPasswordField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jLabel1.setText("Username     :");

        jLabel2.setText("Password     :");

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

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

        jPasswordField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jPasswordField1ActionPerformed(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()
                .addGap(95, 95, 95)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel1))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addComponent(jButton1))
                .addGap(0, 111, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(93, 93, 93)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addComponent(jButton1)
                .addContainerGap(100, Short.MAX_VALUE))
        );

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

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        // TODO add your handling code here:
    }                                           

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

        try {
            if (jTextField1.getText().equals("")) {
                JOptionPane.showMessageDialog(null, "Masukan Username");
            } else if (jPasswordField1.getText().equalsIgnoreCase("")) {
                JOptionPane.showMessageDialog(null, "Masukan Password");
            } else {
                connection();
                System.out.println("test");
                String sql = "SELECT * FROM user WHERE userName='" + jTextField1.getText() + "' AND password='" + jPasswordField1.getText() + "'";
                rs = stat.executeQuery(sql);
                if( rs.next() ) {
                    if (jTextField1.getText().equals(rs.getString("username")) && jPasswordField1.getText().equalsIgnoreCase(rs.getString("password"))) {
                        System.out.println("berhasil");
                        JOptionPane.showMessageDialog(this, "Berhasil Login");
                        new dataInputMhs().setVisible(true);
                        setVisible(false); //you can't see me!
                        dispose();
                    } 
                } else {
                    JOptionPane.showMessageDialog(null, "username atau password salah!","Error", JOptionPane.ERROR_MESSAGE);
//                    JOptionPane.showMessageDialog(null, "Akun tidak ditemukan","Error", JOptionPane.ERROR_MESSAGE);
                }
            }

            stat.close();
            rs.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
//            JOptionPane.showMessageDialog(this, e.getMessage());
        }

        // TODO add your handling code here:
    }                                        

    private void jPasswordField1ActionPerformed(java.awt.event.ActionEvent evt) {                                                
        // TODO add your handling code here:
    }                                               

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(LoginAdmin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(LoginAdmin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(LoginAdmin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(LoginAdmin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new LoginAdmin().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPasswordField jPasswordField1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration                   
}

9 . Buatlah Java Class Baru Dengan Nama Connection 


Klik Kanan Pada Package > New > Java Class > Beri Nama Connection

Lalu Masukan Source Code Ke dalam Java Class Ini 

package syaHenFebFahAna;

import java.sql.Connection;
import java.sql.DriverManager;

/**
 *
 * @author 
 */
public class connetion {
    
    public static Connection getConnection(){
     
        Connection con = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/indexprestasi", "root", "");
        } catch (Exception ex) {
            System.out.println(ex.getMessage());
        }
        
        return con;
    }
    
}


10 .  Buatlah JFrame Form Baru Lagi Dengan Nama DataInputMahasiswa


Klik Kanan Pada Package > New > JFrame Form > Beri Nama DataInputMahasiswa

Design JFrame Formnya Seperti Ini 


Lalu Masukan Source Codenya Kedalam JFrame Form ini 

package syaHenFebFahAna;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author 
 */
public class dataInputMhs extends javax.swing.JFrame {
    public String stts = "";
    private Connection con; 
    private Statement stat; 
    private ResultSet res; 
    private String t;
    private DefaultTableModel dtm;
    ResultSet rs;    
    String sql;
    
    public dataInputMhs() {
        initComponents();
        connetion();

        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        Dimension frameSize = getSize();
        setLocation((screenSize.width - frameSize.width)/2, (screenSize.height - frameSize.height ));
    }
    
    public void connetion(){
        try {
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/indexprestasi", "root", ""); 
        stat=con.createStatement();
        } catch (Exception e) {
        JOptionPane.showMessageDialog(null, e);
        } 
    }

    public class UasSyaHenFebFahAna extends javax.swing.JFrame {
/**
     * Creates new form dataInputMhs
     */
        public UasSyaHenFebFahAna() {
            initComponents();
        }
    
    }

    /**
     * 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")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        InputAbsensi = new javax.swing.JTextPane();
        jScrollPane2 = new javax.swing.JScrollPane();
        InputTugas = new javax.swing.JTextPane();
        jScrollPane3 = new javax.swing.JScrollPane();
        InputUts = new javax.swing.JTextPane();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jScrollPane4 = new javax.swing.JScrollPane();
        InputUas = new javax.swing.JTextPane();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        angka3 = new javax.swing.JLabel();
        angka2 = new javax.swing.JLabel();
        angka1 = new javax.swing.JLabel();
        angka = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jLabel13 = new javax.swing.JLabel();
        saveData = new javax.swing.JButton();
        Gafik = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jScrollPane1.setViewportView(InputAbsensi);

        jScrollPane2.setViewportView(InputTugas);

        jScrollPane3.setViewportView(InputUts);

        jLabel1.setText("Absensi");

        jLabel2.setText("Nilai Tugas");

        jLabel3.setText("Nilai UTS");

        jScrollPane4.setViewportView(InputUas);

        jLabel4.setText("Nilai UAS");

        jLabel5.setText("Nilai Mahasiswa Universitas Pamulang");

        angka3.setText("Angka");

        angka2.setText("Angka");

        angka1.setText("Angka");

        angka.setText("Angka");

        jLabel10.setText("%");

        jLabel11.setText("%");

        jLabel12.setText("%");

        jLabel13.setText("%");

        saveData.setText("Simpan");
        saveData.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                saveDataActionPerformed(evt);
            }
        });

        Gafik.setText("Grafik Nilai");
        Gafik.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                GafikActionPerformed(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()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(Gafik, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
                    .addComponent(saveData, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel2)
                            .addComponent(jLabel1)
                            .addComponent(jLabel3)
                            .addComponent(jLabel4))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 206, Short.MAX_VALUE)
                            .addComponent(jScrollPane1)
                            .addComponent(jScrollPane2)
                            .addComponent(jScrollPane3)))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jLabel5)
                        .addGap(16, 16, 16)))
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(angka3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel13))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(angka2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel12))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(angka1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel11))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(angka)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jLabel10)))
                .addContainerGap(100, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel5)
                .addGap(29, 29, 29)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel1))
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(angka)
                        .addComponent(jLabel10)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel2))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(angka1)
                        .addComponent(jLabel11)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(angka2)
                        .addComponent(jLabel12)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(angka3)
                        .addComponent(jLabel13)))
                .addGap(23, 23, 23)
                .addComponent(saveData)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Gafik)
                .addContainerGap(55, Short.MAX_VALUE))
        );

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

    private void GafikActionPerformed(java.awt.event.ActionEvent evt) {                                      
        // TODO add your handling code here:
        grafikInputMhs uts = new grafikInputMhs();
        uts.setNilai(angka.getText(),angka1.getText(),angka2.getText(),angka3.getText());
        uts.setVisible(true);
    }                                     

    
    private void saveDataActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
            String a, b, c, d;
            a = String.valueOf(InputAbsensi.getText());
            b = String.valueOf(InputTugas.getText());
            c = String.valueOf(InputUts.getText());
            d = String.valueOf(InputUas.getText());
            angka.setText("" + a);
            angka1.setText("" + b);
            angka2.setText("" + c);
            angka3.setText("" + d);       
            
            if(InputAbsensi.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Anda belum memasukan Nilai Absensi!","Error", JOptionPane.ERROR_MESSAGE);
                return;
            } else if(InputTugas.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Anda belum memasukan Nilai Tugas!","Error", JOptionPane.ERROR_MESSAGE);
                return;
            } else if(InputUts.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Anda belum memasukan Nilai UTS!","Error", JOptionPane.ERROR_MESSAGE);
                return;
            } else if(InputUas.getText().equals("")){
                JOptionPane.showMessageDialog(null, "Anda belum memasukan Nilai UAS!","Error", JOptionPane.ERROR_MESSAGE);
                return;
            }
             else{
                try { 
                    stat.executeUpdate("insert into datamhs (Absensi, tugas, uts, uas) values (" + "'" + InputAbsensi.getText()
                        +"',"+ "'" + InputTugas.getText()
                        +"',"+ "'" + InputUts.getText()
                        +"',"+ "'" + InputUas.getText()+ "')");
                    
//                        delete();
//                        table();
                           JOptionPane.showMessageDialog(null, "Berhasil Menyimpan Data");
                    } catch (Exception e) { 
                       JOptionPane.showMessageDialog(null, "Save error : "+e);
                    }
            }
           
    }                                        

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>
        //</editor-fold>

        /* Create and display the form */
        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : 
        javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())){
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(dataInputMhs.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new dataInputMhs().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify                     
    private javax.swing.JButton Gafik;
    private javax.swing.JTextPane InputAbsensi;
    private javax.swing.JTextPane InputTugas;
    private javax.swing.JTextPane InputUas;
    private javax.swing.JTextPane InputUts;
    private javax.swing.JLabel angka;
    private javax.swing.JLabel angka1;
    private javax.swing.JLabel angka2;
    private javax.swing.JLabel angka3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JButton saveData;
    // End of variables declaration                   
}


11 . Buat Baru Java Class Dengan Nama GrafikInputMahasiswa


Klik Kanan Pada Package > New > Java Class > Beri Nama GrafikInputMahasiswa

Lalu Masukan Source Code Ke dalam Java Class Ini 

package syaHenFebFahAna;

import java.awt.GridLayout; 
import javax.swing.JFrame;
import javax.swing.JPanel; 
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 
 * 
 */
public class grafikInputMhs extends JFrame{
    double syaHenFebFahAna = 0, syaHenFebFahAna1 = 0, syaHenFebFahAna2 = 0, syaHenFebFahAna3 = 0;
public void setNilai (String nilai1, String nilai2, String nilai3, String nilai4){
    try{ 
        syaHenFebFahAna = Double.parseDouble(nilai1);
        }catch (NumberFormatException e){};
        

    try{ syaHenFebFahAna1 = Double.parseDouble(nilai2);
        }catch (NumberFormatException e){};
        
    try{ syaHenFebFahAna2 = Double.parseDouble(nilai3);
        }catch (NumberFormatException e){};
        
    try{ syaHenFebFahAna3 = Double.parseDouble(nilai4);
        
       }catch (NumberFormatException e){};
       
    // CREATE SETTING FOR THE FRAME
    this.setSize(500,700);
    this.setTitle("Nilai Mahasiswa by Anang, Hendra, Febri, Fahri, Syakur");
    this.setLocationRelativeTo(null);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    // CREATE DATA FOR BOTH PIE CHART
    PieDataset HenSYaFebFahAna = FebHenSyaFahAna();
    PieDataset HenSYaFebFahAna2 = FebHenSyaFahAna2();
    
    // CREATE PIE CHART BASED ON PIE DATASET
    JFreeChart chartFebHenSyaFahAna = ChartFebHenSyaFahAna1Method(HenSYaFebFahAna,"Data Nilai Mahasiswa Universitas Pamulang");
    JFreeChart chartFebHenSyaFahAna2 = ChartFebHenSyaFahAna2Method(HenSYaFebFahAna2,"Perbandingan Nilai");
    
    // CREATE JPANEL TO INPUT GRAPHICS PIE WITH GRID 2,1
    JPanel pane = new JPanel(new GridLayout(2,1));
    
    //ADDING CHART 1 AND 2 TO PANEL 
    pane.add(new ChartPanel(chartFebHenSyaFahAna));
    pane.add(new ChartPanel(chartFebHenSyaFahAna2));
    
    // CREATE CONTENT FOR PANEL
    this.setContentPane(pane);
}
    // CREATING DATASET FOR BOTH PIE CHART 
public PieDataset FebHenSyaFahAna(){
        
    DefaultPieDataset setFahHenFebSyaAna = new DefaultPieDataset();
    setFahHenFebSyaAna.setValue("Absensi", syaHenFebFahAna);
    setFahHenFebSyaAna.setValue("Nilai Tugas", syaHenFebFahAna1);
    setFahHenFebSyaAna.setValue("Nilai UTS", syaHenFebFahAna2);
    return setFahHenFebSyaAna;
    }

public PieDataset FebHenSyaFahAna2(){
        
    DefaultPieDataset setFahHenFebSyaAnaDataSet = new DefaultPieDataset();
    setFahHenFebSyaAnaDataSet.setValue("Data: Absensi, Nilai Tugas, Nilai UTS",(((syaHenFebFahAna + syaHenFebFahAna1 + syaHenFebFahAna2) - syaHenFebFahAna3)
    /(syaHenFebFahAna + syaHenFebFahAna1 + syaHenFebFahAna2)*100));
    setFahHenFebSyaAnaDataSet.setValue("Nilai UAS",((syaHenFebFahAna3/(syaHenFebFahAna + syaHenFebFahAna1 + syaHenFebFahAna2))*100));
    return setFahHenFebSyaAnaDataSet;
}
    
private JFreeChart ChartFebHenSyaFahAna1Method(PieDataset FahHenFebSyaAnaDataset, String judul){
    
    JFreeChart jfcFahHenFebSyaAna = ChartFactory.createPieChart3D(judul, FahHenFebSyaAnaDataset, true, true, false);
    PiePlot3D ppFahHenFebSyaAna = (PiePlot3D) jfcFahHenFebSyaAna.getPlot(); ppFahHenFebSyaAna.setStartAngle(0);
    ppFahHenFebSyaAna.setDirection(Rotation.ANTICLOCKWISE); ppFahHenFebSyaAna.setForegroundAlpha(0.5f);
    return jfcFahHenFebSyaAna;
}

private JFreeChart ChartFebHenSyaFahAna2Method (PieDataset DataFebFahSyaHenAna, String judul){
    
    JFreeChart jfcFahHenFebSyaAna2 = ChartFactory.createPieChart3D(judul, DataFebFahSyaHenAna, true, true, false);
    PiePlot3D ppFahHenFebSyaAna2 = (PiePlot3D) jfcFahHenFebSyaAna2.getPlot(); ppFahHenFebSyaAna2.setStartAngle(0);
    ppFahHenFebSyaAna2.setDirection(Rotation.ANTICLOCKWISE); ppFahHenFebSyaAna2.setForegroundAlpha(0.5f);
    return jfcFahHenFebSyaAna2;
}

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


      
}


12 . Jika Sudah Semuanya Terhubung , Maka kita Run Programnya Satu Per Satu . 

LoginAdmin 


DataInputMahasiswa


GrafikInputMahasiswa 


Sekian dan Terimakasih