Rabu, 17 Oktober 2012

Pengertian GUI

Pengertian GUI

Kalau dilihat pengertian tentang GUI secara umum adalah Interaksi yang dapat dilaksanakan oleh user melalui menu dan icon yang diperlihatkan dalam modus grafik. Contoh implementasi GUI-based shell ini adalah pada sistem operasi Microsoft Windows.


Kesimpulan JAVA GUI (Graphical User Interface)

Selang hanya beberapa tahun, Java kini sudah mendukung dan dikerahkan di berbagai perangkat. Ada yang digunakan untuk mainframe, midrange server, PC, dan perangkat genggam. Bahkan ada sebuah kelompok yang sedang mengerjakan real-time embedded Java untuk aplikasi pengendalian.

Selain dari embedded environment sebagian besar pengembang Java membuat beberapa jenis user interface untuk aplikasi mereka. Untuk hal-hal seperti alat konfigurasi mereka buat sebuah antarmuka berupa baris perintah (command-line) dan sudah cukup bagus digunakan. Namun java juga mendukung aplikasi ke berbagai pengguna atau untuk aplikasi yang diperlukan untuk menampilkan data kepada antarmuka pengguna berbentuk grafis yang terbaik.

Java GUI mendukung pembangunan melalui Abstract Windowing Toolkit, atau AWT. AWT adalah Java yang setara dengan Microsoft Windows Common Control Library atau Motif widget toolkit. Ini termasuk pendukung untuk pemrograman grafik sederhana serta sejumlah komponen seperti tombol, menu, daftar, dan kelas check box.

Java AWT Dasar

Java AWT memungkinkan para pengembang untuk segera membangun applet dan aplikasi Java menggunakan sekelompok komponen antarmuka pengguna prebuilt. Sejumlah Java IDE yang tersedia mendukung pembuatan user interface menggunakan AWT dengan menyeret-dan-menjatuhkan komponen dari toolbar. Perlu dicatat bahwa sebenarnya IDE ini menghasilkan kode Java saat ditempelkan yang didasarkan pada apa yang Anda lakukan dalam lingkungan desain grafis.

Ini berbeda dengan toolsets seperti Microsoft Visual Basic yang memisahkan desain antarmuka pengguna dari kode aplikasi. Keuntungan dari pendekatan Java adalah bahwa Anda dapat mengedit GUI baik melalui grafis IDE atau dengan hanya memodifikasi kode Java dan mengkompilasi ulang.

Tiga langkah yang umum untuk semua aplikasi Java GUI adalah:

1. Pembentukan Container
2. Tata letak komponen GUI
3. Penanganan event.

Menciptakan Container
Objek Container ini sebenarnya berasal dari kelas java.awt. Container merupakan salah satu atau warisan dari tiga kelas utama:
java.awt.Window, java.awt.Panel, java.awt.ScrollPane.

Mewakili kelas Jendela jendela standalone (baik jendela aplikasi dalam bentuk java.awt.Frame, atau kotak dialog dalam bentuk java.awt.Dialog).

Java.awt.Panel class yang bukan standalone window dalam dan dari dirinya sendiri, melainkan bertindak sebagai wadah latar belakang untuk semua komponen lain pada formulir. Misalnya, kelas java.awt.Applet adalah keturunan langsung java.awt.Panel.

Laying Out GUI Components

Komponen GUI dapat diatur pada sebuah Container menggunakan salah satu dari dua metode. Metode pertama melibatkan posisi yang tepat (dengan piksel) dari komponen-komponen pada Container. Metode kedua melibatkan penggunaan Java Manajer Layout. Jika Anda berpikir tentang itu, hampir semua komponen GUI mengatur didasarkan pada baris-kolom. Dengan kata lain, tombol, kotak teks, dan daftar umumnya tidak terletak di acak seluruh formulir. Sebaliknya, mereka biasanya rapi diatur dalam baris atau kolom dengan tombol OK atau Batal diatur di bagian bawah atau di samping.

Manajer layout memungkinkan Anda dengan cepat menambahkan komponen dan kemudian mengatur secara otomatis. AWT menyediakan enam layout manajer untuk Anda gunakan:

* Java.awt.BorderLayout
* Java.awt.FlowLayout
* Java.awt.CardLayout
* Java.awt.GridLayout
* Java.awt.GridBagLayout
* Java.awt.BoxLayout

Kelas Container berisi metode setLayout () sehingga Anda dapat mengatur LayoutManager default yang akan digunakan oleh GUI Anda. Untuk benar-benar menambahkan komponen ke container, tambahkan () method:

Panel p = new java.awt.Panel();
Button b = new java.awt.Button(“OK”);
p.add(b);


Penanganan Events

penanganan Event telah berubah, karena Java 1.0 pertama kali dirilis pada tahun 1995. Awalnya, JDK 1.0.2 peristiwa ditangani aplikasi menggunakan model warisan. Sebuah wadah subclassed the action() dan handleEvent () sebagai metode induknya dan menangani aktivitas untuk semua komponen di dalamnya. Sebagai contoh, kode berikut akan mewakili event handler untuk sebuah panel yang berisi OK dan sebuah tombol Cancel:

public boolean handleEvent(java.awt.Event e)
{
if (e.id == java.awt.Event.ACTION_EVENT)
{
if (e.target == buttonOK)
{
buttonOKPressed();
}
else if (e.target == buttonCancel)
(
buttonCancelPressed();
)
}
return super.handleEvent(e);
}

Masalah dengan metode ini adalah bahwa peristiwa tidak dapat dikirimkan ke objek tertentu. Sebaliknya, mereka harus diarahkan melalui penangan yang universal yang meningkatkan kompleksitas dan karenanya melemahkan desain Anda.

Java 1,1 memperkenalkan konsep acara delegation model. Model ini memungkinkan kelas khusus, dikenal sebagai "kelas adaptor" yang akan dibangun untuk didaftarkan dengan komponen dan menangani peristiwa-peristiwa tertentu. Event delegation model menggunakan model-view controller pola yang memisahkan pandangan dari suatu komponen dari datanya. Dengan menggunakan model ini memerlukan tiga langkah sederhana:
  1. Mengimplementasikan antarmuka pendengar yang dikehendaki dalam kelas adaptor Anda. Tergantung pada peristiwa apa yang Anda tangani, sejumlah pendengar interface yang tersedia. Ini termasuk: ActionListener, WindowListener, MouseListener, MouseMotionListener, ComponentListener, FocusListener, dan ListSelectionListener.
  2. Daftar adaptor pendengar dengan komponen yang diinginkan. Hal ini bisa dalam bentuk addXXXListener () metode didukung oleh komponen. Contohnya termasuk addActionListener (), addMouseListener (), dan addFocusListener ().
  3. Mengimplementasikan metode antarmuka pendengar di kelas adaptor Anda. Dalam kode ini bahwa Anda akan benar-benar menangani acara.
Menggunakan model delegasi acara memungkinkan pengembang untuk memisahkan komponen tampilan (user interface) dari acara penanganan (data aplikasi) yang akan menghasilkan lebih bersih, lebih berorientasi objek desain.

Contoh membuat program menggunakan AWT

Perbedaan AWT dan Swing

AWT vs. Swing/JFC

o AWT
* Abstract Window Toolkit
* AWT memberikan beberapa komponen yang sederhana, tidak sebanyak Swing
* Memiliki beberapa masalah dalam pengimplementasiannya awal tahun 1996
* AWT menggambar/membuat interface dengan menggunakan “native peers” à pembuatan tombol AWT membuat hubungan yang sinkron dengan (Unix, Mac, Win 32) terhadap suatu screen,
* Keuntungan : aplikasi AWT memiliki penampilan yang asli/lugas (bawaan SO)
*
o Swing
* Juga disebut dengan JFC
* Di implementasikan oleh Java à seperti bytecode yang dapat berjalan ke semua platform
* Swing memiliki 10 kali lebih banyak class, dan kemampuan dibanding AWT
* Swing memiliki look-and-feel yang pluggable. Terlihat ketika pembuatan tombol


