Selasar Inspirasi

Cara Mengedit Foto / Gambar Supaya Background Transparan



Ada beberapa cara untuk membuat background suatu foto atau gambar menjadi transparan dengan photoshop. Salah satu yang mudah adalah dengan memanfaatkan filter extract photoshop.
Langkah-langkah :
1. Buka gambar/foto yang ingin dibuat transparan background-nya
2. tekan ctrl+J yang berfungsi menduplikasi foto/gambar asli sekaligus membuatnya menjadi layar.
3. Hapus foto/gambar asli, sehingga tinggal foto/gambar duplikasi.
4. Pilih Filter –> Extract…
filter extract photoshop

5. Lakukan seleksi bagian foto/gambar yang ingin dipertahankan menggunakan edge highlighter tool, bila terjadi kesalahan pada saat proses seleksi, bisa melakukan penghapusan menggunakan eraser tools, setelah selesai klik fill tool area yang telah diseleksi tadi. Kemdian klik OK.
cara edit foto

6. Sekarang background Foto/Gambar menjadi transparan. Tinggal klik save as.., simpan dengan ekstensi .png
background foto
[Read More...]


Menukar Fungsi Tombol Keyboard



salah satu atau beberapa tombol anda ada yang bermasalah ???, Anda dapat mengganti fungsi tombol Anda yang bermasalah dengan tombol lain yang masih normal dengan bantuan software KeyTweak. Software ini gratis, dapat didownload di softpedia.com.

Setelah terinstall, lalu jalankan, maka akan muncul tampilan seperti dibawah ini:

keytweak

Kebetulan tombol laptop saya yang bermasalah tombol A, maka saya tukar dengan tombol Q yang tidak terlalu sering dipakai.

Caranya klik nomor tombol pada aplikasi tersebut, kemudian pada choose new remppping, pilih tombol penggantinya, klik remap key. Bila ingin mengganti tombol yang lain, tinggal ulangi dengan cara yang sama..Setelah selesai pilih apply.

remap key

Setelah itu, restart laptop/PC Anda, maka tombol keyboard telah tertukar sesuai settingan Anda ;)

[Read More...]


Java Database Connectivity



Refresh sekilas seputar manipulasi data di MySQL.
a. Membuat Database Baru
CREATE DATABASE NAMA_DATABASE;

create database

b. Menampilkan Database yang Telah Dibuat
SHOW DATABASES;

menampilkan database 

c. Menghapus Database yang Telah Dibuat
DROP DATABASE NAMA_DATABASE;
menghapus database

menampilkan database setelah dihapus

d. Menggunakan Database yang Telah Dibuat
USE NAMA_DATABASE;
menggunakan database yang telah dibuat

e Membuat Tabel Baru pada Database yang Telah Dipilih
CREATE TABLE NAMA_TABLE ( 
NAMA_ATRIBUT  TIPE_DATA  [KETERANGAN],
NAMA_ATRIBUT  TIPE_DATA  [KETERANGAN],
)

Nb: KETERANGAN boleh disertakan, boleh tidak, sesuai dengan kebutuhan
membuat tabel baru di mysql

f. Menampilkan Tabel
SHOW TABLES;
menampilkan tabel yang ada di database tertentu

g. Menghapus Tabel
DROP TABLES NAMA_TABLE;

menghapus tabel di mysql 

h. Menambah Data pada Tabel
INSERT INTO NAMA_TABLE (
(NAMA_ATRIBUT,…)
VALUES
(NILAI_ATRIBUT,…),
(NILAI_ATRIBUT,…)
);
menambah data pada tabel di mysql

i. Menampilkan Data yang ada pada Tabel
SELECT [NAMA_ATRIBUT,…]
FROM [NAMA_TABEL,…];

menampilkan data tabel 

Bila ingin menampilkan seluruh data pada tabel :
SELECT * FROM [NAMA_TABEL,…];
menampilkan seluruh data di tabel tertentu

Bila ingin menampilkan data dengan criteria tertentu
SELECT [NAMA_ATRIBUT,…]
FROM [NAMA_TABEL,…]
[WHERE KONDISI];

menampilkan data dengan kriteria tertentu 

j. Mengubah Data pada Tabel
UPDATE NAMA_TABEL
SET 
NAMA_ATRIBUT = “NILAI BARU”,
[WHERE KONDISI];
update data pada tabel

k. Menghapus Data pada Tabel
DELETE FROM NAMA_TABEL
[WHERE KONDISI];
menghapus data di tabel

> Membuat Form Insert, Update, Delete Sederhana Menggunakan Java
Buat Form seperti berikut
form CRUD sederhana dengan java

Ubah property name dan text dari masing-masing komponen form menjadi seperti berikut:


Komponen


Name


Text


jTextField1


kodemk


kosong


jTextField2


matkul


kosong


jTextField3


sks


kosong


jButton1


btnClear


Clear


jButton2


btnAdd


Add


jButton3


btnEdit


Edit


jButton4


btnDelete


Delete


Source Code Program:
import java.sql.*;
import javax.swing.JOptionPane;

public class Kuliah extends javax.swing.JFrame {
    Connection con;
    String url, db, driver, user;
    public Statement stat;
    public ResultSet rs;

    public void connect() {
        con = null;
        url = "jdbc:mysql://localhost:3306/";
        db = "kuliah";
        driver = "com.mysql.jdbc.Driver";
        try {
            Class.forName(driver);
        } catch (ClassNotFoundException cnfe) {
            System.err.println("Class driver tidak ada : " + cnfe.getMessage());
        }
    }

