a

Showing posts with label java. Show all posts
Showing posts with label java. Show all posts

Wednesday, 6 November 2013

Menghubungkan Dua Form Dalam Java Swing

Dalam tutorial java kali ini, saya akan menunjukkan bagaimana cara menghubungkan / memanggil sebuah form melalui form yang lain dalam java swing. Langkah pertama yang harus dilakukan adalah membuat dua buah form terlebih dulu, misalnya FormPertama dan FormKedua. Caranya klik


File > New Project > Java Application

Beri nama project, misalnya Panggil Form. Hilangkan tanda cek pada Create Main Class, lalu klik finish.

Kemudian buat dua buah from, klik kanan pada project tadi, kemudian pilih
New > JFrame Form

Ubah nama form tersebut menjadi FormPertama. Lakukan hal yang sama untuk membuat FormKedua dan tempatkan pada package yang sama dengan FormPertama. Tambahkan sebuah button pada FormPertama yang nantinya dipakai untuk memanggil FormKedua, ganti nama button tersebut dengan butonPanggil. Tambahkan pula sebuah button pada FormKedua yang nantinya berguna untuk menutup form tersebut, ganti nama buton tersebut dengan butonTutup. Modifikasi kedua form sehingga tampilannya seperti gambar dibawah ini.







Klik kanan pada butonPanggil > Events > Action > actionPerformed

Anda akan dibawa ke jendela source dan akan menemukan kode program seperti ini :
private void butonPanggilActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

Ubah kode tersebut sehingga menjadi :

private void butonPanggilActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FromKedua().setVisible(true);
}

Klik kanan pada butonTutup > Events > Action > actionPerformed

Anda akan dibawa ke jendela source dan akan menemukan kode program seperti ini :

private void butonTutupActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

Ubah kode tersebut sehingga menjadi :

private void butonTutupActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}

Kemudian Run File FromPertama.java dalam jendela project tree anda. O iya, pada FormKedua, ubahlah property defaultCloseOperatioin menjadi DISPOSE agar saat tanda close pada FormKedua diklik, jendela yang diclose hanya jendela FromKedua saja, jendela FormPertama tetap aktif.
Read More >>

Sunday, 8 September 2013

[Java Swing] Membuat HandCursor JButton


Posted on
Pemilihan_002

Untuk membuat handcursor pada Java dapat kita buat dengan sangat mudah. HandCursor adalah pointer mouse yang berbentuk tangan, secara default pointer mouse memiliki bentuk panah. Pada contoh program berikut ini, jika pointer mouse kita lewatkan diatas komponen JButton maka pointer yang sebelumnya berbentuk panah akan berubah menjadi berbentuk tangan. Untuk membuatnya kita gunakan method setCursor(), kemudian tambahkan didalam parameternya Hand_Cursor.
Pemilihan_001
Download Programnya di
Ubuntu One


ubuntuone icon

Download : HandCursor JButton App
Gist Github
Dowload : HandCursor JButton App
Screenshot Program

Cuplikan layar 2013-09-08 01:41:12

Cuplikan layar 2013-09-08 01:41:42 

Selamat mencoba dan Semoga bermanfaat :)
Untuk pertanyaan, saran dan kritik, silahkan ditulis di kolom komentar
Read More >>

Monday, 10 June 2013

Perbedaan For, While dan Do-While di Java


Pembahasan perulangan di Java mulai dari While, Do-while dan For sudah kita bahas satu persatu. Sekarang saatnya membandingkan untuk mengetahui perbedaan utama dari ketiga perulangan tersebut.

  1. Perulangan For, program hanya akan menjalankan inisialisasi sebanyak satu kali kemudian akan dicek pada pernyataabn kondisi, bila kondisi bernilai benar maka modifier akan dijalankan diikuti dengan pernyataan. Setelah itu program akan kembali melakukan pengecekan kondisi dan apabila masih bernilai benar akan dilanjutkan dengan menjalankan modifier dan pernyataan. Program akan berputar mengecek kondisi, modifier dan pernyataan. Lalu sampai kapan ? Tentunya sampai kondisi tidak terpenuhi atau bernilai salah. Makanya kita kadang menemukan program yang outputnya tidak berhenti karena perulanganya berjalan terus. hal itu disebabkan karena kondisi selalu bernilai benar.
  2. Perulangan While, Pada perintah While  pengecekan dilakukan pada awal blok.
  3. Perulangan Do-While, Pengecekan dilakukan di akhir blok.  
  4. Persamaan Perulangan While dan Do-While adalah hanya menggunakan 1 parameter. Meskipun demikian tetap menghasilkan perulangan yang sama dengan for yang menggunakan  3 buah parameter . Hal ini dikarenakan bagian inisialisasi dan modifiernya kita masukkan dalam baris program biasa sehingga hasil outputnya pun tetap sama dengan menggunakan for.
Read More >>

Saturday, 8 June 2013

Program Konversi INFIX ke Postfix & Prefix

import java.util.Scanner;

class Node {
    public Object data;
    public Node next;
    public Node () {
       data =' ';  next = null; }
    public Node (Object val) {
       data = val;  next = null; }
}
public class empat {   
    private Node top;
    public empat() {
        top = null; }
    public boolean empty(){
        return top == null; }
       public boolean full(){
        return false;
    }
   
    public void push(Object e){
        Node tmp = new Node(e);
        tmp.next = top;
        top = tmp;
    }
   
    public Object pop(){
        Object e =  top.data;
        top = top.next;
        return e;
    }

    public Object peek(){
        Object e =  top.data;
           return e;
    }
   
    public void postfix(String x){
        String output="";
        empat S=new empat();
        for(int i=0;i<x.length();i++){
            char c=x.charAt(i);
            if(c==('+')||c==('*')||c==('-')||c==('/')){
                while(!S.empty() && priority(S.peek())>= priority(c))
                    output+=S.pop();
                    S.push(c);
                }
            else if(c=='('){
                S.push(c);
            }
            else if(c==')'){
                while(!S.peek().equals('('))
                output+=S.pop();
                S.pop();
            }
            else
                output+=c;
        }
        while(!S.empty())
            output+=S.pop();
            System.out.println("Notasi Infix            : "+x);
            System.out.println("Notasi Postfix          : "+output);
    }

    public void prefix(String x){
        String output="";
        empat S=new empat();
        int i;
        for(i=0;i<x.length();i++){
            char c=x.charAt(i);
            if(c==('+')||c==('*')||c==('-')||c==('/')){
                while(!S.empty() && prioritas(S.peek()) <= prioritas(c))
                    output+=S.pop();
                    S.push(c);
            }
        }
        while(!S.empty())
        output+=S.pop();
       
        for(i=0;i<x.length();i++){
            char c=x.charAt(i);
            if(c==('+')||c!=('*')||c!=('-')||c!=('/')){
                while(!S.empty() && prioritas(S.peek()) >= prioritas(c))
                    output+=S.pop();
                    S.push(c);
            }
            else
                output+=c;
            if((c=='(')||(c==')')){
                S.pop();
            }
            if(c==('+')||c==('*')||c==('-')||c==('/')){
                S.pop();
            }
        }
        while(!S.empty())
        output+=S.pop();
        System.out.println("Notasi Prefix          : "+output);
    }
   
    public int priority(Object x){
        if(x.equals('+')||x.equals('-'))
            return 1;
        else if(x.equals('*')||x.equals('/'))
            return 2;
        else
            return 0;
    }
   
    public int prioritas(Object x){
        if(x.equals('+')||x.equals('-'))
            return 2;
        else if(x.equals('*')||x.equals('/'))
            return 1;
        else
            return 0;
    }

    public static void main(String args[]){       
        Scanner in = new Scanner(System.in);
        empat s=new empat();
        System.out.println();
        System.out.println("------------------------------------------");
        System.out.print("Inputkan Notasi Infix: "); String input = in.next();
        System.out.println("------------------------------------------");
        s.postfix(input);
        s.prefix(input);
        System.out.println("------------------------------------------");
    }
}


Read More >>

Sunday, 2 June 2013

Menghubungkan Dua Form Dalam Java Swing

Dalam tutorial java kali ini, saya akan menunjukkan bagaimana cara menghubungkan / memanggil sebuah form melalui form yang lain dalam java swing. Langkah pertama yang harus dilakukan adalah membuat dua buah form terlebih dulu, misalnya FormPertama dan FormKedua. Caranya klik

File > New Project > Java Application

Beri nama project, misalnya Panggil Form. Hilangkan tanda cek pada Create Main Class, lalu klik finish.

Kemudian buat dua buah from, klik kanan pada project tadi, kemudian pilih
New > JFrame Form

Ubah nama form tersebut menjadi FormPertama. Lakukan hal yang sama untuk membuat FormKedua dan tempatkan pada package yang sama dengan FormPertama. Tambahkan sebuah button pada FormPertama yang nantinya dipakai untuk memanggil FormKedua, ganti nama button tersebut dengan butonPanggil. Tambahkan pula sebuah button pada FormKedua yang nantinya berguna untuk menutup form tersebut, ganti nama buton tersebut dengan butonTutup. Modifikasi kedua form sehingga tampilannya seperti gambar dibawah ini.






Klik kanan pada butonPanggil > Events > Action > actionPerformed

Anda akan dibawa ke jendela source dan akan menemukan kode program seperti ini :
private void butonPanggilActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

Ubah kode tersebut sehingga menjadi :

private void butonPanggilActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
new FromKedua().setVisible(true);
}

Klik kanan pada butonTutup > Events > Action > actionPerformed

Anda akan dibawa ke jendela source dan akan menemukan kode program seperti ini :

private void butonTutupActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

Ubah kode tersebut sehingga menjadi :

private void butonTutupActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
dispose();
}

Kemudian Run File FromPertama.java dalam jendela project tree anda. O iya, pada FormKedua, ubahlah property defaultCloseOperatioin menjadi DISPOSE agar saat tanda close pada FormKedua diklik, jendela yang diclose hanya jendela FromKedua saja, jendela FormPertama tetap aktif.
Read More >>

Membuat menu Login sederhana dengan JFrame Form di netbeans

kali ini saya akan posting cara membuat menu login sederhana dengan JFrame Form di netbeans…
langsunga aja sobat desain Formnya seperti berikut:

* ini sudah di Runing….

berikut componentnya:
1. 3 JLabel: Menu Login, Username, Password.
2. 1 JTextfield:  txtuser
3. 1 password field: pwdpass
4. 2 JButton: Login:btnlogin, Exit:btnexit.
5. 2 Joption Pane: opsukses, opgagal
Berikut Scriptny:
private void btnloginActionPerformed(java.awt.event.ActionEvent evt) { //Button Login
String user = txtuser.getText();
String pass = pwdpass.getText();
if (user.equalsIgnoreCase(“handexcel”) && pass.equalsIgnoreCase(“hand2kecil”)) {
opsukses.showMessageDialog(null, “Login Succses!!!”);
} else {
opgagal.showMessageDialog(null, “Login gagal try again Username Or Password Salah!!!”);
}
// TODO add your handling code here:
}
private void btnexitActionPerformed(java.awt.event.ActionEvent evt) { //Button Exit
System.exit(0);
// TODO add your handling code here:
}
semoga bermanfaat dan bisa anda kembangkan sendiri
Read More >>

Saturday, 25 May 2013

Abstract Class

Class Abstrak tidak berbeda dengan class – class lainnya yaitu memiliki class members (method dan variabel). Sebuah class adalah abstrak jika salah satu methodnya dideklarasikan abstrak. Method abstrak adalah method yang tidak memiliki implementasi. Contoh deklarasi method abstrak:
abstract public void cetak();
Beberapa hal yang perlu diperhatikan adalah sebagai berikut:
  1. Class abstrak tidak dapat dibuatkan instan atau objeknya menggunakan keyword new.
  2. Sebuah class dapat dideklarasikan sebagai class abstrak walaupun tidak memiliki method abstrak.
  3. Variabel dengan tipe class abstrak tetap bisa diciptakan, tetapi harus refer ke subclass dari class abtrak tersebut yang tentunya tidak abstrak.
Perhatikan contoh class abstrak di bawah ini.
abstrak public class Mobil {
 public void injakPedalGas();
 public void injakRem(){
    System.out.println(“Mobil berhenti!”);
 }
}
public class Kijang extends Mobil{
 public void injakPedalGas(){
  System.out.println("Mobil Melaju dengan kecepatan 80 Km/jam...");
 }
}
public class BMW extends Mobil {
   public void injakPedalGas(){
    System.out.println("Mobil Melaju dengan kecepatan 100 Km/jam...");
 }
}


Objek class abtrak tidak dapat diciptakan menggunakan keyword new secara langsung. Apabila kita terpaksa ingin menciptakan object class abtrak tanpa membuat subclass kongkritnya, maka kita harus mengimplementasikan method – method abstraknya secara langsung saat deklarasi. Perhatikan contoh di bawah ini.
public class TestMobil {
 public static void main(String[] args){
  Mobil mobil = new Mobil(){
   public void injakPedalGas(){
    System.out.println("Mobil berjalan...");
   }
  };
  
  Kijang kijang = new Kijang();
  Escudo escudo = new Escudo();
  BMW bmw = new BMW();
  
  mobil.injakPedalGas();
  
  mobil = kijang;
  mobil.injakPedalGas();
  
  mobil = escudo;
  mobil.injakPedalGas();
  
  mobil = bmw;
  mobil.injakPedalGas();
 }
}
Read More >>

