Makalah Unindra : Pemrograman Visual





PENGENALAN EVENT, JENIS EVENT
DAN
ACTIONLISTENER





     Tugas mata kuliah        : Pemrograman Visual
                  Dosen                             : Nahot Frastian, S.Kom, M.Kom

Disusun Oleh:
1.      Ahmad Arfani             : 201343500089
2.      Nurohman                   : 201343500091
3.      Hafid Suryansyah       :
                                   
FAKULTAS TEKNIK, MATEMATIKA &  ILMU PENGETAHUAN ALAM  (FTMIPA)
PROGRAM STUDI TEKNIK INFORMATIKA
UNIVERSITAS INDRAPASTA PGRI
JAKARTA
                                                                           2016


KATA PENGANTAR

Puji dan syukur kehadirat Tuhan Yang Maha Kuasa atas segala rahmat yang diberikan-Nya sehingga tugas Makalah yang berjudul “PENGENALAN EVENT, JENIS EVENT DAN ACTIONLISTENER” ini dapat kami selesaikan. Makalah ini kami buat sebagai kewajiban untuk memenuhi tugas.

Dalam kesempatan ini, kami menghaturkan terimakasih yang dalam kepada semua pihak yang telah membantu menyumbangkan ide dan pikiran mereka demi terwujudnya makalah ini. Akhirnya saran dan kritik pembaca yang dimaksud untuk mewujudkan kesempurnaan makalah ini penulis sangat hargai.
                                                                                                                                   
Kelompok 10


DAFTAR ISI



i.        Kata Pengantar
ii.      Daftar Isi
I.                    Pendahuluan
Latar Belakang
Maksud dan Tujuan
Batasan Masalah
II.                 Landasan Teori
Pengertian
Sejarah
Kelebihan
Kekurangan
GUI
Komponen GUI pada AWT
Komponen GUI pada Swing
EventListener
III.              Program
Event / Program SoalTujuh
Program ActionListener
IV.              Penutup     
Daftar Pustaka




PENDAHULUAN
1.1. Latar Belakang
Perkembangan teknologi yang sangat cepat di zaman sekarang mendorong banyak orang untuk lebih berkreasi dalam menciptakan hal-hal yang baru, inovatif dan efisien dalam mengerjakan berbagai hal dalam bidang apapun. Agar segala sesuatunya bisa cepat, tepat dan mudah. Hal tersebut semata-mata untuk mempermudah kinerja, efektivitas dan waktu bagi kita sebagai pengguna teknologi karena dalam semua aspek, teknologi dibutuhkan untuk zaman ini. Pada percobaan kali ini kami akan mencoba membuat sebuah aplikasi Java tentang Event dan ActionListener dengan menggunakan Blue J


1.2. Maksud dan Tujuan

1.      Adapun maksud dalam pembuatan aplikasi ini untuk memenuhi salah satu tugas mata kuliah “Pemrograman Visual” selain itu juga agar menambah wawasan dan kemampuan kami dalam bidang aplikasi Java.
2.      Tujuan dari pembuatan aplikasi ini untuk mengimplementasikan aplikasi tersebut dengan menggunakan Blue J , sebagai saran belajar mata kuliah Pemrograman Visual

1.3. Batasan Masalah

Pada pembuatan laporan ini, kami membatasi masalahnya sebagai berikut :
1.      Dapat memahami tentang Event dan proses ActionListener
2.      Dapat menyusun script untuk program sederhana dengan menggunakan Event dan ActionListener
1.4.Sistematika Penulisan Laporan Laporan tugas ini dibuat dengan sistem penulisan sebagai berikut :
1.      BAB I PENDAHULUAN, berisi permasalahan dari ini.
2.      BAB II LANDASAN TEORI, berisi teori-teori yang akan dipergunakan dalam membuat aplikasi pada laporan ini.
3.      BAB III PROGRAM, berupa hasil dari percobaan dan proses pembuatan aplikasi yang menggunakan event dan ActionListener
4.      BAB IV PENUTUP

BAB II
LANDASAN TEORI


