Implementasi QR Code Dan Algoritma Vigenere Pada Sistem Laporan Kehilangan Kendaraan Bermotor

  LAMPIRAN A (KODE PROGRAM) 1. link_sandi.php (Vigenere)

  <?php i ncl ude " vi g63. php" ; i ncl ude " vi g95. php" ; / * 63 kar akt er Enkr i psi ===================================================* / f unct i on l i nkenkr i p( $x) {

  $pl ant ext = $x; $kunci = " 1nd0n3s14" ; $panj ang_kunci = st r l en( $kunci ) ; / / panj ang kar akt er kunci $panj ang_pl ant ext = st r l en( $pl ant ext ) ; / / panj ang kar akt er pl ant ext $spl i t _kunci = st r _spl i t ( $kunci ) ; / / memi sahkan kunci / kar akt er $spl i t _pl ant ext = st r _spl i t ( $pl ant ext ) ; / / memi sahkan pl ant ext

  / kar akt er $ci pt o = ar r ay( ) ; $i =0; f or ( $j =0; $j <$panj ang_pl ant ext ; $j ++) / / pengul angan kunci sampai panj ang pl ant ext

  { i f ( $i == $panj ang_kunci ) { $i = 0; }

  $spl i t _kunci 2[ $j ] = $spl i t _kunci [ $i ] ; $i ++;

  } f or ( $k=0; $k<$panj ang_pl ant ext ; $k++) / / Pr oses enkr i psi vi gener e {

  $a = kar _ke_des( $spl i t _kunci 2[ $k] ) ; / / menggant i hur uf pada kunci menj adi angka $b = kar _ke_des( $spl i t _pl ant ext [ $k] ) ; / / menggant i hur uf pada pl ant ext menj adi angka i f ( ( $a && $b) ! = nul l ) {

  $ci pt o[ $k] = vi gener e_enkr i psi ( $a, $b) ; } el se{ $ci pt o[ $k] = $spl i t _pl ant ext [ $k] ; }

  } $ni l ai = ar r ay_val ues( $ci pt o) ; / / menyat ukan ar r ay $ni l ai 1 = i mpl ode( $ni l ai ) ; / / konver t ar r ay ke st r i ng r et ur n $ni l ai 1;

  } / * 63 kar akt er Dekr i psi ===================================================* / f unct i on l i nkdekr i p( $x) {

  $kunci = " 1nd0n3s14" ; $pecahURI = expl ode( ' ?' , $x) ; $pl ant ext = $pecahURI [ 1] ; $panj ang_kunci = st r l en( $kunci ) ; / / panj ang kar akt er kunci $panj ang_pl ant ext = st r l en( $pl ant ext ) ; / / panj ang kar akt er pl ant ext $spl i t _kunci = st r _spl i t ( $kunci ) ; / / memi sahkan kunci per kar akt er $spl i t _pl ant ext = st r _spl i t ( $pl ant ext ) ; / / memi sahkan pl ant ext per kar akt er $ci pt o = ar r ay( ) ;

  $i =0; f or ( $j =0; $j <$panj ang_pl ant ext ; $j ++) / / pengul angan kunci sampai panj ang pl ant ext

  { i f ( $i == $panj ang_kunci ) { $i = 0; }

  $spl i t _kunci 2[ $j ] = $spl i t _kunci [ $i ] ; $i ++;

  } f or ( $k=0; $k<$panj ang_pl ant ext ; $k++) / / Pr oses enkr i psi vi gener e {

  $a = kar _ke_des( $spl i t _kunci 2[ $k] ) ; / / menggant i hur uf pada kunci menj adi angka $b = kar _ke_des( $spl i t _pl ant ext [ $k] ) ; / / menggant i hur uf pada pl ant ext menj adi angka i f ( ( $a && $b) ! = nul l ) {

  $ci pt o[ $k] = vi gener e_dekr i psi ( $b, $a) ; } el se { $ci pt o[ $k] = $spl i t _pl ant ext [ $k] ; }

  } $ni l ai = ar r ay_val ues( $ci pt o) ; / / menyat ukan ar r ay $ni l ai 1 = i mpl ode( $ni l ai ) ; / / konver t ar r ay ke st r i ng $pecahNi l ai = expl ode( ' &' , $ni l ai 1) ; f or ( $i =0; $i <= count ( $pecahNi l ai ) - 1; $i ++) {

  $decode = expl ode( ' =' , $pecahNi l ai [ $i ] ) ; $var [ $decode[ 0] ] = $decode[ 1] ; } r et ur n $var ;

  } / * dekr i psi get dar i ur l =================================================* / f unct i on andr oi dl i nkdekr i p( $x) {

  $kunci = " 1nd0n3s14" ; $pecahURI = expl ode( ' ?' , $x) ; $pl ant ext = $pecahURI [ 1] ; $panj ang_kunci = st r l en( $kunci ) ; / / panj ang kar akt er kunci $panj ang_pl ant ext = st r l en( $pl ant ext ) ; / / panj ang kar akt er pl ant ext $spl i t _kunci = st r _spl i t ( $kunci ) ; / / memi sahkan kunci per kar akt er $spl i t _pl ant ext = st r _spl i t ( $pl ant ext ) ; / / memi sahkan pl ant ext per kar akt er $ci pt o = ar r ay( ) ; $i =0; f or ( $j =0; $j <$panj ang_pl ant ext ; $j ++) / / pengul angan kunci sampai panj ang pl ant ext

  { i f ( $i == $panj ang_kunci ) { $i = 0; }

  $spl i t _kunci 2[ $j ] = $spl i t _kunci [ $i ] ; $i ++;

  } f or ( $k=0; $k<$panj ang_pl ant ext ; $k++) / / Pr oses enkr i psi vi gener e {

  $a = kar _ke_des( $spl i t _kunci 2[ $k] ) ; / / menggant i hur uf pada kunci menj adi angka $b = kar _ke_des( $spl i t _pl ant ext [ $k] ) ; / / menggant i hur uf pada pl ant ext menj adi angka i f ( ( $a && $b) ! = nul l ) {

  $ci pt o[ $k] = vi gener e_dekr i psi ( $b, $a) ; } el se{ $ci pt o[ $k] = $spl i t _pl ant ext [ $k] ; }

  } $ni l ai = ar r ay_val ues( $ci pt o) ; / / menyat ukan ar r ay $ni l ai 1 = i mpl ode( $ni l ai ) ; / / konver t ar r ay ke st r i ng $pecahNi l ai = expl ode( ' GcP' , $ni l ai 1) ; f or ( $i =0; $i <= count ( $pecahNi l ai ) - 1; $i ++) {

  $decode = expl ode( ' =' , $pecahNi l ai [ $i ] ) ; $var [ $decode[ 0] ] = $decode[ 1] ; } r et ur n $var ;

  } / * 95 kar akt er Enkr i psi ===================================================* / f unct i on enkr i psi ( $x, $y) {

  $kunci = $y; $pl ant ext = $x; $panj ang_kunci = st r l en( $kunci ) ; / / panj ang kar akt er kunci $panj ang_pl ant ext = st r l en( $pl ant ext ) ; / / panj ang kar akt er pl ant ext $spl i t _kunci = st r _spl i t ( $kunci ) ; / / memi sahkan kunci per kar akt er $spl i t _pl ant ext = st r _spl i t ( $pl ant ext ) ; / / memi sahkan pl ant ext per kar akt er $ci pt o = ar r ay( ) ; $i =0; f or ( $j =0; $j <$panj ang_pl ant ext ; $j ++) / / pengul angan kunci sampai panj ang pl ant ext

  { i f ( $i == $panj ang_kunci ) { $i = 0; }

  $spl i t _kunci 2[ $j ] = $spl i t _kunci [ $i ] ; $i ++;

  } f or ( $k=0; $k<$panj ang_pl ant ext ; $k++) / / Pr oses enkr i psi vi gener e {

  $a = char _t o_dec( $spl i t _kunci 2[ $k] ) ; / / menggant i hur uf pada kunci menj adi angka $b = char _t o_dec( $spl i t _pl ant ext [ $k] ) ; / / menggant i hur uf pada pl ant ext menj adi angka i f ( ( $a && $b) ! = nul l ) {

  $ci pt o[ $k] = t abel _vi gener e_encr ypt ( $a, $b) ; } el se{ echo $spl i t _pl ant ext [ $k] ; / / menampi l kan pl ant ext $ci pt o[ $k] = $spl i t _pl ant ext [ $k] ; }

  } $ni l ai = ar r ay_val ues( $ci pt o) ; / / menyat ukan ar r ay $ni l ai 1 = i mpl ode( $ni l ai ) ; / / konver t ar r ay ke st r i ng r et ur n $ni l ai 1; } ?>

  2. vig95.php (Vigenere 95)

  <?php f unct i on char _t o_dec( $a) / / mer ubah kar akt er menj adi desi mal asci i asci i {

  $i = or d( $a) ; i f ( $i >=97 && $i <=122) { / / asci i desi mal hur uf keci l r et ur n ( $i - 96) ; } / / 1 s/ d 26 el se i f ( $i >=65 && $i <=90) { / / asci i desi mal hur uf besar r et ur n ( $i - 38) ; } / / 27 s/ d 52 el se i f ( $i >=48 && $i <=57) { / / asci i desi mal angka r et ur n ( $i +5) ; } / / 53 s/ d 62 el se i f ( $i >=32 && $i <=47) { / / asci i desi mal spasi s/ d / r et ur n ( $i +31) ; } / / 63 s/ d 78 el se i f ( $i >=58 && $i <=64) { / / asci i desi mal : s/ d @ r et ur n ( $i +21) ; } / / 79 s/ d 85 el se i f ( $i >=91 && $i <=96) { / / asci i desi mal [ s/ d ' r et ur n ( $i - 5) ; } / / 86 s/ d 91 el se i f ( $i >=123 && $i <=126) { / / asci i desi mal { s/ d ~ r et ur n ( $i - 31) ; } / / 92 s/ d 95 el se{ r et ur n nul l ; }

  } f unct i on dec_t o_char ( $a) / / mer ubah desi mal menj adi kar akt er sesuai asci i { i f ( $a>=1 && $a<=26) { / / asci i desi mal hur uf keci l r et ur n ( chr ( $a+96) ) ; } el se i f ( $a>=27 && $a<=52) { / / asci i desi mal hur uf besar r et ur n ( chr ( $a+38) ) ; } el se i f ( $a>=53 && $a<=62) { / / asci i desi mal angka r et ur n ( chr ( $a- 5) ) ; } el se i f ( $a>=63 && $a<=78) { / / asci i desi mal spasi s/ d / r et ur n ( chr ( $a- 31) ) ; } el se i f ( $a>=79 && $a<=85) { / / asci i desi mal : s/ d @ r et ur n ( chr ( $a- 21) ) ; } el se i f ( $a>=86 && $a<=91) { / / asci i desi mal [ s/ d ' r et ur n ( chr ( $a+5) ) ; } el se i f ( $a>=92 && $a<=95) { / / asci i desi mal { s/ d ~ r et ur n ( chr ( $a+31) ) ; } el se{ r et ur n nul l ; }

  } f unct i on t abel _vi gener e_encr ypt ( $a, $b) / / r umus enkr i psi {

  $i =$a+$b- 1; i f ( $i >95) { $i =$i - 95; } r et ur n ( dec_t o_char ( $i ) ) ;

  } f unct i on t abel _vi gener e_decr ypt ( $a, $b) / / r umus deskr i psi {

  $i =$a- $b+1; i f ( $i <1) { $i =$i +95; } r et ur n ( dec_t o_char ( $i ) ) ;

  } ?>

  3. admin_input_proses.php (QR Code Proses)

  / * 95 kar akt er Enkr i psi ===================================================* / $pl ant ext = $No_Pol i si . " ; " . $Nama. " ; " . $Al amat . " ; " . $No_Rangka. " ; " . $No_Mesi n; $kunci = " 1nd0n3s14" ; $ni l ai 1 = enkr i psi ( $pl ant ext , $kunci ) ; $ni l ai 2 = " GcP" . $ni l ai 1. " PcG" ; / * QR Code Pr oses=========================================================* / echo " <h1 al i gn=' cent er ' ><i mg sr c=' . . / ot her / i mages/ Lambang_Pol r i . png' hei ght ' 120' wi dt h=' 91' >Dat a QR Code</ h1><hr / >" ; / / l okasi t empat $PNG_TEMP_DI R=di r name( __FI LE__) . DI RECTORY_SEPARATOR. ' t emp' . DI RECTORY_SEPARA TOR; / / t empat png qr code $PNG_WEB_DI R = ' t emp/ ' ; / / cek t empat & membuat l okasi t empat i f ( ! f i l e_exi st s( $PNG_TEMP_DI R) ) mkdi r ( $PNG_TEMP_DI R) ;

  / / nama f i l e gambar $PK = ( st r l en( $ni l ai 2) - 5) ; / / panj ang t ext di kur ang 5 $sub1 = subst r ( $ni l ai 2, 0 , 5) ; / / menampi l kan 10 kar akt er saj a $sub2 = subst r ( $ni l ai 2, $PK ) ; / / menampi l kan 5 hur uf t er akhi r $subj oi n = $sub1. " " . $sub2; / / menggabungkan $anj ar = $subj oi n; / / pr oses $er r or Cor r ect i onLevel = ' M' ; $mat r i xPoi nt Si ze = 8; $f i l ename=$PNG_TEMP_DI R. ' anj ar ' . md5( $anj ar . ' | ' . $er r or Cor r ect i onLevel . ' | ' . $m at r i xPoi nt Si ze) . ' . png' ; i f ( i sset ( $_REQUEST[ ' dat a' ] ) ) {

  / / cek dat a i f ( t r i m( $_REQUEST[ ' dat a' ] ) == ' ' ) di e( ' <p al i gn=" cent er " >Dat a Ti dak bol eh Kosong! <a hr ef =" j avascr i pt : j avascr i pt : hi st or y. go( - 1) " >Kembal i </ a></ p>' ) ;

  / / user dat a $f i l ename=$PNG_TEMP_DI R. ' anj ar ' . md5( $_REQUEST[ ' dat a' ] . ' | ' . $er r or Cor r e ct i onLevel . ' | ' . $mat r i xPoi nt Si ze) . ' . png' ; QRcode: : png( $_REQUEST[ ' dat a' ] , $f i l ename, $er r or Cor r ect i onLevel ,

  $mat r i xPoi nt Si ze, 2) ; } el se{

  / / def aul t dat a QRcode: : png( $ni l ai 2, $f i l ename, $er r or Cor r ect i onLevel ,

  $mat r i xPoi nt Si ze, 2) ; } / / menampi l kan qr code echo " <p al i gn=' cent er ' ><b>" . $dat a[ ' No_Pol i si ' ] . " </ b></ p>" ; echo " <p al i gn=' cent er ' ><i mg i d=' i mg' wi dt h=' 133' hei ght =' 133' sr c=' " . $PNG_WEB_DI R. basename( $f i l ename) . " ' / >" ; echo " </ br ><i >Dat a sesuai dengan STNK</ i ></ br ></ p>" ; echo " <p al i gn=' cent er ' ><a hr ef =' j avascr i pt : wi ndow. pr i nt ( ) ' >Cet ak</ a><hr / ></ p>" ;

  4. cek.php (Cek data)

  <?php i ncl ude " . . / koneksi . php" ; i ncl ude " . . / vi gener e/ l i nk_sandi . php" ; $var = andr oi dl i nkdekr i p( $_SERVER[ ' REQUEST_URI ' ] ) ; $sandi 1 = " 1nd0n3s14" ; $sandi 2 = " NuS4nT4r a" ; i f ( $var [ ' op' ] == " cekDat a" ) / / Hasi l Scan Act i vi t y {

  $No_Pol i si = $var [ " NoPol i si " ] ; $quer y = " sel ect * f r om dat a_kehi l angan wher e

  No_Pol i si =' $No_Pol i si ' " ; $hasi l = mysql _quer y( $quer y) ; i f ( mysql _num_r ows( $hasi l ) > 0) {

  $r esponse = ar r ay( ) ; $r esponse[ " cek" ] = ar r ay( ) ; $dat a = mysql _f et ch_ar r ay( $hasi l ) ; $h[ ' NoPol i si ' ] = $dat a[ ' No_Pol i si ' ] ; $h[ ' Nama' ] = $dat a[ ' nama' ] ; $h[ ' NoTel epon' ] = $dat a[ ' no_t el epon' ] ; $h[ ' dat a1' ] = $dat a[ ' st at us_i d' ] ; ar r ay_push( $r esponse[ " cek" ] , $h) ; $r esponse[ " sukses" ] = " 1" ; $j son = j son_encode( $r esponse) ; echo enkr i psi ( $j son, $sandi 2) ; } el se{

  $r esponse = ar r ay( ) ; $r esponse[ " cek" ] = ar r ay( ) ;

  $h[ ' dat a' ] = " Ti dak ada dat a" ; ar r ay_push( $r esponse[ " cek" ] , $h) ; $r esponse[ " sukses" ] = " 2" ; $j son = j son_encode( $r esponse) ; echo enkr i psi ( $j son, $sandi 2) ; }

  } el se{ $r esponse = ar r ay( ) ; $r esponse[ " cek" ] = ar r ay( ) ;

  $h[ ' dat a' ] = " Er r or 09" ; ar r ay_push( $r esponse[ " cek" ] , $h) ; $r esponse[ " sukses" ] = " 0" ; $j son = j son_encode( $r esponse) ; echo enkr i psi ( $j son, $sandi 2) ; } ?>

5. MainActivity.java (Halaman utama aplikasi mobile dan Scan QR Code)

  package i d. anj ar . pr oj ect z1; i mpor t com. googl e. zxi ng. i nt egr at i on. andr oi d. I nt ent I nt egr at or ; i mpor t com. googl e. zxi ng. i nt egr at i on. andr oi d. I nt ent Resul t ; i mpor t i d. anj ar . pr oj ect z1. R; publ i c cl ass Mai nAct i vi t y ext ends Act i vi t y i mpl ement s OnCl i ckLi st ener { pr i vat e But t on scanBt n, cekBt n, exi t Bt n; cekI nt er net cekNet ; Bool ean Net Ter sedi a = f al se; @Over r i de pr ot ect ed voi d onCr eat e( Bundl e savedI nst anceSt at e) { super . onCr eat e( savedI nst anceSt at e) ; set Cont ent Vi ew( R. l ayout . act i vi t y_mai n) ; scanBt n = ( But t on) f i ndVi ewByI d( R. i d. scan_but t on) ; cekBt n = ( But t on) f i ndVi ewByI d( R. i d. cek_but t on) ; exi t Bt n = ( But t on) f i ndVi ewByI d( R. i d. exi t _but t on) ; Text Vi ew dat a= ( Text Vi ew) f i ndVi ewByI d( R. i d. scan_f or mat ) ; St r i ng devi ceVer si on = Bui l d. VERSI ON. RELEASE; dat a. set Text ( " Andr oi d Ver . " +devi ceVer si on) ; scanBt n. set OnCl i ckLi st ener ( t hi s) ; cekBt n. set OnCl i ckLi st ener ( t hi s) ; exi t Bt n. set OnCl i ckLi st ener ( t hi s) ; }

  / * FUNGSI DARI TOMBOL=====================================================* / publ i c voi d onCl i ck( Vi ew v) { / / scan but t on i f ( v. get I d( ) ==R. i d. scan_but t on) {

  / * Cek Ver si Per angkat * / St r i ng devi ceVer si on = Bui l d. VERSI ON. RELEASE; St r i ng devi ce = devi ceVer si on. subst r i ng( 0, 1) ; i nt ver si = I nt eger . par seI nt ( devi ce) ; i f ( ver si >= 4) {

  / * Memanggi l l i br ar y Zxi ng bawaan* / I nt ent i nt ent = new I nt ent ( " com. googl e. zxi ng. cl i ent . andr oi d. SCAN" ) ; i nt ent . put Ext r a( " com. googl e. zxi ng. cl i ent . andr oi d.

  SCAN. SCAN_MODE" , " QR_CODE_MODE" ) ; st ar t Act i vi t yFor Resul t ( i nt ent , 0) ; } el se{

  / * Memanggi l l i br ar y Zxi ng t i dak bawaan* / / / kel as i nst ant i at e ZXi ng i nt egr at i on I nt ent I nt egr at or scanI nt egr at or = new

  I nt ent I nt egr at or ( t hi s) ; / / memul ai memi ndai scanI nt egr at or . i ni t i at eScan( ) ; }

  } el se i f ( v. get I d( ) ==R. i d. cek_but t on) { / * Memanggi l kel as cekact i vi t y* / I nt ent i = new I nt ent ( get Appl i cat i onCont ext ( ) , CekAct i vi t y. cl ass) ; st ar t Act i vi t y( i ) ; } el se i f ( v. get I d( ) ==R. i d. exi t _but t on) {

  Al er t Di al og. Bui l der ad = new Al er t Di al og. Bui l der ( t hi s) ; ad. set Message( " Apakah Anda i ngi n kel uar ?" ) ; ad. set Posi t i veBut t on( " Ya" , new Di al ogI nt er f ace. OnCl i ckLi st ener ( ) { publ i c voi d onCl i ck( Di al ogI nt er f ace di al og, i nt i d) { / / cl oseDi al og. t hi s. f i ni sh( ) ; I nt ent i = new I nt ent ( I nt ent . ACTI ON_MAI N) ; i . addCat egor y( I nt ent . CATEGORY_HOME) ; i . set Fl ags( I nt ent . FLAG_ACTI VI TY_NEW_TASK) ; st ar t Act i vi t y( i ) ; f i ni sh( ) ;

  Syst em. exi t ( 0) ; } } ) ; ad. set Negat i veBut t on( " Ti dak" , new Di al ogI nt er f ace. OnCl i ckLi st ener ( ) { publ i c voi d onCl i ck( Di al ogI nt er f ace di al og, i nt i d) { di al og. cancel ( ) ; }

  } ) ; ad. show( ) ; } }

  / * Hasi l QR CODE SCANNER==================================================* / publ i c voi d onAct i vi t yResul t ( i nt r equest Code, i nt r esul t Code, I nt ent i nt ent ) {

  St r i ng devi ceVer si on1 = Bui l d. VERSI ON. RELEASE; St r i ng devi ce1 = devi ceVer si on1. subst r i ng( 0, 1) ; i nt ver si 1 = I nt eger . par seI nt ( devi ce1) ; i f ( ver si 1 >= 4) { i f ( r equest Code == 0) { i f ( r esul t Code == RESULT_OK) { St r i ng scanCont ent = i nt ent . get St r i ngExt r a( " SCAN_RESULT" ) ;

  St r i ng scanFor mat = i nt ent . get St r i ngExt r a( " SCAN_RESULT_FORMAT" ) ; / / Scan Ber hasi l i f ( scanFor mat ! = nul l ) {

  / / obj ek par se dengan bundl e f ungsi Bundl e par se = new Bundl e( ) ; / / memasukkan dat a ke var i abel par se par se. put St r i ng( " par se_scanFor mat " , scanFor mat ) ; par se. put St r i ng( " par se_scanCont ent " , scanCont ent ) ; / / pi ndah l ayout I nt ent i = new I nt ent ( Mai nAct i vi t y. t hi s, Hasi l ScanAct i vi t y. cl ass) ; i . put Ext r as( par se) ; st ar t Act i vi t y( i ) ; } el se{ / / dat a scan t i dak cocok at au scan di bat al kan Toast t oast = Toast . makeText ( get Appl i cat i onCont ext ( ) , " Ti dak ada dat a yang di t er i ma! " , Toast . LENGTH_SHORT) ; t oast . show( ) ; }

  } el se i f ( r esul t Code == RESULT_CANCELED) { / / dat a scan t i dak cocok at au scan di bat al kan

  Toast t oast = Toast . makeText ( get Appl i cat i onCont ext ( ) , " Ti dak ada dat a yang di t er i ma! " , Toast . LENGTH_SHORT) ; t oast . show( ) ; }

  } } el se{ / / mengambi l hasi l pemi ndai an - i nst ant i at e ZXi ng obj ect I nt ent Resul t scanni ngResul t =

  I nt ent I nt egr at or . par seAct i vi t yResul t ( r equest Code, r esul t Code, i nt ent ) ; / / cek dat a val i d i f ( scanni ngResul t ! = nul l ) { / / mendapat kan kont en dar i Hasi l I nt ent St r i ng scanCont ent = scanni ngResul t . get Cont ent s( ) ; / / mendapat kan nama f or mat dat a yang di pi ndai St r i ng scanFor mat = scanni ngResul t . get For mat Name( ) ; i f ( scanFor mat ! = nul l ) {

  / / obj ek par se dengan bundl e f ungsi Bundl e par se = new Bundl e( ) ; / / memasukkan dat a ke var i abel par se par se. put St r i ng( " par se_scanFor mat " , scanFor mat ) ; par se. put St r i ng( " par se_scanCont ent " , scanCont ent ) ;

  / / pi ndah l ayout I nt ent i =new I nt ent ( Mai nAct i vi t y. t hi s, Hasi l ScanAct i vi t y. cl ass) ; i . put Ext r as( par se) ; st ar t Act i vi t y( i ) ; } el se{ / / dat a scan t i dak cocok at au scan di bat al kan Toast t oast = Toast . makeText ( get Appl i cat i onCont ext ( ) ,

  " Ti dak ada dat a yang di t er i ma! " , Toast . LENGTH_SHORT) ; t oast . show( ) ; } } el se{

  / / dat a scan t i dak cocok at au scan di bat al kan Toast t oast = Toast . makeText ( get Appl i cat i onCont ext ( ) ,

  " Ti dak ada dat a yang di t er i ma! " , Toast . LENGTH_SHORT) ; t oast . show( ) ; } } } }

6. HasilScanActivity.java

  package i d. anj ar . pr oj ect z1; publ i c cl ass Hasi l ScanAct i vi t y ext ends Act i vi t y{ St r i ng ur l , ur l 1, sukses; publ i c St r i ng Sandi 63 = " 1nd0n3s14" ; publ i c St r i ng Sandi 95_1 = " 1nd0n3s14" ; publ i c St r i ng Sandi 95_2 = " NuS4nT4r a" ; cekI nt er net cekNet , cekSer ver ; Bool ean Net Ter sedi a, Ser ver Ter sedi a; i nt PNoPol ; @Suppr essWar ni ngs( " depr ecat i on" ) publ i c voi d onCr eat e( Bundl e savedI nst anceSt at e) { super . onCr eat e( savedI nst anceSt at e) ; set Cont ent Vi ew( R. l ayout . hasi l scan) ; Text Vi ew dat a1= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew2) ; / * Par si ng dat a dar i hal aman sebel umnya* / Bundl e par se2 = new Bundl e( ) ; par se2 = get I nt ent ( ) . get Ext r as( ) ; St r i ng kal i mat = par se2. get St r i ng( " par se_scanCont ent " ) ; St r i ng awal = " GcP" ; St r i ng akhi r = " PcG" ; i nt PK = kal i mat . l engt h( ) ; i nt kur ang = PK - 3; / * Cek dat a qr code* / i f ( PK ! = 0) { / * val i dasi * / St r i ng kal i mat 1 = kal i mat . subst r i ng( 3, kur ang) ; St r i ng kal i mat 2 = kal i mat . subst r i ng( 0, 3) ; St r i ng kal i mat 3 = kal i mat . subst r i ng( kur ang) ; i f ( ( ( kal i mat 2. equal s( awal ) ) == t r ue) &&

  ( ( kal i mat 3. equal s( akhi r ) ) == t r ue) ) { / * dekr i psi * /

  St r i ng hasi l = Vi gener e. dekr i psi ( Sandi 95_1, kal i mat 1) ; St r i ng s = " " ; St r i ng[ ] hasi l spl i t = hasi l . spl i t ( " ; " ) ; St r i ng No_Pol i si = hasi l spl i t [ 0] ; PNoPol = No_Pol i si . l engt h( ) ; f or ( i nt i =0; i <hasi l spl i t . l engt h; i ++) { i f ( i == 0) { s += " <bi g><f ont col or =' #848484' ><b>No Pol i si </ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; } el se i f ( i == 1) { s += " <f ont col or =' #848484' ><b>Nama</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; } el se i f ( i == 2) { s += " <f ont col or =' #848484' ><b>Al amat </ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; } el se i f ( i == 3) { s += " <f ont col or =' #848484' ><b>No. Rangka</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; } el se i f ( i == 4) { s += " <f ont col or =' #848484' ><b>No. Mesi n</ b></ f ont ><br ><f ont col or =' #FFBF00' ><b><i >" +( hasi l spl i t [ i ] ) +" </ i ></ b></ f ont ><br ><br >" ; } el se s += ( hasi l spl i t [ i ] ) +" <br >" ;

  } dat a1. set Text ( Ht ml . f r omHt ml ( s) ) ; cekNet = new cekI nt er net ( get Appl i cat i onCont ext ( ) ) ; Net Ter sedi a = cekNet . i sConnect i ngToI nt er net ( ) ;

  St r i ng l i nk = " op=cekDat aGcPNoPol i si =" +No_Pol i si . t oSt r i ng( ) ;

  St r i ng l i nkenkr i p = Vi gener e. enkr i psi 63( Sandi 63, l i nk) ;

  / / cek st at us I nt er net i f ( Net Ter sedi a) { i f ( PNoPol > 9) {

  Al er t Di al og al er t Di al og = new Al er t Di al og. Bui l der ( Hasi l ScanAct i vi t y. t hi s) . cr eat e( ) ; al er t Di al og. set Ti t l e( " Per i ngat an! " ) ; al er t Di al og. set Message( " Sandi Ti dak Cocok ! " ) ; al er t Di al og. set I con( R. dr awabl e. i c_act i on_about ) ; al er t Di al og. set But t on( " OK" , new Di al ogI nt er f ace. OnCl i ckLi st ener ( ) { publ i c voi d onCl i ck( f i nal Di al ogI nt er f ace di al og, f i nal i nt whi ch) {

  Toast . makeText ( get Appl i cat i onCont ext ( ) , " Sandi Ti dak Cocok" , Toast . LENGTH_SHORT) . show( ) ; f i ni sh( ) ; }

  } ) ; al er t Di al og. show( ) ; } el se{ ur l =

  " ht t p: / / 192. 168. 72. 1/ pr oj ect Z/ andr oi d/ cek. php?" +l i nkenkr i p; new Ambi l Dat a( ) . execut e( ) ; } } r et ur n;

  } / * MENGAMBI L DATA DARI SERVER ============================================* / publ i c cl ass Ambi l Dat a ext ends AsyncTask<St r i ng, St r i ng, St r i ng>{

  Ar r ayLi st <HashMap<St r i ng, St r i ng>> cont act Li st = new Ar r ayLi st <HashMap<St r i ng, St r i ng>>( ) ; Pr ogr essDi al og pDi al og; pr i vat e St r i ng dat a, NoPol i si , Nama, NoTel epon, dat a1, hasi l JsonDekr i psi ; / / Menghent i kan Pr oses dengan wakt u f i nal Count DownTi mer t i mer = new Count DownTi mer ( 30000, 1000) { publ i c voi d onTi ck( l ong mi l l i sUnt i l Fi ni shed) { pDi al og. set Message( " Memuat Dat a . . . \ nMenghi t ung Wakt u

  Mundur : " + mi l l i sUnt i l Fi ni shed / 1000) ; } publ i c voi d onFi ni sh( ) { pDi al og. di smi ss( ) ;

  Toast . makeText ( get Appl i cat i onCont ext ( ) , " Ser ver Ti dak Di t emukan" , Toast . LENGTH_SHORT) . show( ) ; }

  } ; @Over r i de pr ot ect ed voi d onPr eExecut e( ) {

  / / TODO Aut o- gener at ed met hod st ub super . onPr eExecut e( ) ; pDi al og = new Pr ogr essDi al og( Hasi l ScanAct i vi t y. t hi s) ; pDi al og. set I ndet er mi nat e( f al se) ; pDi al og. set Cancel abl e( t r ue) ; pDi al og. show( ) ; t i mer . st ar t ( ) ; }

  @Over r i de pr ot ect ed St r i ng doI nBackgr ound( St r i ng. . . ar g0) { / * Pr oses ambi l dat a* /

  I nput St r eam i si = ambi l _dat a_web( ) ; St r i ng i si _web = dat aweb_ke_st r i ng( i si ) ; hasi l JsonDekr i psi = Vi gener e. dekr i psi ( Sandi 95_2, i si _web) ; t r y{ / * Menggant i ke Json obj ek* / JSONObj ect j son = new JSONObj ect ( hasi l JsonDekr i psi ) ; sukses = j son. get St r i ng( " sukses" ) ; Log. e( " er r or " , " ni l ai sukses=" + sukses) ; JSONAr r ay hasi l = j son. get JSONAr r ay( " cek" ) ; i f ( sukses. equal s( " 0" ) ) { f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; dat a = c. get St r i ng( " dat a" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 0" ) ; } } el se i f ( sukses. equal s( " 1" ) ) { f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; NoPol i si =c. get St r i ng( " NoPol i si " ) . t r i m( ) ; Nama = c. get St r i ng( " Nama" ) . t r i m( ) ; NoTel epon=c. get St r i ng( " NoTel epon" ) . t r i m( ) ; dat a1 = c. get St r i ng( " dat a1" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 1" ) ; }

  } el se{ f or ( i nt i = 0; i < hasi l . l engt h( ) ; i ++) { JSONObj ect c = hasi l . get JSONObj ect ( i ) ; dat a = c. get St r i ng( " dat a" ) . t r i m( ) ; Log. e( " ok" , " ambi l dat a 2" ) ; } }

  } cat ch ( Except i on e) { Log. e( " er r or " , " t i dak bi sa ambi l dat a" ) ; Ambi l Dat a. t hi s. cancel ( t r ue) ; } r et ur n nul l ;

  } @Over r i de pr ot ect ed voi d onPost Execut e( St r i ng r esul t ) { Text Vi ew dat a2= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew3) ; Text Vi ew dat a3= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew4) ; Text Vi ew dat a5= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew6) ; Text Vi ew dat a6= ( Text Vi ew) f i ndVi ewByI d( R. i d. t ext Vi ew7) ;

  Li near Layout backgr ound = ( Li near Layout ) f i ndVi ewByI d( R. i d. hasi l Scan) ; Li near Layout f oot er = ( Li near Layout ) f i ndVi ewByI d( R. i d. f oot er ) ; super . onPost Execut e( r esul t ) ; pDi al og. di smi ss( ) ; t i mer . cancel ( ) ; i f ( sukses. equal s( " 1" ) ) { i f ( I nt eger . par seI nt ( dat a1) == 1) { dat a2. set Text ( Ht ml . f r omHt ml ( " <bi g><b>HI LANG</ b>" ) ) ; dat a3. set Text ( Ht ml . f r omHt ml ( " <bi g><f ont col or =' #848484' ><b>Pel apor </ b></ f ont ><br ><f ont col or =' #FFBF00' ><b>" +Nama+" <br >" +NoTel epon+" </ b></ f ont >" ) ) ; dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ; backgr ound. set Backgr oundCol or ( Col or . RED) ; f oot er . set Vi si bi l i t y( Vi ew. VI SI BLE) ; } el se{ dat a2. set Vi si bi l i t y( Vi ew. GONE) ; dat a3. set Vi si bi l i t y( Vi ew. GONE) ; dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ;

  Toast . makeText ( get Appl i cat i onCont ext ( ) , " St at us Aman" , Toast . LENGTH_SHORT) . show( ) ; }

  } el se{ dat a2. set Text ( Ht ml . f r omHt ml ( " <b>Kendar aan Ti dak Memi l i ki Cat at an Kehi l angan</ b>" ) ) ; dat a5. set Vi si bi l i t y( Vi ew. GONE) ; dat a6. set Vi si bi l i t y( Vi ew. GONE) ; Toast . makeText ( get Appl i cat i onCont ext ( ) ,

  " Kendar aan Ti dak Memi l i ki Cat at an Kehi l angan" , Toast . LENGTH_SHORT) . show( ) ; }

  } / * FUNGSI MENGAMBI L DATA DENGAN I NPUTSTREAM===============================* / pr i vat e I nput St r eam ambi l _dat a_web( ) {

  I nput St r eam cont ent = nul l ; Ht t pCl i ent kl i en = new Def aul t Ht t pCl i ent ( ) ; Ht t pGet r eq = new Ht t pGet ( ur l ) ; t r y{

  Ht t pResponse r espon = kl i en. execut e( r eq) ; cont ent = r espon. get Ent i t y( ) . get Cont ent ( ) ; } cat ch ( Except i on e) {

  e. pr i nt St ackTr ace( ) ; } r et ur n cont ent ; }

  / * FUNGSI MERUBAH I NPUTSTREAM KE STRI NG===================================* / pr i vat e St r i ng dat aweb_ke_st r i ng( I nput St r eam i si ) { Buf f er edReader r d = new Buf f er edReader ( new

  I nput St r eamReader ( i si ) , 4096) ; St r i ng bar i s; St r i ngBui l der sb = new St r i ngBui l der ( ) ; t r y{ whi l e( ( bar i s = r d. r eadLi ne( ) ) ! = nul l ) { sb. append( bar i s) ; } r d. cl ose( ) ; } cat ch ( Except i on e) { e. pr i nt St ackTr ace( ) ; }

  St r i ng i si _web = sb. t oSt r i ng( ) ; r et ur n i si _web; }

  } }

6. Vigenere.java

  / * Dekr i psi Vi gener e 96 kar akt er ==========================================* / publ i c st at i c St r i ng dekr i psi ( St r i ng key, St r i ng pl ai nt ext ) {

  St r i ng r esul t =" " ; i nt of f set , of f set 1, shi f t , shi f t 1 = 0; i nt j =0; f or ( i nt i =0; i <pl ai nt ext . l engt h( ) ; i ++) {

  / / mer ubah kar akt er ke bent uk desi mal shi f t = ( ( i nt ) key. char At ( j ) ) ; of f set = ( ( i nt ) ( pl ai nt ext . char At ( i ) ) ) ; j ++; j %=key. l engt h( ) ; / / OFFSET / / asci i spasi sampai dengan / ( 63 s/ d 78) i f ( of f set >= 32 && of f set <= 47) { of f set 1 = of f set + 31; }

  / / asci i angka ( 53 s/ d 62) el se i f ( of f set >= 48 && of f set <= 57) { of f set 1 = of f set + 5; }

  / / asci i : sampai dengan @ ( 79 s/ d 85) el se i f ( of f set >= 58 && of f set <= 64) { of f set 1 = of f set + 21; }

  / / asci i hur uf besar ( 27 s/ d 52) el se i f ( of f set >= 65 && of f set <= 90) { of f set 1 = of f set - 38; }

  / / asci i [ sampai dengan ' ( 86 s/ d 91) el se i f ( of f set >= 91 && of f set <= 96) { of f set 1 = of f set - 5; }

  / / asci i hur uf keci l ( 1 s/ d 26) el se i f ( of f set >= 97 && of f set <= 122) { of f set 1 = of f set - 96; }

  / / asci i { sampai dengan ~ ( 92 s/ d 95) el se i f ( of f set >= 123 && of f set <= 126) { of f set 1 = of f set - 31; } el se{ of f set 1 = of f set * 0; }

  / / SHI FT / / asci i spasi sampai dengan / ( 63 s/ d 78) i f ( shi f t >= 32 && shi f t <= 47) { shi f t 1 = shi f t + 31; }

  / / asci i angka ( 53 s/ d 62) el se i f ( shi f t >= 48 && shi f t <= 57) { shi f t 1 = shi f t + 5; }

  / / asci i : sampai dengan @ ( 79 s/ d 85) el se i f ( shi f t >= 58 && shi f t <= 64) { shi f t 1 = shi f t + 21; }

  / / asci i hur uf besar ( 27 s/ d 52) el se i f ( shi f t >= 65 && shi f t <= 90) { shi f t 1 = shi f t - 38; }

  / / asci i [ sampai dengan ' ( 86 s/ d 91) el se i f ( shi f t >= 91 && shi f t <= 96) { shi f t 1 = shi f t - 5; }

  / / asci i hur uf keci l ( 1 s/ d 26) el se i f ( shi f t >= 97 && shi f t <= 122) { shi f t 1 = shi f t - 96; }

  / / asci i { sampai dengan ~ ( 92 s/ d 95) el se i f ( shi f t >= 123 && shi f t <= 126) { shi f t 1 = shi f t - 31; } el se{ shi f t 1 = shi f t * 0; } i f ( ( of f set 1 >= 0) && ( shi f t 1 >= 0) ) {

  / / r umus vi gener e dekr i psi i nt of f set 2 = ( ( of f set 1 - shi f t 1) + 1) ; i f ( of f set 2 < 1) { of f set 2 = ( of f set 2 + 95) ; } / / mer ubah desi mal ke kar akt er / / hur uf keci l i f ( ( of f set 2 >= 1 && of f set 2 <= 26) ) { r esul t +=( char ) ( of f set 2 + 96) ; }

  / / hur uf besar el se i f ( ( of f set 2 >= 27 && of f set 2 <= 52) ) { r esul t +=( char ) ( of f set 2 + 38) ; }

  / / angka el se i f ( ( of f set 2 >= 53 && of f set 2 <= 62) ) { r esul t +=( char ) ( of f set 2 - 5) ; }

  / / spasi s/ d / el se i f ( ( of f set 2 >= 63 && of f set 2 <= 78) ) { r esul t +=( char ) ( of f set 2 - 31) ; }

  / / : s/ d @ el se i f ( ( of f set 2 >= 79 && of f set 2 <= 85) ) { r esul t +=( char ) ( of f set 2 - 21) ; }

  / / [ sampai dengan ' el se i f ( ( of f set 2 >= 86 && of f set 2 <= 91) ) { r esul t +=( char ) ( of f set 2 + 5) ; }

  / / { sampai dengan ~ el se i f ( ( of f set 2 >= 92 && of f set 2 <= 95) ) { r esul t +=( char ) ( of f set 2 + 31) ; } el se{ r et ur n r esul t ; }

  } el se{ r esul t =r esul t +pl ai nt ext . char At ( i ) ;

  } } r et ur n r esul t ;

  }