Advertisement
akevintg

BAHAN UAS AOOP

Feb 2nd, 2015
716
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.89 KB | None | 0 0
  1. //Paduan Compile manual:
  2. //1. copas semua code ini ke notepad, text editor lainya
  3. //2. save as BAHANUAS.java (harus sama persis namanya)
  4. //3. simpan di folder document/documents
  5. //4. buka command prompt(Win)/ terminal(Mac OS)
  6. //5. ketik "cd documents"
  7. //6. "javac BAHANUAS.java"
  8. //7. "java BAHANUAS"
  9. //tanda " " tidak perlu diketik, sebagai pembatas saja
  10.  
  11. //Untuk pengguna netbean link file asli : https://www.dropbox.com/s/wm3gzeuae1jdvm6/uas%28netbean%29.zip?dl=0
  12. //Untuk pengguna eclipse link file asli : https://www.dropbox.com/s/wl9k9nmntldarsk/uas%28eclipse%29.rar?dl=0
  13. //folder beserta gambar : https://www.dropbox.com/sh/rsfuqjp0b1yvbyv/AACVJQK2Jd3D0m5biQ8bT1V0a?dl=0
  14.  
  15. import java.awt.Font;
  16. import java.awt.GridBagLayout;
  17. import java.awt.GridLayout;
  18. import java.awt.event.ActionEvent;
  19. import java.awt.event.ActionListener;
  20. import java.awt.event.KeyEvent;
  21. import java.awt.event.KeyListener;
  22. import javax.security.auth.callback.ConfirmationCallback;
  23. import javax.swing.JFrame;
  24. import javax.swing.*;
  25.  
  26. public class BAHANUAS extends JFrame implements ActionListener,KeyListener{
  27.     Font timesRoman = new Font("TimesRoman",Font.BOLD, 24);
  28.     //dibaca buat font timesRoman dengan jenis TimesRoman,Dibold, ukuran 24
  29.     //Component
  30.     JTextField nama = new JTextField();
  31.     JTextField email = new JTextField();
  32.     JPasswordField pass1=new JPasswordField();
  33.     JPasswordField pass2=new JPasswordField();
  34.     JRadioButton male=new JRadioButton("Laki-laki");
  35.     JRadioButton female=new JRadioButton("Perempuan");
  36.     ButtonGroup gender = new ButtonGroup();
  37.     //ButtonGroup mengabungkan male+female biar hanya bisa pilih salah satu
  38.     JCheckBox Hobi1=new JCheckBox("Membaca");
  39.     JCheckBox Hobi2=new JCheckBox("Menulis");
  40.     JCheckBox Hobi3=new JCheckBox("Mengambar");
  41.     //ga perlu di ButtonGroup, bisa pilih >1
  42.     String[] Bulan={" ","Januari","Februari","Maret","April","Mei","Juni","Lainnya"};
  43.     //buat index 0 nya kosong, untuk memudahkan validasi
  44.     JComboBox<String> bulanLahir = new JComboBox(Bulan);//masukin bulan ke combobox\
  45.     String[] Pekerjaan={"Nelayan","Petani","Pelaut","Penyair","Pelukis",
  46.         "Programer","Ilmuwan","Pekerja Negeri Sipil","Karyawan Swasta","Lainya"};
  47.     JList<String> job=new JList(Pekerjaan);//masukin list pekerjaan ke jList
  48.     JScrollPane jobScroll=new JScrollPane(job);//supaya ada scrollnya
  49.     JButton register=new JButton("Submit");
  50.     JButton ulang=new JButton("Reset");
  51.     //panel/penampung, kalo di html biasa dikenal dengan div
  52.     JPanel x=new JPanel(new GridLayout(0,2,5,5));
  53.     //dibaca: x adalah panel(div) dengan baris tak hingga & kolomnya 2
  54.     //memiliki jarak antar baris 5 dan antar kolom 5
  55.     //setelah di tuliskan semua component, masukan ke form.
  56.    
  57.     public BAHANUAS() {//constructor
  58.         init();//buat masukin component kedalam form
  59.         pack();//kalo udah beres,ilangin yg setExtendedState di form() ganti ini
  60.         //biar nyesuain sendiri ukuranya, kalo di html width %, height %
  61.         form();//tampilkan formnya.
  62.     }
  63.    
  64.     public void form(){
  65.         setDefaultCloseOperation(EXIT_ON_CLOSE);//supaya bisa di pencet x close
  66.         setVisible(true);//supaya keliatan
  67.         setLocationRelativeTo(null);//supaya pas di compile ada di tengah
  68.         //setExtendedState(MAXIMIZED_BOTH);//untuk awal pake ini biar keliatan
  69.     }
  70.    
  71.     public void init(){//tampilan form & event handling
  72.         JLabel header=new JLabel("FORM REGISTRASI");
  73.         x.add(header);
  74.         header.setFont(timesRoman);
  75.         x.add(new JLabel(""));//akal2an untuk ngisi kolom kosong
  76.         x.add(new JLabel("Nama Lengkap"));
  77.         //jlabel di masukan di sini karena tidak akan di gunakan di action listener
  78.         x.add(nama);//masukinya urut dari baris1-kolom1 ke b1-k2 ke b2-k1 dstnya
  79.         x.add(new JLabel("Email"));
  80.         x.add(email);
  81.         x.add(new JLabel("Password"));
  82.         x.add(pass1);
  83.         x.add(new JLabel("Ulangi Password"));
  84.         x.add(pass2);pass2.addKeyListener(this);//key listener supaya pass pasword sama dia kelaur popup
  85.         //masukin dulu radio button ke grup
  86.         x.add(new JLabel("Gender"));
  87.         gender.add(male);//male.addActionListener(this);
  88.         gender.add(female);
  89.         //masukin grup(radio button) ke panel
  90.         JPanel genderPanel =new JPanel(new GridLayout(1, 2));
  91.         //bikin satu panel lagi karena di dalam x hanya ada 2 kolom
  92.         //sedangkan di baris ini perlu 3
  93.         genderPanel.add(male);
  94.         genderPanel.add(female);
  95.         //masukin panel baru ke panel awal(x)
  96.         x.add(genderPanel);
  97.         x.add(new JLabel("Hobi"));
  98.         JPanel hobiPanel =new JPanel(new GridLayout(2, 2));//idem dengan gender
  99.         hobiPanel.add(Hobi1);
  100.         hobiPanel.add(Hobi2);
  101.         hobiPanel.add(Hobi3);
  102.         x.add(hobiPanel);
  103.         x.add(new JLabel("Bulan Lahir"));
  104.         x.add(bulanLahir);
  105.         x.add(new JLabel("Pekerjaan"));
  106.         x.add(jobScroll);//scroll ga usah action listener
  107.         x.setBorder(BorderFactory.createEmptyBorder(15 , 30, 15, 30));
  108.         x.add(register);register.addActionListener(this);
  109.         //.addActionListener untuk handling event pas dipencet
  110.         x.add(ulang);ulang.addActionListener(this);
  111.         //baca: panel x dibikin margin atas 15 kiri 30 bawah 15 dan kanan 30
  112.         add(x);
  113.     }
  114.    
  115.     public static void main(String[] args) {
  116.         new BAHANUAS();
  117.     }
  118.  
  119.     public boolean validasi(){
  120.         if (nama.getText().equals("")||nama.getText().matches(".*\\d+.*")){
  121.             //validasi nama tidak boleh kosong dan mengandung angka
  122.             //.* bebas \\ angka +.* isibebas
  123.             JOptionPane.showMessageDialog(null, "Nama tidak boleh kosong & mengandung Angka");
  124.             //baca: buat message box dengan asal null, dan isi pesanya
  125.             return false;
  126.         }
  127.         else if (!email.getText().matches(".*@.*\\..*")||email.getText().endsWith(".")){
  128.             // .*(isi bebas)
  129.             //@(setelah isi bebas harus ada @)
  130.             //.*(isi bebas lagi)
  131.             //\\.(harus ada titik)
  132.             //.*(isi bebas lagi)
  133.             JOptionPane.showMessageDialog(null, "Email tidak valid,format email[xxxxxx@xxxxx.xxxxx]");
  134.             return false;
  135.         }
  136.         else if (pass1.getText().equals("")||!pass1.getText().equals(pass2.getText())
  137.                 ||pass1.getText().length()<6||!pass1.getText().matches(".*\\d+.*")){
  138.             JOptionPane.showMessageDialog(null, "Password Harus >6 dan memiliki angka");
  139.             return false;
  140.         }
  141.         else if (!male.isSelected()&&!female.isSelected()){
  142.         //radio +list cek pake is selected
  143.             JOptionPane.showMessageDialog(null, "Gender Belum dipilih");
  144.             return false;
  145.         }
  146.         else if (!Hobi1.isSelected()&&!Hobi2.isSelected()&&!Hobi3.isSelected()){
  147.             JOptionPane.showMessageDialog(null, "Hobi Belum dipilih");
  148.             return false;
  149.         }
  150.         else if (bulanLahir.getSelectedIndex()==0){
  151.         //cek index ke 0 pilihan kosong
  152.             JOptionPane.showMessageDialog(null, "Bulan lahir belum dipilih");
  153.             return false;
  154.         }
  155.         else if (job.isSelectionEmpty()){
  156.             JOptionPane.showMessageDialog(null, "Pekerjaan belum dipilih");
  157.             return false;
  158.         }
  159.         else
  160.             return true;
  161.     }
  162.    
  163.     public void reset(){
  164.         nama.setText("");
  165.         email.setText("");
  166.         pass1.setText("");
  167.         pass2.setText("");
  168.         gender.clearSelection();
  169.         Hobi1.setSelected(false);
  170.         Hobi2.setSelected(false);
  171.         Hobi3.setSelected(false);
  172.         bulanLahir.setSelectedIndex(0);//balikin ke pil index 0(pilihan kosong)
  173.         job.clearSelection();//ilangin pilihan
  174.     }
  175.    
  176.     @Override
  177.     public void actionPerformed(ActionEvent e) {
  178.         if (e.getActionCommand().equals("Submit")&&validasi()) {
  179.             JOptionPane.showConfirmDialog(null, "Konfimasi kembali, apakah semua data sudah benar?",
  180.                     "CONFIRMATION DIALOG",JOptionPane.YES_NO_OPTION);
  181.             //dibaca: buat confirm box, dengan asal null, isi pesanya, nama boxnya, dan tipe jawabanya
  182.         }
  183.         else if (e.getActionCommand().equals("Reset")) {
  184.             reset();
  185.         }
  186.     }
  187.  
  188.     @Override
  189.     public void keyTyped(KeyEvent e) {
  190.        
  191.     }
  192.  
  193.     @Override
  194.     public void keyPressed(KeyEvent e) {
  195.        
  196.     }
  197.  
  198.     @Override
  199.     public void keyReleased(KeyEvent e) {
  200.         if (!pass1.getText().equals("")&&pass1.getText().equals(pass2.getText())
  201.                 &&!(e.getKeyCode()=='\n')){
  202.             JOptionPane.showMessageDialog(null, "Password cocok");
  203.         }
  204.         //!(e.getKeyCode()=='\n') artinya jika user klik enter dia ga kena ke ceknya
  205.         //keyreleased mengecheck setelah user melepas input keyboard
  206.         //di baca:jika pass1 tidak kosong dan isi pass1==pass2 munculkan dialog box
  207.     }
  208.    
  209. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement