My Java Book

23 01 2010

JFYI…selain e-book ya lebih enak kalo kita punya buku pegangan. kalo buat buku pegangan aku ada buku di bawah ini…aku dapet dari sohib Javaku yang sekarang kuliah di Amerika…NICE!!!

di Indonesia buku ini mungkin ga di jual. tapi kalo pengen ya bisa beli lewat amazon.com atau cara paling mudah print pdf.nya .tapi klo udah terbiasa dengan e-Book udah bejibun e-Book yang tersebar di dunia maya… recommended link >> www.javapassion.com





Swing Component(s)

16 01 2010

nah sekarang aku tampilin komponen-komponen swing, jadi biar nanti ga bingung mana yang namanya JPanel, JTollbar dan lainnya…langsung aja liat dan pelajarin komponennya berikut

JButton


JCheckBox


JComboBox


JList


JMenu


JRadioButton


JSlider


JSpinner


JTextField


JPasswordField


JTextArea


JEditor and JTextPane


JSplitPane


JScrollPane


JTollbar


JTabbedPane


JPanel


JInternalFrame


JLayeredPane

banyak banged kan komponennya, dan setiap komponennya itu ada propertinya sendiri-sendiri. misalnya JTextArea ada property untuk lebar, tinggi, font, background dan masih banyak lagi yang lain

masih ada komponen yang belum aku tampilin, dan bisa temen-temen pelajari dan explore pake IDE NetBeans (seperti yang di atas)…SWING!!!





Swing Features

16 01 2010

ada buanyak fitur-fitur dari swing…sekarang bahas yang look and feel ma internasionalize …dengan fitur pluggaable look and feel pada swing kita dapat mengubah tampilan komponen-komponen yang telah ada. contoh look and feel di swing seperti dibawah ini


Java Look and Feel


Windows Look and Feel


CDE / Motif Look and Feel


Default Alloy Look and Feel


Synthetica Look and Feel


nah kalo internasionalize itu aplikasi yang sudah kita bangun dengan swing itu bisa mengikuti atau diubah bahasanya. misalnya menjadi bahasa arab atau mandarin seperti berikut





Swing (intro)

15 01 2010

Swing adalah salah satu framework java yang menggunakan komponen GUI di dalam paradigma pemrograman Java, sebelumnya di pembelajaran OOP, program berjalan di lingkungan DOS (windows) atau Terminal (linux) yang masih berbasis console dengan hanya menginputkan data dengan menggunakan text yang diketik tanpa interaksi lainnya karena memang tidak menggunakan GUI

GUI (Graphical User Interface)

Jenis user interface yang memungkinkan user untuk berinteraksi dengan perangkat lunak dengan lebih nyaman dan user friendly karena memanfaatkan komponen GUI seperti button, dropdown list, radio button dan komponen GUI (swing) lainnya. contoh menampilkan hello world versi console dan menggunakan swing component perbedaannya bisa dilihat seperti berikut:

Hello World Console


Hello World Swing

Dari contoh simpel di atas bisa dilihat kalo yang pemrograman dengan swing hasilnya lebih user friendly karena memang dari tampilan lebih interaktif dan contoh Hello World Swing itu terdapat ada GUI component (buttonj dan window) .komponennya pun juga bisa di set propertinya. seperti misalnya komponen window itu kita bisa mengeset untuk title windownya dan juga icon disamping text di dalam windownya.

Swing adalah bagian dari platform Java SE (Standard Edition) yaitu JFC (Java Foundation Class) yang menyediakan banyak komponen GUI. JFC sendiri adalah kelas-kelas (classes) yang dimiliki oleh java untuk membuat aplikasi java berbasis GUI. di dalam JFC tidak hanya berisi class yang mendukung pemrograman berbasis GUI tapi juga ada banyak class yang juga dapat membuat aplikasi yang kita bangun lebih variatif dan advance. memang di pemrograman java kita sudah sangat dimudahkan karena sudah banyak class yang dibuat dan kita tinggal memakainya saja dengan cara meng-extendsnya. (Untuk lebih detail tentang isi JFC bisa dicari di google – be more simple here …^^)

Intinya adalah swing merupakan paradigma pemrograman yang mendukung untuk membuat aplikasi java dengan GUI. Swing memudahkan kita untuk mengubah atau mengembangkan GUI tanpa harus mengubah banyak kode. Dan jika kita menggunakan IDE kita tidak perlu terlalu banyak untuk manual coding karena kita tinggal drag and drop komponen dari component box yang tersedia. selain itu untuk menggunakan swing kita tidak usah menambahkan (import) file tambahan lagi karena sudah ada di dalam JDK yang sudah di-install.





new year 2010

30 12 2009

viva Free and Open Source Software !!! viva JAVA !!!

semoga tahun depan lebih baik !!! harus lebih  baik !!!

ne lagi build e-BOOK OOP dan swing semoga cepet kelar dan ntar juga aku update di blog ini

untuk semuanya yang udah berkontribusi dan visit this blog THANK YOU !!!

HAPPY NEW YEAR 2010 !!!





Input Data

16 05 2009

Nah pembahasan ini penting buat dibahas. Kita telah mempelajari dasar-dasar pemrograman Java. Nah tapi program kita itu input nilainya masih belum dinamis. Maksudnya, waktu penginputan data kita memasukkan nilainya langsung di program kita. Kalau untuk mempelajari dasar-dasar pemrograman dan algoritmanya masih tidak apa-apa. Namun, untuk implementasi sebenarnya ini sangat tidak bagus kan? Masa kita membuat suatu aplikasi, program atau sistem informasi tapi user menginputkan nilai harus masuk ke program kita. Tidak efektif, tidak efektif di sisi programmer dan di sisi user juga. Maka lebih efektif dan praktisnya kita membuatnya secara dinamis. Banyak sekali cara untuk menangkap nilai yang diinputkan oleh user. Kita akan membahasa beberapa cara. Let’s check these out!!

  • Class Baca

Kita membaca inputan dari user dengan memanfaatkan class baca (Baca.java). sebenarnya class baca adalah suatu class yang dapat membaca inputan dari user dengan memanfaatkan method pada class inputstream yang dimiliki oleh java.

Source class baca (Baca.java)

import java.io.*;
public class Baca{
   public static String bacaString(){
      int k;
      String str = "";
      boolean selesai = false;
      while(!selesai){
         try {
            k = System.in.read();
            selesai = (k == 13);
            if(!selesai)
               str += (char) k;
         }
         catch(IOException e){
            System.err.println("Ada kesalahan");
            selesai = true;
         }
      }
      return str;
   }
}

Cukup tau tentang class ini, karena nantinya kita akan memanfaatkan class Baca ini. Lalu bagaimana penggunaannya. Penggunaannya seperti di bawah ini Contoh dibawah ini kita akan membuat program sederhana untuk menghitung luas segitiga dengan memanfaatkan class baca untuk membaca inputan user.

class LuasSegi3 {
   public static void main(String[] args) {
      String inputanAlas, inputanTinggi, nama;
      double alas,tinggi,luas;

      System.out.print("Masukkan nama: ");
      nama = Baca.bacaString();
      System.out.println();

      System.out.println("Program Luas segitiga");
      System.out.print("Masukkan alas: ");
      inputanAlas = Baca.bacaString();
      alas = Double.valueOf(inputanAlas).doubleValue();

      System.out.print("Masukkan tinggi: ");
      inputanTinggi = Baca.bacaString();
      tinggi = Double.valueOf(inputanTinggi).doubleValue();

      luas = (alas*tinggi)/2;
      System.out.println("Luasnya: "+luas+"cm2\n");
      System.out.println("Terima Kasih "+nama.toUpperCase());
   }
}

NB:

  • Kita memanfaatkan class baca, tapi kelemahannya class baca hanya menangkap nilai bertipe String. Nah, jika ingin inputannya bilangan kita harus melakukan parsing seperti di atas >> alas = Double.valueOf(inputanAlas).doubleValue();
  • Potongan program di atas artinya nilai dari variable inputanAlas di convert menjadi variable bertipe double yang ditampung di variable alas
  • Variable nama tidak perlu dikonversi karena sudah bertipe String
  • Metode toUpperCase() adalah untuk membuat karakter String menjadi huruf besar semua

Outputnya:

Masukkan nama: bernaz <enter>

Program Luas Segitiga

Masukkan alas: 12 <enter>

Masukkan tinggi: 12 <enter>

Luasnya: 72.0 cm2

Terima Kasih BERNAZ

  • Scanner

Sebenarnya Scanner adalah class yang sudah ada di java dan kita tinggal menggunakannya dengan cara meng-importnya. Langsung saja ke contoh implementasinya seperti di bawah ini

import java.util.*;
class Said {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.println("Selamat Datang di bernaz's blog\n");

      System.out.print("Nama Anda : ");
      String nama = sc.nextLine();

      System.out.print("NIM Anda : ");
      int NIM = sc.nextInt();

      System.out.print("IPK : ");
      double IPK = sc.nextDouble();

      System.out.println(".......");
      System.out.println("Selamat "+nama.toUpperCase()+" anda telah terdaftar");
      System.out.println("NIM anda "+NIM);
      System.out.println("Indeks Prestasi anda "+IPK);
   }
}

NB:

  • Class Scanner ada di dalam paket util jadi kita harus mengimportnya sebelum kita menggunakannya dan util ada di paket java. Jadi kita harus mengimportnya dengan cara import java.util.*; atau juga bisa dengan import java.util.Scanner;
  • nextLine() untuk membaca inputan String
  • nextInt() untuk membaca inputan integer
  • nextDouble() untuk membaca inputan double

Outputnya:

Selamat Datang di bernaz’s blog

Nama Anda : Bernaz <enter>

NIM Anda : 1234567 <enter>

IPK : 4 <enter>

…….

Selamat BERNAZ anda telah terdaftar

NIM anda 1234567

Indeks Prestasi anda 4.0





Try Catch

27 03 2009

Try Catch ini adalah salah satu fitur dari Java untuk menangkap eksepsi atau kesalahan. Ya mungkin kita sering melakukan kesalahan dalam membuat program. Nah, dengan menggunakan Try Catch ini kita bisa menangkap kesalahan itu.

Eksespsi bisa berupa kesalahan penulisan kode, kesalahan saat menjalankan method dan sebagainya.

Bentuk umum Try Catch

try {
   <blok_programs>;
}
catch(<parameter>) {
   <blok_yang_dijalankan_jika_terjadi_eksepsi>;
}
finally {
   <blok_yang_dijalankan_terakhir>;
}

Di blok program di dalam Try itu adalah program yang akan dijalankan dan akan ditangkap eksepsinya jika terjadi kesalahan. Dan yang di blok catch adalah blok yang dijalankan jka terjadi eksepsi, jadi pesan kesalahannya di dalam catch ini. Biasanya berupa statement. Finally sebenarnya hanya pelengkap saja dan jarang digunakan. Ini bisa dibayangkan sebagai footer, yaitu akan keluar di akhir atau dijalankan di akhir. Mungkin akan lebih jelas dengan contoh di bawah ini:

class Coba {
   public static void main(String[] args) {
      System.out.println("star program\n");
      try{
         System.out.println(10/0);
      }
      catch(Throwable b) {
         System.err.println("terjad kesalahan >> "+b.getMessage());
      }
      finally {
         System.out.println("Pembagian nol\n");
      }
      System.out.println("end of program");
   }
}

Outputnya

start program

terjadi kesalahan >> / by zero

pembagian nol

end of program

NB:

  • Program dibaca dari atas, mencetak start program terlebih dulu setelah itu baru masuk try
  • Di blok program try terjadi kesalahan. Kesalahannya, bilangan berapapun jika dibagi nol itu tidak bisa atau tidak terdefinisi.
  • Blok catch mencetak kesalahannya. Catch mempunyai parameter b yang berkelas Throwable. Throwable adalah kelas yang ada di package java.lang yang menangani eksepsi dan merupakan turunan dari kelas objek (kelas tertinggi di JAVA). Dan perlu diketahui blok ini akan dijalankan jika terjadi eksepsi saja.
  • System.err.println untuk mencetak kesalahan dan getMessage() adalah method untuk menampilkan kesalahan yang terjadi.
  • Blok finally itu bisa dikatakan seperti footer, jadi akan dijalankan di bagian terakhir saja dan akan tetap dijalankan walaupun tidak terjadi kesalahan atau eksepsi sekalipun
  • Setelah selesai akan keluar dari Try Catch dan mencetak end of program.