Ini contoh 1 program menggunakan AWT
hasil outputnya
 
 ini source kodenya 

package helloawt;

import java.awt.*;


public class HelloAWT extends Panel{
    HelloAWT () {
    setBackground (new Color(255,255,0));
    }
    public void paint(Graphics k ){
    k.fillRoundRect(10, 100, 200, 25, 20, 20);
    k.fillRoundRect(10, 100, 500, 25, 20, 20);
    k.setColor(Color.BLUE);
    k.setFont(new Font("Delius",Font.BOLD,24));//font face,type,font size
    k.drawString("Riki Saefulloh", 30, 125);// x,y
    k.drawString("RPL - 3", 400, 125);
   
    //Bulat
    k.setColor(Color.red);
    k.fillOval(50, 125, 400, 400);
    //Mata
    k.setColor(Color.green);
    k.fillOval(310, 250, 100, 25);
    k.fillOval(100, 250, 100, 25);
    //Bola Mata
    k.setColor(Color.gray);
    k.fillOval(340, 250, 50, 25);
    k.fillOval(130, 250, 50, 25);
   
    //k.drawLine(30, 100,100, 125); //x1,y1,x2,y2
    //mulut
    k.setColor(Color.white);
    k.fillArc(100, 300, 300, 100, 0, -180);
    Image gambar = Toolkit.getDefaultToolkit().getImage("sMokE gOod.gif");
    k.drawImage(gambar, 425, 450,150,80 ,this);
   
  
   
    //
    }
   
    public static void main(String[] args) {
     Frame f1 = new Frame();
     HelloAWT H = new HelloAWT();
     f1.add(H);
     f1.setSize(700, 600);
     f1.setVisible(true);
    }
}




Contoh 2
hasil outputnya :
ini Source kodenya :
/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package awt1;

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;


public class AWT1 extends Panel {
    AWT1 () {
        setBackground (new Color (255,255,255));
    }
   
    public void paint(Graphics u)
    {
       
    //Matahari
    u.setColor(Color.yellow);
    u.fillOval(500, 10, 80, 80);
   
    //Awan
    u.setColor(Color.blue);
    u.fillOval(20, 15, 70, 70);
    u.fillOval(50, 15, 70, 75);
    u.fillOval(100, 15, 70, 70);
   
    //Kotak Rumah
    u.setColor(Color.darkGray);
    u.fillRect(10, 300, 100, 150);
   
    //Pintu Rumah
    u.setColor(Color.LIGHT_GRAY);
    u.fillRect(50, 374, 50, 75);
    //Gagang Pintu
    u.setColor(Color.BLACK);
    u.fillOval(90, 400, 10, 15);
    //Atap
    u.setColor(Color.ORANGE);
    int x[] = new int[] {10,60,110};
    int y[] = new int [] {300,250,300};
    u.fillPolygon(x, y, 3);
   
    //Jalan
    u.setColor(Color.BLACK);
    int a[] = new int[] {100,600,350};
    int b[] = new int [] {450,270,450};
    u.fillPolygon(a, b, 3);
//    u.drawLine(100, 450, 600, 250);
//    u.drawLine(100, 550, 600, 350);
    //Garis Jalan
    u.setColor(Color.white);
    u.drawLine(270, 430, 300, 415);
     u.drawLine(320, 405, 350, 390);
     u.drawLine(370, 380, 420, 355);
     u.drawLine(440, 345, 490, 320);
    }
   
   
           

    public static void main(String[] args) {
     Frame f1 = new Frame();
     AWT1 H = new AWT1();
     f1.add(H);
     f1.setSize(650, 500);
     f1.setVisible(true);
       
    }
}
 

 
 
Semoga bermanfaat ^_^

Sabtu, 01 September 2012

Program Kalkulator Sederhana

Tampilan Programnya




Source kode nya :


disini ada 2 class:
1.Kalkulator_sederhana
2.proses

Source kode Kalkulator_sederhana
/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package kalkulator_sederhana;

