Said Hasan H1G112070
Interaksi Manusia dan Komputer
Minggu, 01 Desember 2013
Sabtu, 23 November 2013
Interaksi Manusia dan Komputer
APA itu IMK?
1. Teknik elektronika & ilmu komputer
memberikan kerangka kerja untuk dapat merancang sistem HCI
2. Psikologi
memahami sifat & kebiasaan, persepsi & pengolahan kognitif, ketrampilan motorik pengguna
3. Perancangan grafis dan tipografi
sebuah gambar dapat bermakna sama dengan seribu kata. Gambar dapat digunakan sebagai sarana dialog cukup efektif antara manusia & komputer
4. Ergonomik
berhubungan dengan aspek fisik untuk mendapatkan lingkungan kerja yang nyaman, misal : bentuk meja & kursi kerja, layar tampilan, bentuk keyboard, posisi duduk, pengaturan lampu, kebersihan tempat kerja
5. Antropologi
ilmu pengetahuan tentang manusia, memberi suatu pandangan tentang cara kerja berkelompok yang masing – masing anggotanya dapat memberikan konstribusi sesuai dengan bidangnya
6. Linguistik
merupakan cabang ilmu yang mempelajari tentang bahasa. Untuk melakukan dialog diperlukan sarana komunikasi yang memadai berupa suatu bahasa khusus, misal bahasa grafis, bahasa alami, bahasa menu, bahasa perintah
7. Sosiologi
studi tentang pengaruh sistem manusia-komputer dalam struktur sosial, misal adanya PHK karena adanya otomasi kantor.
IMK atau Interaksi Manusia Komputer atau HCI (Human
Computer Interaction) adalah disiplin ilmu pengetahuan yang
mengulas tentang perancangan, evaluasi dan implementasi dari sistem
komputer interaktif terkait dengan penggunaannya oleh manusia beserta
hal-hal yang terkait dengan itu.
Tujuan utama dari IMK adalah menghasilkan
sistem komputer yang mampu digunakan dengan baik oleh pengguna (good
usability) melalui desain antarmuka dengan memperhatikan
beberapa hal penting seperti memahami faktor-faktor yang membuat
manusia menggunakan teknologi, mengembangkan teknik-teknik yang yang
memungkinkan untuk membangun sistem yang sesuai dengan tujuan serta
mencapi interaksi yang aman, efektif dan efisien. Selain desain
antarmuka, karakteristik manusia tentu saja sangat mempengaruhi IMK.
Kenapa IMK
dibutuhkan?
Dari wikipedia, interaksi adalah
suatu jenis tindakan atau aksi yang terjadi sewaktu dua atau lebih objek
mempengaruhi atau memiliki efek satu sama lain. Melalui definisi
tersebut dapat dilihat bahwa pengaruh interaksi sangat kuat bagi pelaku
interaksi tersebut. Apabila dikaitkan dengan IMK, dapat dibayangkan
seharusnya banyak sekali pengaruh desain antarmuka bagi para pengguna
sistem
Desain antarmuka adalah media yang
menjembatani kemampuan-kemampuan fungsionalitas sistem kepada pengguna.
Selain itu, desain antar muka merupakan kendaraan yang akan membawa
pengguna pada fungsi sistem yang ingin dilakukan olehnya. Hal-hal
tersebut yang akan memberikan dampak langsung pada pengembang sistem,
apalagi jika terkait dengan kustomer dan keutungan organisasi.
Layout, tampilan dan navigasi layar
sistem akan memberikan efek bagi pengguna melalui banyak cara. Jika
hal-hal tersebut memusingkan dan tidak efisien, maka pengguna akan
mengalami kesulitan dalam mengerjakan pekerjan mereka dan relatif
melakukan lebih banyak kesalahan. Desain yang buruk akan membuat
pengguna takut sehingga tidak akan kembali menggunakan sistem tersebut.
Hal-hal tersebut apabila tidak dikelola dengan baik juga akan
menyebabkan frustasi dan peningkatan stres pada pengguna serta lebih
jauh lagi akan meperburuk kondisi keuangan pengguna dan organisasi. Pada
beberapa sistem yang sangat riskan seperti traffic control, nuclear
power plant, hal-hal tersebut akan berpengaruh bagi keselamatan
pengguna dan masyarakat luas.
Bagi pengembang, tujuan dari rekayasa sistem
adalah membuat kualitas hidup pemakai semakin baik. Desainer umumnya
ingin membuat sistem interaktif berkualitas tinggi yang dikagumi oleh
orang-orang, beredar luas dan sering ditiru, lebih dalam dari sekadar
gagasan user-friendly.
Fungsionalitas yang semestinya, seperti yang bisa anda lihat pada gambar sebelah kanan, merupakan salah satu aspek penting dalam tujuan rekayasa sistem yang terkait dengan IMK. Fungsionalitas yang dimaksudkan melingkupi :
Fungsionalitas yang semestinya, seperti yang bisa anda lihat pada gambar sebelah kanan, merupakan salah satu aspek penting dalam tujuan rekayasa sistem yang terkait dengan IMK. Fungsionalitas yang dimaksudkan melingkupi :
- Tugas-tugas apa yang harus dilaksanakan.
- Tugas-tugas umum (sering) mudah ditentukan, namun yang jarang lebih sulit ditemukan.
- Kelengkapan fungsionalitas.
- Kehandalan : berfungsi seperti yang diinginkan.
- Ketersediaan : tersedia ketika hendak digunakan.
- Keamanan : terlindungi dari akses yang tidak diinginkan.
- Integritas data : terlindung dari kerusakan baik sengaja atau tidak.
- Standardisasi : keseragaman sifat-sifat antarmuka pemakai pada aplikasi yang berbeda.
- Integritas : keterpaduan antara paket aplikasi dan software tools.
- Konsistensi : keseragaman dalam suatu program aplikasi.
- Integritas : dimungkinnya data dikonversi pada berbagai hardware dan software.
Situs web merupakan salah satu aplikasi
sistem komputer yang banyak digunakan oleh manusia saat ini. Selain
akses yang mudah dan jaringan yang luas, informasi-informasi sangat
mudah didapatkan melalui sistem ini. Pencapaian informasi tersebut
tentunya sangat terkait dengan desain antarmuka. Seperti yang dijelaskan
sebelumnya, begitu banyak hal yang dapat mengakibatkan kegagalan pada
pengguna. Sangat disayangkan apabila informasi-informasi yang sangat
mudah didapatkan melalui situs-situs web tidak dimaksimalkan atau
justru memberikan dampak buruk bagi penggunanya.
Situs web memiliki karakteristik yang berbeda
dengan aplikasi komputer lainnya. Perbedaan itu dapat dilihat informasi
dan navigasi yang menjadi fokus pengguna, redundansi data dan
informasi yang begitu banyaknya sehingga terkadang tidak diketahui dari
mana asalnya, interaksi yang umumnya hanya dengan melakukan klik sekali
pada link, waktu respon dan sebagainya. Karakteristik-karakteristik
tersebut yang harus diperhatikan selain karakteristik pengguna situs
sendiri.
Situs web memiliki perkembangan yang luar
biasa beberapa tahun terakhir ini. Hal tersebut disebabkan oleh
mudahnya pembuatan situs web yang juga memudahkan pengguna internet
dapat mengembangkan situs web yang mereka buat. Sayangnya, tidak banyak
dari mereka yang memahami dan memperhatikan konsep IMK terkait dengan
pencapaian informasi dan konten yang disampaikan oleh pengelola situs.
Para perancang antarmuka manusia dan
komputer berharap agar sistem komputer yang dirancangnya dapat bersifat
akrab dan ramah dengan penggunanya (user friendly).
Untuk membuat antarmuka yang baik dibutuhkan pemahaman beberapa bidang ilmu, antara lain :
Untuk membuat antarmuka yang baik dibutuhkan pemahaman beberapa bidang ilmu, antara lain :
1. Teknik elektronika & ilmu komputer
memberikan kerangka kerja untuk dapat merancang sistem HCI
2. Psikologi
memahami sifat & kebiasaan, persepsi & pengolahan kognitif, ketrampilan motorik pengguna
3. Perancangan grafis dan tipografi
sebuah gambar dapat bermakna sama dengan seribu kata. Gambar dapat digunakan sebagai sarana dialog cukup efektif antara manusia & komputer
4. Ergonomik
berhubungan dengan aspek fisik untuk mendapatkan lingkungan kerja yang nyaman, misal : bentuk meja & kursi kerja, layar tampilan, bentuk keyboard, posisi duduk, pengaturan lampu, kebersihan tempat kerja
5. Antropologi
ilmu pengetahuan tentang manusia, memberi suatu pandangan tentang cara kerja berkelompok yang masing – masing anggotanya dapat memberikan konstribusi sesuai dengan bidangnya
6. Linguistik
merupakan cabang ilmu yang mempelajari tentang bahasa. Untuk melakukan dialog diperlukan sarana komunikasi yang memadai berupa suatu bahasa khusus, misal bahasa grafis, bahasa alami, bahasa menu, bahasa perintah
7. Sosiologi
studi tentang pengaruh sistem manusia-komputer dalam struktur sosial, misal adanya PHK karena adanya otomasi kantor.
Jumat, 17 Mei 2013
Membuat Database Langsung Dari NetBeans
Wah
udah lama ne nggak posting artikel…..okelah hari ini ane mau posting
tentang pembuatan database langsung dari netbeans 7.1 . biasanya jika
kita menggunakan webserver untuk membuat databasenya , maka kita harus
membuka database terlebuh dahulu , jadi ribet deh udah buka net beans
terus buka webserver lagi wah 2 kali kerja …hmmmm ane punya solusi untu
mempercepat proses ini dengan cara membuat database langsung di netbeans
7.1
oke kalau begitu kita mulai saja gan ,
yang pertama pastinya buka dulu netbeansnya kemudian ciptakan sebuah
project di netbeans dengan langkah2 sebagai brikut klik menu File >
New project > java > java application ..perhatikangambar …
dan teruskan dengan memberikan nama dengan project lalu klik finsh kita perhatikan gambarjika sudah di klik tombol finish maka project sudah siap di olah untuk membuat database perhatikan langkah2 berikut cari menu berikut di bagian kanan lalu klik service maka di situ terlihat menu database klik tanda (+) pda menu database
lalu klik kanan pada java DB lalu pilih Create data base seperti ada gambar di bawah
maka akan muncul tampilan seperti ini
setelah kita klik oke maka muncul tampilan sbb
langgkah selanjutnya kita konek kan databasenya
klik ok
jika sudah di klik ok maka muncul doubel pada jdbc lalu pilih APP > Table > create table
lanjutkan dengan membuat sebuah form untuk membuktikan bahwa database kita berhasil
masukan tabel pada form
perhatikan gambar
selesai sudah ….selamat mencoba
Jumat, 10 Mei 2013
Tentang MySQL
Pendahuluan
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
Text dicoret{{}}
Berselang setahun kemudian, tepatnya pada tanggal 20 April 2009 giliran Oracle melakukan akusisi terhadap Sun Microsystems. Sejak saat itu berkembang isu Oracle - yang memiliki produk database yang berkompetisi dengan MySQL - akan mematikan MySQL. Namun sampai sejauh ini hal tersebut belum terbukti.
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.
MySQL adalah sebuah implementasi dari sistem manajemen basisdata relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Kehandalan suatu sistem basisdata (DBMS) dapat diketahui dari cara kerja pengoptimasi-nya dalam melakukan proses perintah-perintah SQL yang dibuat oleh pengguna maupun program-program aplikasi yang memanfaatkannya. Sebagai peladen basis data, MySQL mendukung operasi basisdata transaksional maupun operasi basisdata non-transaksional. Pada modus operasi non-transaksional, MySQL dapat dikatakan unggul dalam hal unjuk kerja dibandingkan perangkat lunak peladen basisdata kompetitor lainnya. Namun demikian pada modus non-transaksional tidak ada jaminan atas reliabilitas terhadap data yang tersimpan, karenanya modus non-transaksional hanya cocok untuk jenis aplikasi yang tidak membutuhkan reliabilitas data seperti aplikasi blogging berbasis web (wordpress), CMS, dan sejenisnya. Untuk kebutuhan sistem yang ditujukan untuk bisnis sangat disarankan untuk menggunakan modus basisdata transaksional, hanya saja sebagai konsekuensinya unjuk kerja MySQL pada modus transaksional tidak secepat unjuk kerja pada modus non-transaksional.
Keistimewaan MySQL
MySQL memiliki beberapa keistimewaan, antara lain :- Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
- Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
- Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
- 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
- Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
- Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
- Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
- Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
- Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
- Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
- Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
- Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
- Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
Bahasa pemrograman
Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.Penggunaan
MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo.Administrasi
Untuk melakukan administrasi dalam basis data MySQL, dapat menggunakan modul yang sudah termasuk yaitu command-line (perintah:mysql
dan mysqladmin
). Juga dapat diunduh dari situs MySQL yaitu sebuah modul berbasis grafik (GUI): MySQL Administrator dan MySQL Query Browser.
Selain itu terdapat juga sebuah perangkat lunak gratis untuk
administrasi basis data MySQL berbasis web yang sangat populer yaitu phpMyAdmin.
Untuk perangkat lunak untuk administrasi basis data MySQL yang dijual
secara komersial antara lain: MySQL front, Navicat dan EMS SQL Manager
for MySQL.Akusisi Oleh Sun dan Oracle
Pada tanggal 16 Januari 2008 Sun Microsystems, Inc mengumumkan aksi korporasi - akuisisi terhadap MySQL AB sehingga menjadikan Sun sebagai salah satu perusahaan dengan produk platform open source terbesar seperti Java, OpenSolaris dan akhirnya MySQL.Berselang setahun kemudian, tepatnya pada tanggal 20 April 2009 giliran Oracle melakukan akusisi terhadap Sun Microsystems. Sejak saat itu berkembang isu Oracle - yang memiliki produk database yang berkompetisi dengan MySQL - akan mematikan MySQL. Namun sampai sejauh ini hal tersebut belum terbukti.
Rabu, 01 Mei 2013
Cara Membuat Database Baru Dalam Perintah Aplikasi SQL Server
Kita jumpa lagi dalam artikel panduan
belajar SQL Server. Untuk membuat aplikasi SQL (Structured Query
Language) Server, maka hal pertama yang harus kita pelajari adalah cara
membuat database baru. Misalkan nama database yang akan kita buat adalah
DbKomputer. Secara umum, kita bisa membuat beberapa tabel untuk
DbKomputer, yaitu tabel Merk (mengklasifikasik komputer berdasarkan
merek atau asal pabrikan) dan tabel Type (mengklasifikasikan komputer
menurut type komputer).
Hubungan
antara tabel Merk dan tabel Type bersifat one to many, yaitu satu Merk
memungkinkan untuk memiliki beberapa macam Type. Sedangkan satu Type
hanya bisa dimiliki oleh satu Merk saja.
Untuk dapat membuat database,
tentunya username kita harus dalam keadaan aktif di dalam komputer yang
tertanam aplikasi SQL Server. Pertama, buka layar program SQL Server,
lalu kita dapat menggunakan perintah CREATE DATABASE kemudian diikuti
dengan mengetikkan nama database.
Untuk mengaktifkan Server SQL, kita bisa menggunakan fasilitas Query Analyzer. Untuk detailnya, ikuti langkah-langkah berikut:- Masuk ke Query Analyzer dari Start Menu -> Programs -> Microsoft SQL Server -> Query Analyzer.
- Kita bisa memilih metode authentikasi yang digunakan. Jenis authentikasi ada dua, yaitu Windows Authentication atau SQL Server Authentication. Jenis mana yang kita pakai tergantung setting saat kita install aplikasi di awal dulu.
- Kemudian pada jendela editor, kita dapat mengetikkan perintah menggunakan sintaks berikut ini:
Dengan menggunakan sintaks tersebut, kita dapat membuat database dengan nama yang sesuai dengan kebutuhan jenis bisnis. Contoh:
CREATE DATABASE DbKomputer;
CREATE DATABASE DbNotebook;
CREATE DATABASE DbUltrabook;
- Langkah selanjutnya adalah mengeksekusi perintah SQL yang sudah kita ketik tadi dengan menekan tombol F5.
- Kita dapat melihat sukses atau tidaknya pembuatan database pada jendela Results.
- Untuk melihat daftar database yang terdapat dalam SQL Server, kita bisa menggunakan perintah:
Demikian artikel cara membuat database baru SQL Server ini saya bagi untuk Anda. Bisnis yang maju dan berkembang tentu saja didukung oleh peralatan kerja yang membantu kemudahan dalam bekerja. Dengan memakai aplikasi SQL Server Anda bisa mengelola persediaan produk lebih mudah. Semoga artikel ini berguna untuk membangun bisnis yang sedang Anda tekuni.
Sabtu, 27 April 2013
Membuat Data Entry Part 3
Pada bagian terakhir ini kita akan membuat view (user interface) dan controller.
Langkah ke-5: Buat View + binding dengan model
Mungkin ini bagian yang paling menyenangkan, sekarang kita buat GUI-nya. Buat 2 JPanel seperti dibawah ini. Ingat ya JPanel bukan JFrame. Untuk buat JPanel bisa pakai Ctrl+N > Swing GUI Forms > JPanel. Misal kita beri nama PanelLogin dan PanelEntry. Drag n drop komponen-komponen Swing ke panel tersebut jadi seperti di bawah ini.
Kalo udah, kita buat JFrame dengan nama MainFrame. Untuk layoutnya gunakan CardLayout. Klik kanan frame tersebut > Set Layout > CardLayout
Kalo sudah drag PanelLogin ke MainFrame.
Next………
Masuk ke Navigator Window > pindahkan panelEntry1 dari Other Component ke JFrame, letakkan di bawah panelLogin1 seperti gambar berikut.
Ok, pembuatan GUI-nya sudah selesai.
Tinggal binding dengan model yang telah kita buat. Untuk cara
bindingnya, sekali lagi Anda bisa baca artikel “Beans Binding: Sinkronisasi Model dan View di Java Swing”.
Tapi tunggu dulu, ada beberapa komponen yang tidak bisa kita binding. Lihat PanelEntry, untuk isian Jenis Kelamin, di situ ada 2 jRadioButton. Dua jRadioButton itu harus berada dalam ButtonGroup yang sama. Tetapi, di ButtonGroup itu tidak ada atribut yang bisa dibinding dengan model kita. Jadi solusinya adalah kita buat komponen ButtonGroup baru yang mengekstend ButtonGroup misal namanya ButtonGroupJenisKelamin.
Di ButtonGroupJenisKelamin kita tambahkan atribut “selectedText” yang akan menyimpan atribut JenisKelamin.
Berikut ini class ButtonGroupJenisKelamin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| /** * For more information * my blog http://erenha.wordpress.com * my email rn.hindarwan@programmer.net */ package com.wordpress.erenha.java.desktop.entry.view.model; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import javax.swing.AbstractButton; import javax.swing.ButtonGroup; import javax.swing.JRadioButton; /** * ButtonGroupJenisKelamin.java * Turunan class ButtonGroup. * Atribut selectedText ditambahkan agar dapat digunakan untuk * medukung binding dengan model * @author Hindarwan */ public class ButtonGroupJenisKelamin extends ButtonGroup { private transient final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport( this ); private String selectedText; public static final String PROP_SELECTEDTEXT = "selectedText" ; public String getSelectedText() { if (!buttons.isEmpty()) { for (AbstractButton abstractButton : buttons) { if (abstractButton instanceof JRadioButton) { JRadioButton nextElement = (JRadioButton) abstractButton; if (nextElement.isSelected()) { selectedText = nextElement.getText(); return selectedText; } } } } return selectedText; } public void setSelectedText(String selectedText) { String oldSelectedText = this .selectedText; this .selectedText = selectedText; if (!buttons.isEmpty()) { for (AbstractButton abstractButton : buttons) { if (abstractButton instanceof JRadioButton) { JRadioButton nextElement = (JRadioButton) abstractButton; if (selectedText.equals(nextElement.getText())) { nextElement.setSelected( true ); break ; } else { nextElement.setSelected( false ); } } } } propertyChangeSupport.firePropertyChange(PROP_SELECTEDTEXT, oldSelectedText, selectedText); } public void addPropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.addPropertyChangeListener(listener); } public void removePropertyChangeListener(PropertyChangeListener listener) { propertyChangeSupport.removePropertyChangeListener(listener); } } |
Hasil akhir binding untuk model userLogin dan mahasiswa seperti berikut ini (lihat di bagian Binding Properties).
Langkah ke-6: Buat Controller + Test
Ketika ada action dari pemakai aplikasi
misalnya dia menekan button login, insert, update, delete maka akan
ditangani oleh class controller ini. Jadi tidak ditangani langsung oleh
view. Jadi di view tidak akan banyak code. Kita juga bisa melakukan
validasi lewat controller ini. Bayangkan jika validasi dilakukan di
view, dimana-mana banyak if-else if-else yang membingungkan. Cape deh…
Berikut Contoller untuk PanelLogin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
| /** * For more information * my blog http://erenha.wordpress.com * my email rn.hindarwan@programmer.net */ package com.wordpress.erenha.java.desktop.entry.controller; import com.wordpress.erenha.java.desktop.entry.dao.UserLoginDao; import com.wordpress.erenha.java.desktop.entry.dao.impl.UserLoginDaoImpl; import com.wordpress.erenha.java.desktop.entry.model.UserLogin; import com.wordpress.erenha.java.desktop.entry.utility.CardLayoutUtility; import com.wordpress.erenha.java.desktop.entry.utility.Message; import java.util.logging.Level; import java.util.logging.Logger; /** * LoginController.java * @author Hindarwan */ public class LoginController { private UserLogin userLogin; public void setUserLogin(UserLogin userLogin) { this .userLogin = userLogin; } /** * Method ini akan dipanggil ketika button login diklik. */ public void login() { String username = userLogin.getUsername(); String password = userLogin.getPassword(); if (username.isEmpty()) { Message.errorMessage( "Username masih kosong" ); } else if (password.isEmpty()) { Message.errorMessage( "Password masih kosong" ); } else { UserLoginDao loginDao = new UserLoginDaoImpl(); boolean isValid; try { isValid = loginDao.getUserLogin(username, password); if (isValid) { //masuk ke panel entry jika data username dan password sesuai CardLayoutUtility.next(); } else { //jika username dan password tidak sesuai muncul pesan ini Message.errorMessage( "Username dan password tidak cocok" ); } } catch (Exception ex) { Logger.getLogger(LoginController. class .getName()).log(Level.SEVERE, null , ex); } } } } |
Kalo ini controller untuk PanelEntry
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
| /** * For more information * my blog http://erenha.wordpress.com * my email rn.hindarwan@programmer.net */ package com.wordpress.erenha.java.desktop.entry.controller; import com.wordpress.erenha.java.desktop.entry.dao.MahasiswaDao; import com.wordpress.erenha.java.desktop.entry.dao.impl.MahasiswaDaoImpl; import com.wordpress.erenha.java.desktop.entry.model.Mahasiswa; import com.wordpress.erenha.java.desktop.entry.utility.Message; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author Hindarwan */ public class EntryController { private Mahasiswa mahasiswa; public void setMahasiswa(Mahasiswa mahasiswa) { this .mahasiswa = mahasiswa; } /** * Method yang dipanggil ketika button insert diklik. */ public void insert() { if (validasi()) { MahasiswaDao dao = new MahasiswaDaoImpl(); try { dao.insert(mahasiswa); Message.infoMessage( "Data berhasil diinsert" ); clear(); } catch (Exception ex) { Logger.getLogger(EntryController. class .getName()).log(Level.SEVERE, null , ex); } } } /** * Method yang dipanggil ketika button update diklik. */ public void update() { if (validasi()) { MahasiswaDao dao = new MahasiswaDaoImpl(); try { dao.update(mahasiswa); Message.infoMessage( "Data berhasil diupdate" ); clear(); } catch (Exception ex) { Logger.getLogger(EntryController. class .getName()).log(Level.SEVERE, null , ex); } } } /** * Method yang dipanggil ketika button delete diklik. */ public void delete() { MahasiswaDao dao = new MahasiswaDaoImpl(); try { dao.delete(mahasiswa.getNim()); Message.infoMessage( "Data berhasil dihapus" ); clear(); } catch (Exception ex) { Logger.getLogger(EntryController. class .getName()).log(Level.SEVERE, null , ex); } } /** * Method yang dipanggil ketika button load diklik. */ public void getByNim() { MahasiswaDao dao = new MahasiswaDaoImpl(); System.out.println(mahasiswa.getNim()); try { Mahasiswa m = dao.getByNim(mahasiswa.getNim()); if (m != null ) { mahasiswa.setNim(m.getNim()); mahasiswa.setNama(m.getNama()); mahasiswa.setJenisKelamin(m.getJenisKelamin()); mahasiswa.setAlamat(m.getAlamat()); mahasiswa.setKelas(m.getKelas()); mahasiswa.setStatus(m.getStatus()); } else { Message.errorMessage( "Data tidak ditemukan" ); } } catch (Exception ex) { Logger.getLogger(EntryController. class .getName()).log(Level.SEVERE, null , ex); } } /** * ketika button new diklik, akan kembali ke default. * method ini juga dipanggil ketika insert/update/delete berhasil. */ public void clear() { mahasiswa.setNim( "" ); mahasiswa.setNama( "" ); mahasiswa.setJenisKelamin( "Laki-laki" ); mahasiswa.setAlamat( "" ); mahasiswa.setKelas( "" ); mahasiswa.setStatus( "Ikatan Dinas" ); } /** * Untuk validasi field. * @return false jika data tidak valid */ public boolean validasi() { boolean isValid = false ; if (mahasiswa.getNim().isEmpty() || mahasiswa.getNim() == null ) { Message.errorMessage( "NIM harus diisi" ); } else if (mahasiswa.getNama().isEmpty() || mahasiswa.getNama() == null ) { Message.errorMessage( "Nama harus diisi" ); } else if (mahasiswa.getJenisKelamin().isEmpty() || mahasiswa.getJenisKelamin() == null ) { Message.errorMessage( "Jenis Kelamin harus diisi" ); } else if (mahasiswa.getAlamat().isEmpty() || mahasiswa.getAlamat() == null ) { Message.errorMessage( "Alamat harus diisi" ); } else if (mahasiswa.getKelas().isEmpty() || mahasiswa.getKelas() == null ) { Message.errorMessage( "Kelas harus diisi" ); } else { isValid = true ; } return isValid; } } |
Controller-controller tadi dipanggil di view. Misal ketika buttonLogin yang ada di PanelLogin diklik, codenya seperti ini.
1
2
3
4
5
| ... private void buttonLoginActionPerformed(java.awt.event.ActionEvent evt) { controller.login(); } ... |
Kalo di PanelEntry codenya jadi seperti ini…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| ... private void buttonInsertActionPerformed(java.awt.event.ActionEvent evt) { controller.insert(); } private void radioButtonPerempuanActionPerformed(java.awt.event.ActionEvent evt) { buttonGroupJK.setSelectedText(evt.getActionCommand()); } private void radioButtonLakiActionPerformed(java.awt.event.ActionEvent evt) { buttonGroupJK.setSelectedText(evt.getActionCommand()); } private void buttonNewActionPerformed(java.awt.event.ActionEvent evt) { controller.clear(); } private void buttonLoadActionPerformed(java.awt.event.ActionEvent evt) { controller.getByNim(); } private void buttonUpdateActionPerformed(java.awt.event.ActionEvent evt) { controller.update(); } private void buttonDeleteActionPerformed(java.awt.event.ActionEvent evt) { controller.delete(); } ... |
Terlihat code di view akan lebih rapi.
Selesai sudah pembuatan program data entry mahasiswa ini. Sekarang coba kita jalankan…
Masuk menggunakan username: admin, password : admin
Jika berhasil maka anda akan masuk ke form entry.
Sekarang coba untuk insert suatu data. Misalkan kita isi seperti ini.
Maka dapat dilihat kalau validasi yang kita buat telah berhasil.
Jika datanya telah lengkap, maka hasilnya seperti ini.
Sekarang coba cek di database, apakah datanya benar-benar telah masuk.
Di netbeans, masuk ke Service Window. Klik kanan table mahasiswa > View Data untuk melihat data mahasiswa.
Jika datanya muncul seperti di bawah ini, berarti proses insert tadi telah berhasil.
Silahkan dicoba untuk fungsi yang lainnya.
Jika ada pertanyaan, silahkan kontak saya. Kurang lebihnya saya mohon maaf. Terima kasih.
Semoga bermanfaat. Enjoy Java!
Langganan:
Postingan (Atom)