PERANCANGAN PERANGKAT LUNAK PEMBELAJARAN MODUS

Download JURNAL INFORMASI. 13. PERANCANGAN ... Kebanyakan instruksi dalam program bahasa Assembly membutuhkan operand, yaitu data yang akan ... Pe...

0 downloads 667 Views 172KB Size
Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

PERANCANGAN PERANGKAT LUNAK PEMBELAJARAN MODUS PENGALAMATAN DAN OPERASI ARITMATIKA PADA MIKROPROSESOR INTEL 8088/8086 DENGAN MENGGUNAKAN MS. VISUAL BASIC 6.0”. Hendra Gunawan Teknik Informatika, STMIK-IM [email protected] Abstrak Percobaan penggunaan komputer untuk proses belajar dimulai di Amerika Serikat pada akhir tahun 1950-an dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan oleh Harvard University bekerja sama dengan IBM pada tahun 1965. Setelah munculnya komputer mikro, sistem pengajaran dengan komputer menjadi semakin meluas pada pengembangan perangkat lunak pembelajaran yang dikenal dengan istilah perangkat lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer dan matematika muncul program-program yang membuat semua perhitungan dan fungsi lebih mudah dan bermanfaat. Kata kunci : perangkat lunak pembelajaran, modus pengalamatan, mikroprosesor. 1. Pendahuluan Percobaan penggunaan komputer untuk proses belajar dimulai di Amerika Serikat pada akhir tahun 1950-an dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan oleh Harvard University bekerja sama dengan IBM pada tahun 1965. Setelah munculnya komputer mikro, sistem pengajaran dengan komputer menjadi semakin meluas pada pengembangan perangkat lunak pembelajaran yang dikenal dengan istilah perangkat lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer dan matematika muncul program-program yang membuat semua perhitungan dan fungsi lebih mudah dan bermanfaat. Sedangkan dari ilmu psikologi muncul pengetahuan mengenai teori belajar, teknik belajar, serta motivasi yang baik. Beberapa istilah yang digunakan untuk menyatakan perangkat lunak pembelajaran dengan komputer adalah Computer Assisted Instruction (CAI), Computer Based Instruction (CBI), Computer Based Education (CBE), Computer Assisted Learning (CAL), atau Computer Based Training (CBT). Prosesor Intel 8088/8086 merupakan mikroprosesor yang menjadi mesin bagi mikrokomputer-mikrokomputer IBM PC/XT dan kompatibelnya. Prosesor ini sering disebut dengan singkat sebagai “8088” atau “8086” saja. Walaupun perangkat keras 8088 sedikit berbeda dengan 8086, tetapi keduanya dapat dipandang sama dari sisi pemrograman. Intel 8088/8086 adalah prosesor 16 bit, artinya lintasan data dan registernya berukuran 16 bit. JURNAL INFORMASI

13

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

Kebanyakan instruksi dalam program bahasa Assembly membutuhkan operand, yaitu data yang akan diolah. Cara menentukan atau memperoleh harga operand ini disebut sebagai modus pengalamatan (addressing mode). Modus pengalamatan terbagi atas beberapa macam antara lain, pengalamatan register, pengalamatan segera, pengalamatan langsung dan pengalamatan tak langsung. Selain itu, dalam mempelajari bahasa Assembly, kita harus menghafalkan semua register dan mengerti kegunaannya masing – masing. Register adalah sebagian kecil memori komputer yang dipakai untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar kemampuan menampung register tersebut. Register dapat dibagi dalam lima golongan yaitu general purpose register (AX, BX, CX dan DX), segment register (CS, DS, SS dan ES), pointer register (IP, SP dan BP), index register (SI dan DI) dan flag register. Penulis tertarik untuk mempelajari tentang modus pengalamatan dan operasi aritmatika pada bahasa Assembly dan mengamati perubahan isi register yang terjadi. Oleh karena itu, penulis mengambil judul penelitian “Perangkat Lunak Pembelajaran Modus Pengalamatan dan Operasi Aritmatika pada Mikroprosesor Intel 8088/8086 Dengan Menggunakan MS. Visual Basic 6.0”. 2. Metode Penelitian Metode penelitian yang digunakan penulis adalah metode kualitatif, yaitu menjelaskan pendekatan yang digunakan, proses pengumpulan dan analisis informasi, dan proses. Selain itu penulis melakukan studi literature dengan membaca berbagai buku dan referensi yang berhubungan dengan masalah yang dihadapi serta melakukan observasi guna memperoleh data-data penunjang mengenai aplikasi yang akan dibuat. 3. Hasil dan Pembahasan 3.1 Perangkat Lunak Pembelajaran Percobaan penggunaan komputer untuk proses belajar dimulai di Amerika Serikat pada akhir tahun 1950-an dan awal tahun 1960-an. Kemudian penelitian selanjutnya dilakukan oleh Harvard University bekerja sama dengan IBM pada tahun 1965. Setelah munculnya komputer mikro, sistem pengajaran dengan komputer menjadi semakin meluas pada pengembangan perangkat lunak pembelajaran yang dikenal dengan istilah perangkat lunak pembelajaran. Perangkat lunak pembelajaran dengan komputer muncul dari sejumlah disiplin ilmu, terutama ilmu komputer dan psikologi. Dari ilmu komputer dan matematika muncul programprogram yang membuat semua perhitungan dan fungsi lebih mudah dan bermanfaat. Sedangkan dari ilmu psikologi muncul pengetahuan mengenai teori belajar, teknik belajar, serta motivasi yang baik. Beberapa istilah yang digunakan untuk menyatakan perangkat lunak pembelajaran dengan komputer adalah Computer Assisted Instruction (CAI), Computer Based Instruction (CBI), Computer Based Education (CBE), Computer Assisted Learning (CAL), atau Computer Based Training (CBT).