    public void hapus() {
        kodemk.setText("");
        matkul.setText("");
        sks.setText("");
        kodemk.requestFocus();

    }

    public Kuliah() {
        initComponents();
    }            

    private void kodemkActionPerformed(java.awt.event.ActionEvent evt) {                                       
        connect();
        try {
            con = DriverManager.getConnection(url + db, "root", "");
            stat = con.createStatement();
            String kode = "select * from mk where kodemk = '" + kodemk.getText() + "'";
            rs = stat.executeQuery(kode);
            ResultSetMetaData meta = rs.getMetaData();
            rs.beforeFirst();
            if (rs.next()) {
                matkul.setText(rs.getString("matkul"));
                sks.setText(rs.getString("sks"));
            } else {
                JOptionPane.showMessageDialog(null, "Maaf data tidak ditemukan", "information", JOptionPane.INFORMATION_MESSAGE);
                hapus();
                kodemk.requestFocus();
            }
        } catch (SQLException se) {
            System.err.println("Terjadi kesalahan perintah SQL" + se.getMessage());
        }
    }                                      

 //menghapus konten pada form
    private void btnClearActionPerformed(java.awt.event.ActionEvent evt) {                                         
        hapus();
    }                                        

 //menambah data tabel
 private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
        connect();
        try {
            con = DriverManager.getConnection(url + db, "root", "");
            stat = con.createStatement();
            String kode = "insert into mk values ('" + kodemk.getText() + "','" + matkul.getText() + "','" + sks.getText() + "')";
            int tambah = stat.executeUpdate(kode);
            if (tambah == 1) {
                JOptionPane.showMessageDialog(this, "Berhasil Menambah Data", "informasi", JOptionPane.INFORMATION_MESSAGE);
                System.out.println("1 data berhasil ditambahkan");
                hapus();
                kodemk.requestFocus();
            } else {
                JOptionPane.showMessageDialog(this, "Gagal Menambah Data", "informasi", JOptionPane.INFORMATION_MESSAGE);
            }
        } catch (SQLException se) {
            JOptionPane.showMessageDialog(this, "Maaf kode tersebut sudah ada ", "CRITICSAL", JOptionPane.INFORMATION_MESSAGE);
        }
    }                                      
 
 //update data tabel
    private void btnEditActionPerformed(java.awt.event.ActionEvent evt) {                                        
        connect();
        try {
            con = DriverManager.getConnection(url+db,"root","");
            stat = con.createStatement();
            String kode = "update mk set matkul = '"+matkul.getText()+"',sks='"+sks.getText()+"' where kodemk='"+kodemk.getText()+"'";
            int edit = stat.executeUpdate(kode);
            if (edit==1){
                JOptionPane.showMessageDialog(this, "Data berhasil diupdate","informasi",JOptionPane.INFORMATION_MESSAGE);
                hapus();
                kodemk.requestFocus();
            }
            else {
                JOptionPane.showMessageDialog(this, "Gagal memperbaiki data","informasi",JOptionPane.INFORMATION_MESSAGE);
            }
        } catch(SQLException se){
            JOptionPane.showMessageDialog(this, "Terjadi kesalahan perintah SQL"+se.getMessage(),"CRITICSAL",JOptionPane.INFORMATION_MESSAGE);
        }
    }                                       

    //menghapus data tabel
    private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {                                          
        connect();
        try{
            con = DriverManager.getConnection(url+db, "root","");
            stat = con.createStatement();
            String kode = "delete from mk where kodemk = '"+kodemk.getText()+"'";
            int hapus = stat.executeUpdate(kode);
            if (hapus==1){
                JOptionPane.showMessageDialog(this, "Data berhasil dihapus","informasi",JOptionPane.INFORMATION_MESSAGE);
                hapus();
                kodemk.requestFocus();
            } else {
                JOptionPane.showMessageDialog(this, "Gagal menghapus data","informasi",JOptionPane.INFORMATION_MESSAGE);
            }
        } catch(SQLException se){
            JOptionPane.showMessageDialog(this, "Terjadi kesalahan perintah"+se.getMessage(),"CRITICSAL",JOptionPane.INFORMATION_MESSAGE);
        }
    }
aplikasi CRUD sederhana menggunakan java
[Read More...]


GUI Lanjutan



komponen GUI Java

- Membuat Form Sederhana
Form Sederhana dengan Java

Ubah property name dan text dari masing-masing komponen form menjadi seperti berikut:
Komponen Name Text
jLabel1 lblNama Nama
jLabel2 lblJK Jenis Kelamin
jLabel3 lblHobi Hobi
jLabel4 lblJurusan Jurusan
jTextField1 txtNama Kosong
jRadioButton1 rbLaki Laki-Laki
jRadioButton2 rbPerempuan Perempuan
jCheckBox1 cbHobi1 Makan
jCheckBox2 cbHobi2 Tidur
jCheckBox3 cbHobi3 Internetan
jCheckBox4 cbHobi4 Shopping
listBox1 lstJurusan List Nama Jurusan
jButton1 btnSubmit Submit

