Senin, 18 April 2016

TUGAS 3
SISTEM BERKAS




NAMA :  Prasasti Seli Fera Sadila
NIM   : 131051061



JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
        INSTITUT SAINS & TEKNOLOGI AKPRIND
YOGYAKARTA
2016




Permasalahan
Mencari sebuah kunci dengan inputan sejumlah n kunci, hasil dari pencarian tersebut memuat keterangan posisi kunci dalam record dan waktu pencarian. Apabila data kunci tidak urut atau duplikasi, maka pencarian tidak dapat dilakukan
Algoritma
1. Input Jumlah kunci
2. input kunci-kunci sebanyak n atau sebanyak jumlah yang diinputkan di awal
3. melakukan validasi, apabila kunci-kunci tersebut duplikasi atau tidak urut maka proses berhenti, tidak dapat melakukan pencarian. Tetapi apabila tidak keduanya maka Cetak Kunci-kunci tersebut
4. Input Kunci yang di cari
5. menampilkan kunci yang di cari apabila ada maka akan ditampilkan pula posisi kunci dalam record dan waktu pencarian kunci tersebut
6. apabila kunci tidak terdapat dalam record maka pesan yang keluar “kunci tidak ditemukan”
Source Code
1.Inputan untuk jumlah kunci
<form method=”post” action=”<?php echo htmlspecialchars($_SERVER[“PHP_SELF”]);?>”>

2.Memproses inputan form pertama dengan menampilkan form untuk menginput kunci-kunci
<?php
if ($_SERVER[“REQUEST_METHOD”] == “POST”) {
$m = $jum = “”;
$no =1;
$n =$_POST[“n”];
for ($m=0;$m<$n;$m++){ ?>
<form method=”post” action=”” align=”center”>
Input Data Kunci ke <?php echo $no; ?>
<input type=”number” name=”kunci[]”><br>
<?php
$no++;
}
echo “<input type=’submit’ name=’simpan’ value=’Simpan’/>”;
?>
</form>
<?php
}
?>

3.Melakukan validasi, apabila kunci yang diinputkan duplikasi atau tidak urut maka program selesai namun apabila sebaliknya, program akan mencetak kunci-kunci tersebut dan akan terdapat form untuk mencari kunci
<?php
if (isset($_POST[‘simpan’])){
$k=$_POST[‘kunci’];
$n=count($k);
$cek=FALSE;for($i=0;$i<$n;$i++){
for($j=$i+1;$j<$n;$j++){
if($k[$i]==$k[$j]){
echo “<br> duplikasi “.$k[$i];
$cek=FALSE;}
else if($k[$i]>$k[$j]){
echo “<br> kunci “.$k[$i].”tidak urut <br>”;
$cek=FALSE;}
else {$cek=TRUE;}
}
}
if ($cek==TRUE){
?>
<form method=”post” action=””>
<?php
echo “<table border=1><tr><td> Kunci </td></tr>”;
for ($i=0;$i<$n;$i++){
echo “<tr><td><input type=’text’ name=’k[]’ value=’$k[$i]’></td></tr>”;
?><?php
}
?>
Kunci yang di cari
<input type=”number” name=”cari”>
<input type=”submit” name=”search” value=”Cari”/>
</form>
<?php
}
}
4.Memproses input pencarianif (isset($_POST[‘search’])){
$k=$_POST[‘k’];
$n=count($k);
$cari=$_POST[‘cari’];
$ketemu=FALSE;
for($i=0;$i<$n;$i++){
if($k[$i]==$cari){
$ketemu=TRUE;
$posisi=$i+1;
}
}if ($ketemu==TRUE){
echo “Kunci “.$cari.” ditemukan <br>”;
echo “Pada Posisi Record : “.$posisi.”<br>”;
echo “Waktu Pencarian : “.log10($n);
}
}


HASIL 

Menginputkan Jumlah Kunci


Input Kunci-kunci


Menampilkan Data Kunci dan Menginputkan Kunci yang dicari


Hasil Pencarian


Jumat, 08 April 2016

TUGAS 7
SISTEM BERKAS



NAMA :  Prasasti Seli Fera Sadila
NIM   : 131051061



JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
        INSTITUT SAINS & TEKNOLOGI AKPRIND
YOGYAKARTA
2016
Soal
Gunakanlah asumsi-asumsi yang tepat untuk menjawab pertanyaan-pertanyaan berikut :
No.KodeNamaStatusSKSSmt
1IPBU11101PancasilaW21
2IPBU11102AgamaW21
3TIFS11103DatabaseW21
4TIFS21202DelphiW21
5TIFS21201FoxproW21
6TIFS22105PascalW21
  • Disimpan dengan metode
    1. K MOD N
    2. K MOD P
    3. Midsquaring
    4. Penjumlahan Digit
    5. Multiplication
    6. Trunction
    7. Folding
    8. Konveresi Radix
  • Ditanyakan
    1. Penempatan nilai-nilai kunci
    2. Rata-rata akses

Penyelesaian
Asumsi yang digunakan pada kasus kode mata kuliah yang dijadikan kunci untuk penempatan penyimpanan di dalam memori yaitu :
  1. Kode mata kuliah berjumlah 9 buah dengan 4 buah berbentuk huruf dan 5 buah berbentuk angka
  2. 4 buah yang berbentuk huruf menandakan jenis mata kuliah yang dikategorikan kedalam kategori tertentu
  3. Maka dari itu diasumsikan bahwa 4 buah huruf tersebut dikonversikan kedalam suatu angka tertentu dimana itu sebagai patokan dalam penghitungan untuk penempatan penyimpanan didalam memori
  4. Yaitu “IPBU”, diganti dengan angka “1” dan “TIFS” diganti dengan angka “2” dan jika ada kode lain maka menyesuaikan urutannya
  5. Sehingga dalam perhitungan nanti menjadi 6 digit dengan asumsi digit pertama yang paling kiri adalah pengganti kode mata kuliah yang berbentuk huruf, yang digunakan untuk memudahkan dalam proses penghitungan.
  6. Sehingga kuncinya menjadi :
    No.KodeNamaStatusSKSSmt
    1111101PancasilaW21
    2111102AgamaW21
    3211103DatabaseW21
    4221202DelphiW21
    5221201FoxproW21
    6222105PascalW21
  1. K MOD N
    Kunci : 111101, 111102, 211103, 221202, 221201, 222105
    N : 6
    P : 7
    Alamat indeks : 0-6
    H(111101) => 111101 MOD 6 = 5
    H(111102) => 111102 MOD 6 = 0
    H(211103) => 211103 MOD 6 = 5
    • Collision, ditempatkan pada indeks terbesar yang masih kosong
    • 6 masih kosong, sehingga H(211103) => 6
    • Home addres 5 diberi link ke 6
    H(221202) => 221202 MOD 6 = 0
    • Collision, ditempatkan pada indeks terbesar yang masih kosong
    • 4 masih kosong, sehingga H(221202) => 4
    • Home address 0 diberi link ke 4
    H(221201) => 221201 MOD 6 = 5
    • Collision, ditempatkan pada indeks terbesar yang masih kosong
    • 3 masih kosong, sehingga H(221201) => 3
    • Home address terahir 6 diberi link ke 3
    H(222105) => 222105 MOD 6 = 3
    • Coliision, ditempatkan pada indeks terbesar yang masih kosong
    • 2 masih kosong, sehingga H(222105) => 2
    • Home address 3 diberi link ke 2
    Pada K MOD N terdapat alamat kunci yang sama, sehingga diselesaikan dengan Collision agar tidak terjadi alamat kunci indeks yang sama, sehingga :
    RecordKunciLink
    01111024
    1
    2222105
    32212012
    4221202
    51111016
    62111033
    Rata-rata akses = (6+2+3+4)/6 = 2.5
    Ket :
    • 6 langkah penempatan kunci pada home address
    • 2 langkah penempatan kunci 211103, 221202 (collision)
    • 3 langkah penempatan kunci 221201 (collision)
    • 4 langkah penempatan kunci 222105 (collision)
  2. K MOD P
      • H(K) = K MOD M
        Alamat indeks = 0 s/d M-1Jawab :
        Kunci = 111101, 111102, 211103, 221202, 221201, 222105
        Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit, sehingga M=97
        Alamat indeks= 0 – 96
        • H(111101) => 111101 MOD 97 = 36
        • H(111102) => 111102 MOD 97 = 37
        • H(211103) => 211103 MOD 97 = 31
        • H(221202) => 221202 MOD 97 = 42
        • H(221201) => 221201 MOD 97 = 41
        • H(222105) => 222105 MOD 97 = 72
        Penempatan nilai-nilai kunci :
        Rata –rata akses = 6/97 = 0.61
      • H(K) = K MOD M+1
        M=97
        Alamat indeks = 1 – 97
        • H(111101) => 111101 MOD 97 + 1 = 37
        • H(111102) => 111102 MOD 97 + 1 = 38
        • H(211103) => 211103 MOD 97 + 1 = 32
        • H(221202) => 221202 MOD 97 + 1 = 43
        • H(221201) => 221201 MOD 97 + 1 = 42
        • H(222105) => 222105 MOD 97 + 1 = 73
        Penempatan nilai-nilai kunci :
        RecordKunci
        1
        32211103
        37111101
        38111102
        42221201
        43221202
        73222105
        97
        Rata –rata akses = 6/97 = 0.61>
    • Midsquaring
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit
      KK^2H(K)
      1111011234343220134
      1111021234365440436
      2111034456447660944
      2212024893032480403
      2212014892988240198
      2221054933063102506
      Penempatan kunci
      RecordKunci
      0
      03221202
      06222105
      34111101
      36111102
      44211103
      98221201
      99
      Rata rata akses = 6/100 = 0.06
    • Penjumlahan Digit
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      RecordKunci
      0
      31211103
      36111101
      37111102
      41221201
      42221202
      72222105
      96

      H(111101)  11 + 11 + 01 = 23
      H(111102)  11 + 11 + 02 = 24
      H(211103)  21 + 11 + 03 = 35
      H(221202)  22 + 12 + 02 = 36
      H(221201)  22 + 12 + 01 = 35
       Collision, ditempatkan pada indeks terbesar yang masih kosong
       99 masih kosong, sehingga H(221201)  99
       Home address 35 diberi link ke 99
      H(222105)  22 + 21 + 05 = 48
      RecordKunciLink
      0
      23111101
      24111102
      3521110399
      36221202
      48222105
      99221201
      Rata-rata akses = (6+1)/100=0.07
      Ket=
      6  langkah penempatan setiap kunci pada home address
      1  langkah penempatan kunci 221201 (collision)
    • Multiplication
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      H(111101)  11 | 11 | 01  11 * 01  11
      H(111102)  11 | 11 | 02  11 * 02  22
      H(211103)  21 | 11 | 03  21 * 03  63
      H(221202)  22 | 12 | 02  22 * 02  44
      H(221201)  22 | 12 | 01  22 * 01  22
       Collision, ditempatkan pada indeks terbesar yang masih kosong
       99 masih kosong, sehingga H(221201)  99
       Home address 22 diberi link ke 99
      H(222105)  22 | 21 | 05  22 * 05  110  11
       Collision, ditempatkan pada indeks terbesar yang masih kosong
       99 masih kosong, sehingga H(222105)  98
       Home address 11 diberi link ke 98
       
      98
      RecordKunciLink
      0
      11111101
      2211110299
      44221202
      63211103
      98222105
      99221201
      Rata-rata akses = (6+2)/100=0.08
      Ket=
      6  langkah penempatan setiap kunci pada home address
      2 langkah penempatan kunci 221201,222105 (collision)
    • Trunction
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 3 digit sehingga alamat indeks dari 0-999
      Pemotongan pada 3 digit terahir
      KPemotonganH(K)
      111101111101101
      111102111102102
      211103211103103
      221202221202202
      221201221201201
      222105222105105

      Record Kunci
      0 …
      … …
      101 111101
      102 111102
      103 211103
      … …
      105 222105
      … …
      201 221201
      202 221202
      … …
      … …
      … …
      999 …
      Rata-rata akses = 6/1000=0.006
    • Folding
       Folding by boundary (non carry)
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      H(111101)  11 | 11 | 01
       11 + 11 +10
      32
      H(111102)  11 | 11 | 02
       11 + 11 +20
       42
      H(211103)  21 | 11 | 03
       12 + 11 + 30
       53
      H(221202)  22 | 12 | 02
       22 + 12 + 20
       54
      H(221201)  22 | 12 | 01
       22 + 12+ 10
       44
      H(222105)  22 | 21 | 05
       22 + 21 + 50
       93
      Record Kunci
      0 …
      … …
      32 111101
      … …
      42 111102
      … …
      44 221201
      … …
      53 211103
      54 221202
      … …
      93 222105
      … …
      99 …
      Rata-rata akses = 6/100=0.06

       Folding by boundary (carry)
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      H(111101)  11 | 11 | 01
       11 + 11 + 10
       32
      H(111102)  11 | 11 | 02
       11 + 11 + 20
       42
      H(211103)  21 | 11 | 03
       12 + 11 + 30
       53
      H(221202)  22 | 12 | 02
       22 + 12 + 20
       54
      H(221201)  22 | 12 | 01
       22 + 12 + 10
       44
      H(222105)  22 | 21 | 05
       22 + 21 + 50
       93
      Record Kunci
      0 …
      … …
      32 111101
      … …
      42 111102
      … …
      44 221201
      … …
      53 211103
      54 221202
      … …
      93 222105
      … …
      99 …
      Rata-rata akses = 6/100=0.06
       Folding by shifting (non-carry)
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      H(111101)  11 | 11 | 01
       11 + 11 + 01
      23
      H(111102)  11 | 11 | 02
       11 + 11 + 02
       24
      H(211103)  21 | 11 | 03
       21 + 11 + 03
       35
      H(221202)  22 | 12 | 02
       22 + 12 + 02
       36
      H(221201)  22 | 12 | 01
       22 + 12 + 01
       35
       Collision, ditempatkan pada indeks terbesar yang masih kosong
       99 masih kosong, sehingga H(221201)  99
       Home address 35 diberi link ke 99
      H(222105)  22 | 21 | 05
       22 + 21 + 05
       48
      Record Kunci Link
      0 …
      … …
      23 111101
      24 111102
      … …
      … …
      35 211103 99
      36 221202
      … …
      48 222105
      … …
      … …
      … …
      99 221201
      Rata-rata akses = (6+1)/100=0.07
      Ket=
      6  langkah penempatan setiap kunci pada home address
      1  langkah penempatan kunci 221201 (collision)
       Folding by shifting (carry)
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 2 digit sehingga alamat indeks dari 0-99
      H(111101)  11 | 11 | 01
       11 + 11 + 01
       23
      H(111102)  11 | 11 | 02
       11 + 11 + 02
       24
      H(211103)  21 | 11 | 03
       21 + 11 + 03
       35
      H(221202)  22 | 12 | 02
       22 + 12 + 02
       36
      H(221201)  22 | 12 | 01
       22 + 12 + 01
       35
       Collision, ditempatkan pada indeks terbesar yang masih kosong
       99 masih kosong, sehingga H(221201)  99
       Home address 35 diberi link ke 99
      H(222105)  22 | 21 | 05
       22 + 21 + 05
       48
      Record Kunci Link
      0 …
      … …
      23 111101
      24 111102
      … …
      … …
      35 211103 99
      36 221202
      … …
      48 222105
      … …
      … …
      … …
      99 221201
      Rata-rata akses = (6+1)/100=0.07
      Ket=
      6  langkah penempatan setiap kunci pada home address
      1  langkah penempatan kunci 221201 (collision)
    • Konversi Radix
      Kunci = 111101, 111102, 211103, 221202, 221201, 222105
      Pada kasus ini, saya hanya menyediakan lebar alamat indeksnya 7 digit sehingga alamat indeks dari 0-9999999
      H(111101) 1 * 155 + 1 * 154 + 1 * 153 + 1 * 152 + 0* 151 + 1* 150
      813601
      H(111102)  1 * 155 + 1 * 154 + 1 * 153 + 1 * 152 + 0* 151 + 2* 150
      813602
      H(211103) 2 * 155 + 1 * 154 + 1 * 153 + 1 * 152 + 0* 151 + 3* 150
      1572978
      H(221202) 2 * 155 + 2 * 154 + 1 * 153 + 2 * 152 + 0* 151 + 2* 150
      1623827
      H(221201) 2 * 155 + 2 * 154 + 1 * 153 + 2 * 152 + 0* 151 + 1* 150
      1623826
      H(222105) 2 * 155 + 2 * 154 + 2 * 153 + 1 * 152 + 0* 151 + 5* 150
      1626980
      Record Kunci
      0 …
      … …
      813601 111101
      813602 111102
      … …
      1572978 211103
      … …
      1623826 221201
      1623827 221202
      … …
      1626980 222105
      … …
      … …
      9999999

      Rata –rata akses = 6/10000000=0.0000006