Tugas menghitung karakter

Salah satu cara penyerangan (attack) yang dapat dilakukan adalah dengan menganalisa statistik dari frekuensi huruf yang  muncul. Cara ini disebut frequency analysis dan dimotori oleh Al-Kindi sebagai salah seorang jagoan statistik. Stalings dalam bukunya menunjukkan statistik kemunculan huruf untuk tulisan dalam bahasa Inggris, dimana huruf ‘e’ yang paling banyak muncul. Untuk mencari distribusi penggunaan huruf dalam teks berbahasa Indonesia maka dibuatlah program sebagai berikut :

 

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml”>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />

<title>Aplikasi Menghitung Huruf</title>

<style type=”text/css”>

<!–

.style2 {

                font-family: Georgia, “Times New Roman”, Times, serif;

                color: #CCFFFF;

}

.style3 {

                font-family: Verdana, Arial, Helvetica, sans-serif;

                font-weight: bold;

                font-size: x-large;

}

.style6 {font-family: Arial, Helvetica, sans-serif; font-size: small; }

.style7 {font-size: small}

–>

</style>

</head>

 

<body>

<table width=”100%” border=”0″ cellspacing=”0″ cellpadding=”0″>

  <tr>

    <td colspan=”2″ bgcolor=”#0099CC”><div align=”center” class=”style3″> MENGHITUNG HURUF </div></td>

  </tr>

  <tr>

    <td height=”23″ colspan=”2″ bgcolor=”#003366″><div align=”center” class=”style2″></div></td>

  </tr>

  <tr>

    <td colspan=”2″ bgcolor=”#FFFFFF”><div align=”center”>

                  <p>

                    <?php

if ($_POST[Submit]){

    $hur=array();

    $val=array();

    $j=0;

    $_POST[parag]=strtolower($_POST[parag]);

                                for($i=0;$i<=strlen($_POST[parag])-1;$i++) {

        if(!in_array($_POST[parag]{$i},$hur)){

                                if(ord($_POST[parag]{$i}) >96 AND ord($_POST[parag]{$i})<123){

                                                $hur[$j]=$_POST[parag]{$i};

                                                $val[$j]++;

                                                $j++;

                                   }}

         else {

           $key=array_search($_POST[parag]{$i},$hur);

            $val[$key]++;

        }}

                                for($x = 0; $x < count($val)-1; $x++) {

                                for($y = 0; $y < count($val)-1; $y++) {

                                                if($val[$x] > $val[$y]) {

                                                                $hold = $val[$x];

                                                                $val[$x] = $val[$y];

                                                                $val[$y] = $hold;

                                                                $temp = $hur[$x];

                                                                $hur[$x]=$hur[$y];

                                                                $hur[$y]=$temp;

                                                }}}

?>

      </p>

                  <title></title>

<style type=”text/css”>

<!–

.style1 {color: #99FFFF}

–>

</style>

                <table width=”1023″ cellpadding=”0″ cellspacing=”0″ border=”1″>

<?

    for($i=0;$i<=count($hur)-1;$i++){

                     echo ‘<tr><td width=”10%” align=”center”>’.($hur[$i]==’ ‘?’spasi’:$hur[$i]).’</td><td width=”15%” align=”center”>’.$val[$i].’ (‘.number_format((($val[$i]/array_sum($val))*100),2,’.',”).’%)</td><td><img src=”biru.gif” height=”20″ width=”‘.($val[$i]/array_sum($val)*100).’%”</td></tr>’;}

                echo ‘</table><br>Jumlah : ‘.array_sum($val);

}

else {

?>

<form name=”form1″ method=”post” action=”<?=$_SERVER['PHP_SELF']?>”>

  <span class=”style1″>

  <label>

  <textarea name=”parag” cols=”100″ rows=”25″ wrap=”virtual”></textarea>

  </label>

  <br>

  <br>

  <label>  </label>

  </span>

  <label>

  <input type=”submit” name=”Submit” value=”—- OK —-”>

  </label>

</form>

<?

}

?>

  <tr>

    <td width=”6%” bgcolor=”#0099FF”><div align=”right”><span class=”style6″> Catatan : </span></div></td>

    <td width=”94%” bgcolor=”#0099FF”><span class=”style6″>1. Aplikasi ini hanya dipakai untuk mengitung karakter huruf A sd. Z (a sd, z) </span></td>

  </tr>

  <tr>

    <td width=”6%” bgcolor=”#0099FF”><span class=”style7″></span></td>

    <td width=”94%” bgcolor=”#0099FF”><span class=”style6″>2. Karakter selain huruf A sd. Z tidak dihitung </span></td>

  </tr>

  <tr>

    <td width=”6%” bgcolor=”#0099FF”><span class=”style7″></span></td>

    <td width=”94%” bgcolor=”#0099FF”><span class=”style6″>3. Hasil perhitungan ditampilkan dengan jumlah dan persentasenya </span></td>

  </tr>

</table>

</body>

</html>

 

Program diujikan sebanyak tiga kali dalam artikel yang berbahasa Indonesia.  Hasilnya sebagai berikut:

tes_1

tes_2

tes_31tes_41

 

tes_51

tes_64

Setelah dilakukan tiga kali pengujian, dari hasil terlihat bahwa huruf ‘a ‘ merupakan huruf yang sering keluar dalam tulisan berbahasa Indonesia.

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s


Ikuti

Get every new post delivered to your Inbox.