2.1.      Pengertian Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.

2.2.      Sejarah perkembangan Java

Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, dan James Gosling, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star Seven).
Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah ruangan kantor di 100 Hamilton Avenue, Palo Alto. Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.
Pada sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury News pada tanggal 23 Mei 1995.
Sayang terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).

2.3.      Versi awal

Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
a.       java.lang : Peruntukan kelas elemen-elemen dasar.
b.      java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas
c.       java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
d.      java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
e.       java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
f.        java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

2.4.      Kelebihan

a.       Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan.
b.      OOP (Object Oriented Programming - Pemrogram Berorientasi Objek)
c.       Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan library/perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi.
d.      Bergaya C++, memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer.
e.       Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
2.5.      Kekurangan

a.       Tulis sekali, jalankan di mana saja - Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X.
b.      Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
c.       Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun.

2.6.      GUI

GUI adalah singkatan dari Graphical User Interface. GUI merupakan desain aplikasi dengan tampilan visual sehingga pengguna dapat dengan mudah menggunakan aplikasi. The Java Foundation Class (JFC),merupakan bagian penting dari Java SDK, yang termasuk dalam koleksi dari API dimana dapatmempermudah pengembangan aplikasi JAVA GUI. JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya dari API adalah Java2D, Accessibility, dan Drag dan Drop.Semua itu membantu pengembang dalam mendesain dan mengimplementasikan aplikasi visual yang
lebih baik.AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan applet. Anda akan mempelajari applet pada bab berikutnya. 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. Kesimpulannya, komponen AWT dapat digunakan bersama-sama dengan komponen Swing. Nama dari komponen GUI milik Swing hampir sama persis dengan komponen GUI milik AWT. Perbedaan jelas terdapat pada penamaan komponen. Pada dasarnya, nama komponen Swing sama dengan nama komponen AWT tetapi dengan tambahan huruf J pada prefixnya. Sebagai contoh, satu komponen dalam AWT adalah Button class. Sedangkan pada Swing, nama komponen tersebut menjadi JButton class.

2.7.      Komponen GUI pada AWT
Pembagian komponen GUI pada AWT (di dalam paket java.awt) dapat dilihat pada gambar di bawah.

Berikut ini adalah daftar dari beberapa kelas penting pada kontainer yang telah disediakan oleh AWT.
1.      Component : Abstract Class untuk objek yang dapat ditampilkan pada console dan berinteraksi dengan user. Bagian utama dari semua kelas AWT.
2.      Container : Abstract Subclass dari Component Class. Sebuah komponen yang dapat menampung komponen yang lainnya.
3.      Panel : Turunan dari Container Class. Sebuah frame atau window tanpa titlebar, menubar tidak termasuk border. Superclass dari applet class.
4.      Window : Turunan dari Container class. Top level window, dimana berarti tidak bisa dimasukkan dalam objek yang lainnya.Tidak memiliki border dan menubar.
5.      Frame : Turunan dari window class. Window dengan judul, menubar, border dan pengatur ukura di pojok. Memiliki empat konstruktor , dua diantaranya memiliki penulisan seperti dibawah ini:
Frame()
Frame(String title)
Untuk mengatur ukuran window, menggunakan metode 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 metode setVisible.
void setVisible(boolean b)
2.8.      Komponen GUI pada Swing