INTERFACE

INTERFACE

  • interface dapat dianggap sebagai suatu kontrak tentang apa yang dapat dilakukan oleh suatu kelas, tanpa menyebutkan bagaimana kelas akan melakukannya. [1&2]
  • interface dapat dianggap sebagai 100% abstract class. Akan tetapi, bila abstract class dapat memiliki method abstract dan method non-abstract, maka interface hanya dapat memiliki method abstract saja. [1&2]
  • Suatu interface dapat diimplementasikan oleh setiap kelas, tanpa memandang pohon inheritance dari kelas tersebut. [2]

1. DEKLARASI INTERFACE

1.1 Syarat-syarat deklarasi interface

  • Sintak deklarasi interface adalah sebagai berikut : [1&2]

AccessModifier [abstract] interface NamaInterface extends A, B, C
{
//……
}


  • Suatu interface pasti abstract, oleh karena itu, keyword abstract dalam sintaks di atas adalah optional.[1&2]
Contoh : 2 deklarasi interface dibawah ini memiliki arti yang sama  [1]

1

interface MyInterface


2

abstract interface MyInterface


  • Suatu interface boleh meng-extends satu atau lebih interface yang lain. [2]
Contoh : [1]
Program 01

interface A
{
    public abstract void namaMethodSama();
    public abstract void haha();
}

interface B
{
    public abstract void namaMethodSama();
    public abstract void hihi();
}

interface C extends A, B
{
    public abstract void huhu();
}


  • Suatu interface tidak dapat meng-extends selain interface. [2]
Contoh : [1]
Program 02

class A {}

interface Z extends A {}

Bila dicompile, program di atas akan menghasilkan :
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface04.java:5: interface expected here
interface Z extends A {}
1 error

  • Suatu interface tidak dapat meng-implements interface atau class yang lain. [2]
Contoh : [1]
Program 03

interface A {}

//Error !!!
interface B implements A {}


  • Kesimpulan perbedaan extends dan implements pada class dan interface : [1]

extends
implements
class
Hanya dapat meng-extends satu buah superclass secara langsung.

Dapat meng-implements nol atau lebih dari nol buah interface.
interface
Dapat meng-extends nol atau lebih dari nol buah interface.

Tidak dapat meng-implement apapun.

1.2 Syarat-syarat deklarasi method dalam interface

  • Method-method yang dideklarasikan di dalam interface tidak memiliki badan method, langsung diikuti oleh titik koma. [1]
Contoh : [1]
Program 04

interface A
{
    void myMethod();
    String yourMethod();
    int outMethod();
}


  • Setiap method yang dideklarasikan di dalam interface pasti secara implisit memiliki dua modifier berikut : [2]
    1. public
    2. abstract
Dengan kata lain, setiap method pasti bermodifier public dan abstract, baik kita berikan kedua modifier tersebut saat deklarasi method atau tidak. [1&2]
Contoh : lima deklarasi method di dalam interface berikut memiliki arti yang sama [1]

1


public abstract void myMethod();

2


Abstract public void myMethod();

3


abstract void myMethod();

4


public void myMethod();

5


void myMethod();

  • Method di dalam interface tidak boleh memiliki modifier-modifier berikut :
1.      static
2.      final
3.      strictfp
4.      native
Contoh : [1]
Program 05

interface Z
{
    static void A();
    final void B();
    strictfp void C();
    native void D();
}

Bila dicompile, maka akan mengeluarkan error-error sebagai berikut :
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:5: modifier static not allowed here
    static void A();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:6: modifier final not allowed here
    final void B();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:7: modifier strictfp not allowed here
    strictfp void C();
E:\Data\Data NetBeans\Belajar SCJP\src\myInterface\MyInterface06.java:8: modifier native not allowed here
    native void D();
4 errors

1.3 Syarat-syarat deklarasi variabel dalam interface

  • Setiap variabel yang dideklarasikan di dalam interface pasti secara implisit memiliki tiga modifier berikut : [2]
    1. public
    2. static
    3. final
Dengan kata lain, setiap variabel pasti bermodifier public, static dan final, baik kita berikan ketiga modifier tersebut saat deklarasi variabel atau tidak. [1&2]
Contoh : lima deklarasi variabel di dalam interface berikut memiliki arti yang sama [1]

1


Int i = 10;

2


Public int i = 10;

3


Static int i = 10;

4


Final int i = 10;

5


Public static int i = 10;

6


Public final int i = 10;

7


Static final int i = 10;

8


Public static final int i = 10;

9


Static final public int  i = 10;

10


Final static public int i = 10;

2. IMPLEMENTASI INTERFACE

  • Ketika kita meng-implements interface, maka kita setuju untuk menyediakan implementasi dari setiap method yang didefinisikan di interface. [1&2]
  • Bila suatu class hendak meng-implements suatu interface, maka sintaks deklarasi kelas tersebut menjadi sbb : [1]

Modifier class NamaKelas implements interface1, interface2,...
{
//………
}


Contoh : [1]
Program 06

interface A
{
    void methodDiA();
}

interface B
{
    void methodDiB();
}

interface C extends B
{
    void methodDiC();
}

class MyImplementation01 implements A, C
{
    public void methodDiA()
    {
        System.out.println("Implementasi dari A.methodDiA()");
    }
   
    public void methodDiB()
    {
        System.out.println("Implementasi dari B.methodDiB()");
    }
   
    public void methodDiC()
    {
        System.out.println("Implementasi dari C.methodDiC()");
    }
   
    public static void main(String[] args)
    {
        MyImplementation01 myI = new MyImplementation01();
        myI.methodDiA();
        myI.methodDiB();
        myI.methodDiC();
    }
}

Program di atas akan menghasilkan :
Implementasi dari A.methodDiA()
Implementasi dari B.methodDiB()
Implementasi dari C.methodDiC()

  • Suatu interface dapat di-implements oleh :
    1. abstract class
    2. non-abstract class.

  • Bila kelas yang meng-implements suatu interface adalah non-abstract class, maka harus memenuhi syarat-syarat sebagai berikut : [2]
1.      Menyediakan semua implementasi dari semua method yang ada di interface tersebut.
2.      Mengikuti semua peraturan tentang override method.

  • Peraturan tentang override yang harus diikuti adalah : [1]
1.      Harus beraccess modifier public
2.      Return type adalah harus compatible (dengan yang ada di interface)
3.      Checked exception yang dilempar harus tidak lebih luas dan tidak baru (dengan yang ada di interface)
Contoh : [1]
Program 07

class A {}
class B extends A {}
class ExceptionC extends Exception {}
class ExceptionD extends ExceptionC {}

interface X
{
    A myMethod() throws ExceptionC;
    void myOtherMethod() throws ExceptionD;
}

class MyImplementation03 implements X
{
    //Meski method di bawah ini berbeda dalam return type
    //dan exception yang dilempar dari yang ada di interface,
    //akan tetapi method di bawah ini tetap implementasi dari
    //method yang ada di interface.

    public B myMethod() throws ExceptionD
    {
        System.out.println("Implementasi dari X.myMethod()");
        return new B();
    }

    //Implementasi method di bawah ini tanpa melemparkan exception
    //(BOLEH !!!)
    public void myOtherMethod()
    {
        System.out.println("Implementasi dari X.myOtherMethod()");
    }
  
    public static void main(String[] args)
    {
        MyImplementation03 myI = new MyImplementation03();
       
        try
        {
            myI.myMethod();
        }
        catch(ExceptionD eD) {}

        //Tanpa try-catch, padahal di interface dinyatakan melempar
        //exception (BOLEH)
        myI.myOtherMethod();
    }

}

Program di atas akan menghasilkan :
Implementasi dari X.myMethod()
Implementasi dari X.myOtherMethod()


  • Bila kelas yang meng-implements interface adalah abstract class, maka dapat tidak menyediakan implementasi dari semua method yang ada di interface, akan tetapi method-method yang diimplementasikan tetap harus mengikuti semua peraturan tentang override method. [1&2]
Non-abstract class pertama dari pohon inheritance dari abstract class yang meng-implements harus menyediakan semua implementasi dari interface yang di-implement oleh abstract class tersebut. Bila ternyata interface yang diimplement meng-extends interface lain, maka method-method di interface lain itu juga harus diimplementasikan oleh non-abstract class.
Contoh : [1]
Program 08

interface A
{
    void x();
}

interface B extends A
{
    void y();
    void z();
}

abstract class K implements B
{
    public void y()
    {
        System.out.println("Implementasi dari B.y()");
    }
}

class MyImplementation02 extends K
{
    public void x()
    {
        System.out.println("Implementasi dari A.x()");
    }
   
    public void z()
    {
        System.out.println("Implementasi dari B.z()");
    }
   
    public static void main(String[] args)
    {
        MyImplementation02 myI = new MyImplementation02();
        myI.x();
        myI.y();
        myI.z();
    }
}

Program di atas akan menghasilkan :
Implementasi dari A.x()
Implementasi dari B.y()
Implementasi dari B.z()

Read More >>