Belajar Java - Memisahkan String dengan Method Split

Pada saat belajar pemrograman sering kali membutuhkan sebagian dari String, untuk itu diperlukan suatu cara atau metode untuk memisahkan String tersebut. Dalam pemrograman java, didalam class String terdapat method split(). Method split berfungsi untuk mengambil nilai yang ada dalam variabel String dan mengembalikan suatu nilai char array. Pada artikel belajar pemrograman java kali ini saya akan memberikan beberapa contoh penggunaan method split untuk memisahkan String.

Terdapat 2 cara dalam menggunakan method split di java String

public String split(String regex);
atau
public String split(String regex, int limit);

Keterangan
regex = ekspresi reguler untuk diterapkan pada String.
limit
= jumlah batasan atau limit untuk jumlah String dalam array. Jika nol, maka akan mengembalikan semua String yang cocok dengan regex.


Baca Juga : Belajar Cara Membuat Method dan Penerapannya di Pemrograman Java


Belajar Java - Memisahkan String dengan Method Split

Contoh Program memisahkan String dengan menggunakan method split


package com.community.java;

/**
 *
 * @author akira
 */
public class ContohSplit1 {
    public static void main(String[] args){
        String text = "Belajar Pemrograman Java";
        
        String[] kata = text.split(" ");
        
        String text1 = kata[0];
        String text2 = kata[1];
        String text3 = kata[2];
        
        System.out.println("Text 1 = "+text1);
        System.out.println("Text 2 = "+text2);
        System.out.println("Text 3 = "+text3);
    }
}

Penjelasan :

String text = "Belajar Pemrograman Java";
Merupakan pendeklarasian String yang akan saya split.

String[] kata = text.split(" ");
Sebuah array yang akan saya gunakan untuk menampung nilai dari hasil split dari variabel text "Belajar Pemrograman Java".
array ini akan menampung isi dari variabel kalimat yang akan di split berdasarkan delimiter. apa itu delimiter ? Delimiter merupakan satu karakter atau lebih yang digunakan untuk memberi batasan atau sebagai pemisah data yang disajikan. beberapa contoh delimiter adalah tanda koma (,) titik dua (:) titik (.)

String text1 = kata[0];
Mengambil hasil dari split dengan index array 0.

Pada contoh diatas yang dijadikan delimiter adalah tanda spasi, tapi bagaimana jika terdapat 2 spasi atau lebih. Maka ubahlah baris String[] kata = text.split(" "); menjadi String[] kata = text.split("\\s+");

Berikut contoh String split dengan spasi dengan menggunakan perulangan


package com.community.java;

/**
 *
 * @author akira
 */
public class ContohSplit2 {
    public static void main(String[] args){
        String text = "Belajar Pemrograman Java String Split";
        
        String[] kata = text.split("\\s+");
        
        for(String result : kata){
            System.out.println("Text = "+result);
        }
        
    }
}

Output dari program diatas :
Text = Belajar
Text = Java
Text = String
Text = Split

Baca Juga : Belajar Java ArrayList dan Penerapannya

Contoh memisahkan String dengan parameter regex dan limit pada java String split

Pada contoh split diatas saya telah membuat beberapa contoh pengguna split dengan parameter regex, sekarang saya membuat contoh penggunaan split dengan parameter regex dan limit.

package com.community.java;

/**
 *
 * @author akira
 */
public class ContohSplit3 {
    public static void main(String[] args){
        String text = "Belajar Pemrograman Java String Split";
        
        String[] kata = text.split("\\s+", 3);
        
        for(String result : kata){
            System.out.println("Text = "+result);
        }
        
    }
}

Output dari program diatas :
Text = Belajar
Text = Java
Text = String Split

Dalam penggunaan method split() ada beberapa kondisi yang tidak dapat diselesaikan dengan cara di atas.

Bagaimana cara memisahkan String dengan titik(.) menggunakan split

Cara memisahkan String(kalimat) menggunakan method split() dengan delimiter titik(.) sebagai berikut :

package com.community.java;

/**
 *
 * @author akira
 */
public class ContohSplit4 {
    public static void main(String[] args){
        String text = "Belajar.Pemrograman.Java";
        
        String[] kata = text.split("\\.");
        
        String text1 = kata[0];
        String text2 = kata[1];
        String text3 = kata[2];
        
        System.out.println("Text 1 = "+text1);
        System.out.println("Text 2 = "+text2);
        System.out.println("Text 3 = "+text3);
    }
}

