Pages

Rabu, 07 Desember 2011

Konsep OOP & Awt

Pemrograman berorientasi objek (OOP) ialah sebuah metode pemrograman berbasiskan hirarki kelas-kelas dan melibatkan objek. Pemrograman Berorientasi Objek merupakan fitur utama pada Java dimana syarat utamanya kita harus membuat program berupa kelas . Sebuah kelas  ialah sebuah struktur yang mendefinisikan data dan method untuk bekerja pada data tersebut.  Ketika kita membuat program OOP di java, semua data diselubung oleh sebuah kelas. Berikut rumus umum dari OOP :

 //membuat objek dari suatu kelas menggunakan new
nama kelas  nama_objek = new nama_kelas
//memanggil method dari objeknya
nama_objek.nama_method();
//mengeset properties
nama_objek.nama_properties=value;


Kelas
Di dalam kelas kita mendeklarasikan berbagai variabel/properties dan method, contoh berikut menampilkan contoh dasar pembuatan kelas di java :

//deklarasi nama kelas StudInfo
class StudInfo {
//deklarasi variabel
   String name;
   String id;
   String classcode;
//deklarasi dan inisialisasi method printDetails()
   void printDetails() {
        System.out.println( name + " " + id + " " + classcode );
   }
//kelas utama StudentDetails
class StudentDetails {
     public static void main ( String args[] ) {

        // membuat objek bernama student dari kelas StudInfo
        StudInfo student = new StudInfo();

        // inisialisasi variable/properties objek dengan data
        student.name = "Johny Purwanto";
        student.id = "0208-0101-1001";
        student.classcode = "AD0101PT";
 // memanggil method printDetails untuk menampilkan data      
 student.printDetails();
}
}

Pada program diatas, kita menggunakan 2 kelas yaitu StudentInfo yang berisi variabel dan method siswa dan kelas StudentDetails yang berisi inisialisasi variabel dan pemanggilan fungsi printDetails, dengan terlebih dahulu membuat objek dengan nama student. Perlu diperhatikan di sini, ketika anda akan menyimpan nama sebuah file, maka wajib berikan nama file dari kelas yang ada fungsi main. Dari contoh diatas , kelas yang mempunyai fungsi main ialah kelas StudentDetails, oleh karena itu nama file yang tepat ialah StudentDetails.java.
Ketika program ini dijalankan ,hasilnya :

Johny Purwanto  0208 0101-1001 AD0101 PT



Inheritance

Untuk membuat kelas baru dari komponen kelas yang sudah ada, dapat kita gunakan turunan atau inheritance.  Di java kita menggunakan fungsi extends untuk menandakan suatu kelas ialah turunan dari kelas lain

//kelas Human ialah kelas yang akan diturunkan (base class atau super class)
class Human
{
    int hands = 2;
}
//kelas Employee ialah kelas turunan dari kelas Human (subclass)
class Employee extends Human {
     String name;
     double salary ;
//membuat konstruktor untuk inisialisasi
//idealnya untuk menginisialisasi variable kita gunakan konstruktor
Employee ( String n, double s ) {
          name = n;
          salary = s;
}
String getDetails()
{
         return "\nName : " + name + "\nSalary : " + salary;
}
}
//Kelas manager turunan dari kelas Employee
class Manager extends Employee
{
    String dept ;
   Manager ( String n, double s, String d ) {
    super(n,s);//memanggil konstruktor kelas atas (Employee)
           dept = d;
}
String getDetails()
{
    return  super.getDetails() + "\nDept : " + dept
                 + "\nHands : " + super.hands;}
 }
class SuperTestEmployee
{
public static void main ( String args[] )
{
Manager m1 = new Manager("Ginger", 1000.0, "Mgt");
          System.out.println(m1.getDetails());

          Manager m2 = new Manager ("Swee Lim", 2000.0,"Finance");
          System.out.println(m2.getDetails());

          Manager m3 = new Manager ("Su Kheng", 3000.0, "Sales");
          System.out.println(m3.getDetails());
}
}

Pada program diatas, kita membuat 3 buah kelas, yaitu kelas Human, Employee dan Manager . Untuk menginisialisasi variable idealnya kita menggunakan Konstruktor, dimana penulisannya harus sama dengan nama kelas. Jadi jika kelas bernama Employee , maka konstruktornya bernama Employee() atau terdiri dari beberapa parameter yang kita inginkan. Konstruktor yang tidak mempunyai parameter kita sebut sebagai default constructor. Penggunaan fungsi super untuk memanggil konstruktor dari kelas atas (base class). Jika kita membuat konstruktor dengan nama yang sama , namun berbeda isi parameternya, ini disebut sebagai overloading constructor

Contoh :
class Cload
{
String pname;
int qty;
int price;
//konstruktor dengan 3 parameter
Cload (int prodqty, String prodname, int prodprice )
{
pname=prodname;
qty=prodqty;
price=prodprice;
}
//konstruktor dengan 2 parameter bertipe int dan String
Cload (int q, String p1name) 
{
pname=p1name;
price=q;
qty=price/10; }
void print() {
System.out.println ("nama produk : " + pname);
System.out.println ("Kuantitas :" + qty);
System.out.println ("Harga: " + price);}
public static void main (String args[]) {
Cload prods;
prods = new Cload (10,"Apples", 10);
prods.print();
prods = new Cload (10,"Oranges");
prods.print();
}}

Program diatas akan menginisialisasi variable menggunakan konstruktor yang berbeda parameter  dan menampilkan datanya.

Pada program diatas terlihat kita bisa mengeset konstruktor dengan berbagai parameter, dan program otomatis akan mencari dan mengenal konstruktor mana  yang harus dicari sesuai dengan parameter yang kita berikan.
Di java, agar kita dapat menggunakan method pada berbgai kelas, namun implementasi method tersebut berbeda-beda, kita harus mendeklarasikan method tersebut di dalam kelas abstract. Contoh :

abstract class Bentuk {
public abstract float hitungluas();
}
public class Lingkaran extends Bentuk {
float radius;
public float hitungluas();
{
return radius *22/7;
}
}

Pada program diatas, kita memilih sebuah method abstrak yaitu hitungluas(), oleh karena itu di kelas Lingkaran yang merupakan turunan dari kelas Bentuk, dapat mendefinisikan isi method hitungluas() untuk lingkaran.  Tentu saja rumus luas untuk persegi panjang dan bidang lainnya berbeda, disinilah kelebihan penggunakan kelas abstrak. Sedangkan jika anda ingin suatu kelas tidak dapat diturunkan harus menggunakan keyword final.  Penggunaan final pada variable justru membuat variabel menjadi suatu konstanta.  Beberapa konsep OOP yang harus dipelajari Anda lebih jauh yaitu Polimorphisme, Interface dan method overriding.

Input Keyboard
Di Java,untuk menerima input dari keyboard pada  pemrograman java application harus menggunakan kelas BufferedReader dan InputStreamReader, berikut contohnya :

package aplikasijava;
import java.io.*; //menyertakan seluruh kelas  yang ada di dalam paket java.io
//nama kelas ContohWhile
public class ContohWhile
{
//buang error  menggunakan kelas IOException
 public static void main (String args[] ) throws IOException
{
//deklarasi variable
char ch;
//Tampilkan pilihan
System.out.print("\nSelect [F]oods [D]rinks [S]leeping [E]xit: ");
//terima input dan ditangani oleh kelas BufferedReader dan InputStreamReader
BufferedReader br = new BufferedReader (new InputStreamReader ( System.in));
//baca input dan masukkan ke str
String str = br.readLine();
//ambil karakter pertama
ch = str.charAt(0);
//selagi bukan “E” yang diinputkan oleh user
while ( ch != 'E') {    
switch (ch) {
//jika “F” maka tampilan pesan Makan
                   case 'F' :   System.out.println("Anda senang makan");
                                break;
                   case 'D' :   System.out.println("Anda suka minum");
                                break;
                   case 'S' :   System.out.println("Anda suka tidur");
                                break;
                   default  :   System.out.println("Anda golput" );
                                break;
}
System.out.print("\nSelect [F]oods [D]rinks [S]leeping [E]xit: ");
br = new BufferedReader (new InputStreamReader ( System.in));
str = br.readLine();
ch = str.charAt(0);
}
System.out.println("Selesai");
}
}

Kita menggunakan method readLine() untuk menerima input dari keyboard lalu ditampung oleh variabel str. Karena kita ingin mendeteksi karakter pertama saja untuk pengecekan kondisi menggunakan switch..case, maka kita gunakan method charAt(0) .


Mengenal  AWT

Aplikasi java dapat dibedakan menjadi 3 yaitu Java application , Java Applet dan servlet. Java application telah kita pelajari sebelumnya yang mana berjalan di command prompt dan bersifat text based, keculai aplikasi swing yang dapat mempunyai tampilan GUI.. Java Applet ialah aplikasi GUI yang berjalan di browser (IE,Netscape, Modzilla dan lain-lain ).  Sedangkan Java servlet ialah aplikasi yang berjalan di server. Pada awal kemunculan Java, java applet menjadi bahasa yang sangat popular untuk membuat situs web menjadi  lebih dinamis. Salah satu aplikasinya ialah  chatting , form input ke server dan tulisan yang bergerak bervariasi dengan warna-warni yang indah . materi AWT tetap diberikan di buku ini karena AWT masih tetap diperlukan dengan berbagai kelebihan dan kekurangannya di dalam pengembangan aplikasi web berbasiskan J2EE.
Abstract Windowing Toolkit (AWT) ialah sebuah API (Application Programming Interface) yang berfungsi untuk membuat aplkasi Graphical User Interface (GUI) yang merupakan bagian dari Java Foundation Classes (JFC). AWT menyertakan sekumpulan komponen untuk membangun grafik, event handling, perangkat gambar, layout manager dan mendukung arsitektur JavaBeans. Paket java.awt berisi seluruh kelas untuk membuat user interface dan gambar grafik serta image. Java applet mempunyai kemampuan untuk mencegah virus menempel di aplikasi kita, karena konsepnya ialah file.class (bytecode) itu diinterpretasi, bukan di eksekusi. Sehubungan dengan hal tersebut, beberapa batasan yang ada pada applet ialah :