/**
 *
 * @author riki
 */
import java.util.Scanner;
public class Kalkulator_sederhana {
   public static int input ()
   {
    Scanner dataIn = new Scanner(System.in); //digunakan untuk membuat variable menyimpan inputan user
    int hasil = 0 ;
    return hasil;
   }
   public static void input (int data)
     {
            int hasil = 0;                                                              //tipe data integer yang variabelnya hasil yang bernilai 0
            boolean Salah = false;                                                      //tipe data boolean yang variabelnya salah yang bernilai false(salah)
            Scanner dataIn = new Scanner(System.in);                                    //digunakan untuk membuat variable menyimpan inputan user

            System.out.println("Silahkan Masukan Bilangan Yang Akan Dihitung : ");      // untuk menampilkan ("masukan bilangan yang akan di hitung") pada saat di run
            String input = dataIn.nextLine();                                           // input di sini adalah inputan yang tadi di public static input()

            char charConvert[] = new char[input.length()];                             
            String stringConvert[] = new String[charConvert.length];
            //
            int r = 0;                                                                  //tipe data integer yang variabelnya M yang bernilai 0
            String blank = "";                                                          //tipe data String yang variabelnya blank yang masih kosong

            for(int i = 0;i < charConvert.length;i++)                                   //proses penggulangan(looping) tipe data integer yang variabelnya i, i = 0, i < charConvert[]; i++
            {                                                                           //awal pengulangan
                char tester = input.charAt(i);                                          //tipe data char yang variabelnya tester, dan tester ini dapat menyimpan data

                if (tester == '+' || tester == '-' || tester == '*' || tester == '/')
                {
                    r++;
                    blank = "";

                    charConvert[r] = input.charAt(i);
                    stringConvert[r] = String.valueOf(charConvert[r]);
                }
                    else if(tester == '0' || tester == '1' || tester == '2' || tester == '3' || tester == '4' || tester == '5' || tester == '6' || tester == '7' || tester == '8' || tester == '9')
                    {
                        charConvert[r] = input.charAt(i);
                        stringConvert[r] = blank + String.valueOf(charConvert[r]);
                        blank = stringConvert[r];

                        r--;
                    }
                    else if(tester == ' ')
                    {
                        continue;
                    }
                else
                {
                    System.out.println("Operator yang anda masukkan tidak tersedia    ");
                    System.out.println(tester);
                    Salah = true;
                    break;
                }

                r++;
            }
            //
            if(Salah != true)
            {
                hasil = Integer.parseInt(stringConvert[0]);
                //
                int operand = 0;

                for(int i = 1;i < stringConvert.length;i++)
                {
                    if((i % 2 == 1) && (charConvert[i] != ' '))
                    {
                        operand = Integer.parseInt(stringConvert[i+1]);

                        switch(charConvert[i])
                        {
                            case '+' : hasil = hasil + operand; break;
                            case '-' : hasil = hasil - operand; break;
                            case '*' : hasil = hasil * operand; break;
                            case '/' : hasil = hasil / operand; break;
                        }
                    }
                }
                System.out.println(hasil);
            }
        }
}


Source kode proses
 import kalkulator_sederhana.Kalkulator_sederhana;
/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */

/**
 *
 * @author riki
 */
public class proses {

    public static void main(String[] args)
    {
        int input;
        System.out.println(" PROGRAM KALKULATOR SEDERHANA ");
        input = Kalkulator_sederhana.input();
        Kalkulator_sederhana.input(input);
    }
}


Semoga bermanfaat ^_^
Terima Kasih
Download link :
http://www.ziddu.com/download/20244362/Kalkulator_sederhana.rar.html



Program Menentukan Bilangan Bulat dan Bilangan Pecahan

Tampilan Programnya (menggunakan NetBeans)

Source kode Programnya

Disini ada 2 Class,yaitu :
1.THR_Riki.class


/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */
package thr_riki;

import java.io.*;//untuk melakukan input dan output data dengan beberapa class
import java.util.*;

public class THR_Riki //mendeklarasikan class bernama THR_Riki
{
    /** Mendeklarasikan Variabel */
    public double [] bilangan = new double[100];
    public double [] bulat = new double[100];
    public double [] pecahan = new double[100];
    public int jml_bilangan = 0 ;
    /** Proses penginputan data */
        public void prosesInput()
        {
            Scanner baca = new Scanner(System.in);
            BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));//mendeklaraikam sebuah variabel bernama dataIn dengan tipe class buffereader
            //batasan pengulangan
            System.out.print("Jumlah bilangan yang akan dimasukan : ");//menentukan banyaknya bilangan yang akan dimasukan
            jml_bilangan = baca.nextInt();
         //data yg di input
            for(int i=1; i<=jml_bilangan; i++) //proses data yang akan di input
             {
               try
                {
                    System.out.print("Bilangan ke" +i+" : ");
                    bilangan[i] = Double.parseDouble(dataIn.readLine());
                }
                    catch(IOException e)
                    {
                        System.out.println("ERROR !! gagal membaca keyboard.");
                    }
            }
        }
/** Proses penyeleksian bilangan bulat dan bilangan pecahan */
    public void seleksi ()
    {
        for (int i=1; i<=jml_bilangan; i++)
        {
            if((bilangan[i] %2 != 0)&&(bilangan[i] %2 != 1)&&(bilangan[i] %2 != -1))
            {
                 //masukan bilangan ke pecahan
                 pecahan[i] = bilangan[i];
            }
                else
               {
                //masukan bilangan ke bulat
                bulat[i] = bilangan[i];
               }
        }
    }
 
/** Proses pengeluaran output*/
        public void tampil()
     {
        System.out.println("\n\nOutput");
        //output bilangan bulat
        System.out.print("Jumlah Bilangan bulat = ");
        int b = 0;
        for(int i=1; i<=jml_bilangan; i++)
        {
            if(bulat[i] != 0)
          {
            b++;
          }
        }
            System.out.print(" "+ b +" ");
            System.out.println(" ");
            //output bilangan pecahan
            System.out.print("Jumlah Bilangan pecahan = ");
            int p = 0;
            for(int i=1; i<=jml_bilangan; i++)
            {
                if(pecahan[i] != 0)
                {
                    p++;
                }
            }
                System.out.print(" "+ p +" ");
                System.out.println(" ");
    }

}


2.THR_Genap.class

import thr_riki.THR_Riki;

/*
 * To change this template, choose Tools | Templates and open the template in
 * the editor.
 */

/**
 *
 * @author riki
 */
public class THR_Genap
{

    public static void main(String [] args)
    {
        //pemanggilan
        THR_Riki lihat = new THR_Riki();
        lihat.prosesInput();
        lihat.seleksi();
        lihat.tampil();
    }

}


Semoga bermanfaat Programnya ^_^
Terima Kasih.
Download link here :
http://www.ziddu.com/download/20242984/THR_Riki.rar.html

Rabu, 29 Agustus 2012

Sejarah Singkat Java