Sekian tutorial bagaimana cara memisahkan String dengan menggunakan method split. Semoga bermanfaat.
Copyrighted.com Registered & Protected

Belajar Pemrograman Web Berbasis Java Menggunakan JSF

Belajar Pemrograman Web Berbasis Java Menggunakan JSF - Pemrograman web merupakan salah satu cara membangun web dengan mengimplementasikan kode-kode bahasa pemrograman yang dapat berjalan di server. Bahasa pemrograman yang mendukung pemrograman web ini diantara JSF, JSP, PHP, ASP dan lain-lain. Pada kesempatan kali ini saya ingin berbagi tutorial bagaimana cara membangun sebuah web aplikasi berbasis java menggunakan framework JSF atau Java Server Faces dan Primefaces.
Belajar Pemrograman Web Berbasis Java Menggunakan JSF

Apa itu JSF?

Java Server Faces atau JSF merupakan salah satu teknologi dalam pengembangan aplikasi web berbasis java. Dan JSF merupakan bagian dari Java Platform, Java Enterprise Edition.
Berdasarkan penjelasan dari Sun, JSF terdiri atas :
  • Kumpulan komponen UI
  • Pengaturan Flow Navigasi
  • Event Handling
  • Halaman Web
  • Server side objects

Baca Juga : Belajar Pemrograman Web - Pengenalan Primefaces

Dalam tutorial ini saya menggunakan Netbeans IDE.

Berikut tahapan untuk membuat sebuah aplikasi web berbasis java :
  • Pilih menu file dan pilih New Project.
  • Kemudian pada categories klik Java Web, pilih Web Application dan klik Next.

Belajar Pemrograman Web Berbasis Java Menggunakan JSF

  • Selanjutnya akan muncul dialog untuk mengatur nama dan lokasi project yang akan kalian buat.
  • Project Name isi dengan nama project web yang akan kalian buat(tanpa ada spasi), 
  • sebagai contoh saya buat dengan nama ContohPemrogramanWeb.
  • Project Location merupakan lokasi dimana project disimpan.

Belajar Pemrograman Web Berbasis Java Menggunakan JSF

  • Jika sudah klik Next.
  • Kemudian akan muncul dialog untuk mengatur server dan versi Java EE.
  • Pilih server GlassFish kemudian klik Next.
Belajar Pemrograman Web Berbasis Java Menggunakan JSF


Tunggu hingga muncul dialog berikut :
Belajar Pemrograman Web Berbasis Java Menggunakan JSF

  • Pada tahapan ini kalian dapat memilih framework yang akan kalian gunakan dalam membangunan aplikasi web berbasis java ini, seperti Spring Web MVC, Java Server Faces, Struts, Hibernate, dll. Untuk tutorial ini saya menggunakan framework Java Server Faces atau JSF.
  • Pada tab Configuration masukkan *.jsf pada JSF Servlet URL Patterns.
  • Kemudian klik Next.

Baca Juga : Belajar Java - Modul dan Arsitektur Spring Framework.


Jangan lupa tambahkan library Primefaces, bagi yang belum memiliki library Primefaces bisa download di situs resminya primefaces.org

Buatlah sebuah class Mahasiswa.

package com.community.entity;

import java.io.Serializable;

/**
 *
 * @author akira
 */
public class Mahasiswa implements Serializable{
    private String nim, nama, jurusan;

    public Mahasiswa() {
    }

    public Mahasiswa(String nim, String nama, String jurusan) {
        this.nim = nim;
        this.nama = nama;
        this.jurusan = jurusan;
    }

    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getJurusan() {
        return jurusan;
    }

    public void setJurusan(String jurusan) {
        this.jurusan = jurusan;
    }
    
}

Buatlah sebuah class untuk dijadikan managedBean.

package com.community.mbaen;

import com.community.entity.Mahasiswa;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;


/**
 *
 * @author akira
 */
@ManagedBean(name = "mahasiswaMBean")
@ViewScoped
public class MahasiswaMBean implements Serializable{
    private String nim, nama, jurusan;
    private List listMhs;
    private Mahasiswa selectedMhs;
    
    @PostConstruct
    void init(){
        listMhs = new ArrayList<>();
        listMhs.add(new Mahasiswa("41101324", "Akira", "Teknik Informatika"));
        listMhs.add(new Mahasiswa("32101322", "Natsuki", "Management Informatika"));
        listMhs.add(new Mahasiswa("41101243", "Hikaru", "Teknik Informatika"));
    }
    
    public void onSelectedMhs(){
        if(selectedMhs!=null){
            nim = selectedMhs.getNim();
            nama = selectedMhs.getNama();
            jurusan = selectedMhs.getJurusan();
        }
    }
    
    public void simpanMhs(){
        listMhs.add(new Mahasiswa(nim, nama, jurusan));
        clear();
    }
    
    public void editMhs(){
        if(selectedMhs!=null){
            listMhs.add(new Mahasiswa(nim, nama, jurusan));
            listMhs.remove(selectedMhs);
            clear();
        } else {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage(FacesMessage.SEVERITY_WARN, 
                            "Perhatian", "Silahkan Pilih Mahasiswa Yang Akan Di Edit"));
        }
    }
    
    public void hapusMhs(){
        if(selectedMhs!=null){
            listMhs.remove(selectedMhs);
            clear();
        } else {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage(FacesMessage.SEVERITY_WARN, 
                            "Perhatian", "Silahkan Pilih Mahasiswa"));
        }
    }

    private void clear(){
        nim = "";
        nama = "";
        jurusan = "";
    }
    
    public String getNim() {
        return nim;
    }

    public void setNim(String nim) {
        this.nim = nim;
    }

    public String getNama() {
        return nama;
    }

    public void setNama(String nama) {
        this.nama = nama;
    }

    public String getJurusan() {
        return jurusan;
    }

    public void setJurusan(String jurusan) {
        this.jurusan = jurusan;
    }

    public Mahasiswa getSelectedMhs() {
        return selectedMhs;
    }

    public void setSelectedMhs(Mahasiswa selectedMhs) {
        this.selectedMhs = selectedMhs;
    }

    public List getListMhs() {
        return listMhs;
    }

    public void setListMhs(List listMhs) {
        this.listMhs = listMhs;
    }
    
}

Untuk halaman web-nya, ubahlah kode index.xhtml dengan kode dibawah ini :

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://xmlns.jcp.org/jsf/core">
    <h:head>
        <title>Contoh Pemrograman Web</title>
    </h:head>
    <h:body>
        <h:form id="appform">
            <p:growl id="growl" sticky="true" showDetail="true" />
            <p:outputPanel id="opmain">
                <p:panelGrid>
                    <p:row>
                        <p:column>NIM</p:column>
                        <p:column>:</p:column>
                        <p:column><p:inputText value="#{mahasiswaMBean.nim}" /></p:column>
                    </p:row>
                    <p:row>
                        <p:column>Nama</p:column>
                        <p:column>:</p:column>
                        <p:column><p:inputText value="#{mahasiswaMBean.nama}" /></p:column>
                    </p:row>
                    <p:row>
                        <p:column>Jurusan</p:column>
                        <p:column>:</p:column>
                        <p:column>
                            <p:selectOneMenu value="#{mahasiswaMBean.jurusan}">
                                <f:selectItem itemLabel="Pilih Jurusan" itemValue=""/>
                                <f:selectItem itemLabel="Teknik Informatika" itemValue="Teknik Informatika"/>
                                <f:selectItem itemLabel="Management Informatika" itemValue="Management Informatika"/>
                                <f:selectItem itemLabel="Komputerisasi Akuntansi" itemValue="Komputerisasi Akuntansi"/>
                            </p:selectOneMenu>
                        </p:column>
                    </p:row>
                </p:panelGrid>
                <br/>
                <p:commandButton value="Simpan"
                                 update="growl, opmain"
                                 actionListener="#{mahasiswaMBean.simpanMhs()}" />&nbsp;&nbsp;
                <p:commandButton value="Edit"
                                 update="growl, opmain"
                                 actionListener="#{mahasiswaMBean.editMhs()}" />&nbsp;&nbsp;
                <p:commandButton value="Hapus"
                                 update="growl, opmain"
                                 actionListener="#{mahasiswaMBean.hapusMhs()}" />
                <br/><br/>
                <p:dataTable var="mhs" selectionMode="single" rowKey="#{mhs}"
                             selection="#{mahasiswaMBean.selectedMhs}"
                             value="#{mahasiswaMBean.listMhs}">
                    <p:ajax event="rowSelect" update=":appform:opmain" 
                            listener="#{mahasiswaMBean.onSelectedMhs()}" />
                    <p:column headerText="NIM">
                        <h:outputText value="#{mhs.nim}" />
                    </p:column>

                    <p:column headerText="Nama">
                        <h:outputText value="#{mhs.nama}" />
                    </p:column>

                    <p:column headerText="Jurusan">
                        <h:outputText value="#{mhs.jurusan}" />
                    </p:column>
                </p:dataTable>
            </p:outputPanel>
        </h:form>
    </h:body>
