Mengenai Saya

Foto saya
Purworejo, Jawa tengah, Indonesia
Nama : irvan rifa'i Alamat : Gadingan, Gadingrejo, Kepil, Wonosobo Status : Mahasiswa Kampus : Universitas Muhamadiyah Purworejo

Jumat, 12 Juli 2019

ENKAPSULASI

TUJUAN PEMBELAJARAN ?

  • Mengetahui tentang Enkapsulasi.
  • Mampu menjelaskan konstruktor yang ada pada Java.
  • Mampu menggunakan konsep Overloading pada Java.
  • Mampu mengaplikasikan konsep-konsep materi ini pada pemrograman Java.
Enkapsulasi
  • Enkapsulasi adalah salah satu yang paling terpenting di dalam pemrograman berorientasi objek(OOP). karena tahap enkapsulasi lah yang menentukan pemberian hak akses pada setiap property atau method.  enkapsulasi atau encapsulation pada OOP terdiri dari 3. yaitu : Public, Private dan Protected.
  • 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 suatuvariable 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.
Perhatikan soscod dibawah ini:
  1. Kelas Mobil

       2. Kelas Modul1 (Kelas Pemanggil)

Terlihat pada gambar 1 terdapat deklarasi 3 variable. Sedangkan pada kelas lainnya (Kelas Modul1), digunakan untuk memanggil data yang ada pada Kelas Mobil.


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.

PENGGUNAAN KONSTRUKTOR TANPA PARAMETER
Kelas Mobil
Kelas Pangilan


PENGGUNAAN KONSTRUKTOR DENGAN PARAMETER

Kelas Mobil
Kelas Pangilan



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.

  OVERLOADING

  OVERLOADING (KELAS PEMANGGIL)

KONSEP DASAR OOP

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.

Pemrograman Berorientasi Objek

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

Kelebihan Konsep PBO

  • Konsep OOP sangat cocok digunakan untukmendefinisikan 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.
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 {

}

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:

  • Atribut, merupakan ciri-ciri yang melekat pada suatuobjek (state).
  • Method, merupakan fungsi-fungsi yang digunakan untuk melakukan manipulasi sekumpulan nilai yang ada pada atribut.
Deklarasi sebuah Objek pada Kelas:
namaKelas namaObjek = new namaKelas();

Parameter

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



Constructor
  • Constructor adalah method khusus yang akan dieksekusi pada saat pembuatan objek (instance).
  • Biasanya method ini digunakan untuk inisialisasi atau mempersiapkan data untuk objek.



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:

            Sintaks Tanpa Keyword This
            Sintaks Dengan Keyword This



Access Modifier
  • Access Modifier merupakan pengaturan terhadap hak akses pada kelas maupun method.

PEMBUATAN TABEL DAN EVENT


Pertama kita buat Project Baru dengan cara Klik File-New Project




Kemudian Pilih Java - Java Application, klik Next





Masukkan nama Project, kemudian hilangkan cek (uncheck) pada Create Main Class. Klik Finish



Jadilah Project Baru.



Pada Project Tree View sebelah kiri, klik kanan pilih Properties.



Pada Dialog Project Properties, pilih Libraries. Kemudian klik Tombol Add Library.



Pada Dialog Add Library pilih MySQL JDBC Driver, kemudian klik Add Library.



Kemudian setelah kembali ke Jendela Project Properties, klik Add JAR/Folder. Pilih Folder tempar Instalasi iReport, misal di C:\Program Files\JasperSoft\iReport-4.7.0\ireport\modules\ext.



Kemudian Pilih Library JAR berikut : commons-beanutils.jar, commons-collections.jar, commons-digester.jar, commons-logging.jar, groovy-all.jar, iText.jar, japerreports.jar, spring.jar. Klik Open



Maka akan kembali ke Window NetBeans dan tampak Library sudah masuk semua.



Kemudian kita buat Jendela Baru di Aplikasi ini dengan pada Project TreeView klik kanan Source Packages, pilih New - Folder.



Masukkan nama Class dan nama Package nya. Klik Finish



Kemudian pada Pallete, Swing Controls pilih JButton.



Kemudian tambahkan satu buah JButton ke Form, dan klik kanan pilih Events-Action-actionPerformed.



Setelah itu ketikkan kode program berikut di dalam Event-nya, tetapi jangan lupa tambahkan dahulu import di bagian atas class :

// http://cariprogram.blogspot.com
// nuramijaya@gmail.com


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.JDialog;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.swing.JRViewer;