JURNAL INFORMASI

14

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

3.2 Tujuan Perangkat Lunak Pembelajaran Tujuan utama dari perangkat lunak pembelajaran adalah : 1. Peningkatan pengawasan. 2. Penggunaan sumber daya. 3. Individualisasi. 4. Ketepatan waktu dan tingkat ketersediaan. 5. Pengurangan waktu latihan. 6. Perbaikan hasil kerja. 7. Alat yang nyaman dipakai. 8. Pengganti cara belajar. 9. Peningkatan kepuasan belajar. 10. Pengurangan waktu pengembangan. 3.3 Jenis-jenis Perangkat Lunak Pembelajaran Jenis pemakaian komputer untuk perangkat lunak pembelajaran digolongkan menjadi tiga bagian, yaitu : Pengujian. Dalam jenis ini, komputer digunakan untuk memberikan penilaian dan analisis tes, membuat soal tes, membuat nilai acak, tes interaksi, dan tes adaptasi. Jenis ini sering disebut dengan Computer Assisted Testing (CAT). Manajemen. Jenis pemakaian ini disebut dengan Computer Managed Instruction (CMI), dimana komputer digunakan untuk mengatur kemajuan peserta pelatihan dan alat-alat yang dipakai. CMI biasanya digunakan untuk meningkatkan pengawasan dan efisiensi dalam sistem pelatihan. Instruksi. Sering disebut dengan Computer Assisted Instruction (CAI). Jenis ini menganggap komputer sebagai media penyimpanan instruksi sama seperti slide, tape, video atau buku-buku. Menurut sudut pandang CAI, masalah utamanya adalah bagaimana menyusun bahan-bahan instruksi yang akan ditampilkan oleh komputer dengan cara yang paling efektif. Ada tiga jenis CAI yaitu :

Drill and Practice

Merupakan cara yang paling mudah, terdiri dari tahap-tahap penampilan permasalahan, penerimaan respon pengguna, pemberian hasil analisis, umpan balik, dan pemberian pertanyaan lain. Secara umum jenis ini tidak menampilkan informasi baru tapi memberikan latihan dari konsep yang sudah ada.

Tutorial

Jenis ini berisi konsep atau prosedur yang disertai dengan pertanyaan atau latihan pada akhir dari pelatihan. Selama pelatihan, komputer mengajarkan informasiinformasi yang baru kepada siswa seperti layaknya seorang guru pembimbing. JURNAL INFORMASI

15

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

Setelah itu, pemahaman siswa diukur melalui serangkaian tes dan komputer melanjutkan pengajaran berdasarkan hasil pengukuran tadi.

Socratic

Berisi komunikasi antara pengguna dan komputer dalam natural language. Jenis ini sebenarnya berasal dari penelitian dalam bidang intelijensia semu (artificial intelligence). Socratic mampu melakukan interaksi dalam natural language dan bisa memahami apa yang ditanyakan pengguna. 3.4 Langkah-langkah Pengembangan Perangkat Lunak Pembelajaran Ada 5 tahap siklus pengembangan perangkat lunak pembelajaran yaitu : 1. Pengembangan spesifikasi perancangan detail. Tujuan dari pengembangan spesifikasi perancangan detail ini meliputi perluasan konsep perancangan untuk menciptakan suatu rencana yang efektif. 2. Pengembangan teknik. Pengembangan ini biasanya dilakukan dengan persetujuan dari tim perancang. Tahap ini biasanya akan diulang-ulang dan sering terjadi perbaikan. 3. Evaluasi. Untuk menghasilkan suatu perangkat lunak pembelajaran yang dapat memenuhi standar maka perlu dilakukan suatu pengujian. Pengujian biasanya dilakukan pada bagian pelajaran dan pelatihan. Hasil dari pengujian inilah yang dievaluasi oleh tim perancang. 4. Produksi dan pengembangan. Produksi ini harus dilakukan secara teknis dan logis, baik dalam penyalinan produk CAI maupun dalam pembuatan dokumentasi. Sedangkan pengembangan yang dilakukan mengacu pada proses pengembangannya. 5. Evaluasi akhir. Langkah pengujian yang dapat dilakukan misalnya dengan melakukan suatu kuisioner maupun konsultasi dengan mereka yang ingin belajar. Hasilnya dapat menjadi pedoman apakah perangkat lunak pembelajaran tersebut perlu dilakukan perbaikan lagi atau tidak. 4. Algoritma Algoritma perancangan perangkat lunak pembelajaran penerapan modus pengalamatan dan operasi aritmatika pada mikroprosesor intel 8088/8086 dibagi menjadi 4 bagian yaitu, 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.

JURNAL INFORMASI

16

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

5. Algoritma Eksekusi Op-Code MOV Instruksi MOV berfungsi 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 instruksi dieksekusi. Algoritma eksekusi op-code MOV adalah sebagai berikut, Jika Karakter terakhir dari .Reg2 = "X" Or _ Karakter terakhir dari .Reg2 = "H" Or _ Karakter terakhir dari .Reg2 = "L" Maka {Input merupakan pengalamatan register} cHasil1 = GetIsiReg(.Reg2) Else {Input merupakan pengalamatan segera} Jika Karakter terakhir dari .Reg1 = "X" Maka cHasil1 = FormatS(Hex2Biner(.Reg2), "0", 16) Else cHasil1 = FormatS(Hex2Biner(.Reg2), "0", 8) End Jika End Jika {Tampilkan perubahan isi register} cBaris = GetBaris(.Reg1) {Atur warna register tujuan} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &H66CCFF Jika Karakter terakhir dari .Reg1 = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &H66CCFF End Jika Delay nDelay {Isi nilai register pada tabel} Jika Karakter terakhir dari .Reg1 = "X" Maka 'AX TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(Mid(cHasil1, 1, 8), 4) TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom + 1) = _ BagiString(Mid(cHasil1, 9, 8), 4) JURNAL INFORMASI

17

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

Jika tidak, jika Karakter terakhir dari .Reg1 = "H" Or Karakter terakhir dari .Reg1 = "L" Maka 'AH / AL TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(cHasil1, 4) End Jika Delay nDelay {Hapus warna} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &HFFFFFF Jika Karakter terakhir dari (.Reg1, 1) = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &HFFFFFF End Jika 6. Algoritma Eksekusi Op-Code ADD dan ADC Instruksi ADD berfungsi untuk menambah suatu bilangan ke register tujuan atau menambahkan isi dari suatu register dengan isi dari register tujuan. Instruksi ADC sama dengan instruksi ADD, hanya saja instruksi ADC menambah hasil operasi dengan bit carry. Algoritma akan mengeksekusi op-code ADD atau ADC sesuai dengan input dan menunjukkan perubahan isi register setelah instruksi dieksekusi. Algoritma eksekusinya adalah sebagai berikut, {Simpan instruksi} cKode = .Instruksi Jika Karakter terakhir dari .Reg2 = "X" Or _ Karakter terakhir dari .Reg2 = "H" Or _ Karakter terakhir dari .Reg2 = "L" Maka {Penjumlahan Register} cOp1 = GetIsiReg(.Reg1) cOp2 = GetIsiReg(.Reg2) cHasil1 = Biner2Dec(cOp1) + Biner2Dec(cOp2) Jika cKode = "ADC" Maka cHasil1 = Val(cHasil1) + _ Val(TFlag.TextMatrix(2, 1)) Jika Val(cHasil1) < 0 Maka MsgBox "Perangkat lunak tidak mendukung bilangan bertanda !", vbCritical GoTo ErrorMin End Jika cHasil1 = Dec2Biner(Val(cHasil1)) JURNAL INFORMASI