Komponen GUI pada Swing terdapat dalam paket javax.swing. Berikut adalah daftar dari beberapa
komponen Swing:
1.      JComponent : Kelas induk untuk semua komponen Swing, tidak termasuk top-level Container
2.      JFrame : Turunan dan korepondensi pada frame class dalam package AWT tetapi keduanya sedikit
3.      tidak cocok dalam kaitannya dengan menambahkan komponen pada kontainer. Perlu mendapatkan content pane yang terbaru sebelum menambah sebuah komponen.
4.      JPanel : Turunan Jcomponent. Kontainer class sederhana tetapi bukan top-level.
5.      JApplet : Turunan dan korepondensi ke Applet class dalam package AWT. Juga sedikit tidak cocok dengan applet class dalam kaitannya dengan menambahkan komponen pada container
6.      JButton : Tombol “push”. JButton adalah komponen berbentuk tombol. Komponen ini banyak
digunakan sebagai eksekusi terhadap tindakan yang diinginkan. Pada aplikasi komputer, biasanya dibutuhkan tombol untuk mengeksekusi sebuah perintah.
7.      JLabel : komponen yang digunakan untuk membuat tulisan atau gambar pada frame sebagai suatu informasi untuk pengguna program.
8.      JTextField : komponen yang digunakan untuk memasukkan sebaris string yang selanjutnya dapat digunakan sebagai input bagi proses selanjutnya.
9.      JTextArea : komponen yang mirip dengan JTextField tetapi dapat menampung lebih dari 1 baris.
10.  JCheckBox : komponen yang digunakan ketika pengguna memerlukan komponen untuk melakukan satu atau banyak pilihan sekaligus .
11.  JRadioButton : komponen yang digunakan ketika pengguna perlu memilih satu diantara beberapa pilihan
12.  JComboBox : komponen yang digunakan untuk memilih satu diantara sekian banyak pilihan yang
berbentuk semacam TextField dan ada panah ke bawah.
13.  JFileChooser : Mengijinkan pengguna untuk memilih sebuah file.
14.  JColorChooser : Turunan Jcomponent. Mengijinkan pengguna untuk memilih warna.
15.  JTable : digunakan untuk menampilkan data dalam bentuk tabel (biasanya dalam database).
16.  JScrollPane : komponen yang digunakan untuk menggerakkan obyek ke atas, ke bawah, atau ke
samping agar semua obyek terlihat di layar.
17.  JMenu : komponen yang digunakan untuk membuat menu.
18.  JInternalFrame : frame yang hanya dapat berada dalam frame lain.
19.  JOptionPane : Turunan Jcomponent. Disediakan untuk mempermudah menampilkan popup kotak dialog.
20.  JDialog : Turunan dan korespondensi pada dialog class dalam package AWT. Biasanya digunakan
untuk menginformasikan sesuatu kepada pengguna atau prompt pengguna untuk input.
21.  Pembagian komponen GUI pada Swing dapat dilihat pada gambar di bawah.






Pengaturan layout digunakan untuk mengatur posisi dari komponen visual penyusun program sesuai dengan desain user interface. Beberapa pilihan layout telah disediakan java, dimana keputusan untuk menggunakan jenis layout tertentu bergantung pada jenis aplikasi yang ingin dibuat serta tingkat kerapian yang diinginkan.

Berikut beberapa layout manager yang terdapat di dalam Java:
1.      FlowLayout : jenis pengaturan layout yang paling sederhana, dimana semua komponen akan
tersusun dari kiri ke kanan sepanjang frame, dan akan pindah ke bawah bila telah sampai batas
kanan frame. Default pada java.awt.
2.      BorderLayout : jenis layout yang bekerja dengan membagi frame menjadi lima bagian yaitu NORTH,
EAST, SOUTH, WEST dan CENTER. Komponen visual dapat diletakkan pada bagian-bagian tersebut.
3.      NoneLayout : jenis layout yang dapat menghasilkan tampilan yang rapi karena kita dapat mengatur posisi komponen secara detil berdasar koordinatnya.
Konsekuensinya dengan layout ini waktu yang diperlukan relatif lebih banyak dibanding layout yang lain karena kita perlu menentukan posisi koordinat tiap komponen.
1.      GridLayout : jenis layout yang bekerja berdasar baris dan kolom. Dengan layout ini kita dapat
2.      memberikan argumen banyaknya baris dan kolom sesuai dengan kebutuhan.
3.      GridBagLayout : ukuran grid bisa berubah, lebih dari satu komponen bisa masuk pada satu grid.
4.      CardLayout : komponen ditimpa seperti kartu, hanya satu komponen yg nampak pada satu waktu.
5.      BoxLayout : Komponen disusun kiri-kanan atau atas-bawah.

Layout manager dapat diatur menggunakan metode setLayout dari Container class. Metode ini dapat ditulis sebagai berikut.
void setLayout(LayoutManager mgr)
Jika Anda memilih untuk tidak menggunakan layout manager, Anda dapat mengisi null sebagai argumen
untuk metode ini. Tetapi selanjutnya, Anda akan mengatur posisi elemen secara manual dengan
menggunakan metode setBounds dari Components class.
public void setBounds(int x, int y, int width, int height)
Metode ini mengatur posisi berdasarkan pada argumen x dan y, dan ukuran berdasarkan argument width dan height. Hal ini akan cukup menyulitkan dan membosankan untuk aplikasi jika Anda memiliki beberapa objek komponen didalam objek kontainer. Anda akan memanggil metode ini untuk setiap komponen.
Java menggunakan delegation event model untuk mengendalikan peristiwa (event). Pada model ini terdapat:
a.       Event source (sumber peristiwa) : mengacu pada komponen GUI yang menghasilkan event.
Event Source adalah komponen yang mendapatkan suatu event yang kemudian ditangkap oleh Event Listener. Event Source dapat dibedakan dari penamaan komponen itu sendiri, misalnya tombolSimpan, tombolhapus, dan lainnya. Dengan penamaan Event Source ini, Sebuah Event Listener akan dapat mendeteksi dari mana Event Listener tersebut berasal. Jadi, Event source adalah suatu objek yang membangkitkan event. Sebagai contoh, pada saat user melakukan klik terhadap objek button, maka button dianggap sebagai event source.

Event source harus mendaftarkan listener. Hal ini dilakukan agar listener dapat atau mampu mendengarkan dan menproses event-event yang terjadi pada objek bersangkutan. Untuk mendaftarkan listener ke dalam event source, kita harus menggunakan bentuk umum sebagai berikut :

Public void addTypeListener (TypeListener eventListener)

Dalam hal ini, Type adalah event yang terjadi. Sebagai contoh, method yang digunakan untuk mendaftarkan listener yang berkaitan dengan keyboard akan dinamakan dengan addKeyListener(). Begitu pula untuk mendaftarkan listener yang berkaitan dengan mouse, methodnya akan dinamakn dengan addMouseMotionListener().

Listener yang sudah didaftarkan ke dalam event source dapat dipindahkan dengan menggunakan bentuk umum berikut :

Public void removeTypeListener(TypeListener eventListener)

Type menunjukkan tipe event yang terjadi pada objek yang berperan sebagai event source.
 Contoh: jika pengguna menekan button, maka event sourcenya adalah button.


b.      Event listener/event handler (pendengar peristiwa) : objek yang mendengar peristiwa dan melakukan tindakan terhadap peristiwa tersebut.
Contoh: ketika button ditekan, listener akan mengendalikan dengan handler yang sesuai.
c.       Event object Ketika sebuah event terjadi (misal ketika user berinteraksi dengan komponen GUI), sebuah objek event diciptakan. Objek berisi senua informasi yang perlu tentang event yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user action.  Sebuah event object mempunyai tipe data tentang salah satu dari class ini.




2.9.Event Handler merupakan method yang menerima event object dan melakukan respond  yang sesuai dengan event object tersebut.

Langkah-langkah membuat aplikasi yang dapat menghandel event:

1.      Menyediakan program sebagai event listener. Contoh:
import java.awt.event.*;
public class NamaClass implements ActionListener {
2.      Mendaftarkan komponen pada event listener. Contoh:
someComponent.addActionListener (instanceOfNamaClass)
3.      Melakukan tindakan terhadap event dari pengguna. Contoh:
public void actionPerformed (ActionEvent e){
… //kode yang mengakomodasi aksi dari pengguna}
4.      Implementasi program dengan inner class, contoh:
addMouseMotionListener(new MyMouseMotionListener());
class MyMouseMotionListener extends MouseAdapter {
public void mouseDragged(MouseEvent e) {
}
}
5.      Implementasi program dengan anonymous inner class, contoh:
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e) {
...
}
6.      }); // tutup dengan titik koma


Kategori
Name Interface
Method

Action

Item

Mouse





Mouse Motion



Key



Focus



Adjustment

Component




Window






Container


Text
ActionListener

ItemListener

MouseListener





MouseMotionListener



KeyListener



FocusListener



AdjustmentListener

ComponentListener




WindowListener






ContainerListener


TextListener

actionPerformed(ActionEvent)

itemStateChanged(ItemEvent)

mousePressed(MouseEvent)
mouseReleased(MouseEvenr)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mouseClicked(MouseEvent)

mouseDragged(MouseEvent)
mouseMoved(MouseEvent)


keyPressed(KeyEvent)
keyReleased(KeyEvent)
keyTyped(KeyEvent)

focusGained(FocusEvent)
focusLost(FocusEvenr)


adjustmentValueChanged(AdjustmentEvent)

componentMoved(ComponentEvent)
componentHidden(ComponentEvent)
componentResized(ComponentEvent)
componentShown(ComponentEvent)

windowClosing(WindowEvent)
windowOpened(WindowEvent)
windowIconified(WindowEvent)
windowDeiconified (WindowEvent)
windowClosed(WindowEvent)
windowActivated(WindowEvent)
windowDeactivated (WindowEvent)
componentAdded(ContainerEvent)
componentRemoved(ContainerEvent)

textValueChanged(TextEvent)







Tabel berikut ini akan menunjukkan beberapa event penting :

ActionEvent
Dibangkitkan pada saat objek button diklik, item didalam list di-double click, maupun item menu dipilih.
AdjustmentEvent
Dibangkitkan pada saat objek scrollbar dimanipulasi
ComponentEvent
Dibangkitkan pada saat suatu komponen disembunyikan, dipindahkan, diubah ukurannya, maupun diset ke keaadaan visible
ContainerEvent
Dibangkitkan pada suatu saat komponen ditambahkan/dipindahkan ke/dari sebuah container
FocusEvent
Dibangkitkan pada saat suatu komponen memperoleh kehilangan fokus keyboard
InputEvent
Kelas induk (berupa kelas abstrak) dari semua kelas yang termasuk ke dalam event input.
ItemEvent
Dibangkitkan pada saat sebuah item dala list atau checkbox di-click, juga terjadi pada saat item-nya di-buat, dan pada saat item menu di-check maupun di uncheck
KeyEvent
Dibangkitkan pada saat input dilakkan melalui keyboard.
MouseEvent
Dibangkitkan pada saat mouse didrag, dipindahkan, di click, ditekan, maupun dilepas. Juga terjadi pada saat mouse memasuki atau keluar dari suatu komponen.
TextEvent
Dibangkitkan pada saat text yang berada dalam komponen text area atau text field diubah
WindowEvent
Dibangkitkan pada saat window atau form diaktivasi, ditutup, di-minimize, di-maximize, dibuka, atau dikeluarkan.



Rangkain User Action, Source Object., dan Tipe Event

User Action
Source Object
Tipe Event
Mengklik suatu button
Jbutton
ActionEvent
Mengubah text
JtextComponent
TextEvent
Menekan tombol enter pada suatu komponen text field
JtextField
ActionEvent
Memilih suatu event baru
JcomboBox
ItemEvent, ActionEvent
Memilih satu atau atau banyak item
Jlist
ListSelectionEvent
Memilih suatu check box
JcheckBox
ItemEvent, ActionEvent
Memilih suatu radio button
JRadioButton
ItemEvent, ActionEvent
Memilih suatu item menu
JmenuItem
ActionEvent
Menggerakkan scroll bar
JscrollBar
AdjustmentEvent
Window terbuka, tertutup, diberi icon dilepaskan, atau window menutup.
Window
WindowEvent
Komponen ditambahkan atau dibuang dari kontainer
Container
ContainerEvent
Komponen digerakkan, di resize, disembunyikan (hidden), atau ditampilkan
Component
ComponentEvent
Komponen seketika menjadi fokus atau kehilangan fokus
Component
FocusEvent
Key ditekan atau dilepaskan
Component
KeyEvent
Mouse ditekan, dilepaskan, diklik, atau ketika mouse memasuki atau keluar dari suatu komponen.
Component
MouseEvent
Mouse digerakkan atau di-drag
Component
MouseEvent








BAB III
PROGRAM

1.      Program 1 ( Event )

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.color.*;

public class tugaskelompok10 extends JFrame implements ActionListener
{

Container konten;
                                                                                     /** Deklarasi dan inisialisasi JButton*/
private JLabel lbljudul= new JLabel("Data Anggota Kelompok 10");
private JButton btnarfani = new JButton("arfani");   /** untuk membuat tombol  */
private JButton btnnurohman = new JButton("nurohman"); 
private JButton btnhafidz = new JButton("hafidz");     
   
                                                                                    /** Membuat Konstruktor */
public tugaskelompok10()
{
 super("Tugas Kelompok 10");                            /** komen nama Frame*/
 setVisible(true);                                                  /** untuk memunculkan frame              */
 setSize(300,250);                                           /** untuk menentukan panjang lebar Frame */
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /**untuk menutup program              */
 setLocationRelativeTo(null);                        /** membuat frame muncul ditengah layar  */
 konten = getContentPane();

 konten.setLayout(null);
       
        lbljudul.setBounds(60,20,200,30);
        lbljudul.setForeground(Color.blue);                 /** memberi warna pada font*/
        konten.add(lbljudul);

        btnarfani.setBounds(100,60,100,30);                 /** untuk menentukan posisi tombol             */
        konten.add(btnarfani);                              /** untuk menentukan parameter dari tombol     */
        btnarfani.setForeground(Color.red);                 /** memberi warna pada font                     */
        btnarfani.setBackground(Color.green);               /** memberi warna pada button                   */
        btnarfani.addActionListener(this);             /** untuk menambahkan event untuk tombol         */
       
        btnnurohman.setBounds(100,100,100,30);
        konten.add(btnnurohman);
        btnnurohman.setForeground(Color.red);              
        btnnurohman.setBackground(Color.green);
        btnnurohman.addActionListener(this);
       
        btnhafidz.setBounds(100,140,100,30);
        konten.add(btnhafidz);
        btnhafidz.setForeground(Color.red);
        btnhafidz.setBackground(Color.green);
        btnhafidz.addActionListener(this);
   
    }                                                         /** Akhir Konstruktor / Eksekusi */

        public void actionPerformed(ActionEvent kelompoksepuluh)
        {
            {
            Object obj = kelompoksepuluh.getSource();         /** membuat parameter action*/
               
if (btnarfani == obj)       /** perintah menampilkan komen tertentu ketika button di klik */
JOptionPane.showMessageDialog
(null,"Nama : Ahmad Arfani \n NPM : 201343500089 \n Kelas : S 6 A \n Mata Kuliah : Pemrograman Visual \n Dosen : Nahot Frastian, M.Kom ");   
            
if (btnnurohman == obj)
JOptionPane.showMessageDialog
(null,"Nama : Nurohman \n NPM : 201343500091 \n Kelas : S 6 A \n Mata Kuliah :   Pemrograman Visual \n Dosen : Nahot Frastian, M.Kom ");   
            
if (btnhafidz == obj)
JOptionPane.showMessageDialog
(null,"Nama : Hafidz Suryansyah \n NPM : 201343500000 \n Kelas : S 6 A \n Mata Kuliah : Pemrograman Visual \n Dosen : Nahot Frastian, M.Kom ");   
           
        }
        }

    public static void main(String[] tugaskelompok10)
    {
        new tugaskelompok10();
    }
}



Output :
a.       Tampilan awal program

b.      Layar ketika mouse diarahkan pada salah satu tombol yang tersedia
c.       Reaksi dari tombol setelah “klik”



2.      Program 2
Source code :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.color.*;