Kemudian barulah masukkan kode program ke dalam Events-nya :


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        try {
            //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            //String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + 
            //        System.getProperties().getProperty("java.class.path").split(";")[System.getProperties().getProperty("java.class.path").split(";").length - 1] + 
            //        "\\world.mdb" + ";DriverID=22;READONLY=true}"; 
                    //JOptionPane.showMessageDialog(rootPane, url, "", JOptionPane.INFORMATION_MESSAGE);

            Class.forName("com.mysql.jdbc.Driver"); 

            String url = "jdbc:mysql://localhost:3306/rumahsakit";
            Connection cn = DriverManager.getConnection (url, "root", "");
        
            String SQL = "SELECT    dokter.`nip` AS dokter_nip,     dokter.`nama` AS dokter_nama,     dokter.`alamat` AS dokter_alamat,     dokter.`tgllahir` AS dokter_tgllahir,    dokter.`tunjangan` AS dokter_tunjangan FROM `dokter` dokter";

            Statement st = cn.createStatement();
            ResultSet rs = st.executeQuery(SQL);
  
            JasperPrint jasperPrint;       
            JRResultSetDataSource jrRS = new JRResultSetDataSource (rs);            
            JasperReport jasperReport = JasperCompileManager.compileReport(System.getProperties().getProperty("java.class.path").split(";")[System.getProperties().getProperty("java.class.path").split(";").length - 1] + "\\reportdokter.jrxml");          
            jasperPrint = JasperFillManager.fillReport(jasperReport, null, jrRS);
            JRViewer aViewer = new JRViewer(jasperPrint);                  
            JDialog viewer = new JDialog(); 
            viewer.setTitle(".: Jasper Report :.");             
            viewer.setAlwaysOnTop(true);
            viewer.getContentPane().add(aViewer);                  
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();     
            viewer.setBounds(0,0,screenSize.width, screenSize.height);
            viewer.setVisible(true);              

            st.close();
            cn.close();
          } catch(Exception e)
          {
               System.out.println(e);
          }

    }//GEN-LAST:event_jButton1ActionPerformed





Pada Project TreeView sebelah kiri, pilih nama Projectnya, klik kanan pilih Build.



Kemudian kita masukkan dahulu file Report yang pernah kita buat, dalam ini adalah reportdokter.jasper dan reportdokter.jrxml. Copy kemudian masukkan ke Direktori Project di dalam folder dist



Copy kemudian masukkan juga file  reportdokter.jasper dan reportdokter.jrxml ke Direktori Project di dalam folder build/classes



Untuk menjalankan Aplikasi bisa dilakukan pada Project TreeView, klik kanan nama Form, pilih Run File



Setelah muncul aplikasinya, coba klik tombol Cetak



Akan ditampilkan Jendela Preview Cetak dengan JasperReport

Jasper Reports (pengenalan dasar)

JasperReports adalah sumber terbuka Java alat pelaporan yang dapat menulis ke berbagai sasaran, seperti: layar, printer, menjadi file PDF, HTML, Microsoft Excel, RTF, ODT, nilai-nilai yang dipisahkan dengan koma atau XML .
Dapat digunakan dalam aplikasi Java aktif, termasuk Java EE atau aplikasi web, untuk menghasilkan konten dinamis. Membaca dengan instruksi dari file XML atau .jasper.JasperReports adalah bagian dari inisiatif tumpukan sumber terbuka Lisog
JasperReports adalah open source pelaporan perpustakaan yang dapat dimasukkan ke dalam aplikasi Java. Fitur termasuk:    Scriptlets dapat menyertai definisi laporan yang definisi laporan dapat memohon pada setiap titik untuk melakukan proses administrasi tambahan. Scriptlet dibangun menggunakan Java, dan memiliki banyak kait yang dapat dipanggil sebelum atau setelah tahap laporan generasi, seperti laporan, halaman, kolom atau kelompok.  Sub-laporan Untuk pengguna dengan lebih canggih laporan manajemen persyaratan, laporan yang dirancang untuk JasperReports dapat dengan mudah diimpor ke JasperServer – server interaktif laporan…
JasperReports laporan didefinisikan dalam XML file format, disebut JRXML, yang dapat menjadi tangan-kode, dihasilkan, atau dirancang menggunakan alat. File format didefinisikan oleh Dokumen jenis definisi (DTD) atau skema XML untuk versi yang lebih baru, menyediakan interoperabilitas terbatas. Perbedaan utama antara menggunakan XML dan .jasper file adalah bahwa XML file harus disusun pada saat runtime menggunakan JasperCompileManager kelas

Beberapa fitur iReport :
‐ 98% mendukung JasperReports tags
‐ Visual designer wysiwyg untuk menggambar rectangles, lines, ellipses, text fields fields, charts, sub reports…
‐ Built-in editor dengan syntax highlighting
‐ Mendukung Unicode dan bahasa non Latin (Russian, Chinese, Korean,…)
‐ Document structure browser
‐ Menggabungkan compiler dan exporter
‐ Mendukung semua JDBC compliant databases
‐ Memiliki Wizard untuk membuat report secara otomatis
‐ Mendukung  sub reports
‐ Save backup
‐ Support for templates
Membuat Report di Java-Netbeans Menggunakan JasperReport dan Ireport. Sebelum kita mengetahui cara membuatnya, sebaiknya kita mengetahui pengertian dari JasperReport dan iReport. Berikut pengertiannya :
iReport     : adalah Visual Designer untuk membuat laporan yang komplek, menggunakan jasperReport Libarary.
iReport adalah tools yang memudahkan Anda membuat laporan. Biasanya iReport di gunakan dalam bahasa pemrograman Java. iReport bersifat open source jadi Anda bebas menggunakan dan tidak perlu membeli lisensi untuk mengembangkannya.
JasperReport  : adalah software(library) open source untuk reporting.