18

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

{Cek panjang bit} Jika Karakter terakhir dari .Reg1 = "X" Maka Jika Len(cHasil1) < 16 Maka cHasil1 = FormatS(cHasil1, "0", 16) End Jika cHasil3 = FormatS(Right(cHasil1, 16), "0", 16) Else Jika Len(cHasil1) < 8 Maka cHasil1 = FormatS(cHasil1, "0", 8) End Jika cHasil3 = FormatS(Right(cHasil1, 8), "0", 8) End Jika Delay nDelay Else {Penjumlahan Segera} cOp1 = GetIsiReg(.Reg1) cOp2 = Hex2Biner(.Reg2) Jika Karakter terakhir dari .Reg1 = "X" Maka cOp2 = FormatS(cOp2, "0", 16) Else cOp2 = FormatS(cOp2, "0", 8) End Jika cHasil1 = Biner2Dec(cOp1) + Biner2Dec(cOp2) Jika cKode = "ADC" Maka cHasil1 = Val(cHasil1) + _ Val(TFlag.TextMatrix(2, 1)) Jika Val(cHasil1) < 0 Maka MsgBox "Perangkat lunak tidak mendukung bilangan bertanda !", vbCritical GoTo ErrorMin End Jika cHasil1 = Dec2Biner(Val(cHasil1)) 'Cek Panjang Jika Karakter terakhir dari .Reg1 = "X" Maka Jika Len(cHasil1) < 16 Maka cHasil1 = FormatS(cHasil1, "0", 16) End Jika cHasil3 = FormatS(Right(cHasil1, 16), "0", 16) Else Jika Len(cHasil1) < 8 Maka cHasil1 = FormatS(cHasil1, "0", 8) End Jika cHasil3 = FormatS(Right(cHasil1, 8), "0", 8) JURNAL INFORMASI

19

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

End Jika Delay nDelay End Jika {Ambil no.baris register tujuan pada tabel} cBaris = GetBaris(.Reg1) {Atur warna pada tabel} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &H66CCFF Jika Karakter terakhir dari .Reg1 = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &H66CCFF End Jika Delay nDelay {Tampilkan isi register pada tabel} cHasil2 = cHasil1 Jika Karakter terakhir dari .Reg1 = "X" Maka 'Cek Panjang = 16 Jika Len(cHasil2) < 16 Maka cHasil2 = FormatS(cHasil2, "0", 16) Jika tidak, jika Len(cHasil2) > 16 Maka cHasil2 = Karakter terakhir dari (cHasil2, 16) End Jika 'AX TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(Mid(cHasil2, 1, 8), 4) TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom + 1) = _ BagiString(Mid(cHasil2, 9, 8), 4) Jika tidak, jika Karakter terakhir dari .Reg1 = "H" Maka 'Cek Panjang = 8 Jika Len(cHasil2) < 8 Maka cHasil2 = FormatS(cHasil2, "0", 8) Jika tidak, jika Len(cHasil2) > 8 Maka cHasil2 = Right(cHasil2, 8) End Jika JURNAL INFORMASI

20

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(cHasil2, 4) Jika tidak, jika Karakter terakhir dari .Reg1 = "L" Maka 'Cek Panjang = 8 Jika Len(cHasil2) < 8 Maka cHasil2 = FormatS(cHasil2, "0", 8) TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(cHasil2, 4) Jika tidak, jika Len(cHasil2) > 8 Maka TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(Right(cHasil2, 8), 4) 'Untuk kelebihan bit cHasil2 = FormatS(Dec2Biner(Format(Biner2Dec(TRegister. TextMatrix (cBaris.Baris, 1)) + _ Biner2Dec(Left(cHasil2, Len(cHasil2)-8)))),"0",8) TRegister.TextMatrix(cBaris.Baris, 1)=BagiString(cHasil2, 4) End Jika End Jika Delay nDelay {Hapus Warna} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &HFFFFFF Jika Karakter terakhir dari (.Reg1, 1) = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &HFFFFFF End Jika '-------------------'CHECK REGISTER-FLAG '-------------------{Cek perubahan flag Z } nHasil1 = Biner2Dec(cHasil3) cHasil2 = IIf(nHasil1 = 0, "1", "0") Call UbahFlag(1, 1, cHasil2) {Cek perubahan flag C} 'Loop dari belakang JURNAL INFORMASI

