13
Farhat, ST., MMSI., MSc Pemrograman Berorientasi Objek Universitas Gunadarma PEMROGRAMAN BERORIENTASI OBJEK “ GUI ” Oleh : Farhat, ST, MMSI, MSc { Diolah dari berbagai Sumber }

PEMROGRAMAN BERORIENTASI OBJEK GUIfarhana.salim.staff.gunadarma.ac.id › Downloads › files › 62034 › M11++-+GUI.pdfPemrograman Berorientasi Objek Universitas Gunadarma Atomic

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    PEMROGRAMAN BERORIENTASI OBJEK

    “ GUI ”

    Oleh : Farhat, ST, MMSI, MSc

    { Diolah dari berbagai Sumber }

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    AWT (Abstract Window Toolkit)

    AWT (Abstract Window Toolkit) adalah sekumpulan dari aplikasi program antarmuka

    atau Application Program Interfaces(API) yang digunakan oleh para pemograman java untuk

    membuat objek Graphical User Interface (GUI) seperti Button, Scroll bars dan Windows.

    Merupakan fasilitas yang diberikan bahasa pemrograman Java untuk menangani tampilan

    antarmuka pengguna atau disebut GUI seperti objek button dan text field.

    AWT adalah tampilan dasar dari setiap target platform (Windows, Macintosh, Solaris) atau

    berdiri sesuai dengan mekanisme sebuah platform. AWT terdiri dari banyak widget grafik yang

    dapat ditambahkan dan diatur dalam tampilan seperti butons, checkbox, radiobutton, menu, list,

    canvas, textfield, scrollpane, panel.

    Kelebihan AWT : Didukung oleh browser kuno maupun baru, karena paket ini telah

    diimplementasikan sejak lama.

    Kekurangan AWT : Bersifat Heavyweight dan Opaque (tidak transparan)

    Berikut ini adalah daftar dari beberapa class penting pada container yang telah disediakan oleh

    AWT.

    1. Componen : Abstract class untuk object yang dapat di tampilkan pada console dan

    berinteraksi dengan user. Bagian ini merupakan bagian utama dari AWT.

    2. Container : Abstract Subclass dari kompanen class. Sebuah komponen yang dapat

    menampung komponen yang lainnya.

    3. Panel : Turunan dari container class. Sebuah frame atau windows tanpa titlebar, menubar,

    tidak termasuk border. Super class dari aplet class.

    4. Windows : turunan dari container class, top level windows dimana berarti tidak bisa

    dimasukan dalam object yang lainnya. Tidak memiliki border dan menu bar.

    5. Frame : turunan dari windows class. Windows dengan judul, border, menubar, dan

    pengaturan ukuran di pojok. Memiliki empat konstruktor, dua diantaranya seperti :

    Frame(), Frame(String title)

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    Untuk mengatur ukuran window, menggunakan method setSize.

    void setSize(int width, int height)

    mengubah ukuran komponen ini dengan width dan height sebagai parameter.

    void setSize(Dimension d)

    mengubah ukuran dengan d.width dan d.height berdasar pada spesifikasi Dimension d.

    Default dari window adalah not visible atau tak tampak hingga Anda

    mengatur visibility menjadi true. Inilah syntax untuk method setVisible.

    void setVisible(boolean b)

    Komponen-komponen AWT

    1. java.awt.Button : Tombol yang jika ditekan akan mengerjakan instruksi tertentu

    2. java.awt.CheckBox : Tombol berbentuk kotak yang dapat di-check atau n-check

    3. java.awt.Choice : Menu yang terdiri dari beberapa pilihan

    4. java.awt.Label : Untuk meletakkan teks statis dan tidak dapat diedit

    5. java.awt.List : Untuk menyajikan beberapa pilihan teks dalam satu daftar yang dapat di-

    scroll (gulung)

    6. java.awt.Panel : Menyediakan space untuk meletakkan komponen atau panel lainnya

    7. java.awt.Scrollbar : Untuk memilih nilai dalam range tertentu

    8. java.awt.TextArea : Untuk menampilkan teks multi-line dan dapat diedit.

    Berikut ini adalah contoh program sederhana menggunakan AWT:

    import java.awt.*;

    public class AwtPertama

    {

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    public static void main(String[] bowo)

    {Frame win=new Frame(" ini AWT");

    win.setSize(300,200);

    win.show();}

    }

    Pada program diatas dilakukan import terhadap java.awt.*, karena pada program diatas

    menggunakan komponen AWT. Untuk membentuk sebuah window, harus dibuat sebuah objek

    dari class Frame, program diatas objek win terbentuk dari class Frame. Sedangankan metode

    setSize, digunakan untuk mengatur ukuran window, dan metode show digunakan untuk

    menampilkan window.

    Adapun komponen GUI pada AWT : Grafik Beberapa method grafik ditemukan dalam class

    Graphic.

    Dibawah ini adalah daftar dari beberapa method.

    1. Drawline

    2. FillRect

    3. DrawRect

    4. ClearRect

    5. DrawPolyline

    6. DrawPolygon

    7. FillPolygon

    8. Getcolor

    9. Setcolor

    10. Getfont

    11. Setfont

    12. DrawString

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    LAYOUT MANAGER

    Layout adalah bagaimana kita mengatur posisi atau tata letak komponen yang berada di

    dalam sebuah tampilan. Layout di dalam pemrograman java dapat kita atur melalui Java

    Container seperti JFrame , JDialog, atau JPanel.

    Layout Manager digunakan dalam organisasi dari panel dan bingkai. Tata letak yang tetap

    seharusnya dipilih untuk mengakomodasikan, resizings frame dan penggunaan . Layout manager

    bertugas menyusun komponen-komponen(button, label, checkbox, dll) di dalam suatu container

    (panel, frame, dll) . Layout manager menentukan posisi danukuran setiap komponen di dalam

    container. Proses ini akan berbeda untuk setiap class layout yang digunakan. AWT dan Swing

    memiliki beberapa layout manager standar yang penggunaannya seringkali dikombinasikan

    sesuai situasi dan kebutuhan kita.

    Untuk mengubah Default Layout Manager setiap container memiliki default layout manager.

    Pada saat kita membuat sebuah container (misal: panel, frame, tabbed pane, split pane, dll), maka

    container tsb memiliki objek LayoutManager masing-masing.

    Kita dapat mengubah layout manager default tersebut dengan suatu layout yang baru dengan

    menggunakan method “setLayout()” .

    Macam-macam Standard Layout Manager terdiri dari:

    1. Flow Layout

    2. Grid Layout

    3. Border Layout

    4. Box Layout

    5. Card Layout

    6. GridBag Layout

    7. Spring Layout

    8. Group Layout

    Layout Manager merupakan komponen untuk mengatur posisi dari container. Secara

    default, terdapat 5 macam layout yaitu Class border layout, Box Layout, Flow Layout, Grid bad

    layout dan Grid layout.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    BorderLayout

    1. Menyusun komponen berdasarkan lokasi geografis: NORTH, SOUTH, EAST, WEST, and

    CENTER.

    2. Secara optional, kita dapat juga memberikan padding di antara komponen.

    3. BorderLayout merupakan layout default untuk JWindow dan JFrame.

    4. Karena setiap komponen diasosiasikan dengan suatu arah geografis, akibatnya layout ini

    hanya dapat menangani maksimal 5 komponen.

    FlowLayout

    1. Merupakan layout manager yang simpel.

    2. FlowLayout menyusun komponen berdasarkan ukuran default masing-masing, dengan posisi

    mulai dari kiri ke kanan dan dari atas ke bawah di dalam container yang digunakan.

    3. FlowLayout dapat memiliki “row justification”: LEFT, CENTER, atau RIGHT serta

    “padding” horizontal/vertical.

    4. Secara default, flow layout menggunakan justification CENTER. Artinya, semua komponen

    akan disimpan di posisi tengah-tengah.

    5. FlowLayout merupakan default untuk JPanel.

    CardLayout

    1. merupakan layout manager yang mampu menciptakan efek “tumpukan” komponen. Artinya,

    layout ini tidak memposisikan komponen di lokasi-lokasi tertentu di dalam kontainer,

    melainkan menampilkannya satu demi satu.

    2. Penggunaan CardLayout biasanya untuk membuat panel yang bersifat custom-tabbed.

    3. Namun, sebenarnya kita dapat membuat panel tersebut dengan menggunakan komponen

    JTabbedPane.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    BoxLayout

    1. Javax.swing memiliki beberapa tambahan layout manager lagi, salah satunya adalah:

    BoxLayout.

    2. Layout manager ini sangat berguna untuk membuat toolbars sederhana atau vertical button

    bars.

    3. Cara kerjanya sangat sederhana yaitu menempatkan komponen dalam satu baris atau satu

    kolom.

    4. Box memiliki beberapa methods yang akan mempermudah kita dalam menggunakan

    BoxLayout manager, yaitu:

    4.1 CreateHorizontalBox() - untuk membuat box horizontal

    4.2 createHorizontalGlue() - untuk merekatkan komponen

    4.3 createHorizontalStrut(int n) - untuk memberi jarak antar komponen

    4.4 createVerticalBox() - untuk membuat box vertical

    4.5 createVerticalGlue() - untuk merekatkan komponen

    4.6 createVerticalStrut(int n) - untuk memberi jarak antar komponen

    GridLayout

    1. menempatkan komponen dalam bentuk “rectangular grid”. Ada 3 constructor untuk

    GridLayout=

    2. GridLayout(): membuat layout dengan satu kolom per komponen.

    3. GridLayout(int rows, int cols): membuat suatu layout berdasarkan jumlah baris dan

    kolom yang diinginkan.

    4. GridLayout(int rows, int cols, int hgap, int vgap): membuat layout berdasarkan

    jumlah baris dan kolom yang diinginkan, serta ukuran jarak (gap) horisontal maupun

    vertical untuk setiap baris dan kolom tersebut.

    5. GridLayout menempatkan komponen dengan ur utan dari kiri ke kanan dan dari atas

    ke bawah.

    6. GridLayout akan memaksa setiap komponen untuk menempati space container yang

    kosong serta membagi rata ukuran space tersebut.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    GridBagLayout

    1. merupakan layaout manager yang sangat fleksibel.

    2. Layout ini memampukan kita untuk memposisikan komponen relatif terhadap komponen

    lainnya berdasarkan constraint tertentu.

    3. Dengan menggunakan GridBagLayout, kita dapat menciptakan layout apapun juga, tanpa

    batas.

    4. Komponen disusun pada koordinat tertentu pada sebuah grid yang disebut “logical

    coordinate”. Logical coordinate berarti bahwa koordinat suatu komponen ditentukan

    oleh sekumpulan komponen lainnya.

    5. Baris dan kolom dari grid tersebut bersifat “stretch” yang bergantung pada size dan

    constraint yang dimilikinya.

    SWING

    Swing merupakan salah satu cara untuk mengimplementasikan pemrograman window

    pada java. Swing menggunakan metode “Painted” yaitu, setiap User Interface Elemen di Gambar

    ke dalam window/frame kosong.

    Komponen swing bersifat lightweight, yaitu komponen dapat ditampilkan sama pada sistem

    operasi multi-platform. Semua komponen pada Swing diawali dengan huruf “J”, misalnya

    Jbutton, JtextArea, Jlabel

    Semua class pada Java Swing diambil dari package javax.swing.

    Swing Package :

    1.javax.accessibility

    2.javax.swing

    3.javax.swing.border

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    4.javax.swing.colorchooser

    5.javax.swing.event

    6.javax.swing.plaf

    7.javax.swing.plaf.basic

    8.javax.swing.plaf.metal

    9.javax.swing.plaf.multi

    10.javax.swing.plaf.synth

    11.javax.swing.text

    12.javax.swing.text.html

    13.javax.swing.text.rtf

    14.javax.swing.table

    15.javax.swing.tree

    16.javax.swing.undo

    Komponen-Komponen Swing

    Dalam konteks antarmuka pengguna, komponen merupakan bagian fundamental di Java. Pada

    prinsipnya, segala sesuatu yang kita lihat di tampilan aplikasi Java adalah suatu komponen,

    seperti window, menu, dan button. Container adalah jenis komponen yang ”menampung” dan

    mengelola komponenkomponen lainnya. Agar suatu komponen dapat digunakan, biasanya harus

    diletakkan di sebuah container.

    Komponen-komponen Swing dapat diklasifikasikan ke dalam 3 bagian yaitu:

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    Top Level Container

    Top Level Container merupakan container dasar dimana komponen-komponen lainnya

    diletakkan. Contohnya Frame, Dialog dan Applet yang diimplementasikan dalam kelas Jframe,

    Jdialog dan Japplet.

    a. Frame merupakan top-level- container dari komponen swing. Terdapat 2 cara untuk

    mengimplementasikan JFrame pada pemrograman swing java. Cara pertama dengan

    membuat objek dari class JFrame pada kelas yang mengimplementasikan GUI. Setelah objek

    JFrame dibentuk, komponen lain dapat ditambahkan. Cara kedua adalah dengan membuat

    sebuah class yang mengextends JFrame tersebut

    b. Dialog adalah Turunan dan korespondensi pada dialog class dalam package AWT. Biasanya

    digunakan untuk menginformasikan sesuatu kepada pengguna atau prompt pengguna untuk

    input.

    c. Applet adalah Turunan dan korepondensi ke Applet class dalam package AWT. Juga sedikit

    tidak cocok dengan applet class dalam kaitannya dengan menambahkan komponen pada

    kontainer.

    Intermediate Container

    Intermediate Container merupakan komponen perantara dimana komponen lainnya

    diletakkan. Salah satu contoh Container ini adalah Jpanel. JPanel merupakan container yang

    termasuk ke dalam content pane. Content pane merupakan tempat peletakan komponen swing

    seperti button, textfield dan komponen “swing control” lainnya. Komponen tersebut dapat

    diletakkan langsung ke dalam JFrame, tapi JFrame bertindak sebagai top-level- container, dan

    bukan content pane, sehingga lebih baik meletakkan komponen “swing control” pada JPanel dan

    bukan pada JFrame.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    Atomic Component

    Atomic Component merupakan komponen yang memiliki fungsi spesifik dan biasanya

    user berinteraksi langsung dengan komponen jenis ini. Contohnya adalah Jbutton, Jlabel,

    jtexfield dan jtextarea

    a. Button Merupakan komponen untuk membuat tombol. Kelas yang digunakan adalah JButton.

    Pada komponen ini, selain keterangan teks, dapat juga ditambahkan image/icon. Contoh

    pembuatan objek:

    JButton b2 = new JButton("Tombol B2");

    Atau:

    ImageIcon leftButtonIcon = createImageIcon("images/right.gif");

    JButton b1 = new JButton("Tombol B1", leftButtonIcon);

    Pada button dan menu dapat ditambahkan mnemonic. Mnemonic merupakan penggunaan tombol

    dengan menggunakan keyboard. Biasanya terdapat 1 huruf yang digunakan sebagai penanda

    yang berfungsi sama dengan menekan tombol.

    b. Label merupakan komponen untuk menghasilkan “unselectable” gambar dan teks. Pada label

    dapat diletakkan gambar (objek dari kelas ImageIcon) dan Teks (objek String). Parameter

    pada konstruktor dapat berisi text dan image saja atau dapat berisi keduanya ditambah posisi

    tampilan label tersebut.

    c. TextField adalah kelas yang berguna untuk menciptakan objek yang ditujukan untuk

    memasukkan data satu baris.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    PERBEDAAN ANTARA AWT DAN SWING

    AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat

    aplikasi Java dan applet. Tidak seperti beberapa komponen AWT yang menggunakan native

    code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan

    implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang

    berbeda dapat memiliki tampilan yang Sama.

    Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada

    dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang

    mengimplementasikan beberapa jenis bagian dari AWT. Namun pada dasarnya, komponen AWT

    dapat digunakan bersama dengan komponen Swing.

    Perbedaan keduanya adalah, bahwa AWT adalah tampilan dasar dari setiap target platform

    (Windows,Macintosh, Solaris) atau berdiri sesuai dengan mekanisme sebuah platform, hal

    tersebut bagus untuk sebuah program yang simpel, tetapi menjadi sulit ketika

    mengimplementasikan sebuah program yang lebih kompleks dan harus sesuai dengan target

    platform. Setiap User Interface elemen seperti Button, TextField, ScrollBar memiliki tingkah

    laku (behavior) yang berbeda di setiap platform. Yang lebih parah lagi, AWT User Interface

    Library memiliki bug yang berbeda di setiap platform.

    Maka hadirlah Swing yang menawarkan tampilan yang lebih kaya dan bagus. Swing tidak

    berdasarkan platform yang dituju tetapi menggunakan metode “Painted” yaitu, setiap User

    Interface Elemen di Gambar ke dalam window/frame kosong. Sehingga setiap User Interface

    Elemen akan tampil dan berprilaku sama di setiap platform.

    Sayangnya Swing lebih lambat tampil di layar. Dan ketika User Interface tampak sama di setiap

    platform, maka juga akan tampak berbeda untuk tampilan standar sebuah platform.

  • Farhat, ST., MMSI., MSc

    Pemrograman Berorientasi Objek Universitas Gunadarma

    Daftar Pustaka

    • Mariana, D & Paskarina, C. 2005., Peningkatan alokasi APBD – Membiayai Sektor Pendidikan. http://www.pikiran-

    rakyat.com. Diakses pada tanggal 10 Nopember 2010.

    • Millah, S., Meringankan Beban Pendidikan Rakyat Miskin, Mereka Tak Cuma Butuh Bantuan SPP. www.Google.co.id.

    Diakses pada tanggal 10 Nopember 2010.

    • Suharsaputra, U., 2007., Quality of Education. http://nalarekonomi.blogspot.com. Diakses pada tanggal 10 Nopember 2010.