  • applet tidak dapat membaca atau menulis system file
  • applet tidak dapat berkomunikasi dengan server lainnya
  • applet tidak dapat menjalankan program di sistem

Untuk membuat applet, dibutuhkan kelas-kelas yang mendukung berupa paket minimum yaitu java.awt.*  dan java.applet.* . Lambang * menandakan sertakan seluruh kelas  yang ada di dalam paket awt atau applet tersebut. Umumnya kelas untuk program applet merupakan turunan dari kelas Applet , yaitu bersumber dari paket java.applet.Applet.

Kelas Graphics
                Kelas graphics berisi method-method  untuk menggambar string, garis, segi empat dan bentuk lainnya.  Secara default java menggunakan koordinat yang umum yaitu sudut kiri atas monitor (0,0) dan semakin ke kanan nilai x semakin besar, begitujuga sumbu y semakin ke bawah nilainya semakin besar.  Untuk menggambar di layar, dibutuhkan graphics context yang berfungsi mirip dengan papan tulis tempat kita menulis /menggambar sesuatu. Kelas grafis ialah kelas abstract yang tidak bisa diinstankan. Tetapi sebuah  tipe kelas Graphics dapat didefinisikan menggunakan kelas Component. Kelas Component ialah superclass untuk seluruh kelas di awt yang mempunyai method paint dengan parameter sebuah objek Graphics sebagai argumen.  Objek ini akan dilewati ke method paint oleh system ketika operasi penggambaran terjadi untuk sebuah komponen,  deklarasinya sebagai berikut :

public void paint (Graphics g)

Method ini dipanggil otomatis ketika applet dieksekusi (setelah pemanggilan di method init dan start).  Untuk merefresh tampilan, digunakan method repaint() dan update() untuk membersihkan penggambaran sebelumnya sebagai berikut :

public void repaint()
public void update(Graphics g)

Applet mempunyai beberapa method yang umum digunakan yang tersimpan di kelas Applet. Berikut method tersebut :

init()        //dipangil ketika applet dimulai
start()     //dieksekusi setelah method init(), untuk menjalankan applet
stop()      // untuk memberhentikan applet yang sedang berjalan
destroy()// untk membebaskan memori yang ditempati oleh variable dan objek
paint()    // untuk menggambar, menulis dan membuat background.
repaint() //  untuk menggambar ulang applet , bisa menggunakan 4 parameter
                //untuk update bagian tertentu di applet supaya lebih cepat.




Program java applet yang telah jadi ditempelkan ke dalam dokumen html menggunakan tag <applet code=nama_applet.class></applet>, berikut contoh applet untuk  menampilkan pesan di browser pada posisi tertentu yang umumnya merupakan turunan dari kelas Applet :

import java.awt.*; //menyertakan paket awt
import java.applet.*; //menyertakan paket applet

//kelas Salam turunan(extends) dari kelas Applet
public class Salam extends Applet
Font f = new Font ("TimesRoman", Font.BOLD, 50);//set jenis font
String nama; //buat variabel nama dengan tipe data String
public void init() {  //tempat inisialisasi
nama=getParameter ("nama");
if (nama==null) //jika kosong
nama="Muhammad Subchan";//set nama
nama="Hai " + nama;
}
public void paint (Graphics g)
{
g.setFont (f);  /set applet dengan font
g.setColor(Color.green);//berwarna hijau
g.drawString(nama, 60,60);//tampilkan string di posisi 60,60
}
}

Setelah anda kompile di dos prompt menggunakan perintah javac Salam.java,  akan menghasilkan Salam.Class, masukkan kode penempelan applet menggunakan tag applet code sebagai berikut :

<html>
<head>
<title>Salam Applet </title>
</head>
<body bgcolor=pink>
<font color=blue><h3> Contoh Applet</h3></font>
<applet code ="Salam.class" width=300 height=200 CODEBASE="\j2se\ bin">
<align=top>
<param name=nama value="Iwan">
</applet>
</body>
</html>


Pada kode di atas, kita meload file Salam.class dengan lebar 300 dan tinggi 200. Codebase berfungsi untuk menentukan file .class pada suatu direktori, sebagai contoh file .class tersebut ada di folder \j2se\bin.  Pada kenyataanya kalau sudah diupload di web server, dengan memasukkan file html dan .class pada 1 direktori, kita tidak perlu menggunakan codebase ini. Param digunakan sebagai input di program java kita , agar kita bisa dengan mudah merubah nilai tanpa perlu mengkompile ulang program java kita.
Untuk menjalankannya jalankan file html tersebut seperti gambar . Tampilan tersebut akan menampilkan nama Iwan karena di dokumen html saya memasukkan nama Iwan, jika saya kosongkan nama tersebut, maka akan tampil nama Muhammad Subchan.

 APPLET adalah tag HTML yang digunakan untuk memasukan file java ke dalam dokumen HTML. Penggunaanya sama persis seperti tag EMBED yang digunakan untuk memasukkan konten multimedia ke dalam dokumen HTML. Untuk menampilkan file JAVA pada dokumen HTML, maka browser yang digunakan harus sudah terinstal plugin yang dapat mendukung file JAVA pada dokumen HTML
Sebagai contoh :


  1. <APPLET CODE="ColorBox" WIDTH=100 HEIGHT=100></APPLET>  


Tag diatas akan menghasilkan tampilan sebagai berikut :


Sama halnya dengan tag INPUT TYPE=RADIO atau INPUT TYPE=CHECKBOX, tag OPTION berguna untuk meminta inputan dari pengunjung yang disediakan dalam bentuk pilihan. Tentu saja, tag OPTION ini baru berguna apabila inputan data yang dimasukkan oleh pengunjung dikombinasikan dengan kode program yang dapat memroses inputan yang dimasukkan.
CODE
Atribut ini merupakan atribut yang paling penting dikarenakan atribut ini digunakan untuk menentukkan sumber dari file JAVA yang ingin ditampilkan. Atirbut ini digunakan hanya untuk menentukkan nama dari file JAVA yang dimaksud bukan untuk menuliskan alamat lengkap atau direktori dari sumber yang akan ditampilkan.

Perhatikan yang benar dan yang salah,

Salah


  1. <APPLET CODE="../File JAVA/klikbelajar.class" WIDTH=100 HEIGHT=100></APPLET>  

Benar
  1. <APPLET CODE="klikbelajar.class" WIDTH=100 HEIGHT=100></APPLET>  


Jika file JAVA tidak ditempatkan pada direktori yang sama dengan dokumen HTML yang dibuat, maka gunakan atribut CODEBASE untuk menentukkan direktori dari file JAVA yang dimaksud. Penggunaan atribut CODE hanya digunakan untuk menuliskan nama dari file JAVA tersebut.
CODEBASE
Atribut CODEBASE adalah atribut dari tag APPLET yang digunakan untuk menentukkan direktori dimana file JAVA yang ingin ditampilkan berada.
Contoh :

