• Tidak ada hasil yang ditemukan

BAB IV IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB IV IMPLEMENTASI DAN PENGUJIAN"

Copied!
26
0
0

Teks penuh

(1)

51 BAB IV

IMPLEMENTASI DAN PENGUJIAN

Pada bab implementasi dan pengujian ini, akan menjelaskan tentang implementasi terhadap struktur data, program utama dari aplikasi von Neumann, interface utama maupun interface aplikasi pendukung, pengujian terhadap hasil yang di harapkan dan hasil dari penelitian yang telah dilakukan.

Aplikasi ini di buat pada PC Pentium(R) Dual-Core CPU. Sistem Operasi yang di pakai oleh computer tersebut adalah Microsoft Windows XP Professional version 2002 Service Pack 2. Untuk mendukung proses pengeksekusian aplikasi, dibutuhkan XAMPP versi xampp-win32-1.7.1. Aplikasi von Neumann dibuat dengan menggunakan PHP version 5.2.9.

4.1 Implementasi

Pada tahap implementasi, akan di jelaskan tentang implementasi struktur data pada memori maupun register, pengimplementasian program utama dan interface program utama maupun program pendukung.

4.1.1 Struktur data

Pada aplikasi von Neumann ini, penulis menggunakan struktur data array sebagai wadah penyimpanan data maupun instruksi pada memori. Selain itu, struktur data array juga di gunakan untuk menyimpan register-register.

(2)

52

1. Struktur data Memori Instruksi

Struktur data memori instruksi memiliki dua macam data yang akan di tampilkan, yaitu data opcode dan data alamat. Untuk menentukan alamat struktur data, dibutuhkan source code sebagai berikut:

<?php

