Cara Mengedit Foto / Gambar Supaya Background Transparan
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:
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.
Setelah itu, restart laptop/PC Anda, maka tombol keyboard telah tertukar sesuai settingan Anda ;)
Java Database Connectivity
a. Membuat Database Baru
CREATE DATABASE NAMA_DATABASE;
b. Menampilkan Database yang Telah Dibuat
SHOW DATABASES;
c. Menghapus Database yang Telah Dibuat
DROP DATABASE NAMA_DATABASE;
d. Menggunakan Database yang Telah Dibuat
USE NAMA_DATABASE;
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
f. Menampilkan Tabel
SHOW TABLES;
g. Menghapus Tabel
DROP TABLES NAMA_TABLE;
h. Menambah Data pada Tabel
INSERT INTO NAMA_TABLE ( (NAMA_ATRIBUT,…) VALUES (NILAI_ATRIBUT,…), (NILAI_ATRIBUT,…) );
i. Menampilkan Data yang ada pada Tabel
SELECT [NAMA_ATRIBUT,…] FROM [NAMA_TABEL,…];
Bila ingin menampilkan seluruh data pada tabel :
SELECT * FROM [NAMA_TABEL,…];
Bila ingin menampilkan data dengan criteria tertentu
SELECT [NAMA_ATRIBUT,…] FROM [NAMA_TABEL,…] [WHERE KONDISI];
j. Mengubah Data pada Tabel
UPDATE NAMA_TABEL SET NAMA_ATRIBUT = “NILAI BARU”, [WHERE KONDISI];
k. Menghapus Data pada Tabel
DELETE FROM NAMA_TABEL [WHERE KONDISI];
> Membuat Form Insert, Update, Delete Sederhana Menggunakan Java
Buat Form seperti berikut
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); } }
GUI Lanjutan
- Membuat Form Sederhana
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);
- Membuat Kalkulator Sederhana
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
GUI Dasar
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(); } }
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(); } }
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(); } }
Referensi
Pemrograman Berorientasi Objek dengan Java – Novrido Charibaldi, Agus Sasmito AribowoMulti Threading
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 } }
Penanganan Kesalahan
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()); } } }
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()); } } }
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.
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()); } } }
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"); } } }
Pemrograman Berorientasi Objek
Ketentuan- ketentuan dalam penamaan di 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 NamaKelasContoh :
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()); } }
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")); } }
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
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); } }
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 (.)
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()); } }
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(); } }
11. Keyword Final
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
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.
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")); } }
b. Overriding
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(); } }
13. Abstract dan Interface
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 | 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(); } }
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); } }
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)); } }
Array pada Java
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]+" "); }
> 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]); } }
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]); } } }
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); } }
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+" "); } } } }