</html>

Hasil output dari contoh program di atas :

Belajar Pemrograman Web Berbasis Java Menggunakan JSF


Sekian Tutorial pemrograman web berbasis java menggunakan framework JSF dan Primefaces. Semoga bermanfaat.
Copyrighted.com Registered & Protected

Belajar Pemrograman Java Web - Pengenalan Primefaces

Primefaces merupakan framework open source paling populer untuk Java Server Faces atau JSF. Primefaces memiliki lebih dari 100 komponen karena Primefaces berkolaborasi dengan JQuery, pengoptimalan untuk mobile kit, skin dapat dimodifikasi dengan Themes Roller JQuery, validasi sisi client, theme engine dan masih banyak lagi.

Semua aplikasi web yang saya bangun selama ini juga menggunakan Primefaces + JSF + EJB, selain menggunakan EJB (Enterprise Java Bean) bisa juga menggunakan Spring boot.

Baca Juga : Belajar Java - Modul dan Arsitektur Spring Framework

Pengenalan Primefaces

Primefaces dapat di download secara manual ataupun melalui maven. Terdapat 2 Jenis Primefaces yang dapat kalian download, yaitu Primefaces Elite atau Pro dan Community. Untuk Mendownload secara manual kalian bisa mengunjungi situs resminya Primefaces.

Sedangkan untuk download Primefaces dengan maven, seperti berikut :

<dependency>  
    <groupId>org.primefaces</groupId>  
    <artifactId>primefaces</artifactId>  
    <version>6.0</version>  
</dependency>


Premium Template dan Layout

Primefaces juga menyedian beberapa template premiun seperti :
  • Primefaces California
  • Primefaces California
  • Primefaces Apollo
  • Primefaces Apollo
  • Primefaces Serenity
  • Primefaces Serenity
  • Primefaces Avalon
  • Primefaces Avalon
  • Primefaces Manhattan
  • Primefaces Manhattan
  • Primefaces Paradise
  • Primefaces Barcelona
  • Primefaces Barcelona
  • Primefaces Morpheus
  • Primefaces Morpheus
  • Primefaces Verona
  • Primefaces Verona
  • Primefaces Atlantis
  • Primefaces Atlantis
  • Primefaces Poseidon
  • Primefaces Ultima
  • Primefaces Ultima

Selain template dan layout premium, primefaces juga menyediakan beberapa themes gratis yang dapat kalian download di Themes Gallery.

Baca Juga : Belajar Pemrograman Web Berbasis Java Menggunakan JSF

Primefaces Mobile

Primefaces Mobile merupakan Kit UI untuk membangun aplikasi JSF yang dioptimalkan untuk perangkat seluler. Primefaces Mobile dibangun di atas jQuery Mobile, framework HTML5 UI yang dioptimalkan untuk sentuhan yang mendukung berbagai platform . Selain integrasi dengan jQuery Mobile, Primafaces Mobile menampilkan Mobile Renderkit untuk komponen PrimeFaces yang populer, ekstensi kerangka kerja ajax, ajax ajax ajax, model navigasi terpadu, pemuatan halaman yang malas, widget responsif dan banyak lagi.

Sekian pengenalan primefaces dari community-java.com, semoga bermanfaat.

Copyrighted.com Registered & Protected

Belajar Java - Cara Menambahkan Aksi Pada JButton Di Pemrograman Java

Setelah sekian lama saya tidak menulis artikel java, sekarang saya akan membuat tutorial cara menambahkan aksi pada JButton di pemrograman java. Tutorial ini saya buat berdasarkan permintaan dari salah satu teman Facebook dari Timika Papua yang ingin belajar pemrograman java. Berawal dari pembelajaran online mengenai java fundamental atau java dasar dan sekarang sudah sampai ke tahap java swing.

Pada tutorial ini tidak lepas dari pembuatan JFrame, untuk materi pembuat JFrame di Java Netbeans. Silahkan kunjungi Tutorial Cara Membuat JFrame di Java Netbeans.

Pada tutorial java kali ini saya bagi dalam 2(dua) tahap