Pada 1991, sekelompok insinyur Sun dipimpin oleh Patrick Naughton dan James
Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable
TV Box. Dikarenakan perangkat tersebut tidak memiliki banyak memori, bahasa
harus berukuran kecil dan mengandung kode yang liat. Juga karena manufakturmanufaktur
berbeda memilih processor yang berbeda pula, maka bahasa harus
bebas dari manufaktur manapun. Proyek diberi nama kode ”Green”.
Kebutuhan untuk fleksibilitas, kecil, liat dan kode yang netral terhadap platform
mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth,
pencipta bahasa Pascal telah merancang bahasa portabel yang menghasilkan
intermediate code untuk mesin hipotesis. Mesin ini sering disebut dengan mesin
maya (virtual machine). Kode ini kemudian dapat digunakan di sembarang mesin
yang memiliki interpreter. Proyek Green menggunakan mesin maya untuk mengatasi
isu utama tentang netral terhadap arsitektur mesin.
Karena orang–orang di proyek Green berbasis C++ dan bukan Pascal maka
kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi objek dan bukan
prosedural. Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling
yang mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya,
namun dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang
telah ada sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA
sendiri terinspirasi pada saat mereka sedang menikmati secangkir kopi di sebuah
kedai kopi yang kemudian dengan tidak sengaja salah satu dari mereka
menyebutkan kata JAVA yang mengandung arti asal bijih kopi. Akhirnya mereka
sepakat untuk memberikan nama bahasa pemrograman tersebut dengan nama Java.
J.E.N.I.
Pengenalan Pemrograman 1 2
Produk pertama proyek Green adalah Star 7 (*7), sebuah kendali jarak jauh yang
sangat cerdas. Dikarenakan pasar masih belum tertarik dengan produk konsumer
cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang
diciptakan. Pada saat yang sama, implementasi WWW dan Internet sedang
mengalami perkembangan pesat. Di lain pihak, anggota dari proyek Green juga
menyadari bahwa Java dapat digunakan pada pemrograman internet, sehingga
penerapan selanjutnya mengarah menjadi teknologi yang berperan di web.
Java telah mengakomodasi hampir seluruh fitur penting bahasa–bahasa
pemrograman yang ada semenjak perkembangan komputasi modern manusia :
1. Dari SIMULA, bahasa pada tahun 65-an, bahasa yang paling mempengaruhi
Java sekaligus C++. Dari bahasa ini diadopsi bentukan–bentukan dasar dari
pemrograman berorientasi objek.
2. Dari LISP – bahasa tahun 55-an. Diadopsi fasilitas garbage collection, serta
kemampuan untuk meniru generic list processing, meski fasilitas ini jarang
yang memanfaatkannya.
3. Dari Algol – bahasa pada tahun 60-an, diambil struktur kendali yang
dimilikinya.
4. Dari C++, diadopsi sintaks, sebagian semantiks dan exception handling
5. Dari bahasa Ada, diambil strongly type, dan exception handling.
6. Dari Objective C, diambil fasilitas interface.
7. Dari bahasa SmallTalk, diambil pendekatan single-root class hiérarchie,
dimana object adalah satu kesatuan hirarki pewarisan
8. Dari bahasa Eiffel, fasilitas assertion yang mulai diterapkan di sebagian JDK

Memulai belajar Java

Program komputer adalah rangkaian instruksi yang diberikan agar komputer dapat bekerja. Suatu pekerjaan yang mungkin sederhana bagi manusia tidak dapat dimengerti oleh komputer. Manusia harus memberikan petunjuk kepada komputer bagaimana melakukan suatutugas dalam bentuk bahasa pemrograman. Bahasa pemrograman berbeda dengan bahasa manusia, karena komputer membutuhkan aturan yang lebih baku apa yang boleh dan apa yang tidak boleh dalam suatu bahasa pemrograman. Aturan ini disebut sintaks bahasa.
Sintaks bahasa pemrograman ditentukan berdasarkan apa yang bisa dilakukan oleh komputer, misalnya loop (perulangan), cabang (branch), atau fungsi. Hanya program dengan sintaks yang benar yang dapat dikompilasi atau diinterpretasi yang pada akhirnya bisa dijalankan di komputer. Kompiler akan memberikan pesan kesalahan apabila ada kesalahan dalam sintaks sehingga kita memperbaikinya.
Untuk menjadi programmer yang sukses, kita harus mengerti secara detail sintaks dari bahasa pemrograman yang kita akan gunakan. Tetapi, sintaks hanya sebagian cerita. Kita ingin program yang kita buat berjalan sesuai dengan yang kita inginkan. Artinya program tersebut harus benar secara logika. Program yang benar secara logika disebut memiliki semantik yang benar.
Di situs ini kita akan mempelajari tentang sintaks dan semantik dari dari setiap bahasa pemrograman Java. Sintaks mudah dihafal, tetapi semantik lebih seperti perasaan. Untuk itu, coba download dan jalankan contoh-contoh program sehingga kita dapat memahami bagaimana setiap program bekerja.