Rabu, 10 Januari 2018

Langkah-Langkah Membuat One Time Password Menggunakan Neatbeans dan Android Studio

Nama : Yulia Selvy Nastiti
NIM    : 5150311055



TAMPILAN PROGRAM DAN SYNTAX OTP PADA NETBEANS

  1. Pertama buka aplikasi Netbeans
  2. Cari menu file kemudian klik New Project
    3. Klik java lalu klik java application dan next
    4. Selanjutnya beri nama dan klik Finish
    5. Kemudian tambahkan Package, JavaClass, dan JFrame. Seperti contoh dibawah :
  -package gui : 2 JFrame yang diberi nama JFrameLogin dan JFrameMenu
  -package dec : Java Class beri nama Decrypt
  -package enc : Java Class beri nama Encrypt
  -package  random : Java Class beri nama Random  
      
     6. Masukkan Syntax Encrypt


package enc;import random.Random;public class Encrypt {     private String asli="TEST";    public Encrypt() {        Random rd = new Random();        this.asli = rd.getStr();    }    public String getPalsu() {        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";        //String toEncrypt = "Aku kirim sejumlah Rp.17.800.100,00 \"(tujuh belas juta)\" syaratnya harus lengkap";        String toEncrypt = this.asli;        WordKey = WordKey.toLowerCase();        toEncrypt = toEncrypt.toLowerCase();        char wordArray[] = WordKey.toCharArray();        char numArray[] = NumKey.toCharArray();        char charArray[] = toEncrypt.toCharArray();        char codeArray[] = CodeKey.toCharArray();        for (int i = 0; i < toEncrypt.length(); i++) {            if (Character.isLetter(charArray[i])) {                if (Character.isUpperCase(charArray[i])) {                    charArray[i] = (char) (((int) charArray[i] - 65 + ((int) wordArray[i] - 97)) % 26 + 65);                } else {                    charArray[i] = (char) (((int) charArray[i] - 97 + ((int) wordArray[i] - 97)) % 26 + 97);                }            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {                charArray[i] = (char) (((int) charArray[i] - 48 + ((int) numArray[i])) % 10 + 48);            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {                charArray[i] = (char) (((int) charArray[i] - 30 + ((int) codeArray[i])) % 18 + 30);            }        }        toEncrypt = new String(charArray);        return toEncrypt;    }    public void setPalsu(String palsu) {        this.palsu = palsu;    }    public String getAsli() {                return asli;    }    public void setAsli(String asli) {        this.asli = asli;    }}    7. Masukkan Syntax decryptpackage dec;public class Decrypt {private String alsi; public Decrypt() {    }    public String getAlsi() {        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";        String toDecrypt = this.alsi;        WordKey = WordKey.toLowerCase();        toDecrypt = toDecrypt.toUpperCase();        char wordArray[] = WordKey.toCharArray();        char numArray[] = NumKey.toCharArray();        char charArray[] = toDecrypt.toCharArray();        char codeArray[] = CodeKey.toCharArray();        for (int i = 0; i < toDecrypt.length(); i++) {            if (Character.isLetter(charArray[i])) {                if (Character.isUpperCase(charArray[i])) {                    charArray[i] = (char) (((int) charArray[i] - 65 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 65);                } else {                    charArray[i] = (char) (((int) charArray[i] - 97 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 97);                }            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {                charArray[i] = (char) (((int) charArray[i] - 48 - ((int) numArray[i]) + 80) % 10 + 48);            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {                charArray[i] = (char) (((int) charArray[i] - 30 - ((int) codeArray[i])) % 18 + 48);            }        }        toDecrypt = new String(charArray);        return toDecrypt;    }    public void setAlsi(String alsi) {        this.alsi = alsi;    }}   8. Masukkan Syntax Randompackage random;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;public class Random {    private String str;    public String getStr() {        //============== JANGKRIK ============================        //int randomPin = (int) (Math.random() * 9000) + 1000;        //str = String.valueOf(randomPin);        //========== END OF JANGKRIK =========================        //DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        DateFormat df = new SimpleDateFormat("ssmm");                Calendar cl = Calendar.getInstance();        str = ""+df.format(cl.getTime());        str = "9"+str+"4";        /*        String cr = "";        String hs = "";        for (int i = 0; i < str.length(); i++) {            cr = str.substring(i, i + 1);            int ii = Integer.parseInt(cr);            if (ii == 0) {                cr = "A";            } else if (ii == 1) {                cr = "B";            } else if (ii == 2) {                cr = "C";            } else if (ii == 3) {                cr = "D";            } else if (ii == 4) {                cr = "E";            } else if (ii == 5) {                cr = "F";            } else if (ii == 6) {                cr = "G";            } else if (ii == 7) {                cr = "H";            } else if (ii == 8) {                cr = "I";            } else if (ii == 9) {                cr = "J";            } else {                cr = "";            }            hs = hs + cr;        } */        return str;    }public void setStr(String str) {    }}9.Klik JframeLogin dan buat tampilan seperti dibawah ini :

Syntaxnya :

 masukkan import di package gui
      package gui;
import dec.Decrypt;
import enc.Encrypt;
import gui.JFrameMenu;
import javax.swing.JOptionPane;

- Tambahkan initComponents: 
            jLblPalsu.setText(getPwdPalsu());

- Tambahkan private string getPwdAsli dan getPwdPalsu dibawah fungsi components
     
     private String getPwdAsli(){
        Encrypt enc = new Encrypt();
        return enc.getAsli();
    }
    private String getPwdPalsu(){
        Encrypt enc = new Encrypt();
        return enc.getPalsu();
    } 

 - Masukan syntax di button Decrypt

  private void jBtnToDecryptActionPerformed(java.awt.event.ActionEvent evt) {                                            
  String jtxttodec = jTxtToDecrypt.getText();
        Decrypt dec = new Decrypt();
        dec.setAlsi(jtxttodec);
        jLblAsli.setText(dec.getAlsi());  
-masukkan syntax di button Login

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
        if (jTextField1.getText().equals("admin")) {
if (jPasswordField1.getText().equals(jLblAsli.getText())) {
// Bila Login Sukses Maka Masuk Menu Utama
new JFrameMenu().show();
this.dispose(); }
else {

// Bila Login Gagal Maka Ulangi Login

JOptionPane.showMessageDialog(rootPane, "<error> Password Salah, Silahkan Coba Lagi");
jTextField1.setText("");
jPasswordField1.requestFocus(); }}
else {
JOptionPane.showMessageDialog(rootPane, "<error> Username, Silahkan Coba Lagi");
jTextField1.setText("");
jPasswordField1.setText("");
jTextField1.requestFocus();
}
    }                                      
 
- Pilih  random dan masukkan syntax di Java Class Random.java
//masukkan import dibawah ini : 

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Random {

    private String str;

    public String getStr() {
        //============== JANGKRIK ============================
        //int randomPin = (int) (Math.random() * 9000) + 1000;
        //str = String.valueOf(randomPin);
        //========== END OF JANGKRIK =========================
        //DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        DateFormat df = new SimpleDateFormat("ssmm");      
        Calendar cl = Calendar.getInstance();
        str = ""+df.format(cl.getTime());
        str = "9"+str+"4";
        /*
        String cr = "";
        String hs = "";
        for (int i = 0; i < str.length(); i++) {
            cr = str.substring(i, i + 1);
            int ii = Integer.parseInt(cr);
            if (ii == 0) {
                cr = "A";
            } else if (ii == 1) {
                cr = "B";
            } else if (ii == 2) {
                cr = "C";
            } else if (ii == 3) {
                cr = "D";
            } else if (ii == 4) {
                cr = "E";
            } else if (ii == 5) {
                cr = "F";
            } else if (ii == 6) {
                cr = "G";
            } else if (ii == 7) {
                cr = "H";
            } else if (ii == 8) {
                cr = "I";
            } else if (ii == 9) {
                cr = "J";
            } else {
                cr = "";
            }
            hs = hs + cr;
        }
*/
        return str;
    }

    public void setStr(String str) {
    }
}

10. Klik JFrameMenu dan buat tampilannya
TUTORIAL TAMPILAN OTP DI  ANDROID STUDIO
1.  Open Android Studio
2. Buatlah New Project 
3. Berilah nama New Project
4. Kemudian KlikEmpty Activity
5. Pilih  MainActivity pada Java dan beri syntax :

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
    TextView tvpwdasli;
    EditText edttxtpalsu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void btnOkClick(View view){
        tvpwdasli = (TextView ) findViewById(R.id.tvPwdAsli);
        edttxtpalsu = (EditText) findViewById(R.id.edttxtpalsu);
        String palsu = edttxtpalsu.getText().toString();
        OtpDecrypt obj = new OtpDecrypt(palsu);
        tvpwdasli.setText(obj.getPwdasli());
    }
}

 6. Klik activity_main.xml dan beri syntax

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    xmlns:app="http://schemas.android.com/apk/res-auto"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:paddingBottom="@dimen/activity_vertical_margin"    android:background="#41798b"    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edttxtpalsu"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:hint="PASSWORD PALSU"        android:layout_marginTop="50dp"        android:textColorHint="#fff"        android:textColor="#fff"        android:inputType="text" />

    <Button        android:id="@+id/btnOkId"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="btnOkClick"        android:layout_marginTop="30dp"        android:layout_marginLeft="20dp"        android:background="#000"        android:layout_centerHorizontal="true"        android:textColor="#fff"        android:text="OKE"        android:layout_below="@+id/edttxtpalsu"       />

    <TextView        android:id="@+id/tvPwdAsli"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textColor="#fff"        android:textSize="36sp"        android:textStyle="bold"        android:layout_below="@+id/edttxtpalsu"        android:layout_marginTop="200dp"        android:layout_centerHorizontal="true"/>
</RelativeLayout>
7. Tambahkan Java Class dan beri nama OtpDecrypt dan beri syntax :
 
public class OtpDecrypt {

    private String pwdasli;

    public OtpDecrypt() {
    }

    public OtpDecrypt(String pwdasli) {
        this.pwdasli = pwdasli;
    }

    public String getPwdasli() {
        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";
        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";
        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";

        String toDecrypt = this.pwdasli;

        WordKey = WordKey.toLowerCase();
        toDecrypt = toDecrypt.toUpperCase();

        char wordArray[] = WordKey.toCharArray();
        char numArray[] = NumKey.toCharArray();
        char charArray[] = toDecrypt.toCharArray();
        char codeArray[] = CodeKey.toCharArray();

        for (int i = 0; i < toDecrypt.length(); i++) {
            if (Character.isLetter(charArray[i])) {
                if (Character.isUpperCase(charArray[i])) {
                    charArray[i] = (char) (((int) charArray[i] - 65 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 65);
                } else {
                    charArray[i] = (char) (((int) charArray[i] - 97 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 97);
                }
            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {
                charArray[i] = (char) (((int) charArray[i] - 48 - ((int) numArray[i]) + 80) % 10 + 48);
            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {
                charArray[i] = (char) (((int) charArray[i] - 30 - ((int) codeArray[i])) % 18 + 48);
            }
        }

        toDecrypt = new String(charArray);
        return toDecrypt;

    }

    public void setPwdasli(String pwdasli) {
        this.pwdasli = pwdasli;
    }
}

8. Syntax Colors.xml
 
<?xml version="1.0" encoding="utf-8"?><resources>
    <color name="colorPrimary">#262756</color>
    <color name="colorPrimaryDark">#f11a1a68</color>
    <color name="colorAccent">#FF4081</color>
</resources>

9.TAMPILAN APLIKASI ANDROID STUDIO

1. Setelah itu Runing Program Android Studionya 
2. Lalu Javanya 
3. Masukkan password Palsu yang berada di Java pada Aplikasi android dan press
4. Akan muncul password asli lalu massukan pada field decrypt dan klik button decrypt
5. Akan muncul password Hasil dari password asli
6. Masukkan User (pengurus) dan password yang telah didecrypt dan klik login
7.Setelah itu akan masuk ke MENU TAMPILAN
8.SELESAI DONE FIN DLL