Minggu, 14 Juli 2019

iriport

iReport adalah utilitas (perkakas) pelaporan, yang dikembangkan di lingkungan Java guna membantu user dan developer (pengembang/programmer) mendesain laporan secara visual. Melalui antar muka yang simple namun kaya akan fitur, iReport menyediakan fungsi yang paling penting untuk membuat laporan yang kompleks dengan mudah, sehingga akan menghemat banyak waktu.

iReport menggunakan library JasperReports untuk membuat laporan. JasperReports, dalam hal ini adalah inti dari iReport. JasperReports adalah utilitas pelaporan open source yamg paling populer didalam teknologi Java, dan iReport adalah report designer visual untuk JasperReports

a.   Fitur fitur iReport
   iReport dapat terhubung ke database apapun dan memperoleh data dari sumber data yang berbeda. Selain itu dapat mengekspor laporan ke PDF, XHTML, OpenOffice, MS Word, MS Excel, XML, Text, dan lain lain.
   User Interface (UI) dari iReport sangat user friendly. Hal ini memberikan beberapa langkah mudah untuk menghasilkan laporan dengan menggunakan bantuan Wizard Laporan.
Fitur antar muka di iReport termasuk: Fasilitas Drag-and-drop (tarik dan letakkan) untuk Elments Report (elemen laporan). Window Palette yang terdiri dari Report Elements dan Tools Navigasi yang mudah dari report objects melalui Report Inspector 

Terdapat banyak tools untuk reporting dalam java. Diantaranya yang dapat digunakan adalah :
‐  JasperReports : Merupakan software open source untuk reporting
‐  iReport : Merupakan Visual Designer untuk membuat laporan yang komplek menggunakan JasperReports library tanpa harus memiliki pengetahuan tentang XML
JasperReports  & iReport dapat di download melalui: http://jasperforge.org/
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.
jasperReport dapat anda download di alamat : http://jasperforge.org/
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.



Sumber : https://mbahsantri.wordpress.com/2014/12/12/pembuatan-laporan-dengan-ireport/
https://elfanteen.blogspot.com/2016/12/pengettian-ireport.html

Jumat, 12 Juli 2019

konsep oop

Konsep Dasar PBO


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 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.
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:
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();
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:

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


Enkapsulasi

Hasil gambar untuk enkapsulasi java

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.





PERHATIKAN 2 SS TERSEBUT!
Terlihat pada gambar 1 terdapat deklarasi 3 variable. Sedangkan pada kelas lainnya (Kelas Modul1), digunakan untuk memanggil data yang ada pada Kelas Mobil.
KONSTRUKTOR
1.      Method khusus yang akan dijalankan saat pada saat pembuatan objek (Instance).
2.      Cara mudah mengenali konstruktor adalah dengan melihat nama kelas dengan konstruktornya.
3.      Ingat! Nama konstruktor SELALU SAMA dengan nama kelas!
4.      Dapat ditulis dengan menggunakan parameter ataupun tidak.

PENGGUNAAN KONSTRUKTOR TANPA PARAMETER
OVERLOADING
1.      Method dengan nama yang sama, namun memiliki parameter yang berbeda.
2.      Dilakukan pada kelas yang sama.
3.      Penggunaan Overloading dapat diaplikasikan pada Konstruktor maupun method yang biasa pada umumnya.


Sabtu, 20 April 2019

DATABASE CURD JAVA

CRUD adalah akronim untuk Create, Read, Update, dan Delete. Operasi CRUD adalah manipulasi data dasar untuk database.
 Dalam pemrograman komputer , membuat, membaca, memperbarui, dan menghapus [1] ( CRUD ) adalah empat fungsi dasar penyimpanan persisten . [2] Kata-kata alternatif kadang-kadang digunakan saat mendefinisikan empat fungsi dasar CRUD , seperti mengambil alih-alih membaca , mengubah alih-alih memperbarui , atau menghancurkan alih-alih menghapus . CRUD juga terkadang digunakan untuk menggambarkan konvensi antarmuka pengguna yang memfasilitasi tampilan, pencarian, dan perubahan informasi ; sering menggunakan formulir dan laporan berbasis komputer. Istilah ini kemungkinan pertama kali dipopulerkan oleh James Martin dalam bukunya 1983 Mengelola Lingkungan Data-base . [1] [3] Akronim ini dapat diperluas ke CRUDL untuk mencakup daftar set data besar yang membawa kompleksitas tambahan seperti pagination ketika set data terlalu besar untuk dengan mudah disimpan dalam memori.

CRUD (Create, Read, Update Delete) adalah fitur dasar yang harus kita buat saat bekerja dengan database.
Berikut ini daftar pekerjaannya…
TODO:

Ada lima method dalam class tersebut:

1. Method __construct()

Method __construct() merupakan sebuah konstruktor. Method ini yang akan dieksekusi pertama kali saat Controller diakses.
Pada method ini, kita melakukan load model (porduct_model) dan library (form_validation).

2. Method index()

Pada method ini, kita akan mengambil data dari model dengan memanggil method product_model->getAll().

3. Method add()

Method ini bertugas untuk menampilkan form add dan menyimpan data ke database. Tentunya dengan memanggil method save() yang ada pada model.
Namun, sebelum memanggil method save(), kita lakukan validasi terlebih dahulu dengan mengeksekusi method run() pada objek $validation.

4. Method edit()

Hampir sama dengan method add(), method edit() juga bertugas untuk menampilkan form dan menyimpan data.

5. Method delete()

Method delete() befungsi untuk menangni penghapusan data.
Prinsipnya hampir sama seperti method edit(), method delete() juga membutuhkan $id untuk menentukan data mana yang akan dihapus.


Tahap pertama adalah membuat project baru :

1. Buka projek baru dengan cara klik file =>  New Project
2. Pilih katagori: java dan project: java application.
3. Berikan nama project: sesuai dengan kebutuhan dan jangan lupa jangan lupa centang create main project lalu finish.
CREATE(INSERT)
 Untuk Create, masukkan coding berikut ke dalam class Main

package org.jaco.hibernate;
import java.util.Scanner;
import org.hibernate.Session;
import org.hibernate.cfg.Configuration;
public class Main {
    public static void main(String[] args) {
        //  Buat Session untuk Koneksi Database
        Session s = new Configuration().configure().buildSessionFactory().openSession();
         
        //  Buat Objek dari class Users
        Users user = new Users();
         
        //  Pilih jenis operasi CRUD
        System.out.println("Pilih Operasi 1CRUD");
        System.out.println("1. Create");
        System.out.println("2. Read");
        System.out.println("3. Update");
        System.out.println("4. Delete");
        System.out.print("Pilihan : ");     int pilih = new Scanner(System.in).nextInt();
         
        switch(pilih)
        {
            case 1  :   //  Create(Insert SQL)
                        //  set nilai untuk objek user
                        //  user.setID(null)    nggak perlu dibuat karena, Auto_Increment
                        user.setNama("Yudi");
                         
                        try
                        {
                            //  Mulai Koneksi
                            s.beginTransaction();
                             
                            //  Simpan Objek User ke Session
                            s.save(user);
                             
                            //  execute Session ke MySQL
                            s.getTransaction().commit();
                             
                        }catch(Exception e)
                        {
                            e.printStackTrace();
                        }
                         
                            break;
                             
            default :   System.out.println("Pilihan tidak tersedia");
                             
        }
    }
}

Contoh  Kasus:

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);
            }
        }
    }
 
 
 

READ(SELECT)
Untuk Read, tambahkan coding berikut ke dalam file Main.class.

case 2  :   //  Read(Select SQL)
        s.beginTransaction();
        for(Users us :getAllUsers())
        {
            System.out.println(us);
        }
     
            break;
//  Method untuk select all from table
    public static List<Users> getAllUsers()
    {
        List<Users> list = null;
        Session session = new Configuration().configure().buildSessionFactory().openSession();
         
        try
        {
            session.beginTransaction();
            Query query = session.createQuery("from org.jaco.hibernate.Users");
            list = query.list();
            return list;
        }catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

Contoh Kasus :
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;
                     
}
 
 
 
 
 






UPDATE
Untuk update, tambahkan coding berikut ke dalam file Main.class.

case 3  :   //  Update(Update SQL)
        s.beginTransaction();
                         
        //  Set Query SQL
        Query query = s.createQuery("update org.jaco.hibernate.Users set nama = :nama where id = :id");
        query.setParameter("nama", "Setiawan");
        query.setParameter("id", 1);
        int exec = query.executeUpdate();
        s.getTransaction().commit();
                         
            break;
DELETE(DELETE SQL)
Untuk yang terakhir Delete, tambahkan coding berikut ke dalam file Main.class

case 4  :   //  Delete(Delete SQL)
        s.beginTransaction();
                         
        //  Set Query SQL
        query = s.createQuery("delete from org.jaco.hibernate.Users where id = :id");
        query.setParameter("id", 1);
        exec = query.executeUpdate();
        s.getTransaction().commit();
                         
            break;



iriport

iReport adalah utilitas (perkakas) pelaporan, yang dikembangkan di lingkungan Java guna membantu user dan developer (pengembang/programm...