21

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

cCarry = "" cTemp = TFlag.TextMatrix(2, 1) For nTemp = Len(cOp1) To 1 Step -1 nHasil1 = Val(cCarry) + _ Val(Mid(cOp1, nTemp, 1)) + _ Val(Mid(cOp2, nTemp, 1)) Jika cKode = "ADC" And nTemp = Len(cOp1) Maka nHasil1 = nHasil1 + Val(cTemp) End Jika Jika nHasil1 >= 2 Maka cCarry = "1" Else cCarry = "0" End Jika Next nTemp cHasil2 = cCarry Delay nDelay Call UbahFlag(2, 1, cHasil2) {Cek perubahan flag A} 'Loop dari belakang Jika Karakter terakhir dari (.Reg1, 1) = "X" Maka cCarry = "" For nTemp = Len(cOp1) To 9 Step -1 nHasil1 = Val(cCarry) + _ Val(Mid(cOp1, nTemp, 1)) + _ Val(Mid(cOp2, nTemp, 1)) Jika cKode = "ADC" And nTemp = Len(cOp1) Maka nHasil1 = nHasil1 + Val(cTemp) End Jika Jika nHasil1 >= 2 Maka cCarry = "1" Else cCarry = "0" End Jika Next nTemp cHasil2 = cCarry Jika tidak, jika Karakter terakhir dari .Reg1 = "L" Maka cHasil2 = cCarry End Jika Jika Karakter terakhir dari .Reg1 <> "H" Maka Call UbahFlag(3, 1, cHasil2) End Jika JURNAL INFORMASI

22

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

{Cek perubahan flag S} nHasil1 = Biner2Dec(cHasil3) cHasil2 = IIf(nHasil1 >= 0, "0", "1") Call UbahFlag(4, 1, cHasil2) {Cek perubahan flag P} Jika Karakter terakhir dari .Reg1 = "X" Maka 'AX, BX cHasil3 = Right(cHasil1, 16) Else 'AL, BL cHasil3 = Right(cHasil1, 8) End Jika nHasil2 = GetNHuruf(cHasil3, "1") Jika (nHasil2 Mod 2) = 0 Maka 'Jumlah Bit 1 - Genap cHasil2 = "1" Else 'Jumlah Bit 1 - Ganjil cHasil2 = "0" End Jika Call UbahFlag(5, 1, cHasil2) {Cek perubahan flag O} Jika Karakter terakhir dari .Reg1 = "X" Maka 'AX, BX Jika Len(cHasil1) > 16 And _ Val(Left(cHasil1, Len(cHasil1) - 16)) > 0 Maka 'Overflow cHasil2 = "1" Else 'Not Overflow cHasil2 = "0" End Jika Else 'AL, BL Jika Len(cHasil1) > 8 And _ Val(Left(cHasil1, Len(cHasil1) - 8)) > 0 Maka 'Overflow cHasil2 = "1" Else 'Not Overflow cHasil2 = "0" End Jika JURNAL INFORMASI

23

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

End Jika Call UbahFlag(6, 1, cHasil2) 7. Algoritma Eksekusi Op-Code INC Instruksi INC (penjumlahan inkremen) berfungsi untuk menambah satu bit ke register tujuan. Algoritma akan mengeksekusi op-code INC sesuai dengan input dan menunjukkan perubahan isi register setelah instruksi dieksekusi. Algoritma eksekusinya adalah sebagai berikut, {Isi dari Register Tujuan} cOp1 = GetIsiReg(.Reg1) {Tambah 1 bit} cHasil1 = Biner2Dec(cOp1) + 1 Jika Val(cHasil1) < 0 Maka MsgBox "Perangkat lunak tidak mendukung bilangan bertanda !", vbCritical GoTo ErrorMin End Jika cHasil1 = Dec2Biner(Val(cHasil1)) {Cek Panjang Bit} Jika Karakter terakhir dari .Reg1 = "X" Maka Jika Len(cHasil1) < 16 Maka cHasil1 = FormatS(cHasil1, "0", 16) End Jika cHasil3 = FormatS(Right(cHasil1, 16), "0", 16) Else Jika Len(cHasil1) < 8 Maka cHasil1 = FormatS(cHasil1, "0", 8) End Jika cHasil3 = FormatS(Right(cHasil1, 8), "0", 8) End Jika Delay nDelay {Ambil no.baris dari register pada tabel} cBaris = GetBaris(.Reg1) {Atur warna pada tabel} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &H66CCFF Jika Karakter terakhir dari .Reg1 = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &H66CCFF End Jika Delay nDelay JURNAL INFORMASI