Apabila kita memiliki direktori sebagai berikut :
- Sumber
  - File JAVA
    - Klikbelajar.class
  - File HTML
    - Klikbelajar.html


Dapat dilihat, dokumen HTML yang dibuat diletakkan terpisah dengan file JAVA yang ingin ditampikan, maka dari itu harus ditentukan direktori dari file JAVA yang ingin ditampilkan dengan atribut CODEBASE.

Sebagai contoh :


  1. <APPLET  
  2. CODE="Klikbelajar.class"  
  3. CODEBASE="../File JAVA/" WIDTH=100 HEIGHT=100></APPLET>  

Arti dari kode CODEBASE="../File JAVA/" adalah :

Direktori yang dituju naik satu level ke atas (../). Pada contoh diatas, dokumen HTML yang dibuat berada pada direktori File HTML maka apabila digunakan perintah untuk menaikkan direktori satu level keatas, maka direktori akan berpindah ke direktori Sumber, dimana memiliki derajat satu level diatas direkori File HTML. Sedangkan, File JAVA/ artinya direktori masuk satu level ke dalam direktori yang bernama File JAVA.
WIDTH
Atribut ini digunakan untuk menentukan lebar dari file JAVA yang akan ditampilkan.

Contoh:


  1. <APPLET CODE="../File JAVA/klikbelajar.class" WIDTH=150 HEIGHT=50>  
  2. <br><PARAM NAME=TEXT VALUE="Pasti Bisa !!"><br></APPLET>  


Tinggi dari objek akan berukuran 150 pixel.
HEIGHT
Atribut ini digunakan untuk menentukan tinggi dari file JAVA yang akan ditampilkan.

Contoh:


  1. <APPLET CODE="../File JAVA/klikbelajar.class" WIDTH=50 HEIGHT=150>  
  2. <br><PARAM NAME=TEXT VALUE="Pasti Bisa !!"><br></APPLET>  

Tinggi dari objek akan berukuran 150 pixel.
ALIGN
Atribut ini digunakan untuk menentukan posisi dari objek.
Contoh :


  1. <APPLET CODE="ColorBox" WIDTH=100 HEIGHT=100 ALIGN="LEFT"></APPLET>  

Pada contoh diatas objek diatur agar rata ke kiri.
Contoh 2 :


  1. <APPLET CODE="ColorBox" WIDTH=100 HEIGHT=100 ALIGN="RIGHT"></APPLET>  

Pada contoh diatas objek diatur agar rata ke kanan.
VSPACE
Atribut ini digunakan untuk menentukan jarak file JAVA yang ditampilkan dengan teks di atas dan bawahnya.

Perhatikan contoh antara VSPACE=20 dan VSPACE=100, lihat perbedaannya :


  1. <APPLET CODE="klikbelajar.class" WIDTH=150 HEIGHT=50 VSPACE=20>  
  2. <br></APPLET>  



dan


  1. <APPLET CODE="klikbelajar.class" WIDTH=150 HEIGHT=50 VSPACE=100>  
  2. <br></APPLET>  


Sekarang terlihat bukan perbedaannya ??
HSPACE
Atribut ini digunakan untuk menentukan jarak file JAVA yang ditampilkan dengan teks di kanan dan kirinya.

Perhatikan contoh antara HSPACE=20 dan HSPACE=100, lihat perbedaannya :


  1. <APPLET CODE="klikbelajar.class" WIDTH=150 HEIGHT=50 HSPACE=20>  
  2. <br></APPLET>  

Klikbelajar.com Klikbelajar.com

dan


  1. <APPLET CODE="klikbelajar.class" WIDTH=150 HEIGHT=50 HSPACE=100>  
  2. <br></APPLET>  

Klikbelajar.com Klikbelajar.com

NAME
Atribut ini digunakan untuk memberikan nama dari file JAVA yang ditampilkan pada dokumen HTML. Atribut ini data sangat berguna apabila penggunaa tag APPLET pada dokumen HTML dikombinasikan dengan kode program lain seperti JAVASCRIPT.

sumber

Tutorial Java Applet

Ini sekedar share dari blog tetangga ......

silahkan download tutorial dasar-dasar applet