Tahap Pertama saya akan membuat sebuah tampilan dengan menggunakan JFrame, berikut tampilan yang akan saya buat.

Belajar Java - Cara Menambahkan Aksi Pada JButton Di Pemrograman Java

Untuk membuat tampilan diatas saya menggunakan full coding ( tidak menggunakan drag and drop ), berikut source code untuk membuat tampilan seperti diatas :

package com.communityjava.swing;

import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author Akira
 */
public class AksiTombol extends JFrame {

    private JTextField jTextField;
    private JButton jButton;
    private JTextArea jTextArea;
    
    public AksiTombol(){
        setTitle("Aksi Tombol");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }

    private void userInterface(){
        JPanel jp = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));
        
        jTextField = new JTextField();
        jTextField.setPreferredSize(new Dimension(250, 30));
        jp.add(jTextField);
        
        jButton = new JButton("Klik Disini");
        jp.add(jButton);
        
        jTextArea = new JTextArea();
        jTextArea.setPreferredSize(new Dimension(250, 60));
        jp.add(jTextArea);
        
        getContentPane().add(jp);
    }
}



Tahap Kedua saya akan menambahkan sebuah aksi pada JButton, ketika saya melakukan klik pada JButton "Klik Disini" maka JTextArea akan menampilkan output seperti yang saya ketikkan di JTextField dan hasil inputan di JTextField akan hilang.

Berikut ini cara untuk menambahkan aksi di JButton menggunakan ActionListener :

Pada baris "public class AksiTombol extends JFrame" tambahkan "implements ActionListener", kemudian buatlah sebuah method seperti berikut :

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==jButton){
            if(jTextField.getText().trim().equals("")){
                JOptionPane.showMessageDialog(null, "Silahkan Isi Text-nya");
            } else {
                jTextArea.setText(jTextField.getText());
                jTextField.setText("");
            }
        }
    }

Penjelasan :
Source code diatas akan melakukan sebuah aksi jika JButton atau Tombol di klik, Jika di JTextField tidak ada karakter yang diinputkan maka akan menampilkan sebuah dialog yang berisikan text "Silahkan Isi Text-nya". Jika JTextField berisi karakter maka hasil inputan tadi akan dijadikan output dari JTextArea dan inputan di JTextField akan dihapuskan.

Jangan lupa tambahkan code dibawah ini tepat dibawah "jButton = new JButton("Klik Disini");" :
jButton.addActionListener(this);

Dibawah ini merupakan source code secara keseluruhannya :

package com.communityjava.swing;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 *
 * @author Akira
 */
public class AksiTombol extends JFrame implements ActionListener{

    private JTextField jTextField;
    private JButton jButton;
    private JTextArea jTextArea;
    
    public AksiTombol(){
        setTitle("Aksi Tombol");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setResizable(false);
        setLocationRelativeTo(null);
        userInterface();
        setVisible(true);
    }

    private void userInterface(){
        JPanel jp = new JPanel(new FlowLayout(FlowLayout.CENTER, 10, 10));
        
        jTextField = new JTextField();
        jTextField.setPreferredSize(new Dimension(250, 30));
        jp.add(jTextField);
        
        jButton = new JButton("Klik Disini");
        jButton.addActionListener(this);
        jp.add(jButton);
        
        jTextArea = new JTextArea();
        jTextArea.setPreferredSize(new Dimension(250, 60));
        jp.add(jTextArea);
        
        getContentPane().add(jp);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==jButton){
            if(jTextField.getText().trim().equals("")){
                JOptionPane.showMessageDialog(null, "Silahkan Isi Text-nya");
            } else {
                jTextArea.setText(jTextField.getText());
                jTextField.setText("");
            }
        }
    }
    
    public static void main(String[] args){
        AksiTombol obj = new AksiTombol();
    }
    
}


Sekian tutorial java tentang cara menambahkan aksi pada JButton dengan menggunakan ActionListener di pemrograman java. Semoga bermanfaat. 

Copyrighted.com Registered & Protected

Konsep Dasar Data Warehouse

Data warehouse merupakan fasilitas sistem yang menampung data institusi secara menyeluruh dan menyajikannya kembali untuk berbagai keperluan pelaporan dan analisis data. Tujuan dari pembangunan data warehouse adalah untuk menunjang pengambilan keputusan yang strategis berdasarkan pada analisis data. Ide dasar dari data warehouse adalah untuk mengumpulkan berbagai macam data yang ada pada dan dihasilkan oleh suatu institusi, lalu mentransformasi seluruh data yang ada untuk kepentingan penyajian informasi strategis bagi institusi.

Data Warehouse

Jika kita ambil contoh pada institusi seperti pemerintahan daerah, seringkali kebutuhan penyajian data seperti berikut ini tidak bisa dalam waktu yang singkat segera ditampilkan:
  • Berapa kenaikan/penurunan anggaran pada masing-masing urusan pemerintahan pada 3 tahun terakhir?
  • Berapa kenaikan/penurunan belanja alat tulis kantor pada masing-masing Satuan Kerja pada 3 tahun terakhir?
  • Berapa persen belanja pemeliharaan gedung jika dibandingkan dengan nilai gedung milik Pemerintah Daerah pada tiap tahunnya?
  • Berapa besar pertumbuhan/penurunan pendapatan pajak pada tiap objek pajak pada 3 tahun terakhir?

Database VS Datawere House

Perbandingan Database VS Data Warehouse
Perbandingan Database VS Data Warehouse

Data warehouse bukanlah semacam software atau produk yang bisa dibeli secara langsung dan digunakan di lingkungan institusi untuk mendapatkan informasi strategis. Pembangunan suatu datawarehouse akan sangat tergantung pada kebutuhan pengguna pada suatu institusi dan juga tergantung pada domain data yang dikelola.

Baca Juga : Belajar Database - Pengenalan PostgreSQL

Karakteristik Data Warehouse

  • Diperuntukan bagi analisa data dan penyajian informasi untuk penunjang keputusan stratejik.
  • Sangat ditentukan oleh domain data yang diolah dan kebutuhan pengguna (customized).
  • Meliputi keseluruhan data yang pada suatu institusi, juga memungkinkan menyertakan data dari luar institusi untuk domain data yang sama untuk keperluan perbandingan (benchmark).
  • Menyediakan (lewat pengembangan rancangan) pola-pola data yang kompleks untuk keperluan penyajian informasi yang kompleks dan saling berkaitan.
  • Memiliki metoda khusus untuk akuisisi (pengumpulan) data.
  • Memiliki metoda khusus untuk pembersihan data yang kotor/rusak (data cleansing).
  • Berdasarkan pada pola data dibentuk agregasi data sehingga memenuhi model data yang diperlukan.

Data Warehouse Bukan Sekedar Kumpulan Data

  • Banyak yang memulai dengan pengumpulan data dan diberi istilah integrasi data atau bahkan diberi istilah sebagai data warehouse.
  • Data terkumpul bertahun-tahun tanpa ada rancangan penyimpanan data untuk disajikan kembali menjadi informasi untuk keperluan analisa dan pengambilan keputusan.
  • Ketika data akan dijadikan informasi maka ditemui banyak kendala: kesulitan mengambil informasi yang diinginkan, data terlalu banyak dan perlu waktu lama untuk mendapatkan informasi.

Persiapan Rancangan Data Warehouse

Kebutuhan akan data warehouse timbul dari adanya tuntutan penyajian data lintas tahun secara subjektif, akurat dan cepat. Pengembangan suatu sistem data warehouse dalam suatu institusi harus melalui tahapan-tahapan yang terukur dan dilakukan dengan baik dan akurat. Setidaknya tahapan langkah berikut harus dilakukan untuk mendapatkan hasil berupa pembangunan sistem data warehouse yang sesuai dengan kebutuhan.
  • Mempertimbangkan dan merancang arsitektur data warehouse yang cocok.
  • Memperhitungkan seluruh sumber data yang akan akan menjadi pemasok data ke dalam data warehosue.
  • Merancang perangkat ETL (Extract, Transform, Load) yang sesuai dengan karakter data dan juga sesuai dengan arsitektur sistem data warehouse yang akan dibangun.
  • Merancang data warehouse sebagai sentral dari keseluruhan bagian sistem yang akan dibangun.
  • Merancang kebutuhan penyajian data dan merancang data mart sebagai sub-data-warehouse yang akan menunjang penyajian data secara kontekstual dengan cepat.
Proses Umum Data Warehouse
Proses Umum Data Warehouse

Transformasi Data : ETL

  • Extract merupakan proses pengambilan atau pemisahan data dari sumber data asal. Sumber data ini bisa berupa berbagai macam jenis data yang disimpan dalam berbagai macam jenis teknologi penyimpanan data.
  • Transform meliputi beberapa tahapan proses mulai dari cleansing, pembentukan format ulang data agar sesuai dengan rancangan data warehouse yang telah ditetapkan, pembentukan agregasi agar sesuai dengan subject informasi yang diinginkan dan penetapan konteks varian waktu.
  • Load merupakan proses penyimpanan data yang telah ditransformasi ke dalam teknologi penyimpanan data warehouse seperti suatu sistem manajemen database yang telah dirancang khusus untuk menjadi data warehouse.

Arsitektur Umum Data Warehouse

  • Pemisahan. Arsitektur data ware house harus memisahkan data transaksi dan data analisis. Dalam hal ini secara jelas data warehouse sebagai basis data analisis harus berupa sistem yang terpisah dari sistem transaksional yang memasok data.
  • Skalabilitas. Data warehouse harus bisa diperbesar kapasitasnya secara dinamis sesuai kondisi perkembangan volume data, peningkatan jumlah pengguna, penambahan model data, dan lainnya.
  • Ekstensibilitas. Aristektur data warehouse harus memungkinkan penambahan sumber data, penambahan perangkat analisa, dan semacamnya, secara dinamis tanpa harus membongkar sistem data warehouse yang telah ada.
  • Keamanan. Data warehouse harus memiliki sistem keamanan yang menjamin konsistensi data, perlindungan data dari serangan pihak yang tidak bertanggung jawab, strategi menghadapi bencana alam yang mengakibatkan kerusakan data atau sistem.
  • Mudah Dikelola. Data warehouse harus menyediakan perangkat pengelola sistem yang memudahkan dalam pemeliharaan dan pengelolaan sistem date warehouse.
Arsitektur Umum Data Warehouse

Baca Juga : Arsitektur Big Data

Teknik Implementasi

Lapisan-lapisan abstraksi dari arsitektur data warehouse dapat diimplementasikan dengan teknologi dan cara yang berbeda-beda. Implementasi teknis yang berbeda ini biasanya tergantung pada:
  • Kapasitas dan skala data yang dikelola. Pengelolaan data dalam skala kecil akan menuntut teknik implementasi data warehouse yang lebih sederhana. Sebaliknya, pengelolaan data kelas enterprise yang besar akan menuntut teknik implementasi yang lebih kompleks dikarenakan harus memperhitungkan banyak hal seperti arsitektur sistem database yang tepat untuk mewadahi data yang besar, jaminan akses informasi yang efesien dan cepat.
  • Kompleksitas data juga sangat mempengaruhi bagaimana suatu arstektur data warehouse diimplementasikan. Semakin kompleks dan beragam (memiliki konteks yang luas dan heterogen) data yang dikelola maka rancangan arsitektur data warehouse bisa menjadi lebih kompleks pula. Terutama dalam hal ini adalah dalam lapisan ETL akan memerlukan berbagai macam perangkat atau bahkan juga memerlukan suatu lapisan pendukung seperti lapisan rekonsiliasi data hasil ETL sebelum masuk ke dalam data warehouse.
Implementasi arsitektur data warehouse dalam lingkungan jaringan komputer / sistem informasi yang cukup kompleks. Kompleksitas suatu sistem informasi dikarenakan struktur organisasi yang besar dan, sistem aplikasi yang beragam meliputi berbagai modul dan domain bisnis proses, besarnya volume data transaksional dan letak geografis institusi yang tidak terpusat, melainkan tersebar di berbagai tempat dan lokasi.
Kompleksitas organisasi ini melahirkan sistem informasi yang kompleks pula. Maka pembangunan data warehouse pada lingkungan organisasi seperti demikian mau tidak mau akan memerlukan suatu implementasi arsitektur yang cukup kompleks pula. Gambar di atas memperlihatkan bahwa setiap sumber database transaksional, yang dalam hal ini biasanya berupa modul aplikasi atau suatu domain proses bisnis yang diwakili oleh suatu database, memerlukan perangkat ETL tersendiri yang bisa mengolah data sebelum dimasukan ke dalam data warehouse. Data warehouse sendiri akan berupa server aplikasi tersendiri, yang berdiri sendiri, terpisah dari sistem lainnya. Perangkat ETL akan bisa terkoneksi ke data warehouse lewat jaringan komputer, baik itu berupa private network ataupun internet.

Baca Juga : Pengenalan Big Data

Sekian materi pengenalan tentang data warehouse.

Copyrighted.com Registered & Protected

Belajar Database PostgreSQL - Pengenalan function age() di PostgreSQL

