Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Paduan Compile manual:
- //1. copas semua code ini ke notepad, text editor lainya
- //2. save as BAHANUAS.java (harus sama persis namanya)
- //3. simpan di folder document/documents
- //4. buka command prompt(Win)/ terminal(Mac OS)
- //5. ketik "cd documents"
- //6. "javac BAHANUAS.java"
- //7. "java BAHANUAS"
- //tanda " " tidak perlu diketik, sebagai pembatas saja
- //Untuk pengguna netbean link file asli : https://www.dropbox.com/s/wm3gzeuae1jdvm6/uas%28netbean%29.zip?dl=0
- //Untuk pengguna eclipse link file asli : https://www.dropbox.com/s/wl9k9nmntldarsk/uas%28eclipse%29.rar?dl=0
- //folder beserta gambar : https://www.dropbox.com/sh/rsfuqjp0b1yvbyv/AACVJQK2Jd3D0m5biQ8bT1V0a?dl=0
- import java.awt.Font;
- import java.awt.GridBagLayout;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import javax.security.auth.callback.ConfirmationCallback;
- import javax.swing.JFrame;
- import javax.swing.*;
- public class BAHANUAS extends JFrame implements ActionListener,KeyListener{
- Font timesRoman = new Font("TimesRoman",Font.BOLD, 24);
- //dibaca buat font timesRoman dengan jenis TimesRoman,Dibold, ukuran 24
- //Component
- JTextField nama = new JTextField();
- JTextField email = new JTextField();
- JPasswordField pass1=new JPasswordField();
- JPasswordField pass2=new JPasswordField();
- JRadioButton male=new JRadioButton("Laki-laki");
- JRadioButton female=new JRadioButton("Perempuan");
- ButtonGroup gender = new ButtonGroup();
- //ButtonGroup mengabungkan male+female biar hanya bisa pilih salah satu
- JCheckBox Hobi1=new JCheckBox("Membaca");
- JCheckBox Hobi2=new JCheckBox("Menulis");
- JCheckBox Hobi3=new JCheckBox("Mengambar");
- //ga perlu di ButtonGroup, bisa pilih >1
- String[] Bulan={" ","Januari","Februari","Maret","April","Mei","Juni","Lainnya"};
- //buat index 0 nya kosong, untuk memudahkan validasi
- JComboBox<String> bulanLahir = new JComboBox(Bulan);//masukin bulan ke combobox\
- String[] Pekerjaan={"Nelayan","Petani","Pelaut","Penyair","Pelukis",
- "Programer","Ilmuwan","Pekerja Negeri Sipil","Karyawan Swasta","Lainya"};
- JList<String> job=new JList(Pekerjaan);//masukin list pekerjaan ke jList
- JScrollPane jobScroll=new JScrollPane(job);//supaya ada scrollnya
- JButton register=new JButton("Submit");
- JButton ulang=new JButton("Reset");
- //panel/penampung, kalo di html biasa dikenal dengan div
- JPanel x=new JPanel(new GridLayout(0,2,5,5));
- //dibaca: x adalah panel(div) dengan baris tak hingga & kolomnya 2
- //memiliki jarak antar baris 5 dan antar kolom 5
- //setelah di tuliskan semua component, masukan ke form.
- public BAHANUAS() {//constructor
- init();//buat masukin component kedalam form
- pack();//kalo udah beres,ilangin yg setExtendedState di form() ganti ini
- //biar nyesuain sendiri ukuranya, kalo di html width %, height %
- form();//tampilkan formnya.
- }
- public void form(){
- setDefaultCloseOperation(EXIT_ON_CLOSE);//supaya bisa di pencet x close
- setVisible(true);//supaya keliatan
- setLocationRelativeTo(null);//supaya pas di compile ada di tengah
- //setExtendedState(MAXIMIZED_BOTH);//untuk awal pake ini biar keliatan
- }
- public void init(){//tampilan form & event handling
- JLabel header=new JLabel("FORM REGISTRASI");
- x.add(header);
- header.setFont(timesRoman);
- x.add(new JLabel(""));//akal2an untuk ngisi kolom kosong
- x.add(new JLabel("Nama Lengkap"));
- //jlabel di masukan di sini karena tidak akan di gunakan di action listener
- x.add(nama);//masukinya urut dari baris1-kolom1 ke b1-k2 ke b2-k1 dstnya
- x.add(new JLabel("Email"));
- x.add(email);
- x.add(new JLabel("Password"));
- x.add(pass1);
- x.add(new JLabel("Ulangi Password"));
- x.add(pass2);pass2.addKeyListener(this);//key listener supaya pass pasword sama dia kelaur popup
- //masukin dulu radio button ke grup
- x.add(new JLabel("Gender"));
- gender.add(male);//male.addActionListener(this);
- gender.add(female);
- //masukin grup(radio button) ke panel
- JPanel genderPanel =new JPanel(new GridLayout(1, 2));
- //bikin satu panel lagi karena di dalam x hanya ada 2 kolom
- //sedangkan di baris ini perlu 3
- genderPanel.add(male);
- genderPanel.add(female);
- //masukin panel baru ke panel awal(x)
- x.add(genderPanel);
- x.add(new JLabel("Hobi"));
- JPanel hobiPanel =new JPanel(new GridLayout(2, 2));//idem dengan gender
- hobiPanel.add(Hobi1);
- hobiPanel.add(Hobi2);
- hobiPanel.add(Hobi3);
- x.add(hobiPanel);
- x.add(new JLabel("Bulan Lahir"));
- x.add(bulanLahir);
- x.add(new JLabel("Pekerjaan"));
- x.add(jobScroll);//scroll ga usah action listener
- x.setBorder(BorderFactory.createEmptyBorder(15 , 30, 15, 30));
- x.add(register);register.addActionListener(this);
- //.addActionListener untuk handling event pas dipencet
- x.add(ulang);ulang.addActionListener(this);
- //baca: panel x dibikin margin atas 15 kiri 30 bawah 15 dan kanan 30
- add(x);
- }
- public static void main(String[] args) {
- new BAHANUAS();
- }
- public boolean validasi(){
- if (nama.getText().equals("")||nama.getText().matches(".*\\d+.*")){
- //validasi nama tidak boleh kosong dan mengandung angka
- //.* bebas \\ angka +.* isibebas
- JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong & mengandung Angka");
- //baca: buat message box dengan asal null, dan isi pesanya
- return false;
- }
- else if (!email.getText().matches(".*@.*\\..*")||email.getText().endsWith(".")){
- // .*(isi bebas)
- //@(setelah isi bebas harus ada @)
- //.*(isi bebas lagi)
- //\\.(harus ada titik)
- //.*(isi bebas lagi)
- JOptionPane.showMessageDialog(null, "Email tidak valid,format email[xxxxxx@xxxxx.xxxxx]");
- return false;
- }
- else if (pass1.getText().equals("")||!pass1.getText().equals(pass2.getText())
- ||pass1.getText().length()<6||!pass1.getText().matches(".*\\d+.*")){
- JOptionPane.showMessageDialog(null, "Password Harus >6 dan memiliki angka");
- return false;
- }
- else if (!male.isSelected()&&!female.isSelected()){
- //radio +list cek pake is selected
- JOptionPane.showMessageDialog(null, "Gender Belum dipilih");
- return false;
- }
- else if (!Hobi1.isSelected()&&!Hobi2.isSelected()&&!Hobi3.isSelected()){
- JOptionPane.showMessageDialog(null, "Hobi Belum dipilih");
- return false;
- }
- else if (bulanLahir.getSelectedIndex()==0){
- //cek index ke 0 pilihan kosong
- JOptionPane.showMessageDialog(null, "Bulan lahir belum dipilih");
- return false;
- }
- else if (job.isSelectionEmpty()){
- JOptionPane.showMessageDialog(null, "Pekerjaan belum dipilih");
- return false;
- }
- else
- return true;
- }
- public void reset(){
- nama.setText("");
- email.setText("");
- pass1.setText("");
- pass2.setText("");
- gender.clearSelection();
- Hobi1.setSelected(false);
- Hobi2.setSelected(false);
- Hobi3.setSelected(false);
- bulanLahir.setSelectedIndex(0);//balikin ke pil index 0(pilihan kosong)
- job.clearSelection();//ilangin pilihan
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- if (e.getActionCommand().equals("Submit")&&validasi()) {
- JOptionPane.showConfirmDialog(null, "Konfimasi kembali, apakah semua data sudah benar?",
- "CONFIRMATION DIALOG",JOptionPane.YES_NO_OPTION);
- //dibaca: buat confirm box, dengan asal null, isi pesanya, nama boxnya, dan tipe jawabanya
- }
- else if (e.getActionCommand().equals("Reset")) {
- reset();
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- @Override
- public void keyPressed(KeyEvent e) {
- }
- @Override
- public void keyReleased(KeyEvent e) {
- if (!pass1.getText().equals("")&&pass1.getText().equals(pass2.getText())
- &&!(e.getKeyCode()=='\n')){
- JOptionPane.showMessageDialog(null, "Password cocok");
- }
- //!(e.getKeyCode()=='\n') artinya jika user klik enter dia ga kena ke ceknya
- //keyreleased mengecheck setelah user melepas input keyboard
- //di baca:jika pass1 tidak kosong dan isi pass1==pass2 munculkan dialog box
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement