Rabu, 10 Juli 2019

Enkapsulasi

Enkapsulasi
Enkapsulasi
  • Merupakan suatu metode dalam konsep OOP yang berfungsi agar suatu proses pada sebuah program tidak dapat diakses oleh proses lain.
  • Terdapat 2 hal mendasar dari enkapsulasi : Information Hiding dan Interface to Access Data.
  • Dasar enkapsulasi adalah penggunaan Kelas.
KONSEP : INFORMATION HIDING & INTERFACE TO ACCESS

Information Hiding
  • Satu teknik menyembunyikan data dari sebuah kelas agar data tersebut tidak dapat diakses oleh
  • kelas lain.
  • Dilakukan dengan cara memberikan modifier private pada variable. 
Interface to Access
  • Berfungsi untuk mengakses nilai dari suatu suatu variable yang telah disembunyikan (Information
    Hiding) yang bertujuan untuk memanipulasi data.
  • Konsep ini dapat dilakukan dengan menggunakan sebuah method.
  • Method ini dapat mengakses variable yang sebelumnya tidak dapat diakses.
KONSTRUKTOR
  • Method khusus yang akan dijalankan saat pada saat pembuatan objek (Instance).
  • Cara mudah mengenali konstruktor adalah dengan melihat nama kelas dengan konstruktornya.
  • Ingat! Nama konstruktor SELALU SAMA dengan nama kelas!
  • Dapat ditulis dengan menggunakan parameter ataupun tidak.
OVERLOADING
  • Method dengan nama yang sama, namun memiliki parameter yang berbeda.
  • Dilakukan pada kelas yang sama.
  • Penggunaan Overloading dapat diaplikasikan pada Konstruktor maupun method yang biasa pada umumnya.
Contoh Sourc Code enkapsulasi :

 import java.util.Scanner;

public class Nama {

    public String Nama;
    protected String Orang_tua;
    public int Usia;
    Scanner input = new Scanner(System.in);

    public Nama(String nama) {
        this.Nama = nama;

        System.out.println("Input Nama          : ");
        Nama = input.nextLine();
        System.out.println("Input Nama Orang Tua: ");
        Orang_tua = input.nextLine();
        System.out.println("Input Usia          : ");
        Usia = input.nextInt();

    }

    public Nama(String orang_tua, int usia) {
        this.Orang_tua = orang_tua;
        this.Usia = usia;
    }

    public Nama(String nama, String orang_tua, int usia) {
        this.Nama = nama;
        this.Orang_tua = orang_tua;
        this.Usia = usia;
    }

    public void input() {
        System.out.println("====================================");
        System.out.println("====================================");
        System.out.println("Nama Anda       :" + Nama);
        System.out.println("Nama Orang Tua  :" + Orang_tua);
        System.out.println("Usia            :" + Usia);
    }

    public static void main(String[] args) {
        Nama nm = new Nama("");
        nm.input();
    }
}

Konsep Dasar PBO

Konsep Dasar PBO

    Pemrograman berorientasi objek atau Object Oriented Programming (OOP) atau merupakan sebuah paradigma atau teknik pemrograman yang berorientasikan Objek. 

1. Fungsi, Prosedur,
  • Method Prosedur adalah sebutan untuk fungsi yang tidak mengembalikan nilai. Fungsi ini biasanya ditandai dengan kata kunci void.
  • Fungsi adalah sebutan untuk fungsi yang mengembalikan nilai.
  • Method adalah fungsi yang berada di dalam Class. Sebutan ini, biasanya digunakan pada OOP.
2.  Kelebihan Konsep PBO
  • Konsep OOP sangat cocok digunakan untuk mendefinisikan tipe data abstrak, hal ini karena OOP menyediakan struktur modular yang jelas untuk program. 
  • Konsep OOP mempermudah dalam mengubah kode yang sudah ada. Objek yang baru dibuat dapat
    terbentuk tanpa harus mengubah kode yang telah ada.
3. Konsep Kelas
  • Bentuk atau gambaran umum ciri-ciri dari sebuah objek, contoh kelas adalah mobil. Kelas mobil memiliki objek yaitu: Toyota, Suzuki, Honda, dll.
  • Ketiga objek tersebut memiliki kesamaan atribut. Atribut yang dapat disebutkan dari ketiga objek tersebut adalah : harga, mesin, warna, tipe, bobot, dll.
  • Deklarasi : 
                   public class Class1 {
           }

4. Konsep Objek
  • Bentuk representasi dari sebuah kelas dalam konsep OOP.
  • Ketika objek diterjemahkan ke dalam konsep OOP, maka elemen penyusunnya juga terdiri atas 2 bagian, yaitu:
  1. Atribut, merupakan ciri-ciri yang melekat pada suatu objek (state).
  2. Method, merupakan fungsi-fungsi yang digunakan untuk melakukan manipulasi sekumpulan nilai yang ada pada atribut.
  • Deklarasi sebuah Objek pada Kelas:
             namaKelas namaObjek = new namaKelas();

5. Parameter
Parameter adalah variabel yang menampung nilai untuk diproses di dalam fungsi. Parameter berperan sebagai input untuk fungsi.

6. Constructor
  • Constructor adalah method khusus yang akan dieksekusi pada saat pembuatan objek (instance).
  • Biasanya method ini digunakan untuk inisialisasi atau mempersiapkan data untuk objek.
7. Keyword This
  • Digunakan sebagai referensi dari variabel instansi yang mengacu pada suatu objek.
  • Selain itu, This juga digunakan sebagai pembeda antara variabel instansi dengan variabel atribut. Apabila tidak menggunakan This, maka nilai akan di set 0 atau null pada String
  • Selain dari 2 fungsi tersebut, keyword This juga berfungsi sebagai pemanggil Constructor milik kelas
    yang sedang digunakan:
Contoh Sourch code PBO :

public class Main {

    public int usia;
    private String Nama, ibu, ayah, Status;

    void inputData(String nama, String status, String ibu, 
    String ayah, int umur) {
        this.Nama = nama;
        this.Status = status;
        this.ibu = ibu;
        this.ayah = ayah;
        this.usia = umur;


    }

    void cetak() {
        System.out.println("Nama        = " + Nama);
        System.out.println("Status      = " + Status);
        System.out.println("Nama ibu    = " + ibu);
        System.out.println("Nama ayah   = " + ayah);
        System.out.println("Umur        = " + usia);
    }

    public static void main(String[] args) {
        Main hasil = new Main();
        hasil.inputData("Dafikin", "Pelajar/mahasiswa", "Sinta Ratinah", 
        "Fachrudin", 21);
        hasil.cetak();
    }
}

Jasper report (Pembuatan tabel dan event)

Jasper Report (Pembuatan Tabel dan event)
  • Buatlah project baru di NETBEANS dan buat file Report seperti gambar..


  • Beri nama File sesuka anda 
  • Selanjutnya koneksi ke database, kalau belum terhubung pilih New..
  • Setelah itu bakalan ada pilihan datasource, kalau saya pakai MySQL jadi pilih yang Database JDBC Connection. Klik Next..

  •  Step selanjutnya Setting koneksi, sesuaikan dengan database temen-temen. Jika sudah klik Save..

  •  Setelah di Save, pilih Design Query..
  • Step selanjutnya pilih database yang akan ditampilkan
  • Setelah di klik OK. Bakalan ada tampilan seperti dibawah. Lalu klik Next…

  • Pada tab ini pilih field yang ingin temen-temen tampilkan dilaporan dan pindahkan ke sisi kanan. Lalu klikNext..
  •  Step selanjutnya pilih berdasarkan group by. Setelah itu klik Next..
  •  Pilih sesuai kebutuhan yang akan ditampilkan lalu klik Next..
  • Selesai dalam proses pembuatan ireport 


  • Untuk melihat hasilnya, silahkan Klik menu preview dan perhatikan hasilnya
preview laporan








Senin, 17 Juni 2019

Jasper Report (Pengenalan dasar)

Jasper Report (Pengenalan dasar)

iReport adalah tools membantu mendesain laporan secara visual yang digunakan para developer / programmer java dikarenakan fitur yang dimiliki iReport sangat lengkap, mudah dan praktis.  Sebelum membuat ireport lebih dahulu mendownload dan menginstal JDK, ireport dan library.  
Setelah install sampai JDK nya, lalu install iReport. Cara nya seperti ini :
  • Extract iReport, kalian akan menemukan 4 File dengan format file nbm.
  • Buka Netbeans, pilih menu Tools > Plugins > (klik tab Downloaded)
ireport java 
  • Klik button Add, cari file iReport yang sudah kalian extract tadi
  • Setelah membuka folder extract td, CTRL + A, lalu pilih open ke empat filenya
 
  • Pastikan sudah tercentang semua, klik Install 
 
  • Kalian next, next dan install saja IDE Installernya
 
  •  Setelah itu klik instal dan tunggu sampai selesai.
Setelah melakukan proses penginstalan selanjutnya Langsung praktek menggunakan Ireport. Adapun langkah-langkahnya sebagai berikut :
  • Extract File Library nya, copy ke Folder Netbeans Project Kalian, kalau saya ada di direktori : Documents > NetBeansProjects > belajarReport > (paste disini)
  • Pada Netbeans, Pilih project nya, pada Libraries klik kanan, Add Jar/Folder. Cari semua file library di project kalian tadi, CTRL + A, lalu Open
  • Kembali ke Libraries tadi, klik kanan Add Library, pilih MySQL JDBC Driver
 
 Setelah proses add library ireport selesai maka langsung proses pembuatan Ireport sederhana.