public class Tugas_Kelompok
{
    /**
     * instance variables - replace the example below with your own
    */
    private JFrame frame;
    JLabel lbljudul=new JLabel("PERAWATAN KOMPUTER");
    JLabel lbltgl=new JLabel("Tanggal");
    JTextField txtgl=new JTextField(10);
    JLabel lblid=new JLabel("ID Komputer");
    JTextField txid=new JTextField(7);
    JLabel lbluser=new JLabel("Nama User");
    JTextField txuser=new JTextField(20);
    JLabel lblunit=new JLabel("Unit Kerja");
    JTextField txunit=new JTextField(20);
    JLabel lblptg=new JLabel("Petugas");
    JTextField txptg=new JTextField(20);
   
   
    JLabel lblkegiatan=new JLabel("Kegiatan");
    JRadioButton maintenance=new JRadioButton("Maintenance");
    JRadioButton keluhan=new JRadioButton("Keluhan");
   
    ButtonGroup kelompok=new ButtonGroup();
    JLabel lblsolusi=new JLabel("Solusi");
    JCheckBox install=new JCheckBox("Install Ulang");
    JCheckBox krimping=new JCheckBox("Krimping Ulang");
    JCheckBox update=new JCheckBox("Update Antivirus");
    JCheckBox defragment=new JCheckBox("Defragmnet");
    JCheckBox disc=new JCheckBox("Disk Clean Up");
    JCheckBox reset=new JCheckBox("Reset Password");
   
    JButton cetak=new JButton("Cetak");
    JTextArea hasil=new JTextArea();

    /**
     * Constructor for objects of class Tugas_Kelompok
     */
    public Tugas_Kelompok()
    {
        /**
        *initialise instance variables
        */
        makeFrame();
        frame.setVisible(true);
        AksiReaksi();
    }

    /**
     * Method untuk menampilkan dan menutup frame
    */
    public void setVisible(boolean visible)
    {
        frame.setVisible(visible);
    }
   
