1 BAB IV IMPLEMENTASI DAN PENGUJIAN Pada bab implementasi dan pengujian ini, akan menjelaskan tentang implementasi terhadap struktur data, program uta...
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.
51
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:
(($opcode1=="00001011")?"selected":"");?>>00001011 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):
53
Opcode1: <select name="box[][0]" /> >00001010 Struktur data Instruksi Opcode 1
(($address1=="000001100100")?"selected":"");?>>00000110 0100 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):
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 dieksekusi akan di acak dengan rentang nilai tertentu. Berikut struktur data memori data:
$oke.=$c." ".$valMem." "; } ?> 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:
MBR
MAR
IR
58
IBR
colspan="1">
type="text"
name="ibr[0]"
size="8"
value=" echo $reg_ibr1; ?>"/>
colspan="1">
type="text"
name="ibr[1]"
size="12"
value=" echo $reg_ibr2; ?>" />
PC
colspan="4">
type="text"
name="pc"
size="45" value=" echo $regpc; ?>"/>
AC
MQ
colspan="4">
type="text"
name="mq"
value=" echo $reg_mq; ?>"/>
Source code Struktur data register
59
size="45"
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])){ $reg_mbr=$arrIns[$pc];
60
$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
} case'cq':{ $expTemp=explode(" ",$temp); $reg_ac=$expTemp[1]; $reg_mc=$expTemp[2]; break; } } Source code eksekusi program utama
62
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.
63
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
64
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,
65
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 1
Kode VN.1
Deskripsi
Hasil yang diharapkan
Menginput instruksi dan data pada
Data pada memori dapat
memori secara acak otomatis jika
teracak secara otomatis.
masuk ke aplikasi atau dengan cara merefresh aplikasi. 2.
VN.2
Memvisualisasikan output dari
Aplikasi menghasilkan
pengambilan instruksi dan
output yang sesuai
66
eksekusi dengan cara mengklik
setelah tombol OK di
tombol OK.
klik.
Tabel 4.2 Skenario Uji Aplikasi Konversi Bilangan. No 1
Kode KB.1
Deskripsi
Hasil yang Diharapkan
Menginput bilangan biner secara
Bilangan biner dapat di
manual pada textbox “konversi
input ke dalam textbox
bilangan biner”.
“konversi bilangan biner”.
2
KB. 2
Menginput bilangan desimal
Bilangan desimal dapat
secara manual pada textbox
di input ke dalam
“konversi bilangan desimal”.
textbox “konversi bilangan desimal”.
3
KB. 3
Output bilangan biner
Outputbilangan biner
tervisualisasi pada textbox hasil
tampil pada textbox
konversi biner setelah mengklik
hasil konversi biner.
tombol OK. 4
KB. 4
Output bilangan desimal
Output bilangan desimal
tervisualisasi pada textbox hasil
tampil pada textbox
konversi desimal setelah mengklik
hasil konversi desimal.
tombol OK. 5.
KB. 5
Output dari inputan bilangan biner
Output dari inputan
berupa bilangan desimal
bilangan biner berupa bilangan desimal
6
KB. 6
Output dari inputan bilangan
Output dari inputan
desimal berupa bilangan biner
bilangan desimal berupa bilangan biner.
67
Tabel 4.3 Skenario Uji Aplikasi Library Opcode. No 1
Kode LO. 1
Deskripsi
Hasil yang Diharapkan
Menginput opcode dengan cara
Opcode dapat diinput
memilih opcode pada kotak select
pada kotak select option.
option. 2
3.
LO. 2
LO. 3
Output tervisualisasi pada textbox
Output tampil pada
hasil setelah mengklik tombol OK.
textbox hasil.
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.
Tabel 4.4 Hasil uji Implementasi aplikasi von neumann
73
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 1
2
Hasil Akhir
Kode KB. 3
KB. 4
Input
Aksi
Hasil
Keterangan
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
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
Tabel 4.5 hasil uji Implementasi aplikasi konversi bilangan
74
3. Hasil uji Implementasi aplikasi opcode library Pada hasil uji aplikasi opcode library, terdapat 11 pilihan opcode yang dapat di deskripsikan.
No 1
Kode LO.1,
Hasil akhir Input 00001010
aksi
hasil
Klik OK
transfer MQ ke
LO.2,
keterangan sesuai
AC
LO.3 00001001
Klik OK
transfer isi
sesuai
lokasi memori (X) ke MQ 00000001
Klik OK
Transfer M(X)
sesuai
ke AC 00000010
Klik OK
transfer -M(X)
sesuai
ke AC 00000011
Klik OK
transfer |M(X)|
sesuai
ke AC 00000100
Klik OK
transfer -M(X)
sesuai
ke AC 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
sesuai
: AC = A[0..39] :MQ = A[40..79] Tabel 4.6 hasil uji Implementasi aplikasi pendukung library opcode.