Sabtu, 20 April 2019

GUI III (Create and Read)


GUI III  "Create and Read"
Pada kesempatan ini, kita akan belajar cara menghubungkan Java dengan MySQL dan membuat sebuah program CRUD sederhana berbasis teks. 

Kita membutuhkan JDBC (Java Data Base Connectivity) untuk menghubungkan Java dan MySQL.
JDBC bertugas menyediakan koneksi ke database, sehingga kita bisa mengakses dan mengelola datanya dari program Java.

Ada beberapa istilah yang harus dipahami dalam JDBC:
  • DriverManager: adalah sebuah class yang mengelola dirver;
  • Driver: adalah interface yang menangani komunikasi dengan database.
  • Connection: adalah interface yang menyediakan method untuk menghubungi database;
  • Statement: adalah inteface untuk mengeksekusi query;
  • ResultSet: adalah interface untuk menampung data hasil query.
Langkah pertama yaitu membuat database terlebih dahulu untuk menyimpan atau menginput data yang aakan dimasukan kedalam tampilan GUI.
 
Membuat project baru:
1. Buka aplikasi netbeans
2. Buka projek baru dengan cara klik file =>  New Project
3. Pilih katagori: java dan project: java application.
4. Berikan nama project: mahasiswa dan jangan lupa jangan lupa centang create main project lalu finish.
 
Buatlah database pada software yang biasa anda gunakan.
setelah itu buatlah file create: 
Disini saya contoh yaitu menggunakan GUI dengan Pemilu
 
setelah itu buatlah sourch code untuk menyambungkan pada Gui tampilan tersebut:
 
package pemilu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
 
public class Create extends javax.swing.JFrame {

    /** Creates new form Create */
    public Create() {
        initComponents();
    }

    @SuppressWarnings("unchecked") 

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        String capres = String.valueOf(jTextField1.getText());
        String cawapres = String.valueOf(jTextField2.getText());
        String slogan = String.valueOf(jTextArea1.getText());
        if (capres.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Nama Capres!", "Input Data Status", 1);
        } else if (cawapres.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Nama CaWapres!", "Input Data Status", 1);
        } else if (slogan.equals("")) {
            JOptionPane.showMessageDialog(null, "Anda Belum Mengisi Slogan!", "Input Data Status", 1);
        } else { // jika data tidak ada yang kosong.
            try {
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pemilu", "root", "");
                Statement st = conn.createStatement();
                String query = "INSERT INTO daftar_peserta VALUES (null,'" + capres + "','" + cawapres + "','" + slogan + "')";
                // harus diberi null, karena di database nya , kolom id itu AUTO INCREEMENT. null berarti tidak ada data yang masuk ke tabel
                st.executeUpdate(query);
                JOptionPane.showMessageDialog(null, "Data Berhasil Tersimpan!", "Input Data Status", 1);
            } catch (SQLException ex) {
                JOptionPane.showMessageDialog(null, "Terjadi Kesalahan! Periksa Kembali Data Anda! "+ex, "Input Data Status", 0);
            }
        }
    }
 
 
Setelah membuat File create untuk menginputkan data. 
 
Buatlah file Read untuk menampilkan data atau membaca data yang sudah diinputkan
 Diatas adalah tampilan Gui Read untuk menyimpan data yang sudah diinputkan
 
Setelah itu buatlah sourch code Readnya:

package pemilu;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class Read extends javax.swing.JFrame {

    /** Creates new form Read */
    public Read() {
        initComponents();
        data(); // ini berfungsi untuk memanggil method yang memanggil data pada database
    }


    @SuppressWarnings("unchecked")
                        
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null},
                {null, null, null},
                {null, null, null},
                {null, null, null}
            },
            new String [] {
                "CaPres", "CaWapres", "Slogan"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        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()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 452, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(14, Short.MAX_VALUE))
        );

        pack();
    }                   

    public void data() {         try {
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/pemilu", "root", "");
            String query2 = "SELECT * FROM daftar_peserta";
            Statement st2 = conn.createStatement();
            ResultSet rs2 = st2.executeQuery(query2);
            DefaultTableModel tm = (DefaultTableModel) jTable1.getModel();
            tm.setRowCount(0);
            while (rs2.next()) {
                String capress = rs2.getString("capres");
                String cawapress = rs2.getString("cawapres");
                String slogann = rs2.getString("slogan");
                tm.addRow(new Object[]{capress, cawapress, slogann});
            }
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Terjadi Kesalahan! Periksa Kembali Data Anda!", "Input Data Status", 0);
        }
    }

                    
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
                     
}