Tambahkan code berikut pada btnSubmit
private void btSubmitActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String nama = "";
        String jenisKelamin = "";
        String hobi = "";
        String jurusan = "";
        String info = "";
        
        nama = txtNama.getText();
        
        if (rbLaki.isSelected()) {
            jenisKelamin += "Laki-Laki";
        } else {
            jenisKelamin += "Perempuan";
        }
        
        if (cbHobi1.isSelected()) {
            hobi += "Makan ";
        }
        if (cbHobi2.isSelected()) {
            hobi += "Tidur ";
        }
        if (cbHobi3.isSelected()) {
            hobi += "Internetan ";
        }
        if (cbHobi4.isSelected()) {
            hobi += "Shopping ";
        }
        
        jurusan = lstJurusan.getSelectedValue().toString();
        
        info = "Nama Saya adalah " + nama + "\n.";
        info += "Jenis Kelamin : " + jenisKelamin + "\n.";
        info += "Hobi : " + hobi + "\n.";
        info += "Jurusan : " + jurusan;
        JOptionPane.showMessageDialog(null, info);

Form Sederhana dengan GUI Java


- Membuat Kalkulator Sederhana

kalkulator sederhana dengan java



Komponen


Name


Text


jButton1


btn0


0


jButton2


btn1


1


jButton3


btn2


2


jButton4


btn3


3


jButton5


btn4


4


jButton6


btn5


5


jButton7


btn6


6


jButton8


btn7


7


jButton9


btn8


8


jButton10


btn9


9


jButton11


btnTitik


.


jButton12


btnHapus


c


jButton13


btnTambah


+


jButton14


btnKurang


-


jButton15


btnKali


*


jButton16


btnBagi


/


jButton17


btnHasil


=


jTextField1


display


kosong


Source Code:
String angka="";
    double hasil, angka1,angka2;
    int pilih;
    
    public Kalkulator() {
        initComponents();
    }
                                             
    private void btn0ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="0";
        display.setText(angka);
    }                                    

    private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="1";
        display.setText(angka);
    }                                    

    private void btnTitikActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        angka +=".";
        display.setText(angka);
    }                                        

    private void btn2ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="2";
        display.setText(angka);
    }                                    

    private void btn3ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="3";
        display.setText(angka);
    }                                    

    private void btn4ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="4";
        display.setText(angka);
    }                                    

    private void btn5ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="5";
        display.setText(angka);
    }                                    

    private void btn6ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="6";
        display.setText(angka);
    }                                    

    private void btn7ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="7";
        display.setText(angka);
    }                                    

    private void btn8ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="8";
        display.setText(angka);
    }                                    

    private void btn9ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        angka +="9";
        display.setText(angka);
    }                                    

    private void btnTambahActionPerformed(java.awt.event.ActionEvent evt) {                                          
        angka1 = Double.parseDouble(angka);
        display.setText("+");
        angka = "";
        pilih = 1;
    }                                         

    private void btnKurangActionPerformed(java.awt.event.ActionEvent evt) {                                          
        angka1 = Double.parseDouble(angka);
        display.setText("-");
        angka = "";
        pilih = 2;
    }                                         

    private void btnKaliActionPerformed(java.awt.event.ActionEvent evt) {                                        
        angka1 = Double.parseDouble(angka);
        display.setText("*");
        angka = "";
        pilih = 3;
    }                                       

    private void btnBagiActionPerformed(java.awt.event.ActionEvent evt) {                                        
        angka1 = Double.parseDouble(angka);
        display.setText("/");
        angka = "";
        pilih = 4;
    }                                       

    private void btnHasilActionPerformed(java.awt.event.ActionEvent evt) {                                         
        switch (pilih ){
            case 1 :
            angka2 = Double.parseDouble(angka);
            hasil  = angka1 + angka2;
            angka  = Double.toString(hasil);
            display.setText(angka);
            break;
            
            case 2 :
            angka2 = Double.parseDouble(angka);
            hasil  = angka1 - angka2;
            angka  = Double.toString(hasil);
            display.setText(angka);
            break;
                
            case 3 :
            angka2 = Double.parseDouble(angka);
            hasil  = angka1 * angka2;
            angka  = Double.toString(hasil);
            display.setText(angka);
            break;
            
            case 4 :
            angka2 = Double.parseDouble(angka);
            hasil  = angka1 / angka2;
            angka  = Double.toString(hasil);
            display.setText(angka);
            break;
                
            default :
            break;
        }
    }                                        

    private void btnHapusActionPerformed(java.awt.event.ActionEvent evt) {                                         
        display.setText("");
        angka1=0;
        angka2=0;
        hasil =0;
        angka="";
    }


Referensi : Modul Praktikum PBO UKDW
[Read More...]


GUI Dasar



1. Komponen Swing dan Manajemen Layout
a. Membuat Frame
Ada 2 cara untuk membuat frame :
- Membuat class yang objek utamanya diinstansiasi dari class JFrame
Contoh:
JFrame frame = new JFrame (“teks….”);

- Membuat class yang diturunkan dari class JFrame.
Contoh:
class Frame extends JFrame { 
}

b. Meletakkan Komponen ke Frame
- Mendeklarasikan komponen-komponen
JLabel namaKomponen = new JLabel (“teks…”);

c. Memilih Layout
- Cara 1 :
getContentPane ().setLayout (new FlowLayout());
- Cara 2 :
Container konten = getContentPane();
Konten.setLayout (new FlowLayout());
- Cara 3 :
frame.add (nama Komponen);

d. Memasukkan komponen-komponen ke Frame
- Cara 1 :
getContentPane().add(namaKomponen);
- Cara 2 :
Konten.add(namaKomponen);

> Pengaplikasian

1. Text Field
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;

public class TextField {
    private JFrame layar;
    private JLabel l1,l2;
    private JTextField tf1;
    private JPasswordField psw;
    private JButton b1,b2;
    
    //membuat instance dari kelas-kelas tersebut
    public TextField(){
        layar = new JFrame ("Text Field");
        l1 = new JLabel ("Username : ");
        l2 = new JLabel ("Password : ");
        tf1 = new JTextField (25);
        psw = new JPasswordField (25);
        b1 = new JButton("OK");
        b2 = new JButton ("Cancel");
        
        Container c = layar.getContentPane();
        c.setLayout(new FlowLayout());
        c.add(l1);
        c.add(tf1);
        c.add(l2);
        c.add(psw);
        c.add(b1);
        c.add(b2);
        
  b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
  JOptionPane.showMessageDialog(null, "Pastikan Data diisi dengan Benar");
            }
        });
        
        b2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                tf1.setText(null);
                psw.setText(null);
            }
        });


        layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        layar.setSize(380,150);
        layar.setVisible(true);
    }
    
    public static void main(String[] args) {
        new TextField();
    }
}

program text field sederhana menggunakan java


2. Form Checlist
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CheckList extends JFrame{
    
    //membuat instance baru dari CheckList
    public CheckList(){
    JPanel panel1 = new JPanel();
    JPanel panel2 = new JPanel();
    panel1.setLayout(new GridLayout(3,1));
    panel2.setLayout(new GridLayout(3,1));
    Container c = this.getContentPane();
    c.setLayout(new GridLayout(1,2));
    c.add(panel1);
    c.add(panel2);
    
    JCheckBox cb1 = new JCheckBox("WIndows");
    JCheckBox cb2 = new JCheckBox("Linux");
    JCheckBox cb3 = new JCheckBox("Max OS");
    
    panel1.setBorder(BorderFactory.createTitledBorder("Sistem Operasi"));
    panel1.add(cb1);
    panel1.add(cb2);
    panel1.add(cb3);
    
    JRadioButton rb1 = new JRadioButton("Distributor");
    JRadioButton rb2 = new JRadioButton("Reseller");
    JRadioButton rb3 = new JRadioButton("Partner");
    
    //daftarkan setiap radiobutton sebagai anggota grup
    ButtonGroup rbgroup = new ButtonGroup();
    rbgroup.add(rb1);
    rbgroup.add(rb2);
    rbgroup.add(rb3);
    
    panel2.setBorder(BorderFactory.createTitledBorder("Status"));
    panel2.add(rb1);
    panel2.add(rb2);
    panel2.add(rb3);
    
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocation(60,60);
        this.setSize(300,200);
        this.setVisible(true);
    }
    
    public static void main(String[] args) {
        new CheckList();
    } 
}

program checklist sederhana menggunakan java

3. Kuas
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Kuas extends JPanel{
    private Point posisi;
    private Color warna;
    
    public Kuas(){
        addMouseMotionListener(new MMListener());
    }
    
    class MMListener extends MouseMotionAdapter {
        //tambahkan kode untuk tombol mouse
        public void mouseDragged(MouseEvent ev) {
            if (ev.isMetaDown()){
                System.out.println("Right clicked");
                posisi = ev.getPoint();
                warna = getBackground();
                repaint();
            }
            else {
                posisi = ev.getPoint();
                System.out.println("Repaint and clicked at "
                + posisi.x + " "+posisi.y);
                warna = Color.RED;
                repaint();
        }
    }
}
    
    public void paintComponent (Graphics g){
        g.setColor(warna);
        if (posisi != null){
            g.fillOval(posisi.x, posisi.y, 10, 10);
        }
    }
    
    public static void main(String[] args) {
        JFrame layar = new JFrame();
        Kuas m = new Kuas();
        m.setSize(300,300);
        Container c = layar.getContentPane();
        c.setLayout(null);
        c.add(m);
        layar.setLocation(200,200);
        layar.setSize(300,300);
        layar.setTitle("Program Kuas");
        layar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        layar.show();
        
    }
}

program kuas dengan java


Referensi 
Pemrograman Berorientasi Objek dengan Java – Novrido Charibaldi, Agus Sasmito Aribowo
[Read More...]


Multi Threading



Thread merupakan sekumpulan instruksi yang dieksekusi secara independen. Sedangkan makna multi threading merupakan suatu kemampuan yang memungkinkan beberapa kumpulan instruksi dijalankan secara bersamaan dalam sebuah program.
Contoh:
class Mobil implements Runnable{ //Runnable merupakan interface bawaan java
    String nama;
    public Mobil(String m){
        nama=m;
    }
    public void run(){   //implementasi interface Runnable
        for (int i=0;i<4;i++){
            try {
                Thread.currentThread().sleep(1000); //jeda 1 detik
            } catch (InterruptedException ie){
                System.out.println("terinterupsi");
            }
            int j = i+1;
            System.out.println("Thread "+nama+" : Posisi"+j);
        }
    }
}

public class ThreadMobil {
    public static void main (String args[]){
        Thread fortuner = new Thread(new Mobil("Fortuner"));
        Thread avanza = new Thread(new Mobil("Avanza"));
        fortuner.start();avanza.start(); //menjalankan thread
    }
}

contoh thread
[Read More...]


Penanganan Kesalahan



Ada 2 jenis kesalahan, [1] kesalahan pada saat kompilasi program, dan [2] kesalahan ketika program dijalankan. Kalau kesalahan terjadi saat kompilasi, maka program tidak akan dijalankan. Akan tetapi bila kesalahan terjadi saat program berjalan, maka program akan menjadi error. Oleh karena itu perlu mekanisme penanganan kesalahan. Dalam java penanganan kesalahan menggunakan mekanisme Try-Catch.
Hirarki Exception
Hirarki Kelas Exception
Deklarasi
a. Penanganan Tunggal
try {
//isi yang memungkinkan error
} catch (jenis error){
//dijalankan jika tidak terjadi error
}

Contoh :
public class Bilangan {

    public static void main(String args[]) {
        try {
            int a = 5;
            int b = 0;
            int c = a / b;
            System.out.println(c);
        } catch (Throwable e) {
            System.out.println("terjadi error");
            System.out.println(e.getMessage());
        }
    }
}

penanganan kesalahan pada operasi bilangan

b. Penanganan Bertingkat

try {
} catch (jenis error 1) {
//jika jenis error 1 terjadi
} catch (jenis error 2) {
//jika jenis error 2 terjadi
}..... 
catch (jenis error n) {
//jika jenis error n terjadi
}  

Contoh :
public class Bilangan {

    public static void main(String args[]) {
        try {
            int[] bil=new int[3];
            bil[4]=7;
            
            int a = 5;
            int b = 0;
            int c = a / b;
            System.out.println(c);
            
        } catch (ArithmeticException e) {
            System.out.println("terjadi error");
            System.out.println(e.getMessage());
        } catch (IndexOutOfBoundsException e){
            System.out.println("error");
            System.out.println(e.getMessage());
        }
    }
}
multiple exception handling

c. Melontarkan Exception
Melontarkan Exception berfungsi untuk memberitahukan kepada user ketika terjadi kesalahan, misalnya seperti mahasiswa salah dalam memasukkan nim, maka perlu ada pemberitahuan kesalahan input data.
Pelontaran kesalahan menggunakan keyword throws diikuti dengan kelas exception-nya.

Contoh:
public class Mahasiswa {
    String nim;
    public String getNim(){
        return nim;
    }
    
    public void setNim(String nim) throws Throwable{
        if (nim==null){
           throw new Throwable("nim harus diisi"); 
        }
        this.nim=nim;
    }
    public static void main (String args[]){
       try {
           Mahasiswa m1 = new Mahasiswa();
           m1.setNim(null);
       } catch (Throwable e){
           System.out.println("terjadi error");
           System.out.println(e.getMessage());
       }
    }
}
pelontaran exception


d. Penggunaan Block Finally
Blok Finally merupakan blok yang selalu dijalankan pada proses try catch, terlepas terjadi error pada program ataupun tidak.

Contoh:
public class Mahasiswa {
    String nim;
    public String getNim() {
        return nim;
    }

    public void setNim(String nim) throws Throwable {
        if (nim == null) {
            throw new Throwable("nim harus diisi");
        }
        this.nim = nim;
    }

    public static void main(String args[]) {
        try {
            Mahasiswa m1 = new Mahasiswa();
            m1.setNim(null);
        } catch (Throwable e) {
            System.out.println("terjadi error");
            System.out.println(e.getMessage());
        } finally {
            System.out.println("program tetap jalan, apapun yang terjadi");
        }
    }
}

contoh penggunaan block finally
[Read More...]


Pemrograman Berorientasi Objek



1. Pemrograman Terstruktur vs Pemrograman Berorientasi Objek
Konsep pemrograman terstruktur memandang sebuah program sebagai suatu prosedur besar yang selanjutnya dapat dibagi menjadi prosedur-prosedur yang lebih kecil dan saling berinteraksi satu sama lain. Sedangkan konsep pemrograman berorientasi objek (OOP) membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek dapat berupa benda yang nyata maupun tidak nyata (konsep).
2. Konvensi Pemrograman Java
Ketentuan- ketentuan dalam penamaan di Java
konvensi pemrograman java
Konvensi selengkapnya ada di http://www.oracle.com/technetwork/java/codeconv-138413.html
3. Kelas
Kelas merupakan konsep atau deskripsi dari sesuatu. Bisa kita ibaratkan kelas ini seperti sebuah cetakan kue yang siap digunakan untuk menciptakan kue-kue (object).
Pendeklarasian Kelas dalam Java
Class NamaKelas
Contoh :
class Kue{
}

Di dalam kelas, kita dapat mendeklarasikan berbagai atribut (disebut sebagai variabel) dan perilaku (disebut sebagai methods) yang dimiliki oleh object yang akan diciptakan.
Contoh:
class Kue {
String warna, ukuran, rasa; //variabel

String ringan(){ //methods
String kondisi = "aku bisa terapung di air";
return kondisi;
    }
}

4. Objek
Objek merupakan perwujudan (instansiasi) dari Kelas. Bila Kelas sebagai cetakan kue, maka objek merupakan kue yang diciptakan dari cetakan tersebut.
Deklarasi Object
//membuat objek dari suatu kelas menggunakan new
nama kelas  nama_objek = new nama_kelas 

//memanggil method dari objeknya
nama_objek.nama_method();

//mengeset atribut
nama_objek.nama_atribut=value;
Di dalam kelas kita mendeklarasikan berbagai variabel/properties dan method. Adapun objek merupakan instansiasi (perwujudan) dari kelas yang ada.
Contoh:
public class Kue {
    //variabel
    String warna, ukuran, rasa;

    String ringan() { //methods
        String kondisi = "aku bisa terapung di air";
        return kondisi;
    }

    public static void main(String args[]) {
        Kue bolu = new Kue(); //membuat objek kue bolu

        //mengeset nilai variabel
        bolu.warna = "cokelat";
        bolu.ukuran = "sedang";
        bolu.rasa = "manis";

        bolu.ringan(); //memanggil methods

        System.out.println("sku kue " + bolu.warna + ", " + bolu.ukuran + ", " + bolu.rasa
                + ", dan "+bolu.ringan());
    }
}

kelas di java

5. Methods
Ada 2 jenis Methods dalam java :
1. Methods yang memiliki nilai kembalian (dalam pemrograman terstruktur disebut Fungsi).
2. Methods yang tidak memiliki nilai kembalian (dalam pemrograman terstruktur disebut Prosedur)
Contoh :
class Mobil {

    void klakson() { //tidak memiliki nilai kembalian, ditandai dengan void
        System.out.println("piiiiiiiiiim");
    }

    String ngebut(String aksi) { //memiliki nilai kembalian (ada return)
        return aksi;
    }
}

public class Transport {

    public static void main(String args[]) {
        Mobil lamborgini = new Mobil();
        lamborgini.klakson();
        System.out.println(lamborgini.ngebut("broooom"));

    }
}

method di java

6. Variabel This
Variabel this merupakan variabel yang digunakan untuk mengacu kedalam class dimana kita coding. Jadi misalkan kita coding di class titik lalu di dalam salah satu method kita mengetikan this, berarti kita mengacu kepada class titik.
//penulisan variabel tanpa this
public class Titik{
 int x = 0;
 int y = 0;
 
 //constructor
 public Titik(int a, int b){
  x = a;
  y = b;
 }
}

//penulisan variabel dengan this
public class Titik{
 int x = 0;
 int y = 0;
 
 //constructor
 public Titik(int x, int y){
  this.x = x;
  this.y = y;
 }
}

7. Konstruktor
Konstruktor merupakan metode yang secara otomatis dipanggil ketika objek dipanggil. Cara membuat konstruktor : memiliki nama yang sama dengan kelas, tidak mengembalikan nilai dan tidak menggunakan kata kunci void.
public class Motor {

    String bahan = "baja";

    //konstruktor
    public Motor() {
        System.out.println("mesin pembuat rangka motor siap dijalankan");
    }

    public static void main(String args[]) {
        Motor Yamaha = new Motor();
        System.out.println(Yamaha.bahan);
    }
}

konstruktor pada java

8. Hak Akses Dalam Java

1. public : dapat digunakan dari luar kelas maupun package
2. protected : dapat digunakan dari sub-class atau class lain dalam satu package
3. private : hanya digunakan oleh class tersebut saja
4. tanpa hak akses (default): dapat digunakan class lain dalam satu package
secara lebih detail dapat dilihat pada tabel


Aksesibilitas


Public


Private


Protected


Default


Dari kelas yang sama


ya


ya


ya


ya


Dari sembarang kelas dalam package yang sama


ya


tidak


ya


ya


Dari sembarang kelas di luar package


ya


tidak


tidak


tidak


Dari sub kelas dalam package yang sama


ya


tidak


ya


ya


Dari sub kelas di luar package


ya


tidak


ya


tidak


9. Paket (Package)
Paket dalam java digunakan untuk mengelompokkan beberapa kelas agar lebih teratur dan mudah dalam melakukan maintenance.
Deklarasi :
Pembuatan paket :
Package NamaPackage

Nama paket tidak boleh diawali dengan nomor dan tidak boleh mengandung karakter unik dan spasi. Paket biasanya bertingkat, untuk memberikan tingkatan pada paket, dapat menggunakan tanda titik (.)
image

Bila Anda ingin menggunakan kelas yang berada di luar paket dimana Anda bekerja, maka Anda perlu mengimport paket dimana kelas tersebut berada
Import NamaPackage.NamaKelas

Contoh:
Misalkan kita mempunyai dua buah paket, paket kendaraan dan paket udara yang berada di dalam paket kendaraan.

a. Paket Udara
package kendaraan.udara;

public class Pesawat {

    public Pesawat() {
        System.out.println("Pesawat Ready");
    }

    public String terbang() {
        String aksi = "wuuuuuuuuuush";
        return aksi;
    }
}

b. Paket Kendaraan
package kendaraan;

import kendaraan.udara.Pesawat;

public class Kendaraan {

    public static void main(String args[]) {
        Pesawat garuda = new Pesawat();
        System.out.println(garuda.terbang());
    }
}

package di java


10. Pewarisan (Inheritance)
Merupakan mekanisme dimana sebuah kelas dapat mewarisi seluruh atribut atau methods milik kelas lain dengan ketentuan tertentu. Ibaratnya kalau di dunia nyata, seorang anak pasti mewarisi sifat dari orang tuanya. Kelas yang mewariskan sifat disebut superclass, sedangkan kelas yang mewarisi sifat disebut subclass. Kelas yang ingin mewarisi sifat dari superclass menggunakan keyword extends, sedangkan untuk memanggil atribut atau method dari superclass menggunakan keyword super.
class Orang{
    String nama,alamat;
    public Orang(String n,String a){ 
        nama=n;
        alamat=a;
    }
}