Package and Import

23 01 2009

Package yang artinya paket biasa digunakan dalam pengorganisasian data. Memang itulah fungsi utamanya, yaitu mengorganisasikan class-class agar mudah diakses dan terorganisir. Biasa disebut juga dengan grouping.

Keuntungan membuat package atau grouping (from JEDI):

  • Kamu dan programmer lainnya dapat dengan mudah menentukan class-class dan interface-interface yang berelasi
  • Kamu dan programmer lainnya dapat mengetahui dimana untuk mencari class-class dan interface-interface yang dapat menyediakan fungsi grafis yang direlasikan
  • Nama class dan interfacemu tidak akan mengalami konflik dengan nama-nama di paket lainnya, karena paket membuat tempat nama yang baru
  • Kamu dapat membiarkan class-class di dalam paket untuk mempunyai akses tak terlarang untuk salah satu yang lain selama larangan akses untuk tipe-tipe diluar paket

Dalam penulisan paket. Harus dituliskan di baris program yang pertama.

Agar bisa diakses dari tempat lain caranya:

  • class yang akan digunakan ditempat lain harus dibuat package dibaris pertama diberi deklarasi package
    package <nama_folder_tempat_class_berada>;

    contoh:

    package ProgramJAVAku;
  • program atau class yang akan memakai class tersebut harus melakukan import dibaris ke-2 klo ada package, pertama klo ga ada package diberi deklarasi import
    import <nama_package>.<nama_class>;

    contoh:

    import ProgramJAVAku.Mahasiswa;

    NB: class Mahasiswa (programnya) disimpan di folder bernama ProgamJAVAku

atau

  • import <nama_package> .*;

    contoh:

    import ProgramJAVAku.*;
  • OS diberi tahu dengan cara mengisi variabel lingkungan classpath dengan alamat folder tempat paket-paket yang akan diimport

Contoh penggunaan package (dengan implementasinya):

class main di drive D:\Programku
class yang diakses ada di C:\Javaku\Bernaz

Bilangan.java di simpan di di C:\Javaku\Bernaz

package Bernaz;
public class Bilangan {
  private int desimal;
  public void setDesimal(int desimal) {
  if(desimal>=0) {
    this.desimal = desimal;
  }
  else {
    this.desimal = -desimal;
  }
}
  public int getDesimal() {
    return this.desimal;
  }
  public String biner() {
  String hasil="";
  int sisa = this.desimal;
  do {
    hasil = sisa % 2 == 1 ? "1" + hasil : "0" + hasil ;
    sisa /= 2;
  }
  while (sisa > 0);
  return hasil;
  }
}

Utama.java disimpan di D:\Programku

import Bernaz.Bilangan;
class Utama {
  public static void main(String[] args) 	{
  Bilangan x = new Bilangan();
  x.setDesimal(-44);
  System.out.println("Bilangan biner dari "+ x.getDesimal() + " adalah "+ x.biner());
  }
}

Jangan lupa set variabel pathna. Buat new classPath addresna diisi class yang akan diakses (C:\Javaku;.). Jangan lupa konstruktor dan methods pada class yang akan diakses harus public. Semua konstruktor dan methods pada class yang akan diakses harus public. Public baru terasa jika ada komunikasi pada paket yang berbeda-beda.





Polimorfisme

23 01 2009

Polimorfisme bias diartikan seperti kemampuan suatu variable untuk mengubah perangai sesuai dengan objek hasil instansiasi yang digunakan. Polimorfisme membiarkan lebih dari 1 objek dari sub class – sub class dan diperlakukan sebagai objek dari super class tunggal

Contoh:

Mahasiswa cowok = new anakSI();
cowok.methodKU(“Bernaz”);