Jadi setelah selesai maka bisa di Run kan atau dicoba.

diatas hanya materi tentang Create dan Read dari Gui pemrograman java untuk menginputkan sebuah data capres atau cawapres pemilu 2019.


Sumber : https://www.petanikode.com/java-mysql/

Jumat, 19 April 2019

GUI II (Events dan Pengambilan Nilai Pada Swings)


Events dan Pengambilan Nilai Pada Swings

Sebelum membuat events pada sebuah tampilan gui sebelumnya buatlah terlebih dahulu tampilan gui yang sederhana.
Contoh tampilan gui sederhana: 

 Pada tampilan Gui diatas terdiri dari beberapa komponen yaitu:
  1. Label = pada label diberi nama dengan angka dan hasil perhitungan
  2. textfield = text field ini nanti fungsinya untuk menginputkan angka dan menampilkan hasil dari perhitungan setelah dilakukannya event pada sebuah tombol hasil. 
  3. Button1 = pada komponen button ini diberi nama variabel hasil gunannya nanti akan diberikan sebuah event agar dapat melakukan sebuah perhitungan.
Sebelum dilakukannya perhitungan pada event terdapat langkah-langkah untuk membuat event terlebih dahulu pada tombol button1. 
seperti gambar dibawah ini: 



 setelah dilakukannya event pada button diatas buatlah sebuah sourch programnya.
contoh sourch program:
 import javax.swing.*;

public class Materi2 extends javax.swing.JFrame {


    public Materi2() {
        initComponents();
    }

 
    @SuppressWarnings("unchecked")


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
          String a = String.valueOf (Nama.getText());
          int b = Integer.parseInt(a);
          int c;
          c = b*2;
          System.out.println("Tulisannya Adalah : "+a);
          hasil.setText(""+c);


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

    // Variables declaration - do not modify
    private javax.swing.JTextField Nama;
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField nim;
    // End of variables declaration

}



Setelah membuat sourch code nya kemudian mencoba mengaplikasikan event pada gui perhitungan tersebut.
Gambar diatas adalah hasil dari event sesuai sourch code yang sudah dibuat.

Pengantar Gui


Pengantar Gui
Pengantar
  • GUI (Graphical User Interface), memungkinkan user untuk berinteraksi dengan komputer secara lebih baik.
  • Pengguna berinteraksi dengan berbagai elemen grafis,diantaranya: button, dialog box, menu, dsb.
  • Sejak 1994 Sun Microsystem berupaya untuk membuat JAVA memiliki perangkat bergaya desktop dengan ToolkitJAVA yang dikenal sebagai AWT (Abstract Windowing Toolkit)
  • Tahun 1997, muncul JFC (Java Foundation Class) untuk kepentingan pembuatan aplikasi Window yang merupakan pengembangan dari AWT.
  • JFC mempunyai kode swing yang terdapat pada package yang disediakan pada JAVA SDK versi 1.2 ke atas (JAVA 2).
  • JAVA menyediakan dua graphical library :
                 AWT (Abstract Windows Toolkit) 
                 Swing
 
Contoh:           import java.awt.* ;
                        Import java.awt.event.* ;
                        Import javax.swing.* ; 

Contoh Tampilan Gui sederhana:


Contoh Container-container pada Gui:
Container : Frame

        import javax.swing.*;
             class FramePertamaku extends JFrame {
             public FramePertamaku() {
         setTitle( "Frame Pertama );
         setSize( 300 , 200 );
              }
        }
public class Frameku {
public static void main (String args[ ] ) {
     FramePertamaku coba = new FramePertamaku();
     coba.show();
     }
}

Component : TextField


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
    public class TeksField {
    public static void main(String[ ] args) {
        JFrame frame = new JFrame("Membuat TeksField");
        JLabel label = new JLabel("Nama :");
        JTextField textField = new JTextField(20);
           frame.getContentPane().setLayout(new FlowLayout());
           frame.getContentPane().add(label);
           frame.getContentPane().add(textField);
           frame.pack();
           frame.setVisible(true);
           frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       }
}

Component : Label
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
   public class KomponenLabel {
   public static void main(String[ ] args) {
          JFrame frame = new JFrame("Membuat Label");
         JLabel label = new JLabel("Pemrograman Berorientasi Obyek");
         frame.getContentPane().add(label);
         frame.pack();
         frame.setVisible(true);
         frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
         }
}
 

Enkapsulasi

Enkapsulasi Enkapsulasi Merupakan suatu metode dalam konsep OOP yang berfungsi agar suatu proses pada sebuah program tidak dapat diakse...