24

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

{Tampilkan isi register pada tabel} cHasil2 = cHasil1 Jika Karakter terakhir dari .Reg1 = "X" Maka 'Cek Panjang = 16 Jika Len(cHasil2) < 16 Maka cHasil2 = FormatS(cHasil2, "0", 16) Jika tidak, jika Len(cHasil2) > 16 Maka cHasil2 = Right(cHasil2, 16) End Jika 'AX TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(Mid(cHasil2, 1, 8), 4) TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom + 1) = _ BagiString(Mid(cHasil2, 9, 8), 4) Jika tidak, jika Karakter terakhir dari .Reg1 = "H" Maka 'Cek Panjang = 8 Jika Len(cHasil2) < 8 Maka cHasil2 = FormatS(cHasil2, "0", 8) Jika tidak, jika Len(cHasil2) > 8 Maka cHasil2 = Right(cHasil2, 8) End Jika TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(cHasil2, 4) Jika tidak, jika Karakter terakhir dari .Reg1 = "L" Maka 'Cek Panjang = 8 Jika Len(cHasil2) < 8 Maka cHasil2 = FormatS(cHasil2, "0", 8) TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(cHasil2, 4) Jika tidak, jika Len(cHasil2) > 8 Maka TRegister.TextMatrix(cBaris.Baris, cBaris.Kolom) = _ BagiString(Right(cHasil2, 8), 4) 'Untuk kelebihan bit cHasil2 = FormatS(Dec2Biner(Format(Biner2Dec(TRegister. TextMatrix(cBaris.Baris, 1)) + _ Biner2Dec(Left(cHasil2, Len(cHasil2)- 8)))),"0",8) JURNAL INFORMASI

25

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

TRegister.TextMatrix(cBaris.Baris,1) = BagiString(cHasil2,4) End Jika End Jika 'Delay Delay nDelay {Hapus Warna} TRegister.Row = cBaris.Baris TRegister.Col = cBaris.Kolom TRegister.CellBackColor = &HFFFFFF Jika Karakter terakhir dari .Reg1 = "X" Maka TRegister.Col = cBaris.Kolom + 1 TRegister.CellBackColor = &HFFFFFF End Jika {Cek perubahan flag Z} nHasil1 = Biner2Dec(cHasil3) cHasil2 = IIf(nHasil1 = 0, "1", "0") Delay nDelay Call UbahFlag(1, 1, cHasil2) {Cek perubahan flag C} 'Loop dari belakang cCarry = "" cTemp = TFlag.TextMatrix(2, 1) For nTemp = Len(cOp1) To 1 Step -1 nHasil1 = Val(cCarry) + Val(Mid(cOp1, nTemp, 1)) Jika nTemp = Len(cOp1) Maka nHasil1 = nHasil1 + 1 End Jika Jika nHasil1 >= 2 Maka cCarry = "1" Else cCarry = "0" End Jika Next nTemp cHasil2 = cCarry Call UbahFlag(2, 1, cHasil2) {Cek perubahan flag A} 'Loop dari belakang Jika Karakter terakhir dari .Reg1 = "X" Maka JURNAL INFORMASI

26

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

cCarry = "" For nTemp = Len(cOp1) To 9 Step -1 nHasil1 = Val(cCarry) + Val(Mid(cOp1, nTemp, 1)) Jika nTemp = Len(cOp1) Maka nHasil1 = nHasil1 + 1 End Jika Jika nHasil1 >= 2 Maka cCarry = "1" Else cCarry = "0" End Jika Next nTemp cHasil2 = cCarry Jika tidak, jika Karakter terakhir dari .Reg1 = "L" Maka cHasil2 = cCarry End Jika Jika Karakter terakhir dari .Reg1 <> "H" Maka Delay nDelay Call UbahFlag(3, 1, cHasil2) End Jika {Cek perubahan flag S} nHasil1 = Biner2Dec(cHasil3) cHasil2 = IIf(nHasil1 >= 0, "0", "1") Delay nDelay Call UbahFlag(4, 1, cHasil2) {Cek perubahan flag P} Jika Karakter terakhir dari .Reg1 = "X" Maka 'AX, BX cHasil3 = Right(cHasil1, 16) Else 'AL, BL cHasil3 = Right(cHasil1, 8) End Jika nHasil2 = GetNHuruf(cHasil3, "1") Jika (nHasil2 Mod 2) = 0 Maka 'Jumlah Bit 1 - Genap cHasil2 = "1" Else 'Jumlah Bit 1 - Ganjil cHasil2 = "0" JURNAL INFORMASI

27

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

End Jika Delay nDelay Call UbahFlag(5, 1, cHasil2) {Cek perubahan flag O} Jika Karakter terakhir dari .Reg1 = "X" Maka 'AX, BX Jika Len(cHasil1) > 16 And _ Val(Left(cHasil1, Len(cHasil1) - 16)) > 0 Maka 'Overflow cHasil2 = "1" Else 'Not Overflow cHasil2 = "0" End Jika Else 'AL, BL Jika Len(cHasil1) > 8 And _ Val(Left(cHasil1, Len(cHasil1) - 8)) > 0 Maka 'Overflow cHasil2 = "1" Else 'Not Overflow cHasil2 = "0" End Jika End Jika Call UbahFlag(6, 1, cHasil2) 8. Keuntungan Perangkat Lunak Pembelajaran Ada beberapa keuntungan yang bisa diraih dari suatu perangkat lunak pembelajaran dengan komputer yang interakif yaitu : 1. Meningkatkan efektivitas pelatihan, seperti : a. Meningkatkan daya minat pengguna. b. Meningkatkan waktu pelatihan. c. Meningkatkan pengetahuan. 2. Mengurangi waktu dan sumber daya pelatihan, seperti : a. Mengurangi waktu belajar selama pelatihan. b. Mengurangi instruktur pelatihan. c. Biaya pelatihan yang lebih rendah.

JURNAL INFORMASI

28

Vol: 2, No: 1, Bulan : Februari 2010

ISSN 2085-8795

9. Kesimpulan Setelah menyelesaikan perancangan perangkat lunak pembelajaran penerapan modus pengalamatan dan operasi aritmatika pada mikroprosesor intel 8088/8086 ini, penulis menarik kesimpulan sebagai berikut : 1. Perangkat lunak ini dapat digunakan untuk memahami modus pengalamatan register dan segera serta beberapa operasi aritmatika pada mikroprosesor intel 8088/8086. 2. Perangkat lunak dapat dijadikan sebagai media pendukung dalam proses pembelajaran mikroprosesor dasar. 3. Modus pengalamatan yang dibahas dapat diperbanyak seperti menambahkan modus pengalamatan langsung, tidak langsung, base-plus-index, register relatif dan indeks berskala. 4. Operasi yang dibahas dalam perangkat lunak dapat diperbanyak seperti menambahkan operasi aritmatika lainnya, operasi perbandingan, dan sebagainya. Daftar Pustaka [1]. Albert Paul Malvino, Elektronika Komputer Digital : Pengantar Mikrokomputer, Edisi Kedua, Penerbit Erlangga, 1994. [2]. Ario Suryokusumo, Microsoft Visual Basic 6.0, PT. Elex Media Komputindo, 2001. [3]. Barry B. Brey, Mikroprosesor Intel 8086/8088/80186/80188/80286/ 80386/80486 : Arsitektur Pemrograman Antarmuka, Edisi 5, Jilid 2, Penerbit Erlangga, 2003. [4]. Hadi, Rahadian, Pemrograman Microsoft Visual Basic dengan menggunakan Windows API, PT. Elex Media Komputindo, Jakarta, 2001. [5]. Muchlas, Rangkaian Digital, Penerbit Gava Media, Yokyakarta, Januari 2005. [6]. Hendra Gunawan, S.T., M.Kom., Staf Pengajar di Jurusan Teknik Informatika STMIK-IM Bandung. Menyelesaikan Magister Komputer Jurusan Sistem Informasi Bisnis di STMIK LIKMI. Selain mengajar juga sebagai konsultan ICT.

JURNAL INFORMASI

29