class Mahasiswa extends Orang { //mahasiswa mewarisi atribut dan method Orang
    String nim;
    Mahasiswa(String n,String a,String i){
        super(n,a); //pemanggilan superclass menggunakan keyword super
        nim=i;
    }
    void belajar(){
        System.out.println("belajar sungguh-sungguh");
    }
}

public class JenisOrang {
    public static void main (String args[]){
       Mahasiswa arif = new Mahasiswa("arif","baki","M0508031");
       arif.belajar();
    }
}

pewarisan di java
Pada contoh diatas, kelas Mahasiswa merupakan turunan dari kelas Orang. Jadi meskipun kelas Mahasiswa tidak memiliki atribut nama dan alamat, tetapi karena kelas Mahasiswa merupakan turunan dari kelas Orang, maka semua atribut maupun methods yang dimiliki kelas Orang juga ada pada kelas Mahasiswa.

11. Keyword Final
Keyword final merupakan keyword yang dapat digunakan untuk menandai bahwa suatu kelas, atribut, atau methods sudah tidak dapat diubah lagi. Selain itu ketika menggunakan keyword final, atribut harus langsung dideklarasikan. Jika tidak dideklarasikan langsung, akan terjadi kesalahan (error).
keyword final di java

Contoh:
public class Final {

    private final double pi = 3.14;

    void ubahpi(double pi) {
        this.pi = pi;
    }
}
Ketika atribut pi kita deklarasikan ulang, akan muncul pesan kesalahan karena keyword final dideklarasikan ulang
pesan kesalahan

12. Polimorfisme
Polimorfisme merupakan kemampuan untuk memperlakukan object yang memiliki bentuk atau perilaku yang berbeda.
Implementasi konsep polimorfisme : [a]Overloading dan, [b]Overriding

a. Overloading
Overloading ini ada 2 : Overloading pada konstruktor dan Overloading pada methods. Overloading merupakan mekanisme membuat lebih dari satu konstruktor atau methods pada sebuah kelas, dengan nama yang sama namun harus memiliki parameter yang berbeda.
Contoh:
public class Motor {
    String bahan = "baja";

    //konstruktor
    public Motor() {
        System.out.println("mesin pembuat rangka motor siap dijalankan");
    }
    
    public Motor(String warna){ //overloading konstruktor
        System.out.println("bahan berwarna "+warna);
    }
    
    String aksi(){
        String suara="broom";
        return suara;
    }
    
    String aksi(String klakson){ //overloading methods
        return klakson;
    }

    public static void main(String args[]) {
        Motor Yamaha = new Motor("hitam");
        System.out.println(Yamaha.aksi());
        System.out.println(Yamaha.aksi("piiiiiiim"));
    }
}

overloading di java


b. Overriding
Berbeda dengan Overloading, Overriding merupakan kemampuan subclass (kelas turunan) untuk menimpa methods dari superclass (kelas induk), yaitu dengan cara menggunakan nama dan parameter yang sama pada methods.
Contoh:
class Bayi{
    void lari(){
        System.out.println("Tidak bisa lari");
    }
}

public class Remaja extends Bayi {
    
    @Override
    void lari() {
        System.out.println("bisa lari");
    }
    
public static void main (String args[]){
          Remaja Arif = new Remaja();
    Arif.lari();
    }
}
overriding


13. Abstract dan Interface
Abstract merupakan kelas yang memiliki methods namun tidak dideklarasikan, pendeklarasian dilakukan pada kelas turunannya. Untuk mengimplementasikan abstraksi menggunakan keyword extends.
public abstract class Hewan {
 public abstract void suara();
}

Contoh :
public abstract class Hewan {

    public abstract void suara();
}

class Kucing extends Hewan {

    public void suara() {
        System.out.println("Meooong....");
    }
}

class Ayam extends Hewan {

    public void suara() {
        System.out.println("kukuruyuuk....");
    }
}

class HewanDarat {

    public static void main(String args[]) {
        Kucing anggora = new Kucing();
        anggora.suara();
    }
}

abstract pada java

Interface : merupakan mekanisme dimana kita dapat menentukan methods yang harus ada pada kelas. Mirip dengan abstract tetapi memiliki sedikit perbedaan.


Abstract


Interface


Bisa berisi abstract dan non-abstract method.


Hanya boleh berisi abstract method.


Method boleh bersifat static.


Method tidak boleh bersifat static.


Method boleh bersifat final.


Method tidak boleh bersifat final.


Kita harus menuliskan sendiri modifiernya.


Kita tidak perlu susah2 menulis public abstract di depan nama method. Karena secara implisit, modifier untuk method di interface adalah public dan abstract.


Bisa mendeklarasikan constant dan instance variable.


Hanya bisa mendeklarasikan constant.  Secara implisit variable yang dideklarasikan di interface bersifat public, static dan final.


Suatu abstact class hanya bisa meng-extend satu abstract class lainnya.


Suatu interface bisa meng-extend satu atau lebih interface lainnya.


Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface.


Suatu interface hanya bisa meng-extend interface lainnya.  Dan tidak bisa meng-implement class atau interface lainnya.


Untuk mengimplementasikan interface menggunakan keyword implements.
Contoh :

abstract class HewanDarat {
    public abstract void jalan();
}

abstract class HewanLaut {
    public abstract void berenang();
}

interface infHewanDarat {
    public abstract void jalan();
}

interface infHewanLaut {
    public abstract void berenang();
}

class Katak extends HewanDarat {
    public void jalan() {
        System.out.println("jalan diatas tanah");
    }
}

class KatakHijau implements infHewanDarat, infHewanLaut {
    public void jalan() {
        System.out.println("jalan diatas tanah");
    }
    public void berenang(){
        System.out.println("berenang di air");
    }
}

public class Hewan {
    public static void main(String args[]) {
    Katak k1 = new Katak();
    k1.jalan();
    KatakHijau kh1 = new KatakHijau();
    kh1.jalan();kh1.berenang();
    }
}

interface pada java

Notes : baik pada abstract maupun interface, hak akses tidak boleh private.

14. Inner Class
Java mendukung pembuatan kelas di dalam kelas (inner class). Cara membuatnya seperti membuat kelas biasa, hanya saja letak kelas berada di dalam kelas lain.
Contoh :
public class Hitung {

    class Tambah {   //inner class
        void tambah(double a, double b) {
            double hasil = a + b;
            System.out.println(hasil);
        }
    }

public static void main(String args[]) {
System.out.println("Selamat belajar");

//membuat objek dari inner class (kelas Tambah)
Hitung.Tambah bil = new Hitung().new Tambah();        
bil.tambah(5, 7);
    }
}

inner class pada java

15. Keyword Static
Keyword static membolehkan kita untuk mengakses sebuah atribut atau metode dari kelas secara langsung tanpa harus membuat objek dari kelas tersebut.
Contoh :
public class Berhitung {
    public static int tambah (int a, int b){ //static
        return a+b;
    }
    
    public double tambah (double a, double b){ //non static
        return a+b;
    }
    
    public static void main (String args[]){
        int hasil1 = Berhitung.tambah(2, 3); //static
        System.out.println(hasil1);
        
        Berhitung hasil2 = new Berhitung(); //non static, perlu membuat objek
        System.out.println(hasil2.tambah(5, 5));
    }
}

keyword static pada java
[Read More...]


Array pada Java



Array merupakan suatu variabel yang dapat menyimpan beberapa data dengan tipe yang sama. Data disimpan dalam sebuah blok memori yang berdekatan yang kemudian dibagi menjadi beberapa ruang.
array java
Pendeklarasian:
TipeData[] namaArray; atau TipeData namaArray[]; 

Pendeklarasian sekaligus pembentukan objek
TipeData[] namaArray = new tipedata[jumlah] atau
TipeData namaArray[] = new tipedata[jumlah] 

Contoh :
int[] angka = new int[100];
        System.out.println ("barisan bilangan : ");
        for (int i=1; i<=10; i++){
            angka[i]=i;
            System.out.print(angka[i]+" ");
        }

tipe array

> Array Multidimensi
Selain deretan variabel satu dimensi, kita dapat membuat array yang berukuran lebih dari satu dimensi, yaitu array multidimensi.
Pendeklarasian :
TipeData [] [] namaArray = new TipeData [jumlah] [jumlah] 

Contoh:
int[][] angka = new int[3][2];
        for (int i=0; i<angka.length;i++){
            for (int j=0; j<angka[0].length;j++){
                angka[i][j]=j;
System.out.println("baris ke-"+i+" kolom ke-"+j+" bernilai "+angka[i][j]);
            }
        }

array 2 dimensi java


LATIHAN

A. Menampilkan Hari
public class Hari {
    public static void main (String args[]){
        String[] hari = {"Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu", "Minggu"};
        
        for (int i=0; i<=hari.length; i++){
            System.out.println(hari[i]);
        }
    }
}
contoh program sederhana array


B. Barisan Fibonacci
import javax.swing.JOptionPane;

public class Fibonacci {
    public static void main (String args[]){
    int input = Integer.parseInt(JOptionPane.showInputDialog(null, "jumlah deret fibonacci yang ingin ditampilkan : ", "Program Fibonacci", 1));
    int i = input-1;
    int[] fibo = new int[input];
    int sum = 0;
    
    for (i=0; i < input; i++){
        if (i==0) {fibo[0]=1;System.out.print(fibo[0]+" ");}
            else if (i==1) {fibo[1]=1;System.out.print(fibo[1]+" ");}
            else {
          fibo[i]=fibo[i-1]+fibo[i-2];          
          System.out.print(fibo[i]+" ");
        }
        sum = sum + fibo[i];
    }
    System.out.print("\nhasil = "+sum);
    }
} 

fibonacci java


C. Tabel Perkalian
import javax.swing.JOptionPane;

public class TabelPerkalian {
    public static void main (String args[]){
    int input = Integer.parseInt(JOptionPane.showInputDialog("Masukkan tabel perkalian yang diinginkan : "));
    int[][] kali = new int[input][10];
    int hasil;
    
    for (int i=0; i<kali.length; i++){
        kali[i][0]=i+1;
        System.out.println("");
        for (int j=0; j < kali[i].length;j++){
            kali[0][j]=j+1;
            hasil=kali[i][0]*kali[0][j];
            System.out.println(kali[i][0]+"*"+kali[0][j]+"="+hasil+" ");
        }
      }    
    }
}
perkalian dengan java
[Read More...]


 
Return to top of page Copyright © 2010 | Platinum Theme Converted into Blogger Template by HackTutors