    /**
     * Method untuk membuat frame
     */
    private void makeFrame()
    {
        frame = new JFrame("Tugas Kelompok");
        frame.setSize(310,500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        komponenVisual();
        /**
        method pack pada frame berguna utk menampilkan frame dan menset ukuran sesuai preferredSize komponen
        */
    }
   
    /**
     * Method khusus untuk menambahkan komponen GUI
     */
    private void komponenVisual(){
        JPanel panel = (JPanel)frame.getContentPane();
        panel.setLayout(null);
       
        panel.add(lbljudul);
        lbljudul.setBounds(75,10,200,20);
        lbljudul.setForeground(Color.blue);
       
        panel.add(lbltgl);
        lbltgl.setBounds(10,50,80,20);/* Jarak dari kiri, jarak dari atas, lebar, tinggi */
        lbltgl.setForeground(Color.blue);
        panel.add(txtgl);
        txtgl.setBounds(105,50,175,20);
        txtgl.setForeground(Color.blue);
       
       
        panel.add(lblid);
        lblid.setBounds(10,75,80,20);
        lblid.setForeground(Color.blue);
        panel.add(txid);
        txid.setBounds(105,75,175,20);
        txid.setForeground(Color.blue);
       
        panel.add(lbluser);
        lbluser.setBounds(10,100,80,20);
        lbluser.setForeground(Color.blue);
        panel.add(txuser);
        txuser.setBounds(105,100,175,20);
        txuser.setForeground(Color.blue);
       
        panel.add(lblunit);
        lblunit.setBounds(10,125,80,20);
        lblunit.setForeground(Color.blue);
        panel.add(txunit);
        txunit.setBounds(105,125,175,20);
        txunit.setForeground(Color.blue);
       
        panel.add(lblptg);
        lblptg.setBounds(10,150,80,20);
        lblptg.setForeground(Color.blue);
        panel.add(txptg);
        txptg.setBounds(105,150,175,20);
        txptg.setForeground(Color.blue);
       
        panel.add(lblkegiatan);
        lblkegiatan.setBounds(10,175,80,20);
        lblkegiatan.setForeground(Color.blue);
        kelompok.add(maintenance);
        kelompok.add(keluhan);
       
        panel.add(maintenance);
        maintenance.setBounds(105,175,100,20);
        maintenance.setForeground(Color.red);
        panel.add(keluhan);
        keluhan.setBounds(200,175,100,20);
        keluhan.setForeground(Color.red);
       
        panel.add(lblsolusi);
        lblsolusi.setBounds(10,200,70,20);
        lblsolusi.setForeground(Color.blue);
       
        panel.add(install);
        install.setBounds(105,200,100,20);
        install.setForeground(Color.red);
       
        panel.add(krimping);
        krimping.setBounds(105,225,150,20);
        krimping.setForeground(Color.red);
       
        panel.add(update);
        update.setBounds(105,250,150,20);
        update.setForeground(Color.red);
       
        panel.add(defragment);
        defragment.setBounds(105,275,150,20);
        defragment.setForeground(Color.red);
       
        panel.add(disc);
        disc.setBounds(105,300,150,20);
        disc.setForeground(Color.red);
       
        panel.add(reset);
        reset.setBounds(105,325,150,20);
        reset.setForeground(Color.red);
       
        panel.add(cetak);
        cetak.setBounds(10,350,270,20);
        cetak.setForeground(Color.blue);
       
      
    }
   
    /**
     * Method utk melakukan tindakan jika ada event dari pengguna
     * terhadap event source
     * ActionListener mendefinisikan sebuah method untuk menangani terjadinya eventActonEvent. Menimbulkan aksi bila objek ditekan
     */
    public void AksiReaksi()       
    {
        cetak.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){       
                System.out.println("                          PERAWATAN KOMPUTER");
                System.out.println("                          ==================");
                System.out.println("Tanggal          : " + txtgl.getText()+"\n");
                System.out.println("Id Komputer      : " + txid.getText()+"\n");
                System.out.println("Nama User        : " + txuser.getText()+"\n");
                System.out.println("Unit Kerja       : " + txunit.getText()+"\n");
                System.out.println("Petugas          : " + txptg.getText()+"\n");
               
                if(maintenance.isSelected()==true){
                    System.out.println("Kegiatan         : " + maintenance.getText()+"\n");
                }
                else
                if(keluhan.isSelected()==true){
                    System.out.println("Kegiatan        : " + keluhan.getText()+"\n");
                }
               
                if(install.isSelected()==true ||
                krimping.isSelected()==true ||
                update.isSelected()==true ||
                defragment.isSelected()==true  ||
                disc.isSelected()==true ||
                reset.isSelected()==true){
               
                {
                    System.out.println("Solusi           : "+"\n");
                }
                if(install.isSelected()==true){
                    System.out.println("                  - "+install.getText()+"\n");
                }
                if(krimping.isSelected()==true){
                    System.out.println("                  - "+krimping.getText()+"\n");
                }
                if(update.isSelected()==true){
                    System.out.println("                  - "+update.getText()+"\n");
                }
                if(defragment.isSelected()==true){
                    System.out.println("                  - "+defragment.getText()+"\n");
                }
                if(disc.isSelected()==true){
                    System.out.println("                  - "+disc.getText()+"\n");
                }
                if(reset.isSelected()==true){
                    System.out.println("                  - "+reset.getText()+"\n");
                }
            }
        }});
    }
}




Output :
a.       Form yang muncul dan belum terisi :
b.      Form yang telah diisi :
c.       Hasil setelah tombol cetak di “klik”

V.                PENUTUP
Demikian yang dapat kami paparkan mengenai materi yang menjadi pokok bahasan dalam makalah ini, tentunya masih banyak kekurangan dan kelemahannya, kerena terbatasnya pengetahuan dan kurangnya rujukan atau referensi yang ada hubungannya dengan judul makalah ini.

Kami banyak berharap para pembaca yang budiman memberikan kritik dan saran yang membangun kepada penulis demi sempurnanya makalah ini dan dan penulisan makalah di kesempatan-kesempatan berikutnya. Semoga makalah ini berguna bagi penulis pada khususnya juga para pembaca yang budiman pada umumnya.


DAFTAR PUSTKA

















Post a Comment

0 Comments

MY POST

Cara mengatasi Temporary failure in name resolution