BAB III ALGORITMA DAN PERANCANGAN ALGORITMA DAN PERANCANGAN Model proses pengembangan perangkat lunak yang penulis gunakan adalah Model Linear Sequential atau sering disebut Water Fall Model. Metode pengembangan perangkat lunak dengan pendekatan model ini mencakup kegiatankegiatan : - Rekayasa sistem dan analisis, karena perangkat lunak adalah bagian dari sistem yang lebih besar penulis memulainya dengan membuat algoritmaalgoritma proses dan eksekusi. - Analisis kebutuhan perangkat lunak, pengumpulan kebutuhan dengan fokus pada perangkat lunak simulasi ini. - Perancangan, proses perancangan mengubah kebutuhan-kebutuhan menjadi bentuk karakteristik yang dimengerti sebelum memulai penulisan program. - Pembuatan kode program, menerjemahkan perancangan awal kedalam bentuk barisan perintah yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemograman Visual Basic. - Pengujian, ini memfokuskan pada logika internal dari perangkat lunak simulasi ini, fungsi-fungsi eksternal, dan mencari segala kemungkinan adanya kesalahan dengan memeriksa apakah sudah sesuai dengan teori dan hasil yang diharapkan. 3.1 Algoritma Algoritma perancangan perangkat lunak simulasi penerapan modus pengalamatan dan operasi aritmatika pada mikroprosesor intel 8088/8086 terbagi menjadi 4 bagian yaitu, 36
1. Algoritma Eksekusi Op-Code MOV. 2. Algoritma Eksekusi Op-Code ADD dan ADC. 3. Algoritma Eksekusi Op-Code INC. 4. Algoritma Eksekusi Op-Code SUB dan SBB. 5. Algoritma Eksekusi Op-Code DEC. 6. Algoritma Eksekusi Op-Code MUL. 7. Algoritma Eksekusi Op-Code DIV. 3.1.1 Algoritma Eksekusi Op-Code MOV Perintah MOV digunakan untuk menyalin suatu bilangan ke register tujuan atau memindahkan data dari isi suatu register ke register tujuan. Algoritma akan mengeksekusi op-code MOV sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Algoritma eksekusi op-code MOV adalah sebagai berikut, 37
Start Reg2 (Karakte r Akhir) X, H or L Ya Input merupakan pengalamatan register Tidak Input merupakan pengalamatan segera End 3.1.2 Algoritma Eksekusi Op-Code ADD dan ADC Perintah ADD digunakan untuk menambah suatu bilangan ke register tujuan atau menambahkan isi dari suatu register dengan isi dari register tujuan. Perintah ADC sama dengan perintah ADD, hanya saja perintah ADC menambah hasil operasi dengan bit carry. Algoritma akan mengeksekusi op-code ADD atau ADC sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Algoritma eksekusinya adalah sebagai berikut : 38
Start Reg 1 & 2 ADC or ADD; chasil >0 Ya chasil1 = Biner2Dec(cOp1) + Biner2Dec(cOp2) Tidak End 3.1.3 Algoritma Eksekusi Op-Code INC Perintah INC (penjumlahan inkremen) digunakan untuk menambah satu bit ke register tujuan. Algoritma akan mengeksekusi op-code INC sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Algoritma eksekusinya adalah sebagai berikut, Start Reg 1 & 2 INC; chasil >0 Ya chasil1 = Biner2Dec(cOp1) + 1 Tidak End 39
3.1.4 Algoritma Eksekusi Op-Code SUB dan SBB Perintah SUB digunakan untuk mengurangi register tujuan dengan suatu bilangan atau menambahkan isi dari register tujuan dengan isi dari register lain. Perintah SBB sama dengan perintah SUB, hanya saja perintah SBB mengurangi hasil operasi dengan bit carry. Algoritma akan mengeksekusi op-code SUB atau SBB sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Algoritma eksekusinya adalah sebagai berikut : Start Reg 1 & 2 SUB or SBB; chasil >0 Ya chasil1 = Biner2Dec(cOp1) - Biner2Dec(cOp2) Tidak End 3.1.5 Algoritma Eksekusi Op-Code DEC Perintah DEC (pengurangan dekremen) digunakan untuk mengurang satu bit dari register tujuan. Algoritma akan mengeksekusi op-code DEC sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. 40
Algoritma eksekusinya adalah sebagai berikut : Start Reg 1 & 2 DEC; chasil >0 Ya chasil1 = Biner2Dec(cOp1) - 1 Tidak End 3.1.6 Algoritma Eksekusi Op-Code MUL Perintah MUL (perkalian) digunakan untuk operasi perkalian bilangan tak bertanda. Perkalian di dalam mikroprosesor INTEL 8088/8086 ada 2 jenis, yaitu : perkalian 8 bit dan perkalian 16 bit. Hasil perkalian 8 bit menghasilkan bilangan 16 bit dan disimpan pada register AX, sedangkan hasil perkalian 16 bit menghasilkan bilangan 32 bit dan disimpan pada register DX-AX. Algoritma akan mengeksekusi op-code MUL sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Berikut algoritmanya : 41
Start Reg 1 & 2 SUB or SBB; chasil >0 Ya chasil1 = Biner2Dec(cOp1) * Biner2Dec(cOp2) Tidak End 3.1.7 Algoritma Eksekusi Op-Code DIV Perintah DIV (pembagian) digunakan untuk operasi pembagian bilangan tak bertanda. Pembagian di dalam mikroprosesor INTEL 8088/8086 ada 2 jenis, yaitu : pembagian 8 bit dan pembagian 16 bit. Hasil bagi register AX dengan register 8 bit menghasilkan bilangan 8 bit dan disimpan pada register AH dan sisa bagi disimpan pada register AL. Sedangkan hasil bagi register DX-AX dengan register 16 bit menghasilkan bilangan 16 bit dan disimpan pada register AX dan sisa bagi disimpan pada register DX. Algoritma akan mengeksekusi op-code DIV sesuai dengan input dan menunjukkan perubahan isi register setelah perintah dieksekusi. Berikut algoritmanya : 42
Start Reg 1 & 2 SUB or SBB; chasil >0 Ya chasil1 = Biner2Dec(cOp1) / Biner2Dec(cOp2) Tidak End 3.2 Perancangan Perangkat lunak ini dirancang dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.0 dengan beberapa komponen standar seperti TextBox, Microsoft Flex Grid, PictureBox, Image, Shape, Label, dan sebagainya. Perangkat lunak ini memiliki beberapa form, seperti : 1. Form Splash Screen. 2. Form Input Perintah. 3. Form Tambah Perintah. 4. Form Proses Op-Code. 5. Form Perihal. 43
3.2.1 Form Splash Screen Form Splash Screen berfungsi sebagai form awal (pembuka) pada perangkat lunak. Klik pada form atau ketik tombol <ENTER> untuk melanjutkan. 1 2 4 3 Gambar 3.1 Rancangan Form Splash Screen Keterangan : 1 : data penyusun skripsi. 2 : nama perangkat lunak. 3 : gambar icon perangkat lunak. 4 : data program studi dan kampus. 3.2.2 Form Input Perintah Form Input Perintah merupakan form yang berfungsi untuk memasukkan perintah op-code pada perangkat lunak, untuk selanjutnya diproses pada form Proses Perintah. 44
1 2 3 4 5 6 7 8 9 10 11 12 Gambar 3.2 Rancangan Form Input Perintah Keterangan : 1 : title bar, berisikan tulisan Input Perintah. 2 : tombol x, berfungsi untuk menutup form dan keluar dari program. 3 : tombol Perihal, untuk memunculkan form Perihal. 4 : tombol Panggil, untuk membuka data op-code yang sebelumnya disimpan. 5 : tombol Simpan, untuk menyimpan data op-code yang telah di-input. 6 : tabel Barisan Perintah, merupakan tempat ditampilkannya barisan op-code. 7 : tombol Tambah, untuk menambah perintah berikutnya. 8 : tombol Sisipkan, untuk menyisipkan perintah di antara perintah yang telah dimasukkan. 9 : tombol Ubah, untuk mengubah perintah yang telah dimasukkan. 10 : tombol Hapus, untuk menghapus perintah yang telah dimasukkan. 11 : tombol Jalankan, untuk memproses perintah yang telah dimasukkan dengan menampilkan form Proses OP-Code. 45
12 : tombol Keluar, untuk keluar dari form. 3.2.3 Form Tambah Perintah Form Tambah Perintah merupakan form yang berfungsi untuk menambahkan perintah op-code pada perangkat lunak. Form ini tampil apabila tombol Tambahkan, Sisipkan, Ubah ditekan pada form Input Perintah. Form ini juga menampilkan informasi dan fungsionalitas dari masing masing perintah yang dipilih. 1 2 4 5 3 6 7 8 9 10 Gambar 3.3 Rancangan Form Tambah Perintah Keterangan : 46
1 : title bar, berisikan tulisan Tambah Perintah. 2 : tombol x, berfungsi untuk menutup form. 3 : combo box, untuk memilih perintah yang akan digunakan. 4 : combo box, untuk memilih register-1 yang akan digunakan. 5 : combo box, untuk memilih register-2 yang akan digunakan. 6 : option button, untuk memilih pengalamatan atau penjumlahan register. 7 : option button, untuk memilih pengalamatan atau penjumlahan segera. 8 : daerah tampilan informasi mengenai perintah yang dipilih. 9 : tombol OK, berfungsi untuk memasukkan perintah yang telah dipilih. 10 : tombol Batal, berfungsi untuk membatalkan perintah yang telah dipilih. 3.2.4 Form Proses Op-Code Form Proses Op-Code merupakan inti dari perangkat lunak. Form ini berfungsi untuk mengeksekusi setiap perintah op-code yang dimasukkan pada form Input Perintah. Form ini juga menunjukkan semua perubahan dari isi register akibat eksekusi perintah. Hasil eksekusi dapat disimpan dan dibuka pada aplikasi notepad pada sistem operasi windows. 47
Gambar 3.4 Rancangan Form Proses Perintah Keterangan : 1 : title bar, berisikan tulisan Proses Op-Code pada Mikroprosesor INTEL 8088/8086. 2 : tombol x, berfungsi untuk menutup form. 3 : tabel perintah, untuk menampilkan barisan perintah op-code yang akan diproses. 4 : tabel General Purpose Register, untuk menampilkan isi dari register AX (AH & AL), BX (BH & BL), CX (CH & CL), dan DX (DH & DL). 5 : tabel Register Flag, untuk menampilkan isi dari register flag : Z (Zero), C (Carry), A (Half Carry), S (Sign), P (Parity) dan O (Overflow). 6 : textbox, untuk menampilkan hasil eksekusi dari perintah. 7 : tombol Simpan Eksekusi, untuk menampilkan kotak dialog simpan. 8 : combobox, untuk memilih kecepatan eksekusi perintah. 9 : tombol Proses, untuk memulai proses eksekusi perintah. 10 : tombol Pause, untuk menghentikan proses eksekusi perintah secara sementara. 11 : tombol Keluar, untuk keluar dari form. 48
3.2.5 Form About Form About merupakan form untuk menampilkan data penyusun skripsi. Gambar 3.5 Rancangan Form About Keterangan : 1 : title bar, berisikan tulisan Perihal. 2 : tombol x, berfungsi untuk menutup form. 3 : nama perangkat lunak. 4 : data penyusun skripsi. 5 : gambar icon dari perangkat lunak. 6 : data kampus. 7 : tombol OK untuk menutup form Perihal. 49