for($a=1; $a<51;$a++){ ?>

a. Struktur data opcode

<select name="box[<?php echo $a;?>][0]" />

<option value="00001010" <?php echo (($opcode1=="00001010")?"selected":"");?>>00001010</opt ion>

<option value="00001001" <?php echo (($opcode1=="00001001")?"selected":"");?>>00001001</opt ion>

<option value="00000001" <?php echo (($opcode1=="00000001")?"selected":"");?>>00000001</opt ion>

<option value="00000010" <?php echo (($opcode1=="00000010")?"selected":"");?>>00000010</opt ion>

<option value="00000011" <?php echo (($opcode1=="00000011")?"selected":"");?>>00000011</opt ion>

(3)

53

<option value="00000100" <?php echo (($opcode1=="00000100")?"selected":"");?>>00000100</opt ion>

<option value="00000101" <?php echo (($opcode1=="00000101")?"selected":"");?>>00000101</opt ion>

<option value="00000111" <?php echo (($opcode1=="00000111")?"selected":"");?>>00000111</opt ion>

<option value="00000110" <?php echo (($opcode1=="00000110")?"selected":"");?>>00000110</opt ion>

<option value="00001000" <?php echo (($opcode1=="00001000")?"selected":"");?>>00001000</opt ion>

<option value="00001011" <?php echo (($opcode1=="00001011")?"selected":"");?>>00001011</opt ion>

</select>

Source code 1. Struktur data Instruksi Opcode

Source code struktur data opcode di atas adalah struktur data opcode 1.Sedangkan untuk opcode 2, hanya berbeda pada variable random opcode. Berikut perbedaan antara struktur data opcode 1 dan opcode 2 (perbedaan antara opcode 1 dan opcode tercetak tebal dan miring):

(4)

54 Opcode1:

<select name="box[<?php echo $a;?>][0]" /> <optionvalue="00001010" <?php echo

(($opcode1=="00001010")?"selected":"");?>>00001010</opti on>

Struktur data Instruksi Opcode 1

Opcode 2:

<select name="box[<?php echo $a;?>][2]" /> <option value="00001010" <?php echo

(($opcode2=="00001010")?"selected":"");?>>00001010</opti on>

Struktur data Instruksi Opcode2

Selain itu, perbedaan antara struktur data opcode 1 dengan opcode 2 adalah pada index arraynya. Opcode 1 memiliki index array 0 dan opcode2 memiliki index array 2.

b. Struktur data address

<select name="box[<?php echo $a;?>][1]" /> <!--<option>---</option>-->

<option value="000000110011" <?php echo (($address1=="000000110011")?"selected":"");?>>00000011 0011</option>

(5)

55

(($address1=="000000110100")?"selected":"");?>>00000011 0100</option>

<option value="000000110101" <?php echo (($address1=="000000110101")?"selected":"");?>>00000011 0101</option>

<option value="000000110110" <?php echo (($address1=="000000110110")?"selected":"");?>>00000011 0110</option>

<option value="000000110111" <?php echo (($address1=="000000110111")?"selected":"");?>>00000011 0111</option>

<option value="000000111000" <?php echo (($address1=="000000111000")?"selected":"");?>>00000011 1000</option>

<option value="000000111001" <?php echo (($address1=="000000111001")?"selected":"");?>>00000011 1001</option>

<option value="000000111010" <?php echo (($address1=="000000111010")?"selected":"");?>>00000011 1010</option>

<option value="000000111011" <?php echo (($address1=="000000111011")?"selected":"");?>>00000011 1011</option>

<option value="000000111100" <?php echo (($address1=="000000111100")?"selected":"");?>>00000011 1100</option>

…… ……

(6)

56

(($address1=="000001100100")?"selected":"");?>>00000110 0100 </option>

</select>

Source code 2. Struktur data Instruksi address

Struktur data address di atas adalah struktur data address 1. Sedangkan untuk address 2, hanya berbeda pada variable random address. Berikut perbedaan antara struktur data address 1 dan address 2 (perbedaan antara address 1 dan address 2 tercetak tebal dan miring):

Address1:

<select name="box[<?php echo $a;?>][1]" />

<option value="000000110011" <?php echo (($address1=="000000110011")?"selected":"");?>>00000011 0011</option>

Struktur data Instruksi Address 1

Address2:

<select name="box[<?php echo $a;?>][3]" />

<option value="000000110011" <?php echo (($address2=="000000110011")?"selected":"");?>>00000011 0011 </option>

(7)

57

Selain itu, perbedaan antara struktur data address 1 dengan address 2 adalah pada index arraynya. Address 1 memiliki index array 1 dan address 2 memiliki index array 3.

2. Struktur data Memori data

Struktur data memori data merupakan wadah untuk menyimpan data yang akan di eksekusi. Struktur data memori data menggunakan struktur data array satu dimensi. Pada struktur data memori data, data yang terkandung pada struktur data tersebut akan di- eksekusi akan di acak dengan rentang nilai tertentu. Berikut struktur data memori data:

<? $oke=''; $nil='0000000000000000000000000000000'; for($c=51; $c<101;$c++){ $memBil=''; for($k=0;$k<8;$k++){ $memBil.=rand(0,1); } $sign=($c>90)?1:0; $valMem=(!empty($wordBil[$c])?$wordBil[$c]:$sign.$nil.$m emBil); ?> <tr> <td><?php echo $c;?></td>

<td colspan="4"><input type="text" name="bilangan [<?php echo $c;?>]" size="65" value="<?php echo $valMem;?>" /></td>

(8)

58 </tr> <? $oke.=$c." ".$valMem."<br />"; } ?>

Source code Struktur data memori data 3. Struktur data register

Struktur data register merupakan wadah untuk menyimpan data register. Struktur data yang digunakan pada struktur data register adalah array satu dimensi. Berikut struktur data register:

<tr><td>MBR</td>

<td><input type="text" name="mbr[0]" size="8" value="<?php echo $reg_mbr[0];?>" /></td>

<td><input type="text" name="mbr[1]" size="12" value="<?php echo $reg_mbr[1];?>" /></td>

<td><input type="text" name="mbr[2]" size="8" value="<?php echo $reg_mbr[2];?>" /></td>

<td><input type="text" name="mbr[3]" size="12" value="<?php echo $reg_mbr[3];?>" /></td>

</tr> <tr>

<td>MAR</td><td colspan="4"><input type="text" name="mar" size="12" value="<? echo $reg_mar; ?>"/></td>

</tr> <tr>

<td>IR</td><td colspan="4"><input type="text" name="ir" size="8" value="<? echo $reg_ir; ?>"/ ></td>

(9)

59 <tr>

<td>IBR</td>

<td colspan="1"><input type="text" name="ibr[0]" size="8" value="<? echo $reg_ibr1; ?>"/></td>

<td colspan="1"><input type="text" name="ibr[1]" size="12" value="<? echo $reg_ibr2; ?>" /></td>

</tr> <tr>

<td>PC</td><td colspan="4"><input type="text" name="pc" size="45" value="<? echo $regpc; ?>"/></td>

</tr> <tr>

<td>AC</td>

<td colspan="4"><input type="text" name="ac" size="45" value="<? echo $reg_ac; ?>"/></td>

</tr> <tr>

<td>MQ</td>

<td colspan="4"><input type="text" name="mq" size="45" value="<? echo $reg_mq; ?>"/></td>

</tr>

(10)

60 4.1.2 Program Utama

Program utama menunjukkan proses fetch atau pengambilan instruksi dan eksekusi. Pada proses pengambilan instruksi, register IR dan MAR akan mulai terisi. Dan pada proses eksekusi, maka semua register akan terisi sesuai dengan insruksi pada register IR.

1. proses pengambilan instruksi/ fetch. $pc=1; $reg_mq='0000000000000000000000000000000000000000'; $j=0; $reg_ir=$_POST['ir']; $reg_mar=$_POST['mar']; $reg_mbr=$_POST['mbr']; $reg_pc=$_POST['pc']; $reg_ac=isset($_POST['ac'])?$_POST['ac']:'00000000000000000000 00000000000000000000'; $arrIns=$box; $jumIns=count($arrIns);

Source code deskripsi program utama

if($ok){ #Konstanta

//echo $pc.'= '.$jumIns.'= '.$reg_ac;

while($pc<=$jumIns && $reg_ac!=''){// while PC <= 50 if(isset($arrIns[$pc])){

(11)

61

$reg_ibr1=$reg_mbr[2]; $reg_ibr2=$reg_mbr[3]; if(strlen($arrIns[$pc][2])>0|| strlen($arrIns[$pc][3])>0){ // If (IBR== true)

$cab="cabang 1"; //$arrRes[$j]['pc']=$pc; $reg_ir=$reg_mbr[0];// IR ← MBR $reg_mar=$reg_mbr[1];// IR ← MBR $pc=$pc+2;// PC <- PC+1 $pc1=decbin($pc); $regpc= fillZero1($pc1);

Source code proses pengambilan instruksi program utama

2. Proses eksekusi

echo bindec($reg_mar).' '.$wordBil[bindec($reg_mar)];

$temp=opcode($reg_mq, $reg_ir, $wordBil[bindec($reg_mar)], $reg_ac); if(is_array($temp)){ $reg_mbr=$temp; }else{ $flag=substr($temp, 0,2); switch($flag){ case'ac':{ $reg_ac=substr($temp, 2);break; } case'mq':{ $reg_mq=substr($temp, 2);break;

(12)

62 } case'cq':{ $expTemp=explode(" ",$temp); $reg_ac=$expTemp[1]; $reg_mc=$expTemp[2]; break; } }

(13)

63 4.1.3 Interface

Pada penelitian von Neumann ini, tidak hanya terdiri dari program proses eksekusi von Neumann, tetapi juga terdapat dua buah program pendukung dari aplikasi von Neumann.

1. Program utama Von Neumann

Gambar 4.1 Interface aplikasi Von Neumann.

Pada program utama, terdapat 100 word memori yang terdiri atas 50 word memori instruksi dan 50 word memori data. Pada bagian bawah terdapat tombol untuk menjalankan program dan menghasilkan output. Di kolom kiri terdapat menu untuk berpindah ke aplikasi pendukung.

(14)

64

2. Program pendukung : konversi bilangan.

Gambar 4.2 Interface aplikasi Konversi Bilangan

Aplikasi pendukung yang pertama yaitu aplikasi konversi biner-desimal dan desimal-biner. Aplikasi ini dibuat untuk mempermudah pengguna aplikasi dalam menerjemahkan bilangan biner sehingga dapat membantu pengguna untuk melakukan pembuktian atas kinerja aplikasi von Neumann.

Pada aplikasi konversi bilangan ini, terdapat dua buah media konversi bilangan, yaitu konversi bilangan biner- desimal yang berada pada sebelah kiri tampilan dan konversi bilangan desimal-biner yang berada pada sebelah kanan tampilan. Pada tiap konversi bilangan

(15)

65

terdapat tombol yang berfungsi untuk menampilkan output yang akan muncul pada textbox hasil.

3. Program pendukung: Library opcode

Gambar 4.3 InterfaceaplikasiLibrary Opcode

Selain itu, pada aplikasi von Neumann juga terdapat library opcode. Aplikasi von Neumann mengandung kode operasi atau opcode yang memiliki arti tersendiri pada setiap kode. Oleh karena itu,

(16)

66

dibuat library opcode untuk memudahkan pengguna aplikasi dalam memahami maksud dari kode-kode tersebut.

Pada aplikasi ini, terdapat kotak pilihan select option yang berfungsi untuk memilih opcode apa yang ingin di terjemahkan oleh pengguna. Untuk menerjemahkan opcode yang diinginkan, pengguna dapat menekan tombol yang kemudian output akan tampil pada textbox deskripsi.

4.2 Pengujian

Pengujian merupakan langkah untuk memastikan apakah aplikasi yang di buat sesuai dengan yang di harapkan.Terdapat beberapa hal yang akan di jelaskan pada pengujian ini, yaitu diantaranya skenario uji dan hasil pengujian.

4.2.1 Skenario Uji

Skenario uji adalah rincian hasil akhir aplikasi yang diinginkan. Pada masing-masing skema skenario uji ini terdapat kolom no, kode, deskripsi dan hasil yang di harapkan. Terdapat tiga buah skema scenario uji, yaitu skema aplikasi von Neumann, skema konversi bilangan dan skema library opcode.Berikut skemaskenario uji:

Tabel 4.1 Skenario Uji Aplikasi Simulasi Von Neumann.

No Kode Deskripsi Hasil yang diharapkan

1 VN.1 Menginput instruksi dan data pada memori secara acak otomatis jika masuk ke aplikasi atau dengan cara merefresh aplikasi.

Data pada memori dapat teracak secara otomatis.

2. VN.2 Memvisualisasikan output dari pengambilan instruksi dan

Aplikasi menghasilkan output yang sesuai

(17)

67

eksekusi dengan cara mengklik tombol OK.

setelah tombol OK di klik.

Tabel 4.2 Skenario Uji Aplikasi Konversi Bilangan.

No Kode Deskripsi Hasil yang Diharapkan

1 KB.1 Menginput bilangan biner secara manual pada textbox “konversi bilangan biner”.

Bilangan biner dapat di input ke dalam textbox “konversi bilangan biner”.

2 KB. 2 Menginput bilangan desimal

secara manual pada textbox “konversi bilangan desimal”.

Bilangan desimal dapat di input ke dalam textbox “konversi bilangan desimal”. 3 KB. 3 Output bilangan biner

tervisualisasi pada textbox hasil konversi biner setelah mengklik tombol OK.

Outputbilangan biner tampil pada textbox hasil konversi biner.

4 KB. 4 Output bilangan desimal

tervisualisasi pada textbox hasil konversi desimal setelah mengklik tombol OK.

Output bilangan desimal tampil pada textbox hasil konversi desimal.

5. KB. 5 Output dari inputan bilangan biner berupa bilangan desimal

Output dari inputan bilangan biner berupa bilangan desimal 6 KB. 6 Output dari inputan bilangan

desimal berupa bilangan biner

Output dari inputan bilangan desimal berupa bilangan biner.

(18)

68

Tabel 4.3 Skenario Uji Aplikasi Library Opcode.

No Kode Deskripsi Hasil yang Diharapkan

1 LO. 1 Menginput opcode dengan cara

memilih opcode pada kotak select option.

Opcode dapat diinput pada kotak select option.

2 LO. 2 Output tervisualisasi pada textbox hasil setelah mengklik tombol OK.

Output tampil pada textbox hasil.

3. LO. 3 Output berupa deskripsi opcode. Output berupa deskripsi opcode.

4.2.2 Hasil uji Implementasi

Hasil pengujian adalah hasil akhir aplikasi.Terdapat 3 buah tabel hasil uji yang masing-masing memiliki 6 kolom, yaitu kolom no, kode, hasil akhir berupa input, aksi dan hasil, keterangan.

Tabel hasil uji diantaranya tabel hasil uji aplikasi utama von Neumann, tabel hasil uji aplikasi pendukung konversi bilangan dan tabel hasil uji aplikasi pendukung library opcode.Pada tabel hasil uji ini, akan dijelaskan apakah aplikasi sesuai antara hasil yang diharapkan dengan hasil akhir. Berikut tabel hasil uji dari ketiga aplikasi utama dan pendukung:

1. Hasil Uji Implementasi Aplikasi Simulasi Von Neumann

Pada tabel hasil uji aplikasi von Neumann, hanya terdiri dari 5 buah sampel hasil uji.

(19)

69

No Kode Hasil Akhir Keterang

an Input (otomatis) Aksi Hasil

1 VN.1, VN.2 Opcode1 :00001010 Address1:0000011000 10 Opcode 2:00000101 Address2:0000001111 10 Klik OK MBR[0]:000 01010 MBR[1]:000 001100010 MBR[2]: 00000101 MBR[3]:000 000111110 MAR:00000 1100010 IR:00001010 IBR[0]:0000 0101 IBR[1]: 0000001111 10 PC:0000000 00011 AC:0000000 0000000000 0000000000 0000000000 000 MQ:000000 0000000000 0000000000 0000000000 sesuai

(20)

70 0000 2 VN.1, VN.2 Opcode1 :00000011 Address1:0000011000 11 Opcode 2:00000101 Address2:0000001110 10 Klik OK MBR[0]:000 00010 MBR[1]:000 000111111 MBR[2]: 00000001 MBR[3]:000 001000101 MAR:00000 1100011 IR:00000011 IBR[0]:0000 0101 IBR[1]: 0000001110 10 PC:0000000 00101 AC:0000000 0000000000 0000000000 0000000010 000 MQ:000000 0000000000 0000000000 0000000000 0000 sesuai

(21)

71 3 VN.1, VN.2 Opcode1 :00001011 Address1:0000001101 01 Opcode 2:00001011 Address2:0000001100 11 Klik OK MBR[0]:000 01011 MBR[1]:000 000110101 MBR[2]: 00001011 MBR[3]:000 000110011 MAR:00000 0110101 IR:00001011 IBR[0]:0000 1011 IBR[1]: 0000001100 11 PC:0000000 00111 AC:0000000 0000000000 0000000000 0000000000 00 MQ:000000 0000000000 0000000000 0000000000 0000 sesuai

(22)

72 VN.2 Address1:0000001101 11 Opcode 2:00000001 Address2:0000010101 01 OK 01011 MBR[1]:000 000110101 MBR[2]: 00001011 MBR[3]:000 000110011 MAR:00000 0110111 IR:00000101 IBR[0]:0000 0001 IBR[1]: 0000010101 01 PC:0000000 01001 AC:0000000 0000000000 0000000000 0000001000 110 MQ:000000 0000000000 0000000000 0000000000 0000 5 VN.1, VN.2 Opcode1 :00000010 Address1:0000001110 Klik OK MBR[0]:000 01011 sesuai

(23)

73 01 Opcode 2:00001001 Address2:0000001110 01 MBR[1]:000 000110101 MBR[2]: 00001011 MBR[3]:000 000110011 MAR:00000 0111001 IR:00000010 IBR[0]:0000 1001 IBR[1]: 0000001110 01 PC:0000000 01011 AC:0000000 0000000000 0000000000 0000011100 100 MQ:000000 0000000000 0000000000 0000000000 0000

(24)

74

2. Hasil uji Implementasi aplikasi konversi bilangan

Pada tabel hasil uji aplikasi konversi bilangan hanya terdiri dari lima buah sampel konversi bilangan untuk bilangan biner ke desimal dan tujuh buah sampel konversi bilangan untuk bilangan desimal ke biner.

No Kode Hasil Akhir Keterangan

Input Aksi Hasil

1 KB. 3 000000110011 Klik OK 51 sesuai 000000111101 Klik OK 61 sesuai 000001000111 Klik OK 71 sesuai 000001010001 Klik OK 81 sesuai 000001011011 Klik OK 91 sesuai 2 KB. 4 1 Klik OK 000000000001 sesuai 20 Klik OK 000000010100 sesuai 77 Klik OK 000001001101 sesuai 80 Klik OK 000001010000 sesuai 32 Klik OK 000000100000 sesuai 99 Klik OK 000001100011 sesuai 8 Klik OK 000000001000 sesuai

(25)

75

3. Hasil uji Implementasi aplikasi opcode library

Pada hasil uji aplikasi opcode library, terdapat 11 pilihan opcode yang dapat di deskripsikan.

No Kode Hasil akhir keterangan

Input aksi hasil

1 LO.1, LO.2, LO.3 00001010 Klik OK transfer MQ ke AC sesuai

00001001 Klik OK transfer isi

lokasi memori (X) ke MQ sesuai 00000001 Klik OK Transfer M(X) ke AC sesuai 00000010 Klik OK transfer -M(X) ke AC sesuai 00000011 Klik OK transfer |M(X)| ke AC sesuai 00000100 Klik OK transfer -M(X) ke AC sesuai

00000101 Klik OK AC=M(X)+AC sesuai

00000111 Klik OK AC=|M(X)|+AC sesuai

00000110 Klik OK AC=AC-M(X) sesuai

00001000 Klik OK AC=AC-|M(X)| sesuai

00001011 Klik OK A=M(X) * MQ

: AC = A[0..39] :MQ =

A[40..79]

sesuai

(26)

Gambar

Gambar 4.1 Interface aplikasi Von Neumann.
Gambar 4.2 Interface aplikasi Konversi Bilangan
Gambar 4.3 InterfaceaplikasiLibrary Opcode
Tabel 4.1 Skenario Uji Aplikasi Simulasi Von Neumann.
+6

Referensi

Dokumen terkait

Sedangkan nilai buku ( book value per lembar saham) menunjukkan aktiva bersih ( net asset ) yang dimiliki oleh pemegang saham dengan memiliki satu lembar

a. mengerti dan memahami arti, tujuan, dan makna filsafat pendidikan. meningkatkan kesadaran dan pemahaman akan berbagai aliran pemikiran dalam filsafat

Bentuk campur kode dalam tataran kata yang dituturkan di lingkungan sekolah SMA Negeri 1 Kabangka dalam berkomunikasi terjadi dalam situasi formal dan

Pada kenyataan taraf ini – unitarisme dan isu HAM – para pendiri negara telah mencapai kesepakatan model tindakan komunikatif, karena perjuangan mereka terhadap

Hotel Novotel- Lampung, 21-23 Mei 2013. Nama : Frengki Manolito Simanjuntak Tempat/Tanggal Lahir : Dumai 25

Karakteristik tanah longsor di..., Geby Dewinta, FMIPA UI, 2014.. 3) Kejadian longsor di Kota Sawahlunto umumnya terjadi pada musim penghujan, dengan curah hujan &gt;100 mm.

Menurut Bastian dan Nurlela (2009:69) pengertian produk rusak sebagai adalah produk yang dihasilkan dalam proses produksi, di mana produk yang dihasilkan

Berdasarkan hasil penelitian variasi pemanis berpengaruh terhadap uji sifat fisik tablet hisap, yaitu pada uji kerapuhan hasilnya berbeda signifikan anatara Formula