Mahasiswa cewek = new anakTI();
cewek.mothodKU(“Amelia”);

Outputnya:

  • Methodku dengan parameter dengan nilai Bernaz di class anakSI telah dipanggil
  • Methodku dengan parameter dengan nilai Amelia di class anakTI telah dipanggil

Masih terasa membingungkan. Prinsipnya hampir sama dengan interface, yaitu memaksa sub classnya untuk mengoverride method-methodnya. Polimorfisme juga bias dijabarkan sifat khusus dari JAVA dimana kita dapat secara otomatis memakai method yang tetap untuk semua objek tanpa memerhatikan asal dari objek sub class. Dan dengan polimorfisme kita dapat menggunakan objek dalam banyak operasi namun prosesnya bias jadi berbeda-beda

Contoh lain:

class SepakBola {
  public void showoff() {
    System.out.println(“Menangkan pertandingan”)
  }
}
class Penyerang extends SepakBola {
  public void showoff() {
    System.out.println(“Cetak GOL”);
  }
}
class Bek extends SepakBola {
  public void showoff() {
    System.out.println(“Jangan sampai GOL”);
  }
}
class Kiper extends SepakBola {
  public void showoff() {
    System.out.println(“Jaga gawang”);
  }
}
public class Tendangan {
  public static void main (String[] args) {
    SepakBola SB = new SepakBola();
    Penyerang P = new Penyerang();
    Bek B = new Bek();
    Kiper K = new Kiper()

    SB.showoff();

    SB = P;
    SB.showoff();
    SB = B;
    SB.showoff();
    SB = K;
    SB.showoff();
  }
}




Interface

23 01 2009

About interface:

  • Interface adalah kumpulan method-method tanpa implementasi bahkan tidak boleh mempunyai body >> {} >> abstract
  • Tujuan dibuat interface adalah untuk memaksa kelas-kelas yang mengimplementasikan interface tersebut melakukan overide method abstrak milik interface
  • Interface adalah semacam kelas abstract tetapi hanya boleh mempunyai anggota method abstract dan variabel konstan
  • Walaupun tidak dideklarasikan sebagai public abstract, interface selalu public abstract
  • Interface hanya dapat mendeinisikan konstanta
  • Interface biasa digunakan untuk standarasiasi method atau konstanta
  • Class yang mengextends interface dipaksa untuk mengoverride semua method dan definisi konstanta pada interface
  • Modifier yang digunakan hanya public atau tidak sama sekali. Jika tidak menggunakan modifier maka interface tersebut hanya dapat diakses dalam package yang sama
  • Semua method yang diimplemetasikan harus public
  • Jika kita tidak mengimplementasikan semua method yang ada pada interface, maka class tersebut harus dideklarasikan sebagai abstract class

Bentuk umum pendeklarasian interface:

interface <nama_interface> {
  // method tanpa definisi
  // definisi konstanta
}

Contoh:

interface Motor {
  int BBM = 4500;
  void starting();
  void stopping();
}

NB:

  • Secara eksplisit tanpa menuliskannya sebenarnya int BBM sudah mempunyai penentu public static final. Jadi tidak usah dituliskan
  • Secara eksplisit tanpa menuliskannya sebenarnya method strating dan stopinh sudah mempunyai penentu public abstract. Jadi tidak usah dituliskan

Interfacepun juga bisa diwariskan

Contoh:

interface Motor {
  int BBM = 4500;
  public void starting();
  public void stopping();
}
interface motorGede extends Motor{
  int harga = 20000000;
  public void service();
}

Penggunaan interface dengan keyword implements.

// Testing.java
interface HargaBBM {
  int harga = 4500;
  public void cetak();
}
class Berita implements hargaBBM() {
  private int hargaNOW = 5000;
  public void cetak() {
    if (this.hargaNOW == harga) {
      System.out.println(“Harga tetap”);
    }
    else {
      System.out.println(“Harga naik, DEMO!!!”);
    }
  }
}
class Testing {
  public static void main (String [] args) {
    Berita news = new Berita();
    News.cetak(); 
  }
}

Outputnya:
Harga naik, DEMO!!!