Minggu, 01 Desember 2013

Interaksi Manusia dan Komputer

Nama : Said Hasan
NIM  : H1G112070
MK   : Interaksi Manusia dan Komputer





Download Filenya disini

Sabtu, 23 November 2013

Interaksi Manusia dan Komputer

APA itu IMK?
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 :
  • Tugas-tugas apa yang harus dilaksanakan.
  • Tugas-tugas umum (sering) mudah ditentukan, namun yang jarang lebih sulit ditemukan.
  • Kelengkapan fungsionalitas.
Aspek-aspek yang perlu diperhatikan dalam suksesnya pencapaian tujuan tersebut adalah :
  • 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 dan IMK
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 :

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 gambar

jika 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.

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 :
  1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
  2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
  3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
  8. 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.
  9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
  10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
  11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
  12. 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.
  13. 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. Text dicoret{{}}

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:
CREATE DATABASE namadatabase;
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:
EXEC sp_helpdb;
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 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 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 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!