Kamis, 18 April 2019

CREATE AND READ JAVA

MEMBUAT DAN MEMBACA DARI JAVA




Dari java, kita bisa membuat file dan sekaligus membaca file. Caranya adalah jalankan aplikasi Netbeans ( kebetulan editor java yang saya pakai adalah Netbeans ).
1.      Selanjutnya buat project baru dengan cara File - new Project
2.      Pada dialog project pilih ‘java’ pada pada categories dan pilih ‘java application’ pada project.

 

3.      Yang isi perlu anda isikan adalah :
Project Name         : File
Project Location     : c:\Lat_java
Selanjutnya klik ‘Finish’
















4.      Pada project yang terbentuk, buat form baru di package ‘file’ dengan cara klik kanan pada package file - new - JFrame Form …
















5.      Ganti Properties title JFrame dengan ‘Read and Write File’



















6.      Tambahkan 3 JButton dan 1 JText Area dari Palette kedalam JFrame dan buat text JButton Menjadi seperti berikut :



7.      Setelah JFrame berbentuk seperti diatas, tiba saatnya kita mengisi source code program.
Tambahkan perintah berikut di atas nama class

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
Dan dibawah nama class

private JFileChooser dialog = new JFileChooser();
8.      Isikan source code pada tombol ‘Create File’ dengan cara klik kanan pada JButton ‘Create File’ - Event - Action - ActionPerformed. 


Isikan Source code seperti berikut :

        int returnVal = dialog.showSaveDialog(this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = dialog.getSelectedFile();
            try {
                file.createNewFile();
                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));             
                out.print(jTextArea1.getText());
                out.flush();
            } catch (IOException ex) {
                System.err.println("Error: " + ex.getMessage());
            }
        } else {
            JOptionPane.showMessageDialog(null, "Batal Create File ..");
        }
9.      Perintah pada JButton ‘Read File’

            jTextArea1.setText(null);
        int returnVal = dialog.showOpenDialog(this);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = dialog.getSelectedFile();
            try{
                FileInputStream fstream = new FileInputStream(file);
                DataInputStream in = new DataInputStream(fstream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));             
                String strLine;
                while ((strLine = br.readLine()) != null){
                    StringTokenizer st = new StringTokenizer(strLine, ",");
                    jTextArea1.setText(jTextArea1.getText() + st.nextToken() +"\n");
                }
                in.close();
            }catch (Exception e){
                System.err.println("Error: " + e.getMessage());
            }

        } else {
            JOptionPane.showMessageDialog(null, "Batal Buka File ..");
        }

10.  Perintah Pada JButton ‘Close’

             System.exit(0);
11.  Jalankan Program


12. Klik tombol 'Create File' dan 'Read File'




      File Yang dihasilkan dari Proses diatas adalah seperti berikut :

file.jpeg (463×196)

Source Code Selengkapnya :

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ReadWrite.java
 *
 * Created on Oct 13, 2010, 1:07:14 PM
 */

package file;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
 *
 * @author ichwan
 */
public class ReadWrite extends javax.swing.JFrame { 
    private JFileChooser dialog = new JFileChooser();

    /** Creates new form ReadWrite */
    public ReadWrite() {
        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() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Read and Write File");

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

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

        jButton3.setText("Close");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

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

        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()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton2)
                        .addGap(18, 18, 18)
                        .addComponent(jButton3)))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jButton3))
                .addContainerGap())
        );

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

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
        System.exit(0);
    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        jTextArea1.setText(null);
        int returnVal = dialog.showOpenDialog(this);

        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = dialog.getSelectedFile();
            try{
                FileInputStream fstream = new FileInputStream(file);
                DataInputStream in = new DataInputStream(fstream);
                BufferedReader br = new BufferedReader(new InputStreamReader(in));             
                String strLine;
                while ((strLine = br.readLine()) != null){
                    StringTokenizer st = new StringTokenizer(strLine, ",");
                    jTextArea1.setText(jTextArea1.getText() + st.nextToken() +"\n");
                }
                in.close();
            }catch (Exception e){
                System.err.println("Error: " + e.getMessage());
            }

        } else {
            JOptionPane.showMessageDialog(null, "Batal Buka File ..");
        }
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        int returnVal = dialog.showSaveDialog(this);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            File file = dialog.getSelectedFile();
            try {
                file.createNewFile();
                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file)));             
                out.print(jTextArea1.getText());
                out.flush();
            } catch (IOException ex) {
                System.err.println("Error: " + ex.getMessage());
            }
        } else {
            JOptionPane.showMessageDialog(null, "Batal Create File ..");
        }

    }

    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new ReadWrite().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration

}



Other Sources: http://khalishahazzahra.blogspot.com/2010/10/membuat-dan-membaca-file-dari-java.html

ENKAPSULASI

TUJUAN PEMBELAJARAN ? Mengetahui tentang Enkapsulasi. Mampu menjelaskan konstruktor yang ada pada Java. Mampu menggunakan konsep Ove...