BAB III ANALISA DAN PERANCANGAN APLIKASI
Pada bab analisa dan perancangan aplikasi, penulis akan menjelaskan apa saja yang dibutuhkan untuk membuat aplikasi, menerangkan fungsi dari elemen-elemen yang terkandung dalam aplikasi von Neumann, membandingkan dan memilih apa saja yang sebaiknya digunakan dalam membuat aplikasi von neumann. Selain itu, penulis juga akan menjelaskan bagaimana rancangan aplikasi simulasi pengambilan instruksi dan eksekusi pada mesin von neumann.
3.1 Analisa. Aplikasi von neumann ini merupakan perangkat pengajar untuk membantu proses belajar mengajar antara dosen dan mahasiswa. Dengan adanya aplikasi ini, dosen dapat sedikit lebih mudah mengajarkan proses pengambilan instruksi dan eksekusi pada mesin von neumann. Selain itu, para mahasiswa juga diharapkan sedikit terbantu untuk memahami bagaimana proses dan struktur data dalam melakukan proses pengambilan instruksi dan eksekusi pada mesin von neumann. Penulis tertarik untuk membuat aplikasi pengambilan instruksi dan eksekusi pada mesin von Neumann karena arsitektur ini sangat menarik.Pada era modern ini, beberapa piranti canggih menggunakan arsitektur von Neumann.Hal ini menandakan bahwa arsitektur von Neumann memiliki daya sehingga beberapa piranti di era modern ini masih menggunakan arsitektur yang merupakan arsitekur dari komputer generasi pertama.
27
3.1.1 Deskripsi sistem Untuk dapat mengoperasikan aplikasi simulasi ini, dapat masuk ke menu utama simulasi aplikasi von Neumann. Dalam aplikasi simulasi ini, terdapat bilangan biner dan opcode yang harus di terjemahkan untuk dapat memudahkan memahami cara kerja operasi aplikasi. Untuk mengkonversi bilangan, pengguna dapat masuk ke menu konversi bilangan dan untuk menerjemahkan fungsi opcode, pengguna dapat masuk ke menu library opcode. Langkah pertama untuk mengoperasikan dengan masuk ke dalam aplikasi von Neumann.Untuk memudahkan pengguna dan mempersingkat waktu penggunaan aplikasi, maka penulis membuat sistem random atau sistem acak untuk menginput data pada instruksi maupun data pada memori.Pengguna juga tidak perlu melakukan apapun untuk dapat melakukan pengisian memori secara random karena pengisian random pada memori secara otomatis terisi saat pengguna masuk ke aplikasi von Neumann. Selanjutnya, untuk melakukan eksekusi, pengguna hanya perlu memilih tombol untuk menampilkan hasil dari proses eksekusi. Hasil dari proses eksekusi akan tervisualisasi pada layar bagian bawah.
3.2 Perancangan Aplikasi Dalam merancang aplikasi simulasi ini, dibutuhkan beberapa hal pendukung pembuatan aplikasi, yaitu rancangan struktur data, algoritma dan rancangan interface aplikasi.
28
3.2.1
Pemodelan
Pada pemodelan aplikasi simulasi von Neumann ini, menggunakan tiga macam pemodelan yaitu use case diagram, activity diagram dan sequence diagram. 1. Use case diagram.
Gambar 3.1 use case diagram Berikut adalah deskripsi Use case yang telah digambarkan diatas : 1. Nama
: aplikasi von neumann.
Aktor
: User.
Deskripsi
:
pengguna menggunakan aplikasi simulasi von
neumann untuk mengetahui bagaimana mesin von neumann bekerja. Skenario
:
1. user masuk ke dalam aplikasi simulasi von neumann. 29
2. user menekan tombol ok untuk mengeksekusi instruksi pada memori. 3. output hasil eksekusi tampil pada layar. 2. nama
: aplikasi library opcode
Aktor
: user.
Deskripsi
: pengguna menggunakan aplikasi library opcode untuk
menerjemahkan opcode yang terkandung dalam aplikasi simulasi von neumann. Scenario
:
1. user masuk ke dalam aplikasi library opcode. 2. user memasukkan opcode yang akan di terjemahkan dengan memilihnnya pada kotak select. 3. user menekan tombol ok untuk mengeksekusi opcode. 4. tampil output pada kotak output. 3. Nama Actor
: aplikasi konversi bilangan : user
deskripsi : pengguna menggunakan aplikasi konversi bilangan untuk menerjemahkan bilangan biner ke desimal maupun desimal ke biner. Skenario: 1. user masuk ke dalam aplikasi konversi bilangan. 2. user memasukkan bilangan yang ingin di terjemahkan (harus pilih salah satu, yaitu desimal-biner atau biner-desimal).
30
3. user menekan tombol ok untuk mengeksekusi bilangan. 4. tampil output.
2. Activity diagram. Terdapat tiga buah activity diagram yang akan di bahas, yaitu activity diagram aplikasi simulasi von Neumann, activity diagram aplikasi opcode library dan activity diagram konversi bilangan. 1.
Activity diagram aplikasi simulasi von Neumann.
Gambar 3.2 activity diagram aplikasi simulasi von neumann. Berdasarkan activity diagram aplikasi simulasi von Neumann diatas, pengguna membuka aplikasi von Neumann, maka data dan instruksi pada memori
langsung
terisi
secara
otomatis
dan
teracak.Dan
untuk
mengeksekusi data dan instruksi, pengguna mengklik tombol ok. Maka akan tampil hasil eksekusi.
31
2.
Activity diagram aplikasi library opcode
Gambar 3.3 activity diagram aplikasi library opcode Berdasarkan activity diagram aplikasi library opcode diatas, pengguna membuka aplikasi library opcode, setelah itu pengguna dapat menginput opcode yang ingin di terjemahkan. Setelah itu, klik tombol ok untuk melihat terjemahan dari opcode yang telah dimasukkan tadi.
32
3.
Activity diagram aplikasi konversi bilangan.
Gambar 3.4 activity diagram aplikasi konversi bilangan Berdasarkan activity diagram aplikasi konversi bilangan di atas, pengguna membuka aplikasi konversi bilangan. Lalu untuk menerjemahkan bilangan, pengguna harus mengisi kolom bilangan yang akan di terjemahkan. Lalu klik ok untuk menampilkan bilangan hasil terjemahan.
3. Sequence diagram Terdapat tiga buah sequence diagram yang akan di bahas, yaitu sequence diagram aplikasi simulasi von Neumann, sequence diagram aplikasi opcode library dan sequence diagram konversi bilangan.
33
1. sequence diagram aplikasi simulasi von Neumann.
Gambar 3.5 sequence diagram aplikasi simulasi von Neumann Sequence diagram pada gambar 3.5 diatas merupakan sequence diagram aplikasi simulasi von Neumann. Diagram ini menjelaskan interaksi antar objek yang terdapat dalam aplikasi simulasi von neumann yang disusun dalam suatu urutan waktu
34
2. sequence diagram aplikasi opcode library
Gambar 3.6 sequence diagram aplikasi opcode library Sequence diagram pada gambar 3.6 diatas merupakan sequence diagram aplikasi opcode library. Diagram ini menjelaskan interaksi antar objek yang terdapat dalam aplikasi opcode library yang disusun dalam suatu urutan waktu
35
3. sequence diagram konversi bilangan.
Gambar 3.7 sequence diagram aplikasi konversi bilangan. Sequence diagram pada gambar 3.7 diatas merupakan sequence diagram aplikasi konversi bilangan. Diagram ini menjelaskan interaksi antar objek yang terdapat dalam aplikasi konversi bilangan yang disusun dalam suatu urutan waktu
36
3.2.2
Spesifikasi perancangan Dalam perancangan aplikasi terdapat beberapa spesifikasi aplikasi, yaitu: Random Untuk mengisi kolom pada memori maupun register, maka digunakan sistem random secara otomatis untuk memudahkan dan mempercepat waktu pengoperasian. 11 instruksi Aplikasi ini hanya mengandung 11 set instruksi untuk mengeksekusi data yang terdiri dari beberapa operasi transfer bilangan dan beberapa operasi aritmatika.
1.
Struktur data Dalam mendeklarasikan elemen struktur data arsitektur von Neumann ke
dalam suatu program, dapat menggunakan berbagai macam struktur data, diantaranya struktur data list, array, record, stack, dll. Namun peneliti akan menggunakan struktur data array sebagai penampung instruksi dan data dalam memori. Selain itu array juga di gunakan dalam menampung data pada registerregister. Penulis memilih untuk menggunakan struktur data array karena beberapa keuntungan, diantaranya: a. Lebih mudah dioperasikan. b. Ekonomis dalam pemakaian memori, bila semua elemen terisi. c. Akses ke setiap elemen memerlukan waktu yang sama.
37
a.
Memori Memori merupakan tempat untuk menyimpan instruksi maupun data pada arsitektur von Neumann. Pada keadaan nyata memori pada mesin von neumann terdiri dari 1000 lokasi penyimpanan atau 1000 word, yang masing-masing memiliki panjang sebanyak 40 binary digit (bit). Namun pada aplikasi simulasi ini, jumlah memori akan di perkecil menjadi 100 lokasi penyimpanan yang terdiri dari 50 lokasi penyimpanan atau word instruksi dan 50 word data. Dalam memori format antara word instruksi dan word data berbeda.Format untuk instruksi yang memiliki empat buah indeks kolom sedangkan format data yang memiliki dua buah indeks kolom.
Gambar 3.8 format memori computer IAS
38
Instruksi Memori instruksi merupakan tempat untuk menampung instruksi-instruksi operasi komputer IAS yang disimpan pada memori. Dalam array memori instruksi dapat dideklarasikan sbb: Type Memori = array [0…50][0…39] of biner
Dari pendeklarasian diatas dapat dijelaskan bahwa nama array tersebut adalah Memori. Jumlah indeks baris array, yaitu berjumlah 50 baris, yaitu dimulai dari baris 0 sampai baris 49. Sedangkan panjang word pada array memori adalah 40 bit. Array Memori memiliki tipe data biner. Pada memori instruksi terdiri dari 40 bit yang di bagi menjadi 2 macam instruksi, yaitu 0-19 bit untuk instruksi kiri dan 20-39 bit untuk instruksi kanan. Pada tiap-tiap bagian instruksi terdiri dari satu buah opcode dan satu buah alamat.Indeks opcode pada tiap bagian instruksi berfungsi untuk menampung kode operasi instruksi. Sedangkan indeks alamat berfungsi untuk menampung alamat dari instruksi yang akan dijalankan. Data Memori
untuk
format
data
merupakan
tempat
untuk
menampung data yang akan di eksekusi. Array memori data dapat dideklarasikan sbb: Type Memori=array[51…100][0…40] of biner.
Dari pendeklarasian array Memori untuk format data diatas dapat dijelaskan bahwa nama dari array tersebut adalah array Memori. Array
39
tersebut memiliki 50 indeks baris yang dimulai dari 51 sampai 100.Panjang word untuk array memori adalah 40 bit.Data yang terdapat dalam array tersebut berbentuk bilangan biner. Pada memori data juga bernilai 40 bit yang kemudian di pecah menjadi 1 bit untuk bit tanda dan 39 bit untuk data. Bit tanda merupakan indikator apakah data tersebut bernilai positif maupun negatif. Namun, tanda positif dan negatif akan diinisialisasikan menjadi angka 1 dan 0. Jika bernilai positif maka akan diinisialisasikan dengan
0 dan jika bernilai
negatif akan
diinisialisasikan dengan 1. Contoh :
b. Register Hal penting selanjutnya yang terdapat dalam arsitektur von neumann adalah ALU (Arithmetic and Logic Unit) dan PCU (Program Control Unit). Kedua unit ini berisi register-register.Register-register yang terkandung pada ALU dan PCU diantaranya IR, MAR, MBR, PC, AC. Register-register tersebut merupakan tempat sementara bagi data instruksi yang akan diproses. Register-register tersebut akan diisi angka-angka yang berasal dari memori dan set instruksi yang terdapat pada array memori, kemudian akan di kembalikan atau di letakkan dengan nilai baru ke dalam array yang berperan sebagai memori. Berbeda dengan struktur data pada memori dan set instruksi, jenis struktur data array yang digunakan pada register merupakan array 1 dimensi. Sedangkan untuk tipe data yang terkandung pada array register ini tetap menggunakan bilangan biner, seperti
40
array memori.
Dengan
digunakannya bilangan biner, akan memperjelas instruksi-instruksi yang diinginkan mengingat terdapat beberapa set instruksi yang mirip namun memiliki kode bilangan yang berbeda. Register memiliki deklarasi array sebagai berikut: Type Register = array[0…39] of biner IR = Register MBR = Register MAR = Register PC = Register IBR = Register
Berikut elemen-elemen register: 1. IR IR atau Instruction Register merupakan elemen register yang berfungsi untuk menyimpan instruksi yang akan dieksekusi. Berikut format register IR:
Gambar 3.9 register IR
41
2. MBR MBR atau Memory Buffered Reader merupakan register yang berfungsi untuk menyimpan sementara word yang akan disimpan pada memori atau digunakan untuk menerima word dari memori. MBRakan dibagi menjadi 4 kolom, yaitu 2 buah kolom opcode yang memiliki panjang 8 bit untuk setiap kolomnya. Selain itu pada array ini juga terdapat 2 buah kolom alamat yang masing-masing memiliki panjang 12 bit.Berikut format register MBR:
Gambar 3.10 register MBR
3. MAR MAR atau Memory Address Register merupakan register yang berfungsi untuk menentukan alamat word di memori untuk dituliskan dari MBR atau dibaca ke MBR. Berikut format register MAR:
Gambar 3.11 register MAR
42
4. PC PC atau Program Counter merupakan sebuah register yang berisi alamat pasangan instruksi berikutnya yang akan diambil dari memori. Berikut format register PC:
Gambar 3.12 register PC
5. AC AC atau Accumulator merupakan sebuah register yang berfungsi untuk menyimpan sementara operand dan hasil operasi ALU yang berarti. Format register AC adalah sbb:
Gambar 3.13 register AC
6. MQ MQ atau Multiplier-Quontient merupakan sebuah register yang berfungsi untuk menyimpan sementara operand dan hasil operasi ALU yang kurang berarti. Format register MQ adalah sbb:
43
Gambar 3.14 register MQ
7. IBR IBR atau Instruction Buffer Registermerupakan array register yang digunakan untuk menyimpan sementara instruksi sebelah kanan word didalam memori. IBR memiliki dua buah kolom yaitu kolom opcode yang memiliki panjang 8 bit dan kolom alamat yang memiliki panjang 12 bit.
Gambar 3.15 register IBR Tipe data 2. Tipe data tipe data yang terkandung dalam struktur data aplikasi von Neumann adalah tipe data baru yaitu tipe data biner. biner = type [0,1]
44
3.2.3
Algoritma
// mendeklarasikan nilai awal pada register MAR, PC, IR, IBR,MBR : Register Function instruksi(ins){fungsi untuk mengecek opcode dan mengeksekusi opcode pada instruksi} { Switch (opcode){ Case ‘00001010’:{ MQ == AC; break;} Case ‘00001001’:{ M(X) == MQ; break;} Case ‘00000001’:{ M(X) == AC break;} Case ‘00000010’:{ -M(X) == AC break;} Case ‘00000011’:{ |M(X)| == AC break;} Case ‘00000100’:{ -|M(X)| == AC break;} Case ‘00000101’:{ AC = AC + M(X) break; } Case ‘00000111’:{ AC = AC + |M(X)| break;}
45
Case ‘00000110’:{ AC= AC – M(X) break;} Case ‘00001000’:{ AC=AC - |M(X)| break;} Case ‘00001011’:{ A=M(X) * MQ A[0-39]=AC; A[40-79]=MQ; break;} } While PC <= 50{mengecek apakah MAR <= 50 mengingat instruksi <=50} IR ← MBR; { masukkan nilai register IBR pada register IR } MAR ← MBR; {masukkan nilai register IBR pada register MAR} PC <- PC+1 {nilai PC ditambah 1} instruksi(ins) {pada tahap ini, dilakukan decode dan eksekusi dengan cara memanggil fungsi instruksi} end while end
46
3.2.4
User Interface 1. Tampilan Menu utama
Gambar 3.16 tampilan menu utama Pada tampilan menu utama pada gambar 3.16 di atas, merupakan tampilan aplikasi secara keseluruhan dengan terdapat tiga buah menu aplikasi.
47
2. Tampilan menu 1
Gambar 3.17 tampilan menu 1 Bentuk tampilan pada gambar 3.17 diatas, merupakan tampilan dari aplikasi simulasi von Neumann.
48
3. Tampilan menu 2
Gambar 3.18 tampilan menu 2 Tampilan menu 2 pada gambar 3.18 diatas merupakan tampilan untuk aplikasi library opcode. 4. Tampilan menu 3
Gambar 3.19 tampilan menu 3 Tampilan menu 3 pada gambar 3.19 diatas merupakan tampilan untuk aplikasi konversi bilangan.
49
50