Kalian dapat menghitung usia dalam aplikasi bisnis misalnya usia orang, tahun layanan dari karyawan, menghitung berapa lama seorang karyawan telah bekerja, menghitung berapa lama seseorang melakukan peminjaman buku, mobil dll. Di PostgreSQL kalian dapat menggunakan function age() untuk melakukan hal tersebut.

Belajar Database PostgreSQL - Pengenalan function age() di PostgreSQL


Sintak function age() :
Age(timestamp, timestamp); 
Penjelasan :
Function age() menerima dua nilai timestamp. Parameter pertama akan dikurangi dengan parameter kedua dan mengembalikan sebuah interval sebagai hasilnya. 

Perhatikan contoh berikut :
SELECT age('2017-08-05', '1990-07-27'); 
Hasilnya :
27 years 9 days

Jika kalian ingin menggunakan tanggal saat ini untuk parameter pertama, kalian dapat menggunakan function age() sebagai berikut :
Age(timestamp);

Sebagai contoh, jika seseorang yang tanggal lahirnya 1994-07-09 dan hari ini tanggal 2017-08-05, maka penggunaan age() adalah :
SELECT current_date, age(timestamp '1994-07-09'); 
Hasilnya :
date             | age
2017-08-05 | 23 years 27 days

Baca Juga : Contoh Penggunaan JOIN di PostgreSQL

Contoh function age() di PotsgreSQL

Buatlah sebuah tabel sebagai berikut :

Contoh function age() di PotsgreSQL

Misalkan, Kalian ingin mendapatkan 10 data rental teratas yang memiliki waktu pinjam yang lama, kalian dapat menggunakan function age() untuk menghitung sebagai berikut : 

SELECT id, id_pelanggan, age(tanggal_kembali, tanggal_pinjam) AS lama_pinjam
FROM rental
WHERE tanggal_kembali IS NOT NULL
ORDER BY lama_pinjam DESC
LIMIT 10; 

Dalam tutorial ini kalian telah belajar bagaimana menggunakan function age() di PostgreSQL untuk menghitung umur.

Sekian tutorial cara menggunakan function age() di PostgreSQL. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
NQAM-QY22-AIL1-OO4L

Belajar Java - Cara Membuat JTree di Java

Cara Membuat JTree - JTree merupakan komponen java swing yang bisa kalian gunakan untuk menampilkan atau membuat sebuah hirarki data (struktur pohon). Seperti yang biasa kalian lihat ketika membuat windows explorer. JTree merupakan komponen yang sangat komplek, JTree memiliki sebuah root node yang merupakan induk node yang paling atas dari semua node. Sebuah root dapat memiliki beberapa anak node (child node). Sebuah child node dapat memiliki child node lebih lanjut. Jika node tidak memiliki child node maka disebut leaf node.

Belajar Java - Cara Membuat JTree di Java

Baca juga : Cara menambahkan JComboBox pada JTable Java Swing

Contoh source code untuk membuat JTree

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;

/**
 *
 * @author Akira
 */
public class ContohJTree extends JFrame{
    private JTree tree;
    private JScrollPane scroll;
    private DefaultMutableTreeNode root, child;

    public ContohJTree() {
        setTitle("Contoh Membuat JTree");
        setSize(250, 300);
        setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        userGUI();
        setVisible(true);
    }
    
    private void userGUI(){
        root = new DefaultMutableTreeNode("Bahasa Pemrograman");
        
        child = new DefaultMutableTreeNode("Pemrograman Java");
        child.add(new DefaultMutableTreeNode("Java Enterprise"));
        child.add(new DefaultMutableTreeNode("Java Fx"));
        child.add(new DefaultMutableTreeNode("Java Mobile"));
        child.add(new DefaultMutableTreeNode("Java Swing"));
        root.add(child);
        
        tree = new JTree(root);
        scroll = new JScrollPane(tree);
        
        getContentPane().add(scroll);
    }
    
    public static void main(String[] args){
        ContohJTree obj = new ContohJTree();
    }
}

Penjelasan
child = new DefaultMutableTreeNode("Pemrograman Java");
digunakan untuk menambahkan child node pada root.

Baca juga : Cara Melakukan Swing Makeover JButton di Java

Sekian tutorial cara membuat JTree pada pemrograman java. Semoga bermanfaat dan silahkan tinggalkan komentar.

Copyrighted.com Registered & Protected 
NFHR-EVAF-KXQ4-GVLV